DeviceOrientation.absolute should return false when it was not initialized.
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog-2009-06-16
1 2009-06-15  Adele Peterson  <adele@apple.com>
2
3         Reviewed by Darin Adler.
4
5         Fix for <rdar://problem/6907228> Pasting a paragraph as quotation leaves you typing in blue instead of black; repros
6
7         * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply):
8         When inserting a newline after the blockquote, we don't want to apply the original style after the insertion.
9
10 2009-06-15  Sam Weinig  <sam@webkit.org>
11
12         Reviewed by Anders Carlsson.
13
14         Remove outdated comment.
15
16         * bindings/js/JSDOMWindowBase.h:
17
18 2009-06-15  Sam Weinig  <sam@webkit.org>
19
20         Reviewed by Anders Carlsson.
21
22         Bring CustomGetPropertyNames more inline with the other
23         extended attributes prefixed with Custom, by making it 
24         require a complete implementation.
25
26         * bindings/js/JSDOMWindowCustom.cpp:
27         (WebCore::JSDOMWindow::getPropertyNames):
28         * bindings/js/JSHistoryCustom.cpp:
29         (WebCore::JSHistory::getPropertyNames):
30         * bindings/js/JSLocationCustom.cpp:
31         (WebCore::JSLocation::getPropertyNames):
32         * bindings/js/JSStorageCustom.cpp:
33         (WebCore::JSStorage::getPropertyNames):
34         * bindings/scripts/CodeGeneratorJS.pm:
35
36 2009-06-15  Sam Weinig  <sam@webkit.org>
37
38         Reviewed by Anders Carlsson.
39
40         Remove commented out ondataunavailable attribute event listener which
41         has now been removed from HTML 5.
42
43         * page/DOMWindow.idl:
44
45 2009-06-15  Sam Weinig  <sam@webkit.org>
46
47         Reviewed by Anders Carlsson.
48
49         Move entire custom implementation of getOwnPropertySlot and put
50         for JSDOMWindow into JSDOMWindowCustom, eliminating the bit in
51         JSDOMWindowBase.
52
53         * bindings/js/JSDOMWindowBase.cpp:
54         * bindings/js/JSDOMWindowBase.h:
55         * bindings/js/JSDOMWindowCustom.cpp:
56         (WebCore::nonCachingStaticFunctionGetter):
57         (WebCore::childFrameGetter):
58         (WebCore::indexGetter):
59         (WebCore::namedItemGetter):
60         (WebCore::JSDOMWindow::getOwnPropertySlot):
61         (WebCore::JSDOMWindow::put):
62         (WebCore::JSDOMWindow::getPropertyAttributes):
63         * bindings/js/JSDOMWindowCustom.h:
64         * page/DOMWindow.idl:
65
66 2009-06-15  Jeremy Orlow (jorlow@chromium.org)
67
68         Reviewed by Dimitri Glazkov.
69
70         https://bugs.webkit.org/show_bug.cgi?id=26356
71         Define the functions in V8CustomBindings.h.  "Forgot" this in my
72         earlier patch since it wasn't fully upstreamed when I wrote the
73         patch.
74
75         * bindings/v8/custom/V8CustomBinding.h:
76
77 2009-06-15  Andre Boule  <aboule@apple.com>
78
79         Reviewed by Cameron Zwarich and Dan Bernstein.
80
81         - fix <rdar://problem/6967975> crash with NSString drawAtPoint
82
83         No test possible because this crash can only occur if the client uses
84         WebKit text drawing without ever using WebCore text, and DumpRenderTree
85         cannot do either.
86
87         * platform/graphics/FontCache.cpp:
88         (WebCore::FontCache::purgeInactiveFontData): Null-check
89             gFontPlatformDataCache.
90
91 2009-06-15  Simon Fraser  <simon.fraser@apple.com>
92
93         Reviewed by Mark Rowe.
94
95         <rdar://problem/6974857>
96         
97         Define ENABLE_3D_RENDERING when building on 10.6, and move ENABLE_3D_RENDERING
98         switch from config.h to wtf/Platform.h.
99
100         * Configurations/FeatureDefines.xcconfig:
101         * config.h:
102
103 2009-06-15  Pavel Feldman  <pfeldman@chromium.org>
104
105         Reviewed by Timothy Hatcher.
106
107         Make WebInspector's console evaluation/completion asynchronous.
108         This way of evaluation allows serializing calls between 
109         InspectorController and its frontend.
110         
111         https://bugs.webkit.org/show_bug.cgi?id=26350
112
113         * inspector/front-end/Console.js:
114         (WebInspector.Console.prototype.completions):
115         (WebInspector.Console.prototype._reportCompletions):
116         (WebInspector.Console.prototype._evalInInspectedWindow):
117         (WebInspector.Console.prototype._enterKeyPressed.printResult):
118         (WebInspector.Console.prototype._enterKeyPressed):
119         * inspector/front-end/DatabaseQueryView.js:
120         * inspector/front-end/ObjectPropertiesSection.js:
121         (WebInspector.ObjectPropertyTreeElement.prototype.evaluateExpression):
122         * inspector/front-end/ScriptsPanel.js:
123         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
124         * inspector/front-end/TextPrompt.js:
125         (WebInspector.TextPrompt.prototype.complete):
126         (WebInspector.TextPrompt.prototype._completionsReady):
127
128 2009-06-15  Kevin McCullough  <kmccullough@apple.com>
129
130         Reviewed by Tim Hatcher.
131
132         Reverted previous change as the old behavior was correct for heavy view.
133
134         * inspector/front-end/BottomUpProfileDataGridTree.js:
135         (WebInspector.BottomUpProfileDataGridNode.prototype._populate):
136
137 2009-06-15  Kevin McCullough  <kmccullough@apple.com>
138
139         Reviewed by Tim Hatcher.
140
141         <rdar://problem/6968125> Profiler 'Call' count is incorrect in Heavy
142         view (26418)
143
144         - Removed code that copied call and time data from it's ancestor.
145
146         * inspector/front-end/BottomUpProfileDataGridTree.js:
147         (WebInspector.BottomUpProfileDataGridNode.prototype._populate):
148
149 2009-06-15  Chris Marrin  <cmarrin@apple.com>
150
151         Reviewed by Simon Fraser  <simon.fraser@apple.com>.
152
153         https://bugs.webkit.org/show_bug.cgi?id=26163
154
155         Added logic to updateTransitions similar to that in updateKeyframeAnimations
156         which detects and removes stale transitions.
157
158         Test: transitions/cancel-transition.html
159
160         * page/animation/CompositeAnimation.cpp:
161         (WebCore::CompositeAnimation::updateTransitions):
162         * page/animation/ImplicitAnimation.cpp:
163         (WebCore::ImplicitAnimation::ImplicitAnimation):
164         * page/animation/ImplicitAnimation.h:
165         (WebCore::ImplicitAnimation::active):
166         (WebCore::ImplicitAnimation::setActive):
167
168 2009-06-15  Dan Bernstein  <mitz@apple.com>
169
170         Reviewed by Tim Hatcher.
171
172         - allow the source code font in the Web Inspector to be customized
173
174         * css/view-source.css: Use the default monospace font family and size
175             for source code.
176         * inspector/front-end/inspector.css: Use the default monospace font
177             family and size for console I/O.
178
179 2009-06-15  Simon Hausmann  <simon.hausmann@nokia.com>
180
181         Reviewed by and done with Tor Arne Vestbø.
182
183         Fix initialization of uninitialized members in FontFallbackListQt, leading
184         to random crashes when rendering text.
185
186         * platform/graphics/qt/FontFallbackListQt.cpp:
187         (WebCore::FontFallbackList::FontFallbackList):
188         (WebCore::FontFallbackList::invalidate):
189
190 2009-06-15  Xan Lopez  <xlopez@igalia.com>
191
192         Reviewed by Holger Freyther.
193
194         https://bugs.webkit.org/show_bug.cgi?id=25895
195         [Gtk] Segfault when deleting the last/only character in an entry if a11y is enabled
196
197         Use computeOffsetInContainerNode instead of the inline
198         offsetInContainerNode to return the caret offset, since the former
199         can handle all types of anchoring. Otherwise we'll hit an ASSERT
200         in some situations in debug builds, and crash.
201
202         * editing/gtk/SelectionControllerGtk.cpp:
203         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
204
205 2009-06-15  Joe Ligman  <joseph.ligman@nokia.com>
206
207         Reviewed by Simon Hausmann.
208
209         [Qt] Fix build break
210         Rename JSONObject to InspectorJSONObject
211
212         https://bugs.webkit.org/show_bug.cgi?id=26340
213
214         * GNUmakefile.am:
215         * WebCore.pro:
216         * WebCore.vcproj/WebCore.vcproj:
217         * WebCore.xcodeproj/project.pbxproj:
218         * WebCoreSources.bkl:
219         * inspector/ConsoleMessage.cpp:
220         (WebCore::ConsoleMessage::addToConsole):
221         * inspector/InspectorDOMStorageResource.cpp:
222         (WebCore::InspectorDOMStorageResource::bind):
223         * inspector/InspectorDatabaseResource.cpp:
224         (WebCore::InspectorDatabaseResource::bind):
225         * inspector/InspectorFrontend.cpp:
226         (WebCore::InspectorFrontend::newInspectorJSONObject):
227         (WebCore::InspectorFrontend::addMessageToConsole):
228         (WebCore::InspectorFrontend::addResource):
229         (WebCore::InspectorFrontend::updateResource):
230         (WebCore::InspectorFrontend::addDatabase):
231         (WebCore::InspectorFrontend::addDOMStorage):
232         * inspector/InspectorFrontend.h:
233         * inspector/InspectorJSONObject.cpp: Copied from WebCore/inspector/JSONObject.cpp.
234         (WebCore::InspectorJSONObject::InspectorJSONObject):
235         (WebCore::InspectorJSONObject::set):
236         (WebCore::InspectorJSONObject::scriptObject):
237         (WebCore::InspectorJSONObject::createNew):
238         * inspector/InspectorJSONObject.h: Copied from WebCore/inspector/JSONObject.h.
239         * inspector/InspectorResource.cpp:
240         (WebCore::populateHeadersObject):
241         (WebCore::InspectorResource::createScriptObject):
242         (WebCore::InspectorResource::updateScriptObject):
243         * inspector/JSONObject.cpp: Removed.
244         * inspector/JSONObject.h: Removed.
245
246 2009-06-12  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
247
248         Reviewed by Simon Hausmann.
249
250         Refactor handling of options in the build-webkit script
251         
252         Options are now defined in one place, and then reused when creating
253         the usage help text, the arguments to GetOptions(), and when passing
254         the options on to the underlying port-dependent build systems.
255         
256         This allows the Qt port to read the defaults for the options from the
257         pro file (dynamically), and to pass the options on to qmake at build.
258
259         * WebCore.pro:
260
261 2009-06-14  chris fleizach  <cfleizach@apple.com>
262
263         Reviewed by Darin Adler.
264
265         Bug 26399: REGRESSION: java applet accessibility broken
266         https://bugs.webkit.org/show_bug.cgi?id=26399
267  
268         Accessibility could not access the elements in a java applet 
269         when going down the AX hierarchy.
270
271         Test: DRT does not allow java applets so add a manual test:
272               manual-tests/accessibility/java-applet.html
273
274         * accessibility/AccessibilityRenderObject.cpp:
275         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
276         * accessibility/mac/AccessibilityObjectMac.mm:
277         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
278         * accessibility/mac/AccessibilityObjectWrapper.mm:
279         (-[AccessibilityObjectWrapper attachmentView]):
280         * manual-tests/accessibility: Added.
281         * manual-tests/accessibility/java-applet.html: Added.
282         * manual-tests/accessibility/resources: Added.
283         * manual-tests/accessibility/resources/AppletTest.class: Added.
284         * manual-tests/accessibility/resources/AppletTest.java: Added.
285         (AppletTest):
286         (AppletTest.init):
287
288 2009-06-14  Sam Weinig  <sam@webkit.org>
289
290         Reviewed by Cameron Zwarich.
291
292         Rename the CustomGetOwnPropertySlot and CustomPutFunction extended attributes
293         to DelegatingGetOwnPropertySlot and DelegatingPutFunction to more clearly describe
294         their functionality (customGetOwnPropertySlot and customPut member functions have
295         been renamed getOwnPropertySlotDelegate and putDelegate).  CustomGetOwnPropertySlot 
296         and CustomPutFunction have been repurposed to mean a complete custom implementation
297         of the function which is inline with other extended attributes prefixed with Custom.
298
299         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
300         (WebCore::JSCSSStyleDeclaration::putDelegate):
301         * bindings/js/JSDOMWindowCustom.h:
302         (WebCore::JSDOMWindow::getOwnPropertySlotDelegate):
303         (WebCore::JSDOMWindow::putDelegate):
304         * bindings/js/JSHTMLAppletElementCustom.cpp:
305         (WebCore::JSHTMLAppletElement::getOwnPropertySlotDelegate):
306         (WebCore::JSHTMLAppletElement::putDelegate):
307         * bindings/js/JSHTMLEmbedElementCustom.cpp:
308         (WebCore::JSHTMLEmbedElement::getOwnPropertySlotDelegate):
309         (WebCore::JSHTMLEmbedElement::putDelegate):
310         * bindings/js/JSHTMLObjectElementCustom.cpp:
311         (WebCore::JSHTMLObjectElement::getOwnPropertySlotDelegate):
312         (WebCore::JSHTMLObjectElement::putDelegate):
313         * bindings/js/JSHistoryCustom.cpp:
314         (WebCore::JSHistory::getOwnPropertySlotDelegate):
315         (WebCore::JSHistory::putDelegate):
316         * bindings/js/JSLocationCustom.cpp:
317         (WebCore::JSLocation::getOwnPropertySlotDelegate):
318         (WebCore::JSLocation::putDelegate):
319         (WebCore::JSLocationPrototype::putDelegate):
320         * bindings/js/JSStorageCustom.cpp:
321         (WebCore::JSStorage::putDelegate):
322         * bindings/js/JSWorkerContextCustom.cpp:
323         (WebCore::JSWorkerContext::getOwnPropertySlotDelegate):
324         * bindings/scripts/CodeGeneratorJS.pm:
325         * css/CSSStyleDeclaration.idl:
326         * html/HTMLAppletElement.idl:
327         * html/HTMLEmbedElement.idl:
328         * html/HTMLObjectElement.idl:
329         * page/DOMWindow.idl:
330         * page/History.idl:
331         * page/Location.idl:
332         * storage/Storage.idl:
333         * workers/WorkerContext.idl:
334
335 2009-06-14  Dan Bernstein  <mitz@apple.com>
336
337         Reviewed by Darin Adler.
338
339         - fix https://bugs.webkit.org/show_bug.cgi?id=26395
340           <rdar://problem/6971333> REGRESSION (r40813-r40884): No caret after
341           going back/forward to page with focused text field
342
343         No test, since the back/forward cache is disabled in DumpRenderTree
344
345         * loader/FrameLoader.cpp:
346         (WebCore::FrameLoader::open): Added a call to CachedPage::restore(),
347         which was removed in r40870.
348
349 2009-06-14  Darin Adler  <darin@apple.com>
350
351         * editing/TextIterator.cpp:
352         (WebCore::BitStack::push): Use named constant instead of hardcoded numbers.
353         (WebCore::BitStack::top): Ditto.
354
355 2009-06-14  Darin Adler  <darin@apple.com>
356
357         Reviewed by Dan Bernstein.
358
359         Bug 26364: Search can find text that's hidden by overflow:hidden
360         https://bugs.webkit.org/show_bug.cgi?id=26364
361         <rdar://problem/6952081>
362
363         Test: fast/text/find-hidden-text.html
364
365         * editing/TextIterator.cpp:
366         (WebCore::BitStack::BitStack): Added.
367         (WebCore::BitStack::push): Added.
368         (WebCore::BitStack::pop): Added.
369         (WebCore::BitStack::top): Added.
370         (WebCore::BitStack::size): Added.
371         (WebCore::parentOrShadowParent): Added. Helper function for walking up
372         the parent node chain, crossing shadow tree boundaries.
373         (WebCore::depthCrossingShadowBoundaries): Added for use in assertions.
374         Counts the depth of a node using the parentOrShadowParent function.
375         (WebCore::fullyClipsContents): Added. Returns true for an element that
376         fully clips its contents, currently defined as a box that has zero width
377         or height and hides overflow. We can add other cases here later.
378         (WebCore::ignoresContainerClip): Added. Returns true for an element that
379         ignores its container clip, currently defined as an element with absolute
380         or fixed positioning.
381         (WebCore::pushFullyClippedState): Added. Pushes a bit on the stack indicating
382         if the node in question fully clips its contents.
383         (WebCore::setUpFullyClippedStack): Added. Pushes a bit for each ancestor of
384         a node. Used when creating an iterator.
385         (WebCore::TextIterator::TextIterator): Removed code to initialize
386         m_inShadowContent. Call setUpFullyClippedStack.
387         (WebCore::TextIterator::advance): Use parentOrShadowParent. Call pop when moving
388         up to a parent node, and also one extra time when moving to a sibling node.
389         Call pushFullyClippedState when moving to a child node, or when moving to a
390         sibling node after the aforementioned call to pop.
391         (WebCore::TextIterator::handleTextNode): Return early if the node is fully clipped.
392         (WebCore::TextIterator::handleReplacedElement): Ditto.
393         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
394         Call setUpFullyClippedStack.
395         (WebCore::SimplifiedBackwardsTextIterator::advance): Same changes as
396         TextIterator::advance above.
397
398         * editing/TextIterator.h: Added BitStack class and added m_fullyClippedStack to both
399         TextIterator and SimplifiedBackwardsTextIterator. Removed unneeded m_inShadowContent.
400
401 2009-06-14  David Hyatt  <hyatt@apple.com>
402
403         Reviewed by Simon Fraser.
404
405         https://bugs.webkit.org/show_bug.cgi?id=26362
406
407         Back out Simon's fix and replace it with a better one that doesn't needlessly destroy RenderObjects.
408         Use NoInherit rather than Detach for child index changes, and don't worry about other pseudo-class state
409         changes, since they were handled already with setNeedsStyleRecalcs on the affected objects themselves.
410
411         * dom/Element.cpp:
412         (WebCore::Element::recalcStyle):
413         * dom/Node.cpp:
414         (WebCore::Node::diff):
415         * rendering/style/RenderStyle.h:
416         (WebCore::InheritedFlags::setChildIndex):
417
418 2009-06-14  David Hyatt  <hyatt@apple.com>
419
420         Reviewed by Dan Bernstein.
421
422         Move all of the mutable member variables from Font into the refcounted FontFallbackList.  This makes
423         copying of Fonts more efficient and also effectively makes all of the mutations of a Font object happen
424         inside the FontFallbackList.
425
426         * WebCore.base.exp:
427         * platform/graphics/Font.cpp:
428         (WebCore::Font::Font):
429         (WebCore::Font::operator=):
430         (WebCore::Font::primaryFont):
431         (WebCore::Font::update):
432         * platform/graphics/Font.h:
433         (WebCore::Font::setWordSpacing):
434         (WebCore::Font::setLetterSpacing):
435         * platform/graphics/FontFallbackList.cpp:
436         (WebCore::FontFallbackList::FontFallbackList):
437         (WebCore::FontFallbackList::invalidate):
438         (WebCore::FontFallbackList::determinePitch):
439         * platform/graphics/FontFallbackList.h:
440         (WebCore::FontFallbackList::primarySimpleFontData):
441         (WebCore::FontFallbackList::primaryFontData):
442         * platform/graphics/FontFastPath.cpp:
443         (WebCore::Font::glyphDataForCharacter):
444
445 2009-06-14  Simon Fraser  <simon.fraser@apple.com>
446
447         Reviewed by Darin Adler
448         
449         https://bugs.webkit.org/show_bug.cgi?id=26362
450         
451         Fix an issue noted on quirksmode.com where dynamically adding siblings does not
452         update :nth-child style correctly.
453
454         Test: fast/css/nth-child-dynamic.html
455
456         * dom/Node.h:
457         Change diff() to take const RenderStyle*
458         * dom/Node.cpp:
459         (WebCore::Node::diff):
460         When comparing styles to decide whether to detach and reattach, we
461         need to look at whether the pseudoclass-related data in the style
462         changed (since RenderStyle::diff doesn't check this).
463         
464         * rendering/style/RenderStyle.cpp:
465         (WebCore::RenderStyle::getCachedPseudoStyle):
466         (WebCore::RenderStyle::inheritedNotEqual):
467         Make these methods const.
468         * rendering/style/RenderStyle.h:
469         (WebCore::InheritedFlags::styleType):
470         (WebCore::InheritedFlags::pseudoClassStateEquivalent):
471         Make methods const.
472         Add new method that compares the pseudoclass-related members.
473
474 2009-06-13  Peter Kasting  <pkasting@google.com>
475
476         Reviewed by Kevin Ollivier.
477
478         https://bugs.webkit.org/show_bug.cgi?id=25709 part eleven
479         Write a wx implementation so the wx port can compile.  For now this is
480         mostly a copy of the Cairo port, but in the future it can be changed to
481         use a wxBitmap as the storage type everywhere (just as Cairo can
482         probably be changed).
483         
484         Also ASSERT for any other ports who call getAddr() (I don't think there
485         are any, and besides, they probably won't link, but this doesn't hurt).
486         
487         Also fixes a dumb Cairo build bustage typo introduced in part ten.
488
489         * platform/graphics/wx/ImageSourceWx.cpp:
490         (WebCore::ImageSource::createFrameAtIndex):
491         * platform/image-decoders/ImageDecoder.h:
492         (WebCore::RGBA32Buffer::getAddr):
493         * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
494         (WebCore::RGBA32Buffer::setStatus):
495         * platform/image-decoders/wx: Added.
496         * platform/image-decoders/wx/ImageDecoderWx.cpp: Added.
497         (WebCore::RGBA32Buffer::RGBA32Buffer):
498         (WebCore::RGBA32Buffer::clear):
499         (WebCore::RGBA32Buffer::zeroFill):
500         (WebCore::RGBA32Buffer::copyBitmapData):
501         (WebCore::RGBA32Buffer::setSize):
502         (WebCore::RGBA32Buffer::asNewNativeImage):
503         (WebCore::RGBA32Buffer::hasAlpha):
504         (WebCore::RGBA32Buffer::setHasAlpha):
505         (WebCore::RGBA32Buffer::setStatus):
506         (WebCore::RGBA32Buffer::operator=):
507         (WebCore::RGBA32Buffer::width):
508         (WebCore::RGBA32Buffer::height):
509         * webcore-wx.bkl:
510
511 2009-06-13  Stephen White  <senorblanco@chromium.org>
512
513         Reviewed by Dimitri Glazkov.  Landed by Adam Barth.
514
515         https://bugs.webkit.org/show_bug.cgi?id=26320
516
517         Some minor code cleanup for chromium/skia port.  Removed #ifdef's
518         around skia API changes, since the new version seems solid and we
519         don't need to go back.  Added some comments to
520         TransparencyWin.h, as requested by Brett in
521         https://bugs.webkit.org/show_bug.cgi?id=24584.
522
523         * platform/graphics/chromium/FontCacheLinux.cpp:
524         (WebCore::FontCache::createFontPlatformData):
525         * platform/graphics/chromium/TransparencyWin.h:
526         * platform/graphics/skia/PathSkia.cpp:
527         (WebCore::Path::boundingRect):
528         (WebCore::boundingBoxForCurrentStroke):
529         * platform/graphics/skia/SkiaUtils.cpp:
530         (WebCore::SkPathContainsPoint):
531
532 2009-06-13  Adam Barth  <abarth@webkit.org>
533
534         Reviewed by Darin Fisher.
535
536         https://bugs.webkit.org/show_bug.cgi?id=24492
537
538         Moved registerURLSchemeAsLocal and registerURLSchemeAsNoAccess from
539         FrameLoader to SecurityOrigin.
540
541         * WebCore.base.exp:
542         * loader/FrameLoader.cpp:
543         (WebCore::FrameLoader::loadFrameRequest):
544         (WebCore::FrameLoader::canLoad):
545         * loader/FrameLoader.h:
546         * page/SecurityOrigin.cpp:
547         (WebCore::localSchemes):
548         (WebCore::noAccessSchemes):
549         (WebCore::SecurityOrigin::SecurityOrigin):
550         (WebCore::SecurityOrigin::isLocal):
551         (WebCore::SecurityOrigin::registerURLSchemeAsLocal):
552         (WebCore::SecurityOrigin::shouldTreatURLAsLocal):
553         (WebCore::SecurityOrigin::shouldTreatURLSchemeAsLocal):
554         (WebCore::SecurityOrigin::registerURLSchemeAsNoAccess):
555         (WebCore::SecurityOrigin::shouldTreatURLSchemeAsNoAccess):
556         * page/SecurityOrigin.h:
557
558 2009-06-13  Ben Murdoch  <benm@google.com>
559
560         Reviewed by David Kilzer.  Landed by Adam Barth.
561
562         https://bugs.webkit.org/show_bug.cgi?id=26189
563
564         This patch changes the way PageGroups create their localStorage
565         objects. Rather than creating a local storage object for the page group
566         when a page is added to the group, the local storage object is now
567         created lazily when the local storage object is requested by the
568         DOMWindow.
569
570         * page/PageGroup.cpp:
571         (WebCore::PageGroup::closeLocalStorage): Before attempting to close a local storage object for a page group, ensure one has been created.
572         (WebCore::PageGroup::addPage): Do not automatically try to create a local storage object when a page is added to the group.
573         (WebCore::PageGroup::localStorage): Create a local storage object if one does not exist and return it.
574         * page/PageGroup.h: Add private hasLocalStorage method to PageGroup.
575
576
577 2009-06-13  Ben Murdoch  <benm@google.com>
578
579         Reviewed by Eric Seidel.  Landed by Adam Barth.
580
581         https://bugs.webkit.org/show_bug.cgi?id=26189
582
583         Add ENABLE(DOM_STORAGE) guards to the dom storage source files.
584
585         * storage/LocalStorage.cpp: Add ENABLE(DOM_STORAGE) guards to the file.
586         * storage/LocalStorage.h: Ditto
587         * storage/LocalStorageArea.cpp: Ditto
588         * storage/LocalStorageArea.h: Ditto
589         * storage/LocalStorageTask.cpp: Ditto
590         * storage/LocalStorageTask.h: Ditto
591         * storage/LocalStorageThread.cpp: Ditto
592         * storage/LocalStorageThread.h: Ditto
593         * storage/SessionStorage.cpp: Ditto
594         * storage/SessionStorage.h: Ditto
595         * storage/SessionStorageArea.cpp: Ditto
596         * storage/SessionStorageArea.h: Ditto
597         * storage/Storage.cpp: Ditto
598         * storage/Storage.h: Ditto
599         * storage/StorageArea.cpp: Ditto
600         * storage/StorageArea.h: Ditto
601         * storage/StorageEvent.cpp: Ditto
602         * storage/StorageEvent.h: Ditto
603         * storage/StorageMap.cpp: Ditto
604         * storage/StorageMap.h: Ditto
605         * storage/StorageEvent.idl: Add Conditional=DOM_STORAGE attribute.
606         * storage/Storage.idl: Ditto
607
608 2009-06-13  Peter Kasting  <pkasting@google.com>
609
610         Reviewed by Eric Seidel.
611
612         https://bugs.webkit.org/show_bug.cgi?id=25709 part ten
613         Make Skia use the root directory ImageDecoder.h and factor out most
614         Skia-specific bits into skia/ImageDecoderSkia.cpp.  Also fix a pair of
615         style violations in ImageDecoderCairo.cpp.  This is the last patch for
616         this bug, everything beyond this is an enhancement rather than
617         unforking.
618
619         * platform/image-decoders/ImageDecoder.h:
620         (WebCore::RGBA32Buffer::getAddr):
621         * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
622         (WebCore::RGBA32Buffer::hasAlpha):
623         (WebCore::RGBA32Buffer::setHasAlpha):
624         (WebCore::setStatus):
625         * platform/image-decoders/skia/ImageDecoder.h: Removed.
626         * platform/image-decoders/skia/ImageDecoderSkia.cpp: Added.
627         (WebCore::RGBA32Buffer::RGBA32Buffer):
628         (WebCore::RGBA32Buffer::clear):
629         (WebCore::RGBA32Buffer::zeroFill):
630         (WebCore::RGBA32Buffer::copyBitmapData):
631         (WebCore::RGBA32Buffer::setSize):
632         (WebCore::RGBA32Buffer::asNewNativeImage):
633         (WebCore::RGBA32Buffer::hasAlpha):
634         (WebCore::RGBA32Buffer::setHasAlpha):
635         (WebCore::RGBA32Buffer::setStatus):
636         (WebCore::RGBA32Buffer::operator=):
637         (WebCore::RGBA32Buffer::width):
638         (WebCore::RGBA32Buffer::height):
639
640 2009-06-13  Victor Wang <victorw@chromium.org>
641
642         Reviewed by Eric Seidel.  Landed by Adam Barth.
643
644         https://bugs.webkit.org/show_bug.cgi?id=26333
645         Alert during a dragenter event handler will crash the renderer
646         
647         This crash is casued by calling NULL pointer m_documentUnderMouse in
648         DragController::tryDocumentDrag()
649
650         tryDHTMLDrag fires dragenter event. The event listener that listens
651         to this event may create a nested message loop (open a modal dialog),
652         which could process dragleave event and reset m_documentUnderMouse in
653         dragExited.
654
655         Fix the crash by checking m_documentUnderMouse after tryDHTMLDrag and
656         do not continue if the pointer has been set to NULL.
657
658         Test: DRT does not show alerts so add a manual test:
659               manual-tests/drag-enter-alert.html
660
661         * manual-tests/drag-enter-alert.html: Added.
662         * manual-tests/resources/drag-image.png: Added.
663         * page/DragController.cpp:
664         (WebCore::DragController::tryDocumentDrag):
665
666 2009-06-13  Nate Chapin  <japhet@google.com>
667
668         Reviewed by Dimitri Glazkov.  Landed by Adam Barth.
669
670         Moved V8 Bindings for V8CustomXPathNSResolver to svn.webkit.org.
671
672         https://bugs.webkit.org/show_bug.cgi?id=26227
673
674         * bindings/v8/custom/V8CustomXPathNSResolver.cpp: Added.
675         (WebCore::V8CustomXPathNSResolver::V8CustomXPathNSResolver): Moved from src.chromium.org.
676         (WebCore::V8CustomXPathNSResolver::~V8CustomXPathNSResolver): Moved from src.chromium.org.
677         (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): Moved from src.chromium.org.
678         * bindings/v8/custom/V8CustomXPathNSResolver.h: Added.
679         * bindings/v8/custom/V8DocumentCustom.cpp: Updated includes.
680         (WebCore::CALLBACK_FUNC_DECL): Updated class name.
681
682 2009-06-13  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
683
684         Reviewed by Mark Rowe.  Landed by Adam Barth.
685
686         Remove obsolete declarations for old Symbian port
687         https://bugs.webkit.org/show_bug.cgi?id=26339
688
689         * platform/graphics/FloatPoint.h: Remove declarations for native SYMBIAN adaptation.
690         * platform/graphics/FloatRect.h: Ditto.
691         * platform/graphics/IntPoint.h: Ditto.
692         * platform/graphics/IntRect.h: Ditto.
693         * platform/graphics/IntSize.h: Ditto.
694
695 2009-06-13  Dirk Schulze  <krit@webkit.org>
696
697         Reviewed by Eric Seidel.
698
699         Added subRegion calculation to SVG filter. Every filter effect is
700         clipped to the filter region (according to the spec). This makes
701         ImageBuffers for filter effects smaller and we just need to take
702         care about big filter regions.
703         SVGFEImage needed a correction, to avoid an ASSERT. The two filter
704         effects feOffset and feFlood help to test the new subRegion code.
705
706         Tests: svg/filters/subRegion-one-effect.svg
707                svg/filters/subRegion-two-effects.svg
708
709         * platform/graphics/filters/FEBlend.h:
710         (WebCore::FEBlend::uniteChildEffectSubregions):
711         * platform/graphics/filters/FEColorMatrix.h:
712         (WebCore::FEColorMatrix::uniteChildEffectSubregions):
713         * platform/graphics/filters/FEComponentTransfer.h:
714         (WebCore::FEComponentTransfer::uniteChildEffectSubregions):
715         * platform/graphics/filters/FEComposite.h:
716         (WebCore::FEComposite::uniteChildEffectSubregions):
717         * platform/graphics/filters/Filter.h:
718         (WebCore::Filter::setSourceImage):
719         (WebCore::Filter::sourceImage):
720         * platform/graphics/filters/FilterEffect.cpp:
721         (WebCore::FilterEffect::FilterEffect):
722         (WebCore::FilterEffect::calculateUnionOfChildEffectSubregions):
723         (WebCore::FilterEffect::calculateEffectRect):
724         * platform/graphics/filters/FilterEffect.h:
725         (WebCore::FilterEffect::setUnionOfChildEffectSubregions):
726         (WebCore::FilterEffect::unionOfChildEffectSubregions):
727         (WebCore::FilterEffect::hasX):
728         (WebCore::FilterEffect::setHasX):
729         (WebCore::FilterEffect::hasY):
730         (WebCore::FilterEffect::setHasY):
731         (WebCore::FilterEffect::hasWidth):
732         (WebCore::FilterEffect::setHasWidth):
733         (WebCore::FilterEffect::hasHeight):
734         (WebCore::FilterEffect::setHasHeight):
735         (WebCore::FilterEffect::setEffectBuffer):
736         (WebCore::FilterEffect::uniteChildEffectSubregions):
737         * platform/graphics/filters/SourceAlpha.h:
738         (WebCore::SourceAlpha::calculateEffectRect):
739         * platform/graphics/filters/SourceGraphic.cpp:
740         (WebCore::SourceGraphic::calculateEffectRect):
741         (WebCore::SourceGraphic::apply):
742         * platform/graphics/filters/SourceGraphic.h:
743         * rendering/SVGRenderSupport.cpp:
744         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
745         (WebCore::SVGRenderBase::finishRenderSVGContent):
746         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
747         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
748         * svg/graphics/SVGResourceFilter.cpp:
749         (WebCore::SVGResourceFilter::prepareFilter):
750         (WebCore::SVGResourceFilter::applyFilter):
751         * svg/graphics/SVGResourceFilter.h:
752         * svg/graphics/filters/SVGFEConvolveMatrix.h:
753         (WebCore::FEConvolveMatrix::uniteChildEffectSubregions):
754         * svg/graphics/filters/SVGFEDiffuseLighting.h:
755         (WebCore::FEDiffuseLighting::uniteChildEffectSubregions):
756         * svg/graphics/filters/SVGFEDisplacementMap.h:
757         (WebCore::FEDisplacementMap::uniteChildEffectSubregions):
758         * svg/graphics/filters/SVGFEFlood.cpp:
759         (WebCore::FEFlood::apply):
760         * svg/graphics/filters/SVGFEGaussianBlur.h:
761         (WebCore::FEGaussianBlur::uniteChildEffectSubregions):
762         * svg/graphics/filters/SVGFEImage.cpp:
763         (WebCore::FEImage::FEImage):
764         * svg/graphics/filters/SVGFEImage.h:
765         * svg/graphics/filters/SVGFEMerge.cpp:
766         (WebCore::FEMerge::uniteEffectRect):
767         * svg/graphics/filters/SVGFEMerge.h:
768         * svg/graphics/filters/SVGFEMorphology.h:
769         (WebCore::FEMorphology::uniteChildEffectSubregions):
770         * svg/graphics/filters/SVGFEOffset.cpp:
771         (WebCore::FEOffset::apply):
772         * svg/graphics/filters/SVGFEOffset.h:
773         (WebCore::FEOffset::uniteChildEffectSubregions):
774         * svg/graphics/filters/SVGFESpecularLighting.h:
775         (WebCore::FESpecularLighting::uniteEffectRect):
776         * svg/graphics/filters/SVGFETile.cpp:
777         (WebCore::FETile::uniteChildEffectSubregions):
778         * svg/graphics/filters/SVGFETile.h:
779         * svg/graphics/filters/SVGFilter.cpp:
780         (WebCore::SVGFilter::calculateEffectSubRegion):
781         * svg/graphics/filters/SVGFilter.h:
782         (WebCore::SVGFilter::effectBoundingBoxMode):
783         (WebCore::SVGFilter::filterRegion):
784         (WebCore::SVGFilter::sourceImageRect):
785
786 2009-06-13  Peter Kasting  <pkasting@google.com>
787
788         Bustage: Fix broken GIFs on Cairo due to subtle typo.  Fix a warning.
789
790         * platform/image-decoders/ImageDecoder.h:
791         (WebCore::RGBA32Buffer::copyRowNTimes):
792         * platform/image-decoders/bmp/BMPImageReader.cpp:
793         (WebCore::BMPImageReader::processBitmasks):
794
795 2009-06-13  Peter Kasting  <pkasting@google.com>
796
797         GTK bustage fix.  "inline" is handled differently by different compilers.
798
799         * platform/image-decoders/ImageDecoder.h:
800         (WebCore::RGBA32Buffer::getAddr):
801         * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
802
803 2009-06-13  Peter Kasting  <pkasting@google.com>
804
805         Reviewed by Eric Seidel.
806
807         https://bugs.webkit.org/show_bug.cgi?id=25709 part nine
808         Factor Cairo-specific implementation out of ImageDecoder.h into
809         ImageDecoderCairo.cpp.  Add some comments to functions declared
810         in ImageDecoder.h.
811
812         * GNUmakefile.am:
813         * WebCore.vcproj/WebCore.vcproj:
814         * platform/image-decoders/ImageDecoder.h:
815         * platform/image-decoders/cairo: Added.
816         * platform/image-decoders/cairo/ImageDecoderCairo.cpp: Added.
817         (WebCore::RGBA32Buffer::RGBA32Buffer):
818         (WebCore::RGBA32Buffer::clear):
819         (WebCore::RGBA32Buffer::zeroFill):
820         (WebCore::RGBA32Buffer::copyBitmapData):
821         (WebCore::RGBA32Buffer::setSize):
822         (WebCore::RGBA32Buffer::asNewNativeImage):
823         (WebCore::RGBA32Buffer::hasAlpha):
824         (WebCore::RGBA32Buffer::setHasAlpha):
825         (WebCore::RGBA32Buffer::operator=):
826         (WebCore::RGBA32Buffer::width):
827         (WebCore::RGBA32Buffer::height):
828         (WebCore::RGBA32Buffer::getAddr):
829
830 2009-06-13  David Hyatt  <hyatt@apple.com>
831
832         Reviewed by Darin Adler.
833
834         Cleanup of the new MidpointState class.  Turn it into a struct instead.  Fix a mistaken
835         assertion removal and some unintentional whitespace changes.
836
837         * platform/text/BidiResolver.h:
838         (WebCore::MidpointState::reset):
839         * rendering/RenderBlock.h:
840         * rendering/bidi.cpp:
841         (WebCore::BidiRun::operator delete):
842         (WebCore::chopMidpointsAt):
843         (WebCore::checkMidpoints):
844         (WebCore::addMidpoint):
845         (WebCore::appendRunsForObject):
846         (WebCore::RenderBlock::findNextLineBreak):
847
848 2009-06-12  David Hyatt  <hyatt@apple.com>
849
850         Reviewed by Dan Bernstein.
851
852         https://bugs.webkit.org/show_bug.cgi?id=26367
853
854         Remove the global variables in bidi.cpp.  Make a new struct, MidpointState, that holds all of the
855         midpoint information.  Add the remaining global variables as arguments passed down through functions
856         as needed.
857
858         * platform/text/BidiResolver.h:
859         (WebCore::MidpointState::MidpointState):
860         (WebCore::MidpointState::reset):
861         (WebCore::BidiResolver::midpointState):
862         * rendering/RenderBlock.h:
863         * rendering/bidi.cpp:
864         (WebCore::BidiRun::operator delete):
865         (WebCore::chopMidpointsAt):
866         (WebCore::checkMidpoints):
867         (WebCore::addMidpoint):
868         (WebCore::appendRunsForObject):
869         (WebCore::RenderBlock::bidiReorderLine):
870         (WebCore::RenderBlock::layoutInlineChildren):
871         (WebCore::RenderBlock::determineStartPosition):
872         (WebCore::skipNonBreakingSpace):
873         (WebCore::shouldCollapseWhiteSpace):
874         (WebCore::requiresLineBox):
875         (WebCore::RenderBlock::generatesLineBoxesForInlineChild):
876         (WebCore::RenderBlock::skipTrailingWhitespace):
877         (WebCore::RenderBlock::skipLeadingWhitespace):
878         (WebCore::shouldSkipWhitespaceAfterStartObject):
879         (WebCore::RenderBlock::findNextLineBreak):
880
881 2009-06-12  Holger Hans Peter Freyther  <zecke@selfish.org>
882
883         Build fix for Qt. After recent ImageDeocder.h changes. I want
884         the original change to be backed out as the whole Skia merging
885         is going in the wrong direction. The discussion will happen in
886         the bugtracker.
887
888         https://bugs.webkit.org/show_bug.cgi?id=25709.
889
890         * platform/image-decoders/ImageDecoder.h:
891
892 2009-06-12  Jan Michael Alonzo  <jmalonzo@webkit.org>
893
894         Gtk build fix: include cstdio so we can use sscanf
895
896         Gtk/Win Cairo build fix: use isASCIISpace instead of isspace
897         Suggested by Brent Fulgham
898
899         * platform/image-decoders/xbm/XBMImageDecoder.cpp:
900         (WebCore::XBMImageDecoder::decodeDatum):
901
902 2009-06-12  Peter Kasting  <pkasting@google.com>
903
904         Yet another Skia bustage fix.
905
906         * platform/image-decoders/skia/ImageDecoder.h:
907         (WebCore::RGBA32Buffer::setSize): Avoid symbol name clash.  The better fix is to take an IntSize(); I'll do that later.
908
909 2009-06-12  Peter Kasting  <pkasting@google.com>
910
911         Fix remaining Cairo build bustage from
912         https://bugs.webkit.org/show_bug.cgi?id=25709 changes.  Use
913         Vector<char> in place of std::string.
914
915         * platform/image-decoders/xbm/XBMImageDecoder.cpp:
916         (WebCore::XBMImageDecoder::setData):
917         (WebCore::XBMImageDecoder::decodeHeader):
918         (WebCore::XBMImageDecoder::decodeDatum):
919         * platform/image-decoders/xbm/XBMImageDecoder.h:
920
921 2009-06-12  David Levin  <levin@chromium.org>
922
923         Reviewed by Darin Adler.
924
925         UString shouldn't create sharedBuffer for SmallStrings.
926         https://bugs.webkit.org/show_bug.cgi?id=26347
927
928         Change the call to use the method UString::Rep::sharedBuffer due
929         to changes in UString.
930
931         No noticable change in behavior, so no test.
932
933         * platform/text/StringImpl.cpp:
934         (WebCore::StringImpl::create):
935
936 2009-06-12  Peter Kasting  <pkasting@google.com>
937
938         Fix Chromium and some of Cairo build bustage, fallout from
939         https://bugs.webkit.org/show_bug.cgi?id=25709 changes.
940
941         * WebCore.vcproj/WebCore.vcproj: Add missing XBM decoder files.
942         * platform/image-decoders/skia/ImageDecoder.h:
943         (WebCore::RGBA32Buffer::copyRowNTimes): Fix typo that broke Skia GIF decoding.
944
945 2009-06-12  Simon Fraser  <simon.fraser@apple.com>
946
947         Reviewed by Dan Bernstein
948
949         https://bugs.webkit.org/show_bug.cgi?id=26095
950         
951         Fix crash when a renderer for an anonymous node is composited
952         by null-checking renderer()->node().
953         
954         Test: compositing/generated-content.html
955
956         * rendering/RenderLayerBacking.cpp:
957         (WebCore::RenderLayerBacking::createGraphicsLayer):
958         (WebCore::RenderLayerBacking::rendererHasBackground):
959         (WebCore::RenderLayerBacking::rendererBackgroundColor):
960         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
961         (WebCore::RenderLayerBacking::paintIntoLayer):
962
963 2009-06-12  Simon Fraser  <simon.fraser@apple.com>
964
965         Fix build when ACCELERATED_COMPOSITING is defined.
966
967         * loader/EmptyClients.h:
968         (WebCore::EmptyChromeClient::attachRootGraphicsLayer):
969         (WebCore::EmptyChromeClient::setNeedsOneShotDrawingSynchronization):
970         (WebCore::EmptyChromeClient::scheduleViewUpdate):
971         Add stubs for the compositing-related ChromeClient methods.
972         
973         * rendering/RenderLayerCompositor.cpp:
974         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
975         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
976         docWidth()/docHeight() became private. Use overflowWidth()/overflowHeight() instead, which
977         matches what is used to size the WebHTMLView.
978
979 2009-06-12  jorlow  <jorlow@chromium.org>
980
981         Reviewed by David Levin.
982
983         https://bugs.webkit.org/show_bug.cgi?id=26356
984         http://crbug.com/14006
985         Create custom bindings for v8.  The rest of these files are still
986         forked (so the review is happening on the chromium review site).
987         These bindings have been tested on a hacked up Chromium instance
988         (also running --single-process) and Android.
989
990         * bindings/v8/custom/V8StorageCustom.cpp: Added.
991
992 2009-06-12  Dmitry Titov  <dimich@chromium.org>
993
994         Reviewed by David Levin.
995
996         https://bugs.webkit.org/show_bug.cgi?id=26359
997         [v8] Add XMLHttpRequest to WorkerContextExecutionProxy.
998
999         * bindings/v8/WorkerContextExecutionProxy.cpp:
1000         (WebCore::WorkerContextExecutionProxy::ToV8Object): Add type == V8ClassIndex::XMLHTTPREQUEST to the convertable types.
1001         (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object): same.
1002         * bindings/v8/WorkerContextExecutionProxy.h: fix typo in the comment.
1003
1004 2009-06-12  Peter Kasting  <pkasting@google.com>
1005
1006         Reviewed by Eric Seidel.
1007
1008         https://bugs.webkit.org/show_bug.cgi?id=25709 part eight
1009         Replace placeholder Cairo BMP, ICO, XBM decoders with real ones.  Remove
1010         all the decoders from skia/ since they are now just mirrors of the Cairo
1011         ones.
1012
1013         * GNUmakefile.am:
1014         * WebCore.vcproj/WebCore.vcproj:
1015         * WebCoreSources.bkl:
1016         * platform/graphics/cairo/ImageSourceCairo.cpp:
1017         (WebCore::createDecoder): Pass IntSize() to ICOImageDecoder() so it will always decode the largest icon.  Enable XBM decoding on Windows.
1018         * platform/graphics/skia/ImageSourceSkia.cpp:
1019         * platform/graphics/wx/ImageSourceWx.cpp:
1020         (WebCore::createDecoder): Pass IntSize() to ICOImageDecoder() so it will always decode the largest icon.
1021         * platform/image-decoders/bmp/BMPImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/BMPImageDecoder.cpp.
1022         * platform/image-decoders/bmp/BMPImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/BMPImageDecoder.h.
1023         * platform/image-decoders/bmp/BMPImageReader.cpp: Copied from WebCore/platform/image-decoders/skia/BMPImageReader.cpp.
1024         * platform/image-decoders/bmp/BMPImageReader.h: Copied from WebCore/platform/image-decoders/skia/BMPImageReader.h.
1025         * platform/image-decoders/ico/ICOImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/ICOImageDecoder.cpp.
1026         * platform/image-decoders/ico/ICOImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/ICOImageDecoder.h.
1027         * platform/image-decoders/skia/BMPImageDecoder.cpp: Removed.
1028         * platform/image-decoders/skia/BMPImageDecoder.h: Removed.
1029         * platform/image-decoders/skia/BMPImageReader.cpp: Removed.
1030         * platform/image-decoders/skia/BMPImageReader.h: Removed.
1031         * platform/image-decoders/skia/GIFImageDecoder.cpp: Removed.
1032         * platform/image-decoders/skia/GIFImageDecoder.h: Removed.
1033         * platform/image-decoders/skia/GIFImageReader.cpp: Removed.
1034         * platform/image-decoders/skia/GIFImageReader.h: Removed.
1035         * platform/image-decoders/skia/ICOImageDecoder.cpp: Removed.
1036         * platform/image-decoders/skia/ICOImageDecoder.h: Removed.
1037         * platform/image-decoders/skia/JPEGImageDecoder.cpp: Removed.
1038         * platform/image-decoders/skia/JPEGImageDecoder.h: Removed.
1039         * platform/image-decoders/skia/PNGImageDecoder.cpp: Removed.
1040         * platform/image-decoders/skia/PNGImageDecoder.h: Removed.
1041         * platform/image-decoders/skia/XBMImageDecoder.cpp: Removed.
1042         * platform/image-decoders/skia/XBMImageDecoder.h: Removed.
1043         * platform/image-decoders/xbm/XBMImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/XBMImageDecoder.cpp.
1044         * platform/image-decoders/xbm/XBMImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/XBMImageDecoder.h.
1045
1046 2009-06-11  Peter Kasting  <pkasting@google.com>
1047
1048         Reviewed by Eric Seidel.
1049
1050         https://bugs.webkit.org/show_bug.cgi?id=25709 part seven
1051         Update Skia's ImageDecoder.h with a few changes designed to reduce the
1052         delta between specific implementations of ImageDecoder.h.  Update
1053         Cairo's ImageDecoder.h to sync up with the API changes in the Skia
1054         version in the last two chage sets.  Update Cairo's PNG/JPEG/GIF
1055         decoders to use the APIs as well.  All the Cairo image decoder changes
1056         are direct copies of the Skia versions except ImageDecoder.h, which is
1057         modified in the necessary ways for the differences between Cairo and
1058         Skia.
1059
1060         * platform/graphics/cairo/ImageSourceCairo.cpp:
1061         (WebCore::ImageSource::createFrameAtIndex): Use new RGBA32Buffer::asNewNativeImage() API.
1062         * platform/image-decoders/ImageDecoder.h: Sync up with Skia version.
1063         (WebCore::RGBA32Buffer::):
1064         (WebCore::RGBA32Buffer::RGBA32Buffer):
1065         (WebCore::RGBA32Buffer::clear):
1066         (WebCore::RGBA32Buffer::zeroFill):
1067         (WebCore::RGBA32Buffer::copyBitmapData):
1068         (WebCore::RGBA32Buffer::copyRowNTimes):
1069         (WebCore::RGBA32Buffer::setSize):
1070         (WebCore::RGBA32Buffer::asNewNativeImage):
1071         (WebCore::RGBA32Buffer::hasAlpha):
1072         (WebCore::RGBA32Buffer::disposalMethod):
1073         (WebCore::RGBA32Buffer::setHasAlpha):
1074         (WebCore::RGBA32Buffer::setDisposalMethod):
1075         (WebCore::RGBA32Buffer::setRGBA):
1076         (WebCore::RGBA32Buffer::operator=):
1077         (WebCore::RGBA32Buffer::width):
1078         (WebCore::RGBA32Buffer::height):
1079         (WebCore::RGBA32Buffer::getAddr):
1080         * platform/image-decoders/gif/GIFImageDecoder.cpp: Sync up with Skia version.
1081         (WebCore::GIFImageDecoder::initFrameBuffer):
1082         (WebCore::GIFImageDecoder::haveDecodedRow):
1083         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Sync up with Skia version.
1084         (WebCore::JPEGImageDecoder::outputScanlines):
1085         * platform/image-decoders/png/PNGImageDecoder.cpp: Sync up with Skia version.
1086         (WebCore::PNGImageDecoder::rowAvailable):
1087         * platform/image-decoders/skia/ImageDecoder.h: Add various typedefs or helper functions to minimize differences with Cairo version.  Reorder functions slightly to match reordering of Cairo's m_hasAlpha variable, which I moved to increase readability.
1088         (WebCore::RGBA32Buffer::):
1089         (WebCore::RGBA32Buffer::copyRowNTimes):
1090         (WebCore::RGBA32Buffer::setSize):
1091         (WebCore::RGBA32Buffer::asNewNativeImage):
1092         (WebCore::RGBA32Buffer::hasAlpha):
1093         (WebCore::RGBA32Buffer::disposalMethod):
1094         (WebCore::RGBA32Buffer::setHasAlpha):
1095         (WebCore::RGBA32Buffer::setStatus):
1096         (WebCore::RGBA32Buffer::setDisposalMethod):
1097         (WebCore::RGBA32Buffer::setRGBA):
1098         (WebCore::RGBA32Buffer::operator=):
1099         (WebCore::RGBA32Buffer::width):
1100         (WebCore::RGBA32Buffer::height):
1101         (WebCore::RGBA32Buffer::getAddr):
1102         * platform/image-decoders/skia/JPEGImageDecoder.cpp: Add #include needed by JPEG headers on some platforms, plus comment.
1103
1104 2009-06-12  Brent Fulgham  <bfulgham@webkit.org>
1105
1106         Unreviewed build correction.
1107
1108         Revert accidental configuration checkin.  Was not meant to
1109         be part of the last changeset.
1110
1111         * config.h:
1112
1113 2009-06-12  Brent Fulgham  <bfulgham@webkit.org>
1114
1115         Reviewed by Eric Seidel.
1116
1117         https://bugs.webkit.org/show_bug.cgi?id=26353
1118         Corrects handling of Cairo fonts that were getting out of
1119         sync due to default copy construction.  Also refactors
1120         some incorrect platform font destruction code that belongs
1121         in the font object's destructor.
1122
1123         * platform/graphics/win/FontPlatformData.h:
1124         * platform/graphics/win/FontPlatformDataCGWin.cpp:
1125         (WebCore::FontPlatformData::~FontPlatformData):
1126         * platform/graphics/win/FontPlatformDataCairoWin.cpp:
1127         (WebCore::FontPlatformData::platformDataInit):
1128         (WebCore::FontPlatformData::FontPlatformData):
1129         (WebCore::FontPlatformData::setFont):
1130         (WebCore::FontPlatformData::~FontPlatformData):
1131         * platform/graphics/win/FontPlatformDataWin.cpp:
1132         * platform/graphics/win/SimpleFontDataCGWin.cpp:
1133         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
1134         (WebCore::SimpleFontData::platformInit):
1135         (WebCore::SimpleFontData::platformWidthForGlyph):
1136         * platform/graphics/win/SimpleFontDataWin.cpp:
1137
1138 2009-06-12  Peter Kasting  <pkasting@google.com>
1139
1140         Reviewed by Eric Seidel.
1141
1142         * ChangeLog-2007-10-14: Update my email address.
1143         * ChangeLog-2008-08-10: Update my email address.
1144
1145 2009-06-12  Nate Chapin  <japhet@google.com>
1146
1147         Reviewed by David Levin.
1148
1149         Upstream V8Helpers.
1150
1151         https://bugs.webkit.org/show_bug.cgi?id=26332
1152
1153         * bindings/v8/V8Helpers.cpp: Added.
1154         (wrapNPObject): Moved from v8_helpers.cpp.
1155         (toV8Context): Moved from v8_helpers.cpp.
1156         (toV8Proxy): Moved from v8_helpers.cpp.
1157         * bindings/v8/V8Helpers.h: Added.
1158
1159 2009-06-12  Jessie Berlin  <jberlin@apple.com>
1160
1161         Reviewed by Mark Rowe.
1162
1163         https://bugs.webkit.org/show_bug.cgi?id=24792
1164         rdar://problem/6933055
1165
1166         Changes the radius in which cursor movement around the 4 arrow icon
1167         while pan-scrolling does not cause scrolling from around 10 pixels to
1168         15 pixels, similar to what is found in IE and Firefox.
1169
1170         * page/EventHandler.cpp:
1171         (WebCore::EventHandler::setPanScrollCursor):
1172         Factor out the no-pan-scroll radius.
1173         * platform/ScrollView.h:
1174         Create a constant for the no-pan-scroll radius.
1175         * rendering/RenderLayer.cpp:
1176         (WebCore::RenderLayer::panScrollFromPoint):
1177         Factor out the no-pan-scroll radius.
1178
1179 2009-06-12  Xan Lopez  <xlopez@igalia.com>
1180
1181         Reviewed by Gustavo Noronha.
1182
1183         https://bugs.webkit.org/show_bug.cgi?id=25609
1184         [GTK] Implement support for get_selection and get_n_selections
1185
1186         Only use the VisibleSelection object if it actually belongs to the
1187         object we are using.
1188
1189         This is pretty hacky-ish, but I can't seem to find a direct API to
1190         get the VisibleSelection for a given object, only the global one.
1191
1192         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1193         (selectionBelongsToObject):
1194         (webkit_accessible_text_get_n_selections):
1195         (webkit_accessible_text_get_selection):
1196
1197 2009-06-03  Eric Seidel  <eric@webkit.org>
1198
1199         Reviewed by Darin Adler.
1200
1201         Crash at Node::nodeIndex()
1202         https://bugs.webkit.org/show_bug.cgi?id=26044
1203
1204         This crash seems to be caused by calling nodeIndex() on
1205         and invalid Node pointer.  As far as I can tell, the most likely
1206         explanation is that the Range holding the node is actually
1207         deleted already (thus the memory is junk).  Looking at the code
1208         Range changes m_start.container() in its destructor to tell if
1209         the range is detached or not.  If somehow m_start.container() was
1210         cleared, the range will never be detached and the Document will end
1211         up with pointers to deleted ranges.  I don't know how to reproduce this
1212         any reproduction I could think of would hit ASSERTS in Debug mode.
1213         One reproduction I tried, did not crash in Release mode, even though it
1214         did in Debug mode.
1215
1216         I'm making a speculative fix by always detaching the Range from the document
1217         during ~Range.  This is safer, and all we lose is an ASSERT to prevent double-detach.
1218         
1219         Another solution would be to instead store an m_attached bool on the Range object, or
1220         expose a Document::isRangeAttached(range) call.  Either of those solutions
1221         could affect performance, so I went with this solution for now.
1222
1223         I also removed the RangeBoundaryPoint default constructor
1224         as it is not used anywhere (and is more likely to cause confusion).
1225
1226         Since I can't reproduce the crash, no test.
1227
1228         * dom/Document.cpp:
1229         (WebCore::Document::detachRange):
1230         * dom/Range.cpp:
1231         (WebCore::Range::~Range):
1232         (WebCore::Range::detach):
1233         * dom/RangeBoundaryPoint.h:
1234         (WebCore::RangeBoundaryPoint::RangeBoundaryPoint):
1235           RangeBoundaryPoints always have an m_containerNode, ASSERT that.
1236         (WebCore::RangeBoundaryPoint::set):
1237           ASSERT(container) to match all the other functions.
1238           All callers already ASSERT(container).  Since we only
1239           have reports if this crash from Release mode, I can only
1240           assume that those ASSERTs would have been hit in a Debug reproduction.
1241
1242 2009-06-11  Shinichiro Hamaji  <hamaji@chromium.org>
1243
1244         Reviewed by Adam Barth.
1245
1246         https://bugs.webkit.org/show_bug.cgi?id=25512
1247         Handle texts after unfinished special tags (i.e., script, style, textarea,
1248         title, xmp, and iframe) as the text node under the tags in view-source mode.
1249         Before this change, all texts in unfinished special tags cannot be seen even in view-source mode.
1250
1251         This was already done only for title. This change allows other special tags to be handled as well.
1252
1253         Test: fast/frames/viewsource-unfinished-tags.html
1254
1255         * html/HTMLTokenizer.cpp:
1256         (WebCore::HTMLTokenizer::parseNonHTMLText):
1257         (WebCore::HTMLTokenizer::parseTag):
1258         (WebCore::HTMLTokenizer::write):
1259         * html/HTMLTokenizer.h:
1260         (WebCore::HTMLTokenizer::State::inAnyNonHTMLText):
1261
1262 2009-06-11  Yongjun Zhang  <yongjun.zhang@nokia.com>
1263
1264         Reviewed by Ariya Hidayat.
1265
1266         https://bugs.webkit.org/show_bug.cgi?id=26291
1267
1268         [Qt] build break in ImageDecoderQt.cpp.
1269
1270         * platform/graphics/qt/ImageDecoderQt.cpp:
1271         (WebCore::ImageDecoderQt::reset):
1272         (WebCore::ImageDecoderQt::setData):
1273         (WebCore::ImageDecoderQt::isSizeAvailable):
1274         * platform/image-decoders/ImageDecoder.h:
1275         (WebCore::ImageDecoder::setSize):
1276
1277 2009-06-11  Simon Hausmann  <simon.hausmann@nokia.com>
1278
1279         Rubber-stamped by Ariya Hidayat.
1280
1281         Removed obsolete and unmaintained files from the old Symbian port.
1282
1283         * platform/symbian/FloatPointSymbian.cpp: Removed.
1284         * platform/symbian/FloatRectSymbian.cpp: Removed.
1285         * platform/symbian/IntPointSymbian.cpp: Removed.
1286         * platform/symbian/IntRectSymbian.cpp: Removed.
1287         * platform/symbian/IntSizeSymbian.cpp: Removed.
1288         * platform/text/symbian/StringImplSymbian.cpp: Removed.
1289         * platform/text/symbian/StringSymbian.cpp: Removed.
1290
1291 2009-06-10  Peter Kasting  <pkasting@google.com>
1292
1293         Reviewed by Eric Seidel.
1294
1295         https://bugs.webkit.org/show_bug.cgi?id=25709 part six
1296         Miscellaneous tiny changes.  The important bits here are the ANSI C++
1297         compliance fix in skia/ImageDecoders.h (needed to compile this file on
1298         non-MSVC) and some behavioral fixes for the XBM decoder that Chromium
1299         unit tests partly exposed.  Other changes are mostly cosmetic.
1300
1301         * platform/image-decoders/ImageDecoder.h: Make some variables private again.  This will break QTWebKit but those guys have agreed to wait on my finishing the ImageDecoder changes.
1302         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1303         (WebCore::GIFImageDecoder::initFrameBuffer): Use IntPoint() instead of the redundant IntPoint(0, 0).
1304         (WebCore::GIFImageDecoder::frameComplete): Use IntPoint() instead of the redundant IntPoint(0, 0).
1305         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1306         (WebCore::JPEGImageDecoder::outputScanlines): Remove obvious comments.
1307         * platform/image-decoders/png/PNGImageDecoder.cpp:
1308         (WebCore::PNGImageDecoder::rowAvailable): Remove obvious comments.
1309         * platform/image-decoders/skia/BMPImageReader.cpp:
1310         (WebCore::BMPImageReader::decodeBMP): Make more in line with other decoders' comments and structure, use a ref to decrease verbosity.
1311         (WebCore::BMPImageReader::processRLEData): Use a ref to decrease verbosity.
1312         (WebCore::BMPImageReader::processNonRLEData): Use a ref to decrease verbosity.
1313         * platform/image-decoders/skia/GIFImageDecoder.cpp: Use IntPoint() instead of the redundant IntPoint(0, 0).
1314         (WebCore::GIFImageDecoder::initFrameBuffer): Use IntPoint() instead of the redundant IntPoint(0, 0).
1315         (WebCore::GIFImageDecoder::frameComplete): Use IntPoint() instead of the redundant IntPoint(0, 0).
1316         * platform/image-decoders/skia/ImageDecoder.h:
1317         (WebCore::RGBA32Buffer::copyRowNTimes): Fix ANSI violation that MSVC let me compile (!).
1318         * platform/image-decoders/skia/JPEGImageDecoder.cpp:
1319         (WebCore::JPEGImageDecoder::outputScanlines): Remove obvious comments.
1320         * platform/image-decoders/skia/PNGImageDecoder.cpp:
1321         (WebCore::PNGImageDecoder::rowAvailable): Remove obvious comments.
1322         * platform/image-decoders/skia/XBMImageDecoder.cpp:
1323         (WebCore::XBMImageDecoder::frameBufferAtIndex): Return 0 for non-zero indexes, don't try to decode unnecessarily after failure or when the size couldn't be computed, make more in line with other decoders' comments and structure, call RGBA32Buffer::setRect() appropriately.
1324
1325 2009-06-10  Ojan Vafai  <ojan@chromium.org>
1326
1327         Reviewed by Eric Seidel.
1328
1329         The shadow node inside empty textareas gets collapsed in disabled
1330         textareas. This is a regression from moving the overflow from
1331         the shadow node to it's parent. The fix is to return true in
1332         RenderBlock::hasLineIfEmpty for textarea shadow nodes as we 
1333         currently do for input shadow nodes.
1334         
1335         https://bugs.webkit.org/show_bug.cgi?id=26296
1336         
1337         Test: fast/forms/empty-textarea-toggle-disabled.html
1338
1339         * rendering/RenderBlock.cpp:
1340         (WebCore::RenderBlock::hasLineIfEmpty):
1341
1342 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1343
1344         Reviewed by Gustavo Noronha.
1345
1346         https://bugs.webkit.org/show_bug.cgi?id=25609
1347         [GTK] Implement support for get_selection and get_n_selections
1348
1349         Implement atk_text_get_n_selections.
1350
1351         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1352         (webkit_accessible_text_get_n_selections):
1353
1354 2009-06-10  Dan Bernstein  <mitz@apple.com>
1355
1356         Reviewed by Anders Carlsson.
1357
1358         - fix <rdar://problem/6958664> REGRESSION (r42665): When I drag to pan a
1359           Google map in iPhoto Places, it drags a map tile instead
1360
1361         Calling stopLoadRequest() from notifyFinished() removed the
1362         ScriptElementData from the CachedScript's client set, which could make
1363         it eligible for purging. The fix is to call removeClient() only after
1364         executing the script, which protects it from being purged while it is
1365         in the document's queue of scripts to execute soon.
1366
1367         * dom/ScriptElement.cpp:
1368         (WebCore::ScriptElementData::execute): Call removeClient() here.
1369         (WebCore::ScriptElementData::notifyFinished): Instead of calling
1370         stopLoadRequest(), which calls removeClient(), just reset
1371         m_cachedScript.
1372
1373 2009-06-10  Jan Michael Alonzo  <jmalonzo@webkit.org>
1374
1375         Reviewed by Mark Rowe and Eric Seidel.
1376
1377         Update WebInspector localizedStrings.js with new resource tracking strings
1378         https://bugs.webkit.org/show_bug.cgi?id=26247
1379
1380         * English.lproj/localizedStrings.js:
1381
1382 2009-06-10  Feng Qian  <feng@chromium.org>
1383
1384         Reviewed by Eric Seidel.
1385
1386         Add Android specific files.
1387         https://bugs.webkit.org/show_bug.cgi?id=26280
1388
1389         * platform/text/android: Added.
1390         * platform/text/android/TextBreakIteratorInternalICU.cpp: Added.
1391
1392 2009-06-10  Feng Qian  <feng@chromium.org>
1393
1394         Reviewed by Eric Seidel.
1395
1396         Add Android specific file to WebCore/platform/android (part 9).
1397         https://bugs.webkit.org/show_bug.cgi?id=26266
1398
1399         * platform/android/TemporaryLinkStubs.cpp: Added.
1400
1401 2009-06-10  Feng Qian  <feng@chromium.org>
1402
1403         Reviewed by Eric Seidel.
1404
1405         Add Android platform specific files.
1406         https://bugs.webkit/org/show_bug.cgi?id=26265 (part 8).
1407
1408         * platform/android/SystemTimeAndroid.cpp: Added.
1409         * platform/android/WidgetAndroid.cpp: Added.
1410
1411 2009-06-10  Feng Qian  <feng@chromium.org>
1412
1413         Reviewed by Eric Seidel.
1414
1415         Add Android port files to WebCore/platform. (part 6).
1416         https://bugs.webkit.org/show_bug.cgi?id=26264
1417
1418         * platform/android/RenderThemeAndroid.cpp: Added.
1419         * platform/android/RenderThemeAndroid.h: Added.
1420
1421 2009-06-10  Feng Qian  <feng@chromium.org>
1422
1423         Reviewed by Eric Seidel.
1424
1425         Add Android port files to WebCore/platform (part 7).
1426         https://bugs.webkit.org/show_bug.cgi?id=23296
1427
1428         * platform/android/ScreenAndroid.cpp: Added.
1429         * platform/android/ScrollViewAndroid.cpp: Added.
1430         * platform/android/SearchPopupMenuAndroid.cpp: Added.
1431
1432 2009-06-10  Feng Qian  <feng@chromium.org>
1433
1434         Reviewed by Eric Seidel.
1435
1436         Add Android port files to WebCore/platform (part 5).
1437         https://bugs.webkit.org/show_bug.cgi?id=23296
1438
1439         * platform/android/LocalizedStringsAndroid.cpp: Added.
1440         * platform/android/PopupMenuAndroid.cpp: Added.
1441
1442 2009-06-10  Feng Qian  <feng@chromium.org>
1443
1444         Reviewed by Eric Seidel.
1445
1446         Add Android port files to WebCore/platform (part 4).
1447         https://bugs.webkit.org/show_bug.cgi?id=23296
1448
1449         * platform/android/KeyEventAndroid.cpp: Added.
1450         * platform/android/KeyboardCodes.h: Added.
1451
1452 2009-06-10  Feng Qian  <feng@chromium.org>
1453
1454         Reviewed by Eric Seidel.
1455
1456         Add Android port files to WebCore/platform (part 3).
1457         https://bugs.webkit.org/show_bug.cgi?id=23296
1458
1459         * platform/android/FileChooserAndroid.cpp: Added.
1460         * platform/android/FileSystemAndroid.cpp: Added.
1461
1462 2009-06-10  Feng Qian  <feng@chromium.org>
1463
1464         Reviewed by Eric Seidel.
1465
1466         Add Android port files to WebCore/platform (part 2).
1467         https://bugs.webkit.org/show_bug.cgi?id=23296
1468
1469         * platform/android/CursorAndroid.cpp: Added.
1470         * platform/android/DragDataAndroid.cpp: Added.
1471         * platform/android/EventLoopAndroid.cpp: Added.
1472
1473 2009-06-10  Nate Chapin  <japhet@google.com>
1474
1475         Reviewed by David Levin.
1476
1477         Finish moving V8Custom from src.chromium.org to svn.webkit.org.
1478
1479         https://bugs.webkit.org/show_bug.cgi?id=26258
1480
1481         * bindings/v8/custom/V8CustomBinding.cpp: Finished upstreaming.
1482         (WebCore::ACCESSOR_GETTER): Moved from v8_custom.cpp.
1483         (WebCore::INDEXED_ACCESS_CHECK): Moved from v8_custom.cpp.
1484         (WebCore::NAMED_ACCESS_CHECK): Moved from v8_custom.cpp.
1485         (WebCore::V8Custom::GetTargetFrame): Moved from v8_custom.cpp.
1486         (WebCore::V8Custom::DowncastSVGPathSeg): Moved from v8_custom.cpp.
1487         * bindings/v8/custom/V8CustomBinding.h: Finished upstreaming.
1488         * bindings/v8/custom/V8DatabaseCustom.cpp: Updated includes.
1489         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Updated includes.
1490         * bindings/v8/custom/V8SQLTransactionCustom.cpp: Updated includes.
1491         * bindings/v8/custom/V8WebKitPointConstructor.cpp: Added.
1492         (WebCore::CALLBACK_FUNC_DECL): Moved from v8_custom.cpp.
1493
1494 2009-06-10  Takeshi Yoshino  <tyoshino@google.com>
1495
1496         Reviewed by Justin Garcia.
1497
1498         Bug 26214: RenderTextControl: Remove ASSERT for checking that visiblePositionForIndex()'s return is not null.
1499         https://bugs.webkit.org/show_bug.cgi?id=26214
1500
1501         visiblePositionForIndex can return an instance that returns true for
1502         isNotNull(). One of common case is when the corresponding input element has
1503         "-webkit-user-select: none" style attribute. We should allow the case instead
1504         of putting ASSERT.
1505
1506         Test: fast/forms/input-select-webkit-user-select-none.html
1507
1508         * rendering/RenderTextControl.cpp:
1509         (WebCore::RenderTextControl::setSelectionRange):
1510
1511 2009-06-10  Roland Steiner <rolandsteiner@google.com>
1512
1513         Reviewed by Eric Seidel.
1514
1515         Bug 26197: Incorrect variable initialization in PlatformContextSkia.cpp
1516         https://bugs.webkit.org/show_bug.cgi?id=26197
1517
1518         The PlatformContextSkia constructor does a (very likely) wrong size
1519         initialization for its m_stateStack member:
1520
1521             m_stateStack(sizeof(State))
1522
1523         The intended initialization is probably rather
1524
1525             m_stateStack(1)
1526
1527         However, since this doesn't buy much (see also comment #4),
1528         I removed the initialization completely.
1529
1530         * platform/graphics/skia/PlatformContextSkia.cpp:
1531         (PlatformContextSkia::PlatformContextSkia): remove member initialization
1532
1533 2009-06-10  Dean McNamee  <deanm@chromium.org>
1534
1535         Reviewed by Eric Seidel.
1536
1537         When there is no backing bitmap, return a transparent pattern.
1538         https://bugs.webkit.org/show_bug.cgi?id=26061
1539
1540         Test: fast/canvas/canvas-empty-image-pattern.html
1541
1542         * platform/graphics/skia/PatternSkia.cpp:
1543         (WebCore::Pattern::createPlatformPattern):
1544
1545 2009-06-10  Dean McNamee  <deanm@chromium.org>
1546
1547         Reviewed by Eric Seidel.
1548
1549         Fix a crash for radial gradients with a zero radius.
1550         https://bugs.webkit.org/show_bug.cgi?id=26059
1551
1552         Test: fast/gradients/crash-on-zero-radius.html
1553
1554         * platform/graphics/skia/GradientSkia.cpp:
1555         (WebCore::Gradient::platformGradient):
1556
1557 2009-06-10  Peter Kasting  <pkasting@google.com>
1558
1559         Reviewed by Eric Seidel.
1560
1561         https://bugs.webkit.org/show_bug.cgi?id=25709 part five
1562         Rewrite users of ImageDecoder.h to use "safe" API calls, Skia side.
1563         This tweaks the RGBA32Buffer interfaces to be implementable by Cairo as
1564         well and modifies Skia's usage of those interfaces accordingly.  Once a
1565         similar change lands on the Cairo side, the Skia and Cairo decoders
1566         should be identical except for the implementation of RGBA32Buffer.
1567
1568         * platform/graphics/skia/ImageSourceSkia.cpp:
1569         (WebCore::ImageSource::createFrameAtIndex): Use new RGBA32Buffer::asNewNativeImage() function.
1570         * platform/image-decoders/skia/BMPImageReader.cpp:
1571         (WebCore::BMPImageReader::processNonRLEData): Use new RGBA32Buffer::zeroFill() function.
1572         * platform/image-decoders/skia/GIFImageDecoder.cpp:
1573         (WebCore::GIFImageDecoder::haveDecodedRow): Rewrite to use RGBA32Buffer::setRGBA(x, y, ...) calls as well as other RGBA32Buffer interface calls instead of knowing the underlying types inside the buffer; also try and add clarity.
1574         * platform/image-decoders/skia/ImageDecoder.h: Removed bitmap(), width(), and height().
1575         (WebCore::RGBA32Buffer::zeroFill): Added.
1576         (WebCore::RGBA32Buffer::copyBitmapData): Avoid using bitmap(), which is going away.
1577         (WebCore::RGBA32Buffer::copyRowNTimes): Added.
1578         (WebCore::RGBA32Buffer::setSize): Use new zeroFill() function.
1579         (WebCore::RGBA32Buffer::asNewNativeImage): Added.
1580         (WebCore::RGBA32Buffer::setRGBA): Condensed two versions into one that takes coordinates instead of a raw pointer.
1581
1582 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1583
1584         Reviewed by Gustavo Noronha.
1585
1586         https://bugs.webkit.org/show_bug.cgi?id=25671
1587         [GTK] Implement support for set_caret_offset
1588
1589         Make an implementation that actually works.
1590
1591         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1592         (webkit_accessible_text_set_caret_offset):
1593
1594 2009-06-10  Darin Fisher  <darin@chromium.org>
1595
1596         Reviewed by Dimitri Glazkov.
1597
1598         https://bugs.webkit.org/show_bug.cgi?id=26294
1599
1600         Make sure all member variables are initialized so that the default
1601         assignment operator and copy constructors do not read uninitialized
1602         memory.
1603
1604         * platform/network/ResourceResponseBase.cpp:
1605
1606 2009-06-10  Yury Semikhatsky  <yurys@chromium.org>
1607
1608         Reviewed by Timothy Hatcher.
1609
1610         Update main resource meta-data when resource tracking is disabled.
1611
1612         https://bugs.webkit.org/show_bug.cgi?id=26253
1613
1614         * inspector/InspectorController.cpp:
1615         (WebCore::InspectorController::getTrackedResource):
1616         (WebCore::InspectorController::willSendRequest):
1617         (WebCore::InspectorController::didReceiveResponse):
1618         (WebCore::InspectorController::didReceiveContentLength):
1619         (WebCore::InspectorController::didFinishLoading):
1620         (WebCore::InspectorController::didFailLoading):
1621         * inspector/InspectorController.h:
1622
1623 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1624
1625         Reviewed by Gustavo Noronha.
1626
1627         https://bugs.webkit.org/show_bug.cgi?id=25609
1628         [GTK] Implement support for get_selection and get_n_selections
1629
1630         Implement atk_text_get_selection.
1631
1632         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1633         (webkit_accessible_text_get_selection):
1634
1635 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1636
1637         Reviewed by Gustavo Noronha.
1638
1639         Do not check if our parent class has the finalize method, it's
1640         guaranteed to be there.
1641
1642         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1643         (webkit_accessible_finalize):
1644
1645 2009-06-10  Brent Fulgham  <bfulgham@webkit.org>
1646
1647         Build correct for Windows Cairo targets.
1648
1649         * WebCore.vcproj/WebCore.vcproj: Disable warning 4611 (interaction
1650           between '_setjmp' and C++ object destruction is non-portable) for
1651           the two Cairo targets.  This used to be disabled in a #pragma,
1652           but recent refactoring removed these lines.
1653
1654 2009-06-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1655
1656         Reviewed by Simon Hausmann.
1657
1658         Fix the build of PluginView on Qt with 64-bit where we disable plugins
1659         at compile time.
1660
1661         Use the FooNone.cpp files at compile-time.
1662
1663         * plugins/PluginPackageNone.cpp:
1664         * plugins/mac/PluginPackageMac.cpp:
1665         * plugins/mac/PluginViewMac.cpp:
1666
1667 2009-06-10  Simon Hausmann  <simon.hausmann@nokia.com>
1668
1669         Fix the Qt build.
1670
1671         ImageDecoderQt needs m_size and m_sizeAvailable to be protected.
1672
1673         * platform/image-decoders/ImageDecoder.h:
1674
1675 2009-06-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1676
1677         Reviewed by Simon Hausmann.
1678
1679         [Qt] Use absolute path for install_name on Mac
1680
1681         * WebCore.pro:
1682
1683 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1684
1685         Reviewed by Jan Alonzo.
1686
1687         https://bugs.webkit.org/show_bug.cgi?id=25415
1688         [GTK][ATK] Please implement support for get_text_at_offset
1689
1690         Reduce duplicated code to access the text of a AtkText
1691         object. doAXStringForRange calls text() internally, so we are
1692         doing exactly the same after the change.
1693
1694         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1695         (getGailTextUtilForAtk):
1696         (getPangoLayoutForAtk):
1697
1698 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1699
1700         Reviewed by Jan Alonzo.
1701
1702         https://bugs.webkit.org/show_bug.cgi?id=25415
1703         [GTK][ATK] Please implement support for get_text_at_offset
1704
1705         Pass a PangoLayout to the GailTextUtil function calls.
1706
1707         It's needed for LINE boundary calls to work correctly.
1708
1709         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1710         (updateLayout):
1711         (getPangoLayoutForAtk):
1712         (webkit_accessible_text_get_text_after_offset):
1713         (webkit_accessible_text_get_text_at_offset):
1714
1715 2009-06-10  Xan Lopez  <xlopez@igalia.com>
1716
1717         Reviewed by Jan Alonzo.
1718
1719         https://bugs.webkit.org/show_bug.cgi?id=25415
1720         [GTK][ATK] Please implement support for get_text_at_offset
1721
1722         Use GailUtilText instead of my crappy partial reimplementation of
1723         it. This should add support for LINE boundaries too, although it's
1724         mostly untested for now.
1725
1726         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1727         (getGailTextUtilForAtk):
1728         (webkit_accessible_text_get_text_after_offset):
1729         (webkit_accessible_text_get_text_at_offset):
1730
1731 2009-06-10  Jan Michael Alonzo  <jmalonzo@webkit.org>
1732
1733         Gtk build fix: include <stdio.h> as it is required in jpeglib.h
1734
1735         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1736
1737 2009-06-09  Peter Kasting  <pkasting@google.com>
1738
1739         Reviewed by Eric Seidel.
1740
1741         https://bugs.webkit.org/show_bug.cgi?id=25709 part four
1742         Most of the remaining Cairo changes needed before merging Skia/Cairo
1743         image decoders.  Most of these involve plumbing more error detection and
1744         handling (or, in some cases, merely the capability to detect errors, as
1745         e.g. Skia detects and handles image allocation failure while Cairo
1746         currently doesn't).  There is also some general cleanup and
1747         simplification; RGBA32Buffer::m_height and all associated functions have
1748         been removed (set but never used) and some places now rely on superclass
1749         implementations.
1750
1751         * platform/image-decoders/ImageDecoder.h:
1752         (WebCore::RGBA32Buffer::RGBA32Buffer): Remove m_height, ensureHeight() and associated stuff
1753         (WebCore::RGBA32Buffer::copyBitmapData): Add API function so refcounted backing stores (like Skia uses) can be used with GIFs
1754         (WebCore::RGBA32Buffer::setSize): Zero-fill image to avoid garbage
1755         (WebCore::RGBA32Buffer::height): Remove
1756         (WebCore::RGBA32Buffer::ensureHeight): Remove
1757         (WebCore::ImageDecoder::ImageDecoder): Keep member initialization in order, force subclasses to go through size() instead of accessing m_size directly
1758         (WebCore::ImageDecoder::isSizeAvailable): Check that decoding hasn't failed
1759         (WebCore::ImageDecoder::size): Check that decoding hasn't failed
1760         (WebCore::ImageDecoder::setSize): Protect against integer overflow
1761         (WebCore::ImageDecoder::isOverSize): Protect against integer overflow
1762         * platform/image-decoders/gif/GIFImageDecoder.cpp: Remove prepEmptyFrameBuffer()
1763         (WebCore::GIFImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling
1764         (WebCore::GIFImageDecoder::sizeNowAvailable): Add return values for better failure handling, rely on superclass setSize() for overflow protection
1765         (WebCore::GIFImageDecoder::initFrameBuffer): Add return values for better failure handling, remove prepEmptyFrameBuffer(), use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), use RGBA32Buffer::copyBitmapData() so backing store can be refcounted internally (Cairo won't be, Skia is), rely on superclass size() for better failure handling
1766         (WebCore::GIFImageDecoder::haveDecodedRow): Fix style violation, remove RGBA32Buffer::ensureHeight()
1767         (WebCore::GIFImageDecoder::frameComplete): Remove RGBA32Buffer::ensureHeight()
1768         * platform/image-decoders/gif/GIFImageDecoder.h: Remove prepEmptyFrameBuffer(), add return values for better failure handling
1769         * platform/image-decoders/gif/GIFImageReader.cpp:
1770         (GIFImageReader::do_lzw): Protect against array overflow, add comments
1771         (GIFImageReader::read): Protect against array overflow, be more tolerant of bad data, better failure handling
1772         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Remove MSVC-specific warning disable (bfulgham will move into build files)
1773         (WebCore::JPEGImageReader::decode): Better failure handling
1774         (WebCore::JPEGImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling
1775         (WebCore::JPEGImageDecoder::outputScanlines): Use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), rely on superclass size() for better failure handling, remove RGBA32Buffer::ensureHeight()
1776         * platform/image-decoders/jpeg/JPEGImageDecoder.h: Rely on superclass setSize() for overflow protection
1777         * platform/image-decoders/png/PNGImageDecoder.cpp: Remove MSVC-specific warning disable (bfulgham will move into build files)
1778         (WebCore::PNGImageDecoder::PNGImageDecoder): Don't allocate a slot in the framebuffer cache until it's needed
1779         (WebCore::PNGImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling
1780         (WebCore::PNGImageDecoder::frameBufferAtIndex): Don't allocate a slot in the framebuffer cache until it's needed
1781         (WebCore::PNGImageDecoder::decode): Don't allocate a slot in the framebuffer cache until it's needed
1782         (WebCore::PNGImageDecoder::decodingFailed): Fix style violation
1783         (WebCore::PNGImageDecoder::headerAvailable): Rely on superclass isSizeAvailable() and setSize() for overflow protection and better failure handling
1784         (WebCore::PNGImageDecoder::rowAvailable): Don't allocate a slot in the framebuffer cache until it's needed, use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), remove RGBA32Buffer::ensureHeight()
1785         (WebCore::PNGImageDecoder::pngComplete): Don't allocate a slot in the framebuffer cache until it's needed
1786
1787 2009-06-09  Kevin Ollivier  <kevino@theolliviers.com>
1788
1789         wx build fix, adding JSCore/assembler to the list of include dirs, and
1790         adding editing/ReplaceNodeSpanCommand.cpp to the build.
1791         
1792         * WebCoreSources.bkl:
1793         * webcore-base.bkl:
1794
1795 2009-06-09  Yury Semikhatsky  <yurys@chromium.org>
1796
1797         Reviewed by Timothy Hatcher.
1798
1799         When checking if the loader is the main resource loader make sure that the loader's frame is the main frame. 
1800
1801         https://bugs.webkit.org/show_bug.cgi?id=26218
1802
1803         * inspector/InspectorController.cpp:
1804         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
1805         (WebCore::InspectorController::identifierForInitialRequest):
1806         (WebCore::InspectorController::isMainResourceLoader):
1807         * inspector/InspectorController.h:
1808
1809 2009-06-09  Pierre d'Herbemont  <pdherbemont@apple.com>
1810
1811         Reviewed by Eric Seidel.
1812
1813         https://bugs.webkit.org/show_bug.cgi?id=26190
1814
1815         Test: media/controls-css-overload.html
1816
1817         * rendering/RenderMedia.cpp:
1818         (WebCore::RenderMedia::updateControls): Prevent NULL dereference in case containers gets hidden.
1819
1820 2009-06-08  Peter Kasting  <pkasting@google.com>
1821
1822         Reviewed by Eric Seidel.
1823
1824         https://bugs.webkit.org/show_bug.cgi?id=25709 part three
1825         Various minor cleanups to the Skia files.  Mostly non-functional, except
1826         for two specific changes:
1827         * JPEGs and PNGs were always marked as transparent; now they are only
1828           marked as transparent when they actually are.  I doubt this has much
1829           of an effect but in theory it could be used to optimize their display.
1830         * Instead of arbitrarily disallowing images over 32 * 1024 * 1024 px^2,
1831           only disallow images which are so large they will cause overflow in
1832           other parts of the code.  This should fix the testcase on
1833           http://code.google.com/p/chromium/issues/detail?id=3643.
1834
1835         * platform/image-decoders/skia/BMPImageReader.h:
1836         (WebCore::BMPImageReader::setRGBA): Use simpler non-static setRGBA() form
1837         * platform/image-decoders/skia/GIFImageDecoder.cpp:
1838         (WebCore::GIFImageDecoder::initFrameBuffer): Remove unneeded code, use more readable setRGBA() form
1839         (WebCore::GIFImageDecoder::haveDecodedRow): Fix style violation
1840         * platform/image-decoders/skia/GIFImageDecoder.h: Remove unneeded code
1841         * platform/image-decoders/skia/ImageDecoder.h:
1842         (WebCore::RGBA32Buffer::setSize): setSize() should just setStatus() when it fails since all callers were doing it
1843         (WebCore::ImageDecoder::isOverSize): Ease "oversized" image constraints to allow any image that won't overflow
1844         * platform/image-decoders/skia/JPEGImageDecoder.cpp:
1845         (WebCore::JPEGImageDecoder::outputScanlines): Remove unneeded code, mark JPEGs as non-transparent
1846         * platform/image-decoders/skia/PNGImageDecoder.cpp:
1847         (WebCore::PNGImageDecoder::decodingFailed): Fix style violation
1848         (WebCore::PNGImageDecoder::rowAvailable): Mark un-decoded PNGs as non-transparent (this will get reset later as needed)
1849         * platform/image-decoders/skia/XBMImageDecoder.cpp:
1850         (WebCore::XBMImageDecoder::frameBufferAtIndex): Remove unneeded code
1851
1852 2009-06-09  Darin Fisher  <darin@chromium.org>
1853
1854         Fix Chromium build bustage.
1855         
1856         CachedResource.cpp no longer compiles if USE(JSC) is not defined.  The
1857         problem is that this file is using a macro from StdLibExtras.h without
1858         including that file.  It just happenes to get that file via a JSC
1859         specific include.
1860
1861         * loader/CachedResource.cpp:
1862
1863 2009-06-09  Dean McNamee  <deanm@chromium.org>
1864
1865         Reviewed by Oliver Hunt.
1866
1867         Make sure the graphics backends are in sync with the canvas lineWidth state.
1868         https://bugs.webkit.org/show_bug.cgi?id=26187
1869
1870         Test: fast/canvas/canvas-line-width.html
1871
1872         * html/CanvasRenderingContext2D.cpp:
1873         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
1874
1875 2009-06-09  Michael Nordman  <michaeln@google.com>
1876
1877         Reviewed by Eric Seidel.
1878
1879         Proactively cancel pending requests at DocLoader dtor time,
1880         otherwise crashes can occur. 
1881
1882         https://bugs.webkit.org/show_bug.cgi?id=26230
1883         http://code.google.com/p/chromium/issues/detail?id=12161
1884
1885         Test: fast/frames/javascript-url-as-framesrc-crash.html
1886
1887         * loader/DocLoader.cpp:
1888         (WebCore::DocLoader::~DocLoader):
1889
1890 2009-06-09  Eric Seidel  <eric@webkit.org>
1891
1892         Reviewed by Darin Adler.
1893
1894         Fix ASSERT seen in shadow tree testing
1895         https://bugs.webkit.org/show_bug.cgi?id=25092
1896
1897         Test: svg/custom/use-mutation-event-crash.svg
1898
1899         * svg/SVGUseElement.cpp:
1900         (WebCore::SVGUseElement::instanceForShadowTreeElement):
1901
1902 2009-06-09  Brent Fulgham  <bfulgham@webkit.org>
1903
1904         Reviewed by Eric Seidel.
1905
1906         Fixes https://bugs.webkit.org/show_bug.cgi?id=22891
1907         Scrolling in Windows Cairo Broken if no background color set.
1908
1909         * platform/graphics/cairo/GradientCairo.cpp:
1910         (WebCore::Gradient::fill):  Use the GraphicsContext save and restore
1911           methods (rather than the Cairo-only functions) so that the Windows
1912           device context is kept in sync.
1913         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1914         (WebCore::GraphicsContext::GraphicsContext): Add new constructor call
1915           to sync Windows HDC with Cairo surface.
1916         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
1917         (WebCore::GraphicsContextPlatformPrivate::syncContext): Provide
1918           declaration for Windows HDC sync method (and stub for non-Windows
1919           Cairo implementations).
1920         * platform/graphics/cairo/ImageCairo.cpp:
1921         (WebCore::BitmapImage::draw): Use GraphicsContext save and restore
1922           methods (rather than the Cairo-only functions) so that the Windows
1923           device context is kept in sync.
1924         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1925         (WebCore::CairoContextWithHDC): New method to create a valid Cairo
1926           context for a given HDC.
1927         (WebCore::GraphicsContext::GraphicsContext): Modify constructor to
1928           use new CairoContextWithHDC call.
1929         (WebCore::GraphicsContext::getWindowsContext): Revise to match
1930           behavior of CG implementation.
1931         (WebCore::GraphicsContext::releaseWindowsContext): Revise to match
1932           behavior of CG implementation.
1933         (WebCore::GraphicsContextPlatformPrivate::concatCTM): Get rid of
1934           incorrect new HDC, and use object's HDC member for dealing with
1935           concatCTM operations.
1936         (WebCore::GraphicsContextPlatformPrivate::syncContext): New method
1937           to sync Windows HDC with Cairo context.
1938         * platform/graphics/win/ImageCairoWin.cpp:
1939         (WebCore::BitmapImage::getHBITMAPOfSize): Revise implementation to
1940           match CG behavior.
1941
1942 2009-06-09  Jian Li  <jianli@chromium.org>
1943
1944         Reviewed by David Levin.
1945
1946         Bug 26196: Fix the problem that worker's importScripts fails if the
1947         script URL is redirected from different origin.
1948         https://bugs.webkit.org/show_bug.cgi?id=26196
1949
1950         Test: http/tests/workers/worker-importScripts.html
1951
1952         The fix is to pass an additional enum parameter to the loader in
1953         order to tell it to perform the redirect origin check or not.
1954
1955         * loader/DocumentThreadableLoader.cpp:
1956         (WebCore::DocumentThreadableLoader::create):
1957         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
1958         (WebCore::DocumentThreadableLoader::willSendRequest):
1959         * loader/DocumentThreadableLoader.h:
1960         * loader/ThreadableLoader.cpp:
1961         (WebCore::ThreadableLoader::create):
1962         (WebCore::ThreadableLoader::loadResourceSynchronously):
1963         * loader/ThreadableLoader.h:
1964         (WebCore::):
1965         * loader/WorkerThreadableLoader.cpp:
1966         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
1967         (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
1968         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
1969         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
1970         * loader/WorkerThreadableLoader.h:
1971         (WebCore::WorkerThreadableLoader::create):
1972         * workers/WorkerContext.cpp:
1973         (WebCore::WorkerContext::importScripts):
1974         * xml/XMLHttpRequest.cpp:
1975         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
1976
1977 2009-06-09  Anand K. Mistry  <amistry@google.com>
1978
1979         Reviewed by Dimitri Glazkov.
1980
1981         Paint bitmaps with the alpha channel in Skia.
1982         https://bugs.webkit.org/show_bug.cgi?id=26037
1983
1984         Test: fast/canvas/drawImage-with-globalAlpha.html
1985
1986         * platform/graphics/skia/ImageSkia.cpp:
1987         (WebCore::paintSkBitmap):
1988         * platform/graphics/skia/PlatformContextSkia.cpp:
1989         (PlatformContextSkia::getAlpha):
1990         * platform/graphics/skia/PlatformContextSkia.h:
1991
1992 2009-06-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1993
1994         Reviewed by Xan Lopez.
1995
1996         https://bugs.webkit.org/show_bug.cgi?id=26104
1997         [GTK] Make NetworkRequest a proper GObject and expose SoupMessage
1998
1999         Refactor how SoupMessage is handled, so that our ResourceRequest
2000         object doesn't have to store it as a member, which complicates
2001         managing ResourceRequest's lifetime.
2002
2003         * platform/network/soup/ResourceHandleSoup.cpp:
2004         (WebCore::ResourceHandle::startHttp):
2005         * platform/network/soup/ResourceRequest.h:
2006         (WebCore::ResourceRequest::ResourceRequest):
2007         (WebCore::ResourceRequest::doUpdatePlatformRequest):
2008         (WebCore::ResourceRequest::doUpdateResourceRequest):
2009         * platform/network/soup/ResourceRequestSoup.cpp:
2010         (WebCore::ResourceRequest::toSoupMessage):
2011         (WebCore::ResourceRequest::updateFromSoupMessage):
2012
2013 2009-06-09  Simon Hausmann  <simon.hausmann@nokia.com>
2014
2015         Fix the Qt build, the time functions moved into the WTF namespace.
2016
2017         * bridge/qt/qt_runtime.cpp:
2018         (JSC::Bindings::convertValueToQVariant):
2019         (JSC::Bindings::convertQVariantToValue):
2020
2021 2009-06-08  Brady Eidson  <beidson@apple.com>
2022
2023         Reviewed by Antti Koivisto
2024
2025         <rdar://problem/6727495> Repro crash in WebCore::Loader::Host::servePendingRequests() and dupes.
2026
2027         Test: http/tests/loading/deleted-host-in-resource-load-delegate-callback.html
2028
2029         Loader::Host objects were manually managed via new/delete.
2030         There's a variety of circumstances where a Host might've been deleted while it was still in the middle
2031         of a resource load delegate callback.
2032         Changing them to be RefCounted then adding protectors in the callbacks makes this possibility disappear.
2033
2034         At the same time, remove ProcessingResource which was an earlier fix for this same problem that wasn't
2035         fully implemented.
2036
2037         * loader/loader.cpp:
2038         (WebCore::Loader::Loader):
2039         (WebCore::Loader::load):
2040         (WebCore::Loader::servePendingRequests):
2041         (WebCore::Loader::resumePendingRequests):
2042         (WebCore::Loader::cancelRequests):
2043         (WebCore::Loader::Host::didFinishLoading):
2044         (WebCore::Loader::Host::didFail):
2045         (WebCore::Loader::Host::didReceiveResponse):
2046         (WebCore::Loader::Host::didReceiveData):
2047         * loader/loader.h:
2048         (WebCore::Loader::Host::create):
2049
2050 2009-06-08  Dmitry Titov  <dimich@chromium.org>
2051
2052         Reviewed by David Levin.
2053
2054         https://bugs.webkit.org/show_bug.cgi?id=26126
2055         Refactor methods of WorkerMessagingProxy used to talk to main-thread loader into new interface.
2056
2057         Split a couple of methods used to schedule cross-thread tasks between worker thread and loader thread
2058         implemented on WorkerMessagingProxy into a separate interface so the loading can be implemented in
2059         Chromium's workers.
2060
2061         No changes in functionality so no tests added.
2062
2063         * GNUmakefile.am:
2064         * WebCore.vcproj/WebCore.vcproj:
2065         * WebCore.xcodeproj/project.pbxproj:
2066         Added WorkerLoaderProxy.h to the bulid.
2067
2068         * bindings/js/WorkerScriptController.cpp:
2069         (WebCore::WorkerScriptController::evaluate): WorkerThread::workerObjectProxy() now returns & instead of *
2070         * bindings/v8/WorkerScriptController.cpp:
2071         (WebCore::WorkerScriptController::evaluate): same.
2072         * workers/WorkerContext.cpp:
2073         (WebCore::WorkerContext::~WorkerContext): same.
2074         (WebCore::WorkerContext::reportException): same.
2075         (WebCore::WorkerContext::addMessage): same.
2076         (WebCore::WorkerContext::postMessage): same.
2077
2078         * loader/WorkerThreadableLoader.cpp:
2079         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
2080         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
2081         (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
2082         (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
2083         (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
2084         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
2085         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
2086         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
2087         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
2088         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
2089         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation):
2090         Use WorkerLoaderProxy instead of WorkerMessagingProxy for the MainThreadBridge.
2091         Mostly rename.
2092
2093         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
2094         In addition to using WorkerLoaderProxy instead of WorkerMessagingProxy, the check for
2095         AskedToTerminate is removed. It seems to be an optimization for a very small number of cases
2096         when worker termination is requested a very short time before the request to load something
2097         (XHR or importScript) was dispatched on the main thread.
2098
2099         * loader/WorkerThreadableLoader.h:
2100         Now keeps a pointer to WorkerLoaderProxy rather then to a WorkerMessagingProxy. This allows
2101         to implement WorkerThreadableLoader for Chromium.
2102
2103         * workers/WorkerLoaderProxy.h: Added.
2104         (WebCore::WorkerLoaderProxy::~WorkerLoaderProxy):
2105
2106         * workers/WorkerMessagingProxy.cpp:
2107         (WebCore::WorkerMessagingProxy::startWorkerContext):
2108         (WebCore::WorkerMessagingProxy::postTaskToLoader): Added ASSERT since this needs to be implemented for nested workers.
2109         * workers/WorkerMessagingProxy.h:
2110         Derived from WorkerLoaderProxy, the methods for posting tasks cross-thread are now virtual.
2111         Removed unused postTaskToWorkerContext() method.
2112
2113         * workers/WorkerThread.cpp:
2114         (WebCore::WorkerThread::create):
2115         (WebCore::WorkerThread::WorkerThread):
2116         * workers/WorkerThread.h:
2117         (WebCore::WorkerThread::workerLoaderProxy):
2118         * workers/WorkerThread.cpp:
2119         (WebCore::WorkerThread::create):
2120         (WebCore::WorkerThread::WorkerThread):
2121         (WebCore::WorkerThread::workerThread):
2122         * workers/WorkerThread.h:
2123         (WebCore::WorkerThread::workerLoaderProxy):
2124         (WebCore::WorkerThread::workerObjectProxy):
2125         WorkerThread gets a new member of type WorkerLoaderProxy&, and accessor.
2126         Also, existing WorkerObjectProxy* member is now WorkerObjectProxy& because it can't be null.
2127
2128 2009-06-08  Dimitri Glazkov  <dglazkov@chromium.org>
2129
2130         Reviewed by Eric Seidel.
2131
2132         https://bugs.webkit.org/show_bug.cgi?id=26238
2133         Add parseDate helper to HTTPParsers, which uses WTF::parseDateFromNullTerminatedCharacters.
2134
2135         * ForwardingHeaders/runtime/DateMath.h: Removed.
2136         * ForwardingHeaders/wtf/DateMath.h: Copied from WebCore/ForwardingHeaders/runtime/DateMath.h.
2137         * platform/network/HTTPParsers.cpp:
2138         (WebCore::parseDate): Added.
2139         * platform/network/HTTPParsers.h:
2140         * platform/network/ResourceResponseBase.cpp:
2141         (WebCore::parseDateValueInHeader): Changed to use the new helper.
2142
2143 2009-06-08  Adam Langley  <agl@google.com>
2144
2145         Reviewed by Eric Siedel.
2146
2147         Chromium Linux ignored the background color on <select>s. Rather
2148         than encode magic colours, we start with a base color (specified
2149         via CSS) and derive the other colors from it. Thus, setting the
2150         CSS background-color now correctly changes the colour of the
2151         control.
2152
2153         This should not change the appearence controls without
2154         background-colors. However, <select>s with a background-color
2155         will now renderer correctly, which may require rebaselining
2156         pixel tests in the Chromium tree.
2157
2158         https://bugs.webkit.org/show_bug.cgi?id=26030
2159         http://code.google.com/p/chromium/issues/detail?id=12596
2160
2161         * platform/graphics/Color.cpp:
2162         (WebCore::Color::getHSL): new member
2163         * platform/graphics/Color.h:
2164         * rendering/RenderThemeChromiumLinux.cpp:
2165         (WebCore::RenderThemeChromiumLinux::systemColor):
2166         (WebCore::brightenColor):
2167         (WebCore::paintButtonLike):
2168
2169 2009-06-08  Victor Wang <victorw@chromium.org>
2170
2171         Reviewed by Dimitri Glazkov.
2172
2173         https://bugs.webkit.org/show_bug.cgi?id=26087
2174         Bug 26087: Removing element in JS crashes Chrome tab if it fired the change event
2175
2176         Fix tab crash caused by destroying the popup list that fired the change event on abandon.
2177
2178         If a popup list is abandoned (press a key to jump to an item
2179         and then use tab or mouse to get away from the select box),
2180         the current code fires a change event in PopupListBox::updateFromElemt().
2181         The JS that listens to this event may destroy the object and cause the
2182         rest of popup list code crashes.
2183
2184         The updateFromElement() is called before abandon() and this causes
2185         the selected index to be discarded after updateFromElement(). From
2186         the code comments, this appears to be the reason why valueChanged is
2187         called in updateFromElement.
2188
2189         Fix the issue by removing the valueChanged call in updateFromElement,
2190         saving the selected index that we should accept on abandon and pass
2191         it to the valueChange in abandon().
2192
2193         A manual test has been added.
2194
2195         * manual-tests/chromium: Added.
2196         * manual-tests/chromium/onchange-reload-popup.html: Added.
2197         * platform/chromium/PopupMenuChromium.cpp:
2198         (WebCore::PopupListBox::PopupListBox):
2199         (WebCore::PopupListBox::handleKeyEvent):
2200         (WebCore::PopupListBox::abandon):
2201         (WebCore::PopupListBox::updateFromElement):
2202
2203 2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2204
2205         Reviewed by Simon Hausmann.
2206
2207         [Qt] Disable a few warnings on Windows
2208
2209         * WebCore.pro:
2210
2211 2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2212
2213         Reviewed by Simon Hausmann.
2214
2215         [Qt] Don't enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH on Windows
2216         
2217         This define was brought in after refactoring some code from
2218         PluginPackage(Qt|Gtk).cpp into the shared PluginPackage.cpp.
2219
2220         * WebCore.pro:
2221
2222 2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2223
2224         Reviewed by Simon Hausmann.
2225
2226         [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build
2227
2228         * WebCore.pro:
2229
2230 2009-06-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2231
2232         Reviewed by Ariya Hidayat.
2233
2234         [Qt] Build fix when NETSCAPE_PLUGIN_API support is turned off
2235         https://bugs.webkit.org/show_bug.cgi?id=26244
2236
2237         * WebCore.pro: Define PLUGIN_PACKAGE_SIMPLE_HASH only if
2238         NETSCAPE_PLUGIN_API is turned on
2239         * plugins/PluginPackage.cpp: Guard initializeBrowserFuncs()
2240         * plugins/PluginViewNone.cpp: Match guards with PluginView.h
2241
2242 2009-06-07  Dan Bernstein  <mitz@apple.com>
2243
2244         Reviewed by Sam Weinig.
2245
2246         - fix <rdar://problem/6931661> -[WebView _selectionIsAll] returns YES
2247           when the selection is inside a text field.
2248
2249         * editing/VisibleSelection.cpp:
2250         (WebCore::VisibleSelection::isAll): Return false if the selection is in
2251         a shadow tree.
2252
2253 2009-06-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2254
2255         Reviewed by Holger Freyther.
2256
2257         https://bugs.webkit.org/show_bug.cgi?id=26106
2258         [GTK] Crashes when you keep a combo open during a page transition, then close it
2259
2260         Hide the combo popup and disconnect from its signals during
2261         PopupMenu destruction to handle this exceptional case with no
2262         crash.
2263
2264         * platform/gtk/PopupMenuGtk.cpp:
2265         (WebCore::PopupMenu::~PopupMenu):
2266         (WebCore::PopupMenu::menuUnmapped):
2267
2268 2009-06-06  Sam Weinig  <sam@webkit.org>
2269
2270         Reviewed by Dan Bernstein.
2271
2272         Fix for <rdar://problem/6930540>
2273         REGRESSION (r43797): Serif and fantasy font-family names are wrong in result of getComputedStyle
2274
2275         Test: fast/css/font-family-builtins.html
2276
2277         * css/CSSComputedStyleDeclaration.cpp:
2278         (WebCore::identifierForFamily): Fix typo. Fantasy family should be
2279         -webkit-fantasy not, -webkit-serif.
2280
2281 2009-06-06  Sam Weinig  <sam@webkit.org>
2282
2283         Reviewed by Brady Eidson.
2284
2285         Fix for <rdar://problem/6936235>
2286         Need to support StorageEvent.storageArea to meet the Web Storage spec
2287
2288         * storage/LocalStorageArea.cpp:
2289         (WebCore::LocalStorageArea::dispatchStorageEvent): Pass the localStorage for
2290         the frame being dispatched to.
2291         * storage/SessionStorageArea.cpp:
2292         (WebCore::SessionStorageArea::dispatchStorageEvent): Ditto, only for sessionStorage.
2293
2294         * storage/StorageEvent.cpp:
2295         (WebCore::StorageEvent::StorageEvent):
2296         (WebCore::StorageEvent::initStorageEvent):
2297         * storage/StorageEvent.h:
2298         (WebCore::StorageEvent::create):
2299         (WebCore::StorageEvent::storageArea):
2300         * storage/StorageEvent.idl:
2301         Add storageArea member.
2302
2303 2009-06-05  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2304
2305         Reviewed by Anders Carlsson.
2306
2307         Fix WMLInputElement initialization code. Don't call initialize() on attach(), let
2308         WMLCardElement handle initialization once, after the document has been parsed.
2309
2310         To keep layout tests working introduce a new function in Document.idl: initializeWMLPageState().
2311         WMLTestCase.js (the wml/ layout test framework) will use it to simulate a regular WML document,
2312         whose variable state gets initialized on WMLDocument::finishedParsing(). Force initialization
2313         of the WML variable state, right after the dynamically created elements have been inserted into the tree.
2314
2315         * dom/Document.cpp:
2316         (WebCore::Document::initializeWMLPageState):
2317         * dom/Document.h:
2318         * dom/Document.idl:
2319         * wml/WMLCardElement.cpp:
2320         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
2321         * wml/WMLDocument.cpp:
2322         (WebCore::WMLDocument::finishedParsing):
2323         (WebCore::WMLDocument::initialize):
2324         * wml/WMLDocument.h:
2325         * wml/WMLInputElement.cpp:
2326         (WebCore::WMLInputElement::initialize):
2327         * wml/WMLInputElement.h:
2328
2329 2009-06-05  Sam Weinig  <sam@webkit.org>
2330
2331         Reviewed by Anders Carlsson.
2332
2333         Add ononline and onoffline attributes for the <body> element. 
2334
2335         * html/HTMLAttributeNames.in: Added ononlineAttr and onofflineAttr.
2336         * html/HTMLBodyElement.cpp:
2337         (WebCore::HTMLBodyElement::parseMappedAttribute): Map ononlineAttr
2338         and onofflineAttr to window event listeners.
2339
2340 2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2341
2342         Reviewed by Simon Hausmann.
2343
2344         [Qt] Add missing includes of config.h
2345
2346         * platform/qt/QWebPopup.cpp:
2347         * platform/text/qt/TextBreakIteratorQt.cpp:
2348
2349 2009-06-05  Fumitoshi Ukai  <ukai@google.com>
2350
2351         Reviewed by Dimitri Glazkov.
2352
2353         https://bugs.webkit.org/show_bug.cgi?id=26215
2354         Try to fix the Chromium build.
2355
2356         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
2357         (WebCore::fillBMPGlyphs):
2358         (WebCore::fillNonBMPGlyphs):
2359
2360 2009-06-05  Shinichiro Hamaji  <hamaji@chromium.org>
2361
2362         Bug 26160: Compile fails in MacOSX when GNU fileutils are installed
2363
2364         <https://bugs.webkit.org/show_bug.cgi?id=26160>
2365
2366         Reviewed by Alexey Proskuryakov.
2367
2368         Use /bin/ln instead of ln for cases where this command is used with -h option.
2369         As this option is not supported by GNU fileutils, this change helps users 
2370         who have GNU fileutils in their PATH.
2371
2372         * WebCore.xcodeproj/project.pbxproj:
2373
2374 2009-06-03  Ben Murdoch  <benm@google.com>
2375
2376         <https://bugs.webkit.org/show_bug.cgi?id=25710> HTML5 Database stops executing transactions if the URL hash changes while a transaction is open and an XHR is in progress.
2377
2378         Reviewed by Alexey Proskuryakov.
2379
2380         Fix a bug that causes database transactions to fail if a history navigation to a hash fragment of the same document is made while resources (e.g. an XHR) are loading
2381
2382         Test: storage/hash-change-with-xhr.html
2383
2384         * loader/DocumentLoader.cpp:
2385         (WebCore::DocumentLoader::stopLoading):
2386         * loader/DocumentLoader.h:
2387         * loader/FrameLoader.cpp:
2388         (WebCore::FrameLoader::stopLoading):
2389         (WebCore::FrameLoader::stopAllLoaders):
2390         * loader/FrameLoader.h:
2391         * loader/FrameLoaderTypes.h:
2392         (WebCore::):
2393         * page/Page.cpp:
2394         (WebCore::Page::goToItem):
2395         * WebCore.base.exp:
2396
2397 2009-06-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2398
2399         Reviewed by Simon Hausmann.
2400
2401         [Qt] Make sure the correct config.h is included when shadowbuilding
2402
2403         * WebCore.pro:
2404
2405 2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2406
2407         Reviewed by Simon Hausmann.
2408
2409         Fix Qt build after r44452
2410
2411         * platform/network/qt/QNetworkReplyHandler.cpp:
2412         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2413
2414 2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2415
2416         Reviewed by Simon Hausmann.
2417
2418         [Qt] Remove some dead code (MenuEventProxy)
2419
2420         * WebCore.pro:
2421         * platform/ContextMenu.h:
2422         * platform/qt/ContextMenuQt.cpp:
2423         * platform/qt/MenuEventProxy.h: Removed.
2424
2425 2009-06-05  Xan Lopez  <xlopez@igalia.com>
2426
2427         More build fixes.
2428
2429         * platform/graphics/gtk/GlyphPageTreeNodePango.cpp:
2430         (WebCore::GlyphPage::fill):
2431
2432 2009-06-05  Xan Lopez  <xlopez@igalia.com>
2433
2434         Fix the GTK+ build.
2435
2436         * GNUmakefile.am:
2437         * platform/graphics/gtk/FontCacheGtk.cpp:
2438         (WebCore::FontCache::getFontDataForCharacters):
2439         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
2440         (WebCore::GlyphPage::fill):
2441
2442 2009-06-05  Antti Koivisto  <antti@apple.com>
2443
2444         Try to fix Windows (and possibly other platforms) build.
2445
2446         Restore ResourceResponseBase::lastModifiedDate() and setLastModifiedDate() removed in previous commit.
2447         for now since PluginStream used on some platforms expects them and calculations differ from plain 
2448         Last-modified header value.
2449         
2450         Also include <wtf/MathExtras.h> to get isfinite().
2451
2452         * platform/network/ResourceResponseBase.cpp:
2453         (WebCore::ResourceResponseBase::adopt):
2454         (WebCore::ResourceResponseBase::copyData):
2455         (WebCore::ResourceResponseBase::setLastModifiedDate):
2456         (WebCore::ResourceResponseBase::lastModifiedDate):
2457         * platform/network/ResourceResponseBase.h:
2458         * platform/network/cf/ResourceResponseCFNet.cpp:
2459         (WebCore::ResourceResponse::platformLazyInit):
2460
2461 2009-06-03  Antti Koivisto  <antti@apple.com>
2462
2463         Reviewed by Dave Kilzer.
2464
2465         https://bugs.webkit.org/show_bug.cgi?id=13128
2466         Safari not obeying cache header
2467         
2468         Implement RFC 2616 cache expiration calculations in WebKit instead of
2469         relying on the networking layer.
2470
2471         * ForwardingHeaders/runtime/DateMath.h: Added.
2472         * WebCore.base.exp:
2473         * loader/Cache.cpp:
2474         (WebCore::Cache::revalidationSucceeded):
2475         * loader/CachedResource.cpp:
2476         (WebCore::CachedResource::CachedResource):
2477         (WebCore::CachedResource::isExpired):
2478         (WebCore::CachedResource::currentAge):
2479         (WebCore::CachedResource::freshnessLifetime):
2480         (WebCore::CachedResource::setResponse):
2481         (WebCore::CachedResource::updateResponseAfterRevalidation):
2482         (WebCore::CachedResource::mustRevalidate):
2483         * loader/CachedResource.h:
2484         * platform/network/ResourceResponseBase.cpp:
2485         (WebCore::ResourceResponseBase::ResourceResponseBase):
2486         (WebCore::ResourceResponseBase::adopt):
2487         (WebCore::ResourceResponseBase::copyData):
2488         (WebCore::ResourceResponseBase::setHTTPHeaderField):
2489         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
2490         (WebCore::ResourceResponseBase::cacheControlContainsNoCache):
2491         (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate):
2492         (WebCore::ResourceResponseBase::cacheControlMaxAge):
2493         (WebCore::parseDateValueInHeader):
2494         (WebCore::ResourceResponseBase::date):
2495         (WebCore::ResourceResponseBase::age):
2496         (WebCore::ResourceResponseBase::expires):
2497         (WebCore::ResourceResponseBase::lastModified):
2498         (WebCore::ResourceResponseBase::isAttachment):
2499         (WebCore::ResourceResponseBase::compare):
2500         * platform/network/ResourceResponseBase.h:
2501         * platform/network/cf/ResourceResponseCFNet.cpp:
2502         (WebCore::ResourceResponse::platformLazyInit):
2503         * platform/network/mac/ResourceResponseMac.mm:
2504         (WebCore::ResourceResponse::platformLazyInit):
2505
2506 2009-06-04  Roland Steiner <rolandsteiner@google.com>
2507
2508         Reviewed by Eric Seidel.
2509
2510         Bug 26201: Remove superfluous 'if' statements in RenderTable::addChild
2511         https://bugs.webkit.org/show_bug.cgi?id=26201
2512
2513         * rendering/RenderTable.cpp:
2514         (WebCore::RenderTable::addChild): remove superfluous 'if' statements
2515        
2516
2517 2009-06-04  Roland Steiner <rolandsteiner@google.com>
2518
2519         Reviewed by Eric Seidel.
2520
2521         Bug 26202: add macros for primitive values to simplify CSSStyleSelector::applyProperty
2522         https://bugs.webkit.org/show_bug.cgi?id=26202
2523
2524         * css/CSSStyleSelector.cpp: add HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE[_WITH_VALUE] macros
2525         (WebCore::CSSStyleSelector::applyProperty): use new macros
2526
2527 2009-06-04  Roland Steiner <rolandsteiner@google.com>
2528
2529         Reviewed by Eric Seidel
2530
2531         Bug 26203: Move parsing of 'attr(X)' values to own method
2532         https://bugs.webkit.org/show_bug.cgi?id=26203
2533
2534         * css/CSSParser.cpp:
2535         (WebCore::CSSParser::parseAttr): new method
2536         (WebCore::CSSParser::parseContent): use new parseAttr method
2537         * css/CSSParser.h:
2538         (WebCore::CSSParser::parseAttr): new method
2539
2540 2009-06-04  Roland Steiner <rolandsteiner@google.com>
2541
2542         Reviewed by Eric Seidel.
2543
2544         Bug 26205: RenderTableSection::addChild : correct comment
2545         https://bugs.webkit.org/show_bug.cgi?id=26205
2546
2547         * rendering/RenderTableSection.cpp:
2548         (WebCore::RenderTableSection::addChild): correct comment
2549
2550 2009-06-04  Roland Steiner <rolandsteiner@google.com>
2551
2552         Reviewed by Eric Seidel.
2553
2554         Bug 26204: RenderBlock : simplify handleSpecialChild, comment correction
2555         https://bugs.webkit.org/show_bug.cgi?id=26204
2556
2557         * rendering/RenderBlock.cpp:
2558         (WebCore::RenderBlock::handleSpecialChild): simplify usage
2559         (WebCore::RenderBlock::handlePositionedChild): simplify usage
2560         (WebCore::RenderBlock::handleFloatingChild): simplify usage
2561         (WebCore::RenderBlock::handleRunInChild): simplify usage
2562         (WebCore::RenderBlock::layoutBlock): correct comment
2563         (WebCore::RenderBlock::layoutBlockChildren): simplify loop, change call to handleSpecialChild
2564         * rendering/RenderBlock.h: 
2565         (WebCore::RenderBlock::handleSpecialChild): change signature
2566         (WebCore::RenderBlock::handlePositionedChild): change signature
2567         (WebCore::RenderBlock::handleFloatingChild): change signature
2568         (WebCore::RenderBlock::handleRunInChild): change signature
2569
2570 2009-06-04  Dan Bernstein  <mitz@apple.com>
2571
2572         - retry to fix the Tiger build
2573
2574         * platform/graphics/mac/SimpleFontDataMac.mm:
2575         (WebCore::initFontData):
2576
2577 2009-06-04  Dan Bernstein  <mitz@apple.com>
2578
2579         - try to fix the Tiger build
2580
2581         * platform/graphics/SimpleFontData.h:
2582
2583 2009-06-04  Dan Bernstein  <mitz@apple.com>
2584
2585         - try to fix the Leopard and Tiger builds
2586
2587         * platform/graphics/SimpleFontData.h:
2588
2589 2009-06-04  Dan Bernstein  <mitz@apple.com>
2590
2591         - try to fix the Windows build
2592
2593         * platform/graphics/win/UniscribeController.cpp:
2594         (WebCore::UniscribeController::shapeAndPlaceItem):
2595
2596 2009-06-04  Dan Bernstein  <mitz@apple.com>
2597
2598         Reviewed by Sam Weinig.
2599
2600         - make SimpleFontData's data members private
2601         - rename SimpleFontData's m_font member to m_platformData
2602
2603         * platform/graphics/Font.h:
2604         (WebCore::Font::spaceWidth):
2605         * platform/graphics/SimpleFontData.cpp:
2606         (WebCore::SimpleFontData::SimpleFontData):
2607         * platform/graphics/SimpleFontData.h:
2608         (WebCore::SimpleFontData::platformData):
2609         (WebCore::SimpleFontData::spaceWidth):
2610         (WebCore::SimpleFontData::adjustedSpaceWidth):
2611         (WebCore::SimpleFontData::syntheticBoldOffset):
2612         (WebCore::SimpleFontData::spaceGlyph):
2613         (WebCore::SimpleFontData::getNSFont):
2614         (WebCore::SimpleFontData::getQtFont):
2615         (WebCore::SimpleFontData::getWxFont):
2616         * platform/graphics/WidthIterator.cpp:
2617         (WebCore::WidthIterator::advance):
2618         * platform/graphics/cairo/FontCairo.cpp:
2619         (WebCore::Font::drawGlyphs):
2620         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2621         (WebCore::SimpleFontData::platformInit):
2622         (WebCore::SimpleFontData::smallCapsFontData):
2623         (WebCore::SimpleFontData::determinePitch):
2624         (WebCore::SimpleFontData::platformWidthForGlyph):
2625         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2626         (WebCore::SimpleFontData::platformInit):
2627         (WebCore::SimpleFontData::smallCapsFontData):
2628         (WebCore::SimpleFontData::containsCharacters):
2629         (WebCore::SimpleFontData::platformWidthForGlyph):
2630         * platform/graphics/gtk/FontGtk.cpp:
2631         (WebCore::setPangoAttributes):
2632         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
2633         (WebCore::SimpleFontData::platformInit):
2634         (WebCore::SimpleFontData::containsCharacters):
2635         (WebCore::SimpleFontData::determinePitch):
2636         (WebCore::SimpleFontData::platformWidthForGlyph):
2637         (WebCore::SimpleFontData::setFont):
2638         * platform/graphics/gtk/SimpleFontDataPango.cpp:
2639         (WebCore::SimpleFontData::platformInit):
2640         (WebCore::SimpleFontData::containsCharacters):
2641         (WebCore::SimpleFontData::determinePitch):
2642         (WebCore::SimpleFontData::platformWidthForGlyph):
2643         (WebCore::SimpleFontData::setFont):
2644         * platform/graphics/mac/CoreTextController.cpp:
2645         (WebCore::CoreTextController::adjustGlyphsAndAdvances):
2646         * platform/graphics/mac/FontMac.mm:
2647         (WebCore::Font::drawGlyphs):
2648         * platform/graphics/mac/FontMacATSUI.mm:
2649         (WebCore::initializeATSUStyle):
2650         (WebCore::overrideLayoutOperation):
2651         (WebCore::ATSULayoutParameters::initialize):
2652         * platform/graphics/mac/SimpleFontDataMac.mm:
2653         (WebCore::initFontData):
2654         (WebCore::SimpleFontData::platformInit):
2655         (WebCore::SimpleFontData::platformCharWidthInit):
2656         (WebCore::SimpleFontData::smallCapsFontData):
2657         (WebCore::SimpleFontData::containsCharacters):
2658         (WebCore::SimpleFontData::determinePitch):
2659         (WebCore::SimpleFontData::platformWidthForGlyph):
2660         (WebCore::SimpleFontData::checkShapesArabic):
2661         (WebCore::SimpleFontData::getCTFont):
2662         * platform/graphics/qt/SimpleFontDataQt.cpp:
2663         (WebCore::SimpleFontData::determinePitch):
2664         (WebCore::SimpleFontData::platformInit):
2665         (WebCore::SimpleFontData::platformCharWidthInit):
2666         * platform/graphics/win/FontCGWin.cpp:
2667         (WebCore::drawGDIGlyphs):
2668         (WebCore::Font::drawGlyphs):
2669         * platform/graphics/win/SimpleFontDataCGWin.cpp:
2670         (WebCore::SimpleFontData::platformInit):
2671         (WebCore::SimpleFontData::platformCharWidthInit):
2672         (WebCore::SimpleFontData::platformWidthForGlyph):
2673         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
2674         (WebCore::SimpleFontData::platformInit):
2675         (WebCore::SimpleFontData::platformDestroy):
2676         (WebCore::SimpleFontData::platformWidthForGlyph):
2677         (WebCore::SimpleFontData::setFont):
2678         * platform/graphics/win/SimpleFontDataWin.cpp:
2679         (WebCore::SimpleFontData::initGDIFont):
2680         (WebCore::SimpleFontData::smallCapsFontData):
2681         (WebCore::SimpleFontData::containsCharacters):
2682         (WebCore::SimpleFontData::determinePitch):
2683         (WebCore::SimpleFontData::widthForGDIGlyph):
2684         (WebCore::SimpleFontData::scriptFontProperties):
2685         * platform/graphics/wx/SimpleFontDataWx.cpp:
2686         (WebCore::SimpleFontData::platformInit):
2687         (WebCore::SimpleFontData::determinePitch):
2688         (WebCore::SimpleFontData::platformWidthForGlyph):
2689
2690 2009-06-04  Paul Godavari  <paul@chromium.org>
2691
2692         Reviewed by Eric Seidel.
2693
2694         Initialize the width of PopupMenuListBox properly for Mac Chromium.
2695
2696         Added a test that works only with this patch applied. The test is
2697         a manual one, since the hit testing infrastructure in the layout
2698         tests sends keyboard and mouse events to the main window and not
2699         the cocoa control that implements the popup up, which means we can't
2700         select items from the popup up.
2701
2702         https://bugs.webkit.org/show_bug.cgi?id=25904
2703
2704
2705         * manual-tests/select-narrow-width.html: Added.
2706         * platform/chromium/PopupMenuChromium.cpp:
2707         (WebCore::PopupListBox::PopupListBox):
2708         (WebCore::PopupContainer::showExternal):
2709
2710 2009-06-04  Brent Fulgham  <bfulgham@webkit.org>
2711
2712         Unreviewed Windows build correction.
2713
2714         * WebCore.vcproj/WebCore.vcproj: Add missing 'ReplaceNodeWithSpanCommand.cpp'
2715           and 'ReplaceNodeWithSpanCommand.h'
2716
2717 2009-02-03  Eric Seidel  <eric@webkit.org>
2718
2719         Reviewed by Justin Garcia.
2720
2721         Make sure execCommand("bold") on <b style="text-decoration: underline">test</b>
2722         only removes the bold and not the underline.
2723         https://bugs.webkit.org/show_bug.cgi?id=23496
2724
2725         Test: editing/execCommand/convert-style-elements-to-spans.html
2726
2727         * WebCore.xcodeproj/project.pbxproj:
2728         * css/CSSStyleDeclaration.h:
2729         (WebCore::CSSStyleDeclaration::isEmpty):
2730         * dom/NamedAttrMap.h:
2731         (WebCore::NamedAttrMap::isEmpty):
2732         * editing/ApplyStyleCommand.cpp:
2733         (WebCore::isUnstyledStyleSpan):
2734         (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan):
2735         (WebCore::ApplyStyleCommand::applyBlockStyle):
2736         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
2737         (WebCore::ApplyStyleCommand::implicitlyStyledElementShouldBeRemovedWhenApplyingStyle):
2738         (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes):
2739         (WebCore::ApplyStyleCommand::removeCSSStyle):
2740         (WebCore::ApplyStyleCommand::applyTextDecorationStyle):
2741         (WebCore::ApplyStyleCommand::removeInlineStyle):
2742         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
2743         * editing/ApplyStyleCommand.h:
2744         * editing/CompositeEditCommand.cpp:
2745         (WebCore::CompositeEditCommand::replaceNodeWithSpanPreservingChildrenAndAttributes):
2746         * editing/CompositeEditCommand.h:
2747         * editing/RemoveNodePreservingChildrenCommand.cpp:
2748         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
2749         * editing/ReplaceNodeWithSpanCommand.cpp: Added.
2750         (WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand):
2751         (WebCore::swapInNodePreservingAttributesAndChildren):
2752         (WebCore::ReplaceNodeWithSpanCommand::doApply):
2753         (WebCore::ReplaceNodeWithSpanCommand::doUnapply):
2754         * editing/ReplaceNodeWithSpanCommand.h: Added.
2755         (WebCore::ReplaceNodeWithSpanCommand::create):
2756
2757 2009-06-04  Brent Fulgham  <bfulgham@webkit.org>
2758
2759         Unreviewed build fix for Windows Cairo target.
2760
2761         Add missing post-build command to copy history/cf contents
2762         to output directory.
2763
2764         * WebCore.vcproj/WebCore.vcproj: Update Debug_Cairo and Release_Cairo
2765           target post-build steps with copy commands.
2766
2767 2009-06-04  Pierre d'Herbemont  <pdherbemont@apple.com>
2768
2769         Reviewed by Simon Fraser.
2770
2771         <rdar://problem/6854695> Movie controller thumb fails to scale with full page zoom
2772         
2773         Account for zoom level when drawing media controller thumb on Windows.
2774
2775         * rendering/RenderMediaControls.cpp:
2776         (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):
2777
2778 2009-06-04  David Hyatt  <hyatt@apple.com>
2779
2780         Reviewed by Sam Weinig.
2781
2782         Move DOM window focus/blur out of SelectionController and into FocusController.  Make sure it
2783         fires on the focused frame when the page activation state changes also.  This is covered by an existing
2784         layout test (albeit badly).  I have modified the test to be correct.
2785
2786         * editing/SelectionController.cpp:
2787         (WebCore::SelectionController::setFocused):
2788         * page/FocusController.cpp:
2789         (WebCore::FocusController::setFocusedFrame):
2790         (WebCore::FocusController::setActive):
2791
2792 2009-06-04  Albert J. Wong  <ajwong@chromium.org>
2793
2794         Reviewed by Eric Seidel.
2795
2796         https://bugs.webkit.org/show_bug.cgi?id=26148
2797         Adding in empty files to stage the extract of RenderThemeChromiumSkia
2798         from RenderThemeChromiumLinux and RenderThemeChromiumWindows.
2799
2800         * rendering/RenderThemeChromiumSkia.cpp: Added.
2801         * rendering/RenderThemeChromiumSkia.h: Added.
2802
2803 2009-06-04  Andrei Popescu <andreip@google.com>
2804
2805         Reviewed by Alexey Proskuryakov.
2806
2807         https://bugs.webkit.org/show_bug.cgi?id=25562
2808         Potential crash after ApplicationCacheStorage::storeNewestCache() fails
2809
2810               Fix the crash by checking the return value of cacheStorage().storeNewestCache(this)
2811               in WebCore::ApplicationCacheGroup::checkIfLoadIsComplete. If storeNewestCache failed,
2812               we run the cache failure steps:
2813
2814         1. Fire the error events to all pending master entries, as well any other cache hosts
2815            currently associated with a cache in this group.
2816         2. Disassociate the pending master entries from the failed new cache.
2817         3. Reinstate the old "newest cache", if there was one.
2818
2819         We also introduce two other changes:
2820
2821         1. a mechanism to rollback storageID changes to the in-memory resource
2822            objects when the storing of an ApplicationCache object fails.
2823
2824         2. defer removing the pending master entries from the list of pending master entries
2825            until the entire load is complete. This matches the HTML 5 spec better. To track
2826            if the load is complete we now introduce a counter for those pending master entries
2827            that haven't yet finshed downloading.
2828
2829         * loader/appcache/ApplicationCacheGroup.cpp:
2830         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): initializes the new counter to 0
2831         (WebCore::ApplicationCacheGroup::selectCache): increments the counter when a new pending
2832         master entry is added.
2833         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): decrements the counter
2834         instead of removing the pending master entry.
2835         (WebCore::ApplicationCacheGroup::failedLoadingMainResource): decrements the counter
2836         instead of removing the pending master entry.
2837         (WebCore::ApplicationCacheGroup::setNewestCache): removes an assertion that no longer
2838         holds true. In particular, the newest cache is not necessarily new anymore. We can
2839         set an old cache as the new cache. This can happen if we failed to store a newly
2840         downloaded cache to the database and we are now reinstating the former newest cache.
2841         (WebCore::ApplicationCacheGroup::manifestNotFound): resets the counter to 0.
2842         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): check if the loading is complete
2843         based on the counter instead of the list of pending master entries. Empty the list of
2844         master entries if the load is complete.
2845         * loader/appcache/ApplicationCacheGroup.h: add the new counter.
2846         * loader/appcache/ApplicationCacheStorage.cpp: introduce the journaling mechanism for
2847         in-memory resource objects.
2848         (WebCore::ResourceStorageIDJournal::~ResourceStorageIDJournal):
2849         (WebCore::ResourceStorageIDJournal::add):
2850         (WebCore::ResourceStorageIDJournal::commit):
2851         (WebCore::ResourceStorageIDJournal::Record::Record):
2852         (WebCore::ResourceStorageIDJournal::Record::restore):
2853         (WebCore::ApplicationCacheStorage::store): log the changes to the in-memory resource
2854         objects.
2855         (WebCore::ApplicationCacheStorage::storeNewestCache): create the journal object.
2856         * loader/appcache/ApplicationCacheStorage.h:  modify the signature of
2857         bool store(ApplicationCache*) to add a pointer to the logger object used to
2858         trace the changes to the storageID of the resource objects.
2859
2860 2009-06-04  Jeremy Orlow  <jorlow@chromium.org>
2861
2862         Reviewed by Darin Adler.
2863
2864         https://bugs.webkit.org/show_bug.cgi?id=26154
2865         Allow underscores in the hostnames we parse out of databaseIdentifiers.
2866         This code is used for HTML 5 database support.
2867
2868         * page/SecurityOrigin.cpp:
2869         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
2870
2871 2009-06-04  Mihnea Ovidenie  <mihnea@adobe.com>
2872
2873         Reviewed by Darin Adler.
2874
2875         Bug 26084: Multiple missing images in webkit-mask-image prevent rendering
2876         https://bugs.webkit.org/show_bug.cgi?id=26084
2877
2878         When painting multiple images, make sure that at least one image is valid before pushing a transparency layer.
2879
2880         Added a manual test.
2881
2882         * manual-tests/mask-composite-missing-images.html: Added.
2883         * rendering/RenderBox.cpp:
2884         (WebCore::RenderBox::paintMaskImages):
2885
2886 2009-06-04  Jeremy Orlow  <jorlow@chromium.org>
2887
2888         Reviewed by Darin Adler.
2889
2890         https://bugs.webkit.org/show_bug.cgi?id=26180
2891         Add a fast path for SecurityOrigin::equal. If "other == this" (where
2892         other is the other security origin), then we really don't need to do
2893         all the other (expensive) comparisons. We know it's equal.
2894
2895         * page/SecurityOrigin.cpp:
2896         (WebCore::SecurityOrigin::equal):
2897
2898 2009-06-03  David Hyatt  <hyatt@apple.com>
2899
2900         Reviewed by Sam Weinig.
2901
2902         Improvements in how selection behaves with focus/activation and a reversion back to using isActive
2903         in the scrollbar theme code to remove a Chromium ifdef.
2904
2905         * editing/SelectionController.cpp:
2906         (WebCore::SelectionController::SelectionController):
2907         Make the controller set its focused state correctly upon initial creation.
2908
2909         (WebCore::SelectionController::setSelection):
2910         Make selection willing to shift the focus node if the selection is focused even if the
2911         selection is not active.  Whether or not the Page is active is irrelevant to focus changes.
2912
2913         (WebCore::SelectionController::setFocused):
2914         * editing/SelectionController.h:
2915         (WebCore::SelectionController::isFocused):
2916         Add a new isFocused() method so that code can check if the Selection is focused without caring
2917         about the active state.
2918
2919         * page/Frame.cpp:
2920         (WebCore::Frame::setFocusedNodeIfNeeded):
2921         Allow focus shifts even when the selection is not active.
2922
2923         * platform/mac/ScrollbarThemeMac.mm:
2924         (WebCore::ScrollbarThemeMac::paint):
2925         Revert Dan's change to directly talk to AppKit for checking active state.  Now that the WebCore isActive
2926         method works, ditch the Chromium-specific #ifdef and go back to the original code.
2927
2928 2009-06-04  Pierre d'Herbemont  <pdherbemont@apple.com>
2929
2930         Reviewed by Darin Adler.
2931
2932         Test: media/before-load-member-access.html
2933         
2934         https://bugs.webkit.org/show_bug.cgi?id=26081
2935
2936         * html/HTMLMediaElement.cpp:
2937         (WebCore::HTMLMediaElement::played): Ensure that if m_playedTimeRanges,
2938         is not initialized we return a valid range, and don't attempt to use it.
2939
2940 2009-06-03  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
2941
2942         Reviewed by Simon Hausmann.
2943
2944         Implement a way to invalidate the FontCache used by the Qt port.
2945
2946         * platform/graphics/qt/FontCacheQt.cpp:
2947         (WebCore::FontCache::invalidate):
2948
2949 2009-06-04  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2950
2951         Reviewed by Ariya Hidayat.
2952
2953         https://bugs.webkit.org/show_bug.cgi?id=26015
2954
2955         [Qt] Single-threaded QtWebKit configuration
2956
2957         Turn off Database, DOM storage, icon database and Web Workers support
2958         when ENABLE_SINGLE_THREADED is turned on.
2959
2960         Set SQLITE_THREADSAFE to false to turn off SQLite mutexes
2961         when ENABLE_SINGLE_THREADED is turned on.
2962
2963         * WebCore.pro:
2964
2965 2009-06-03  Dan Bernstein  <mitz@apple.com>
2966
2967         Reviewed by Sam Weinig.
2968
2969         - add some assertions that Font methods are used on the main thread
2970
2971         * platform/graphics/Font.cpp:
2972         (WebCore::Font::setShouldUseSmoothing):
2973         * platform/graphics/Font.h:
2974         (WebCore::Font::primaryFont):
2975         * platform/graphics/FontFastPath.cpp:
2976         (WebCore::Font::glyphDataForCharacter):
2977
2978 2009-06-03  Dan Bernstein  <mitz@apple.com>
2979
2980         - Windows build fix
2981
2982         Rolled out apparently-accidental changes to config.h from r44398. These
2983         were not part of the patch as reviewed.
2984
2985         * config.h:
2986
2987 2009-06-03  Dmitry Titov  <dimich@chromium.org>
2988
2989         Not reviewed, Chromium build fix.
2990
2991         https://bugs.webkit.org/show_bug.cgi?id=26177
2992         Reverting 'private' to 'protected' on 2 classes.
2993         Chromium glue layer (not yet in Webkit tree) relies on ability to derive
2994         Chromium-specific platform classes and access the data members.
2995         See bug for more details.
2996
2997         * platform/PlatformMouseEvent.h:
2998         * platform/PlatformWheelEvent.h:
2999
3000 2009-06-03  Chris Marrin  <cmarrin@apple.com>
3001
3002         Reviewed by Simon Fraser <simonfr@apple.com>.
3003
3004         Fixed https://bugs.webkit.org/show_bug.cgi?id=26162
3005
3006         This corrects an error when destroying an animation
3007         or transition where endAnimation was never getting
3008         called and therefore the hardware animation was never
3009         getting removed.
3010
3011         This includes a manual-test since it's really impossible
3012         to make a meaningful automatic test for an animation
3013         bug like this.
3014
3015         This has no effect unless accelerated compositing is 
3016         enabled.
3017
3018         * manual-tests/interrupted-compound-transform.html: Added.
3019         * page/animation/ImplicitAnimation.cpp:
3020         (WebCore::ImplicitAnimation::~ImplicitAnimation):
3021         * page/animation/KeyframeAnimation.cpp:
3022         (WebCore::KeyframeAnimation::~KeyframeAnimation):
3023
3024 2009-06-03  Adam Langley  <agl@google.com>
3025
3026         Reviewed by Eric Seidel.
3027
3028         Make the scrollbar thumb size twice the width for Chromium Linux. This
3029         matches Firefox on Linux.
3030
3031         This will need layout test pixel results to be rebaselined in the
3032         Chromium tree.
3033
3034         http://code.google.com/p/chromium/issues/detail?id=12602
3035         https://bugs.webkit.org/show_bug.cgi?id=26176
3036
3037         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
3038         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
3039         * platform/chromium/ScrollbarThemeChromiumLinux.h:
3040
3041 2009-06-03  Adam Langley  <agl@google.com>
3042
3043         Reviewed by Eric Seidel.
3044
3045         Change Chromium scrollbar theme code to use different classes on
3046         Windows and Linux rather than suppling symbols. The ScrollbarTheme
3047         class is already using virtual dispatch, so there's no reason not to.
3048
3049         This should not affect any layout tests.
3050
3051         https://bugs.webkit.org/show_bug.cgi?id=26174
3052
3053         * platform/chromium/ScrollbarThemeChromium.cpp:
3054         * platform/chromium/ScrollbarThemeChromium.h:
3055         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
3056         (WebCore::ScrollbarTheme::nativeTheme):
3057         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
3058         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
3059         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
3060         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
3061         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
3062         * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
3063         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
3064         (WebCore::ScrollbarTheme::nativeTheme):
3065         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
3066         (WebCore::ScrollbarThemeChromiumWin::invalidateOnMouseEnterExit):
3067         (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
3068         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
3069         (WebCore::ScrollbarThemeChromiumWin::paintButton):
3070         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
3071         (WebCore::ScrollbarThemeChromiumWin::getThemeState):
3072         (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
3073         (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
3074         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
3075         * platform/chromium/ScrollbarThemeChromiumWin.h: Added.
3076
3077 2009-06-03  Pavel Feldman  <pfeldman@chromium.org>
3078
3079         Reviewed by Timothy Hatcher.
3080
3081         Enabling debugger requires that Scripts panel is already attached to the
3082         render tree. The reason is that recompile events result in script sources
3083         being added into the source frames. Prior to the global options introduced,
3084         debugger was enabled from the Scripts panel, so that it was guaranteed to
3085         exist. The InspectorController::enableDebugger API calls with no inspector
3086         frontend showing were failing though.
3087
3088         https://bugs.webkit.org/show_bug.cgi?id=26145
3089
3090         * WebCore.base.exp:
3091         * inspector/InspectorController.cpp:
3092         (WebCore::InspectorController::setWindowVisible):
3093         (WebCore::InspectorController::scriptObjectReady):
3094         (WebCore::InspectorController::enableDebuggerFromFrontend):
3095         (WebCore::InspectorController::enableDebugger):
3096         * inspector/InspectorController.h:
3097         * inspector/InspectorController.idl:
3098         * inspector/InspectorFrontend.cpp:
3099         (WebCore::InspectorFrontend::attachDebuggerWhenShown):
3100         * inspector/InspectorFrontend.h:
3101         * inspector/front-end/ScriptsPanel.js:
3102         (WebInspector.ScriptsPanel.prototype.show):
3103         (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown):
3104         * inspector/front-end/inspector.js:
3105         (WebInspector.attachDebuggerWhenShown):
3106
3107 2009-06-03  Dan Bernstein  <mitz@apple.com>
3108
3109         Reviewed by Anders Carlsson.
3110
3111         - fix a regression from the previous patch
3112
3113         * platform/graphics/Font.cpp: Initialize shouldUseFontSmoothing to true.
3114
3115 2009-06-03  Dan Bernstein  <mitz@apple.com>
3116
3117         Reviewed by Anders Carlsson.
3118
3119         - eliminate WebCoreTextRenderer
3120
3121         * WebCore.base.exp: Updated.
3122         * WebCore.xcodeproj/project.pbxproj: Removed WebCoreTextRenderer.{h,mm}
3123             and promoted WebFontCache.h to private.
3124         * platform/graphics/Font.cpp:
3125         (WebCore::Font::setShouldUseSmoothing): Added this static setter for
3126             a new file-static boolean.
3127         (WebCore::Font::shouldUseSmoothing): Added this static getter.
3128         * platform/graphics/Font.h: Decleared setShouldUseSmoothing() and
3129             shouldUseSmoothing().
3130         * platform/graphics/mac/FontMac.mm:
3131         (WebCore::Font::drawGlyphs): Use Font::shouldUseSmoothing() instead of
3132         WebCoreShouldUseFontSmoothing().
3133         * platform/graphics/mac/WebLayer.mm: Removed unneeded #import.
3134         * platform/mac/WebCoreTextRenderer.h: Removed.
3135         * platform/mac/WebCoreTextRenderer.mm: Removed.
3136
3137 2009-06-03  David Levin  <levin@chromium.org>
3138
3139         Reviewed by Dimitri Glazkov.
3140
3141         v8's ScriptController::evaluate should protect the Frame like the jsc version.
3142         https://bugs.webkit.org/show_bug.cgi?id=26172
3143
3144         This change is simply copying protections done for Frame in the method
3145         WebCore::ScriptController::evaluate in the file js/ScriptController.cpp.
3146
3147         * bindings/v8/ScriptController.cpp:
3148         (WebCore::ScriptController::evaluate):
3149
3150 2009-06-03  Dan Bernstein  <mitz@apple.com>
3151
3152         Reviewed by John Sullivan.
3153
3154         - fix <rdar://problem/6841120> Use CTFontManager notifications instead
3155           of ATS notifications
3156
3157         * platform/graphics/FontCache.h: Made it an error to destroy a
3158         FontCache instance.
3159         * platform/graphics/mac/FontCacheMac.mm:
3160         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Added
3161         this notification callback for the
3162         kCTFontManagerRegisteredFontsChangedNotification, which calls
3163         invalidate().
3164         (WebCore::FontCache::platformInit): Register for
3165         kCTFontManagerRegisteredFontsChangedNotification.
3166
3167 2009-06-03  Kevin Watters  <kevinwatters@gmail.com>
3168
3169         Reviewed by Kevin Ollivier.
3170
3171         Use CGContextShowGlyphsWithAdvances to get more accurate text rendering on Mac.
3172         
3173         https://bugs.webkit.org/show_bug.cgi?id=26161
3174
3175         * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp:
3176         (WebCore::drawTextWithSpacing):
3177
3178 2009-06-03  Pavel Feldman  <pfeldman@chromium.org>
3179
3180         Reviewed by Timothy Hatcher.
3181
3182         Reorder ResourcesPanel components initialization to unfreeze resource list scroller.
3183
3184         https://bugs.webkit.org/show_bug.cgi?id=26159
3185
3186         * inspector/front-end/ResourcesPanel.js:
3187         (WebInspector.ResourcesPanel):
3188
3189 2009-06-03  Pavel Feldman  <pfeldman@chromium.org>
3190
3191         Reviewed by Timothy Hatcher.
3192
3193         - Fix for crash (preceded by assertion) in InspectorController::didCommitLoad
3194           when reloading or navigating with the Inspector open.
3195         - Fix for Inspector's Elements panel being empty when Inspector first appears.
3196
3197         https://bugs.webkit.org/show_bug.cgi?id=26134
3198         https://bugs.webkit.org/show_bug.cgi?id=26135
3199
3200         * inspector/InspectorController.cpp:
3201         (WebCore::InspectorController::scriptObjectReady):
3202         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
3203         (WebCore::InspectorController::identifierForInitialRequest):
3204         (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded):
3205         * inspector/InspectorController.h:
3206
3207 2009-06-03  Adam Roben  <aroben@apple.com>
3208
3209         Windows build fix after r44379
3210
3211         * svg/graphics/SVGImage.cpp: Move EmptyClients.h back down below the
3212         other #includes to fix a compiler warning on Windows.
3213
3214 2009-06-02  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
3215
3216         Reviewed by Simon Hausmann.
3217
3218         Add workaround for crash in Linux Flash Player when hosted by
3219         another toolkit than GTK+. Bug fixed at the Flash Player bugzilla,
3220         issue (FP-2140).
3221
3222         * plugins/qt/PluginViewQt.cpp:
3223         (WebCore::PluginView::setNPWindowIfNeeded):
3224
3225 2009-06-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
3226
3227         Reviewed by Simon Hausmann.
3228
3229         Refactor the Qt plugin code to use NPP_SetWindow correctly,
3230         to make resizing of plugins work.
3231
3232         Attention was paid to make sure that the windowed plugins scroll
3233         synchronized with the page view. A manual test has been added.
3234
3235         * manual-tests/qt/plugin-iframe.html: Added.
3236         * plugins/PluginView.cpp:
3237         (WebCore::PluginView::setFrameRect):
3238         (WebCore::PluginView::frameRectsChanged):
3239         * plugins/PluginView.h:
3240         * plugins/qt/PluginContainerQt.cpp:
3241         (PluginContainerQt::PluginContainerQt):
3242         * plugins/qt/PluginContainerQt.h:
3243         * plugins/qt/PluginPackageQt.cpp:
3244         (WebCore::PluginPackage::load):
3245         * plugins/qt/PluginViewQt.cpp:
3246         (WebCore::PluginView::updatePluginWidget):
3247         (WebCore::PluginView::paint):
3248         (WebCore::PluginView::setParent):
3249         (WebCore::PluginView::setNPWindowRect):
3250         (WebCore::PluginView::setNPWindowIfNeeded):
3251         (WebCore::PluginView::handlePostReadFile):
3252         (WebCore::PluginView::getValue):
3253         (WebCore::PluginView::invalidateRect):
3254         (WebCore::PluginView::init):
3255
3256 2009-06-02  Darin Adler  <darin@apple.com>
3257
3258         Reviewed by David Hyatt.
3259
3260         Bug 26112: viewless WebKit -- make events work
3261         https://bugs.webkit.org/show_bug.cgi?id=26112
3262
3263         The main fix here is to make mouse and wheel event coordinates in the coordinate
3264         system of the top level NSView rather than the NSWindow when in the viewless mode.
3265         This is the design Hyatt chose, but the event part of it wasn't done yet.
3266
3267         Also fix FrameView to do normal reference counting instead of a strange model with
3268         an explicit deref near creation time.
3269
3270         * WebCore.base.exp: Updated.
3271
3272         * page/EventHandler.cpp:
3273         (WebCore::EventHandler::eventLoopHandleMouseUp): Moved this function into the file
3274         to reduce conditionals in the header.
3275         (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto.
3276
3277         * page/EventHandler.h: Reduced includes. Fixed formatting of Objective-C types.
3278         Made currentNSEvent a static member function. Added sendContextMenuEvent and
3279         eventMayStartDrag functions that takes NSEvent * so the conversion to PlatformMouseEvent
3280         can be done here rather than in WebKit. Reduced #if by making eventLoopHandleMouseUp and
3281         eventLoopHandleMouseDragged unconditional.
3282
3283         * page/Frame.cpp:
3284         (WebCore::Frame::setView): Made this take a PassRefPtr since it takes ownership.
3285         (WebCore::Frame::createView): Changed to use RefPtr and FrameView::create and remove
3286         the explicit deref.
3287
3288         * page/Frame.h: Changed setView to take a PassRefPtr.
3289
3290         * page/FrameTree.cpp: Added newly-needed include.
3291
3292         * page/FrameView.cpp:
3293         (WebCore::FrameView::FrameView): Got rid of one of the two constructors, and removed
3294         the initialization of m_refCount and call to show from the reamining one.
3295         (WebCore::FrameView::create): Added two create functions that do what the two
3296         constructors did before, except that they return a PassRefPtr to make sure the
3297         reference counting is handled correctly.
3298         (WebCore::FrameView::~FrameView): Removed assertion from when FrameView implemented
3299         its own reference counting.
3300
3301         * page/FrameView.h: Inherit from RefCounted for reference counting. Made the
3302         constructor private and added create functions. Got rid of the hand-implemented
3303         reference counting in this class.
3304
3305         * page/mac/EventHandlerMac.mm:
3306         (WebCore::currentNSEventSlot): Renamed currentEvent to currentNSEventSlot to
3307         make it more clear how it relates to currentNSEvent.
3308         (WebCore::EventHandler::currentNSEvent): Updated.
3309         (WebCore::CurrentEventScope::CurrentEventScope): Added. Use to set/reset the
3310         current event in a foolproof way.
3311         (WebCore::CurrentEventScope::~CurrentEventScope): Ditto.
3312         (WebCore::EventHandler::wheelEvent): Use CurrentEventScope. Pass the platform
3313         window in when constructing the PlatformWheelEvent.
3314         (WebCore::EventHandler::keyEvent): Use CurrentEventScope.
3315         (WebCore::lastEventIsMouseUp): Use currentNSEvent.
3316         (WebCore::EventHandler::passMouseDownEventToWidget): Ditto.
3317         (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto.
3318         (WebCore::EventHandler::eventLoopHandleMouseUp): Ditto.
3319         (WebCore::EventHandler::passSubframeEventToSubframe): Use
3320         currentPlatformMouseEvent to get a mouse event that has the appropriate
3321         platform window passed to create it.
3322         (WebCore::EventHandler::passWheelEventToWidget): Ditto.
3323         (WebCore::EventHandler::mouseDown): Ditto.
3324         (WebCore::EventHandler::mouseDragged): Ditto.
3325         (WebCore::EventHandler::mouseUp): Ditto.
3326         (WebCore::EventHandler::mouseMoved): Ditto.
3327         (WebCore::EventHandler::currentPlatformMouseEvent): Added. Passes the
3328         platform window that's now needed to create a PlatformMouseEvent.
3329         (WebCore::EventHandler::sendContextMenuEvent): Added.
3330         (WebCore::EventHandler::eventMayStartDrag): Added.
3331
3332         * platform/HostWindow.h: Removed unneeded includes and constructor definition.
3333
3334         * platform/PlatformMouseEvent.h: Sorted things in alphabetical order.
3335         Changed Mac constructor to take a windowView as well as the event. This is
3336         needed in viewless mode, since the "window" is actually an NSView, so the
3337         event has to know which view to compute the coordinates with. Made the
3338         same change to pointForEvent.
3339         * platform/PlatformWheelEvent.h: Ditto.
3340
3341         * platform/mac/PlatformMouseEventMac.mm:
3342         (WebCore::pointForEvent): Convert point from window coordinates to view
3343         coordinates if a windowView is passed in. This is used in viewless mode.
3344         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Ditto.
3345         * platform/mac/WheelEventMac.mm:
3346         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Ditto.
3347
3348         * platform/mac/WidgetMac.mm:
3349         (WebCore::Widget::convertFromContainingWindow): Fixed case where there
3350         is no platform widget and no parent. Before it would yield unpredictable
3351         results because of dispatching to a nil object and returning a structure.
3352         Now it returns the point without changing coordinates at all, which is what
3353         we need for this case in viewless mode.
3354
3355         * rendering/RenderApplet.cpp: Removed unneeded includes.
3356         (WebCore::RenderApplet::intrinsicSize): Use widget function.
3357         (WebCore::RenderApplet::createWidgetIfNecessary): Ditto.
3358
3359         * rendering/RenderApplet.h: Make more things private. Get rid of unneeded
3360         explicit destructor.
3361
3362         * rendering/RenderFrame.cpp: Removed unneeded includes.
3363         (WebCore::RenderFrame::edgeInfo): Updated to use node function so header
3364         doesn't have to define element function.
3365         (WebCore::RenderFrame::viewCleared): Ditto. Also changed to use widget
3366         function.
3367
3368         * rendering/RenderFrame.h: Removed unneeded includes. Made some things
3369         private. Got rid of element function.
3370
3371         * rendering/RenderPart.cpp: Removed unneeded includes.
3372         (WebCore::RenderPart::~RenderPart): Changed to use clearWidget function.
3373         (WebCore::RenderPart::setWidget): Changed to use widget function.
3374         (WebCore::RenderPart::deleteWidget): Changed to use passed-in widget.
3375         This is now only called by the clearWidget function.
3376
3377         * rendering/RenderPart.h: Removed unneeded forward declarations.
3378         Made more functions private. Updated deleteWidget to take widget argument.
3379
3380         * rendering/RenderPartObject.cpp:
3381         (WebCore::RenderPartObject::~RenderPartObject): use frameView function
3382         instead of getting at m_view directly.
3383         (WebCore::RenderPartObject::updateWidget): Ditto.
3384         (WebCore::RenderPartObject::layout): Ditto. Same for widget and m_widget.
3385         (WebCore::RenderPartObject::viewCleared): Ditto.
3386
3387         * rendering/RenderPartObject.h: Made some functions private.
3388
3389         * rendering/RenderWidget.cpp:
3390         (WebCore::RenderWidget::RenderWidget): Initialize m_frameView with
3391         construction syntax instead of assignment.
3392         (WebCore::RenderWidget::destroy): Updated for name change of m_view
3393         to m_frameView.
3394         (WebCore::RenderWidget::~RenderWidget): Use clearWidget to delete
3395         the widget.
3396         (WebCore::RenderWidget::setWidget): Use clearWidget.
3397         (WebCore::RenderWidget::paint): Updated for name change of m_view
3398         to m_frameView.
3399         (WebCore::RenderWidget::deleteWidget): Changed to use passed-in widget.
3400
3401         * rendering/RenderWidget.h: Made many functions protected, others
3402         private and made all data members private.
3403
3404         * svg/animation/SMILTime.h: Removed unhelpful max and min functions. These
3405         just do what std::max and std::min will already do automatically for this
3406         type, so they are not helpful.
3407
3408         * svg/graphics/SVGImage.cpp:
3409         (WebCore::SVGImage::SVGImage): Removed unneeded initial values for types
3410         that initialize to zero without anything explicit.
3411         (WebCore::SVGImage::~SVGImage): Update since m_frame and m_frameView are
3412         no longer stored.
3413         (WebCore::SVGImage::setContainerSize): Ditto.
3414         (WebCore::SVGImage::usesContainerSize): Ditto.
3415         (WebCore::SVGImage::size): Ditto.
3416         (WebCore::SVGImage::hasRelativeWidth): Ditto.
3417         (WebCore::SVGImage::hasRelativeHeight): Ditto.
3418         (WebCore::SVGImage::draw): Ditto.
3419         (WebCore::SVGImage::nativeImageForCurrentFrame): Ditto.
3420         (WebCore::SVGImage::dataChanged): Ditto.
3421
3422         * svg/graphics/SVGImage.h: Removed unneeded includes and unneeded data
3423         members m_document, m_frame, m_frameView, and m_minSize.
3424
3425 2009-06-02  Adam Langley  <agl@google.com>
3426
3427         Reviewed by Eric Seidel.
3428
3429         The previous code was assuming that we'll be painting buttons on the scrollbar
3430         which isn't true on Linux. To reproduce, resize a page with scrollbars until
3431         they are less than two widths high.
3432
3433         This will need pixel test baselines to be updated in the Chromium tree.
3434
3435         * platform/chromium/ScrollbarThemeChromium.cpp: move this function...
3436         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
3437         (WebCore::ScrollbarThemeChromium::trackRect): ... to here
3438         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
3439         (WebCore::ScrollbarThemeChromium::trackRect): add an alternative which
3440         doesn't remove the track when the scrollbar is less than two widths
3441         high.
3442
3443 2009-06-02  Mark Rowe  <mrowe@apple.com>
3444
3445         Reviewed by Anders Carlsson.
3446
3447         Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds.
3448
3449         * Configurations/Base.xcconfig:
3450
3451 2009-06-02  Eric Seidel  <eric@webkit.org>
3452
3453         Reviewed by Maciej Stachowiak.
3454
3455         Insert*List on an stand-alone image in a content editable region ASSERTS
3456         ASSERTION FAILED: isStartOfParagraph(startOfParagraphToMove)
3457         https://bugs.webkit.org/show_bug.cgi?id=19066
3458
3459         Attempt to fix this by noticing that we inserted the list inside
3460         the selection which includes the image, and re-adjust the selection
3461         to not include the list before trying to move the image into
3462         the list item.
3463         
3464         Test: editing/execCommand/list-wrapping-image-crash.html
3465
3466         * editing/InsertListCommand.cpp:
3467         (WebCore::InsertListCommand::doApply):
3468
3469 2009-06-02  Eric Seidel  <eric@webkit.org>
3470
3471         Reviewed by Darin Adler.
3472
3473         Rename PositionIterator members in hope of further clarity
3474         https://bugs.webkit.org/show_bug.cgi?id=24854
3475
3476         Rename m_parent to m_anchorNode (since although it's always the parent
3477         of the previous m_child member, it is not always the parent of the effective position)
3478         Rename m_child to m_nodeAfterPositionInAnchor to make clear that it's the node
3479         directly following the position.  This member is often NULL, but is always
3480         a child of m_parent, now m_anchorNode if set.
3481         Rename m_offset to m_offsetInAnchor (since it's interpreted relative to m_anchorNode)
3482
3483         * dom/PositionIterator.cpp:
3484         (WebCore::PositionIterator::operator Position):
3485         (WebCore::PositionIterator::increment):
3486         (WebCore::PositionIterator::decrement):
3487         (WebCore::PositionIterator::atStart):
3488         (WebCore::PositionIterator::atEnd):
3489         (WebCore::PositionIterator::atStartOfNode):
3490         (WebCore::PositionIterator::atEndOfNode):
3491         (WebCore::PositionIterator::isCandidate):
3492         * dom/PositionIterator.h:
3493         (WebCore::PositionIterator::PositionIterator):
3494         (WebCore::PositionIterator::node):
3495         (WebCore::PositionIterator::offsetInLeafNode):
3496
3497 2009-06-02  Julien Chaffraix  <jchaffraix@webkit.org>
3498
3499         Reviewed by Eric Seidel.
3500
3501         Bug 17167: Failures in fast/dom/Node/initial-values.html
3502
3503         This partly solve a compatibility issue with other browsers. It will also
3504         make us more consistent while handling XHTML element.
3505
3506         The issue is that when we create an XHTML element inside an HTML document
3507         (as it is the case when calling createElementNS), we default to the HTML
3508         behaviour in nodeName. As we cannot test if an HTMLElement is an XHTML
3509         element, our fix is to check whether it has a prefix and then default
3510         to XML behaviour for nodeName.
3511
3512         * html/HTMLElement.cpp:
3513         (WebCore::HTMLElement::nodeName): Add a prefix check before
3514         returning the uppercase tagName (HTML behaviour).
3515
3516 2009-06-02  Eric Seidel  <eric@webkit.org>
3517
3518         Reviewed by Maciej Stachowiak.
3519
3520         Add a compareBoundaryPoints which takes RangeBoundaryPoints
3521         https://bugs.webkit.org/show_bug.cgi?id=25500
3522
3523         I noticed the need for this function when removing compareBoundaryPoints(Position, Position)
3524         This patch is almost entirely minus lines.
3525
3526         No functional changes, thus no tests.
3527
3528         * dom/Range.cpp:
3529         (WebCore::Range::setStart):
3530         (WebCore::Range::setEnd):
3531         (WebCore::Range::compareBoundaryPoints):
3532         (WebCore::Range::boundaryPointsValid):
3533         * dom/Range.h:
3534
3535 2009-06-02  Eric Seidel  <eric@webkit.org>
3536
3537         Reviewed by Maciej Stachowiak.
3538
3539         Remove Range::compareBoundaryPoints(Position, Position) per Darin's suggestion in bug 25056
3540         https://bugs.webkit.org/show_bug.cgi?id=25500
3541
3542         Darin indicated the Range should deal only with primitive DOM node/offset
3543         pairs, and that Position (which is a more robust editing construct) should have
3544         its own comparison functions and that Range.h should not mention Position at all.
3545
3546         Turns out that Position already has a comparePositions() function (which knows
3547         how to additionally handled positions in shadow trees).  So I've just changed
3548         all callers of compareBoundaryPoints(Position, Position) to use the existing
3549         comparePositions() function.  I've also added a comparePositions which takes
3550         VisiblePositions for convenience.
3551
3552         * dom/Range.cpp:
3553         * dom/Range.h:
3554         * editing/ApplyStyleCommand.cpp:
3555         (WebCore::ApplyStyleCommand::updateStartEnd):
3556         (WebCore::ApplyStyleCommand::applyBlockStyle):
3557         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
3558         (WebCore::ApplyStyleCommand::applyInlineStyle):
3559         (WebCore::ApplyStyleCommand::applyInlineStyleToRange):
3560         (WebCore::ApplyStyleCommand::removeInlineStyle):
3561         (WebCore::ApplyStyleCommand::nodeFullySelected):
3562         (WebCore::ApplyStyleCommand::nodeFullyUnselected):
3563         * editing/CompositeEditCommand.cpp:
3564         (WebCore::CompositeEditCommand::deleteInsignificantText):
3565         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
3566         (WebCore::CompositeEditCommand::moveParagraphs):
3567         * editing/DeleteSelectionCommand.cpp:
3568         (WebCore::DeleteSelectionCommand::initializeStartEnd):
3569         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
3570         (WebCore::DeleteSelectionCommand::mergeParagraphs):
3571         * editing/SelectionController.cpp:
3572         (WebCore::SelectionController::nodeWillBeRemoved):
3573         * editing/VisibleSelection.cpp:
3574         (WebCore::VisibleSelection::toNormalizedRange):
3575         * editing/htmlediting.cpp:
3576         (WebCore::comparePositions):
3577         * editing/htmlediting.h:
3578         * page/EventHandler.cpp:
3579         (WebCore::EventHandler::handleMousePressEventSingleClick):
3580
3581 2009-06-02  Albert J. Wong  <ajwong@chromium.org>
3582
3583         Reviewed by Dimitri Glazkov.
3584
3585         https://bugs.webkit.org/show_bug.cgi?id=26122
3586         Upstream v8_utility.h functions into V8Utilities.h.  This patch has
3587         some transitional code to make upstreaming easier.  This code will
3588         be deleted in a few days.
3589
3590         * bindings/v8/ScriptFunctionCall.cpp:
3591         (WebCore::ScriptFunctionCall::construct): NewInstance -> newInstance.
3592         * bindings/v8/V8Utilities.h:
3593         (WebCore::AllowAllocation::AllowAllocation): Function added.
3594         (WebCore::AllowAllocation::~AllowAllocation): Function added.
3595         (WebCore::SafeAllocation::NewInstance): Function added.
3596         * bindings/v8/WorkerContextExecutionProxy.cpp:
3597         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
3598         NewInstance -> newInstance.
3599         (WebCore::WorkerContextExecutionProxy::toV8): NewInstance ->
3600         newInstance.
3601
3602 2009-06-02  Dan Bernstein  <mitz@apple.com>
3603
3604         Reviewed by John Sullivan.
3605
3606         - fix <rdar://problem/6940747> Search field’s focus ring is outset
3607
3608         * rendering/RenderThemeWin.cpp:
3609         (WebCore::RenderThemeWin::adjustSearchFieldStyle): Set the focused
3610         search field outline offset to -2.
3611
3612 2009-06-02  Sam Weinig  <sam@webkit.org>
3613
3614         Reviewed by Alexey Proskuryakov.
3615
3616         Add list of unimplemented event handlers to DOMWindow.
3617
3618         * page/DOMWindow.idl:
3619
3620 2009-06-02  Alexey Proskuryakov  <ap@webkit.org>
3621
3622         Reviewed by Sam Weinig.
3623
3624         https://bugs.webkit.org/show_bug.cgi?id=26133
3625         Adapt and import py-dom-xpath tests
3626
3627         Tests: fast/xpath/py-dom-xpath/abbreviations.html
3628                fast/xpath/py-dom-xpath/axes.html
3629                fast/xpath/py-dom-xpath/data.html
3630                fast/xpath/py-dom-xpath/expressions.html
3631                fast/xpath/py-dom-xpath/functions.html
3632                fast/xpath/py-dom-xpath/nodetests.html
3633                fast/xpath/py-dom-xpath/paths.html
3634                fast/xpath/py-dom-xpath/predicates.html
3635
3636         Fix bugs found with this test suite:
3637         - name and local-name were incorrect for processing instructions (XPath expanded-name
3638         doesn't match DOM exactly);
3639         - name, local-name and namespace functions should crash on attribute nodes;
3640         - attemps to make node sets from other types were not detected as errors.
3641
3642         No performance impact.
3643
3644         * xml/XPathExpressionNode.h: Track type conversion errors that happen during evaluation.
3645         An error won't stop evaluation, but an exception will be raised afterwards. We could also
3646         detect conversion errors at compile time, but not if we're going to support XPath variables
3647         (which is unnecessary for XPathEvaluator, but will be necessary if we decide to make our own
3648         XSLT one day).
3649
3650         * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Check whether a type
3651         conversion exception occurred during evaluation, and raise an excpetion if it did.
3652
3653         * xml/XPathFunctions.cpp:
3654         (WebCore::XPath::expandedNameLocalPart):
3655         (WebCore::XPath::expandedName):
3656         XPath name(), local-name() and namespace-uri() functions are defined in terms of expanded-name,
3657         which doesn't match anything available via DOM exactly. Calculate the expanded name properly.
3658         (WebCore::XPath::FunNamespaceURI::evaluate): This function could crash if used with an
3659         attribute node, because it released what was possibly the only reference to attribute node
3660         before using it. Changed the function to avoid such situation.
3661         (WebCore::XPath::FunLocalName::evaluate): Ditto. Also, used the new expandedNameLocalPart()
3662         to work properly with processing instruction nodes.
3663         (WebCore::XPath::FunName::evaluate): Ditto (using expandedName()).
3664         (WebCore::XPath::FunCount::evaluate): Signal an error if the argument is not a node-set
3665         (by using toNodeSet unconditionally, which will raise an error, and return an empty set).
3666
3667         * xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Signal an error if the expression
3668         evaluation result is not a node-set.
3669
3670         * xml/XPathPath.h: (WebCore::XPath::Filter::resultType): A Filter's result is actually
3671         always a node-set (this is not so for FilterExpr production in the spec, but is for us,
3672         because we don't naively map BNF productions to classes).
3673
3674         * xml/XPathPredicate.cpp: (WebCore::XPath::Union::evaluate): Signal an error if either side
3675         is not a node-set.
3676
3677         * xml/XPathStep.cpp: Removed an unnecesary include.
3678
3679         * xml/XPathValue.cpp:
3680         (WebCore::XPath::Value::toNodeSet): Signal an error if conversion fails.
3681         (WebCore::XPath::Value::modifiableNodeSet): Ditto.
3682         (WebCore::XPath::Value::toNumber): Don't allow inputs that don't match XPath Number production
3683         (in particular, those using exponential notation).
3684
3685 2009-06-01  Sam Weinig  <sam@webkit.org>
3686
3687         Reviewed by Brady Eidson.
3688
3689         Part of https://bugs.webkit.org/show_bug.cgi?id=26100
3690         Add missing event handler properties to the DOMWindow
3691
3692         Added oncontextmenu, oninput, and onmessage event handlers to
3693         the DOMWindow. Aditionally, the onloadstart, onprogress, onstalled,
3694         and onsuspend event handlers were implemented but not added to
3695         DOMWindow.idl.
3696
3697         * page/DOMWindow.cpp:
3698         (WebCore::DOMWindow::oninput):
3699         (WebCore::DOMWindow::setOninput):
3700         (WebCore::DOMWindow::onmessage):
3701         (WebCore::DOMWindow::setOnmessage):
3702         (WebCore::DOMWindow::oncontextmenu):
3703         (WebCore::DOMWindow::setOncontextmenu):
3704         * page/DOMWindow.h:
3705         * page/DOMWindow.idl:
3706
3707 2009-06-01  Jeremy Orlow  <jorlow@chromium.org>
3708
3709         Reviewed by Darin Adler.  Landed by Adam Barth.
3710
3711         https://bugs.webkit.org/show_bug.cgi?id=26123
3712
3713         Remove a redundant checkEncodedString call when constructing a
3714         KURL object from a string.
3715
3716         * platform/KURL.cpp:
3717         (WebCore::KURL::KURL):
3718
3719 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
3720
3721         Unreviewed, build fix.
3722
3723         Reposition platform guard, improperly placed by http://trac.webkit.org/changeset/44340
3724         Bad Dimitri.
3725
3726         * platform/KeyboardCodes.h: Repositioned the guard to avoid nested
3727             WebCore namespace declarations.
3728
3729 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
3730
3731         Unreviewed, build fix.
3732
3733         * platform/KeyboardCodes.h: Integrated contents of platform/chromium/KeyboardCodes.h
3734             with a stern FIXME.
3735         * platform/chromium/KeyboardCodes.h: Removed.
3736
3737 2009-06-01  Nikolas Zimmermann  <zimmermann@kde.org>
3738
3739         Reviewed by Eric Seidel.
3740
3741         Fix assertion error in --filters enabled debug builds.
3742         Instead of using RefPtr<AtomicStringImpl> as keys for the hash maps in SVGFilterBuilder, just use AtomicString objects.
3743
3744         * svg/graphics/filters/SVGFilterBuilder.cpp:
3745         (WebCore::SVGFilterBuilder::SVGFilterBuilder):
3746         (WebCore::SVGFilterBuilder::add):
3747         (WebCore::SVGFilterBuilder::getEffectById):
3748         * svg/graphics/filters/SVGFilterBuilder.h:
3749
3750 2009-06-01  Nikolas Zimmermann  <zimmermann@kde.org>
3751
3752         Reviewed by Eric Seidel.
3753
3754         Fix --filters enabled build on Mac.
3755         Remove unnecessary 'boundingBox' parameter from finishRenderSVGContent() method.
3756         Kill several warnings, to make build pass.
3757
3758         * rendering/RenderPath.cpp:
3759         (WebCore::RenderPath::paint):
3760         * rendering/RenderSVGContainer.cpp:
3761         (WebCore::RenderSVGContainer::paint):
3762         * rendering/RenderSVGImage.cpp:
3763         (WebCore::RenderSVGImage::paint):
3764         * rendering/RenderSVGRoot.cpp:
3765         (WebCore::RenderSVGRoot::paint):
3766         * rendering/SVGRenderSupport.cpp:
3767         (WebCore::SVGRenderBase::finishRenderSVGContent):
3768         * rendering/SVGRenderSupport.h:
3769         * rendering/SVGRootInlineBox.cpp:
3770         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
3771         * svg/SVGFEGaussianBlurElement.cpp:
3772         (WebCore::SVGFEGaussianBlurElement::setStdDeviation):
3773         * svg/graphics/filters/SVGFEFlood.cpp:
3774         (WebCore::FEFlood::FEFlood):
3775
3776 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
3777
3778         Reviewed by Dave Hyatt.
3779
3780         Fix Chromium build by adding an #ifdef, restoring the code path to that
3781         before http://trac.webkit.org/changeset/44287.
3782
3783         * platform/mac/ScrollbarThemeMac.mm:
3784         (WebCore::ScrollbarThemeMac::paint): Added an #ifdef.
3785
3786 2009-06-01  Dirk Schulze  <krit@webkit.org>
3787
3788         Reviewed by Nikolas Zimmermann.
3789
3790         Remove last pieces of the old SVG filter system. They are not
3791         usable with our current filter system. The new filter effects
3792         will replace the functionality step by step.
3793
3794         * GNUmakefile.am:
3795         * WebCore.pro:
3796         * WebCore.vcproj/WebCore.vcproj:
3797         * WebCore.xcodeproj/project.pbxproj:
3798         * svg/graphics/cairo: Removed.
3799         * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Removed.
3800         * svg/graphics/cg: Removed.
3801         * svg/graphics/cg/SVGResourceFilterCg.cpp: Removed.
3802         * svg/graphics/cg/SVGResourceFilterCg.mm: Removed.
3803         * svg/graphics/filters/SVGFilterEffect.cpp: Removed.
3804         * svg/graphics/filters/SVGFilterEffect.h: Removed.
3805         * svg/graphics/filters/cg: Removed.
3806         * svg/graphics/filters/cg/SVGFEHelpersCg.h: Removed.
3807         * svg/graphics/filters/cg/SVGFEHelpersCg.mm: Removed.
3808         * svg/graphics/filters/cg/SVGFilterEffectCg.mm: Removed.
3809         * svg/graphics/filters/cg/WKArithmeticFilter.cikernel: Removed.
3810         * svg/graphics/filters/cg/WKArithmeticFilter.h: Removed.
3811         * svg/graphics/filters/cg/WKArithmeticFilter.m: Removed.
3812         * svg/graphics/filters/cg/WKComponentMergeFilter.cikernel: Removed.
3813         * svg/graphics/filters/cg/WKComponentMergeFilter.h: Removed.
3814         * svg/graphics/filters/cg/WKComponentMergeFilter.m: Removed.
3815         * svg/graphics/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
3816         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h: Removed.
3817         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m: Removed.
3818         * svg/graphics/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
3819         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h: Removed.
3820         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m: Removed.
3821         * svg/graphics/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
3822         * svg/graphics/filters/cg/WKDisplacementMapFilter.h: Removed.
3823         * svg/graphics/filters/cg/WKDisplacementMapFilter.m: Removed.
3824         * svg/graphics/filters/cg/WKDistantLightFilter.cikernel: Removed.
3825         * svg/graphics/filters/cg/WKDistantLightFilter.h: Removed.
3826         * svg/graphics/filters/cg/WKDistantLightFilter.m: Removed.
3827         * svg/graphics/filters/cg/WKGammaTransferFilter.cikernel: Removed.
3828         * svg/graphics/filters/cg/WKGammaTransferFilter.h: Removed.
3829         * svg/graphics/filters/cg/WKGammaTransferFilter.m: Removed.
3830         * svg/graphics/filters/cg/WKIdentityTransferFilter.h: Removed.
3831         * svg/graphics/filters/cg/WKIdentityTransferFilter.m: Removed.
3832         * svg/graphics/filters/cg/WKLinearTransferFilter.cikernel: Removed.
3833         * svg/graphics/filters/cg/WKLinearTransferFilter.h: Removed.
3834         * svg/graphics/filters/cg/WKLinearTransferFilter.m: Removed.
3835         * svg/graphics/filters/cg/WKNormalMapFilter.cikernel: Removed.
3836         * svg/graphics/filters/cg/WKNormalMapFilter.h: Removed.
3837         * svg/graphics/filters/cg/WKNormalMapFilter.m: Removed.
3838         * svg/graphics/filters/cg/WKPointLightFilter.cikernel: Removed.
3839         * svg/graphics/filters/cg/WKPointLightFilter.h: Removed.
3840         * svg/graphics/filters/cg/WKPointLightFilter.m: Removed.
3841         * svg/graphics/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
3842         * svg/graphics/filters/cg/WKSpecularLightingFilter.h: Removed.
3843         * svg/graphics/filters/cg/WKSpecularLightingFilter.m: Removed.
3844         * svg/graphics/filters/cg/WKSpotLightFilter.cikernel: Removed.
3845         * svg/graphics/filters/cg/WKSpotLightFilter.h: Removed.
3846         * svg/graphics/filters/cg/WKSpotLightFilter.m: Removed.
3847         * svg/graphics/filters/cg/WKTableTransferFilter.cikernel: Removed.
3848         * svg/graphics/filters/cg/WKTableTransferFilter.h: Removed.
3849         * svg/graphics/filters/cg/WKTableTransferFilter.m: Removed.
3850         * svg/graphics/mac: Removed.
3851         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h: Removed.
3852         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
3853         * svg/graphics/qt: Removed.
3854         * svg/graphics/qt/SVGResourceFilterQt.cpp: Removed.
3855         * svg/graphics/skia: Removed.
3856         * svg/graphics/skia/SVGResourceFilterSkia.cpp: Removed.
3857
3858 2009-06-01  Dmitry Titov  <dimich@chromium.org>
3859
3860         Fix the previous checkin (ttp://trac.webkit.org/changeset/44327).
3861         This adds a comment suggested during review.
3862
3863         * platform/ThreadGlobalData.cpp:
3864         (WebCore::ThreadGlobalData::~ThreadGlobalData): Add comment clarifying the change.
3865
3866 2009-06-01  Dmitry Titov  <dimich@chromium.org>
3867
3868         Reviewed by Darin Adler.
3869
3870         https://bugs.webkit.org/show_bug.cgi?id=25973
3871         Avoid calling CurrentThread() in thread-specific destructors in OSX Chromium.
3872         Pthreads invoke thread-specific destructors after WTF::detachThread() is called and ThreadIdentifier
3873         for the thread removed from the WTF thread map. Calling CurrentThread() in such destructor causes
3874         the ThreadIdentifier to be re-created and inserted into the map again. Since Pthreads on OSX reuse
3875         the pthread_t between threads, the next created thread will have the same pthread_t and cause an assert
3876         in establishIdentifierForPthreadHandle() since the id is already in the map.
3877
3878         The behavior is covered by existing test LayoutTests/fast/workers/worker-terminate.html, which currently fails
3879         on OSX Chromium and will stop failing after this change.
3880
3881         * platform/ThreadGlobalData.h:
3882         * platform/ThreadGlobalData.cpp:
3883         (WebCore::ThreadGlobalData::~ThreadGlobalData):
3884         Store the result of "isMainThread()" in a member variable during construction of thread-specific data
3885         to avoid calling IsMainThread() in destructor, since the latter calls CurrentThread() in OSX Chromium.
3886
3887 2009-06-01  David Levin  <levin@chromium.org>
3888
3889         Reviewed by Darin Alder and Maciej Stachowiak.
3890
3891         Bug 26057: StringImpl should share buffers with UString.
3892         https://bugs.webkit.org/show_bug.cgi?id=26057
3893
3894         This change results in the following performance improvements:
3895         On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/001.html
3896         the time went from 78ms to 40ms for append (other times remained constant).
3897
3898         On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/002.html,
3899         the time went from 3900ms to 2600ms.
3900
3901         For http://dromaeo.com/?dom, the time for DomModification improved by ~6%.
3902         Other tests in dom seemed to be faster across several runs but within the
3903         margin of error (except DOM Attributes which was slightly ~1.5% worse).
3904
3905         Existing tests cover this code and there is no new functionality
3906         that is exposed to test.
3907
3908         * platform/text/AtomicString.cpp:
3909         (WebCore::AtomicString::add):
3910         * platform/text/String.cpp:
3911         (WebCore::String::String):
3912         (WebCore::String::operator UString):
3913         * platform/text/StringImpl.cpp:
3914         (WebCore::StringImpl::StringImpl):
3915         (WebCore::StringImpl::~StringImpl):
3916         (WebCore::StringImpl::create): Consumes a shared buffer.
3917         (WebCore::StringImpl::ustring): Shares the StringImpl's buffer with the UString.
3918         (WebCore::StringImpl::sharedBuffer): Exposes the buffer that may be shared.
3919         * platform/text/StringImpl.h:
3920         (WebCore::StringImpl::hasTerminatingNullCharacter):
3921         (WebCore::StringImpl::inTable):
3922         (WebCore::StringImpl::setInTable): Converted the bools to be inside of PtrAndFlags
3923         to avoid growing StringImpl in size.
3924
3925 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
3926
3927         Unreviewed, build fix.
3928
3929         V8 bindings follow-up to to DOMWindow-related cleanup:
3930         http://trac.webkit.org/changeset/44215
3931
3932         * bindings/v8/ScriptController.cpp: Removed disconnectFrame(), relocated
3933             its body to destructor.
3934         * bindings/v8/ScriptController.h: Removed disconnectFrame() decl.
3935
3936 2009-05-28  Pavel Feldman  <pfeldman@chromium.org>
3937
3938         Reviewed by Timothy Hatcher.
3939
3940         - Add panel enabler to the resources panel.
3941         - Add session / always options into the panel enabler.
3942         - Make enabled status for three panels sticky (globally).
3943         - Persist enabled status using InspectorController::Settings
3944         - Make InspectorController produce no network-related overhead when
3945           resources panel is not enabled.
3946
3947         https://bugs.webkit.org/show_bug.cgi?id=26046
3948
3949         * inspector/InspectorController.cpp:
3950         (WebCore::InspectorController::InspectorController):
3951         (WebCore::InspectorController::setWindowVisible):
3952         (WebCore::InspectorController::populateScriptObjects):
3953         (WebCore::InspectorController::identifierForInitialRequest):
3954         (WebCore::InspectorController::willSendRequest):
3955         (WebCore::InspectorController::didReceiveResponse):
3956         (WebCore::InspectorController::didReceiveContentLength):
3957         (WebCore::InspectorController::didFinishLoading):
3958         (WebCore::InspectorController::didFailLoading):
3959         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
3960         (WebCore::InspectorController::scriptImported):
3961         (WebCore::InspectorController::enableResourceTracking):
3962         (WebCore::InspectorController::disableResourceTracking):
3963         (WebCore::InspectorController::startUserInitiatedProfiling):
3964         (WebCore::InspectorController::enableProfiler):
3965         (WebCore::InspectorController::disableProfiler):
3966         (WebCore::InspectorController::enableDebugger):
3967         (WebCore::InspectorController::disableDebugger):
3968         * inspector/InspectorController.h:
3969         (WebCore::InspectorController::Setting::Setting):
3970         (WebCore::InspectorController::resourceTrackingEnabled):
3971         * inspector/InspectorController.idl:
3972         * inspector/InspectorFrontend.cpp:
3973         (WebCore::InspectorFrontend::resourceTrackingWasEnabled):
3974         (WebCore::InspectorFrontend::resourceTrackingWasDisabled):
3975         * inspector/InspectorFrontend.h:
3976         * inspector/front-end/PanelEnablerView.js:
3977         (WebInspector.PanelEnablerView.enableOption):
3978         (WebInspector.PanelEnablerView):
3979         (WebInspector.PanelEnablerView.prototype._windowResized):
3980         (WebInspector.PanelEnablerView.prototype.alwaysWasChosen):
3981         * inspector/front-end/ProfilesPanel.js:
3982         (WebInspector.ProfilesPanel.prototype._enableProfiling):
3983         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
3984         * inspector/front-end/ResourcesPanel.js:
3985         (WebInspector.ResourcesPanel):
3986         (WebInspector.ResourcesPanel.prototype.get statusBarItems):
3987         (WebInspector.ResourcesPanel.prototype.resourceTrackingWasEnabled):
3988         (WebInspector.ResourcesPanel.prototype.resourceTrackingWasDisabled):
3989         (WebInspector.ResourcesPanel.prototype.reset):
3990         (WebInspector.ResourcesPanel.prototype._updateSidebarWidth):
3991         (WebInspector.ResourcesPanel.prototype._enableResourceTracking):
3992         (WebInspector.ResourcesPanel.prototype._toggleResourceTracking):
3993         * inspector/front-end/ScriptsPanel.js:
3994         (WebInspector.ScriptsPanel.prototype._enableDebugging):
3995         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
3996         * inspector/front-end/inspector.css:
3997         * inspector/front-end/inspector.js:
3998         (WebInspector.resourceTrackingWasEnabled):
3999         (WebInspector.resourceTrackingWasDisabled):
4000
4001 2009-06-01  Drew Wilson  <atwilson@google.com>
4002
4003         Reviewed by Darin Adler.  Landed (and tweaked) by Adam Barth.
4004
4005         https://bugs.webkit.org/show_bug.cgi?id=25902
4006
4007         Added WorkerContext.close()
4008
4009         Test: fast/workers/worker-close.html
4010
4011         * workers/WorkerContext.cpp:
4012         (WebCore::WorkerContext::close):
4013         * workers/WorkerContext.h:
4014         * workers/WorkerContext.idl:
4015         * workers/WorkerMessagingProxy.cpp:
4016         (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):
4017
4018 2009-06-01  Alexey Proskuryakov  <ap@webkit.org>
4019
4020         Reviewed by Darin Adler.
4021
4022         https://bugs.webkit.org/show_bug.cgi?id=12471
4023         XPathResult not invalidated for documents retrieved via XMLHttpRequest
4024
4025         Test: fast/xpath/detached-subtree-invalidate-iterator.html and existing tests in dom/svg/level3/xpath.
4026
4027         Use DOM tree version instead of DOMSubtreeModified events to invalidate, which is more
4028         reliable and much faster.
4029
4030         * xml/XPathExpression.cpp:
4031         (WebCore::XPathExpression::evaluate):
4032         * xml/XPathResult.cpp:
4033         (WebCore::XPathResult::XPathResult):
4034         (WebCore::XPathResult::~XPathResult):
4035         (WebCore::XPathResult::invalidIteratorState):
4036         (WebCore::XPathResult::iterateNext):
4037         * xml/XPathResult.h:
4038         (WebCore::XPathResult::create):
4039
4040 2009-06-01  Brett Wilson  <brettw@chromium.org>
4041
4042         Reviewed by Darin Adler.  Landed by Adam Barth.
4043
4044         https://bugs.webkit.org/show_bug.cgi?id=25750
4045
4046         Test: fast/transforms/bounding-rect-zoom.html
4047
4048         Make getClientRects and getBoundingClientRect account for ther zoom
4049         factor.
4050
4051         * dom/Element.cpp:
4052         (WebCore::adjustFloatPointForAbsoluteZoom):
4053         (WebCore::adjustFloatQuadForAbsoluteZoom):
4054         (WebCore::adjustIntRectForAbsoluteZoom):
4055         (WebCore::Element::getClientRects):
4056         (WebCore::Element::getBoundingClientRect):
4057
4058 2009-06-01  Tony Chang  <tony@chromium.org>
4059
4060         Reviewed by Dimitri Glazkov.  Landed by Adam Barth.
4061
4062         https://bugs.webkit.org/show_bug.cgi?id=26026
4063
4064         Fix an infinite loop when using the keyboard in Chromium select
4065         popups.
4066
4067         Not testable since it involves sending a keyboard event to
4068         the popup, which is not possible (eventSender sends the key
4069         events through webview, we want to go through the webwidget).
4070
4071         * platform/chromium/PopupMenuChromium.cpp:
4072
4073 2009-06-01  Nate Chapin  <japhet@google.com>
4074
4075         Reviewed by Dimitri Glazkov.  Landed by Adam Barth.
4076
4077         If a url with an anchor is being loaded, ensure that the anchor remains locked in view until the page
4078         has finished loading compeltely or the user has manually scrolled.  Refreshing an anchor url after
4079         scrolling to a new location on the page will still result in jumping to the new location.
4080         
4081         https://bugs.webkit.org/show_bug.cgi?id=26034
4082
4083         * loader/FrameLoader.cpp:
4084         (WebCore::FrameLoader::gotoAnchor): Set anchor lock after navigating to anchor.
4085         (WebCore::FrameLoader::completed): Release anchor lock.
4086         * page/FrameView.cpp:
4087         (WebCore::FrameView::FrameView): Ensure anchor lock starts unset.
4088         (WebCore::FrameView::reset): Ensure anchor lock starts unset.
4089         (WebCore::FrameView::layout): If anchor lock is set, force a gotoAnchor() after layout.
4090         (WebCore::FrameView::scrollRectIntoViewRecursively): Release anchor lock if a programmatic scroll begins.
4091         (WebCore::FrameView::setWasScrolledByUser): Release anchor lock if user manually scrolls.
4092         (WebCore::FrameView::setScrollPosition): Release anchor lock if a programmatic scroll begins.
4093         * page/FrameView.h:
4094         (WebCore::FrameView::lockedToAnchor): Added.
4095         (WebCore::FrameView::setLockedToAnchor): Added.
4096
4097 2009-05-31  Dirk Schulze  <krit@webkit.org>
4098
4099         Reviewed by Nikolas Zimmermann.
4100
4101         WebKit needs cross-platform filter system
4102         [https://bugs.webkit.org/show_bug.cgi?id=19991]
4103
4104         A short clean-up. FilterBuilder is SVG specific. Move it
4105         to svg/graphics/filters and rename it to SVGFilterBuilder. 
4106
4107         * GNUmakefile.am:
4108         * WebCore.pro:
4109         * WebCore.xcodeproj/project.pbxproj:
4110         * svg/FilterBuilder.cpp: Removed.
4111         * svg/FilterBuilder.h: Removed.
4112         * svg/SVGFilterElement.cpp:
4113         * svg/SVGFilterPrimitiveStandardAttributes.h:
4114         * svg/graphics/SVGResourceFilter.cpp:
4115         (WebCore::SVGResourceFilter::SVGResourceFilter):
4116         * svg/graphics/SVGResourceFilter.h:
4117         (WebCore::SVGResourceFilter::builder):
4118         * svg/graphics/filters/SVGFilterBuilder.cpp: Added.
4119         (WebCore::SVGFilterBuilder::SVGFilterBuilder):
4120         (WebCore::SVGFilterBuilder::add):
4121         (WebCore::SVGFilterBuilder::getEffectById):
4122         (WebCore::SVGFilterBuilder::clearEffects):
4123         * svg/graphics/filters/SVGFilterBuilder.h: Added.
4124         (WebCore::SVGFilterBuilder::lastEffect):
4125
4126 2009-05-31  Alexey Proskuryakov  <ap@webkit.org>
4127
4128         Reviewed by Darin Adler.
4129
4130         https://bugs.webkit.org/show_bug.cgi?id=13233
4131         Need to implement an optimizing XPath evaluator
4132
4133         Avoid sorting results of hierarchical paths that are naturally sorted. On a flat data structure
4134         with 128K nodes and a simple XPath expression, this changes evaluation time from 1.5 minutes
4135         to 33 ms.
4136
4137         * xml/XPathNodeSet.h: Keep track of whether subtrees rooted at nodes in set are disjoint,
4138         which is useful for optimization.
4139         (WebCore::XPath::NodeSet::NodeSet): Removed, it was identical to compiler generated one.
4140         (WebCore::XPath::NodeSet::operator=): Ditto.
4141         (WebCore::XPath::NodeSet::swap): Ditto.
4142         (WebCore::XPath::NodeSet::isSorted): Single element sets are always sorted, even if sort()
4143         was never called.
4144         (WebCore::XPath::NodeSet::markSubtreesDisjoint): Just like being sorted, the new flag is
4145         maintained by callers.
4146         (WebCore::XPath::NodeSet::subtreesAreDisjoint): A single element set only has one subtree.
4147         Currently, the only way for a set to gain this flag is to be produced from a single element
4148         set with a hierarchical location path.
4149
4150         * xml/XPathPath.cpp: (WebCore::XPath::LocationPath::evaluate): Use the new flag to avoid
4151         maintaining a set of unique nodes, and to avoid sorting the result.
4152
4153 2009-05-31  Alexey Proskuryakov  <ap@webkit.org>
4154
4155         Reviewed by Darin Adler.
4156
4157         https://bugs.webkit.org/show_bug.cgi?id=13233
4158         Need to implement an optimizing XPath evaluator
4159
4160         This patch adds some infrastructure and simple optimizations. Namely,
4161         - we now avoid building a full NodeSet just to evaluate a predicate in some cases;
4162         - "/descendant-or-self::node()/child::" is optimized to iterate the tree once when possible;
4163
4164         * xml/XPathExpressionNode.cpp:
4165         (WebCore::XPath::Expression::Expression):
4166         * xml/XPathExpressionNode.h:
4167         (WebCore::XPath::Expression::addSubExpression):
4168         (WebCore::XPath::Expression::isContextNodeSensitive):
4169         (WebCore::XPath::Expression::isContextPositionSensitive):
4170         (WebCore::XPath::Expression::isContextSizeSensitive):
4171         (WebCore::XPath::Expression::setIsContextNodeSensitive):
4172         (WebCore::XPath::Expression::setIsContextPositionSensitive):
4173         (WebCore::XPath::Expression::setIsContextSizeSensitive):
4174         XPath expression now knows its result type, and whether evaluation depends on context.
4175
4176         * xml/XPathFunctions.cpp:
4177         (WebCore::XPath::FunLast::resultType):
4178         (WebCore::XPath::FunLast::FunLast):
4179         (WebCore::XPath::FunPosition::resultType):
4180         (WebCore::XPath::FunPosition::FunPosition):
4181         (WebCore::XPath::FunCount::resultType):
4182         (WebCore::XPath::FunId::resultType):
4183         (WebCore::XPath::FunLocalName::resultType):
4184         (WebCore::XPath::FunLocalName::FunLocalName):
4185         (WebCore::XPath::FunNamespaceURI::resultType):
4186         (WebCore::XPath::FunNamespaceURI::FunNamespaceURI):
4187         (WebCore::XPath::FunName::resultType):
4188         (WebCore::XPath::FunName::FunName):
4189         (WebCore::XPath::FunString::resultType):
4190         (WebCore::XPath::FunString::FunString):
4191         (WebCore::XPath::FunConcat::resultType):
4192         (WebCore::XPath::FunStartsWith::resultType):
4193         (WebCore::XPath::FunContains::resultType):
4194         (WebCore::XPath::FunSubstringBefore::resultType):
4195         (WebCore::XPath::FunSubstringAfter::resultType):
4196         (WebCore::XPath::FunSubstring::resultType):
4197         (WebCore::XPath::FunStringLength::resultType):
4198         (WebCore::XPath::FunStringLength::FunStringLength):
4199         (WebCore::XPath::FunNormalizeSpace::resultType):
4200         (WebCore::XPath::FunNormalizeSpace::FunNormalizeSpace):
4201         (WebCore::XPath::FunTranslate::resultType):
4202         (WebCore::XPath::FunBoolean::resultType):
4203         (WebCore::XPath::FunNot::resultType):
4204         (WebCore::XPath::FunTrue::resultType):
4205         (WebCore::XPath::FunFalse::resultType):
4206         (WebCore::XPath::FunLang::resultType):
4207         (WebCore::XPath::FunLang::FunLang):
4208         (WebCore::XPath::FunNumber::resultType):
4209         (WebCore::XPath::FunNumber::FunNumber):
4210         (WebCore::XPath::FunSum::resultType):
4211         (WebCore::XPath::FunFloor::resultType):
4212         (WebCore::XPath::FunCeiling::resultType):
4213         (WebCore::XPath::FunRound::resultType):
4214         (WebCore::XPath::Function::setArguments):
4215         Set optimization details for the expression. Normally, a function does not introduce context
4216         node set dependency, but some use context node as default argument, or otherwise use the context.
4217
4218         * xml/XPathFunctions.h: Tweaked style.
4219
4220         * xml/XPathPath.cpp:
4221         (WebCore::XPath::Filter::Filter): A filter is as context node set sensitive as its expression is.
4222         (WebCore::XPath::LocationPath::LocationPath): A location path can only be context node sensitive,
4223         and only if the path relative.
4224         (WebCore::XPath::LocationPath::appendStep): Invoke compile-time Step optimizations.
4225         (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
4226         (WebCore::XPath::Path::Path): A path is as context node set sensitive as its filter is.
4227
4228         * xml/XPathPath.h:
4229         (WebCore::XPath::Filter::resultType): Result type of a filter is the same as of its expression
4230         (useful filters return NodeSets, of course).
4231         (WebCore::XPath::LocationPath::setAbsolute): An absolute location path if context node set
4232         insensitive.
4233         (WebCore::XPath::LocationPath::resultType): A path's result is always a node set.
4234         (WebCore::XPath::Path::resultType): Ditto.
4235
4236         * xml/XPathPredicate.h:
4237         (WebCore::XPath::Number::resultType): Return a proper result type.
4238         (WebCore::XPath::StringExpression::resultType): Ditto.
4239         (WebCore::XPath::Negative::resultType): Ditto.
4240         (WebCore::XPath::NumericOp::resultType): Ditto.
4241         (WebCore::XPath::EqTestOp::resultType): Ditto.
4242         (WebCore::XPath::LogicalOp::resultType): Ditto.
4243         (WebCore::XPath::Union::resultType): Ditto.
4244         (WebCore::XPath::Predicate::isContextPositionSensitive): A predicate can be context position
4245         sensitive even if its expression is not, because e.g. [5] is a shortcut for [position()=5].
4246         (WebCore::XPath::Predicate::isContextSizeSensitive): This matches expression result.
4247
4248         * xml/XPathStep.h:
4249         (WebCore::XPath::Step::NodeTest::Kind): Removed unused ElementNodeTest, which was previously
4250         borrowed from XPath 2.0 to express some optimizations.
4251         (WebCore::XPath::Step::NodeTest::mergedPredicates): To avoid building a huge node set and
4252         filtering it with predicates, we now try to apply predicates while enumerating an axis.
4253         (WebCore::XPath::Step::nodeTest): Expose m_nodeTest.
4254
4255         * xml/XPathStep.cpp:
4256         (WebCore::XPath::Step::~Step): The step owns NodeTest merged predicates, so it is still
4257         possible to copy NodeTests.
4258         (WebCore::XPath::Step::optimize): Merge predicates into NodeTest if possible.
4259         (WebCore::XPath::optimizeStepPair): Optimize some expressions containing "//".
4260         (WebCore::XPath::Step::predicatesAreContextListInsensitive): The above optimization is only
4261         possible if there are no context sensitive predicates for "//".
4262         (WebCore::XPath::Step::evaluate): Track context position for the first merged predicate.
4263         (WebCore::XPath::nodeMatchesBasicTest): Check whether the node matches node test, ignoring
4264         merged predicates.
4265         (WebCore::XPath::nodeMatches): Additionally check merged predicates, and update position.
4266         (WebCore::XPath::Step::nodesInAxis): Check merged predicates in optimized attribute code
4267         path.
4268
4269         * xml/XPathVariableReference.h: (WebCore::XPath::VariableReference::resultType): Variable
4270         references are not used with XPathEvaluator, so we'll only need them if we decide to
4271         reimplement XSLT. The type of variable reference is not known at compile time.
4272
4273 2009-05-31  Sam Weinig  <sam@webkit.org>
4274
4275         Rubber-stamped by Dan Bernstein.
4276
4277         Remove unused JSEventTargetBase.h
4278
4279         * GNUmakefile.am:
4280         * WebCore.vcproj/WebCore.vcproj:
4281         * WebCore.xcodeproj/project.pbxproj:
4282         * bindings/js/JSEventTargetBase.h: Removed.
4283
4284 2009-05-31  Sam Weinig  <sam@webkit.org>
4285
4286         Reviewed by Dan Bernstein.
4287
4288         Part of https://bugs.webkit.org/show_bug.cgi?id=26100
4289         Add missing event handler properties to the DOMWindow
4290
4291         Add missing oncanplay, oncanplaythrough, ondurationchange, onemptied,
4292         onended, onloadeddata, onloadedmetadata, onpause, onplay, onplaying,
4293         onratechange, onseeked, onseeking, ontimeupdate, onvolumechange,
4294         onwaiting, onloadstart, onprogress, onstalled, onsuspend, ondrag,
4295         ondragend, ondragenter, ondragleave, ondragover, ondragstart and 
4296         ondrop event handlers to the DOMWindow.
4297
4298         * page/DOMWindow.cpp:
4299         (WebCore::DOMWindow::ondrag):
4300         (WebCore::DOMWindow::setOndrag):
4301         (WebCore::DOMWindow::ondragend):
4302         (WebCore::DOMWindow::setOndragend):
4303         (WebCore::DOMWindow::ondragenter):
4304         (WebCore::DOMWindow::setOndragenter):
4305         (WebCore::DOMWindow::ondragleave):
4306         (WebCore::DOMWindow::setOndragleave):
4307         (WebCore::DOMWindow::ondragover):
4308         (WebCore::DOMWindow::setOndragover):
4309         (WebCore::DOMWindow::ondragstart):
4310         (WebCore::DOMWindow::setOndragstart):
4311         (WebCore::DOMWindow::ondrop):
4312         (WebCore::DOMWindow::setOndrop):
4313         (WebCore::DOMWindow::oncanplay):
4314         (WebCore::DOMWindow::setOncanplay):
4315         (WebCore::DOMWindow::oncanplaythrough):
4316         (WebCore::DOMWindow::setOncanplaythrough):
4317         (WebCore::DOMWindow::ondurationchange):
4318         (WebCore::DOMWindow::setOndurationchange):
4319         (WebCore::DOMWindow::onemptied):
4320         (WebCore::DOMWindow::setOnemptied):
4321         (WebCore::DOMWindow::onended):
4322         (WebCore::DOMWindow::setOnended):
4323         (WebCore::DOMWindow::onloadeddata):
4324         (WebCore::DOMWindow::setOnloadeddata):
4325         (WebCore::DOMWindow::onloadedmetadata):
4326         (WebCore::DOMWindow::setOnloadedmetadata):
4327         (WebCore::DOMWindow::onpause):
4328         (WebCore::DOMWindow::setOnpause):
4329         (WebCore::DOMWindow::onplay):
4330         (WebCore::DOMWindow::setOnplay):
4331         (WebCore::DOMWindow::onplaying):
4332         (WebCore::DOMWindow::setOnplaying):
4333         (WebCore::DOMWindow::onratechange):
4334         (WebCore::DOMWindow::setOnratechange):
4335         (WebCore::DOMWindow::onseeked):
4336         (WebCore::DOMWindow::setOnseeked):
4337         (WebCore::DOMWindow::onseeking):
4338         (WebCore::DOMWindow::setOnseeking):
4339         (WebCore::DOMWindow::ontimeupdate):
4340         (WebCore::DOMWindow::setOntimeupdate):
4341         (WebCore::DOMWindow::onvolumechange):
4342         (WebCore::DOMWindow::setOnvolumechange):
4343         (WebCore::DOMWindow::onwaiting):
4344         (WebCore::DOMWindow::setOnwaiting):
4345         (WebCore::DOMWindow::onloadstart):
4346         (WebCore::DOMWindow::setOnloadstart):
4347         (WebCore::DOMWindow::onprogress):
4348         (WebCore::DOMWindow::setOnprogress):
4349         (WebCore::DOMWindow::onstalled):
4350         (WebCore::DOMWindow::setOnstalled):
4351         (WebCore::DOMWindow::onsuspend):
4352         (WebCore::DOMWindow::setOnsuspend):
4353         * page/DOMWindow.h:
4354         * page/DOMWindow.idl:
4355
4356 2009-05-31  Sam Weinig  <sam@webkit.org>
4357
4358         Reviewed by Anders Carlsson.
4359
4360         Part of https://bugs.webkit.org/show_bug.cgi?id=26100
4361         Add missing event handler properties to the DOMWindow
4362
4363         Add missing onstorage event handler to the DOMWindow.
4364
4365         * page/DOMWindow.cpp:
4366         (WebCore::DOMWindow::onstorage):
4367         (WebCore::DOMWindow::setOnstorage):
4368         * page/DOMWindow.h:
4369         * page/DOMWindow.idl:
4370
4371 2009-05-30  Sam Weinig  <sam@webkit.org>
4372
4373         Reviewed by Mark Rowe.
4374
4375         Fix for https://bugs.webkit.org/show_bug.cgi?id=26110
4376         Update online/offline events to match the current spec.
4377         - Also adds window.ononline and window.onoffline event handler
4378           properties.
4379
4380         * page/DOMWindow.cpp:
4381         (WebCore::DOMWindow::onoffline):
4382         (WebCore::DOMWindow::setOnoffline):
4383         (WebCore::DOMWindow::ononline):
4384         (WebCore::DOMWindow::setOnonline):
4385         * page/DOMWindow.h:
4386         * page/DOMWindow.idl:
4387         * page/Page.cpp:
4388         (WebCore::networkStateChanged):
4389
4390 2009-05-31  Dirk Schulze  <krit@webkit.org>
4391
4392         Reviewed by Nikolas Zimmermann.
4393
4394         WebKit needs cross-platform filter system
4395         [https://bugs.webkit.org/show_bug.cgi?id=19991]
4396
4397         Make use of the new filter system in WebCore for SVG. Deleted Mac bindings
4398         and replace it by a platform independent code. Calculation of subRegions
4399         is missing but needed for a first filter effect.
4400
4401         * GNUmakefile.am:
4402         * WebCore.pro:
4403         * WebCore.vcproj/WebCore.vcproj:
4404         * WebCore.xcodeproj/project.pbxproj:
4405         * platform/graphics/filters/Filter.h:
4406         (WebCore::Filter::~Filter):
4407         (WebCore::Filter::setSourceImage):
4408         * rendering/SVGRenderSupport.cpp:
4409         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
4410         (WebCore::SVGRenderBase::finishRenderSVGContent):
4411         * svg/FilterBuilder.h:
4412         (WebCore::FilterBuilder::lastEffect):
4413         * svg/SVGFEBlendElement.cpp:
4414         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
4415         (WebCore::SVGFEBlendElement::build):
4416         * svg/SVGFEBlendElement.h:
4417         * svg/SVGFEColorMatrixElement.cpp:
4418         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
4419         (WebCore::SVGFEColorMatrixElement::build):
4420         * svg/SVGFEColorMatrixElement.h:
4421         * svg/SVGFEComponentTransferElement.cpp:
4422         (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
4423         (WebCore::SVGFEComponentTransferElement::build):
4424         * svg/SVGFEComponentTransferElement.h:
4425         * svg/SVGFECompositeElement.cpp:
4426         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
4427         (WebCore::SVGFECompositeElement::build):
4428         * svg/SVGFECompositeElement.h:
4429         * svg/SVGFEDiffuseLightingElement.cpp:
4430         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
4431         (WebCore::SVGFEDiffuseLightingElement::build):
4432         * svg/SVGFEDiffuseLightingElement.h:
4433         * svg/SVGFEDisplacementMapElement.cpp:
4434         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
4435         (WebCore::SVGFEDisplacementMapElement::build):
4436         * svg/SVGFEDisplacementMapElement.h:
4437         * svg/SVGFEFloodElement.cpp:
4438         (WebCore::SVGFEFloodElement::SVGFEFloodElement):
4439         (WebCore::SVGFEFloodElement::build):
4440         * svg/SVGFEFloodElement.h:
4441         * svg/SVGFEGaussianBlurElement.cpp:
4442         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
4443         (WebCore::SVGFEGaussianBlurElement::build):
4444         * svg/SVGFEGaussianBlurElement.h:
4445         * svg/SVGFEImageElement.cpp:
4446         (WebCore::SVGFEImageElement::SVGFEImageElement):
4447         (WebCore::SVGFEImageElement::notifyFinished):
4448         (WebCore::SVGFEImageElement::build):
4449         * svg/SVGFEImageElement.h:
4450         * svg/SVGFEMergeElement.cpp:
4451         (WebCore::SVGFEMergeElement::SVGFEMergeElement):
4452         (WebCore::SVGFEMergeElement::build):
4453         * svg/SVGFEMergeElement.h:
4454         * svg/SVGFEOffsetElement.cpp:
4455         (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
4456         (WebCore::SVGFEOffsetElement::build):
4457         * svg/SVGFEOffsetElement.h:
4458         * svg/SVGFESpecularLightingElement.cpp:
4459         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
4460         (WebCore::SVGFESpecularLightingElement::build):
4461         * svg/SVGFESpecularLightingElement.h:
4462         * svg/SVGFETileElement.cpp:
4463         (WebCore::SVGFETileElement::SVGFETileElement):
4464         (WebCore::SVGFETileElement::build):
4465         * svg/SVGFETileElement.h:
4466         * svg/SVGFETurbulenceElement.cpp:
4467         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
4468         (WebCore::SVGFETurbulenceElement::build):
4469         * svg/SVGFETurbulenceElement.h:
4470         * svg/SVGFilterElement.cpp:
4471         (WebCore::SVGFilterElement::canvasResource):
4472         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
4473         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
4474         * svg/SVGFilterPrimitiveStandardAttributes.h:
4475         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement):
4476         * svg/graphics/SVGResourceFilter.cpp:
4477         (WebCore::SVGResourceFilter::SVGResourceFilter):
4478         (WebCore::SVGResourceFilter::addFilterEffect):
4479         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
4480         (WebCore::SVGResourceFilter::prepareFilter):
4481         (WebCore::SVGResourceFilter::applyFilter):
4482         (WebCore::SVGResourceFilter::externalRepresentation):
4483         * svg/graphics/SVGResourceFilter.h:
4484         (WebCore::SVGResourceFilter::filterBoundingBox):
4485         (WebCore::SVGResourceFilter::setFilterBoundingBox):
4486         (WebCore::SVGResourceFilter::itemBoundingBox):
4487         (WebCore::SVGResourceFilter::setItemBoundingBox):
4488         (WebCore::SVGResourceFilter::builder):
4489
4490 2009-05-31  Dirk Schulze  <krit@webkit.org>
4491
4492         Reviewed by Nikolas Zimmermann.
4493
4494         WebKit needs cross-platform filter system
4495         [https://bugs.webkit.org/show_bug.cgi?id=19991]
4496
4497         Adding 'in1' attribute support for <feFlood>, as specified in SVG 1.1.
4498         This change helps creating test cases, once filters are activated.
4499
4500         * svg/SVGFEFloodElement.cpp:
4501         (WebCore::SVGFEFloodElement::SVGFEFloodElement):
4502         (WebCore::SVGFEFloodElement::parseMappedAttribute):
4503         (WebCore::SVGFEFloodElement::build):
4504         * svg/SVGFEFloodElement.h:
4505         * svg/SVGFEFloodElement.idl:
4506         * svg/graphics/filters/SVGFEFlood.cpp:
4507         (WebCore::FEFlood::FEFlood):
4508         (WebCore::FEFlood::create):
4509         * svg/graphics/filters/SVGFEFlood.h:
4510
4511 2009-05-31  Dirk Schulze  <krit@webkit.org>
4512
4513         Reviewed by Nikolas Zimmermann.
4514
4515         WebKit needs cross-platform filter system
4516         [https://bugs.webkit.org/show_bug.cgi?id=19991]
4517
4518         Replace all occurrences of SVGResourceFilter by Filter. This is the last 
4519         step for a SVG independent filter system. Every other part of WebCore can
4520         use the filter system by creating a new Filter object.
4521
4522         * GNUmakefile.am:
4523         * WebCore.pro:
4524         * WebCore.xcodeproj/project.pbxproj:
4525         * platform/graphics/filters/FEBlend.cpp:
4526         (WebCore::FEBlend::apply):
4527         * platform/graphics/filters/FEBlend.h:
4528         * platform/graphics/filters/FEColorMatrix.cpp:
4529         (WebCore::FEColorMatrix::apply):
4530         * platform/graphics/filters/FEColorMatrix.h:
4531         * platform/graphics/filters/FEComponentTransfer.cpp:
4532         (WebCore::FEComponentTransfer::apply):
4533         * platform/graphics/filters/FEComponentTransfer.h:
4534         * platform/graphics/filters/FEComposite.cpp:
4535         (WebCore::FEComposite::apply):
4536         * platform/graphics/filters/FEComposite.h:
4537         * platform/graphics/filters/Filter.h: Added.
4538         (WebCore::Filter::setSourceImage):
4539         (WebCore::Filter::sourceImage):
4540         * platform/graphics/filters/FilterEffect.h:
4541         * platform/graphics/filters/SourceAlpha.cpp:
4542         (WebCore::SourceAlpha::apply):
4543         * platform/graphics/filters/SourceAlpha.h:
4544         * platform/graphics/filters/SourceGraphic.cpp:
4545         (WebCore::SourceGraphic::apply):
4546         * platform/graphics/filters/SourceGraphic.h:
4547         * svg/Filter.cpp: Removed.
4548         * svg/Filter.h: Removed.
4549         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
4550         (WebCore::FEConvolveMatrix::apply):
4551         * svg/graphics/filters/SVGFEConvolveMatrix.h:
4552         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
4553         (WebCore::FEDiffuseLighting::apply):
4554         * svg/graphics/filters/SVGFEDiffuseLighting.h:
4555         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
4556         (WebCore::FEDisplacementMap::apply):
4557         * svg/graphics/filters/SVGFEDisplacementMap.h:
4558         * svg/graphics/filters/SVGFEFlood.cpp:
4559         (WebCore::FEFlood::apply):
4560         * svg/graphics/filters/SVGFEFlood.h:
4561         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
4562         (WebCore::FEGaussianBlur::apply):
4563         * svg/graphics/filters/SVGFEGaussianBlur.h:
4564         * svg/graphics/filters/SVGFEImage.cpp:
4565         (WebCore::FEImage::apply):
4566         * svg/graphics/filters/SVGFEImage.h:
4567         * svg/graphics/filters/SVGFEMerge.cpp:
4568         (WebCore::FEMerge::apply):
4569         * svg/graphics/filters/SVGFEMerge.h:
4570         * svg/graphics/filters/SVGFEMorphology.cpp:
4571         (WebCore::FEMorphology::apply):
4572         * svg/graphics/filters/SVGFEMorphology.h:
4573         * svg/graphics/filters/SVGFEOffset.cpp:
4574         (WebCore::FEOffset::apply):
4575         * svg/graphics/filters/SVGFEOffset.h:
4576         * svg/graphics/filters/SVGFESpecularLighting.cpp:
4577         (WebCore::FESpecularLighting::apply):
4578         * svg/graphics/filters/SVGFESpecularLighting.h:
4579         * svg/graphics/filters/SVGFETile.cpp:
4580         (WebCore::FETile::apply):
4581         * svg/graphics/filters/SVGFETile.h:
4582         * svg/graphics/filters/SVGFETurbulence.cpp:
4583         (WebCore::FETurbulence::apply):
4584         * svg/graphics/filters/SVGFETurbulence.h:
4585         * svg/graphics/filters/SVGFilter.cpp: Added.
4586         (WebCore::SVGFilter::SVGFilter):
4587         (WebCore::SVGFilter::calculateEffectSubRegion):
4588         (WebCore::SVGFilter::create):
4589         * svg/graphics/filters/SVGFilter.h: Added.
4590
4591 2009-05-30  Kevin Ollivier  <kevino@theolliviers.com>
4592
4593         Build fix for platforms without plugins support.
4594
4595         * plugins/PluginViewNone.cpp:
4596         (WebCore::PluginView::userAgentStatic):
4597         (WebCore::PluginView::getValueStatic):
4598
4599 2009-05-30  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
4600
4601         Reviewed by Darin Adler.
4602
4603         Fixes: https://bugs.webkit.org/show_bug.cgi?id=25979
4604
4605         Fix regression, local WML files won't load anymore, as the mimetype isn't correctly detected.    
4606         Bug filed at <rdar://problem/6917571> to cover this CFNetwork limitation.
4607
4608         * platform/network/mac/ResourceHandleMac.mm:
4609         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
4610
4611 2009-05-29  Sam Weinig  <sam@webkit.org>
4612
4613         Reviewed by Anders Carlsson.
4614
4615         Fix for https://bugs.webkit.org/show_bug.cgi?id=26091
4616         Make storage events match the current spec.
4617         - Storage event listeners are added to the window.
4618         - Storage events are dispatched to the window.
4619
4620         Updated existing tests.
4621
4622         * dom/Document.cpp:
4623         (WebCore::Document::dispatchWindowEvent):
4624         * dom/Document.h:
4625         * dom/Node.cpp:
4626         * dom/Node.h:
4627         * html/HTMLBodyElement.cpp:
4628         (WebCore::HTMLBodyElement::parseMappedAttribute):
4629         * storage/LocalStorageArea.cpp:
4630         (WebCore::LocalStorageArea::dispatchStorageEvent):
4631         * storage/SessionStorageArea.cpp:
4632         (WebCore::SessionStorageArea::dispatchStorageEvent):
4633
4634 2009-05-30  Darin Adler  <darin@apple.com>
4635
4636         Reviewed by Adele Peterson.
4637
4638         Bug 26097: REGRESSION (r44283): Tab key doesn't work when focus is on a <select> element
4639
4640         Test: fast/forms/focus-control-to-page.html
4641
4642         * dom/SelectElement.h: Made destructor protected. Tweaked a bit.
4643
4644         * html/HTMLSelectElement.cpp: Removed unneeded includes.
4645         (WebCore::HTMLSelectElement::remove): Removed unneeded range check of the
4646         result of optionToListIndex.
4647         (WebCore::HTMLSelectElement::parseMappedAttribute): Removed code to set the
4648         unused attribute, m_minwidth.
4649         (WebCore::HTMLSelectElement::defaultEventHandler): The actual bug fix.
4650         Call through to the base class defaultEventHandler if the event hasn't
4651         been handled yet.
4652
4653         * html/HTMLSelectElement.h: Removed unneeded includes. Made a lot more functions
4654         private. Removed unused minWidth function and m_minwidth data member.
4655
4656 2009-05-30  Fridrich Strba  <fridrich.strba@bluewin.ch>
4657
4658         Reviewed by Holger Freyther.
4659
4660         The two KeyboardCodes.h files are basically identical and the
4661         qt one is properly #ifdef-ed for different win32 systems. Share
4662         them between Qt and Gtk implementations.
4663
4664         * GNUmakefile.am:
4665         * platform/KeyboardCodes.h: Copied from WebCore/platform/qt/KeyboardCodes.h.
4666         * platform/gtk/KeyboardCodes.h: Removed.
4667         * platform/qt/KeyboardCodes.h: Removed.
4668
4669 2009-05-30  Jeremy Orlow  <jorlow@chromium.org>
4670
4671         Reviewed by Sam Weinig.
4672
4673         LocalStorage and SessionStorage's implicit setters do not correctly 
4674         handle null.  The custom JS bindings should convert to strings
4675         unconditionally and not try to handle null specially.
4676         https://bugs.webkit.org/show_bug.cgi?id=25970
4677
4678         Tests: storage/domstorage/localstorage/string-conversion.html
4679                storage/domstorage/sessionstorage/string-conversion.html
4680
4681         * bindings/js/JSStorageCustom.cpp:
4682         (WebCore::JSStorage::customPut):
4683
4684 2009-05-30  Dan Bernstein  <mitz@apple.com>
4685
4686         Reviewed by Darin Adler.
4687
4688         - fix <rdar://problem/6935192> REGRESSION (Safari 3-TOT): Scroll
4689           bars in key window draw as inactive if the WebView is not active
4690
4691         Test: platform/mac/scrollbars/key-window-not-first-responder.html
4692
4693         * platform/mac/ScrollbarThemeMac.mm:
4694         (WebCore::ScrollbarThemeMac::paint): Use the window's key state instead
4695         of the WebView's first responder state to switch between active and
4696         inactive state.
4697
4698 2009-05-30  Dan Bernstein  <mitz@apple.com>
4699
4700         Reviewed by Simon Fraser.
4701
4702         - fix https://bugs.webkit.org/show_bug.cgi?id=18445
4703           <rdar://problem/5931174> Assertion failure in CSSGradientValue::image
4704           with -webkit-gradient as body's background
4705
4706         Test: fast/backgrounds/body-generated-image-propagated-to-root.html
4707
4708         * rendering/RenderBoxModelObject.cpp:
4709         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Check if this
4710         is the root element painting a background layer propagated from the
4711         body, and if it is, use the body's renderer as the client to
4712         StyleImage::image().
4713
4714 2009-05-30  Holger Hans Peter Freyther  <zecke@selfish.org>
4715
4716         Unreviewed build fix for AXObjectCache.
4717
4718         For !HAVE(ACCESSIBILITY) postNotification was defined twice. Move
4719         that into the #ifdef.
4720
4721         * accessibility/AXObjectCache.cpp:
4722
4723 2009-05-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
4724
4725         Reviewed by George Staikos.
4726
4727         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26072
4728
4729         Add support for the last missing WML element: <select>. This patch adds WMLSelectElement, providing
4730         the same functionality HTMLSelectElement has. The WML specific features will follow soon.
4731     
4732         Add simple testcase covering <select> element rendering: fast/wml/select.wml
4733
4734         * GNUmakefile.am:
4735         * WebCore.pro:
4736         * WebCore.vcproj/WebCore.vcproj:
4737         * WebCore.xcodeproj/project.pbxproj:
4738         * dom/OptionElement.cpp:
4739         (WebCore::OptionElement::optionIndex):
4740         (WebCore::isOptionElement):
4741         * dom/OptionElement.h:
4742         * dom/OptionGroupElement.cpp:
4743         (WebCore::isOptionGroupElement):
4744         * dom/OptionGroupElement.h:
4745         * dom/SelectElement.cpp:
4746         (WebCore::SelectElement::accessKeySetSelectedIndex):
4747         (WebCore::toSelectElement):
4748         * dom/SelectElement.h:
4749         * html/HTMLOptionElement.cpp:
4750         (WebCore::HTMLOptionElement::index):
4751         * html/HTMLSelectElement.cpp:
4752         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
4753         * rendering/RenderListBox.cpp:
4754         (WebCore::RenderListBox::paintItemForeground):
4755         * rendering/RenderMenuList.cpp:
4756         (WebCore::RenderMenuList::itemIsEnabled):
4757         (WebCore::RenderMenuList::itemIsLabel):
4758         * wml/WMLFormControlElement.cpp:
4759         (WebCore::WMLFormControlElement::attach):
4760         (WebCore::WMLFormControlElement::recalcStyle):
4761         * wml/WMLFormControlElement.h:
4762         * wml/WMLInputElement.cpp:
4763         (WebCore::WMLInputElement::attach):
4764         * wml/WMLOptGroupElement.cpp:
4765         (WebCore::WMLOptGroupElement::insertBefore):
4766         (WebCore::WMLOptGroupElement::replaceChild):
4767         (WebCore::WMLOptGroupElement::removeChild):
4768         (WebCore::WMLOptGroupElement::appendChild):
4769         (WebCore::WMLOptGroupElement::removeChildren):
4770         (WebCore::ownerSelectElement):
4771         (WebCore::WMLOptGroupElement::accessKeyAction):
4772         (WebCore::WMLOptGroupElement::childrenChanged):
4773         (WebCore::WMLOptGroupElement::parseMappedAttribute):
4774         (WebCore::WMLOptGroupElement::attach):
4775         (WebCore::WMLOptGroupElement::detach):
4776         (WebCore::WMLOptGroupElement::recalcSelectOptions):
4777         * wml/WMLOptionElement.cpp:
4778         (WebCore::ownerSelectElement):
4779         (WebCore::WMLOptionElement::accessKeyAction):
4780         (WebCore::WMLOptionElement::childrenChanged):
4781         (WebCore::WMLOptionElement::parseMappedAttribute):
4782         (WebCore::WMLOptionElement::attach):
4783         (WebCore::WMLOptionElement::detach):
4784         (WebCore::WMLOptionElement::insertedIntoDocument):
4785         * wml/WMLSelectElement.cpp: Added.
4786         (WebCore::WMLSelectElement::WMLSelectElement):
4787         (WebCore::WMLSelectElement::~WMLSelectElement):
4788         (WebCore::WMLSelectElement::formControlType):
4789         (WebCore::WMLSelectElement::isKeyboardFocusable):
4790         (WebCore::WMLSelectElement::isMouseFocusable):
4791         (WebCore::WMLSelectElement::selectAll):
4792         (WebCore::WMLSelectElement::recalcStyle):
4793         (WebCore::WMLSelectElement::dispatchFocusEvent):
4794         (WebCore::WMLSelectElement::dispatchBlurEvent):
4795         (WebCore::WMLSelectElement::selectedIndex):
4796         (WebCore::WMLSelectElement::setSelectedIndex):
4797         (WebCore::WMLSelectElement::saveFormControlState):
4798         (WebCore::WMLSelectElement::restoreFormControlState):
4799         (WebCore::WMLSelectElement::childrenChanged):
4800         (WebCore::WMLSelectElement::parseMappedAttribute):
4801         (WebCore::WMLSelectElement::createRenderer):
4802         (WebCore::WMLSelectElement::appendFormData):
4803         (WebCore::WMLSelectElement::optionToListIndex):
4804         (WebCore::WMLSelectElement::listToOptionIndex):
4805         (WebCore::WMLSelectElement::reset):
4806         (WebCore::WMLSelectElement::defaultEventHandler):
4807         (WebCore::WMLSelectElement::accessKeyAction):
4808         (WebCore::WMLSelectElement::setActiveSelectionAnchorIndex):
4809         (WebCore::WMLSelectElement::setActiveSelectionEndIndex):
4810         (WebCore::WMLSelectElement::updateListBoxSelection):
4811         (WebCore::WMLSelectElement::listBoxOnChange):
4812         (WebCore::WMLSelectElement::menuListOnChange):
4813         (WebCore::WMLSelectElement::activeSelectionStartListIndex):
4814         (WebCore::WMLSelectElement::activeSelectionEndListIndex):
4815         (WebCore::WMLSelectElement::accessKeySetSelectedIndex):
4816         (WebCore::WMLSelectElement::setRecalcListItems):
4817         (WebCore::WMLSelectElement::scrollToSelection):
4818         (WebCore::WMLSelectElement::insertedIntoTree):
4819         * wml/WMLSelectElement.h: Added.
4820         (WebCore::WMLSelectElement::canSelectAll):
4821         (WebCore::WMLSelectElement::canStartSelection):
4822         (WebCore::WMLSelectElement::size):
4823         (WebCore::WMLSelectElement::multiple):
4824         (WebCore::WMLSelectElement::listItems):
4825         * wml/WMLTagNames.in:
4826
4827 2009-05-29  David Levin  <levin@chromium.org>
4828
4829         Reviewed by NOBODY (build fix for windows).
4830
4831         http://trac.webkit.org/changeset/44279 left in a "Vector<WCHAR> localeNameBuf"
4832         that it was trying to replace.  Resulting in this variable being defined twice (and
4833         the second time incorrectly).
4834
4835         * platform/win/Language.cpp:
4836         (WebCore::localeInfo):
4837
4838 2009-05-29  Takeshi Yoshino  <tyoshino@google.com>
4839
4840         Reviewed by Darin Alder.
4841
4842         https://bugs.webkit.org/show_bug.cgi?id=26018
4843
4844         Fix behavior of the Element View of the Web Inspector for double
4845         clicking the element outline tree.
4846
4847         Double clicking the element outline tree should
4848         1) on attribute: enter attribute editing mode
4849         2) on text: enter text editing mode
4850         3) otherwise: change root node to the parent element of double clicked
4851            element.
4852
4853         Now, 3) is broken. For example, clicking <html> clears the element
4854         outline view.
4855
4856         rootDOMNode should be updated to this.representedObject.parentNode, not
4857         this.parent.representedObject which is parent inside the element
4858         outline tree itself.
4859
4860         * inspector/front-end/ElementsTreeOutline.js:
4861         (WebInspector.ElementsTreeElement.prototype.ondblclick):
4862
4863 2009-05-29  David Moore  <davemoore@google.com>
4864
4865         Reviewed by Darin Alder.
4866
4867         https://bugs.webkit.org/show_bug.cgi?id=26001
4868         Change many of the uses of String::adopt() to String::createUninitialized().
4869         This allows those strings to use an inlined buffer for their characters.
4870
4871         * dom/StyleElement.cpp:
4872         Loop over nodes to precompute length of string and then
4873         write the characters into the allocated inline buffer
4874         (WebCore::StyleElement::process):
4875         * dom/Text.cpp:
4876         Loop over nodes to precompute length of string and then
4877         write the characters into the allocated inline buffer
4878         (WebCore::Text::wholeText):
4879         (WebCore::Text::rendererIsNeeded):
4880         (WebCore::Text::createRenderer):
4881         (WebCore::Text::createWithLengthLimit):
4882         (WebCore::Text::formatForDebugger):
4883         * platform/text/String.cpp:
4884         (WebCore::String::append):
4885         (WebCore::String::insert):
4886         (WebCore::String::truncate):
4887         (WebCore::String::remove):
4888         * platform/text/StringBuilder.cpp:
4889         (WebCore::StringBuilder::toString):
4890         * platform/text/StringImpl.cpp:
4891         (WebCore::StringImpl::lower):
4892         (WebCore::StringImpl::upper):
4893         (WebCore::StringImpl::secure):
4894         (WebCore::StringImpl::foldCase):
4895         (WebCore::StringImpl::replace):
4896         * platform/text/TextCodecLatin1.cpp:
4897         (WebCore::TextCodecLatin1::decode):
4898         * platform/text/TextCodecUserDefined.cpp:
4899         (WebCore::TextCodecUserDefined::decode):
4900         * platform/win/Language.cpp:
4901         (WebCore::localeInfo):
4902
4903 2009-05-29  Takeshi Yoshino  <tyoshino@google.com>
4904
4905         Reviewed by Darin Alder.
4906
4907         Bug 25911: Apply href in base elements to anchors shown on the source viewer
4908         https://bugs.webkit.org/show_bug.cgi?id=25911
4909
4910         In rendering HTML sources, parse base elements to apply the base URI to
4911         anchors shown on the source viewer.
4912
4913         This issue was originally reported to the Chromium issue tracker.
4914         http://code.google.com/p/chromium/issues/detail?id=2418
4915
4916         Test: fast/frames/viewsource-link-on-href-value.html
4917
4918         * html/HTMLViewSourceDocument.cpp:
4919         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
4920
4921 2009-05-29  Rob Buis  <rwlbuis@gmail.com>
4922
4923         Reviewed by David Hyatt.
4924
4925         https://bugs.webkit.org/show_bug.cgi?id=22429
4926         document.styleSheets collection ignores media=presentation
4927
4928         Ensure that stylesheets though <link> show up in document.styleSheets regardless of media attribute.
4929
4930         Test: fast/css/sheet-collection-link.html
4931
4932         * html/HTMLLinkElement.cpp:
4933         (WebCore::HTMLLinkElement::process):
4934
4935 2009-05-29  Jian Li  <jianli@chromium.org>
4936
4937         Reviewed by Dimitri Glazkov.
4938
4939         https://bugs.webkit.org/show_bug.cgi?id=26069
4940         Fix a crash in custom V8 bindings code for XMLHttpRequest.
4941
4942         Test: fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html
4943
4944         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
4945         (WebCore::CALLBACK_FUNC_DECL):
4946
4947 2009-05-29  David Levin  <levin@chromium.org>
4948
4949         Reviewed by Darin Adler.
4950
4951         Bug 26074: SQLTransaction::executeSQL does an unnecessary call to String::copy.
4952         https://bugs.webkit.org/show_bug.cgi?id=26074
4953
4954         The constructor for SQLStatement already does a copy for this string.
4955
4956         * storage/SQLTransaction.cpp:
4957         (WebCore::SQLTransaction::executeSQL):
4958
4959 2009-05-29  Darin Adler  <darin@apple.com>
4960
4961         Fix build; the new Cairo code compiled on Windows only.
4962
4963         * platform/graphics/gtk/FontPlatformData.h: Added syntheticBold
4964         and syntheticOblique functions as in the Windows version to make it
4965         easier to use this cross-platform. Later we can make data members
4966         private as in the Windows version.
4967         * platform/graphics/mac/FontPlatformData.h: Ditto.
4968
4969 2009-05-29  Alexander Macdonald  <alexmac@adobe.com>
4970
4971         Reviewed by Darin Adler.
4972
4973         Added support for synthetic bold/oblique font rendering
4974         on platforms that use cairo.
4975
4976         * platform/graphics/SimpleFontData.h:
4977         * platform/graphics/cairo/FontCairo.cpp:
4978         (WebCore::Font::drawGlyphs):
4979         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
4980         (WebCore::SimpleFontData::platformInit):
4981         * platform/graphics/gtk/SimpleFontDataPango.cpp:
4982         (WebCore::SimpleFontData::platformInit):
4983         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
4984         (WebCore::SimpleFontData::platformInit):
4985
4986 2009-05-29  Chris Fleizach  <cfleizach@apple.com>
4987
4988         Reviewed by Beth Dakin.
4989
4990         Bug 26024: AX: possible to fail assertion because AXPostNotification calls accessibilityIsIgnored
4991         https://bugs.webkit.org/show_bug.cgi?id=26024
4992
4993         AX notifications are posted after a one shot timer so that notifications are not performed mid-layout.
4994         Consolidated postNotification and postNotificationToElement into one method.
4995
4996         * accessibility/AXObjectCache.cpp:
4997         (WebCore::AXObjectCache::AXObjectCache):
4998         (WebCore::AXObjectCache::notificationPostTimerFired):
4999         (WebCore::AXObjectCache::postNotification):
5000         (WebCore::AXObjectCache::selectedChildrenChanged):
5001         * accessibility/AXObjectCache.h:
5002         (WebCore::AXObjectCache::postNotification):
5003         (WebCore::AXObjectCache::postPlatformNotification):
5004         * accessibility/AccessibilityRenderObject.cpp:
5005         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
5006         * accessibility/chromium/AXObjectCacheChromium.cpp:
5007         (WebCore::AXObjectCache::postPlatformNotification):
5008         * accessibility/gtk/AXObjectCacheAtk.cpp:
5009         (WebCore::AXObjectCache::postPlatformNotification):
5010         * accessibility/mac/AXObjectCacheMac.mm:
5011         (WebCore::AXObjectCache::postPlatformNotification):
5012         * accessibility/win/AXObjectCacheWin.cpp:
5013         (WebCore::AXObjectCache::postPlatformNotification):
5014         * dom/Document.cpp:
5015         (WebCore::Document::implicitClose):
5016         * editing/Editor.cpp:
5017         (WebCore::Editor::respondToChangedContents):
5018         * editing/mac/SelectionControllerMac.mm:
5019         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
5020         * page/FrameView.cpp:
5021         (WebCore::FrameView::layout):
5022         * rendering/RenderTextControl.cpp:
5023         (WebCore::RenderTextControl::setInnerTextValue):
5024
5025 2009-05-29  Brent Fulgham  <bfulgham@webkit.org>
5026
5027         Reviewed by Adam Roben.
5028
5029         Build fix for Windows Cairo target.
5030         https://bugs.webkit.org/show_bug.cgi?id=25972
5031
5032         Compiler mistakenly selects SMILTime min/max instead of STL version,
5033         resulting in a build error.  This change makes the meaning of the
5034         min/max explicit and avoids the problem.
5035
5036         * html/TimeRanges.h:
5037         (WebCore::TimeRanges::Range::unionWithOverlappingOrContiguousRange):
5038
5039 2009-05-29  Gustavo Noronha Silva  <gns@gnome.org>
5040
5041         Reviewed by Jan Alonzo.
5042
5043         Make SoupMessage a member of ResourceRequest, instead of creating
5044         it in startHttp. Implement updating of ResourceRequest from
5045         SoupMessage, and vice versa.
5046
5047         * GNUmakefile.am:
5048         * platform/network/soup/ResourceHandleSoup.cpp:
5049         (WebCore::ResourceHandle::~ResourceHandle):
5050         (WebCore::gotHeadersCallback):
5051         (WebCore::ResourceHandle::startHttp):
5052         * platform/network/soup/ResourceRequest.h:
5053         (WebCore::ResourceRequest::ResourceRequest):
5054         (WebCore::ResourceRequest::~ResourceRequest):
5055         * platform/network/soup/ResourceRequestSoup.cpp: Added.
5056         (WTF::SoupURI):
5057         (WebCore::ResourceRequest::soupMessage):
5058         (WebCore::ResourceRequest::ResourceRequest):
5059         (WebCore::ResourceRequest::doUpdateResourceRequest):
5060         (WebCore::ResourceRequest::doUpdatePlatformRequest):
5061
5062 2009-05-28  Dmitry Titov  <dimich@chromium.org>
5063
5064         Reviewed by Dimitri Glazkov.
5065
5066         https://bugs.webkit.org/show_bug.cgi?id=26068
5067         V8: Remove the remaining b8::Locker usage in worker code.
5068         This completes the fix for https://bugs.webkit.org/show_bug.cgi?id=25944,
5069         since the patches for enabling timers and that bug have "crossed in the queue".
5070         Existing LayoutTests/fast/workers/worker-timeout.html covers this fix (will start work in Chromium).
5071
5072         * bindings/v8/ScheduledAction.cpp:
5073         (WebCore::ScheduledAction::execute):
5074
5075 2009-05-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
5076
5077         Reviewed by Xan Lopez.
5078
5079         Simplify the Accept-Encoding header we are sending out, for it
5080         seems some servers do not enjoy parsing the full, explicit
5081         version.
5082
5083         * platform/network/soup/ResourceHandleSoup.cpp:
5084         (WebCore::ResourceHandle::startHttp):
5085
5086 2009-05-28  Dirk Schulze  <krit@webkit.org>
5087
5088         Reviewed by Nikolas Zimmermann.
5089
5090         Added a new build flag --filters. This replaces the old --svg-filters and enables
5091         other parts of WebKit to use some basic filters of platform/graphics/filters if needed.
5092         This patch also fixes a bug in dom/DOMImplementation.cpp where we used SVG_FILTER. This flag
5093         doesn't exist and was replaced by FILTERS as well as all SVG_FILTERS occurrences.
5094         Filters are not working yet. This patch is just a preperation. Filters are deactivated by
5095         default. 
5096
5097         * Configurations/FeatureDefines.xcconfig:
5098         * DerivedSources.make:
5099         * GNUmakefile.am:
5100         * WebCore.pro:
5101         * bindings/objc/DOM.mm:
5102         (WebCore::createElementClassMap):
5103         * dom/DOMImplementation.cpp:
5104         (WebCore::isSVG10Feature):
5105         (WebCore::isSVG11Feature):
5106         * page/DOMWindow.idl:
5107         * platform/graphics/filters/FEBlend.cpp:
5108         * platform/graphics/filters/FEBlend.h:
5109         * platform/graphics/filters/FEColorMatrix.cpp:
5110         * platform/graphics/filters/FEColorMatrix.h:
5111         * platform/graphics/filters/FEComponentTransfer.cpp:
5112         * platform/graphics/filters/FEComponentTransfer.h:
5113         * platform/graphics/filters/FEComposite.cpp:
5114         * platform/graphics/filters/FEComposite.h:
5115         * platform/graphics/filters/FilterEffect.cpp:
5116         * platform/graphics/filters/FilterEffect.h:
5117         * platform/graphics/filters/SourceAlpha.cpp:
5118         * platform/graphics/filters/SourceAlpha.h:
5119         * platform/graphics/filters/SourceGraphic.cpp:
5120         * platform/graphics/filters/SourceGraphic.h:
5121         * rendering/RenderSVGContainer.cpp:
5122         (WebCore::RenderSVGContainer::selfWillPaint):
5123         * rendering/RenderSVGModelObject.cpp:
5124         * rendering/RenderSVGRoot.cpp:
5125         (WebCore::RenderSVGRoot::selfWillPaint):
5126         * rendering/SVGRenderSupport.cpp:
5127         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
5128         (WebCore::SVGRenderBase::finishRenderSVGContent):
5129         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
5130         * svg/Filter.cpp:
5131         * svg/Filter.h:
5132         * svg/FilterBuilder.cpp:
5133         * svg/FilterBuilder.h:
5134         * svg/SVGComponentTransferFunctionElement.cpp:
5135         * svg/SVGComponentTransferFunctionElement.h:
5136         * svg/SVGComponentTransferFunctionElement.idl:
5137         * svg/SVGFEBlendElement.cpp:
5138         * svg/SVGFEBlendElement.h:
5139         * svg/SVGFEBlendElement.idl:
5140         * svg/SVGFEColorMatrixElement.cpp:
5141         * svg/SVGFEColorMatrixElement.h:
5142         * svg/SVGFEColorMatrixElement.idl:
5143         * svg/SVGFEComponentTransferElement.cpp:
5144         * svg/SVGFEComponentTransferElement.h:
5145         * svg/SVGFEComponentTransferElement.idl:
5146         * svg/SVGFECompositeElement.cpp:
5147         * svg/SVGFECompositeElement.h:
5148         * svg/SVGFECompositeElement.idl:
5149         * svg/SVGFEDiffuseLightingElement.cpp:
5150         * svg/SVGFEDiffuseLightingElement.h:
5151         * svg/SVGFEDiffuseLightingElement.idl:
5152         * svg/SVGFEDisplacementMapElement.cpp:
5153         * svg/SVGFEDisplacementMapElement.h:
5154         * svg/SVGFEDisplacementMapElement.idl:
5155         * svg/SVGFEDistantLightElement.cpp:
5156         * svg/SVGFEDistantLightElement.h:
5157         * svg/SVGFEDistantLightElement.idl:
5158         * svg/SVGFEFloodElement.cpp:
5159         * svg/SVGFEFloodElement.h:
5160         * svg/SVGFEFloodElement.idl:
5161         * svg/SVGFEFuncAElement.cpp:
5162         * svg/SVGFEFuncAElement.h:
5163         * svg/SVGFEFuncAElement.idl:
5164         * svg/SVGFEFuncBElement.cpp:
5165         * svg/SVGFEFuncBElement.h:
5166         * svg/SVGFEFuncBElement.idl:
5167         * svg/SVGFEFuncGElement.cpp:
5168         * svg/SVGFEFuncGElement.h:
5169         * svg/SVGFEFuncGElement.idl:
5170         * svg/SVGFEFuncRElement.cpp:
5171         * svg/SVGFEFuncRElement.h:
5172         * svg/SVGFEFuncRElement.idl:
5173         * svg/SVGFEGaussianBlurElement.cpp:
5174         * svg/SVGFEGaussianBlurElement.h:
5175         * svg/SVGFEGaussianBlurElement.idl:
5176         * svg/SVGFEImageElement.cpp:
5177         * svg/SVGFEImageElement.h:
5178         * svg/SVGFEImageElement.idl:
5179         * svg/SVGFELightElement.cpp:
5180         * svg/SVGFELightElement.h:
5181         * svg/SVGFEMergeElement.cpp:
5182         * svg/SVGFEMergeElement.h:
5183         * svg/SVGFEMergeElement.idl:
5184         * svg/SVGFEMergeNodeElement.cpp:
5185         * svg/SVGFEMergeNodeElement.h:
5186         * svg/SVGFEMergeNodeElement.idl:
5187         * svg/SVGFEOffsetElement.cpp:
5188         * svg/SVGFEOffsetElement.h:
5189         * svg/SVGFEOffsetElement.idl:
5190         * svg/SVGFEPointLightElement.cpp:
5191         * svg/SVGFEPointLightElement.h:
5192         * svg/SVGFEPointLightElement.idl:
5193         * svg/SVGFESpecularLightingElement.cpp:
5194         * svg/SVGFESpecularLightingElement.h:
5195         * svg/SVGFESpecularLightingElement.idl:
5196         * svg/SVGFESpotLightElement.cpp:
5197         * svg/SVGFESpotLightElement.h:
5198         * svg/SVGFESpotLightElement.idl:
5199         * svg/SVGFETileElement.cpp:
5200         * svg/SVGFETileElement.h:
5201         * svg/SVGFETileElement.idl:
5202         * svg/SVGFETurbulenceElement.cpp:
5203         * svg/SVGFETurbulenceElement.h:
5204         * svg/SVGFETurbulenceElement.idl:
5205         * svg/SVGFilterElement.cpp:
5206         * svg/SVGFilterElement.h:
5207         * svg/SVGFilterElement.idl:
5208         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
5209         * svg/SVGFilterPrimitiveStandardAttributes.h:
5210         * svg/graphics/SVGResourceFilter.cpp:
5211         * svg/graphics/SVGResourceFilter.h:
5212         * svg/graphics/cairo/SVGResourceFilterCairo.cpp:
5213         * svg/graphics/cg/SVGResourceFilterCg.cpp:
5214         * svg/graphics/cg/SVGResourceFilterCg.mm:
5215         * svg/graphics/filters/SVGDistantLightSource.h:
5216         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
5217         * svg/graphics/filters/SVGFEConvolveMatrix.h:
5218         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
5219         * svg/graphics/filters/SVGFEDiffuseLighting.h:
5220         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
5221         * svg/graphics/filters/SVGFEDisplacementMap.h:
5222         * svg/graphics/filters/SVGFEFlood.cpp:
5223         * svg/graphics/filters/SVGFEFlood.h:
5224         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
5225         * svg/graphics/filters/SVGFEGaussianBlur.h:
5226         * svg/graphics/filters/SVGFEImage.cpp:
5227         * svg/graphics/filters/SVGFEImage.h:
5228         * svg/graphics/filters/SVGFEMerge.cpp:
5229         * svg/graphics/filters/SVGFEMerge.h:
5230         * svg/graphics/filters/SVGFEMorphology.cpp:
5231         * svg/graphics/filters/SVGFEMorphology.h:
5232         * svg/graphics/filters/SVGFEOffset.cpp:
5233         * svg/graphics/filters/SVGFEOffset.h:
5234         * svg/graphics/filters/SVGFESpecularLighting.cpp:
5235         * svg/graphics/filters/SVGFESpecularLighting.h:
5236         * svg/graphics/filters/SVGFETile.cpp:
5237         * svg/graphics/filters/SVGFETile.h:
5238         * svg/graphics/filters/SVGFETurbulence.cpp:
5239         * svg/graphics/filters/SVGFETurbulence.h:
5240         * svg/graphics/filters/SVGFilterEffect.cpp:
5241         * svg/graphics/filters/SVGFilterEffect.h:
5242         * svg/graphics/filters/SVGLightSource.cpp:
5243         * svg/graphics/filters/SVGLightSource.h:
5244         * svg/graphics/filters/SVGPointLightSource.h:
5245         * svg/graphics/filters/SVGSpotLightSource.h:
5246         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
5247         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
5248         * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
5249         * svg/graphics/filters/cg/WKArithmeticFilter.h:
5250         * svg/graphics/filters/cg/WKArithmeticFilter.m:
5251         * svg/graphics/filters/cg/WKComponentMergeFilter.h:
5252         * svg/graphics/filters/cg/WKComponentMergeFilter.m:
5253         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
5254         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
5255         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
5256         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
5257         * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
5258         * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
5259         * svg/graphics/filters/cg/WKDistantLightFilter.h:
5260         * svg/graphics/filters/cg/WKDistantLightFilter.m:
5261         * svg/graphics/filters/cg/WKGammaTransferFilter.h:
5262         * svg/graphics/filters/cg/WKGammaTransferFilter.m:
5263         * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
5264         * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
5265         * svg/graphics/filters/cg/WKLinearTransferFilter.h:
5266         * svg/graphics/filters/cg/WKLinearTransferFilter.m:
5267         * svg/graphics/filters/cg/WKNormalMapFilter.h:
5268         * svg/graphics/filters/cg/WKNormalMapFilter.m:
5269         * svg/graphics/filters/cg/WKPointLightFilter.h:
5270         * svg/graphics/filters/cg/WKPointLightFilter.m:
5271         * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
5272         * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
5273         * svg/graphics/filters/cg/WKSpotLightFilter.h:
5274         * svg/graphics/filters/cg/WKSpotLightFilter.m:
5275         * svg/graphics/filters/cg/WKTableTransferFilter.h:
5276         * svg/graphics/filters/cg/WKTableTransferFilter.m:
5277         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
5278         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
5279         * svg/graphics/qt/SVGResourceFilterQt.cpp:
5280         * svg/graphics/skia/SVGResourceFilterSkia.cpp:
5281         * svg/svgtags.in:
5282
5283 2009-05-28  Brett Wilson  <brettw@chromium.org>
5284
5285         Unreviewed, build fix.
5286
5287         https://bugs.webkit.org/show_bug.cgi?id=26067
5288
5289         Add casts for scale function to make more explicit what is happening
5290         and fix a compiler warning.
5291
5292         * platform/graphics/IntSize.h:
5293         (WebCore::IntSize::scale):
5294
5295 2009-05-28  Sam Weinig  <sam@webkit.org>
5296
5297         Reviewed by Darin Adler.
5298
5299         Remove the returnValueSlot concept from JSDOMWindowBase. Now that windows
5300         are not cleared on navigation it is no longer necessary.
5301
5302         * bindings/js/JSDOMWindowBase.cpp:
5303         (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
5304         (WebCore::JSDOMWindowBase::willRemoveFromWindowShell):
5305         * bindings/js/JSDOMWindowBase.h:
5306         * bindings/js/JSDOMWindowCustom.cpp:
5307         (WebCore::JSDOMWindow::showModalDialog):
5308
5309 2009-05-19  Xan Lopez  <xlopez@igalia.com>
5310
5311         Reviewed by Jan Alonzo and Gustavo Noronha.
5312
5313         https://bugs.webkit.org/show_bug.cgi?id=25415
5314         [GTK][ATK] Please implement support for get_text_at_offset
5315
5316         Implement atk_text_get_text_{at,after,before}_offset.
5317
5318         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
5319
5320 2009-05-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
5321
5322         Rubber-stamped by Darin Adler.
5323
5324         Remove unnecessary destructor from InputElementData/OptionElementData.
5325
5326         * dom/InputElement.cpp:
5327         * dom/InputElement.h:
5328         * dom/OptionElement.cpp:
5329         * dom/OptionElement.h:
5330
5331 2009-05-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
5332
5333         Reviewed by Darin Adler.
5334
5335         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26062
5336
5337         Refactor code from all virtual methods in HTMLSelectElement (that are also needed for WMLSelectElement)
5338         in the recently introduced SelectElement abstract base class. Follow the same design sheme that InputElement uses.
5339
5340         A follow-up patch can now easily add WMLSelectElement.
5341
5342         * dom/OptionElement.h:
5343         * dom/SelectElement.cpp:
5344         (WebCore::SelectElement::selectAll):
5345         (WebCore::SelectElement::saveLastSelection):
5346         (WebCore::isOptionElement):
5347         (WebCore::isOptionGroupElement):
5348         (WebCore::SelectElement::nextSelectableListIndex):
5349         (WebCore::SelectElement::previousSelectableListIndex):
5350         (WebCore::SelectElement::setActiveSelectionAnchorIndex):
5351         (WebCore::SelectElement::setActiveSelectionEndIndex):
5352         (WebCore::SelectElement::updateListBoxSelection):
5353         (WebCore::SelectElement::listBoxOnChange):
5354         (WebCore::SelectElement::menuListOnChange):
5355         (WebCore::SelectElement::scrollToSelection):
5356         (WebCore::SelectElement::recalcStyle):
5357         (WebCore::SelectElement::setRecalcListItems):
5358         (WebCore::SelectElement::recalcListItems):
5359         (WebCore::SelectElement::selectedIndex):
5360         (WebCore::SelectElement::setSelectedIndex):
5361         (WebCore::SelectElement::optionToListIndex):
5362         (WebCore::SelectElement::listToOptionIndex):
5363         (WebCore::SelectElement::dispatchFocusEvent):
5364         (WebCore::SelectElement::dispatchBlurEvent):
5365         (WebCore::SelectElement::deselectItems):
5366         (WebCore::SelectElement::saveFormControlState):
5367         (WebCore::SelectElement::restoreFormControlState):
5368         (WebCore::SelectElement::parseMultipleAttribute):
5369         (WebCore::SelectElement::appendFormData):
5370         (WebCore::SelectElement::reset):
5371         (WebCore::SelectElement::menuListDefaultEventHandler):
5372         (WebCore::SelectElement::listBoxDefaultEventHandler):
5373         (WebCore::SelectElement::defaultEventHandler):
5374         (WebCore::SelectElement::lastSelectedListIndex):
5375         (WebCore::stripLeadingWhiteSpace):
5376         (WebCore::SelectElement::typeAheadFind):
5377         (WebCore::SelectElement::insertedIntoTree):
5378         (WebCore::SelectElementData::SelectElementData):
5379         (WebCore::SelectElementData::checkListItems):
5380         (WebCore::SelectElementData::listItems):
5381         * dom/SelectElement.h:
5382         (WebCore::SelectElementData::multiple):
5383         (WebCore::SelectElementData::setMultiple):
5384         (WebCore::SelectElementData::size):
5385         (WebCore::SelectElementData::setSize):
5386         (WebCore::SelectElementData::usesMenuList):
5387         (WebCore::SelectElementData::lastOnChangeIndex):
5388         (WebCore::SelectElementData::setLastOnChangeIndex):
5389         (WebCore::SelectElementData::lastOnChangeSelection):
5390         (WebCore::SelectElementData::activeSelectionState):
5391         (WebCore::SelectElementData::setActiveSelectionState):
5392         (WebCore::SelectElementData::activeSelectionAnchorIndex):
5393         (WebCore::SelectElementData::setActiveSelectionAnchorIndex):
5394         (WebCore::SelectElementData::activeSelectionEndIndex):
5395         (WebCore::SelectElementData::setActiveSelectionEndIndex):
5396         (WebCore::SelectElementData::cachedStateForActiveSelection):
5397         (WebCore::SelectElementData::shouldRecalcListItems):
5398         (WebCore::SelectElementData::setShouldRecalcListItems):
5399         (WebCore::SelectElementData::rawListItems):
5400         (WebCore::SelectElementData::repeatingChar):
5401         (WebCore::SelectElementData::setRepeatingChar):
5402         (WebCore::SelectElementData::lastCharTime):
5403         (WebCore::SelectElementData::setLastCharTime):
5404         (WebCore::SelectElementData::typedString):
5405         (WebCore::SelectElementData::setTypedString):
5406         * html/HTMLOptionElement.h:
5407         * html/HTMLSelectElement.cpp:
5408         (WebCore::HTMLSelectElement::HTMLSelectElement):
5409         (WebCore::HTMLSelectElement::recalcStyle):
5410         (WebCore::HTMLSelectElement::formControlType):
5411         (WebCore::HTMLSelectElement::selectedIndex):
5412         (WebCore::HTMLSelectElement::deselectItems):
5413         (WebCore::HTMLSelectElement::setSelectedIndex):
5414         (WebCore::HTMLSelectElement::activeSelectionStartListIndex):
5415         (WebCore::HTMLSelectElement::activeSelectionEndListIndex):
5416         (WebCore::HTMLSelectElement::saveFormControlState):
5417         (WebCore::HTMLSelectElement::restoreFormControlState):
5418         (WebCore::HTMLSelectElement::parseMappedAttribute):
5419         (WebCore::HTMLSelectElement::canSelectAll):
5420         (WebCore::HTMLSelectElement::selectAll):
5421         (WebCore::HTMLSelectElement::createRenderer):
5422         (WebCore::HTMLSelectElement::appendFormData):
5423         (WebCore::HTMLSelectElement::optionToListIndex):
5424         (WebCore::HTMLSelectElement::listToOptionIndex):
5425         (WebCore::HTMLSelectElement::recalcListItems):
5426         (WebCore::HTMLSelectElement::setRecalcListItems):
5427         (WebCore::HTMLSelectElement::reset):
5428         (WebCore::HTMLSelectElement::dispatchFocusEvent):
5429         (WebCore::HTMLSelectElement::dispatchBlurEvent):
5430         (WebCore::HTMLSelectElement::defaultEventHandler):
5431         (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
5432         (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
5433         (WebCore::HTMLSelectElement::updateListBoxSelection):
5434         (WebCore::HTMLSelectElement::menuListOnChange):
5435         (WebCore::HTMLSelectElement::listBoxOnChange):
5436         (WebCore::HTMLSelectElement::saveLastSelection):
5437         (WebCore::HTMLSelectElement::setOption):
5438         (WebCore::HTMLSelectElement::scrollToSelection):
5439         (WebCore::HTMLSelectElement::insertedIntoTree):
5440         * html/HTMLSelectElement.h:
5441         (WebCore::HTMLSelectElement::size):
5442         (WebCore::HTMLSelectElement::multiple):
5443         (WebCore::HTMLSelectElement::listItems):
5444         * wml/WMLOptionElement.cpp:
5445         (WebCore::WMLOptionElement::text):
5446         * wml/WMLOptionElement.h:
5447
5448
5449         * dom/OptionElement.h:
5450         * dom/SelectElement.cpp:
5451         (WebCore::SelectElement::selectAll):
5452         (WebCore::SelectElement::saveLastSelection):
5453         (WebCore::isOptionElement):
5454         (WebCore::isOptionGroupElement):
5455         (WebCore::SelectElement::nextSelectableListIndex):
5456         (WebCore::SelectElement::previousSelectableListIndex):
5457         (WebCore::SelectElement::setActiveSelectionAnchorIndex):
5458         (WebCore::SelectElement::setActiveSelectionEndIndex):
5459         (WebCore::SelectElement::updateListBoxSelection):
5460         (WebCore::SelectElement::listBoxOnChange):
5461         (WebCore::SelectElement::menuListOnChange):
5462         (WebCore::SelectElement::scrollToSelection):
5463         (WebCore::SelectElement::recalcStyle):
5464         (WebCore::SelectElement::setRecalcListItems):
5465         (WebCore::SelectElement::recalcListItems):
5466         (WebCore::SelectElement::selectedIndex):
5467         (WebCore::SelectElement::setSelectedIndex):
5468         (WebCore::SelectElement::optionToListIndex):
5469         (WebCore::SelectElement::listToOptionIndex):
5470         (WebCore::SelectElement::dispatchFocusEvent):
5471         (WebCore::SelectElement::dispatchBlurEvent):
5472         (WebCore::SelectElement::deselectItems):
5473         (WebCore::SelectElement::saveFormControlState):
5474         (WebCore::SelectElement::restoreFormControlState):
5475         (WebCore::SelectElement::parseMultipleAttribute):
5476         (WebCore::SelectElement::appendFormData):
5477         (WebCore::SelectElement::reset):
5478         (WebCore::SelectElement::menuListDefaultEventHandler):
5479         (WebCore::SelectElement::listBoxDefaultEventHandler):
5480         (WebCore::SelectElement::defaultEventHandler):
5481         (WebCore::SelectElement::lastSelectedListIndex):
5482         (WebCore::stripLeadingWhiteSpace):
5483         (WebCore::SelectElement::typeAheadFind):
5484         (WebCore::SelectElement::insertedIntoTree):
5485         (WebCore::SelectElementData::SelectElementData):
5486         (WebCore::SelectElementData::~SelectElementData):
5487         (WebCore::SelectElementData::checkListItems):
5488         (WebCore::SelectElementData::listItems):
5489         * dom/SelectElement.h:
5490         (WebCore::SelectElementData::multiple):
5491         (WebCore::SelectElementData::setMultiple):
5492         (WebCore::SelectElementData::size):
5493         (WebCore::SelectElementData::setSize):
5494         (WebCore::SelectElementData::usesMenuList):
5495         (WebCore::SelectElementData::lastOnChangeIndex):
5496         (WebCore::SelectElementData::setLastOnChangeIndex):
5497         (WebCore::SelectElementData::lastOnChangeSelection):
5498         (WebCore::SelectElementData::activeSelectionState):
5499         (WebCore::SelectElementData::setActiveSelectionState):
5500         (WebCore::SelectElementData::activeSelectionAnchorIndex):
5501         (WebCore::SelectElementData::setActiveSelectionAnchorIndex):
5502         (WebCore::SelectElementData::activeSelectionEndIndex):
5503         (WebCore::SelectElementData::setActiveSelectionEndIndex):
5504         (WebCore::SelectElementData::cachedStateForActiveSelection):
5505         (WebCore::SelectElementData::shouldRecalcListItems):
5506         (WebCore::SelectElementData::setShouldRecalcListItems):
5507         (WebCore::SelectElementData::rawListItems):
5508         (WebCore::SelectElementData::repeatingChar):
5509         (WebCore::SelectElementData::setRepeatingChar):
5510         (WebCore::SelectElementData::lastCharTime):
5511         (WebCore::SelectElementData::setLastCharTime):
5512         (WebCore::SelectElementData::typedString):
5513         (WebCore::SelectElementData::setTypedString):
5514         * html/HTMLOptionElement.h:
5515         * html/HTMLSelectElement.cpp:
5516         (WebCore::HTMLSelectElement::HTMLSelectElement):
5517         (WebCore::HTMLSelectElement::recalcStyle):
5518         (WebCore::HTMLSelectElement::formControlType):
5519         (WebCore::HTMLSelectElement::selectedIndex):
5520         (WebCore::HTMLSelectElement::deselectItems):
5521         (WebCore::HTMLSelectElement::setSelectedIndex):
5522         (WebCore::HTMLSelectElement::activeSelectionStartListIndex):
5523         (WebCore::HTMLSelectElement::activeSelectionEndListIndex):
5524         (WebCore::HTMLSelectElement::saveFormControlState):
5525         (WebCore::HTMLSelectElement::restoreFormControlState):
5526         (WebCore::HTMLSelectElement::parseMappedAttribute):
5527         (WebCore::HTMLSelectElement::canSelectAll):
5528         (WebCore::HTMLSelectElement::selectAll):
5529         (WebCore::HTMLSelectElement::createRenderer):
5530         (WebCore::HTMLSelectElement::appendFormData):
5531         (WebCore::HTMLSelectElement::optionToListIndex):
5532         (WebCore::HTMLSelectElement::listToOptionIndex):
5533         (WebCore::HTMLSelectElement::recalcListItems):
5534         (WebCore::HTMLSelectElement::setRecalcListItems):
5535         (WebCore::HTMLSelectElement::reset):
5536         (WebCore::HTMLSelectElement::dispatchFocusEvent):
5537         (WebCore::HTMLSelectElement::dispatchBlurEvent):
5538         (WebCore::HTMLSelectElement::defaultEventHandler):
5539         (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
5540         (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
5541         (WebCore::HTMLSelectElement::updateListBoxSelection):
5542         (WebCore::HTMLSelectElement::menuListOnChange):
5543         (WebCore::HTMLSelectElement::listBoxOnChange):
5544         (WebCore::HTMLSelectElement::saveLastSelection):
5545         (WebCore::HTMLSelectElement::setOption):
5546         (WebCore::HTMLSelectElement::scrollToSelection):
5547         (WebCore::HTMLSelectElement::insertedIntoTree):
5548         * html/HTMLSelectElement.h:
5549         (WebCore::HTMLSelectElement::size):
5550         (WebCore::HTMLSelectElement::multiple):
5551         (WebCore::HTMLSelectElement::listItems):
5552         * wml/WMLOptionElement.cpp:
5553         (WebCore::WMLOptionElement::text):
5554         * wml/WMLOptionElement.h:
5555
5556 2009-05-28  Adam Roben  <aroben@apple.com>
5557
5558         Don't try to use the new combobox parts on Vista in Classic mode
5559
5560         Fixes:
5561         <rdar://problem/6929277> REGRESSION (r42289+r42350): Windows Classic
5562         theme: drop down lists in Preferences get a line/square
5563         <rdar://problem/6929298> REGRESSION (r42289): Windows Classic: drop
5564         down lists are black with a circle on many sites
5565
5566         Reviewed by Steve Falkenburg.
5567
5568         * rendering/RenderThemeWin.cpp:
5569         (WebCore::RenderThemeWin::paintMenuList): Only use the new combobox
5570         parts when we have a theme (i.e., when we're not in Classic mode).
5571         When we don't have a theme, fall back to the pre-r42289 code.
5572
5573 2009-05-27  Peter Kasting  <pkasting@google.com>
5574
5575         Reviewed by Simon Fraser.
5576
5577         https://bugs.webkit.org/show_bug.cgi?id=25659
5578         Avoid calling frameCount() unnecessarily (which could lead to extra
5579         GIF decoding).
5580
5581         * platform/graphics/BitmapImage.cpp:
5582         (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
5583
5584 2009-05-28  Simon Fraser  <simon.fraser@apple.com>
5585
5586         Reviewed by Oliver Hunt.
5587         
5588         https://bugs.webkit.org/show_bug.cgi?id=8736
5589
5590         Tests: fast/borders/border-radius-constraints.html
5591                fast/borders/border-radius-split-inline.html
5592                
5593         When the sum of the corner radii on a side exceed the length of the side,
5594         reduce the radii according to CSS 3 rules.
5595         
5596         Add RenderStyle::getBorderRadiiForRect() to fetch corner radii, applying
5597         the constraints. Use that for painting borders, box-shadow, clipping replaced
5598         elements
5599
5600         * platform/graphics/IntSize.h:
5601         (WebCore::IntSize::scale):
5602         Add a scale method that scales by a float (using C rounding rules, like IntRect::scale()).
5603
5604         * platform/graphics/Path.cpp:
5605         Make the QUARTER const static.
5606
5607         * rendering/RenderBox.cpp:
5608         (WebCore::RenderBox::pushContentsClip):
5609         Use getBorderRadiiForRect to fetch border radii.
5610
5611         * rendering/RenderBoxModelObject.cpp:
5612         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
5613         Use getBorderRadiiForRect to fetch border radii.
5614
5615         (WebCore::RenderBoxModelObject::paintBorder):
5616         Use getBorderRadiiForRect to fetch border radii, and fix a bug when drawing
5617         borders for split inlines, which used to apply the radii for each segment,
5618         and no longer does.
5619
5620         (WebCore::RenderBoxModelObject::paintBoxShadow):
5621         Use getBorderRadiiForRect to fetch border radii.
5622
5623         * rendering/RenderReplaced.cpp:
5624         (WebCore::RenderReplaced::paint):
5625         Use getBorderRadiiForRect to fetch border radii for clipping.
5626
5627         * rendering/RenderWidget.cpp:
5628         (WebCore::RenderWidget::paint):
5629         Use getBorderRadiiForRect to fetch border radii for clipping.
5630
5631         * rendering/style/RenderStyle.h:
5632         * rendering/style/RenderStyle.cpp:
5633         (WebCore::RenderStyle::getBorderRadiiForRect):
5634         New bottleneck method to fetch corner radiil given a rect, applying the constraint
5635         rules.
5636
5637 2009-05-28  Alexey Proskuryakov  <ap@webkit.org>
5638
5639         Reviewed by Darin Adler.
5640
5641         https://bugs.webkit.org/show_bug.cgi?id=26005
5642         Optimization for XPath //* does not preserve context size
5643
5644         Test: fast/xpath/position.html
5645
5646         Fixed the bug by removing the incorrect optimization, and made enough micro-optimizations to
5647         get a performance progression on my tests.
5648
5649         * xml/XPathPath.h: Removed broken optimizeStepPair().
5650
5651         * xml/XPathPath.cpp:
5652         (WebCore::XPath::LocationPath::evaluate): Style fix.
5653         (WebCore::XPath::LocationPath::appendStep): Don't call optimizeStepPair().
5654         (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
5655         (WebCore::XPath::Path::Path): Style fix.
5656
5657         * xml/XPathStep.cpp:
5658         (WebCore::XPath::primaryNodeType): Turned this member function into a static inline helper.
5659         (WebCore::XPath::nodeMatches): Ditto. Don't check for namespace axis, which is unsupported
5660         (and might never be).
5661         (WebCore::XPath::Step::nodesInAxis): Updated for the new nodeMatches() signature.
5662
5663         * xml/XPathStep.h:
5664         (WebCore::XPath::Step::NodeTest::data):
5665         (WebCore::XPath::Step::NodeTest::namespaceURI):
5666         Made these data members AtomicString to avoid repeated conversions. This is the biggest
5667         performance win here.
5668
5669         * xml/XPathUtil.cpp: (WebCore::XPath::stringValue): Reserve some capacity upfront.
5670
5671 2009-05-28  Stephen White  <senorblanco@chromium.org>
5672
5673         Reviewed by Dimitri Glazkov.
5674
5675         When creating a linear or radial gradient with a single stop
5676         at offset 1.0, the Skia layer was allocating 3 stops, but only
5677         filling 2, leaving one uninitialized.  Only 2 stops are necessary
5678         in this case, at offsets (0.0, 1.0).
5679
5680         http://bugs.webkit.org/show_bug.cgi?id=26063
5681
5682         Covered by: LayoutTests/svg/W3C-SVG-1.1/pservers-grad-16-b.svg
5683                     LayoutTests/svg/custom/gradient-stop-corner-cases.svg
5684                     LayoutTests/svg/custom/js-late-gradient-and-object-creation.svg
5685
5686         * platform/graphics/skia/GradientSkia.cpp:
5687         (WebCore::totalStopsNeeded):
5688
5689 2009-05-28  Yury Semikhatsky  <yurys@chromium.org>
5690
5691         Reviewed by Timothy Hatcher.
5692
5693         https://bugs.webkit.org/show_bug.cgi?id=26041
5694         Allow adding resource source to WebInspector.SourceFrame asynchronously.
5695
5696         Provide common implementation for InspectorController::addResourceSourceToFrame and
5697         InspectorController::addSourceToFrame methods.
5698
5699         * bindings/js/JSInspectorControllerCustom.cpp:
5700         * bindings/v8/custom/V8InspectorControllerCustom.cpp:
5701         * inspector/InspectorController.cpp:
5702         (WebCore::InspectorController::addResourceSourceToFrame):
5703         * inspector/InspectorController.h:
5704         * inspector/InspectorController.idl:
5705         * inspector/front-end/SourceFrame.js:
5706         (WebInspector.SourceFrame.prototype.revealLine):
5707         (WebInspector.SourceFrame.prototype.highlightLine):
5708         (WebInspector.SourceFrame.prototype._loaded):
5709         (WebInspector.SourceFrame.prototype._isContentLoaded):
5710         * inspector/front-end/SourceView.js:
5711         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded):
5712         (WebInspector.SourceView.prototype._contentLoaded):
5713
5714 2009-05-28  Holger Hans Peter Freyther  <zecke@selfish.org>
5715
5716         Reviewed by Xan Lopez.
5717
5718         After r44177 we had a problem when increasing the size
5719         of the window the scrollbars stayed and were not hidden.
5720         This was due WebCore giving up on the Scrollbar as it became
5721         unnecessary but the GtkAdjustment remained unchanged.
5722         So from the point of view of the GtkScrolledWindow scrolling
5723         was still necessary and the GtkScrollbar kept being displayed.
5724
5725         Solve the issue by resetting the GtkAdjustment in the
5726         destructor of ScrollbarGtk.
5727
5728         * platform/gtk/ScrollbarGtk.cpp:
5729         (ScrollbarGtk::~ScrollbarGtk):
5730
5731 2009-05-28  Adam Barth  <abarth@webkit.org>
5732
5733         Reviewed by Darin Adler.
5734
5735         Clean up window.open()'s use of lexical and dynamic scope.
5736
5737         (Added one unreviewed tweak: use dynamicFrame instead of lexicalFrame
5738         for DOMWindow::allowPopUp.)
5739
5740         Test: http/tests/security/frameNavigation/context-for-window-open.html
5741
5742         * bindings/js/JSDOMBinding.cpp:
5743         (WebCore::toDynamicFrame):
5744         (WebCore::processingUserGesture):
5745         (WebCore::completeURL):
5746         * bindings/js/JSDOMBinding.h:
5747         * bindings/js/JSDOMWindowCustom.cpp:
5748         (WebCore::createWindow):
5749         (WebCore::JSDOMWindow::open):
5750         (WebCore::JSDOMWindow::showModalDialog):
5751         * bindings/v8/custom/V8DOMWindowCustom.cpp:
5752         (WebCore::CALLBACK_FUNC_DECL):
5753         (WebCore::createWindow):
5754
5755 2009-05-27  Alexey Proskuryakov  <ap@webkit.org>
5756
5757         Reviewed by Oliver Hunt.
5758
5759         https://bugs.webkit.org/show_bug.cgi?id=26056
5760         XPath string() function can be very slow
5761
5762         * xml/XPathUtil.cpp: (WebCore::XPath::stringValue): Use an intermediate Vector when appending.
5763
5764 2009-05-27  Dan Bernstein  <mitz@apple.com>
5765
5766         Reviewed by Sam Weinig.
5767
5768         - fix <rdar://problem/6927761> <isindex> placeholder text is unstylable
5769           and initially not visible
5770
5771         Test: fast/forms/isindex-placeholder.html
5772
5773         * css/html4.css: Added a default style for <isindex> placeholder text.
5774         * html/HTMLInputElement.cpp:
5775         (WebCore::HTMLInputElement::parseMappedAttribute): Changed to call
5776         the new protected function updatePlaceholderVisibility().
5777         * html/HTMLInputElement.h:
5778         (WebCore::HTMLInputElement::updatePlaceholderVisibility): Added this
5779         protected function to allow HTMLIsIndexElement::parseMappedAttribute()
5780         to invoke InputElement::updatePlaceholderVisibility().
5781         * html/HTMLIsIndexElement.cpp:
5782         (WebCore::HTMLIsIndexElement::parseMappedAttribute): Call
5783         updatePlaceholderVisibility() when parsing the placeholder attribute.
5784         * rendering/RenderTextControlSingleLine.cpp:
5785         (WebCore::RenderTextControlSingleLine::createInnerTextStyle): If there
5786         is no placeholder pseudo-element style, use the normal style.
5787
5788 2009-05-27  Sam Weinig  <sam@webkit.org>
5789
5790         Reviewed by Maciej Stachowiak.
5791
5792         More cleanup of DOMWindow related functions.
5793
5794         * bindings/js/JSDOMWindowBase.cpp:
5795         (WebCore::JSDOMWindowBase::willRemoveFromWindowShell): Renamed from JSDOMWindowBase::clear()
5796         * bindings/js/JSDOMWindowBase.h:
5797
5798         * bindings/js/JSDOMWindowCustom.cpp:
5799         (WebCore::JSDOMWindow::showModalDialog): Update Comment.
5800
5801         * bindings/js/JSDOMWindowShell.cpp:
5802         * bindings/js/JSDOMWindowShell.h:
5803         Remove JSDOMWindowShell::clear().  It was unused.
5804
5805         * bindings/js/ScriptController.cpp:
5806         (WebCore::ScriptController::clearWindowShell):
5807
5808 2009-05-27  Sam Weinig  <sam@webkit.org>
5809
5810         Reviewed by David Hyatt.
5811
5812         Miscellaneous cleanup of DOMWindow related functions.
5813
5814         * bindings/js/JSDOMGlobalObject.cpp:
5815         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): Fix poorly named variables.
5816         * bindings/js/JSDOMWindowBase.cpp:
5817         (WebCore::JSDOMWindowBase::supportsProfiling): Don't jump through hoops
5818         checking for null frames if the build does not support profiling.
5819         (WebCore::JSDOMWindowBase::clear): Use setCurrentEvent(0) instead of calling
5820         clearHelperObjectProperties().  It is clearer.
5821         * bindings/js/JSDOMWindowBase.h:
5822         Removed now unused clearHelperObjectProperties() function, empty disconnectFrame()
5823         function, and the empty destructor.
5824         * bindings/js/JSDOMWindowShell.cpp:
5825         * bindings/js/JSDOMWindowShell.h:
5826         Remove disconnectFrame() which only called JSDOMWindowBase::disconnectFrame(), which
5827         is a no-op.
5828         * page/Frame.cpp:
5829         (WebCore::Frame::~Frame):
5830         (WebCore::Frame::pageDestroyed):
5831         Remove calls to JSDOMWindowShell::disconnectFrame() which only called
5832         JSDOMWindowBase::disconnectFrame(), which is a no-op.
5833
5834 2009-05-27  Dimitri Glazkov  <dglazkov@chromium.org>
5835
5836         Unreviewed, build fix.
5837
5838         https://bugs.webkit.org/show_bug.cgi?id=25974
5839         Remove extra qualifiers from the ScheduledAction decl.
5840
5841         * bindings/v8/ScheduledAction.h: Removed extraneous class qualifiers.
5842
5843 2009-05-27  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
5844
5845         Unreviewed make distcheck fix. One more missing file.
5846
5847         * GNUmakefile.am:
5848
5849 2009-05-27  Antonio Gomes   <antonio.gomes@openbossa.org>
5850
5851         Reviewed by Simon Hausmann.
5852
5853         [Qt] Fixed trunk build on Linux after r44126.
5854
5855         * WebCore.pro:
5856
5857 2009-05-27  Eric Carlson  <eric.carlson@apple.com>
5858
5859         Reviewed by Oliver Hunt.
5860
5861         <rdar://problem/6926046> REGRESSION (r43972): http://www.youtube.com/html5 crashes on open
5862
5863         * platform/graphics/MediaPlayer.cpp:
5864         (WebCore::MediaPlayer::load): Don't look for a media engine based on an empty MIME type.
5865
5866 2009-05-27  David Levin  <levin@chromium.org>
5867
5868         Reviewed by Maciej Stachowiak.
5869
5870         Bug 26029: FrameLoader::canLoad should allow calls with just a security origin
5871         https://bugs.webkit.org/show_bug.cgi?id=26029
5872
5873         No functional changes, so no tests.
5874
5875         * loader/FrameLoader.cpp:
5876         (WebCore::FrameLoader::canLoad):
5877         * loader/FrameLoader.h:
5878
5879 2009-05-27  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
5880
5881         Unreviewed build fix.
5882
5883         Remove file that does not exist from the build.
5884
5885         * GNUmakefile.am:
5886
5887 2009-05-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
5888
5889         Reviewed by Darin Adler.
5890
5891         Remove two unneeded protected constructors, these classes have pure-virtual functions, and can't be constructed anyway.
5892
5893         * dom/InputElement.h:
5894         * dom/OptionGroupElement.h:
5895
5896 2009-05-27  Alexey Proskuryakov  <ap@webkit.org>
5897
5898         Reviewed by Darin Adler.
5899
5900         https://bugs.webkit.org/show_bug.cgi?id=17725
5901         XPath should be case insensitive for HTML
5902
5903         Test: fast/xpath/node-name-case-sensitivity.html
5904
5905         * xml/XPathStep.cpp: (WebCore::XPath::Step::nodeMatches): Made node name check case insensitive
5906         for HTML elements in HTML documents.
5907
5908 2009-05-27  John Sullivan  <sullivan@apple.com>
5909
5910         fixed <rdar://problem/6925482> repro crash in WebCore::DragController::dragExited dropping 
5911         bookmarks (at least) over Top Sites (at least)
5912
5913         Reviewed by Kevin Decker
5914
5915         * page/DragController.cpp:
5916         (WebCore::DragController::dragExited):
5917         nil check m_documentUnderMouse and take the "local file" case if it's nil
5918
5919 2009-05-27  Fridrich Strba  <fridrich.strba@bluewin.ch>
5920
5921         Reviewed by Gustavo Noronha.
5922
5923         When building on window, consider Windows specific files.
5924
5925         * GNUmakefile.am:
5926
5927 2009-05-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
5928
5929         Reviewed by George Staikos.
5930
5931         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26031
5932
5933         InputElementData is too heavy, save storing two pointers by passing them
5934         directly to the static helper functions (the only place which needs them). 
5935
5936         * dom/InputElement.cpp:
5937         (WebCore::InputElement::dispatchFocusEvent):
5938         (WebCore::InputElement::dispatchBlurEvent):
5939         (WebCore::InputElement::updatePlaceholderVisibility):
5940         (WebCore::InputElement::updateFocusAppearance):
5941         (WebCore::InputElement::updateSelectionRange):
5942         (WebCore::InputElement::aboutToUnload):
5943         (WebCore::InputElement::setValueFromRenderer):
5944         (WebCore::InputElement::constrainValue):
5945         (WebCore::InputElement::handleBeforeTextInsertedEvent):
5946         (WebCore::InputElement::parseSizeAttribute):
5947         (WebCore::InputElement::parseMaxLengthAttribute):
5948         (WebCore::InputElement::updateValueIfNeeded):
5949         (WebCore::InputElement::notifyFormStateChanged):
5950         (WebCore::InputElementData::InputElementData):
5951         * dom/InputElement.h:
5952         * html/HTMLInputElement.cpp:
5953         (WebCore::HTMLInputElement::HTMLInputElement):
5954         (WebCore::HTMLInputElement::updateFocusAppearance):
5955         (WebCore::HTMLInputElement::aboutToUnload):
5956         (WebCore::HTMLInputElement::dispatchFocusEvent):
5957         (WebCore::HTMLInputElement::dispatchBlurEvent):
5958         (WebCore::HTMLInputElement::setInputType):
5959         (WebCore::HTMLInputElement::setSelectionRange):
5960         (WebCore::HTMLInputElement::parseMappedAttribute):
5961         (WebCore::HTMLInputElement::setValue):
5962         (WebCore::HTMLInputElement::setValueFromRenderer):
5963         (WebCore::HTMLInputElement::setFileListFromRenderer):
5964         (WebCore::HTMLInputElement::defaultEventHandler):
5965         (WebCore::HTMLInputElement::constrainValue):
5966         * wml/WMLInputElement.cpp:
5967         (WebCore::WMLInputElement::WMLInputElement):
5968         (WebCore::WMLInputElement::dispatchFocusEvent):
5969         (WebCore::WMLInputElement::dispatchBlurEvent):
5970         (WebCore::WMLInputElement::updateFocusAppearance):
5971         (WebCore::WMLInputElement::aboutToUnload):
5972         (WebCore::WMLInputElement::setValue):
5973         (WebCore::WMLInputElement::setValueFromRenderer):
5974         (WebCore::WMLInputElement::parseMappedAttribute):
5975         (WebCore::WMLInputElement::defaultEventHandler):
5976         (WebCore::WMLInputElement::constrainValue):
5977
5978 2009-05-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
5979
5980         Reviewed by George Staikos.
5981
5982         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26033
5983
5984         OptionElementData saves an Element pointer, which is unnessary.
5985         Just pass it to the static function calls directly.
5986
5987         * dom/OptionElement.cpp:
5988         (WebCore::OptionElement::setSelectedState):
5989         (WebCore::OptionElement::collectOptionText):
5990         (WebCore::OptionElement::collectOptionTextRespectingGroupLabel):
5991         (WebCore::OptionElement::collectOptionValue):
5992         (WebCore::OptionElementData::OptionElementData):
5993         * dom/OptionElement.h:
5994         * html/HTMLOptionElement.cpp:
5995         (WebCore::HTMLOptionElement::HTMLOptionElement):
5996         (WebCore::HTMLOptionElement::text):
5997         (WebCore::HTMLOptionElement::value):
5998         (WebCore::HTMLOptionElement::setSelected):
5999         (WebCore::HTMLOptionElement::setSelectedState):
6000         (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
6001         * wml/WMLOptionElement.cpp:
6002         (WebCore::WMLOptionElement::WMLOptionElement):
6003         (WebCore::WMLOptionElement::setSelectedState):
6004         (WebCore::WMLOptionElement::value):
6005         (WebCore::WMLOptionElement::textIndentedToRespectGroupLabel):
6006
6007 2009-05-27  Fridrich Strba  <fridrich.strba@bluewin.ch>
6008
6009         Reviewed by Maciej Stachowiak.
6010
6011         When building with MinGW, don't use the __declspec(dl{import,export})
6012         decorations and rely on the linker to use its nifty auto-import feature.
6013         It is extremely hard to get the decorations right with MinGW in general
6014         and impossible in WebKit, where the resulting shared library is linking 
6015         together some static libraries.
6016
6017         * config.h:
6018
6019 2009-05-26  Holger Hans Peter Freyther  <zecke@selfish.org>
6020
6021         Reviewed by Xan Lopez.
6022
6023         https://bugs.webkit.org/show_bug.cgi?id=25613
6024
6025         Add a WebCore::Widget that can embed GtkWidget with and
6026         without a GdkWindow. This can be used to embed any GtkWidget.
6027
6028         Some bits are directly copied from the Scrollbar implementation
6029         but can not be easily shared here.
6030
6031         * GNUmakefile.am:
6032         * platform/gtk/GtkPluginWidget.cpp: Added.
6033         (WebCore::GtkPluginWidget::GtkPluginWidget):
6034         (WebCore::GtkPluginWidget::invalidateRect):
6035         (WebCore::GtkPluginWidget::frameRectsChanged):
6036         (WebCore::GtkPluginWidget::paint):
6037         * platform/gtk/GtkPluginWidget.h: Added.
6038
6039 2009-05-26  Holger Hans Peter Freyther  <zecke@selfish.org>
6040
6041         Reviewed by Gustavo Noronha.
6042
6043         https://bugs.webkit.org/show_bug.cgi?id=25613.
6044
6045         Implement Widget::setIsSelected for Gtk+ by searching
6046         for a property of the name "webkit-widget-is-selected" and if
6047         such property exists we are going to set it. We expect
6048         the property to take a boolean.
6049
6050         * platform/gtk/WidgetGtk.cpp:
6051         (WebCore::Widget::setIsSelected):
6052
6053 2009-05-26  Sam Weinig  <sam@webkit.org>
6054
6055         Reviewed by Brady Eidson.
6056
6057         Fix for <rdar://problem/6916371>
6058         iWeb 'Announce' button does nothing after publishing to MobileMe
6059
6060         Add ability to force content sniffing for all urls (including file: urls)
6061
6062         * WebCore.base.exp:
6063         * platform/network/ResourceHandle.cpp:
6064         (WebCore::ResourceHandle::shouldContentSniffURL):
6065         (WebCore::ResourceHandle::forceContentSniffing):
6066         * platform/network/ResourceHandle.h:
6067
6068 2009-05-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
6069
6070         Reviewed by Holger Freyther.
6071
6072         https://bugs.webkit.org/show_bug.cgi?id=25996
6073
6074         [Qt] Dead-code stripping for unix
6075
6076         * WebCore.pro: Turn on GCC dead-code stripping flags for Unix
6077
6078 2009-05-10  Holger Hans Peter Freyther  <zecke@selfish.org>
6079
6080         Reviewed by Dave Hyatt.
6081
6082         https://bugs.webkit.org/show_bug.cgi?id=25646
6083
6084         [GTK] Send onscroll events for the main FrameView
6085
6086         WebKit/GTK+ is currently not sending any onscroll
6087         events for a frame with external adjustments. This is
6088         due the fact that the value-changed signal of the GtkAdjustment
6089         is handled by WebCore::ScrollView directly and is not going through
6090         the WebCore::Scrollbar -> WebCore::ScrollbarClient ->
6091         WebCore::FrameView::valueChanged -> WebCore::ScrollView::valueChanged
6092         path.
6093
6094         Fix the above problem by wrapping the GtkAdjustment we get
6095         assigned from GTK+ in a ScrollbarGtk that will not have any
6096         visual appearance. Remove code from ScrollView that knows
6097         about adjustments and create a special case for
6098         WebCore::ScrollView::createScrollbar that will create such
6099         a special WebCore::ScrollbarGtk.
6100
6101         * platform/ScrollView.cpp: Remove adjustment code
6102         (WebCore::ScrollView::setHasHorizontalScrollbar):
6103         (WebCore::ScrollView::setHasVerticalScrollbar):
6104         (WebCore::ScrollView::updateScrollbars):
6105         (WebCore::ScrollView::wheelEvent):
6106         * platform/ScrollView.h: Remove adjustment code
6107         * platform/gtk/ScrollViewGtk.cpp:
6108         (WebCore::ScrollView::platformDestroy):
6109         (WebCore::ScrollView::createScrollbar):
6110         (WebCore::ScrollView::setGtkAdjustments):
6111         * platform/gtk/ScrollbarGtk.cpp:
6112         (ScrollbarGtk::createScrollbar): Special case.
6113         (ScrollbarGtk::ScrollbarGtk):  New ctor and work on the adjustment
6114         (ScrollbarGtk::~ScrollbarGtk): Disconnect signal
6115         (ScrollbarGtk::frameRectsChanged): Do nothing when we lack a platformWidget
6116         * platform/gtk/ScrollbarGtk.h:
6117
6118 2009-05-26  Cameron Zwarich  <zwarich@apple.com>
6119
6120         Reviewed by Maciej Stachowiak.
6121
6122         Bug 26035: Make ImageSource::frameHasAlphaAtIndex() return false for JPEGs with CG
6123         <https://bugs.webkit.org/show_bug.cgi?id=26035>
6124         <rdar://problem/6924087>
6125
6126         * platform/graphics/cg/ImageSourceCG.cpp:
6127         (WebCore::ImageSource::frameHasAlphaAtIndex): return false if the image
6128         is JPEG, there is no image type, or m_decoder is null.
6129
6130 2009-05-26  Holger Hans Peter Freyther  <zecke@selfish.org>
6131
6132         Unreviewed build fix for the JPEGImageDecoder.
6133
6134         Revision 44167 removed stdio.h from the included headers and
6135         this will lead to an error that FILE is not known inside the
6136         jpeglib.h Put back the stdio.h include.
6137
6138         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
6139
6140 2009-05-26  Yichao Yin  <yichao.yin@torchmobile.com.cn>
6141
6142         Reviewed by Maciej Stachowiak.
6143
6144         Fix the crash issue while running layout tests after enalbed XHTMLMP
6145         https://bugs.webkit.org/show_bug.cgi?id=26017
6146
6147         * dom/Document.cpp:
6148         (WebCore::Document::isXHTMLMPDocument):
6149
6150 2009-05-26  Anders Carlsson  <andersca@apple.com>
6151
6152         Reviewed by Dan Bernstein.
6153
6154         <rdar://problem/6901751> 
6155         REGRESSION (r35515): Tiger crash painting the selection on registration page of car2go.com
6156         
6157         Don't use the WKCGContextIsSafeToClip function; it wasn't working correctly. Instead, just disable
6158         the improved selection drawing on Tiger.
6159         
6160         * WebCore.Tiger.exp:
6161         * platform/graphics/cg/GraphicsContextCG.cpp:
6162         (WebCore::GraphicsContext::fillPath):
6163         (WebCore::GraphicsContext::strokePath):
6164         (WebCore::GraphicsContext::fillRect):
6165         (WebCore::GraphicsContext::clip):
6166         (WebCore::GraphicsContext::clipOut):
6167         (WebCore::GraphicsContext::clipOutEllipseInRect):
6168         (WebCore::GraphicsContext::clipPath):
6169         (WebCore::GraphicsContext::addInnerRoundedRectClip):
6170         (WebCore::GraphicsContext::strokeRect):
6171         * platform/mac/WebCoreSystemInterface.h:
6172         * platform/mac/WebCoreSystemInterface.mm:
6173         * rendering/RenderBlock.cpp:
6174         (WebCore::RenderBlock::fillSelectionGaps):
6175
6176 2009-05-26  Peter Kasting  <pkasting@google.com>
6177
6178         Reviewed by Eric Seidel.
6179
6180         https://bugs.webkit.org/show_bug.cgi?id=25709 part two
6181         Mostly cosmetic changes, mainly to get image decoders for Cairo build to
6182         comply with WebKit style guidelines:
6183         * Fix header guard names
6184         * Fix initializer list wrapping
6185         * Fix class/function "{" wrapping
6186         * Fix wrapping of long boolean expressions
6187         * Fix whitespace around operators
6188         * Eliminate whitespace on otherwise-blank lines
6189         * No {} on single-line conditional arms
6190         * Use 0 instead of NULL
6191         * Don't #include "config.h" in headers
6192
6193         Also a few non-cosmetic changes:
6194         * Remove unneeded #ifdef protecting the contents of these files.  The
6195           platforms listed don't match who uses these files anymore (even
6196           without considering Skia), and platforms which don't use them at all
6197           (like CG) aren't harmed by the files, since they don't have
6198           equivalently-named classes.  It's simpler to just ditch these.
6199         * Convert a use of Vector<>& into SharedBuffer*, since that's how the
6200           data is really stored anyway.
6201         * Use size() instead of m_size, for consistency with Skia code, and
6202           future-proofing (if a particular decoder wants to specialize this).
6203         * Move an ASSERT that was slightly more aggressive than necessary.
6204         * Change variable names/types for clarity/accuracy and to match Skia.
6205         * Remove unnecessary macro magic to work around a problem which no
6206           longer exists in the third-party JPEG headers.
6207         * Stop silencing a portability warning about setjmp (the vcproj/vsprops
6208           are the right place for this)
6209         * In Skia code, don't explicitly check |m_failed| before calling
6210           isSizeAvailable(), which itself checks |m_failed|.
6211
6212         * platform/image-decoders/ImageDecoder.h: Fix header guards, "{" wrapping.
6213         (WebCore::RGBA32Buffer::):
6214         (WebCore::RGBA32Buffer::RGBA32Buffer): Fix initializer list wrapping.
6215         (WebCore::ImageDecoder::ImageDecoder): Fix initializer list wrapping.
6216         * platform/image-decoders/bmp/BMPImageDecoder.cpp: Remove unneeded #ifdef.
6217         * platform/image-decoders/bmp/BMPImageDecoder.h: Fix header guards, "{" wrapping.
6218         * platform/image-decoders/gif/GIFImageDecoder.cpp: Remove unneeded #ifdef, fix "{" wrapping.
6219         (WebCore::GIFImageDecoderPrivate::GIFImageDecoderPrivate): Use an initializer instead of a block-level statement.
6220         (WebCore::GIFImageDecoderPrivate::decode): Expect a SharedBuffer.
6221         (WebCore::GIFImageDecoderPrivate::getColorMap):
6222         (WebCore::GIFImageDecoder::GIFImageDecoder): Fix initializer list wrapping.
6223         (WebCore::GIFImageDecoder::frameCount): Add comment.
6224         (WebCore::GIFImageDecoder::frameBufferAtIndex): Explicitly cast, fix whitespace around operators.
6225         (WebCore::GIFImageDecoder::decode): Pass a SharedBuffer.
6226         (WebCore::GIFImageDecoder::initFrameBuffer): Use size() instead of m_size, move ASSERT, fix boolean wrapping, fix indenting.
6227         (WebCore::GIFImageDecoder::prepEmptyFrameBuffer): Use size() instead of m_size.
6228         (WebCore::GIFImageDecoder::haveDecodedRow): Use size() instead of m_size, eliminate unneeded whitespace, change variable name.
6229         (WebCore::GIFImageDecoder::frameComplete): Use size() instead of m_size, no {} on single-line conditional arms, fix boolean wrapping.
6230         * platform/image-decoders/gif/GIFImageDecoder.h: Fix header guards, "{" wrapping.
6231         * platform/image-decoders/gif/GIFImageReader.cpp: Remove unneeded #ifdef.
6232         (GIFImageReader::read):
6233         * platform/image-decoders/gif/GIFImageReader.h: Fix header guards, change variable type.
6234         * platform/image-decoders/ico/ICOImageDecoder.cpp: Remove unneeded #ifdef.
6235         * platform/image-decoders/ico/ICOImageDecoder.h: Fix header guards, "{" wrapping.
6236         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Remove unneeded #ifdef, macro magic, silencing of warning.
6237         (WebCore::JPEGImageDecoder::outputScanlines): Use size() instead of m_size, change variable name.
6238         * platform/image-decoders/jpeg/JPEGImageDecoder.h: Fix header guards, "{" wrapping.
6239         * platform/image-decoders/png/PNGImageDecoder.cpp: Remove unneeded #ifdef, silencing of warning, change variable type.
6240         (WebCore::PNGImageReader::PNGImageReader): Fix initializer list wrapping.
6241         (WebCore::PNGImageReader::close): Add comment, zero another member for consistency.
6242         (WebCore::PNGImageDecoder::PNGImageDecoder): Fix indenting.
6243         (WebCore::PNGImageDecoder::decodingFailed): Define in .cpp, not .h.
6244         (WebCore::PNGImageDecoder::rowAvailable):
6245         * platform/image-decoders/png/PNGImageDecoder.h: Fix header guards, "{" wrapping.
6246         * platform/image-decoders/skia/GIFImageDecoder.cpp:
6247         (WebCore::GIFImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily.
6248         (WebCore::GIFImageDecoder::frameBufferAtIndex): Fix whitespace around operators.
6249         * platform/image-decoders/skia/GIFImageReader.h: "unsigned" is sufficient to convey "unsigned int".
6250         * platform/image-decoders/skia/ImageDecoder.h: Remove unnecessary #includes.
6251         (WebCore::ImageDecoder::ImageDecoder): Fix initializer list wrapping.
6252         * platform/image-decoders/skia/JPEGImageDecoder.cpp:
6253         (WebCore::JPEGImageReader::JPEGImageReader): Use 0 instead of NULL.
6254         (WebCore::JPEGImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily.
6255         * platform/image-decoders/skia/PNGImageDecoder.cpp:
6256         (WebCore::PNGImageReader::PNGImageReader): Fix initializer list wrapping.
6257         (WebCore::PNGImageDecoder::PNGImageDecoder): Fix indenting.
6258         (WebCore::PNGImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily.
6259         (WebCore::rowAvailable):
6260         * platform/image-decoders/skia/XBMImageDecoder.h: Don't #include config.h.
6261         * platform/image-decoders/xbm/XBMImageDecoder.cpp: Remove unneeded #ifdef.
6262         * platform/image-decoders/xbm/XBMImageDecoder.h: Fix header guards, "{" wrapping.
6263
6264 2009-05-26  Jian Li  <jianli@chromium.org>
6265
6266         Reviewed by Dimitri Glazkov.
6267
6268         https://bugs.webkit.org/show_bug.cgi?id=25944
6269         Remove the uses of V8 Locker in worker execution code. No additional test is needed.
6270         The normal WebKit layout tests should cover it. However, layout tests that start
6271         multiple workers will fail to pass due to test shell limitation in Chromium. To cover
6272         this, UI tests will be added (http://code.google.com/p/chromium/issues/detail?id=12554).
6273
6274         * bindings/v8/V8WorkerContextEventListener.cpp:
6275         (WebCore::V8WorkerContextEventListener::handleEvent):
6276         * bindings/v8/WorkerContextExecutionProxy.cpp:
6277         (WebCore::WorkerContextExecutionProxy::dispose):
6278         (WebCore::WorkerContextExecutionProxy::initV8IfNeeded):
6279         (WebCore::WorkerContextExecutionProxy::evaluate):
6280         (WebCore::WorkerContextExecutionProxy::findOrCreateEventListenerHelper):
6281         (WebCore::WorkerContextExecutionProxy::RemoveEventListener):
6282
6283 2009-05-26  Dmitry Titov  <dimich@chromium.org>
6284
6285         Reviewed by Dimitri Glazkov.
6286
6287         https://bugs.webkit.org/show_bug.cgi?id=25974
6288         Enable timers in Chromuim workers.
6289
6290         * bindings/v8/ScheduledAction.cpp:
6291         (WebCore::ScheduledAction::execute): Added function which can execute a callback using WorkerContext.
6292         * bindings/v8/ScheduledAction.h:
6293         (WebCore::ScheduledAction::ScheduledAction): added url parameter to capture the worker's location.
6294         * bindings/v8/custom/V8WorkerContextCustom.cpp:
6295         (WebCore::SetTimeoutOrInterval): replaced NotImplemented with code to create ScheduledAction and DOMTimer.
6296         Also, removed declarations for clearTimeout/clearInterval callbacks since they are now directly generated from IDL.
6297
6298 2009-05-26  Dimitri Glazkov  <dglazkov@chromium.org>
6299
6300         Unreviewed, build fix.
6301
6302         https://bugs.webkit.org/show_bug.cgi?id=23649
6303         Update V8 bindings to match SQLTransactionErrorCallback change.
6304
6305         * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
6306         (WebCore::V8CustomSQLTransactionErrorCallback::handleEvent): Changed to return void.
6307         * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: Ditto.
6308
6309 2009-05-26  Dirk Schulze  <krit@webkit.org>
6310
6311         Reviewed by Nikolas Zimmermann.
6312
6313         Move FilterEffect to platform/graphics/filters. First step to get an
6314         SVG independent filter system.
6315
6316         * GNUmakefile.am:
6317         * WebCore.pro:
6318         * WebCore.xcodeproj/project.pbxproj:
6319         * platform/graphics/filters/FilterEffect.cpp: Added.
6320         (WebCore::FilterEffect::FilterEffect):
6321         (WebCore::FilterEffect::~FilterEffect):
6322         (WebCore::FilterEffect::externalRepresentation):
6323         * platform/graphics/filters/FilterEffect.h: Added.
6324         (WebCore::FilterEffect::xBoundingBoxMode):
6325         (WebCore::FilterEffect::setXBoundingBoxMode):
6326         (WebCore::FilterEffect::yBoundingBoxMode):
6327         (WebCore::FilterEffect::setYBoundingBoxMode):
6328         (WebCore::FilterEffect::widthBoundingBoxMode):
6329         (WebCore::FilterEffect::setWidthBoundingBoxMode):
6330         (WebCore::FilterEffect::heightBoundingBoxMode):
6331         (WebCore::FilterEffect::setHeightBoundingBoxMode):
6332         (WebCore::FilterEffect::subRegion):
6333         (WebCore::FilterEffect::setSubRegion):
6334         (WebCore::FilterEffect::resultImage):
6335         (WebCore::FilterEffect::setEffectBuffer):
6336         * svg/FilterEffect.cpp: Removed.
6337         * svg/FilterEffect.h: Removed.
6338
6339 2009-05-26  Dimitri Glazkov  <dglazkov@chromium.org>
6340
6341         Reviewed by Maciej Stachowiak.
6342
6343         https://bugs.webkit.org/show_bug.cgi?id=23649
6344         Update SQLTransactionErrorCallback to not return a value per changes in
6345         HTML5 spec.
6346
6347         Test: storage/transaction-error-callback.html
6348
6349         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
6350         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
6351         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
6352         * storage/SQLTransaction.cpp:
6353         (WebCore::SQLTransaction::SQLTransaction):
6354         (WebCore::SQLTransaction::postflightAndCommit):
6355         (WebCore::SQLTransaction::handleTransactionError):
6356         (WebCore::SQLTransaction::deliverTransactionErrorCallback):
6357         (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
6358         * storage/SQLTransaction.h:
6359         * storage/SQLTransactionErrorCallback.h:
6360
6361 2009-05-26  David Hyatt  <hyatt@apple.com>
6362
6363         Reviewed by Darin Adler.
6364
6365         Fix for https://bugs.webkit.org/show_bug.cgi?id=25969
6366
6367         Detect the case where we can fit without scrollbars when the view shrinks, so that we don't mistakenly
6368         continue to show scrollbars.
6369
6370         Added two tests in fast/dynamic.
6371
6372         * platform/ScrollView.cpp:
6373         (WebCore::ScrollView::updateScrollbars):
6374
6375 2009-05-26  Chris Fleizach  <cfleizach@apple.com>
6376
6377         Reviewed by Mark Rowe.
6378
6379         Bug 25801: change AccessibilityAria -> AccessibilityARIA
6380         https://bugs.webkit.org/show_bug.cgi?id=25801
6381
6382         * GNUmakefile.am:
6383         * WebCore.order:
6384         * WebCore.pro:
6385         * WebCore.vcproj/WebCore.vcproj:
6386         * WebCore.xcodeproj/project.pbxproj:
6387         * WebCoreSources.bkl:
6388         * accessibility/AXObjectCache.cpp:
6389         (WebCore::AXObjectCache::getOrCreate):
6390         * accessibility/AccessibilityARIAGrid.cpp: Copied from WebCore/accessibility/AccessibilityAriaGrid.cpp.
6391         (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
6392         (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
6393         (WebCore::AccessibilityARIAGrid::create):
6394         (WebCore::AccessibilityARIAGrid::addChild):
6395         (WebCore::AccessibilityARIAGrid::addChildren):
6396         (WebCore::AccessibilityARIAGrid::cellForColumnAndRow):
6397         * accessibility/AccessibilityARIAGrid.h: Copied from WebCore/accessibility/AccessibilityAriaGrid.h.
6398         * accessibility/AccessibilityARIAGridCell.cpp: Copied from WebCore/accessibility/AccessibilityAriaGridCell.cpp.
6399         (WebCore::AccessibilityARIAGridCell::AccessibilityARIAGridCell):
6400         (WebCore::AccessibilityARIAGridCell::~AccessibilityARIAGridCell):
6401         (WebCore::AccessibilityARIAGridCell::create):
6402         (WebCore::AccessibilityARIAGridCell::parentTable):
6403         (WebCore::AccessibilityARIAGridCell::rowIndexRange):
6404         (WebCore::AccessibilityARIAGridCell::columnIndexRange):
6405         * accessibility/AccessibilityARIAGridCell.h: Copied from WebCore/accessibility/AccessibilityAriaGridCell.h.
6406         * accessibility/AccessibilityARIAGridRow.cpp: Copied from WebCore/accessibility/AccessibilityAriaGridRow.cpp.
6407         (WebCore::AccessibilityARIAGridRow::AccessibilityARIAGridRow):
6408         (WebCore::AccessibilityARIAGridRow::~AccessibilityARIAGridRow):
6409         (WebCore::AccessibilityARIAGridRow::create):
6410         (WebCore::AccessibilityARIAGridRow::parentTable):
6411         (WebCore::AccessibilityARIAGridRow::headerObject):
6412         * accessibility/AccessibilityARIAGridRow.h: Copied from WebCore/accessibility/AccessibilityAriaGridRow.h.
6413         * accessibility/AccessibilityAriaGrid.cpp: Removed.
6414         * accessibility/AccessibilityAriaGrid.h: Removed.
6415         * accessibility/AccessibilityAriaGridCell.cpp: Removed.
6416         * accessibility/AccessibilityAriaGridCell.h: Removed.
6417         * accessibility/AccessibilityAriaGridRow.cpp: Removed.
6418         * accessibility/AccessibilityAriaGridRow.h: Removed.
6419
6420 2009-05-26  Stephen White  <senorblanco@chromium.org>
6421
6422         Reviewed by Dimitri Glazkov.
6423
6424         https://bugs.webkit.org/show_bug.cgi?id=26012
6425
6426         Fix the Skia path to normalize the given source rect when
6427         drawing patterns, so it accepts negative width/height (as CG does).
6428         Fixes Chromium bug http://www.crbug.com/6167.
6429         * platform/graphics/skia/ImageSkia.cpp:
6430         (WebCore::Image::drawPattern):
6431
6432 2009-05-26  Pavel Feldman  <pfeldman@chromium.org>
6433
6434         Reviewed by Timothy Hatcher.
6435
6436         Serialize calls to WebInspector. This is the first step where method 
6437         calls are being serialized to arrays (not yet JSON stringified ones) and 
6438         are being dispatched on the client. This change also allows client to override 
6439         InspectorFrontend, so that the serialized calls can be made on a given object
6440         instead of in-process WebInspector global. This will be the main control flow
6441         when InspectorController is decoupled from the in-process frontend.
6442
6443         https://bugs.webkit.org/show_bug.cgi?id=26010
6444
6445         * inspector/InspectorController.cpp:
6446         (WebCore::InspectorController::scriptObjectReady):
6447         (WebCore::InspectorController::overrideFrontendObject):
6448         (WebCore::InspectorController::show):
6449         (WebCore::InspectorController::populateScriptObjects):
6450         * inspector/InspectorController.h:
6451         * inspector/InspectorFrontend.cpp:
6452         (WebCore::InspectorFrontend::addMessageToConsole):
6453         (WebCore::InspectorFrontend::addResource):
6454         (WebCore::InspectorFrontend::updateResource):
6455         (WebCore::InspectorFrontend::removeResource):
6456         (WebCore::InspectorFrontend::updateFocusedNode):
6457         (WebCore::InspectorFrontend::setAttachedWindow):
6458         (WebCore::InspectorFrontend::inspectedWindowScriptObjectCleared):
6459         (WebCore::InspectorFrontend::showPanel):
6460         (WebCore::InspectorFrontend::populateInterface):
6461         (WebCore::InspectorFrontend::reset):
6462         (WebCore::InspectorFrontend::debuggerWasEnabled):
6463         (WebCore::InspectorFrontend::debuggerWasDisabled):
6464         (WebCore::InspectorFrontend::profilerWasEnabled):
6465         (WebCore::InspectorFrontend::profilerWasDisabled):
6466         (WebCore::InspectorFrontend::parsedScriptSource):
6467         (WebCore::InspectorFrontend::failedToParseScriptSource):
6468         (WebCore::InspectorFrontend::addProfile):
6469         (WebCore::InspectorFrontend::setRecordingProfile):
6470         (WebCore::InspectorFrontend::pausedScript):
6471         (WebCore::InspectorFrontend::resumedScript):
6472         (WebCore::InspectorFrontend::addDatabase):
6473         (WebCore::InspectorFrontend::addDOMStorage):
6474         (WebCore::InspectorFrontend::newFunctionCall):
6475         (WebCore::InspectorFrontend::callSimpleFunction):
6476         * inspector/InspectorFrontend.h:
6477         * inspector/front-end/inspector.js:
6478         (WebInspector.dispatch):
6479
6480 2009-05-25  Alexey Proskuryakov  <ap@webkit.org>
6481
6482         Reviewed by Darin Adler.
6483
6484         <rdar://problem/6918671> REGRESSION (r41700): Crashes in debug DumpRenderTree at RefCountedBase::ref().
6485
6486         * dom/QualifiedName.cpp: (WebCore::QualifiedName::QualifiedName):
6487         * dom/QualifiedName.h: (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
6488         Adjust empty namespace before QNameComponentsTranslator black magic, not after.
6489
6490 2009-05-25  David Levin  <levin@chromium.org>
6491
6492         Reviewed by Maciej Stachowiak and Oliver Hunt.
6493
6494         Added forwarding headers.
6495
6496         * ForwardingHeaders/wtf/CrossThreadRefCounted.h: Added.
6497         * ForwardingHeaders/wtf/OwnFastMallocPtr.h: Added.
6498
6499 2009-05-25  Anders Carlsson  <andersca@apple.com>
6500
6501         Reviewed by Sam Weinig.
6502
6503         - WebCore side of <rdar://problem/6914001>.
6504
6505         Add a new m_allowPopupsFromPlugin flag.
6506         
6507         * bindings/js/ScriptController.cpp:
6508         (WebCore::ScriptController::ScriptController):
6509         (WebCore::ScriptController::processingUserGesture):
6510         * bindings/js/ScriptController.h:
6511         (WebCore::ScriptController::setAllowPopupsFromPlugin):
6512         (WebCore::ScriptController::allowPopupsFromPlugin):
6513
6514 2009-05-25  Adam Barth  <abarth@webkit.org>
6515
6516         Reviewed by Sam Weinig.
6517
6518         https://bugs.webkit.org/show_bug.cgi?id=26006
6519
6520         Sort out our use of dynamicGlobalObject and lexicalGlobalObject for
6521         window.location.  The correct use appears to be as follows:
6522
6523         1) Use dynamicGlobalObject to find the user gesture.
6524         2) Use dynamicGlobalObject to complete URLs.
6525         3) Use lexicalGlobalObject to find the referrer.
6526         4) Use lexicalGlobalObject for the frame navigation checks.
6527         5) Use lexicalGlobalObject for the XSS checks.
6528
6529         Tests: http/tests/security/frameNavigation/context-for-location-assign.html
6530                http/tests/security/frameNavigation/context-for-location-href.html
6531                http/tests/security/frameNavigation/context-for-location.html
6532
6533         * bindings/js/JSDOMBinding.cpp:
6534         (WebCore::shouldAllowNavigation):
6535         (WebCore::toLexicalFrame):
6536         (WebCore::processingUserGesture):
6537         (WebCore::completeURL):
6538         * bindings/js/JSDOMBinding.h:
6539         * bindings/js/JSDOMWindowCustom.cpp:
6540         (WebCore::JSDOMWindow::setLocation):
6541         * bindings/js/JSLocationCustom.cpp:
6542         (WebCore::navigateIfAllowed):
6543         (WebCore::JSLocation::setHref):
6544         (WebCore::JSLocation::replace):
6545         (WebCore::JSLocation::reload):
6546         (WebCore::JSLocation::assign):
6547         (WebCore::JSLocation::toString):
6548         (WebCore::JSLocationPrototype::customPut):
6549         * bindings/v8/V8Utilities.cpp:
6550         (WebCore::processingUserGesture):
6551         (WebCore::shouldAllowNavigation):
6552         (WebCore::completeURL):
6553         (WebCore::navigateIfAllowed):
6554         * bindings/v8/V8Utilities.h:
6555         * bindings/v8/custom/V8DOMWindowCustom.cpp:
6556         (WebCore::V8Custom::WindowSetLocation):
6557         * bindings/v8/custom/V8LocationCustom.cpp:
6558         (WebCore::ACCESSOR_SETTER):
6559         (WebCore::CALLBACK_FUNC_DECL):
6560
6561 2009-05-25  Fridrich Strba  <fridrich.strba@bluewin.ch>
6562
6563         Reviewed by Maciej Stachowiak.
6564
6565         With Windows compilers older then MSVC 2005, the functions
6566         gmtime_s and localtime_s don't exist. The gmtime and localtime are
6567         on Windows always thread safe. So use them in the cases where
6568         gmtime_s and localtime_s are not present.
6569
6570         * loader/FTPDirectoryDocument.cpp:
6571         * loader/FTPDirectoryParser.cpp:
6572
6573 2009-05-25  Holger Hans Peter Freyther  <zecke@selfish.org>
6574
6575         Reviewed by Simon Hausmann.
6576
6577         Follow up on r44120. PluginPackageMac.cpp is used
6578         by Qt on Mac and contained a copy of the m_browserFunc
6579         assignments and ::equal, ::hash and ::compareFileVersion.
6580         Change it to use the ones from PluginPackage.cpp as well.
6581
6582         * plugins/mac/PluginPackageMac.cpp:
6583         (WebCore::PluginPackage::load):
6584
6585 2009-05-25  Simon Hausmann  <simon.hausmann@nokia.com>
6586
6587         Reviewed by Tor Arne Vestbø.
6588
6589         https://bugs.webkit.org/show_bug.cgi?id=25612
6590
6591         Support conditionals in the tag factories, by placing
6592         feature #ifdefs around the individual factory functions
6593         and the registration.
6594
6595         Made the Audio and Video elements conditional in the tag factories
6596
6597         * html/HTMLTagNames.in:
6598         * dom/make_names.pl:
6599
6600 2009-05-25  Simon Hausmann  <simon.hausmann@nokia.com>
6601
6602         Fix the Gtk build when video is disabled.
6603
6604         * GNUmakefile.am: Always generate and compile the IDL files for the media
6605         elements. They contain proper feature #ifdefs.
6606
6607 2009-05-25  Simon Hausmann  <simon.hausmann@nokia.com>
6608
6609         Fix the Qt build when video is disabled.
6610
6611         * WebCore.pro: Always generate the IDL files for the media elements. They
6612         contain proper ENABLE(VIDEO) #ifdefs.
6613
6614 2009-05-25  Adam Barth  <abarth@webkit.org>
6615
6616         Reviewed by Maciej Stachowiak.
6617
6618         https://bugs.webkit.org/show_bug.cgi?id=26004
6619
6620         The origin for postMessage should follow lexical scope, not dynamic
6621         scope.  Yes, this is a super-obscure corner case.
6622
6623         Test: http/tests/security/postMessage/origin-follows-lexical-scope.html
6624
6625         * bindings/js/JSDOMWindowCustom.cpp:
6626         (WebCore::JSDOMWindow::postMessage):
6627         * bindings/v8/custom/V8DOMWindowCustom.cpp:
6628         (WebCore::CALLBACK_FUNC_DECL):
6629
6630 2009-05-24  Darin Fisher  <darin@chromium.org>
6631
6632         Reviewed by Mark Rowe.
6633
6634         Fix build bustage related to PassOwnPtr changes.
6635
6636         https://bugs.webkit.org/show_bug.cgi?id=25999
6637
6638         * platform/graphics/chromium/TransparencyWin.cpp:
6639
6640 2009-05-24  Holger Hans Peter Freyther  <zecke@selfish.org>
6641
6642         Reviewed by Maciej Stachowiak.
6643
6644         https://bugs.webkit.org/show_bug.cgi?id=25988
6645
6646         Minor cleanup in PluginPackage::hash. Let the compiler
6647         figure out the size of the array. Do not have it in the
6648         definition and specially not the in the call to
6649         StringImpl::hash.
6650
6651         * plugins/PluginPackage.cpp:
6652         (WebCore::PluginPackage::hash):
6653
6654 2009-05-24  Holger Hans Peter Freyther  <zecke@selfish.org>
6655
6656         Reviewed by Maciej Stachowiak.
6657
6658         https://bugs.webkit.org/show_bug.cgi?id=25988
6659
6660         Move ::hash, ::equal and ::compareFileVersion from
6661         the duplicated copies in PluginPackageQt.cpp and
6662         PluginPackageGtk to PluginPackage.cpp. We need to #ifdef
6663         this for the PluginPackageWin version. Use the new style
6664         ENABLE() for this feature/policy and enable it in the Gtk+
6665         and Qt buildsystem.
6666
6667         * GNUmakefile.am:
6668         * WebCore.pro:
6669         * plugins/PluginPackage.cpp:
6670         (WebCore::PluginPackage::hash):
6671         (WebCore::PluginPackage::equal):
6672         (WebCore::PluginPackage::compareFileVersion):
6673         * plugins/gtk/PluginPackageGtk.cpp:
6674         * plugins/qt/PluginPackageQt.cpp:
6675
6676 2009-05-24  Holger Hans Peter Freyther  <zecke@selfish.org>
6677
6678         Reviewed by Maciej Stachowiak.
6679
6680         https://bugs.webkit.org/show_bug.cgi?id=25988
6681
6682         So far the initialization of the browserfuncs struct
6683         is done in PluginPackageQt, PluginPackageGtk and
6684         PluginPackageWin there is no need for this duplication.
6685
6686         The PluginPackageWin version got copied to PluginPackage
6687
6688         * plugins/PluginPackage.cpp:
6689         (WebCore::PluginPackage::initializeBrowserFuncs):
6690         * plugins/PluginPackage.h:
6691         * plugins/gtk/PluginPackageGtk.cpp:
6692         (WebCore::PluginPackage::load):
6693         * plugins/qt/PluginPackageQt.cpp:
6694         (WebCore::PluginPackage::load):
6695         * plugins/win/PluginPackageWin.cpp:
6696         (WebCore::PluginPackage::load):
6697
6698 2009-05-24  Dirk Schulze  <krit@webkit.org>
6699
6700         Reviewed by Nikolas Zimmermann.
6701
6702         WebKit needs cross-platform filter system
6703         [https://bugs.webkit.org/show_bug.cgi?id=19991]
6704
6705         Added standard input for filter system.
6706
6707         No testcases were added. Filter system is still off.
6708
6709         * GNUmakefile.am:
6710         * WebCore.pro:
6711         * WebCore.xcodeproj/project.pbxproj:
6712         * platform/graphics/filters/SourceAlpha.cpp: Added.
6713         (WebCore::SourceAlpha::create):
6714         (WebCore::SourceAlpha::effectName):
6715         (WebCore::SourceAlpha::apply):
6716         (WebCore::SourceAlpha::dump):
6717         * platform/graphics/filters/SourceAlpha.h: Added.
6718         (WebCore::SourceAlpha::SourceAlpha):
6719         * platform/graphics/filters/SourceGraphic.cpp: Added.
6720         (WebCore::SourceGraphic::create):
6721         (WebCore::SourceGraphic::effectName):
6722         (WebCore::SourceGraphic::apply):
6723         (WebCore::SourceGraphic::dump):
6724         * platform/graphics/filters/SourceGraphic.h: Added.
6725         (WebCore::SourceGraphic::SourceGraphic):
6726         * svg/FilterBuilder.cpp: Added.
6727         (WebCore::FilterBuilder::FilterBuilder):
6728         (WebCore::FilterBuilder::add):
6729         (WebCore::FilterBuilder::getEffectById):
6730         (WebCore::FilterBuilder::clearEffects):
6731         * svg/FilterBuilder.h:
6732
6733 2009-05-24  Simon Hausmann  <simon.hausmann@nokia.com>
6734
6735         Reviewed by Maciej Stachowiak.
6736
6737         https://bugs.webkit.org/show_bug.cgi?id=25612
6738
6739         Add support conditionals in the JSC bindings generator code for attributes,
6740         by placing feature #ifdefs around the setters/getters.
6741
6742         Made the audio and video element specific DOM attributes conditional
6743         in the generated code, by moving the #ifdefs from the IDL files into
6744         the generated code. This allows for re-using the same generated code
6745         with or without ENABLE(VIDEO).
6746
6747         * page/DOMWindow.idl:
6748         * bindings/scripts/CodeGeneratorJS.pm:
6749
6750 2009-05-23  Holger Hans Peter Freyther  <zecke@selfish.org>
6751
6752         Unreviewed build fix for Qt. Change signature to have PassOwnPtr.
6753
6754         * platform/text/qt/TextCodecQt.cpp:
6755         (WebCore::newTextCodecQt):
6756
6757 2009-05-23  Dan Bernstein  <mitz@apple.com>
6758
6759         Reviewed by Darin Adler.
6760
6761         - clean up ColorMac a little
6762
6763         * platform/graphics/mac/ColorMac.h: Whitespace change.
6764         * platform/graphics/mac/ColorMac.mm: Removed redundant #import
6765         statements and sorted the remaining ones.
6766         (WebCore::makeRGBAFromNSColor): Replaced four Objective-C method calls
6767         with a single call and removed redundant casts to int.
6768         (WebCore::nsColor): Removed ".0f" from number literals used as CGFloats.
6769         In one case, this avoids an intermediate conversion to float before
6770         conversion to double on 64-bit.
6771         (WebCore::CGColorFromNSColor): Replaced four Objective-C method calls
6772         with a single call.
6773         (WebCore::focusRingColor):
6774         (+[WebCoreControlTintObserver controlTintDidChange]): Whitespace change.
6775
6776 2009-05-23  Jan Michael Alonzo  <jmalonzo@webkit.org>
6777
6778         Reviewed by Xan Lopez.
6779
6780         [Gtk] ROLE_ROW_HEADER should not be used for list item bullets/numbers
6781         https://bugs.webkit.org/show_bug.cgi?id=25900
6782
6783         Use ATK_ROLE_TEXT for ListMarkerRole.
6784
6785         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
6786         (atkRole):
6787
6788 2009-05-23  David Kilzer  <ddkilzer@apple.com>
6789
6790         Reformat WebCore::requiresContextForWordBoundary()
6791
6792         * platform/text/TextBoundaries.h:
6793         (WebCore::requiresContextForWordBoundary):
6794
6795 2009-05-23  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
6796
6797         Not reviewed. Roll out ResourceHandle patch, that I accidently included in my last commit.
6798
6799         * platform/network/ResourceHandle.cpp:
6800         (WebCore::ResourceHandle::shouldContentSniffURL):
6801
6802 2009-05-23  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
6803
6804         Reviewed by Darin Adler.
6805
6806         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23808
6807
6808         After a long journey, add the last missing ABC to share form control element support with HTMLSelectElement.
6809         RenderListBox/RenderMenuList operates on SelectElement instead of HTMLSelectElement now, querying selected index etc.
6810         This makes it possible to use these render objects for ie. WML, as it's done before for input & option elements.
6811
6812         WMLSelectElement will be created soon, in a follow-up patch, adding more methods to SelectElement, sharing code between
6813         HTMLSelectElement/WMLSelectElement.
6814
6815         * GNUmakefile.am:
6816         * WebCore.pro:
6817         * WebCore.vcproj/WebCore.vcproj:
6818         * WebCore.xcodeproj/project.pbxproj:
6819         * WebCoreSources.bkl:
6820         * accessibility/AccessibilityListBox.cpp:
6821         (WebCore::AccessibilityListBox::addChildren):
6822         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
6823         * accessibility/AccessibilityListBoxOption.cpp:
6824         (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
6825         * accessibility/AccessibilityRenderObject.cpp:
6826         (WebCore::AccessibilityRenderObject::actionElement):
6827         * dom/Element.h:
6828         (WebCore::Element::isFormControlElement):
6829         (WebCore::Element::dispatchFormControlChangeEvent):
6830         * dom/SelectElement.cpp: Added.
6831         (WebCore::toSelectElement):
6832         * dom/SelectElement.h: Added.
6833         (WebCore::SelectElement::~SelectElement):
6834         * html/HTMLFormControlElement.cpp:
6835         (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent):
6836         * html/HTMLFormControlElement.h:
6837         * html/HTMLInputElement.cpp:
6838         (WebCore::HTMLInputElement::setChecked):
6839         (WebCore::HTMLInputElement::defaultEventHandler):
6840         * html/HTMLOptionElement.cpp:
6841         (WebCore::HTMLOptionElement::index):
6842         * html/HTMLSelectElement.cpp:
6843         (WebCore::HTMLSelectElement::selectedIndex):
6844         (WebCore::HTMLSelectElement::lastSelectedListIndex):
6845         (WebCore::HTMLSelectElement::deselectItems):
6846         (WebCore::HTMLSelectElement::setSelectedIndex):
6847         (WebCore::HTMLSelectElement::length):
6848         (WebCore::HTMLSelectElement::remove):
6849         (WebCore::HTMLSelectElement::value):
6850         (WebCore::HTMLSelectElement::setValue):
6851         (WebCore::HTMLSelectElement::saveFormControlState):
6852         (WebCore::HTMLSelectElement::restoreFormControlState):
6853         (WebCore::HTMLSelectElement::selectAll):
6854         (WebCore::HTMLSelectElement::appendFormData):
6855         (WebCore::HTMLSelectElement::optionToListIndex):
6856         (WebCore::HTMLSelectElement::listToOptionIndex):
6857         (WebCore::HTMLSelectElement::recalcListItems):
6858         (WebCore::HTMLSelectElement::reset):
6859         (WebCore::HTMLSelectElement::dispatchFocusEvent):
6860         (WebCore::HTMLSelectElement::dispatchBlurEvent):
6861         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
6862         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
6863         (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
6864         (WebCore::HTMLSelectElement::updateListBoxSelection):
6865         (WebCore::HTMLSelectElement::menuListOnChange):
6866         (WebCore::HTMLSelectElement::listBoxOnChange):
6867         (WebCore::HTMLSelectElement::saveLastSelection):
6868         (WebCore::HTMLSelectElement::typeAheadFind):
6869         (WebCore::HTMLSelectElement::nextSelectableListIndex):
6870         (WebCore::HTMLSelectElement::previousSelectableListIndex):
6871         (WebCore::HTMLSelectElement::setLength):
6872         (WebCore::HTMLSelectElement::checkListItems):
6873         * html/HTMLSelectElement.h:
6874         (WebCore::HTMLSelectElement::size):
6875         (WebCore::HTMLSelectElement::multiple):
6876         (WebCore::HTMLSelectElement::listItems):
6877         (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
6878         * platform/network/ResourceHandle.cpp:
6879         (WebCore::ResourceHandle::shouldContentSniffURL):
6880         * rendering/RenderFileUploadControl.cpp:
6881         (WebCore::RenderFileUploadControl::valueChanged):
6882         * rendering/RenderListBox.cpp:
6883         (WebCore::RenderListBox::RenderListBox):
6884         (WebCore::RenderListBox::updateFromElement):
6885         (WebCore::RenderListBox::scrollToRevealSelection):
6886         (WebCore::RenderListBox::size):
6887         (WebCore::RenderListBox::numItems):
6888         (WebCore::RenderListBox::paintItemForeground):
6889         (WebCore::RenderListBox::paintItemBackground):
6890         (WebCore::RenderListBox::panScroll):
6891         (WebCore::RenderListBox::autoscroll):
6892         (WebCore::RenderListBox::stopAutoscroll):
6893         (WebCore::RenderListBox::valueChanged):
6894         (WebCore::RenderListBox::nodeAtPoint):
6895         * rendering/RenderListBox.h:
6896         * rendering/RenderMenuList.cpp:
6897         (WebCore::RenderMenuList::RenderMenuList):
6898         (WebCore::RenderMenuList::updateOptionsWidth):
6899         (WebCore::RenderMenuList::updateFromElement):
6900         (WebCore::RenderMenuList::setTextFromOption):
6901         (WebCore::RenderMenuList::showPopup):
6902         (WebCore::RenderMenuList::valueChanged):
6903         (WebCore::RenderMenuList::itemText):
6904         (WebCore::RenderMenuList::itemIsEnabled):
6905         (WebCore::RenderMenuList::itemStyle):
6906         (WebCore::RenderMenuList::itemBackgroundColor):
6907         (WebCore::RenderMenuList::listSize):
6908         (WebCore::RenderMenuList::selectedIndex):
6909         (WebCore::RenderMenuList::itemIsSeparator):
6910         (WebCore::RenderMenuList::itemIsLabel):
6911         (WebCore::RenderMenuList::itemIsSelected):
6912         (WebCore::RenderMenuList::setTextFromItem):
6913         * rendering/RenderMenuList.h:
6914         * rendering/RenderSlider.cpp:
6915         (WebCore::RenderSlider::setValueForPosition):
6916
6917 2009-05-23  David Kilzer  <ddkilzer@apple.com>
6918
6919         Fix Gtk/Qt builds for PassOwnPtr
6920
6921         * platform/graphics/cairo/ImageCairo.cpp:
6922         (WebCore::Image::drawPattern): Use an OwnPtr<ImageBuffer>
6923         instead of an std::auto_ptr<ImageBuffer> to store the result of
6924         ImageBuffer::create() now that it returns a
6925         PassOwnPtr<ImageBuffer>.
6926         * platform/graphics/qt/PathQt.cpp:
6927         (WebCore::Path::strokeContains): Ditto.
6928         (WebCore::Path::strokeBoundingRect): Ditto.
6929
6930 2009-05-23  David Kilzer  <ddkilzer@apple.com>
6931
6932         Part 2 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr
6933
6934         <https://bugs.webkit.org/show_bug.cgi?id=25495>
6935
6936         Reviewed by Oliver Hunt.
6937
6938         No test cases added since there is no change in behavior.
6939
6940         * WebCore.base.exp: Updated export for
6941         HistoryItem::setRedirectURLs() which now takes a PassOwnPtr.
6942         * dom/Node.cpp:
6943         (WebCore::Node::childNodes): Use NodeListsNodeData::create()
6944         instead of new NodeListsNodeData.
6945         (WebCore::Node::registerDynamicNodeList): Ditto.
6946         (WebCore::Node::getElementsByTagNameNS): Ditto.
6947         (WebCore::Node::getElementsByName): Ditto.
6948         (WebCore::Node::getElementsByClassName): Ditto.
6949         * dom/NodeRareData.h:
6950         (WebCore::NodeListsNodeData::create): Added.  Implements
6951         create() pattern popularized by RefCounted classes.
6952         (WebCore::NodeListsNodeData::NodeListsNodeData): Declared
6953         private constructor.
6954         (WebCore::NodeRareData::setNodeLists): Now takes a PassOwnPtr<>
6955         instead of an auto_ptr<>.
6956         * history/HistoryItem.cpp:
6957         (WebCore::HistoryItem::setRedirectURLs): Ditto.
6958         * history/HistoryItem.h:
6959         (WebCore::HistoryItem::setRedirectURLs): Ditto.
6960         * html/CanvasRenderingContext2D.cpp:
6961         (WebCore::CanvasRenderingContext2D::drawTextInternal): Use
6962         OwnPtr<> instead of auto_ptr<> for stack variable.
6963         * html/HTMLCanvasElement.cpp:
6964         (WebCore::HTMLCanvasElement::createImageBuffer): Updated to use
6965         assignment operator now that ImageBuffer::create() returns a
6966         PassOwnPtr<>.
6967         * loader/EmptyClients.h:
6968         (WebCore::EmptyChromeClient::createHTMLParserQuirks): Return a
6969         PassOwnPtr<> instead of a raw HTMLParserQuirks pointer.
6970         * page/ChromeClient.h:
6971         (WebCore::ChromeClient::createHTMLParserQuirks): Ditto.
6972         * platform/graphics/GeneratedImage.cpp:
6973         (WebCore::GeneratedImage::drawPattern): Use OwnPtr<> instead of
6974         auto_ptr<> for stack variable.
6975         * platform/graphics/ImageBuffer.h:
6976         (WebCore::ImageBuffer::create): Return PassOwnPtr<> instead of
6977         auto_ptr<>.  Use OwnPtr<> instead of auto_ptr<> for stack
6978         variable.
6979         * platform/mac/ScrollbarThemeMac.mm:
6980         (WebCore::ScrollbarThemeMac::paint): Use OwnPtr<> instead of
6981         auto_ptr<> for stack variable.
6982         * platform/text/TextCodec.h:
6983         (WebCore::NewTextCodecFunction): Return PassOwnPtr<> instead of
6984         auto_ptr<>.
6985         * platform/text/TextCodecICU.cpp:
6986         (WebCore::newTextCodecICU): Ditto.
6987         * platform/text/TextCodecLatin1.cpp:
6988         (WebCore::newStreamingTextDecoderWindowsLatin1): Ditto.
6989         * platform/text/TextCodecUTF16.cpp:
6990         (WebCore::newStreamingTextDecoderUTF16LE): Ditto.
6991         (WebCore::newStreamingTextDecoderUTF16BE): Ditto.
6992         * platform/text/TextCodecUserDefined.cpp:
6993         (WebCore::newStreamingTextDecoderUserDefined): Ditto.
6994         * platform/text/TextEncodingRegistry.cpp:
6995         (WebCore::newTextCodec): Ditto.
6996         * platform/text/TextEncodingRegistry.h:
6997         (WebCore::newTextCodec): Ditto.
6998         * platform/text/mac/TextCodecMac.cpp:
6999         (WebCore::newTextCodecMac): Ditto.
7000         * rendering/RenderBoxModelObject.cpp:
7001         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use
7002         OwnPtr<> instead of auto_ptr<> for stack variable.
7003         * svg/SVGMaskElement.cpp:
7004         (WebCore::SVGMaskElement::drawMaskerContent): Ditto.  Return
7005         OwnPtr<> instead of auto_ptr<>.
7006         * svg/SVGMaskElement.h:
7007         (WebCore::SVGMaskElement::drawMaskerContent): Return OwnPtr<>
7008         instead of auto_ptr<>.
7009         * svg/SVGPatternElement.cpp:
7010         (WebCore::SVGPatternElement::buildPattern): Use OwnPtr<> instead
7011         of auto_ptr<> for stack variable.
7012         * svg/graphics/SVGImage.cpp:
7013         (WebCore::SVGImage::nativeImageForCurrentFrame): Updated to use
7014         assignment operator now that ImageBuffer::create() returns a
7015         PassOwnPtr<>.
7016         * svg/graphics/SVGPaintServerGradient.cpp:
7017         (WebCore::createMaskAndSwapContextForTextGradient): Use OwnPtr<>
7018         instead of auto_ptr<> for stack variable.
7019         * svg/graphics/SVGPaintServerPattern.cpp:
7020         (WebCore::SVGPaintServerPattern::setTile): Updated to take a
7021         PassOwnPtr<> instead of an auto_ptr<>.
7022         (WebCore::SVGPaintServerPattern::setup): Use OwnPtr<> instead of
7023         auto_ptr<> for stack variable.
7024         * svg/graphics/SVGPaintServerPattern.h:
7025         (WebCore::SVGPaintServerPattern::setTile): Updated to take a
7026         PassOwnPtr<> instead of an auto_ptr<>.
7027         * svg/graphics/SVGResourceMasker.cpp:
7028         (WebCore::SVGResourceMasker::applyMask): Updated to use
7029         assignment operator now that SVGMaskElement::drawMaskerContent()
7030         returns a PassOwnPtr<>.  Use OwnPtr<> instead of auto_ptr<> for
7031         stack variable.
7032
7033 2009-05-23  David Kilzer  <ddkilzer@apple.com>
7034
7035         Part 1 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr
7036
7037         <https://bugs.webkit.org/show_bug.cgi?id=25495>
7038
7039         Reviewed by Oliver Hunt.
7040
7041         * ForwardingHeaders/wtf/OwnPtrCommon.h: Added.
7042         * ForwardingHeaders/wtf/PassOwnPtr.h: Added.
7043         * WebCore.vcproj/WebCore.vcproj: Added OwnPtrCommon.h and
7044         PassOwnPtr.h.
7045
7046 2009-05-23  David Kilzer  <ddkilzer@apple.com>
7047
7048         Fix Mac builds by backing out r44093
7049
7050         * bindings/js/JSCustomPositionCallback.cpp:
7051         * bindings/js/JSCustomPositionCallback.h:
7052         * bindings/js/JSCustomPositionErrorCallback.cpp:
7053         * bindings/js/JSCustomPositionErrorCallback.h:
7054         * bindings/js/JSGeolocationCustom.cpp:
7055         * page/Geolocation.cpp:
7056         * page/Geolocation.idl:
7057         * page/Geoposition.cpp:
7058         * page/Geoposition.h:
7059         * page/Geoposition.idl:
7060         * page/Navigator.cpp:
7061         (WebCore::Navigator::disconnectFrame):
7062         (WebCore::Navigator::geolocation):
7063         * page/PositionError.idl:
7064         * platform/GeolocationService.cpp:
7065         (WebCore::GeolocationService::create):
7066
7067 2009-05-23  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
7068
7069         Reviewed by Eric Seidel.
7070
7071         Add GEOLOCATION guards around Geolocation API code
7072         https://bugs.webkit.org/show_bug.cgi?id=25756
7073
7074         * bindings/js/JSCustomPositionCallback.cpp:
7075         * bindings/js/JSCustomPositionCallback.h:
7076         * bindings/js/JSCustomPositionErrorCallback.cpp:
7077         * bindings/js/JSCustomPositionErrorCallback.h:
7078         * bindings/js/JSGeolocationCustom.cpp:
7079         * page/Geolocation.cpp:
7080         * page/Geolocation.idl:
7081         * page/Geoposition.cpp:
7082         * page/Geoposition.h:
7083         * page/Geoposition.idl:
7084         * page/Navigator.cpp:
7085         (WebCore::Navigator::disconnectFrame):
7086         (WebCore::Navigator::geolocation):
7087         * page/PositionError.idl:
7088         * platform/GeolocationService.cpp:
7089
7090 2009-05-23  David Kilzer  <ddkilzer@apple.com>
7091
7092         Rename startupdateStyleIfNeededDispatcher to startUpdateStyleIfNeededDispatcher
7093
7094         In r42377, startUpdateRenderingDispatcher() was renamed to
7095         startupdateStyleIfNeededDispatcher(), but the camelCase "U" was
7096         dropped.  This change restores it.
7097
7098         * WebCore.order:
7099         * page/animation/AnimationController.cpp:
7100         (WebCore::AnimationControllerPrivate::startUpdateStyleIfNeededDispatcher):
7101         (WebCore::AnimationControllerPrivate::addEventToDispatch):
7102         (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch):
7103         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
7104         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
7105         * page/animation/AnimationControllerPrivate.h:
7106
7107 2009-05-23  Holger Hans Peter Freyther  <zecke@selfish.org>
7108
7109         Unreviewed build-fix for Qt. Disable SVG Filters.
7110
7111         SVG Filters can not be built right now and Qt should not have
7112         them enabled anyway as they do not carry out any filtering.
7113
7114         * WebCore.pro:
7115
7116 2009-05-23  Dirk Schulze  <krit@webkit.org>
7117
7118         Unreviewed build-fix for gtk. Remove source input files
7119         for SVG filter system from the build for the moment and
7120         add them later again.
7121
7122         * GNUmakefile.am:
7123
7124 2009-05-23  Dirk Schulze  <krit@webkit.org>
7125
7126         Reviewed by Eric Seidel.
7127
7128         WebKit needs cross-platform filter system
7129         [https://bugs.webkit.org/show_bug.cgi?id=19991]
7130
7131         Preparing Filter primitves for the new filter system.
7132
7133         No testcases were added. SVG filters are off by default.
7134
7135         * GNUmakefile.am:
7136         * platform/graphics/filters/FEBlend.cpp:
7137         (WebCore::FEBlend::apply):
7138         * platform/graphics/filters/FEBlend.h:
7139         * platform/graphics/filters/FEColorMatrix.cpp:
7140         (WebCore::FEColorMatrix::apply):
7141         * platform/graphics/filters/FEColorMatrix.h:
7142         * platform/graphics/filters/FEComponentTransfer.cpp:
7143         (WebCore::FEComponentTransfer::apply):
7144         * platform/graphics/filters/FEComponentTransfer.h:
7145         * platform/graphics/filters/FEComposite.cpp:
7146         (WebCore::FEComposite::apply):
7147         * platform/graphics/filters/FEComposite.h:
7148         * svg/Filter.h:
7149         * svg/FilterBuilder.h:
7150         (WebCore::FilterBuilder::lastFilter):
7151         * svg/FilterEffect.cpp:
7152         (WebCore::FilterEffect::FilterEffect):
7153         * svg/FilterEffect.h:
7154         (WebCore::FilterEffect::xBoundingBoxMode):
7155         (WebCore::FilterEffect::setXBoundingBoxMode):
7156         (WebCore::FilterEffect::yBoundingBoxMode):
7157         (WebCore::FilterEffect::setYBoundingBoxMode):
7158         (WebCore::FilterEffect::widthBoundingBoxMode):
7159         (WebCore::FilterEffect::setWidthBoundingBoxMode):
7160         (WebCore::FilterEffect::heightBoundingBoxMode):
7161         (WebCore::FilterEffect::setHeightBoundingBoxMode):
7162         (WebCore::FilterEffect::subRegion):
7163         (WebCore::FilterEffect::setSubRegion):
7164         (WebCore::FilterEffect::resultImage):
7165         (WebCore::FilterEffect::setEffectBuffer):
7166         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
7167         (WebCore::FEConvolveMatrix::apply):
7168         * svg/graphics/filters/SVGFEConvolveMatrix.h:
7169         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
7170         (WebCore::FEDiffuseLighting::apply):
7171         * svg/graphics/filters/SVGFEDiffuseLighting.h:
7172         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
7173         (WebCore::FEDisplacementMap::apply):
7174         * svg/graphics/filters/SVGFEDisplacementMap.h:
7175         * svg/graphics/filters/SVGFEFlood.cpp:
7176         (WebCore::FEFlood::apply):
7177         * svg/graphics/filters/SVGFEFlood.h:
7178         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
7179         (WebCore::FEGaussianBlur::apply):
7180         * svg/graphics/filters/SVGFEGaussianBlur.h:
7181         * svg/graphics/filters/SVGFEImage.cpp:
7182         (WebCore::FEImage::apply):
7183         * svg/graphics/filters/SVGFEImage.h:
7184         * svg/graphics/filters/SVGFEMerge.cpp:
7185         (WebCore::FEMerge::apply):
7186         * svg/graphics/filters/SVGFEMerge.h:
7187         * svg/graphics/filters/SVGFEMorphology.cpp:
7188         (WebCore::FEMorphology::apply):
7189         * svg/graphics/filters/SVGFEMorphology.h:
7190         * svg/graphics/filters/SVGFEOffset.cpp:
7191         (WebCore::FEOffset::apply):
7192         * svg/graphics/filters/SVGFEOffset.h:
7193         * svg/graphics/filters/SVGFESpecularLighting.cpp:
7194         (WebCore::FESpecularLighting::apply):
7195         * svg/graphics/filters/SVGFESpecularLighting.h:
7196         * svg/graphics/filters/SVGFETile.cpp:
7197         (WebCore::FETile::apply):
7198         * svg/graphics/filters/SVGFETile.h:
7199         * svg/graphics/filters/SVGFETurbulence.cpp:
7200         (WebCore::FETurbulence::apply):
7201         * svg/graphics/filters/SVGFETurbulence.h:
7202
7203 2009-05-22  Dirk Schulze  <krit@webkit.org>
7204
7205         Unreviewed build-fix for gtk. Breakage caused by a wrong call of ImageBuffer.
7206
7207         * platform/graphics/cairo/ImageCairo.cpp:
7208         (WebCore::Image::drawPattern):
7209
7210 2009-05-22  Dirk Schulze  <vbs85@gmx.de>
7211
7212         Reviewed by Eric Seidel.
7213
7214         Added the use of tileRect() for a correct drawing of
7215         border-images.
7216
7217         Testcases for border-image are in fast/borders like
7218         border-image-01.html and will be activated for cairo, once
7219         gtk supports pixel tests.
7220
7221         https://bugs.webkit.org/show_bug.cgi?id=19652
7222         [CAIRO] wrong drawing of border-image
7223
7224         * platform/graphics/cairo/ImageCairo.cpp:
7225         (WebCore::Image::drawPattern):
7226
7227 2009-05-22  Holger Hans Peter Freyther  <zecke@selfish.org>
7228
7229         Reviewed by Maciej Stachowiak.
7230
7231         https://bugs.webkit.org/show_bug.cgi?id=25684
7232
7233         Ask the Scrollbar for the orientation.
7234
7235         Use Scrollbar::orientation to figure out the
7236         direction of scrolling.
7237
7238         * platform/ScrollView.cpp:
7239         (WebCore::ScrollView::valueChanged):
7240
7241 2009-05-22  Darin Adler  <darin@apple.com>
7242
7243         Reviewed by Dan Bernstein.
7244
7245         <rdar://problem/6916082> Incorrect handling of % as CSS value.
7246
7247         Test: fast/css/percent-character-as-value.html
7248
7249         * css/CSSGrammar.y: Make a stray % character reliably cause
7250         CSS parsing to succeed, but the CSS value to be ignored because
7251         of incorrect type. A type of 0 has this effect.
7252
7253 2009-05-22  Brent Fulgham  <bfulgham@webkit.org>
7254
7255         Reviewed by Adam Roben.
7256
7257         https://bugs.webkit.org/show_bug.cgi?id=25971
7258         Correct a handful of build errors in the Windows Cairo variant
7259         due to missing VIDEO support.
7260
7261         * WebCore.vcproj/WebCore.vcproj: Exclude RenderMediaControls for
7262           the Cairo-based Windows target.
7263         * rendering/RenderThemeWin.cpp: Avoid #include of RenderMediaControls
7264           for non-VIDEO builds.
7265
7266 2009-05-22  David Kilzer  <ddkilzer@apple.com>
7267
7268         One <limits> is enough
7269
7270         * html/HTMLMediaElement.cpp: Removed duplicate #include <limits>.
7271
7272 2009-05-22  Jon Honeycutt  <jhoneycutt@apple.com>
7273
7274         <rdar://problem/6915957> REGRESSION: Hang when leaving page with VLC
7275         plug-in
7276
7277         Reviewed by Steve Falkenburg.
7278
7279         * plugins/win/PluginPackageWin.cpp:
7280         (WebCore::PluginPackage::determineQuirks):
7281         Look for the VLC plug-in's new name.
7282
7283 2009-05-22  Adam Barth  <abarth@webkit.org>
7284
7285         Reviewed by Darin Fisher.
7286
7287         https://bugs.webkit.org/show_bug.cgi?id=25966
7288
7289         Remove redudant member from Chromium's ResourceRequest.  We already
7290         have this data in the cross-platform ResourceRequestBase.  Also, rename
7291         ChromiumBridge parameter to be consistant with the new name for this
7292         piece of data.
7293
7294         * platform/chromium/ChromiumBridge.h:
7295         * platform/network/chromium/ResourceRequest.h:
7296
7297 2009-05-22  Kevin Watters  <kevinwatters@gmail.com>
7298
7299         Reviewed by Kevin Ollivier.
7300
7301         Only account for overhang for multi-character strings.
7302         
7303         https://bugs.webkit.org/show_bug.cgi?id=25961
7304
7305         * platform/wx/wxcode/win/fontprops.cpp:
7306         (GetTextExtent):
7307
7308 2009-05-22  Kevin Ollivier  <kevino@theolliviers.com>
7309
7310         wx build fix. Switch to CURL cookies so we can benefit from API updates.
7311
7312         * platform/wx/TemporaryLinkStubs.cpp:
7313         * webcore-wx.bkl:
7314
7315 2009-05-22  Peter Kasting  <pkasting@google.com>
7316
7317         Reviewed by Darin Fisher.
7318
7319         https://bugs.webkit.org/show_bug.cgi?id=25709 part one
7320         Indent contents of namespaces in header files, to comply with the
7321         style guide.  No functional change.
7322
7323         * platform/image-decoders/ImageDecoder.h:
7324         (WebCore::RGBA32Buffer::):
7325         (WebCore::RGBA32Buffer::RGBA32Buffer):
7326         (WebCore::RGBA32Buffer::clear):
7327         (WebCore::RGBA32Buffer::bytes):
7328         (WebCore::RGBA32Buffer::rect):
7329         (WebCore::RGBA32Buffer::height):
7330         (WebCore::RGBA32Buffer::status):
7331         (WebCore::RGBA32Buffer::duration):
7332         (WebCore::RGBA32Buffer::disposalMethod):
7333         (WebCore::RGBA32Buffer::hasAlpha):
7334         (WebCore::RGBA32Buffer::setRect):
7335         (WebCore::RGBA32Buffer::ensureHeight):
7336         (WebCore::RGBA32Buffer::setStatus):
7337         (WebCore::RGBA32Buffer::setDuration):
7338         (WebCore::RGBA32Buffer::setDisposalMethod):
7339         (WebCore::RGBA32Buffer::setHasAlpha):
7340         (WebCore::RGBA32Buffer::setRGBA):
7341         (WebCore::ImageDecoder::m_failed):
7342         (WebCore::ImageDecoder::~ImageDecoder):
7343         (WebCore::ImageDecoder::setData):
7344         (WebCore::ImageDecoder::size):
7345         (WebCore::ImageDecoder::frameCount):
7346         (WebCore::ImageDecoder::repetitionCount):
7347         (WebCore::ImageDecoder::supportsAlpha):
7348         (WebCore::ImageDecoder::failed):
7349         (WebCore::ImageDecoder::setFailed):
7350         (WebCore::ImageDecoder::clearFrameBufferCache):
7351         * platform/image-decoders/bmp/BMPImageDecoder.h:
7352         (WebCore::BMPImageDecoder::filenameExtension):
7353         * platform/image-decoders/gif/GIFImageDecoder.h:
7354         (WebCore::GIFImageDecoder::filenameExtension):
7355         (WebCore::GIFImageDecoder::frameDurationAtIndex):
7356         (WebCore::GIFImageDecoder::):
7357         * platform/image-decoders/ico/ICOImageDecoder.h:
7358         (WebCore::ICOImageDecoder::filenameExtension):
7359         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
7360         (WebCore::JPEGImageDecoder::filenameExtension):
7361         (WebCore::JPEGImageDecoder::supportsAlpha):
7362         (WebCore::JPEGImageDecoder::reader):
7363         (WebCore::JPEGImageDecoder::setSize):
7364         * platform/image-decoders/png/PNGImageDecoder.h:
7365         (WebCore::PNGImageDecoder::filenameExtension):
7366         (WebCore::PNGImageDecoder::reader):
7367         (WebCore::PNGImageDecoder::decodingFailed):
7368         * platform/image-decoders/xbm/XBMImageDecoder.h:
7369         (WebCore::XBMImageDecoder::filenameExtension):
7370
7371 2009-05-22  Dominik Röttsches  <dominik.roettsches@access-company.com>
7372
7373         Reviewed by Gustavo Noronha.
7374
7375         https://bugs.webkit.org/show_bug.cgi?id=15914
7376         [GTK] Implement Unicode functionality using GLib
7377
7378         Minor changes that allow building a hybrid version of WebKit
7379         that has WTF Unicode backend based on GLib functions while
7380         text codecs and TextBreakIterator remain based on ICU.
7381
7382         Fixed some includes that were assuming a WTF ICU backend and
7383         introduced temporary usage of WTF_USE_GLIB_ICU_UNICODE_HYBRID
7384         macro.
7385
7386         * platform/ThreadGlobalData.cpp:
7387         (WebCore::ThreadGlobalData::ThreadGlobalData):
7388         (WebCore::ThreadGlobalData::~ThreadGlobalData):
7389         * platform/ThreadGlobalData.h:
7390         * platform/text/TextBoundariesICU.cpp:
7391         * platform/text/TextCodecICU.h:
7392         * platform/text/TextEncoding.cpp:
7393         (WebCore::TextEncoding::encode):
7394         * platform/text/TextEncodingRegistry.cpp:
7395         (WebCore::buildBaseTextCodecMaps):
7396         (WebCore::extendTextCodecMaps):
7397
7398 2009-05-22  Adam Barth  <abarth@webkit.org>
7399
7400         Reviewed by Maciej Stachowiak.
7401
7402         https://bugs.webkit.org/show_bug.cgi?id=25955
7403
7404         Remove the policyBaseURL parameter from setCookie.  This parameter is
7405         redundant with the document parameter.
7406
7407         * WebCore.base.exp:
7408         * WebCore.order:
7409         * dom/Document.cpp:
7410         (WebCore::Document::setCookie):
7411         * platform/CookieJar.h:
7412         * platform/mac/CookieJar.mm:
7413         (WebCore::setCookies):
7414         * platform/network/chromium/CookieJarChromium.cpp:
7415         (WebCore::setCookies):
7416         * platform/network/curl/CookieJarCurl.cpp:
7417         (WebCore::setCookies):
7418         * platform/network/soup/CookieJarSoup.cpp:
7419         (WebCore::setCookies):
7420         * platform/network/win/CookieJarCFNetWin.cpp:
7421         (WebCore::setCookies):
7422         * platform/network/win/CookieJarWin.cpp:
7423         (WebCore::setCookies):
7424         * platform/qt/CookieJarQt.cpp:
7425         (WebCore::setCookies):
7426
7427 2009-05-22  Adam Barth  <abarth@webkit.org>
7428
7429         Reviewed by Maciej Stachowiak.
7430
7431         https://bugs.webkit.org/show_bug.cgi?id=25955
7432
7433         Rename policyBaseURL and mainDocumentURL to firstPartyForCookies.  The
7434         previous names were confusing and inaccurate.
7435
7436         * WebCore.order:
7437         * dom/Document.cpp:
7438         (WebCore::Document::setCookie):
7439         * dom/Document.h:
7440         (WebCore::Document::firstPartyForCookies):
7441         (WebCore::Document::setFirstPartyForCookies):
7442         * loader/FrameLoader.cpp:
7443         (WebCore::FrameLoader::begin):
7444         (WebCore::FrameLoader::updateFirstPartyForCookies):
7445         (WebCore::FrameLoader::setFirstPartyForCookies):
7446         (WebCore::FrameLoader::open):
7447         (WebCore::FrameLoader::addExtraFieldsToRequest):
7448         (WebCore::FrameLoader::loadResourceSynchronously):
7449         * loader/FrameLoader.h:
7450         * loader/MainResourceLoader.cpp:
7451         (WebCore::MainResourceLoader::willSendRequest):
7452         (WebCore::ResourceRequestBase::adopt):
7453         (WebCore::ResourceRequestBase::copyData):
7454         (WebCore::ResourceRequestBase::firstPartyForCookies):
7455         (WebCore::ResourceRequestBase::setFirstPartyForCookies):
7456         (WebCore::equalIgnoringHeaderFields):
7457         * platform/network/ResourceRequestBase.h:
7458         * platform/network/cf/ResourceRequestCFNet.cpp:
7459         (WebCore::ResourceRequest::doUpdatePlatformRequest):
7460         (WebCore::ResourceRequest::doUpdateResourceRequest):
7461         * platform/network/chromium/CookieJarChromium.cpp:
7462         (WebCore::setCookies):
7463         * platform/network/mac/ResourceRequestMac.mm:
7464         (WebCore::ResourceRequest::doUpdateResourceRequest):
7465         (WebCore::ResourceRequest::doUpdatePlatformRequest):
7466         * platform/network/ResourceRequestBase.cpp:
7467         (WebCore::ResourceRequestBase::firstPartyForCookies):
7468         (WebCore::ResourceRequestBase::setFirstPartyForCookies):
7469         * platform/network/chromium/CookieJarChromium.cpp:
7470         (WebCore::setCookies):
7471         * platform/network/curl/CookieJarCurl.cpp:
7472         (WebCore::setCookies):
7473         * platform/network/soup/CookieJarSoup.cpp:
7474         (WebCore::setCookies):
7475         * platform/network/win/CookieJarCFNetWin.cpp:
7476         (WebCore::setCookies):
7477         * platform/network/win/CookieJarWin.cpp:
7478         (WebCore::setCookies):
7479         * platform/qt/CookieJarQt.cpp:
7480         (WebCore::setCookies):
7481
7482 2009-05-22  Pavel Feldman  <pfeldman@chromium.org>
7483
7484         Fix the call to editingCancelled to be this._editingCancelled, since
7485         editingCancelled doesn't exist and throws an exception.
7486
7487         <https://bugs.webkit.org/show_bug.cgi?id=24881>
7488
7489         Reviewed by Timothy Hatcher.
7490
7491         * inspector/front-end/ElementsTreeOutline.js:
7492         (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):
7493
7494 2009-05-22  Alexey Proskuryakov  <ap@webkit.org>
7495
7496         Reviewed by Eric Seidel.
7497
7498         https://bugs.webkit.org/show_bug.cgi?id=25928
7499         Several errors detected by cppcheck
7500
7501         Fix all (the only one) problem in cross-platform code found by the tool. Port maintainers
7502         should take a look at other reports.
7503
7504         * css/CSSParser.cpp: (WebCore::CSSParser::addProperty): Don't leak the property even if there
7505         are billions of those.
7506
7507 2009-05-22  Shinichiro Hamaji  <hamaji@google.com>
7508
7509         Reviewed by Oliver Hunt.
7510
7511         Remove optimization path alpha=0 case from GraphicContext(CG|Skia).
7512         This optimization doesn't make sense for some composite mode (e.g., 'copy' operation).
7513
7514         https://bugs.webkit.org/show_bug.cgi?id=25956
7515
7516         * platform/graphics/cg/GraphicsContextCG.cpp:
7517         (WebCore::GraphicsContext::drawRect):
7518         (WebCore::GraphicsContext::drawLine):
7519         (WebCore::GraphicsContext::strokeArc):
7520         (WebCore::GraphicsContext::drawConvexPolygon):
7521         (WebCore::GraphicsContext::fillPath):
7522         (WebCore::GraphicsContext::strokePath):
7523         (WebCore::GraphicsContext::fillRect):
7524         (WebCore::GraphicsContext::fillRoundedRect):
7525         (WebCore::GraphicsContext::strokeRect):
7526         * platform/graphics/skia/GraphicsContextSkia.cpp:
7527         (WebCore::GraphicsContext::drawConvexPolygon):
7528         (WebCore::GraphicsContext::drawEllipse):
7529         (WebCore::GraphicsContext::fillPath):
7530         (WebCore::GraphicsContext::fillRect):
7531         (WebCore::GraphicsContext::strokePath):
7532         (WebCore::GraphicsContext::strokeRect):
7533
7534 2009-05-22  Xan Lopez  <xlopez@igalia.com>
7535
7536         Unreviewed build fix.
7537
7538         Revert the whole thing, since we can't figure out a way to make it
7539         work in all platforms.
7540
7541         * rendering/SVGInlineTextBox.cpp:
7542         (WebCore::pathForDecoration):
7543         * svg/SVGLength.cpp:
7544         (WebCore::SVGLength::PercentageOfViewport):
7545
7546 2009-05-22  Xan Lopez  <xlopez@igalia.com>
7547
7548         Try to fix Windows build.
7549
7550         Apparently it can't tell if '1.0f' is float or double, so cast to
7551         float.
7552
7553         * rendering/SVGInlineTextBox.cpp:
7554         (WebCore::pathForDecoration):
7555
7556 2009-05-22  Xan Lopez  <xlopez@igalia.com>
7557
7558         Try to fix breakage from the previous patch.
7559
7560         * rendering/SVGInlineTextBox.cpp:
7561         (WebCore::pathForDecoration):
7562         * svg/SVGLength.cpp:
7563         (WebCore::SVGLength::PercentageOfViewport):
7564
7565 2009-05-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
7566
7567         Reviewed by Maciej Stachowiak.
7568
7569         https://bugs.webkit.org/show_bug.cgi?id=25805
7570         In debug build, mingw win32 build has problems with powf
7571
7572         Change C-style calls to powf and sqrtf to C++-style calls to
7573         overloaded pow and sqrt. This solves also a problem with mingw
7574         compiler during the debug build.
7575
7576         * rendering/SVGInlineTextBox.cpp:
7577         (WebCore::pathForDecoration):
7578         * svg/SVGLength.cpp:
7579         (WebCore::SVGLength::PercentageOfViewport):
7580
7581 2009-05-21  Stephanie Lewis  <slewis@apple.com>
7582
7583         Reviewed by Mark Rowe.
7584
7585         <rdar://problem/6913680> Update image caching options.
7586         Disable extra ImageIO cache because we already handle caching decoded image data.
7587
7588         * platform/graphics/cg/ImageSourceCG.cpp:
7589         (WebCore::imageSourceOptions):
7590
7591 2009-05-21  Albert J. Wong  <ajwong@chromium.org>
7592
7593         Reviewed by Eric Seidel.
7594
7595         Bug 25903: Create a default UI theme for media controls in Chromium.
7596         https://bugs.webkit.org/show_bug.cgi?id=25903
7597
7598         Implement a default UI for chromium.  Add a style sheet for Chromium
7599         media controls with good defaults and implemented basic draw functions
7600         for play/pause & mute buttons.
7601
7602         * css/mediaControlsChromium.css: Added.
7603         * rendering/RenderThemeChromiumLinux.cpp:
7604         (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): Export
7605         our custom media controls style sheet.
7606         (WebCore::RenderThemeChromiumLinux::paintMediaButtonInternal): Paint
7607         buttons respecting chromium media controls color scheme.
7608         (WebCore::RenderThemeChromiumLinux::paintMediaPlayButton): Paint logic
7609         specific to play/pause button.
7610         (WebCore::RenderThemeChromiumLinux::paintMediaMuteButton): Paint
7611         specific to mute button.
7612         * rendering/RenderThemeChromiumLinux.h: Appropriate header changes.
7613         * rendering/RenderThemeChromiumWin.cpp:
7614         (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): Export
7615         our custom media controls style sheet.
7616         (WebCore::RenderThemeChromiumWin::paintMediaButtonInternal): Paint
7617         buttons respecting chromium media controls color scheme.
7618         (WebCore::RenderThemeChromiumWin::paintMediaPlayButton): Paint logic
7619         specific to play/pause button.
7620         (WebCore::RenderThemeChromiumWin::paintMediaMuteButton): Paint specific
7621         to mute button.
7622         (WebCore::RenderThemeChromiumWin::setDefaultFontSize): Appropriate
7623         header changes.
7624         * rendering/RenderThemeChromiumWin.h:
7625
7626 2009-05-21  Kevin Watters  <kevinwatters@gmail.com>
7627
7628         Reviewed by Kevin Ollivier.
7629
7630         When stripping the query from a file:// URL, do not leave a trailing question mark.
7631         
7632         https://bugs.webkit.org/show_bug.cgi?id=25940
7633
7634         * platform/network/curl/ResourceHandleManager.cpp:
7635         (WebCore::ResourceHandleManager::initializeHandle):
7636
7637 2009-05-21  Kevin Watters  <kevinwatters@gmail.com>
7638
7639         Reviewed by Kevin Ollivier.
7640
7641         Notify ImageObserver::didDraw to help the cache purge alive resources.
7642
7643         https://bugs.webkit.org/show_bug.cgi?id=25942
7644
7645         * platform/graphics/wx/ImageWx.cpp:
7646         (WebCore::BitmapImage::draw):
7647         (WebCore::BitmapImage::drawPattern):
7648
7649 2009-05-21  Evan Martin  <evan@chromium.org>
7650
7651         Reviewed by Eric Seidel.
7652
7653         Flesh out font fallback for Chromium's Skia port.
7654         getLastResortFallbackFont should fall back on well-known fonts.
7655         https://bugs.webkit.org/show_bug.cgi?id=25860
7656
7657         * platform/graphics/chromium/FontCacheLinux.cpp:
7658         (WebCore::FontCache::getLastResortFallbackFont): try known font names.
7659
7660 2009-05-21  Dan Bernstein  <mitz@apple.com>
7661
7662         Reviewed by John Sullivan.
7663
7664         - speculative fix for <rdar://problem/6890716> crash at
7665           FontCache::purgeInactiveFontData + 199
7666
7667         * platform/graphics/FontCache.cpp:
7668         (WebCore::FontCache::purgeInactiveFontData): Deleting a SimpleFontData
7669         can cause releaseFontData() to be called, which modifies
7670         gInactiveFontData. Therefore, avoid deleting SimpleFontData instances
7671         while iterating over gInactiveFontData and delete them afterwards.
7672
7673 2009-05-21  Geoffrey Garen  <ggaren@apple.com>
7674
7675         Reviewed by Sam Weinig.
7676         
7677         Test for <rdar://problem/6910832> | https://bugs.webkit.org/show_bug.cgi?id=25907
7678         Incorrect URL returned to the DOM while the user drags a file
7679
7680         * page/DragController.cpp:
7681         (WebCore::DragController::dragExited):
7682         (WebCore::DragController::tryDHTMLDrag): Don't base our decision on KURL,
7683         since that only looks at the text of the document's URL. Do base our
7684         decision on the securityOrigin(), which knows more about the document's
7685         actual origin.
7686
7687 2009-05-21  Dan Bernstein  <mitz@apple.com>
7688
7689         Rubber-stamped by Mark Rowe.
7690
7691         - fix https://bugs.webkit.org/show_bug.cgi?id=25947
7692           Assertion failure in FrameLoader::transitionToCommitted on launch in
7693           Safari with r43985
7694
7695         Rolled out r43979.
7696
7697         * platform/MIMETypeRegistry.cpp:
7698         (WebCore::initializeSupportedNonImageMimeTypes):
7699         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
7700
7701 2009-05-21  Sam Weinig  <sam@webkit.org>
7702
7703         Reviewed by Brady Eidson and Mark Rowe.
7704
7705         Fix for <rdar://problem/6901522>
7706         REGRESSION: Office 2008: Preview with browser is not shown, and Finder window is in the front of Safari
7707
7708         If the NSURLRequest is annotated with a "ForceHTMLMIMEType" property, force
7709         the MIME type to be text/html.
7710
7711         * platform/network/mac/ResourceHandleMac.mm:
7712         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
7713
7714 2009-05-21  Kevin Ollivier  <kevino@theolliviers.com>
7715
7716         Blind windows fix after last commit.
7717
7718         * platform/Logging.cpp:
7719         (WebCore::getChannelFromName):
7720
7721 2009-05-21  Kevin Watters  <kevinwatters@gmail.com>
7722
7723         Reviewed by Kevin Ollivier.
7724
7725         Use an environment variable to control which logs are on and off.
7726         Also, make a generic function for translating channel name to its log.
7727         
7728         https://bugs.webkit.org/show_bug.cgi?id=25936
7729
7730         * platform/Logging.cpp:
7731         (WebCore::getChannelFromName):
7732         * platform/Logging.h:
7733         * platform/wx/LoggingWx.cpp:
7734         (WebCore::InitializeLoggingChannelsIfNecessary):
7735
7736 2009-05-21  David Levin  <levin@chromium.org>
7737
7738         Reviewed by Darin Fisher.
7739
7740         Bug 25946: Chromium needs MIMETypeRegistry::getMediaMIMETypeForExtension implementation.
7741         https://bugs.webkit.org/show_bug.cgi?id=25946
7742
7743         A very simple implementation to keep it working.  A bug has been filed in the chromium db
7744         (http://code.google.com/p/chromium/issues/detail?id=12441) to investigate doing something more
7745         complete.
7746
7747         * platform/chromium/MimeTypeRegistryChromium.cpp:
7748         (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension):
7749
7750 2009-05-20  Siddhartha Chattopadhyaya  <sidchat@google.com>
7751
7752         Reviewed by Justin Garcia.
7753         
7754         Add automatic spell correction support in WebKit
7755
7756         https://bugs.webkit.org/show_bug.cgi?id=24953
7757
7758         * editing/Editor.cpp:
7759         (WebCore::findFirstMisspellingInRange):
7760         (WebCore::Editor::advanceToNextMisspelling):
7761         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
7762         (WebCore::markAllMisspellingsInRange):
7763         (WebCore::markMisspellingsOrBadGrammar):
7764         (WebCore::Editor::markMisspellings):
7765         (WebCore::Editor::markBadGrammar):
7766         (WebCore::Editor::markMisspellingsAndBadGrammar):
7767         * editing/Editor.h:
7768         * loader/EmptyClients.h:
7769         (WebCore::EmptyEditorClient::getAutoCorrectSuggestionForMisspelledWord):
7770         * page/EditorClient.h:
7771
7772 2009-05-21  Christian Dywan  <christian@twotoasts.de>
7773
7774         Reviewed by Darin Adler.
7775
7776         Text files which have sub MIME types are treated as not displayable
7777         http://bugs.webkit.org/show_bug.cgi?id=24903
7778
7779         * platform/MIMETypeRegistry.cpp:
7780         (WebCore::initializeSupportedNonImageMimeTypes):
7781         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType): Regard any
7782         MIME type beginning with "text/" as supported and remove all "text/"
7783         types from the list.
7784
7785 2009-05-21  Alexey Proskuryakov  <ap@webkit.org>
7786
7787         Reviewed by David Kilzer.
7788
7789         https://bugs.webkit.org/show_bug.cgi?id=25890
7790         Implement Network logging channel on Mac
7791
7792         * platform/network/mac/ResourceHandleMac.mm:
7793         (WebCore::ResourceHandle::~ResourceHandle):
7794         (WebCore::ResourceHandle::start):
7795         (WebCore::ResourceHandle::cancel):
7796         (WebCore::ResourceHandle::setDefersLoading):
7797         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
7798         (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
7799         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
7800         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
7801         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
7802         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
7803         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
7804         (-[WebCoreResourceHandleAsDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]):
7805         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
7806         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
7807         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
7808         Added logging for async requests (as these are most interesting).
7809
7810 2009-05-21  Eric Carlson  <eric.carlson@apple.com>
7811
7812         Reviewed by David Kilzer.
7813
7814         <rdar://problem/6902197> WebCore doesn't know about all of the MIME types supported by QTKit
7815         
7816         Add a static table to map from some common file extensions to their MIME types so it
7817         is possible to detect support even when the platform mapping is incomplete. Use the
7818         table to lookup types not found by UTI on the OSX, and when looking for a media engine
7819         with a generic or missing type.
7820
7821         * platform/MIMETypeRegistry.cpp:
7822         (WebCore::initializeMediaTypeMaps): New, initialize the mediaMIMETypeForExtensionMap.
7823         (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): New. Look for the specified
7824         MIME type in the static mapping table if the platform specific getMIMETypeForExtension
7825         doesn't find a match.
7826         * platform/MIMETypeRegistry.h: Declare getMediaMIMETypeForExtension.
7827
7828         * platform/graphics/MediaPlayer.cpp:
7829         (WebCore::MediaPlayer::load): When the type passed is empty, "application/octet-stream", or
7830         "text/plain", try to look it up based on the file extension with getMediaMIMETypeForExtension.
7831
7832         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
7833         (WebCore::addFileTypesToCache): See if getMediaMIMETypeForExtension can map from file extension
7834         to MIME type if UTI fails.
7835
7836 2009-05-21  Eric Seidel  <eric@webkit.org>
7837
7838         Reviewed by Alexey Proskuryakov.
7839
7840         Clean up DragController
7841         https://bugs.webkit.org/show_bug.cgi?id=25926
7842
7843         I renamed m_document to m_documentUnderMouse to better document what it does
7844         I could call it m_lastDocumentUnderMouse to be most-accurate, but this seemed
7845         long enough.
7846
7847         I also saw copy/paste code involving clearing the selection when moving out of
7848         one document and into another.  I moved that code into a function called
7849         mouseMovedIntoDocument.
7850
7851         I also got rid of a couple needless null-checks after confirming via source
7852         inspection they were not ever possible.
7853         In Mac WebKit it's not possible to have a Page that doesn't have a mainFrame()
7854         I left an ASSERT(m_page->mainFrame()) in case some other port ever violates this.
7855         It's also not possible to return a document from documentAtPoint that is not
7856         in a frame (as such a document would not be rendered).
7857
7858         No functional changes, thus no tests.
7859
7860         * page/DragController.cpp:
7861         (WebCore::DragController::DragController):
7862         (WebCore::DragController::dragIsMove):
7863         (WebCore::DragController::dragExited):
7864         (WebCore::DragController::performDrag):
7865         (WebCore::DragController::mouseMovedIntoDocument):
7866         (WebCore::DragController::dragEnteredOrUpdated):
7867         (WebCore::DragController::tryDocumentDrag):
7868         (WebCore::DragController::operationForLoad):
7869         (WebCore::DragController::concludeEditDrag):
7870         (WebCore::DragController::canProcessDrag):
7871         (WebCore::DragController::tryDHTMLDrag):
7872         (WebCore::DragController::placeDragCaret):
7873         * page/DragController.h:
7874         (WebCore::DragController::documentUnderMouse):
7875
7876 2009-05-21  Eric Seidel  <eric@webkit.org>
7877
7878         Reviewed by Alexey Proskuryakov.
7879
7880         Rename DragController::dragOperation() to sourceDragOperation() for clarity
7881         Remove unused setDragOperation()
7882
7883         There are two times DragOperation is used.  The source specifies
7884         what drag operations it supports (in a mask) and the destination
7885         picks a subset of those as DragOperations it supports if a drop were
7886         to occur.  I was confused when I first saw this accessor as to which
7887         it meant.  It turns out that this is only used when WebKit starts a
7888         drag, and we keep it around so that we can provide this information
7889         to other Mac OS X applications when they ask.  I've renamed the method
7890         for clarity so the next person in this code will be less confused.
7891
7892         No functional changes, thus no tests.
7893
7894         * page/DragController.h:
7895         (WebCore::DragController::sourceDragOperation):
7896
7897 2009-05-21  Dan Bernstein  <mitz@apple.com>
7898
7899         Reviewed by Anders Carlsson.
7900
7901         - WebCore part of <rdar://problem/6901751> REGRESSION (r35515): Tiger
7902           crash painting the selection on registration page of car2go.com
7903
7904         A bug in old versions of Core Graphics causes memory corruption to occur
7905         when clipping under certain conditions. Make the clipping functions
7906         fail silently under those conditions.
7907
7908         Test: fast/block/float/selection-gap-clip-out-tiger-crash.html
7909
7910         * WebCore.Tiger.exp: Added wkCGContextIsSafeToClip
7911         * platform/graphics/cg/GraphicsContextCG.cpp:
7912         (WebCore::safeCGContextClip): Added a wrapper around CGContextClip that,
7913         on Tiger, bails out if wkCGContextIsSafeToClip() returns false.
7914         (WebCore::safeCGContextEOClip): Ditto for CGContextEOClip.
7915         (WebCore::safeCGContextClipToRect): Ditto for CGContextClipToRect.
7916         (WebCore::GraphicsContext::fillPath): Changed to call the safe variants
7917         of CGContextClip, CGContextEOClip and CGContextClipToRect.
7918         (WebCore::GraphicsContext::strokePath): Ditto.
7919         (WebCore::GraphicsContext::fillRect): Ditto.
7920         (WebCore::GraphicsContext::clip): Ditto.
7921         (WebCore::GraphicsContext::clipOut): Ditto.
7922         (WebCore::GraphicsContext::clipOutEllipseInRect): Ditto.
7923         (WebCore::GraphicsContext::clipPath): Ditto.
7924         (WebCore::GraphicsContext::addInnerRoundedRectClip): Ditto.
7925         (WebCore::GraphicsContext::strokeRect): Ditto.
7926         * platform/mac/WebCoreSystemInterface.h: Added wkCGContextIsSafeToClip.
7927         * platform/mac/WebCoreSystemInterface.mm: Added wkCGContextIsSafeToClip.
7928
7929 2009-05-21  Xan Lopez  <xlopez@igalia.com>
7930
7931         Unreviewed build fix.
7932
7933         https://bugs.webkit.org/show_bug.cgi?id=25910
7934         WebkitGTK r43960 cannot compile
7935
7936         Do not include local copy of guriescape header, which was
7937         removed. We now use the copy in glib.
7938
7939         * platform/gtk/FileSystemGtk.cpp:
7940
7941 2009-05-20  Adam Barth  <abarth@webkit.org>
7942
7943         Reviewed by Dimitri Glazkov.
7944
7945         https://bugs.webkit.org/show_bug.cgi?id=25706
7946
7947         It turns out the CurrentContext wasn't currect either because it gave
7948         us the frame for the write() function itself.  We actually want the
7949         *calling* context.
7950
7951         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
7952         (WebCore::CALLBACK_FUNC_DECL):
7953
7954 2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>
7955
7956         Reviewed by Gustavo Noronha.
7957
7958         [GTK] Implement Image::loadPlatformResource.
7959
7960         Install the four resources we are using. For the icons
7961         where an icon name is specified by freedeskop.org try to
7962         map the WebCore name to that name and fallback to the
7963         internal icon. For everything else use the internal icon
7964         name. Remove the temporary link stub as this is not
7965         required any more.
7966
7967         * GNUmakefile.am: Install the png files, set DATA_DIR again
7968         * Resources/panIcon.png: Copied from WebKit/win/WebKit.vcproj/panIcon.png.
7969         * platform/graphics/gtk/ImageGtk.cpp:
7970         (WTF::GtkIconInfo): Add template specialization for GtkIconInfo
7971         (WebCore::getIconFileNameOrFallback): Use GtkIconTheme to get the icon
7972         (WebCore::loadResourceIntoSharedBuffer):
7973         (WebCore::Image::loadPlatformResource): Implement
7974         * platform/gtk/TemporaryLinkStubs.cpp: Remove link stub
7975
7976 2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>
7977
7978         Reviewed by Gustavo Noronha.
7979
7980         https://bugs.webkit.org/show_bug.cgi?id=19357
7981
7982         [GTK] The Gtk+ port wants to have a themable
7983         urlIcon too.
7984
7985         * loader/icon/IconDatabase.cpp:
7986
7987 2009-05-20  Stephanie Lewis  <slewis@apple.com>
7988
7989         Update the order files.  <rdar://problem/6881750> Generate new order files.
7990
7991         * WebCore.order:
7992
7993 2009-05-20  Mark Rowe  <mrowe@apple.com>
7994
7995         Reviewed by Gavin Barraclough.
7996
7997         Fix some assertion failures in plug-in tests on the Windows debug build bot.
7998
7999         * plugins/PluginStream.cpp:
8000         (WebCore::PluginStream::startStream): Switch to using protocolIsJavaScript.
8001         * plugins/PluginView.cpp:
8002         (WebCore::scriptStringIfJavaScriptURL): Ditto.
8003
8004 2009-05-20  Brady Eidson  <beidson@apple.com>
8005
8006         Reviewed by Darin Adler.
8007
8008         More protocolInHTTPFamily() cleanup.
8009
8010         * xml/XMLHttpRequest.cpp:
8011         (WebCore::XMLHttpRequest::send):
8012
8013 2009-05-20  Sam Weinig  <sam@webkit.org>
8014
8015         Reviewed by Oliver Hunt.
8016
8017         Fix for <rdar://problem/6905475>
8018         Office 2008: Entourage: Crash when you switch to "My Day" view
8019
8020         The host function callback callObjCFallbackObject was not annotated
8021         with JSC_HOST_CALL which meant that when it was called by the JIT, which
8022         expects the JSC_HOST_CALL calling convention, the arguments are not in the
8023         expected places.
8024
8025         * bridge/objc/objc_runtime.mm:
8026         (JSC::Bindings::callObjCFallbackObject): Added missing JSC_HOST_CALL
8027         annotation on callObjCFallbackObject.
8028
8029 2009-05-20  David Levin  <levin@chromium.org>
8030
8031         Not Reviewed, build fix.
8032
8033         Need to disable this assert while the chormium code is fixed for it.
8034
8035         * platform/KURLGoogle.cpp:
8036         (WebCore::KURL::protocolIs):
8037
8038 2009-05-20  David Levin  <levin@chromium.org>
8039
8040         Not Reviewed, build fix.
8041
8042         Change KURLGoogle.cpp to mirror the KURL.cpp changes done in
8043         http://trac.webkit.org/changeset/43929.  Fix assert placement.
8044
8045         * platform/KURLGoogle.cpp:
8046         (WebCore::KURL::protocolIs):
8047         (WebCore::protocolIs):
8048
8049 2009-05-20  Nate Chapin  <japhet@google.com>
8050
8051         Reviewed by Dimitri Glazkov.
8052
8053         Upstream V8 bindings for V8DomWindow.
8054         https://bugs.webkit.org/show_bug.cgi?id=25869
8055
8056         * bindings/v8/custom/V8DOMWindowCustom.cpp:
8057         (WebCore::V8Custom::WindowSetTimeoutImpl): Moved from v8_custom.cpp.
8058         (WebCore::isAscii): Moved from v8_custom.cpp.
8059         (WebCore::convertBase64): Moved from v8_custom.cpp.
8060         (WebCore::CALLBACK_FUNC_DECL): Moved from v8_custom.cpp.
8061         (WebCore::eventNameFromAttributeName): Moved from v8_custom.cpp.
8062         (WebCore::ACCESSOR_SETTER): Moved from v8_custom.cpp.
8063         (WebCore::ACCESSOR_GETTER): Moved from v8_custom.cpp.
8064         (WebCore::NAMED_ACCESS_CHECK): Moved from v8_custom.cpp.
8065         (WebCore::INDEXED_ACCESS_CHECK): Moved from v8_custom.cpp.
8066
8067 2009-05-21  Christian Dywan  <christian@twotoasts.de>
8068
8069         Reviewed by Jan Alonzo.
8070
8071         * platform/network/soup/ResourceHandleSoup.cpp:
8072         (WebCore::parseDataUrl): Always use Glib Base64 decoding.
8073
8074 2009-05-21  Christian Dywan  <christian@twotoasts.de>
8075
8076         Rubberstamped by Gustavo Noronha.
8077
8078         * platform/network/curl/ResourceHandleManager.cpp:
8079         (WebCore::parseDataUrl): Remove Gtk/ Glib Base64 decoding.
8080
8081 2009-05-20  Christian Dywan  <christian@twotoasts.de>
8082
8083         Reviewed by Gustavo Noronha.
8084
8085         * GNUmakefile.am:
8086         * platform/gtk/guriescape.c:
8087         * platform/gtk/guriescape.h: Remove copies of g_uri_escape_string and
8088         g_uri_unescape_string now that we require Glib 2.16.
8089
8090 2009-05-20  David Levin  <levin@chromium.org>
8091
8092         Not Reviewed, build fix.
8093
8094         Change KURLGoogle.cpp to mirror the KURL.cpp changes done in
8095         http://trac.webkit.org/changeset/43929.
8096
8097         * platform/KURLGoogle.cpp:
8098         (WebCore::protocolIsJavaScript):
8099         (WebCore::protocolIs):
8100
8101 2009-05-20  Brady Eidson  <beidson@apple.com>
8102
8103         Rubberstamped by Sam Weinig
8104
8105         At all call sites that check if a KURL has either the http or https protocol,
8106         use the KURL::protocolInHTTPFamily() accessor, instead.
8107
8108         * loader/FrameLoader.cpp:
8109         (WebCore::FrameLoader::iconURL):
8110         (WebCore::FrameLoader::didOpenURL):
8111         (WebCore::FrameLoader::open):
8112
8113         * loader/appcache/ApplicationCache.cpp:
8114         (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet):
8115
8116         * loader/loader.cpp:
8117         (WebCore::Loader::load):
8118
8119         * xml/XMLHttpRequest.cpp:
8120         (WebCore::XMLHttpRequest::send):
8121
8122 2009-05-20  Brady Eidson  <beidson@apple.com>
8123
8124         Reviewed by Darin Adler.
8125
8126         Fix <rdar://problem/6904941> and https://bugs.webkit.org/show_bug.cgi?id=25300
8127
8128         KURL parsing changes back in r30243 and r30815 made javascript urls that use the form
8129         "javascript://" be detected as invalid hierarchical URLs.  When a KURL is marked as
8130         invalid, you can no longer ask it a question such as "is your protocol javascript?"
8131         Therefore FrameLoader wouldn't recognize them as javascript URLs and instead try to
8132         navigate to them.
8133
8134         URL parsing rules aside, such URLs are in use in the wild (Microsoft's Virtual Earth 
8135         being a high profile example) and actually represent valid javascript.
8136
8137         Whenever checking for javascript urls, the new protocolIsJavaScript() should be used
8138         as it functions on a String which doesn't have to pass KURLs parsing rules. 
8139
8140         Test: fast/loader/javascript-url-hierarchical-execution.html
8141
8142         * bindings/js/JSAttrCustom.cpp:
8143         (WebCore::JSAttr::setValue): Use protocolIsJavaScript().
8144         * bindings/js/JSDOMWindowCustom.cpp:
8145         (WebCore::JSDOMWindow::setLocation): Ditto.
8146         (WebCore::createWindow): Ditto.
8147         (WebCore::JSDOMWindow::open): Ditto.
8148         * bindings/js/JSElementCustom.cpp:
8149         (WebCore::allowSettingSrcToJavascriptURL): Ditto.
8150         * bindings/js/JSHTMLFrameElementCustom.cpp:
8151         (WebCore::allowSettingJavascriptURL): Ditto.
8152         * bindings/js/JSHTMLIFrameElementCustom.cpp:
8153         (WebCore::JSHTMLIFrameElement::setSrc): Ditto.
8154         * bindings/js/JSLocationCustom.cpp:
8155         (WebCore::navigateIfAllowed): Ditto.
8156         (WebCore::JSLocation::reload): Ditto.
8157         * editing/markup.cpp:
8158         (WebCore::appendQuotedURLAttributeValue): Ditto.
8159         * html/HTMLAnchorElement.cpp:
8160         (WebCore::HTMLAnchorElement::parseMappedAttribute): Ditto.
8161         * loader/FrameLoader.cpp:
8162         (WebCore::FrameLoader::requestFrame): Ditto.
8163         (WebCore::FrameLoader::submitForm): Ditto.
8164         (WebCore::FrameLoader::executeIfJavaScriptURL): Ditto.
8165         
8166         * platform/KURL.cpp:
8167         (WebCore::KURL::init): Use protocolIsJavaScript().
8168         (WebCore::KURL::protocolIs): ASSERT that the protocol being asked about is not javascript.
8169            Such checks should go through protocolIsJavaScript() instead.
8170         (WebCore::encodeRelativeString): Use protocolIsJavaScript().
8171         (WebCore::protocolIsJavaScript):
8172         * platform/KURL.h:
8173
8174 2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>
8175
8176         Reviewed by Anders Carlsson.
8177
8178         https://bugs.webkit.org/show_bug.cgi?id=24510
8179
8180         Fix a bug where the browserfuncs were not properly assigned,
8181         make hasproperty use _NP_HasProperty and hasmethod _NP_HasMethod.
8182
8183         Test: plugins/netscape-invoke-browserfuncs.html
8184
8185         * plugins/gtk/PluginPackageGtk.cpp:
8186         (WebCore::PluginPackage::load): Fix assignment
8187         * plugins/qt/PluginPackageQt.cpp:
8188         (WebCore::PluginPackage::load): Fix assignment
8189
8190 2009-05-20  Sam Weinig  <sam@webkit.org>
8191
8192         Reviewed by Timothy Hatcher.
8193
8194         Make absoluteRectsForRange and absoluteQuadsForRange non-virtual
8195         and only exist on RenderText.
8196
8197         * dom/Range.cpp:
8198         (WebCore::Range::textRects):
8199         * inspector/InspectorController.cpp:
8200         (WebCore::InspectorController::drawNodeHighlight): Use absoluteQuads instead
8201         of absoluteQuadsForRange since no range is being specifiec.
8202         * rendering/RenderObject.cpp:
8203         * rendering/RenderObject.h:
8204         * rendering/RenderText.h:
8205
8206 2009-05-20  Xan Lopez  <xlopez@igalia.com>
8207
8208         Reviewed by Gustavo Noronha.
8209
8210         Implement AtkObject::focus-event and
8211         AtkObject::state-changed:focused signal emission.
8212
8213         Adds a new handleFocusedUIElementChangedWithRenderers, only in the
8214         GTK port, called at the same point than
8215         handleFocusedUIElementChanged but with two parameters, the old and
8216         the newly focused RenderObjects. We need this, since the ATK
8217         signals require us to pass the objects involved in the focus
8218         change as arguments.
8219
8220         * accessibility/AXObjectCache.h:
8221         * accessibility/gtk/AXObjectCacheAtk.cpp:
8222         (WebCore::AXObjectCache::handleFocusedUIElementChangedWithRenderers):
8223         * dom/Document.cpp:
8224         (WebCore::Document::setFocusedNode):
8225
8226 2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>
8227
8228         Reviewed by Darin Adler.
8229
8230         https://bugs.webkit.org/show_bug.cgi?id=25834
8231
8232         Make ChromeClient a interface again
8233
8234         With recent additions to ChromeClient.h empty defaults were
8235         added. This is bad for porters as these changes go unnoticed
8236         and at runtime no notImplemented warning is logged and grepping
8237         for notImplemented will not show anything. Change this Client
8238         to be like the other Clients again and always have pure virtuals
8239         (but for stuff inside #ifdef PLATFORM(MAC)).
8240
8241         Update the various WebKit/* implementations to compile again.
8242
8243         * loader/EmptyClients.h: Add empty defaults
8244         (WebCore::EmptyChromeClient::setCursor):
8245         (WebCore::EmptyChromeClient::scrollRectIntoView):
8246         (WebCore::EmptyChromeClient::requestGeolocationPermissionForFrame):
8247         * page/ChromeClient.h: Make methods pure virtual
8248
8249 2009-05-19  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
8250
8251         Reviewed by Simon Hausmann.
8252
8253         Fix a bug where a non visible plugin would show it self in a
8254         sibling frame. The problem was due to our clipping. In Qt,
8255         if setMask is set with an empty QRegion, no clipping will
8256         be performed, so in that case we hide the PluginContainer
8257
8258         Added manual test.
8259
8260         * plugins/qt/PluginContainerQt.cpp:
8261         (PluginContainerQt::adjustGeometry):
8262         * manual-tests/qt/plugin-sibling-frame-include.html
8263         * manual-tests/qt/plugin-sibling-frame.html
8264
8265 2009-05-19  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
8266
8267         Reviewed by Simon Hausmann.
8268
8269         Do not call the parent implementation (Widget::) in show() and hide()
8270         of the PluginViewQt, as it always changes the visible state of the
8271         platformWidget (equal to the platformPluginWidget in the Qt port),
8272         thus ignoring the isParentVisible() test.
8273
8274         * plugins/qt/PluginViewQt.cpp:
8275         (WebCore::PluginView::show):
8276         (WebCore::PluginView::hide):
8277
8278 2009-05-20  Yichao Yin  <yichao.yin@torchmobile.com.cn>
8279
8280         Reviewed by George Staikos.
8281
8282         https://bugs.webkit.org/show_bug.cgi?id=23452
8283         Change the implementation of HTMLNoScriptElement to avoid the pain of 
8284         adding virtual function for XHTMLMP support
8285
8286         Includes changes suggested by Simon Fraser.
8287
8288         * dom/Node.cpp:
8289         (WebCore::Node::styleForRenderer):
8290         * dom/Node.h:
8291         * html/HTMLNoScriptElement.cpp:
8292         * html/HTMLNoScriptElement.h:
8293
8294 2009-05-20  Kevin Ollivier  <kevino@theolliviers.com>
8295
8296         CURL backend build fix. Make sure URL is always set.
8297         
8298         * platform/network/curl/ResourceHandleManager.cpp:
8299         (WebCore::ResourceHandleManager::downloadTimerCallback):
8300
8301 2009-05-20  Yongjun Zhang  <yongjun.zhang@nokia.com>
8302
8303         Reviewed by George Staikos.
8304
8305         Fix Qt WebKit build break in Mac OS.
8306
8307         * platform/FileSystem.h:
8308
8309 2009-05-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
8310
8311         Rubber-stamped by Eric Seidel.
8312
8313         Enable code that was commented out waiting for a way to get a
8314         GdkPixbuf from an image, effectively enabling copying images to
8315         the clipboard.
8316
8317         * platform/gtk/PasteboardGtk.cpp:
8318         (WebCore::Pasteboard::writeImage):
8319
8320 2009-05-20  Xan Lopez  <xlopez@igalia.com>
8321
8322         Reviewed by Jan Alonzo.
8323
8324         https://bugs.webkit.org/show_bug.cgi?id=25414
8325         [GTK] ROLE_PANEL should not be used for paragraphs and list items.
8326
8327         Implement Atk list item role for list items.
8328
8329         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
8330         (webkit_accessible_get_role):
8331
8332 2009-05-20  Xan Lopez  <xlopez@igalia.com>
8333
8334         Reviewed by Jan Alonzo.
8335
8336         https://bugs.webkit.org/show_bug.cgi?id=25414
8337         [GTK] ROLE_PANEL should not be used for paragraphs and list items.
8338
8339         Implement Atk paragraph role for paragraph elements.
8340
8341         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
8342         (webkit_accessible_get_role):
8343
8344 2009-05-20  Eric Seidel  <eric@webkit.org>
8345
8346         Fix bug URL in ChangeLogs in r43903.
8347         https://bugs.webkit.org/show_bug.cgi?id=25742
8348
8349 2009-05-20  Takeshi Yoshino <tyoshino@google.com>
8350
8351         Reviewed by Eric Seidel.
8352
8353         Bug 24539: Fix RenderThemeChromiumWin::paintTextFieldInternal() not to hide background image.
8354         https://bugs.webkit.org/show_bug.cgi?id=25742
8355
8356         Fix RenderThemeChromiumWin::paintTextFieldInternal().
8357
8358         We shouldn't paint the content area of text fields when o->style() has
8359         background image or transparent background color. paintTextFieldInternal() is
8360         used for painting inner area of HTML option elements by Chromium.
8361
8362         When we pass fillContentArea = true to ChromiumBridge::paintTextField, it hides
8363         the background image rendered by RenderBoxModelObject. So, we should set
8364         fillContentArea = false in such case.
8365
8366         Besides, when background-color:transparent is specified for CSS property,
8367         o->style().backgroundColor returns black color with alpha channel == 0. But
8368         since ThemeEngine for Windows behind ChromiumBridge::paintTextField cannot
8369         recognize alpha channel, it fills the rect with black. I made workaround to set
8370         fillContentArea = false when alpha channel == 0 to avoid this.
8371
8372         And more, I'd like to fallback the color passed to ChromiumBridge to white when
8373         o->style()->backgroundColor() is invalid.
8374
8375         * rendering/RenderThemeChromiumWin.cpp:
8376         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
8377
8378 2009-05-20  Shinichiro Hamaji  <hamaji@google.com>
8379
8380         Reviewed by Eric Seidel.
8381
8382         https://bugs.webkit.org/show_bug.cgi?id=25417
8383         Map CompositeCopy to Skia's kSrc_Mode composite operation.
8384
8385         Test: fast/canvas/canvas-composite-alpha.html
8386
8387         * platform/graphics/skia/SkiaUtils.cpp:
8388         (WebCore::):
8389
8390 2009-05-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
8391
8392         Rubber-stamped by Xan Lopez.
8393
8394         Remove misplaced extern "C"
8395
8396         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
8397
8398 2009-05-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
8399
8400         Reviewed by Xan Lopez.
8401
8402         [GTK] Expose password field with role of PASSWORD_TEXT
8403         https://bugs.webkit.org/show_bug.cgi?id=25682
8404
8405         Check if input type is a password field and return
8406         ATK_ROLE_PASSWORD_TEXT if it is.
8407
8408         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
8409
8410 2009-05-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
8411
8412         Reviewed by George Staikos.
8413
8414         BUG 25845: [Qt] Fix QtWebKit pkgconfig dependencies
8415         <https://bugs.webkit.org/show_bug.cgi?id=25845>
8416
8417         * WebCore.pro: Remove QtDBus; remove QtXml if Qt >= 4.4
8418
8419 2009-05-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
8420
8421         Reviewed by George Staikos.
8422
8423         BUG 25843: [Qt] Remove qt-port build flag
8424         <https://bugs.webkit.org/show_bug.cgi?id=25843>
8425
8426         * bridge/testbindings.pro:
8427
8428 2009-05-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
8429
8430         Reviewed by George Staikos.
8431
8432         https://bugs.webkit.org/show_bug.cgi?id=25824
8433
8434         [Qt] Cleanup - move files exclusive to JAVASCRIPT_DEBUGGER
8435         and WORKERS under the appropriate build section
8436
8437         * WebCore.pro:
8438
8439 2009-05-20  Ariya Hidayat  <ariya.hidayat@nokia.com>
8440
8441         Unreviewed Qt build fix, after r43892.
8442
8443         * platform/graphics/qt/ImageQt.cpp: included ImageObservser.h
8444
8445 2009-05-20  Yongjun Zhang  <yongjun.zhang@nokia.com>
8446
8447         Reviewed by Simon Hausmann.
8448
8449         https://bugs.webkit.org/show_bug.cgi?id=25856
8450         [Qt] notify an image has been drawn, to help Cache purge alive decoded data.
8451
8452         * platform/graphics/qt/ImageQt.cpp:
8453         (WebCore::Image::drawPattern):
8454         (WebCore::BitmapImage::draw):
8455
8456 2009-05-20  David Levin  <levin@chromium.org>
8457
8458         Reviewed by NOBODY, layout tests fix.
8459
8460         https://bugs.webkit.org/show_bug.cgi?id=23727
8461         This reverts commit r43888.
8462
8463         Once that change was checked in many of the fast/flexbox0*.html        
8464         tests (and others) started failing.
8465
8466         * WebCore.pro:
8467         * css/CSSParser.cpp:
8468         (WebCore::CSSParser::parseValue):
8469         * css/CSSPropertyNames.in:
8470         * css/CSSStyleSelector.cpp:
8471         (WebCore::CSSStyleSelector::applyProperty):
8472         * css/CSSValueKeywords.in:
8473         * rendering/RenderMarquee.cpp:
8474         (WebCore::RenderMarquee::updateMarqueePosition):
8475         (WebCore::RenderMarquee::timerFired):
8476
8477 2009-05-19  Yichao Yin <yichao.yin@torchmobile.com.cn>
8478
8479         Reviewed by George Staikos.
8480
8481         Add XHTMLMP support to Webkit
8482         Update the configure files for building XHTMLMP-enabled WebKit on different platform
8483         https://bugs.webkit.org/show_bug.cgi?id=23452
8484
8485         * GNUmakefile.am:
8486         * WebCore.pro:
8487         * WebCore.vcproj/WebCore.vcproj:
8488         * WebCoreSources.bkl:
8489
8490 2009-05-19  Antti Koivisto  <antti@apple.com>
8491
8492         I can't figure out how to make this not timing dependent, making it manual test instead.
8493
8494         * manual-tests/preload-scanner-entities.html: Added.
8495
8496 2009-05-19  Brady Eidson  <beidson@apple.com>
8497
8498         Reviewed by Antti Koivisto. 
8499
8500         <rdar://problem/6886382> REGRESSION (Safari 4PB -> ToT): HTTP cache revalidation broken.
8501
8502         This was caused in http://trac.webkit.org/changeset/41425, which fixed an image caching bug
8503         in QuickLooks (rdar://problem/6619630).
8504
8505         We need to respect the DocumentLoader's request cache policy when deciding the cache policy
8506         for subresources, but the check (originally removed in r39304 and added back in in the same
8507         place in r41424) needs to be tweaked and relocated a bit.
8508
8509         * loader/FrameLoader.cpp:
8510         (WebCore::FrameLoader::subresourceCachePolicy): Renamed from cachePolicy().  Move checking
8511           the DocumentLoader's request to a more appropriate place. Add code to handle the recently 
8512           added FIXME regarding POSTs. Add a new FIXME describing a great way to make this code 
8513           cleaner in the future.
8514         * loader/FrameLoader.h:
8515
8516         * loader/DocLoader.cpp:
8517         (WebCore::DocLoader::cachePolicy): Calls the newly renamed subresourceCachePolicy().
8518
8519 2009-05-19  Chris Fleizach  <cfleizach@apple.com>
8520
8521         Reviewed by Beth Dakin.
8522
8523         Bug 25872: aria-labeledby appends all siblings instead of all children to aria name
8524         https://bugs.webkit.org/show_bug.cgi?id=25872
8525
8526         When setting the aria-labeledby text it should stay within the element identified by the id
8527         when searching through the sibling list.
8528   
8529         This also removes an outdated assert in getDocumentLinks. Its possible for the document to
8530         think an element is a link, but accessibility can treat it differently (eg. its ARIA role is different).
8531
8532         Test: accessibility/aria-labelledby-stay-within.html
8533
8534         * accessibility/AccessibilityRenderObject.cpp:
8535         (WebCore::AccessibilityRenderObject::ariaAccessiblityName):
8536         (WebCore::AccessibilityRenderObject::getDocumentLinks):
8537
8538 2009-05-19  Antti Koivisto  <antti@apple.com>
8539
8540         Reviewed by Darin Adler).
8541         
8542         <rdar://problem/6902674> REGRESSION: Query parameters are sometimes incorrect in URL (23135)
8543         
8544         Push characters back in correct order when entity parsing fails after 3 characters.
8545
8546         Test: fast/tokenizer/preload-scanner-entities.html
8547
8548         * html/PreloadScanner.cpp:
8549         (WebCore::PreloadScanner::consumeEntity):
8550
8551 2009-05-19  Paul Godavari  <paul@chromium.org>
8552
8553         Reviewed by Dimitri Glazkov.
8554
8555         Fix a crash in Mac Chromium when displaying an HTML select element
8556         with no items.
8557         https://bugs.webkit.org/show_bug.cgi?id=25874
8558
8559         * platform/chromium/PopupMenuChromium.cpp:
8560         (WebCore::PopupContainer::showExternal):
8561
8562 2009-05-19  Nate Chapin  <japhet@google.com>
8563
8564         Reviewed by Darin Fisher.
8565
8566         Upstream V8 bindings for CanvasRenderingContext2D.
8567         https://bugs.webkit.org/show_bug.cgi?id=25858
8568
8569         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: Moved bindings from v8_custom.cpp.
8570
8571 2009-05-19  Jessie Berlin  <jberlin@apple.com>
8572
8573         Reviewed by Mark Rowe.
8574
8575         Windows Build Fix.
8576
8577         * WebCore.vcproj/WebCore.vcproj: Copy accessibility headers from WebCore.
8578
8579 2009-05-19  Timothy Hatcher  <timothy@apple.com>
8580
8581         <rdar://problem/6889218> REGRESSION: Some iChat transcript resources are not
8582         loaded because willSendRequest doesn't happen immediately
8583
8584         Reviewed by Antti Koivisto.
8585
8586         * WebCore.base.exp: Export Loader::servePendingRequests().
8587
8588 2009-05-19  David Levin  <levin@chromium.org>
8589
8590         Reviewed by Dimitri Glazkov.
8591
8592         Bug 25859: Need to upstream ScriptController.* for v8.
8593         https://bugs.webkit.org/show_bug.cgi?id=25859
8594
8595         Fixing the header file (which I accidentally made identical to the cpp file).
8596
8597         * bindings/v8/ScriptController.h:
8598
8599 2009-05-19  Alexey Proskuryakov  <ap@webkit.org>
8600
8601         Reviewed by Darin Adler and Brady Eidson.
8602
8603         <rdar://problem/6900582> REGRESSION (r42446?): UA Profiler in http://stevesouders.com/ua/ stalls
8604
8605         The problem was that Document::removeAllEventListeners() was called for a wrong document
8606         when a CachedFrame was destroyed.
8607
8608         Cannot be tested automatically, because DRT doesn't have a b/f cache.
8609
8610         * dom/Document.cpp: (WebCore::Document::domWindow): Make sure that this doesn't return an
8611         unrelated window even if document's m_frame pointer is stale.
8612
8613         * history/CachedFrame.cpp: (WebCore::CachedFrame::clear): Added a FIXME about strange behavior.
8614
8615 2009-05-19  Pavel Feldman  <pfeldman@chromium.org>
8616
8617         Reviewed by Timothy Hatcher.
8618
8619         Split InspectorController into InspectorController and InspectorFrontend. Latter encapsulates all frontend interaction and is the only entity allowed to make ScriptFunctionCalls. The further plan is to serialize these script function calls.
8620
8621         https://bugs.webkit.org/show_bug.cgi?id=25419
8622
8623         * GNUmakefile.am:
8624         * WebCore.pro:
8625         * WebCore.vcproj/WebCore.vcproj:
8626         * WebCore.xcodeproj/project.pbxproj:
8627         * WebCoreSources.bkl:
8628         * inspector/ConsoleMessage.cpp:
8629         (WebCore::ConsoleMessage::addToConsole):
8630         * inspector/ConsoleMessage.h:
8631         * inspector/InspectorController.cpp:
8632         (WebCore::InspectorController::~InspectorController):
8633         (WebCore::InspectorController::inspect):
8634         (WebCore::InspectorController::focusNode):
8635         (WebCore::InspectorController::setWindowVisible):
8636         (WebCore::InspectorController::addConsoleMessage):
8637         (WebCore::InspectorController::setAttachedWindow):
8638         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
8639         (WebCore::InspectorController::scriptObjectReady):
8640         (WebCore::InspectorController::showPanel):
8641         (WebCore::InspectorController::close):
8642         (WebCore::InspectorController::populateScriptObjects):
8643         (WebCore::InspectorController::resetScriptObjects):
8644         (WebCore::InspectorController::pruneResources):
8645         (WebCore::InspectorController::didCommitLoad):
8646         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
8647         (WebCore::InspectorController::identifierForInitialRequest):
8648         (WebCore::InspectorController::willSendRequest):
8649         (WebCore::InspectorController::didReceiveResponse):
8650         (WebCore::InspectorController::didReceiveContentLength):
8651         (WebCore::InspectorController::didFinishLoading):
8652         (WebCore::InspectorController::didFailLoading):
8653         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
8654         (WebCore::InspectorController::scriptImported):
8655         (WebCore::InspectorController::didOpenDatabase):
8656         (WebCore::InspectorController::didUseDOMStorage):
8657         (WebCore::InspectorController::addScriptProfile):
8658         (WebCore::InspectorController::toggleRecordButton):
8659         (WebCore::InspectorController::enableProfiler):
8660         (WebCore::InspectorController::disableProfiler):
8661         (WebCore::InspectorController::enableDebugger):
8662         (WebCore::InspectorController::disableDebugger):
8663         (WebCore::InspectorController::didParseSource):
8664         (WebCore::InspectorController::failedToParseSource):
8665         (WebCore::InspectorController::didPause):
8666         (WebCore::InspectorController::didContinue):
8667         * inspector/InspectorController.h:
8668         * inspector/InspectorDOMStorageResource.cpp:
8669         (WebCore::InspectorDOMStorageResource::bind):
8670         * inspector/InspectorDOMStorageResource.h:
8671         * inspector/InspectorDatabaseResource.cpp:
8672         (WebCore::InspectorDatabaseResource::bind):
8673         * inspector/InspectorDatabaseResource.h:
8674         * inspector/InspectorFrontend.cpp: Added.
8675         (WebCore::callSimpleFunction):
8676         (WebCore::InspectorFrontend::InspectorFrontend):
8677         (WebCore::InspectorFrontend::~InspectorFrontend):
8678         (WebCore::InspectorFrontend::newJSONObject):
8679         (WebCore::InspectorFrontend::addMessageToConsole):
8680         (WebCore::InspectorFrontend::addResource):
8681         (WebCore::InspectorFrontend::updateResource):
8682         (WebCore::InspectorFrontend::removeResource):
8683         (WebCore::InspectorFrontend::updateFocusedNode):
8684         (WebCore::InspectorFrontend::setAttachedWindow):
8685         (WebCore::InspectorFrontend::inspectedWindowScriptObjectCleared):
8686         (WebCore::InspectorFrontend::showPanel):
8687         (WebCore::InspectorFrontend::populateInterface):
8688         (WebCore::InspectorFrontend::reset):
8689         (WebCore::InspectorFrontend::debuggerWasEnabled):
8690         (WebCore::InspectorFrontend::debuggerWasDisabled):
8691         (WebCore::InspectorFrontend::profilerWasEnabled):
8692         (WebCore::InspectorFrontend::profilerWasDisabled):
8693         (WebCore::InspectorFrontend::parsedScriptSource):
8694         (WebCore::InspectorFrontend::failedToParseScriptSource):
8695         (WebCore::InspectorFrontend::addProfile):
8696         (WebCore::InspectorFrontend::setRecordingProfile):
8697         (WebCore::InspectorFrontend::pausedScript):
8698         (WebCore::InspectorFrontend::resumedScript):
8699         (WebCore::InspectorFrontend::addDatabase):
8700         (WebCore::InspectorFrontend::addDOMStorage):
8701         * inspector/InspectorFrontend.h: Added.
8702         * inspector/InspectorResource.cpp:
8703         (WebCore::InspectorResource::createScriptObject):
8704         (WebCore::InspectorResource::updateScriptObject):
8705         (WebCore::InspectorResource::releaseScriptObject):
8706         * inspector/InspectorResource.h:
8707
8708 2009-05-19  Pavel Feldman  <pfeldman@chromium.org>
8709
8710         Reviewed by Timothy Hatcher.
8711
8712         Introduce JSONObject that wraps ScriptObject and ScriptState* for further serialization
8713
8714         https://bugs.webkit.org/show_bug.cgi?id=25419
8715
8716         * GNUmakefile.am:
8717         * WebCore.pro:
8718         * WebCore.vcproj/WebCore.vcproj:
8719         * WebCore.xcodeproj/project.pbxproj:
8720         * WebCoreSources.bkl:
8721         * inspector/ConsoleMessage.cpp:
8722         (WebCore::ConsoleMessage::addToConsole):
8723         * inspector/InspectorDOMStorageResource.cpp:
8724         (WebCore::InspectorDOMStorageResource::bind):
8725         * inspector/InspectorDatabaseResource.cpp:
8726         (WebCore::InspectorDatabaseResource::bind):
8727         * inspector/InspectorResource.cpp:
8728         (WebCore::populateHeadersObject):
8729         (WebCore::InspectorResource::createScriptObject):
8730         (WebCore::InspectorResource::updateScriptObject):
8731         * inspector/JSONObject.cpp: Added.
8732         (WebCore::JSONObject::JSONObject):
8733         (WebCore::JSONObject::set):
8734         (WebCore::JSONObject::scriptObject):
8735         (WebCore::JSONObject::createNew):
8736         * inspector/JSONObject.h: Added.
8737
8738 2009-05-19  Pavel Feldman  <pfeldman@chromium.org>
8739
8740         Reviewed by Timothy Hatcher.
8741
8742         Refactor InpectorController so that it does not instantiate resource/console/database/domresource javascript objects. Move instantiation into the javascript.
8743
8744         https://bugs.webkit.org/show_bug.cgi?id=25419
8745
8746         * inspector/ConsoleMessage.cpp:
8747         (WebCore::ConsoleMessage::addToConsole):
8748         * inspector/InspectorController.cpp:
8749         (WebCore::InspectorController::didReceiveResponse):
8750         (WebCore::InspectorController::didReceiveContentLength):
8751         (WebCore::InspectorController::didFinishLoading):
8752         (WebCore::InspectorController::didFailLoading):
8753         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
8754         (WebCore::InspectorController::scriptImported):
8755         * inspector/InspectorDOMStorageResource.cpp:
8756         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
8757         (WebCore::InspectorDOMStorageResource::bind):
8758         (WebCore::InspectorDOMStorageResource::unbind):
8759         * inspector/InspectorDOMStorageResource.h:
8760         * inspector/InspectorDatabaseResource.cpp:
8761         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
8762         (WebCore::InspectorDatabaseResource::bind):
8763         (WebCore::InspectorDatabaseResource::unbind):
8764         * inspector/InspectorDatabaseResource.h:
8765         * inspector/InspectorResource.cpp:
8766         (WebCore::InspectorResource::InspectorResource):
8767         (WebCore::populateHeadersObject):
8768         (WebCore::InspectorResource::createScriptObject):
8769         (WebCore::InspectorResource::updateScriptObject):
8770         (WebCore::InspectorResource::releaseScriptObject):
8771         * inspector/InspectorResource.h:
8772         * inspector/front-end/Console.js:
8773         (WebInspector.ConsoleMessage):
8774         * inspector/front-end/inspector.js:
8775         (WebInspector.addResource):
8776         (WebInspector.updateResource):
8777         (WebInspector.removeResource):
8778         (WebInspector.addDatabase):
8779         (WebInspector.addDOMStorage):
8780         (WebInspector.reset):
8781         (WebInspector.addMessageToConsole):
8782
8783 2009-05-19  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
8784
8785         Reviewed by Ariya Hidayat.
8786
8787         The Qt port has code that disables scrolling optimizations
8788         when the root contains native windows, such as windowed plugins.
8789
8790         This code broke when detaching iframes containing windowed
8791         plugins.
8792
8793         Each ScrollView now knows how many native windows it and its
8794         children contain, and when it is detached, that number is
8795         substracted from its old parents.
8796
8797         * platform/ScrollView.cpp:
8798         (WebCore::ScrollView::scrollContents):
8799         (WebCore::ScrollView::setParent):
8800         * platform/ScrollView.h:
8801         * platform/qt/ScrollViewQt.cpp:
8802         (WebCore::ScrollView::adjustWidgetsPreventingBlittingCount):
8803         (WebCore::ScrollView::platformAddChild):
8804         (WebCore::ScrollView::platformRemoveChild):
8805
8806 2009-05-18  David Kilzer  <ddkilzer@apple.com>
8807
8808         Tiger build fix for r43850
8809
8810         * platform/mac/ClipboardMac.mm: Added typedef for NSUinteger
8811         when building on Tiger.
8812
8813 2009-05-18  Eric Seidel  <eric@webkit.org>
8814
8815         Reviewed by Darin Adler.
8816
8817         ClipboardMac cleanup
8818         https://bugs.webkit.org/show_bug.cgi?id=25847
8819
8820         I'm mostly just moving code, however there are 3 changes I made while moving, detailed below.
8821
8822         No functional changes, so no tests.
8823
8824         * platform/mac/ClipboardMac.mm:
8825         (WebCore::ClipboardMac::clearData):
8826         (WebCore::absoluteURLsFromPasteboardFilenames):
8827           Broke out logic for filenames into its own function to make the caller more readable.
8828         (WebCore::absoluteURLsFromPasteboard):
8829           Broke out logic from getData into absoluteURLsFromPasteboard. This returns an NSArray
8830           so that we can use -[NSArray componentsJoinedByString] in the caller (which is
8831           cleaner than the manual "\n" addition before).
8832           This also access to the full list of file urls for future callers.
8833         (WebCore::ClipboardMac::getData):
8834           unsigned count = (type == "URL") ? 1 : [fileList count]; is now an
8835           explicit check for "URL", before it was a check for != "text/uri-list" which
8836           was much more confusing in my opinion.  text/uri-list and URL are the only
8837           two types which map to NSURLPboardType in cocoaTypeFromMIMEType().
8838         (WebCore::ClipboardMac::types):
8839           I removed an extra if (!types) check, right before [types count].  In Obj-C
8840           messaging nil will return 0 (size of a pointer), so it's safe to message nil
8841           here and expect it to return 0.
8842
8843 2009-05-18  David Levin  <levin@chromium.org>
8844
8845         Reviewed by Darin Fisher.
8846
8847         Bug 25859: Need to upstream ScriptController.* for v8.
8848         https://bugs.webkit.org/show_bug.cgi?id=25859
8849
8850         * bindings/v8/ScriptController.cpp: Added.
8851         * bindings/v8/ScriptController.h: Added.
8852
8853 2009-05-18  Yichao Yin  <yichao.yin@torchmobile.com.cn>
8854
8855         Reviewed by George Staikos.
8856
8857         Change ScriptElement to support XHTMLMP in a better way
8858         https://bugs.webkit.org/show_bug.cgi?id=23452
8859
8860         * dom/ScriptElement.h:
8861         * html/HTMLScriptElement.h:
8862         * svg/SVGScriptElement.h:
8863         (WebCore::SVGScriptElement::shouldExecuteAsJavaScript):
8864
8865 2009-05-18  Kevin Ollivier  <kevino@theolliviers.com>
8866
8867         wx build fix, finish up changes after the accessibility dir split.
8868
8869         * webcore-base.bkl:
8870
8871 2009-05-18  Yichao Yin  <yichao.yin@torchmobile.com.cn>
8872
8873         Reviewed by George Staikos (and others).
8874
8875         Add XHTMLMP support to Webkit
8876         https://bugs.webkit.org/show_bug.cgi?id=23452
8877         XHTMLMP is a strict subset of XHTML 1.1. It extends XHTML Basic and add enhanced
8878         functionality. Most of the functionalities have already been implemented by Webkit.
8879         
8880         The changes include:
8881         1) Adding <noscript> support
8882         2) Document conformance validation
8883         3) User Agent conformance validation
8884  
8885         refer to the specification: OMA-WAP-XHTMLMP-V1_1-20061020-A.pdf
8886
8887         Tests: fast/xhtmlmp/check-doctype-declaration.xhtml
8888                fast/xhtmlmp/check-rootelement.xhtml
8889                fast/xhtmlmp/noscript-in-multiscripts.xhtml
8890                fast/xhtmlmp/noscript-nested.xhtml
8891                fast/xhtmlmp/noscript.xhtml
8892
8893         * dom/DOMImplementation.cpp:
8894         (WebCore::DOMImplementation::createDocument):
8895         * dom/Document.cpp:
8896         (WebCore::Document::Document):
8897         (WebCore::Document::isXHTMLMPDocument):
8898         * dom/Document.h:
8899         (WebCore::Document::shouldProcessNoscriptElement):
8900         (WebCore::Document::setShouldProcessNoscriptElement):
8901         * dom/Node.cpp:
8902         (WebCore::Node::createRendererIfNeeded):
8903         * dom/Node.h:
8904         * dom/XMLTokenizer.h:
8905         (WebCore::XMLTokenizer::setIsXHTMLMPDocument):
8906         (WebCore::XMLTokenizer::isXHTMLMPDocument):
8907         * dom/XMLTokenizerLibxml2.cpp:
8908         (WebCore::XMLTokenizer::XMLTokenizer):
8909         (WebCore::XMLTokenizer::startElementNs):
8910         (WebCore::XMLTokenizer::endElementNs):
8911         (WebCore::XMLTokenizer::endDocument):
8912         (WebCore::XMLTokenizer::internalSubset):
8913         (WebCore::getEntityHandler):
8914         (WebCore::externalSubsetHandler):
8915         * dom/XMLTokenizerQt.cpp:
8916         (WebCore::XMLTokenizer::XMLTokenizer):
8917         (WebCore::XMLTokenizer::parse):
8918         (WebCore::XMLTokenizer::parseStartElement):
8919         (WebCore::XMLTokenizer::parseEndElement):
8920         (WebCore::):
8921         * dom/make_names.pl:
8922         * html/HTMLElement.cpp:
8923         (WebCore::HTMLElement::rendererIsNeeded):
8924         * html/HTMLNoScriptElement.cpp: Added.
8925         (WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
8926         (WebCore::HTMLNoScriptElement::~HTMLNoScriptElement):
8927         (WebCore::HTMLNoScriptElement::checkDTD):
8928         (WebCore::HTMLNoScriptElement::attach):
8929         (WebCore::HTMLNoScriptElement::recalcStyle):
8930         (WebCore::HTMLNoScriptElement::childShouldCreateRenderer):
8931         (WebCore::HTMLNoScriptElement::styleForRenderer):
8932         * html/HTMLNoScriptElement.h: Added.
8933         (WebCore::HTMLNoScriptElement::rendererIsNeeded):
8934         * html/HTMLParser.cpp:
8935         (WebCore::HTMLParser::getNode):
8936         (WebCore::HTMLParser::isInline):
8937         * html/HTMLTagNames.in:
8938         * html/HTMLTokenizer.cpp:
8939         (WebCore::HTMLTokenizer::scriptHandler):
8940         (WebCore::HTMLTokenizer::notifyFinished):
8941         * loader/FrameLoader.cpp:
8942         (WebCore::FrameLoader::addExtraFieldsToRequest):
8943         * platform/MIMETypeRegistry.cpp:
8944         (WebCore::initializeSupportedNonImageMimeTypes):
8945
8946 2009-05-18  Mark Rowe  <mrowe@apple.com>
8947
8948         Fix the build.
8949
8950         * WebCore.xcodeproj/project.pbxproj:
8951
8952 2009-05-18  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
8953
8954         Rubber-stamped by Gustavo Noronha.
8955
8956         Fixed build for the Qt port by adding the WebCore/accessibility
8957         directory to the includepath.
8958
8959         * WebCore.pro:
8960
8961 2009-05-18  Chris Fleizach  <cfleizach@apple.com>
8962
8963         Bug 25776: accessibility should have its own folder in WebCore project
8964         https://bugs.webkit.org/show_bug.cgi?id=25776
8965    
8966         Speculative fix for windows build failure.
8967
8968         * WebCore.vcproj/WebCoreCommon.vsprops:
8969
8970 2009-05-18  David Kilzer  <ddkilzer@apple.com>
8971
8972         Bug 20652: WebKit doesn't display favicons with MIME type image/vnd.microsoft.icon
8973
8974         <https://bugs.webkit.org/show_bug.cgi?id=20652>
8975
8976         Reviewed by Darin Adler.
8977
8978         Test: http/tests/misc/favicon-as-image.html
8979
8980         * inspector/front-end/inspector.js: Added
8981         image/vnd.microsoft.icon to WebInspector.MIMETypes.
8982         * platform/MIMETypeRegistry.cpp:
8983         (WebCore::initializeSupportedImageMIMETypes): Added
8984         image/vnd.microsoft.icon to list of supported image and image
8985         resource MIME types.
8986
8987 2009-05-18  Chris Fleizach  <cfleizach@apple.com>
8988
8989         Reviewed by Sam Weinig.
8990
8991         Bug 25776: accessibility should have its own folder in WebCore project
8992         https://bugs.webkit.org/show_bug.cgi?id=25776
8993
8994         * GNUmakefile.am:
8995         * WebCore.pro:
8996         * WebCore.vcproj/WebCore.vcproj:
8997         * WebCore.xcodeproj/project.pbxproj:
8998         * WebCoreSources.bkl:
8999         * accessibility: Added.
9000         * accessibility/AXObjectCache.cpp: Copied from WebCore/page/AXObjectCache.cpp.
9001         * accessibility/AXObjectCache.h: Copied from WebCore/page/AXObjectCache.h.
9002         * accessibility/AccessibilityAriaGrid.cpp: Copied from WebCore/page/AccessibilityAriaGrid.cpp.
9003         * accessibility/AccessibilityAriaGrid.h: Copied from WebCore/page/AccessibilityAriaGrid.h.
9004         * accessibility/AccessibilityAriaGridCell.cpp: Copied from WebCore/page/AccessibilityAriaGridCell.cpp.
9005         * accessibility/AccessibilityAriaGridCell.h: Copied from WebCore/page/AccessibilityAriaGridCell.h.
9006         * accessibility/AccessibilityAriaGridRow.cpp: Copied from WebCore/page/AccessibilityAriaGridRow.cpp.
9007         * accessibility/AccessibilityAriaGridRow.h: Copied from WebCore/page/AccessibilityAriaGridRow.h.
9008         * accessibility/AccessibilityImageMapLink.cpp: Copied from WebCore/page/AccessibilityImageMapLink.cpp.
9009         * accessibility/AccessibilityImageMapLink.h: Copied from WebCore/page/AccessibilityImageMapLink.h.
9010         * accessibility/AccessibilityList.cpp: Copied from WebCore/page/AccessibilityList.cpp.
9011         * accessibility/AccessibilityList.h: Copied from WebCore/page/AccessibilityList.h.
9012         * accessibility/AccessibilityListBox.cpp: Copied from WebCore/page/AccessibilityListBox.cpp.
9013         * accessibility/AccessibilityListBox.h: Copied from WebCore/page/AccessibilityListBox.h.
9014         * accessibility/AccessibilityListBoxOption.cpp: Copied from WebCore/page/AccessibilityListBoxOption.cpp.
9015         * accessibility/AccessibilityListBoxOption.h: Copied from WebCore/page/AccessibilityListBoxOption.h.
9016         * accessibility/AccessibilityObject.cpp: Copied from WebCore/page/AccessibilityObject.cpp.
9017         * accessibility/AccessibilityObject.h: Copied from WebCore/page/AccessibilityObject.h.
9018         * accessibility/AccessibilityRenderObject.cpp: Copied from WebCore/page/AccessibilityRenderObject.cpp.
9019         * accessibility/AccessibilityRenderObject.h: Copied from WebCore/page/AccessibilityRenderObject.h.
9020         * accessibility/AccessibilityTable.cpp: Copied from WebCore/page/AccessibilityTable.cpp.
9021         * accessibility/AccessibilityTable.h: Copied from WebCore/page/AccessibilityTable.h.
9022         * accessibility/AccessibilityTableCell.cpp: Copied from WebCore/page/AccessibilityTableCell.cpp.
9023         * accessibility/AccessibilityTableCell.h: Copied from WebCore/page/AccessibilityTableCell.h.
9024         * accessibility/AccessibilityTableColumn.cpp: Copied from WebCore/page/AccessibilityTableColumn.cpp.
9025         * accessibility/AccessibilityTableColumn.h: Copied from WebCore/page/AccessibilityTableColumn.h.
9026         * accessibility/AccessibilityTableHeaderContainer.cpp: Copied from WebCore/page/AccessibilityTableHeaderContainer.cpp.
9027         * accessibility/AccessibilityTableHeaderContainer.h: Copied from WebCore/page/AccessibilityTableHeaderContainer.h.
9028         * accessibility/AccessibilityTableRow.cpp: Copied from WebCore/page/AccessibilityTableRow.cpp.
9029         * accessibility/AccessibilityTableRow.h: Copied from WebCore/page/AccessibilityTableRow.h.
9030         * accessibility/chromium: Added.
9031         * accessibility/chromium/AXObjectCacheChromium.cpp: Copied from WebCore/page/chromium/AXObjectCacheChromium.cpp.
9032         * accessibility/chromium/AccessibilityObjectChromium.cpp: Copied from WebCore/page/chromium/AccessibilityObjectChromium.cpp.
9033         * accessibility/chromium/AccessibilityObjectWrapper.h: Copied from WebCore/page/chromium/AccessibilityObjectWrapper.h.
9034         * accessibility/gtk: Added.
9035         * accessibility/gtk/AXObjectCacheAtk.cpp: Copied from WebCore/page/gtk/AXObjectCacheAtk.cpp.
9036         * accessibility/gtk/AccessibilityObjectAtk.cpp: Copied from WebCore/page/gtk/AccessibilityObjectAtk.cpp.
9037         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: Copied from WebCore/page/gtk/AccessibilityObjectWrapperAtk.cpp.
9038         * accessibility/gtk/AccessibilityObjectWrapperAtk.h: Copied from WebCore/page/gtk/AccessibilityObjectWrapperAtk.h.
9039         * accessibility/mac: Added.
9040         * accessibility/mac/AXObjectCacheMac.mm: Copied from WebCore/page/mac/AXObjectCacheMac.mm.
9041         * accessibility/mac/AccessibilityObjectMac.mm: Copied from WebCore/page/mac/AccessibilityObjectMac.mm.
9042         * accessibility/mac/AccessibilityObjectWrapper.h: Copied from WebCore/page/mac/AccessibilityObjectWrapper.h.
9043         * accessibility/mac/AccessibilityObjectWrapper.mm: Copied from WebCore/page/mac/AccessibilityObjectWrapper.mm.
9044         * accessibility/qt: Added.
9045         * accessibility/qt/AccessibilityObjectQt.cpp: Copied from WebCore/page/qt/AccessibilityObjectQt.cpp.
9046         * accessibility/win: Added.
9047         * accessibility/win/AXObjectCacheWin.cpp: Copied from WebCore/page/win/AXObjectCacheWin.cpp.
9048         * accessibility/win/AccessibilityObjectWin.cpp: Copied from WebCore/page/win/AccessibilityObjectWin.cpp.
9049         * accessibility/win/AccessibilityObjectWrapperWin.h: Copied from WebCore/page/win/AccessibilityObjectWrapperWin.h.
9050         * accessibility/wx: Added.
9051         * accessibility/wx/AccessibilityObjectWx.cpp: Copied from WebCore/page/wx/AccessibilityObjectWx.cpp.
9052         * page/AXObjectCache.cpp: Removed.
9053         * page/AXObjectCache.h: Removed.
9054         * page/AccessibilityAriaGrid.cpp: Removed.
9055         * page/AccessibilityAriaGrid.h: Removed.
9056         * page/AccessibilityAriaGridCell.cpp: Removed.
9057         * page/AccessibilityAriaGridCell.h: Removed.
9058         * page/AccessibilityAriaGridRow.cpp: Removed.
9059         * page/AccessibilityAriaGridRow.h: Removed.
9060         * page/AccessibilityImageMapLink.cpp: Removed.
9061         * page/AccessibilityImageMapLink.h: Removed.
9062         * page/AccessibilityList.cpp: Removed.
9063         * page/AccessibilityList.h: Removed.
9064         * page/AccessibilityListBox.cpp: Removed.
9065         * page/AccessibilityListBox.h: Removed.
9066         * page/AccessibilityListBoxOption.cpp: Removed.
9067         * page/AccessibilityListBoxOption.h: Removed.
9068         * page/AccessibilityObject.cpp: Removed.
9069         * page/AccessibilityObject.h: Removed.
9070         * page/AccessibilityRenderObject.cpp: Removed.
9071         * page/AccessibilityRenderObject.h: Removed.
9072         * page/AccessibilityTable.cpp: Removed.
9073         * page/AccessibilityTable.h: Removed.
9074         * page/AccessibilityTableCell.cpp: Removed.
9075         * page/AccessibilityTableCell.h: Removed.
9076         * page/AccessibilityTableColumn.cpp: Removed.
9077         * page/AccessibilityTableColumn.h: Removed.
9078         * page/AccessibilityTableHeaderContainer.cpp: Removed.
9079         * page/AccessibilityTableHeaderContainer.h: Removed.
9080         * page/AccessibilityTableRow.cpp: Removed.
9081         * page/AccessibilityTableRow.h: Removed.
9082         * page/chromium/AXObjectCacheChromium.cpp: Removed.
9083         * page/chromium/AccessibilityObjectChromium.cpp: Removed.
9084         * page/chromium/AccessibilityObjectWrapper.h: Removed.
9085         * page/gtk/AXObjectCacheAtk.cpp: Removed.
9086         * page/gtk/AccessibilityObjectAtk.cpp: Removed.
9087         * page/gtk/AccessibilityObjectWrapperAtk.cpp: Removed.
9088         * page/gtk/AccessibilityObjectWrapperAtk.h: Removed.
9089         * page/mac/AXObjectCacheMac.mm: Removed.
9090         * page/mac/AccessibilityObjectMac.mm: Removed.
9091         * page/mac/AccessibilityObjectWrapper.h: Removed.
9092         * page/mac/AccessibilityObjectWrapper.mm: Removed.
9093         * page/qt/AccessibilityObjectQt.cpp: Removed.
9094         * page/win/AXObjectCacheWin.cpp: Removed.
9095         * page/win/AccessibilityObjectWin.cpp: Removed.
9096         * page/win/AccessibilityObjectWrapperWin.h: Removed.
9097         * page/wx/AccessibilityObjectWx.cpp: Removed.
9098
9099 2009-05-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
9100
9101         Reviewed by Jan Alonzo.
9102
9103         https://bugs.webkit.org/show_bug.cgi?id=25854
9104         [GTK] Should tell servers we only support identity as content encoding
9105
9106         Let servers know we only support identity as content
9107         encoding. We will implement this in libsoup.
9108
9109         * platform/network/soup/ResourceHandleSoup.cpp:
9110         (WebCore::ResourceHandle::startHttp):
9111
9112 2009-05-18  Alexey Proskuryakov  <ap@webkit.org>
9113
9114         Reviewed by Darin Adler.
9115
9116         <rdar://problem/6881160> REGRESSION (r41425): Unable to create battle.net account due to
9117         CAPTCHA failure.
9118
9119         The problem was that after loading and displaying a CAPTCHA image, it was loaded from
9120         the server again due to preloading. So, the server expected the last loaded (invisible)
9121         CAPTCHA text to be typed and posted back.
9122
9123         I don't know how to make tests for preloading.
9124
9125         * loader/DocLoader.cpp: (WebCore::DocLoader::checkForPendingPreloads): There is never a reason
9126         to preload after loading for real - and if cache policy is CachePolicyReload, that actually
9127         results in another load from network layer.
9128
9129         * loader/FrameLoader.cpp: (WebCore::FrameLoader::cachePolicy): It's not good for cachePolicy()
9130         to lie, but I don't know how to re-do r41425 properly. Added a FIXME.
9131
9132 2009-05-18  Ariya Hidayat  <ariya.hidayat@nokia.com>
9133
9134         Reviewed by Simon Hausmann.
9135
9136         Done together with Balazs Kelemen  <kelemen.balazs@stud.u-szeged.hu>.
9137
9138         https://bugs.webkit.org/show_bug.cgi?id=24551
9139
9140         [Qt] Reuse FontPlatformData for the same FontDescription.
9141         This effectively prevents growing heap usage for loading every web page.
9142
9143         * platform/graphics/qt/FontCacheQt.cpp:
9144         (WebCore::qHash): Necessary for FontPlatformDataCache.
9145         (WebCore::FontCache::getCachedFontPlatformData): Reuse the instance if
9146         it exists, otherwise create a new one and insert it in the cache.
9147
9148 2009-05-18  Balazs Kelemen  <kelemen.balazs@stud.u-szeged.hu>
9149
9150         Reviewed by Ariya Hidayat.
9151
9152         https://bugs.webkit.org/show_bug.cgi?id=24551
9153
9154         [Qt] Fix the leak in FontFallbackList::fontDataAt() function.
9155         When creating a new instance of SimpleFontData, put it in the font list
9156         so that it can deleted later on.
9157
9158         * platform/graphics/qt/FontFallbackListQt.cpp:
9159         (WebCore::FontFallbackList::invalidate):
9160         (WebCore::FontFallbackList::releaseFontData):
9161         (WebCore::FontFallbackList::fontDataAt):
9162
9163 2009-05-15  Jan Michael Alonzo  <jmalonzo@webkit.org>
9164
9165          Reviewed by Xan Lopez.
9166
9167          [Gtk] Various autotools build refactoring and fixes
9168          https://bugs.webkit.org/show_bug.cgi?id=25286
9169
9170          Style fixes
9171
9172          * GNUmakefile.am:
9173
9174 2009-05-17  George Staikos  <george.staikos@torchmobile.com>
9175
9176         Not reviewed - build fix.
9177
9178         Fix typo: constr -> const.
9179
9180         * wml/WMLInputElement.h:
9181         (WebCore::WMLInputElement::setPlaceholder):
9182
9183 2009-05-17  Darin Adler  <darin@apple.com>
9184
9185         Fix done by Simon Fraser (reviewed by me).
9186
9187         <rdar://problem/6893775> Page with screen-only stylesheet with overflow and height
9188         transitions has bad layout and overlapping garbled text when printing
9189
9190         * manual-tests/print-with-height-transition-in-screen-stylesheet.html: Added.
9191
9192         * page/animation/AnimationController.cpp:
9193         (WebCore::AnimationController::updateAnimations): Don't run transitions when printing.
9194
9195 2009-05-17  Darin Adler  <darin@apple.com>
9196
9197         Reviewed by Simon Fraser.
9198
9199         <rdar://problem/6870241> REGRESSION: Programmatically selected popup menu item not shown
9200
9201         * html/HTMLSelectElement.cpp:
9202         (WebCore::HTMLSelectElement::setSelectedIndex): Added a call to updateFromElement and
9203         also a type check on the selected index to avoid a bad cast to HTMLOptionElement.
9204
9205         * manual-tests/select-option-in-onload.html: Added.
9206
9207 2009-05-17  Simon Fraser  <simon.fraser@apple.com>
9208
9209         Reviewed by Anders Carlsson
9210
9211         Rename local variables for readability.
9212         
9213         * rendering/RenderBoxModelObject.cpp:
9214         (WebCore::RenderBoxModelObject::paintBorder):
9215
9216 2009-05-17  Darin Adler  <darin@apple.com>
9217
9218         Reviewed by Mark Rowe.
9219
9220         Bug 25840: fix some warnings seen on the GTK bot
9221         https://bugs.webkit.org/show_bug.cgi?id=25840
9222
9223         * platform/ScrollView.cpp:
9224         (WebCore::ScrollView::platformScrollbarModes): Initialize results here.
9225         This is really just to quiet warnings. I think this code is unreachable.
9226         Someone could put ASSERT_NOT_REACHED() in here too at some point.
9227
9228         * plugins/PluginStream.cpp:
9229         (WebCore::PluginStream::startStream): Use proper printf format for int
9230         here, %d, not %lu. This could cause a real problem when compiled 64-bit,
9231         so it's good to fix.
9232
9233         * rendering/RenderTextControl.cpp:
9234         (WebCore::getNextSoftBreak): Initialize breakOffset to 0 here. This is
9235         really just to quiet the warning, but still seems like a good idea.
9236
9237 2009-05-17  Chris Fleizach  <cfleizach@apple.com>
9238
9239         Reviewed by Darin Adler.
9240
9241         Bug 25769: Fix accessibility warnings on GTK
9242         https://bugs.webkit.org/show_bug.cgi?id=25769
9243
9244         * page/AccessibilityTable.cpp:
9245         (WebCore::AccessibilityTable::columnCount): Get rid of excess const.
9246         (WebCore::AccessibilityTable::rowCount): Ditto.
9247         * page/AccessibilityTable.h: Ditto.
9248
9249 2009-05-17  Kai Brüning  <kai@granus.net>
9250
9251         Reviewed by Darin Adler.
9252
9253         bug 25822: DOM normalize does not remove empty text node between element nodes
9254         https://bugs.webkit.org/show_bug.cgi?id=25822
9255
9256         Test: fast/dom/Node/normalize.html
9257
9258         * dom/Node.cpp:
9259         (WebCore::Node::normalize): Changed to remove any empty text nodes.
9260
9261 2009-05-16  Dave Moore  <davemoore@google.com>
9262
9263         Reviewed by Darin Adler.
9264
9265         Allow Strings to be created with one malloc node with no copying
9266         https://bugs.webkit.org/show_bug.cgi?id=25779
9267
9268         Add new methods to String and StringImpl, refactoring existing
9269         methods in StringImpl to use new createUninitialized() method.
9270
9271         * platform/text/PlatformString.h:
9272         (WebCore::String::createUninitialized):
9273         * platform/text/StringImpl.cpp:
9274         (WebCore::StringImpl::createUninitialized):
9275         (WebCore::StringImpl::create):
9276         * platform/text/StringImpl.h:
9277
9278 2009-05-16  Mark Rowe  <mrowe@apple.com>
9279
9280         Reviewed by Darin Adler.
9281
9282         <rdar://problem/6827041> WebCore should stop throwing away the CGImageSourceRef to
9283         dramatically improve animated GIF decoding performance
9284
9285         Recent versions of ImageIO discard previously decoded image frames if the client
9286         application no longer holds references to them, so there's no need to throw away
9287         the decoder unless we're explicitly asked to destroy all of the frames.
9288
9289         This drops peak CPU usage when displaying <http://www.aintitcool.com/files/HoD2.gif>
9290         from over 90% to below 3%.
9291
9292         * platform/graphics/cg/ImageSourceCG.cpp:
9293         (WebCore::ImageSource::clear):
9294
9295 2009-05-16  Dan Bernstein  <mitz@apple.com>
9296
9297         Reviewed by Alexey Proskuryakov.
9298
9299         - fix <rdar://problem/6873305> Two distinct characters are not displayed
9300           correctly with 2 of the font selections from the stickies widget
9301
9302         Test: platform/mac/editing/pasteboard/text-precomposed.html
9303
9304         Ensure that "text/plain" data retrieved from the clipboard is always
9305         precomposed. This makes Clipboard::getData() and
9306         Pasteboard::documentFragment() consistent with Pasteboard::plainText()
9307         and -[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:].
9308
9309         * platform/mac/ClipboardMac.mm:
9310         (WebCore::ClipboardMac::getData):
9311         * platform/mac/PasteboardMac.mm:
9312         (WebCore::Pasteboard::documentFragment):
9313
9314 2009-05-16  Mark Rowe  <mrowe@apple.com>
9315
9316         Build fix.
9317
9318         * css/CSSComputedStyleDeclaration.cpp:
9319         (WebCore::valueForFamily): Declare valueForFamily as static.
9320
9321 2009-05-15  Darin Adler  <darin@apple.com>
9322
9323         Reviewed by Dan Bernstein.
9324
9325         <rdar://problem/6883872> REGRESSION (r43243): computed style for font-family is returning
9326         only the generic font, if any generic font is in the family list
9327
9328         Test: fast/css/getComputedStyle/computed-style-font-family.html
9329
9330         * css/CSSComputedStyleDeclaration.cpp:
9331         Sorted computedProperties alphabetically. Added CSSPropertyClip and CSSPropertyWordBreak.
9332         (WebCore::identifierForFamily): Added. Maps internal font family names to identifiers.
9333         (WebCore::valueForFamily): Added. Creates either an identifier or a string as appropriate.
9334         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Implemented the font-family
9335         property as specified in the CSS standard. Fixed clip to return "auto" when there is no
9336         clip set instead of nothing at all. Gave inheritableProperties and numInheritableProperties
9337         internal linkage since there was no reason for them to have external linkage.
9338
9339 2009-05-15  Adam Barth  <abarth@webkit.org>
9340
9341         Reviewed by Oliver Hunt.
9342
9343         https://bugs.webkit.org/show_bug.cgi?id=25741
9344
9345         Append instead of throwing when insertItemBefore gets an out-of-bound
9346         index.
9347
9348         Test: svg/dom/svglist-insertItemBefore-appends.html
9349
9350         * svg/SVGList.h:
9351         (WebCore::SVGList::insertItemBefore):
9352
9353 2009-05-15  Simon Fraser  <simon.fraser@apple.com>
9354
9355         Reviewed by Darin Adler
9356         
9357         https://bugs.webkit.org/show_bug.cgi?id=25829
9358         
9359         Fix -webkit-background-clip:text when the renderer had a non (0,0) x, y offset.
9360
9361         Test: fast/backgrounds/background-clip-text.html
9362
9363         * rendering/RenderBoxModelObject.cpp:
9364         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9365
9366 2009-05-15  Dan Bernstein  <mitz@apple.com>
9367
9368         Reviewed by Sam Weinig.
9369
9370         - fix <rdar://problem/6888244> REGRESSION: Using the Up or Down keyboard
9371           arrows, I can't navigate caret between To Do items in a Note message
9372
9373         Test: editing/selection/move-by-line-004.html
9374
9375         * editing/visible_units.cpp:
9376         (WebCore::enclosingNodeWithNonInlineRenderer): Added this helper
9377         function.
9378         (WebCore::previousLinePosition): When advancing to the next candidate
9379         node, stop when leaving the closest ancestor of the original node that
9380         is not an inline. The code, incorrectly, was trying to exit the closest
9381         ancestor of that type which was editable, and therefore missing other
9382         blocks in the same editable root.
9383         (WebCore::nextLinePosition): Ditto.
9384
9385 2009-05-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
9386
9387         Reviewed by Jan Alonzo.
9388
9389         Converting filename to uri by concatenating strings is broken
9390         on Windows. So, don't do it for that platform.
9391
9392         * platform/network/soup/ResourceHandleSoup.cpp:
9393         (WebCore::ResourceHandle::startGio):
9394
9395 2009-05-15  Nate Chapin  <japhet@google.com>
9396
9397         Reviewed by Dimitri Glazkov.
9398
9399         Upstream V8 bindings for HTMLOptionsCollection and HTMLSelectElementCollection.
9400         https://bugs.webkit.org/show_bug.cgi?id=25739
9401
9402         * bindings/v8/V8Collection.cpp: Added.
9403         (WebCore::toOptionsCollectionSetter): Moved from v8_custom.cpp.
9404         * bindings/v8/V8Collection.h: Added prototype for toOptionsCollectionSetter().
9405         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
9406         (WebCore::INDEXED_PROPERTY_SETTER): Moved from v8_custom.cpp.
9407         * bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp: Added.
9408         (WebCore::NAMED_PROPERTY_GETTER):  Moved from v8_custom.cpp.
9409         (WebCore::INDEXED_PROPERTY_SETTER):  Moved from v8_custom.cpp.
9410
9411 2009-05-15  David Kilzer  <ddkilzer@apple.com>
9412
9413         <rdar://problem/6649936> Add *.exp export files to WebCore Xcode project
9414
9415         Reviewed by Darin Adler and Timothy Hatcher.
9416
9417         * WebCore.xcodeproj/project.pbxproj: Added Exports group, moved
9418         WebCore.base.exp into the group, and added 10 other *.exp files
9419         in WebCore.
9420
9421 2009-05-15  Dimitri Glazkov  <dglazkov@chromium.org>
9422
9423         Unreviewed, build fix.
9424
9425         https://bugs.webkit.org/show_bug.cgi?id=25826
9426         Change type to only have custom getter in JCS.
9427
9428         * html/HTMLInputElement.idl: Changed CustomGetter attribute to JSCCustomGetter.
9429
9430 2009-05-15  Antti Koivisto  <antti@apple.com>
9431
9432         Reviewed by Dave Kilzer.
9433
9434         Add a settings entry to en/disable web font support
9435         https://bugs.webkit.org/show_bug.cgi?id=25239
9436
9437         * css/CSSFontSelector.cpp:
9438         (WebCore::CSSFontSelector::addFontFaceRule):
9439
9440 2009-05-15  Sam Weinig  <sam@webkit.org>
9441
9442         Reviewed by Steve Falkenburg.
9443
9444         Remove dead youtube site specific hack that was commented out.
9445
9446         * bindings/js/JSNavigatorCustom.cpp:
9447         * page/Navigator.idl:
9448
9449 2009-05-15  Sam Weinig  <sam@webkit.org>
9450
9451         Reviewed by Beth Dakin.
9452
9453         Fix for https://bugs.webkit.org/show_bug.cgi?id=25826
9454         <rdar://problem/6884742> 
9455         REGRESSION: In Gmail's Edit Link dialog, I can't type in the Link To: field (due to <input type=url> support)
9456
9457         Added a site specific quirk for mail.google.com which returns "text" when getting the type of an <input type=url>
9458
9459         * bindings/js/JSHTMLInputElementCustom.cpp:
9460         (WebCore::needsGmailQuirk):
9461         (WebCore::JSHTMLInputElement::type):
9462         * html/HTMLInputElement.idl:
9463
9464 2009-05-14  Dimitri Glazkov  <dglazkov@chromium.org>
9465
9466         Reviewed by Eric Seidel.
9467
9468         https://bugs.webkit.org/show_bug.cgi?id=25810
9469         Upstream V8 DOM Wrapper map declarations.
9470
9471         No behavior change, so no tests.
9472
9473         * bindings/v8/V8DOMMap.h:
9474         (WebCore::WeakReferenceMap::WeakReferenceMap): Added.
9475         (WebCore::WeakReferenceMap::~WeakReferenceMap): Added.
9476         (WebCore::WeakReferenceMap::get): Added.
9477         (WebCore::WeakReferenceMap::set): Added.
9478         (WebCore::WeakReferenceMap::forget): Added.
9479         (WebCore::WeakReferenceMap::contains): Added.
9480         (WebCore::WeakReferenceMap::impl): Added.
9481         (WebCore::DOMWrapperMap::DOMWrapperMap): Added.
9482
9483 2009-05-15  Simon Fraser  <simon.fraser@apple.com>
9484
9485         Reviewed by Dave Hyatt
9486         
9487         https://bugs.webkit.org/show_bug.cgi?id=25773
9488         
9489         Rename GraphicsLayer::graphicsContextsFlipped() to 
9490         GraphicsLayer::compositingCoordinatesOrientation() in order to clarify the usage.
9491
9492         Clean up code around the GraphicsLayer "contents" layer that makes use of this
9493         flag, by removing the setHasContentsLayer() method, and just using setContentsLayer(),
9494         which can then always do the flipping if necessary.
9495
9496         Only affects ACCELERATED_COMPOSITING builds.
9497         
9498         * platform/graphics/GraphicsLayer.h:
9499         (WebCore::GraphicsLayer::):
9500         * platform/graphics/mac/GraphicsLayerCA.h:
9501         (WebCore::GraphicsLayerCA::contentsLayer):
9502         * platform/graphics/mac/GraphicsLayerCA.mm:
9503         (WebCore::GraphicsLayer::compositingCoordinatesOrientation):
9504         (WebCore::GraphicsLayerCA::setBackgroundColor):
9505         (WebCore::GraphicsLayerCA::clearBackgroundColor):
9506         (WebCore::GraphicsLayerCA::setContentsToImage):
9507         (WebCore::GraphicsLayerCA::clearContents):
9508         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
9509         (WebCore::GraphicsLayerCA::setContentsLayer):
9510         * rendering/RenderLayerCompositor.cpp:
9511         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
9512
9513 2009-05-15  Chris Marrin  <cmarrin@apple.com>
9514
9515         Reviewed by Simon Fraser.
9516
9517         https://bugs.webkit.org/show_bug.cgi?id=25765
9518
9519         Avoid calling setNeedsStyleRecalc() when we are
9520         putting an animated page in the cache. This avoids
9521         the assert and subsequent problems with a dirty 
9522         page going into the cache.
9523
9524         * page/animation/KeyframeAnimation.cpp:
9525         (WebCore::KeyframeAnimation::endAnimation):
9526
9527 2009-05-15  Francisco Tolmasky  <francisco@280north.com>
9528
9529         BUG 25467: JavaScript debugger should use function.displayName as the function's name in the call stack
9530         <https://bugs.webkit.org/show_bug.cgi?id=25467>
9531         
9532         Reviewed by Adam Roben.
9533
9534         * inspector/JavaScriptCallFrame.cpp:
9535         (WebCore::JavaScriptCallFrame::functionName): Use calculatedFunctionName which takes into account displayName
9536         * inspector/front-end/CallStackSidebarPane.js: Remove "|| anonymous function" since it is handled internally just like in profiles
9537         (WebInspector.CallStackSidebarPane.prototype.update):
9538
9539 2009-05-15  Alexey Proskuryakov  <ap@webkit.org>
9540
9541         Windows build fix (and a matching Mac change, to avoid unnecessarily diverging the implementations).
9542
9543         * platform/network/cf/ResourceHandleCFNet.cpp:
9544         (WebCore::ResourceHandle::start):
9545         * platform/network/mac/ResourceHandleMac.mm:
9546         (WebCore::ResourceHandle::start):
9547         Check strings with isEmpty(), not relying on any implicit conversions.
9548
9549 2009-05-15  Alexey Proskuryakov  <ap@webkit.org>
9550
9551         Reviewed by Darin Adler, Brady Eidson and Eric Carlson.
9552
9553         <rdar://problem/6875643> REGRESSION: Unable to download file with FTP URL that includes
9554         username and password (Lightwave 9.6 for Mac from Newtek site)
9555
9556         CFNetwork only invokes didReceiveAuthenticationChallenge for HTTP requests. Credentials
9557         for other protocols (including FTP) should be included as part of the URL.
9558
9559         * platform/network/cf/ResourceHandleCFNet.cpp:
9560         (WebCore::ResourceHandle::start):
9561         (WebCore::WebCoreSynchronousLoader::load):
9562         * platform/network/mac/ResourceHandleMac.mm:
9563         (WebCore::ResourceHandle::start):
9564         (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
9565         Put credentials in URL for non-HTTP requests.
9566
9567         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest):
9568         Bail out quickly if the URL is non-HTTP. Cross-origin requests require specific HTTP
9569         headers to be received, so they cannot work with other protocols.
9570
9571 2009-05-15  Ariya Hidayat  <ariya.hidayat@nokia.com>
9572
9573         Reviewed by Holger Freyther.
9574
9575         [Qt] In the image decoder, remove the raw image data represented as QImage
9576         once the image is converted to QPixmap and inserted in the pixmap cache.
9577         This effectively reduces the heap usage when running on graphics system
9578         other than raster (i.e the case where QImage != QPixmap).
9579
9580         * platform/graphics/qt/ImageDecoderQt.cpp:
9581         (WebCore::ImageDecoderQt::imageAtIndex): Nullified the image on purpose.
9582         * platform/graphics/qt/ImageDecoderQt.h: Made m_imageList mutable.
9583
9584 2009-05-15  Ariya Hidayat  <ariya.hidayat@nokia.com>
9585
9586         Reviewed by Holger Freyther.
9587
9588         [Qt] Refactor alpha channel detection the image decoder.
9589         Sets the boolean flag as soon as the image is being read.
9590
9591         * platform/graphics/qt/ImageDecoderQt.cpp:
9592         (WebCore::ImageDecoderQt::ImageDecoderQt): Initialized m_hasAlphaChannel.
9593         (WebCore::ImageDecoderQt::setData): Set the flag when appropriate.
9594         (WebCore::ImageDecoderQt::supportsAlpha): Simplified.
9595         (WebCore::ImageDecoderQt::reset): Resetted the flag.
9596         * platform/graphics/qt/ImageDecoderQt.h: Added m_hasAlphaChannel.
9597
9598 2009-05-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
9599
9600         Reviewed by Darin Adler.
9601
9602         Finish support for disabling the JavaScript Debugger and Profiler 
9603         at compile time in WebCore
9604         https://bugs.webkit.org/show_bug.cgi?id=24917
9605
9606         * bindings/js/JSInspectorControllerCustom.cpp: ENABLE_JAVASCRIPT_DEBUGGER guard
9607         * bindings/js/JSJavaScriptCallFrameCustom.cpp: Ditto.
9608         * inspector/JavaScriptCallFrame.cpp: Ditto.
9609         * inspector/JavaScriptCallFrame.h: Ditto.
9610         * inspector/JavaScriptCallFrame.idl: Ditto.
9611         * inspector/JavaScriptDebugListener.h: Ditto.
9612         * inspector/JavaScriptDebugServer.cpp: Ditto.
9613         * inspector/JavaScriptDebugServer.h: Ditto.
9614         * inspector/JavaScriptProfile.cpp: Ditto.
9615         * inspector/JavaScriptProfile.h: Ditto.
9616         * inspector/JavaScriptProfileNode.cpp: Ditto.
9617         * inspector/JavaScriptProfileNode.h: Ditto.
9618         * page/Console.cpp: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of USE(JSC)
9619         * page/Console.h: Ditto.
9620         * page/Console.idl: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of !defined(V8_BINDING)
9621
9622 2009-05-15  Jungshik Shin  <jshin@chromium.org>
9623
9624         Reviewed by Dimitri Glazkov
9625
9626         http://bugs.webkit.org/show_bug.cgi?id=25464
9627
9628         Improve the font fallback for characters belonging to 'common' scripts
9629         in ChromiumWin port. Make characters like Danda, Double Danda (punctuation
9630         marks in North Indian scripts) and currency signs (e.g. Thai Baht)
9631         rendered correctly in Chromium on Win. 
9632
9633         Tests: fast/text/international/danda-space.html
9634                fast/text/international/thai-baht-space.html
9635
9636         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
9637         (WebCore::FontMap::getScriptBasedOnUnicodeBlock):
9638         (WebCore::FontMap::getScript):
9639         (WebCore::getFallbackFamily):
9640
9641 2009-05-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
9642
9643         Reviewed by Holger Freyther.
9644
9645         https://bugs.webkit.org/show_bug.cgi?id=25731
9646         [Qt] Cleanup - move files exclusive to XPATH and XSLT under the
9647         appropriate build section
9648
9649         * WebCore.pro:
9650
9651 2009-05-14  Evan Martin  <evan@chromium.org>
9652
9653         Reviewed by Eric Seidel and Darin Fisher.
9654
9655         Fix a font-related leak in Chromium's Skia backend found by Valgrind.
9656         https://bugs.webkit.org/show_bug.cgi?id=25760
9657
9658         * platform/graphics/chromium/FontCacheLinux.cpp:
9659         (WebCore::FontCache::getFontDataForCharacters):
9660         Use caches instead of "new" on every call.
9661
9662 2009-05-14  Rahul Kuchhal  <kuchhal@chromium.org>
9663
9664         Reviewed by Eric Seidel.
9665
9666         Initialize m_spreadMethod in the second constructor too. Not sure if
9667         a test case can be written, so no test case.
9668         https://bugs.webkit.org/show_bug.cgi?id=25814
9669
9670         No test possible: spreadMethod() is only used by SVG, doesn't seem possible to hit
9671         this case, since several other SVG tests already should be calling
9672         spreadMethod().
9673
9674         * platform/graphics/Gradient.cpp:
9675         (WebCore::Gradient::Gradient):
9676
9677 2009-05-14  Simon Fraser  <simon.fraser@apple.com>
9678
9679         No review.
9680
9681         Fix Windows build after renaming MediaControlElements to MediaControlElementType.
9682
9683         * rendering/RenderMediaControls.cpp:
9684         (WebCore::RenderMediaControls::paintMediaControlsPart):
9685         * rendering/RenderMediaControls.h:
9686
9687 2009-05-14  Simon Fraser  <simon.fraser@apple.com>
9688
9689         Reviewed by Darin Adler
9690         
9691         <rdar://problem/6739671> Movie controller’s play button does not change into a pause
9692         button
9693
9694         Fix a controls repaint issue when the playing state of a video changes by
9695         educating the MediaControlInputElements about the state they are currently
9696         displaying, and making them repaint when that state changes. This applies
9697         to the play/pause and mute/unmute buttons, which both have two states.
9698         
9699         * rendering/MediaControlElements.cpp:
9700         (WebCore::MediaControlInputElement::MediaControlInputElement):
9701         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
9702         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
9703         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
9704         Pass in and initialize the MediaControlElementType.
9705         
9706         (WebCore::MediaControlInputElement::update):
9707         Update the display type too
9708         
9709         (WebCore::MediaControlInputElement::setDisplayType):
9710         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
9711         (WebCore::MediaControlMuteButtonElement::updateDisplayType):
9712         Choose muted vs. unmuted display.
9713         
9714         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
9715         (WebCore::MediaControlPlayButtonElement::updateDisplayType):
9716         Choose play vs. paused display.
9717
9718         * rendering/MediaControlElements.h:
9719         Renamed the MediaControlElements enum to MediaControlElementType.
9720         (WebCore::MediaControlInputElement::updateDisplayType):
9721         Add a MediaControlElementType member variable with a setter to allow
9722         the element to know what type it is displaying.
9723
9724 2009-05-14  Dean Jackson  <dino@apple.com>
9725
9726         Reviewed by Simon Fraser.
9727
9728         https://bugs.webkit.org/show_bug.cgi?id=25197
9729
9730         Add support for aspect-ratio and orientation
9731         media queries.
9732
9733         Tests: fast/media/mq-aspect-ratio.html
9734                fast/media/mq-orientation.html
9735
9736         * css/MediaFeatureNames.h:
9737         * css/MediaQueryEvaluator.cpp:
9738         (WebCore::orientationMediaFeatureEval):
9739         (WebCore::aspect_ratioMediaFeatureEval):
9740         (WebCore::min_aspect_ratioMediaFeatureEval):
9741         (WebCore::max_aspect_ratioMediaFeatureEval):
9742         * css/MediaQueryExp.h:
9743         (WebCore::MediaQueryExp::isViewportDependent):
9744
9745 2009-05-14  Kevin McCullough  <kmccullough@apple.com>
9746
9747         - Resubmitting previous patch, correctly this time.
9748
9749         * editing/CompositeEditCommand.cpp:
9750         (WebCore::CompositeEditCommand::splitTreeToNode):
9751         * editing/IndentOutdentCommand.cpp:
9752         (WebCore::IndentOutdentCommand::outdentParagraph):
9753
9754 2009-05-14  Kevin McCullough  <kmccullough@apple.com>
9755
9756         - Rolling out to fix a bug and the build
9757
9758         * editing/CompositeEditCommand.cpp:
9759         (WebCore::CompositeEditCommand::splitTreeToNode):
9760         * editing/IndentOutdentCommand.cpp:
9761         (WebCore::IndentOutdentCommand::outdentParagraph):
9762
9763 2009-05-14  Kevin McCullough  <kmccullough@apple.com>
9764
9765         Reviewed by Dan Bernstein.
9766
9767         <rdar://problem/6510362> In some situations message content is messed up
9768         when indentation is decreased
9769
9770         * editing/CompositeEditCommand.cpp:
9771         (WebCore::CompositeEditCommand::splitTreeToNode): Calling recursively
9772         here served to do nothing because this function will return if the
9773         second argument is the parent of the first.  Not only does this now work
9774         as intended, but is necessary for the rest of this fix.
9775         * editing/IndentOutdentCommand.cpp:
9776         (WebCore::IndentOutdentCommand::outdentParagraph): To determine if we 
9777         are the last node in a <blockquote>, and can therefore remove the
9778         <blockquote> we need the endOfEnclosingBlock to extend to the end of
9779         the <blockquote> not just the next block, which could be a <div>, for
9780         example. 
9781         - Also If a <blockquote> is removed, but it's the child of another
9782         <blockquote> then its children are now children of the top <blockquote>.
9783         In this case we want to split the parent <blockquote> because the next
9784         paragraph assumes that it is the first node in its <blockquote> and if
9785         that is not true, various bugs arise.
9786
9787 2009-05-14  Brady Eidson  <beidson@apple.com>
9788
9789         Build fix.
9790
9791         * platform/network/cf/ResourceHandleCFNet.cpp:
9792         (WebCore::setDefaultMIMEType):
9793
9794 2009-05-14  Brady Eidson  <beidson@apple.com>
9795
9796         Reviewed by Adam Roben.
9797
9798         Fix http/tests/xmlhttprequest/cache-override.html on Windows
9799
9800         * platform/network/cf/ResourceHandleCFNet.cpp:
9801         (WebCore::setDefaultMIMEType): Modify the previous response so it maintains all of its data.
9802         (WebCore::didReceiveResponse): Call setDefaultMIMEType() when needed.
9803         (WebCore::WebCoreSynchronousLoader::load): Ditto.
9804
9805 2009-05-14  Paul Godavari  <paul@chromium.org>
9806
9807         Reviewed by Dimitri Glazkov.
9808
9809         Bug: Mac Chromium popup menus are not positioned correctly
9810         on scrolled pages:
9811         https://bugs.webkit.org/show_bug.cgi?id=25772
9812
9813         Fix Mac Chromium popup menu placement by taking into
9814         account any scrolling in the current window. This mirrors
9815         the positioning done in PopupContainer::show(), which is
9816         used on Chromium Windows and linux.
9817
9818         Also fixed indenting for this method.
9819
9820         * platform/chromium/PopupMenuChromium.cpp:
9821         (WebCore::PopupContainer::showExternal):
9822
9823 2009-05-14  Drew Wilson  <atwilson@google.com>
9824
9825         Reviewed by Dimitri Glazkov.
9826
9827         https://bugs.webkit.org/show_bug.cgi?id=25774
9828         Upstream V8MessagePortCustom.cpp from the chromium repository.
9829
9830         * bindings/v8/custom/V8MessagePortCustom.cpp: Added.
9831         (WebCore::ACCESSOR_GETTER):
9832         (WebCore::ACCESSOR_SETTER):
9833         (WebCore::CALLBACK_FUNC_DECL):
9834
9835 2009-05-14  Simon Fraser  <simon.fraser@apple.com>
9836
9837         Reviewed by Darin Adler
9838
9839         https://bugs.webkit.org/show_bug.cgi?id=25777
9840         
9841         StyleGeneratedImage::imageSize() needs to take zooming into account for
9842         fixed-size images (i.e. canvas) so that canvas-as-image-background
9843         renders correctly with zooming.
9844
9845         Test: fast/canvas/canvas-bg-zoom.html
9846
9847         * rendering/style/StyleGeneratedImage.cpp:
9848         (WebCore::StyleGeneratedImage::imageSize):
9849
9850 2009-05-14  Alexey Proskuryakov  <ap@webkit.org>
9851
9852         Reviewed by Darin Adler.
9853
9854         Patch originally by Darin Adler.
9855
9856         https://bugs.webkit.org/show_bug.cgi?id=25796
9857         <rdar://problem/6886654> Shouldn't set referer and origin in Loader::Host::servePendingRequests().
9858
9859         Test: http/tests/security/credentials-in-referer.html
9860
9861         * loader/loader.cpp: (WebCore::Loader::Host::servePendingRequests): This will be done in
9862         SubresourceLoader::create() anyway.
9863
9864 2009-05-14  Chris Fleizach  <cfleizach@apple.com>
9865
9866         Reviewed by Darin Adler.
9867
9868         Bug 25797: Pages with image maps are not properly read with Voiceover
9869         https://bugs.webkit.org/show_bug.cgi?id=25797
9870
9871         * page/AccessibilityImageMapLink.h:
9872         (WebCore::AccessibilityImageMapLink::isEnabled):
9873
9874 2009-05-14  Brady Eidson  <beidson@apple.com>
9875
9876         Reviewed by Darin Adler.
9877
9878         <rdar://problem/6887762> and https://bugs.webkit.org/show_bug.cgi?id=25790 
9879
9880         Nuke the bogus ASSERT and add a legitimate ASSERT with a little help from a new accessor.
9881
9882         * platform/network/ResourceHandle.cpp:
9883         (WebCore::ResourceHandle::shouldContentSniff):
9884         * platform/network/ResourceHandle.h:
9885
9886         * platform/network/cf/ResourceHandleCFNet.cpp:
9887         (WebCore::createCFURLResponseWithDefaultMIMEType):
9888         (WebCore::didReceiveResponse):
9889
9890 2009-05-14  Eric Carlson  <eric.carlson@apple.com>
9891
9892         Reviewed by Darin Adler.
9893
9894         https://bugs.webkit.org/show_bug.cgi?id=25791
9895         Bug 25791: HTMLMediaElement: implement 'startTime' attribute
9896         
9897         Support the recently added HTMLMediaElement 'startTime' attribute. This is a read-only 
9898         value that only the media engine can know, so we just need to add the attribute 
9899         to HTMLMediaElement and add methods to MediaPlayer and MediaPlayerPrivateInterface so 
9900         the engine can make it available.
9901
9902         Test: media/media-startTime.html
9903
9904         * html/HTMLMediaElement.cpp:
9905         (WebCore::HTMLMediaElement::startTime): New.
9906         * html/HTMLMediaElement.h:
9907         * html/HTMLMediaElement.idl:
9908
9909         * platform/graphics/MediaPlayer.cpp:
9910         (WebCore::MediaPlayer::startTime): New.
9911         * platform/graphics/MediaPlayer.h:
9912
9913         * platform/graphics/MediaPlayerPrivate.h:
9914         (WebCore::MediaPlayerPrivateInterface::startTime): New.
9915
9916 2009-05-14  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
9917
9918         Reviewed by Ariya Hidayat.
9919
9920         Only create a QWidget wrapper for the plugin in the case it is not
9921         in the Qt window mapper, and thus receiving events from the Qt
9922         event system. Native Qt based plugins running in process, will
9923         already be in the window mapper, and thus creating a wrapper,
9924         stops them from getting events from Qt, as they are redirected
9925         to the wrapper.
9926
9927         * plugins/qt/PluginContainerQt.cpp:
9928         (PluginContainerQt::on_clientIsEmbedded):
9929
9930 2009-05-14  Alexey Proskuryakov  <ap@webkit.org>
9931
9932         Reviewed by Darin Adler.
9933
9934         https://bugs.webkit.org/show_bug.cgi?id=25784
9935         Leaks seen on HTTP tests
9936
9937         We should change ResourceHandleMac.mm to use smart pointers some day, but this is a minimal fix.
9938
9939         * platform/network/mac/ResourceHandleMac.mm:
9940         (WebCore::ResourceHandle::loadResourceSynchronously): Release mutable request copy made for
9941         disabling content sniffing, matching the normal code path.
9942         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Release m_user
9943         and m_pass before overwriting.
9944         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Ditto.
9945
9946 2009-05-14  Yury Semikhatsky <yurys@chromium.org>
9947
9948         Reviewed by Dimitri Glazkov.
9949
9950         https://bugs.webkit.org/show_bug.cgi?id=25418
9951         Remove new lines from event handler wrapper to make line numbers
9952         in the wrapped script conside with the lines in the original script.
9953
9954         * bindings/v8/V8LazyEventListener.cpp:
9955         (WebCore::V8LazyEventListener::getListenerFunction):
9956         (WebCore::V8LazyEventListener::getWrappedListenerFunction):
9957
9958 2009-05-14  Dimitri Glazkov  <dglazkov@chromium.org>
9959
9960         Reviewed by Alexey Proskuryakov.
9961
9962         Remove a JSC-specific include that is already added by including
9963         ScriptController.
9964
9965         No change in behavior, so no tests.
9966
9967         * dom/Document.cpp: Removed JSDOMBinding include.
9968
9969 2009-05-14  Alexey Proskuryakov  <ap@webkit.org>
9970
9971         Reviewed by Brady Eidson.
9972
9973         <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled
9974
9975         Hopefully, a final stroke. When updating ResourceRequest from a platform request, a wrong
9976         CFString function was used, so a user-friendly name was stored in encoding fallback array.
9977
9978         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdateResourceRequest):
9979         * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdateResourceRequest):
9980
9981 2009-05-14  Ben Murdoch  <benm@google.com>
9982
9983         Reviewed by Darin Adler.
9984
9985         Add more ENABLE_DATABASE guards.
9986         https://bugs.webkit.org/show_bug.cgi?id=25616
9987
9988         See also https://bugs.webkit.org/show_bug.cgi?id=24776 (original set of guards)
9989
9990         * bindings/js/JSSQLResultSetRowListCustom.cpp:
9991         * bindings/v8/custom/V8CustomSQLStatementCallback.cpp:
9992         * bindings/v8/custom/V8CustomSQLStatementCallback.h:
9993         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
9994         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.h:
9995         * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp:
9996         * bindings/v8/custom/V8CustomSQLTransactionCallback.h:
9997         * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
9998         * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h:
9999         * bindings/v8/custom/V8DatabaseCustom.cpp:
10000         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
10001         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
10002         * storage/Database.cpp:
10003         * storage/DatabaseDetails.h:
10004         * storage/OriginUsageRecord.cpp:
10005         * storage/OriginUsageRecord.h:
10006         * storage/SQLError.h:
10007         * storage/SQLError.idl:
10008         * storage/SQLResultSet.cpp:
10009         * storage/SQLResultSet.h:
10010         * storage/SQLResultSet.idl:
10011         * storage/SQLResultSetRowList.cpp:
10012         * storage/SQLResultSetRowList.h:
10013         * storage/SQLResultSetRowList.idl:
10014         * storage/SQLStatementCallback.h:
10015         * storage/SQLStatementErrorCallback.h:
10016         * storage/SQLTransactionCallback.h:
10017         * storage/SQLTransactionErrorCallback.h:
10018
10019 2009-05-11  Holger Hans Peter Freyther  <zecke@selfish.org>
10020
10021         Reviewed by Darin Adler.
10022
10023         https://bugs.webkit.org/show_bug.cgi?id=25787
10024
10025         Gtk was the last platform to not unregister plugins when
10026         the plugin is stopped. Catch up with r43550.
10027
10028         * plugins/gtk/PluginViewGtk.cpp:
10029         (WebCore::PluginView::stop):
10030
10031 2009-05-14  Adam Roben  <aroben@apple.com>
10032
10033         Make WebCore.vcproj's pre-build event work again
10034
10035         * WebCore.vcproj/WebCore.vcproj: Removed empty override of the
10036         pre-build event that was accidentally left in when the pre-build event
10037         was moved to WebCoreCommon.vsprops.
10038
10039 2009-05-14  Darin Adler  <darin@apple.com>
10040
10041         * manual-tests/right-click-crash.html: Added.
10042
10043 2009-05-14  Mark Rowe  <mrowe@apple.com>
10044
10045         Rubber-stamped by Darin Adler.
10046
10047         <rdar://problem/6681868> When building with Xcode 3.1.3 should be using gcc 4.2
10048
10049         The meaning of XCODE_VERSION_ACTUAL is more sensible in newer versions of Xcode.
10050         Update our logic to select the compiler version to use the more appropriate XCODE_VERSION_MINOR
10051         if the version of Xcode supports it, and fall back to XCODE_VERSION_ACTUAL if not.
10052
10053         * Configurations/Base.xcconfig:
10054
10055 2009-05-13  Anders Carlsson  <andersca@apple.com>
10056
10057         Fix build.
10058
10059         * WebCore.NPAPI.exp:
10060
10061 2009-05-13  Eric Seidel  <eric@webkit.org>
10062
10063         Reviewed by Oliver Hunt.
10064
10065         Fix invalid memory write seen in HTMLCanvasElement by Valgrind
10066         https://bugs.webkit.org/show_bug.cgi?id=25759
10067
10068         I can't think of any way to catch this with a layout test, so no test.
10069
10070         * css/CSSCanvasValue.cpp:
10071         (WebCore::CSSCanvasValue::canvasDestroyed):
10072         * css/CSSCanvasValue.h:
10073         * html/HTMLCanvasElement.cpp:
10074         (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
10075         * html/HTMLCanvasElement.h:
10076
10077 2009-05-13  Dan Bernstein  <mitz@apple.com>
10078
10079         Reviewed by Anders Carlsson.
10080
10081         - fix <rdar://problem/5483015> Replies in Mail are drawn first without
10082           the user style sheet and then redrawn with the style sheet
10083
10084         Test: platform/mac/fast/loader/user-stylesheet-fast-path.html
10085
10086         * page/mac/FrameMac.mm:
10087         (WebCore::Frame::setUserStyleSheetLocation): For data URLs with
10088         base64-encoded UTF-8 data, just decode the style sheet here an apply
10089         it synchronously instead of invoking an asynchronous loader.
10090
10091 2009-05-13  Chris Fleizach  <cfleizach@apple.com>
10092
10093         Bug 25755: Implement ARIA grid role
10094         https://bugs.webkit.org/show_bug.cgi?id=25755
10095
10096         Fix build bustage from last checkin.
10097
10098         * page/AccessibilityAriaGrid.cpp:
10099         (WebCore::AccessibilityAriaGrid::addChild):
10100
10101 2009-05-13  Chris Fleizach  <cfleizach@apple.com>
10102
10103         Reviewed by Beth Dakin.
10104
10105         Bug 25755: Implement ARIA grid role
10106         https://bugs.webkit.org/show_bug.cgi?id=25755
10107
10108         Test: accessibility/aria-tables.html
10109
10110         * GNUmakefile.am:
10111         * WebCore.pro:
10112         * WebCore.vcproj/WebCore.vcproj:
10113         * WebCore.xcodeproj/project.pbxproj:
10114         * WebCoreSources.bkl:
10115         * page/AXObjectCache.cpp:
10116         (WebCore::AXObjectCache::nodeIsAriaType):
10117         (WebCore::AXObjectCache::getOrCreate):
10118         * page/AXObjectCache.h:
10119         * page/AccessibilityAriaGrid.cpp: Added.
10120         (WebCore::AccessibilityAriaGrid::AccessibilityAriaGrid):
10121         (WebCore::AccessibilityAriaGrid::~AccessibilityAriaGrid):
10122         (WebCore::AccessibilityAriaGrid::create):
10123         (WebCore::AccessibilityAriaGrid::addChild):
10124         (WebCore::AccessibilityAriaGrid::addChildren):
10125         (WebCore::AccessibilityAriaGrid::cellForColumnAndRow):
10126         * page/AccessibilityAriaGrid.h: Added.
10127         (WebCore::AccessibilityAriaGrid::isAriaTable):
10128         * page/AccessibilityAriaGridCell.cpp: Added.
10129         (WebCore::AccessibilityAriaGridCell::AccessibilityAriaGridCell):
10130         (WebCore::AccessibilityAriaGridCell::~AccessibilityAriaGridCell):
10131         (WebCore::AccessibilityAriaGridCell::create):
10132         (WebCore::AccessibilityAriaGridCell::parentTable):
10133         (WebCore::AccessibilityAriaGridCell::rowIndexRange):
10134         (WebCore::AccessibilityAriaGridCell::columnIndexRange):
10135         * page/AccessibilityAriaGridCell.h: Added.
10136         * page/AccessibilityAriaGridRow.cpp: Added.
10137         (WebCore::AccessibilityAriaGridRow::AccessibilityAriaGridRow):
10138         (WebCore::AccessibilityAriaGridRow::~AccessibilityAriaGridRow):
10139         (WebCore::AccessibilityAriaGridRow::create):
10140         (WebCore::AccessibilityAriaGridRow::parentTable):
10141         (WebCore::AccessibilityAriaGridRow::headerObject):
10142         * page/AccessibilityAriaGridRow.h: Added.
10143         * page/AccessibilityList.cpp:
10144         (WebCore::AccessibilityList::accessibilityIsIgnored):
10145         * page/AccessibilityList.h:
10146         * page/AccessibilityObject.h:
10147         (WebCore::):
10148         * page/AccessibilityRenderObject.cpp:
10149         (WebCore::RoleEntry::):
10150         * page/AccessibilityTable.cpp:
10151         (WebCore::AccessibilityTable::AccessibilityTable):
10152         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
10153         * page/AccessibilityTable.h:
10154         (WebCore::AccessibilityTable::isAriaTable):
10155         * page/AccessibilityTableCell.cpp:
10156         (WebCore::AccessibilityTableCell::parentTable):
10157         (WebCore::AccessibilityTableCell::isTableCell):
10158         (WebCore::AccessibilityTableCell::titleUIElement):
10159         * page/AccessibilityTableCell.h:
10160         * page/AccessibilityTableColumn.cpp:
10161         (WebCore::AccessibilityTableColumn::setParentTable):
10162         (WebCore::AccessibilityTableColumn::headerObject):
10163         * page/AccessibilityTableRow.cpp:
10164         (WebCore::AccessibilityTableRow::isTableRow):
10165         (WebCore::AccessibilityTableRow::parentTable):
10166         * page/AccessibilityTableRow.h:
10167         * page/mac/AccessibilityObjectWrapper.mm:
10168         (RoleEntry::):
10169
10170 2009-05-13  David Levin  <levin@chromium.org>
10171
10172         Reviewed by Dimitri Glazkov.
10173
10174         Bug 25763: Need to move v8 custom binding to the custom directory.
10175         https://bugs.webkit.org/show_bug.cgi?id=25763
10176
10177         No test due to no change in behavior.
10178
10179         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: Renamed from WebCore/bindings/v8/V8CanvasPixelArrayCustom.cpp.
10180
10181 2009-05-13  Nate Chapin  <japhet@google.com>
10182
10183         Reviewed by Dimitri Glazkov.
10184
10185         Fix LayoutTests/fast/dom/Element/attr-param-typechecking.html crashing with V8.
10186         https://bugs.webkit.org/show_bug.cgi?id=25758
10187
10188         * bindings/v8/custom/V8ElementCustom.cpp:
10189         (WebCore::CALLBACK_FUNC_DECL): return the result of throwError() if it is called.
10190
10191 2009-05-13  Jeremy Moskovich  <jeremy@chromium.org>
10192
10193         Reviewed by Dave Hyatt.
10194
10195         Fix a number of bugs relating to RTL and text-overflow:ellipsis.
10196         Also refactor the relevant code to make it a little clearer.
10197
10198         This CL fixes 3 fundamental issues:
10199         - Corrects behavior if the truncated InlineTextBox's directionality is
10200           different from the overall flow direction - bug 25135.
10201         - Make decoration drawing in InlineFlowbox RTL-aware - bug 24206.
10202         - Full truncation on InlineBoxes in RTL flow - bug 24186
10203         - Add tests for the above + reorder/cleanup tests for easier
10204           interpretation of outcome.
10205
10206         The code for placing ellipsis has been refactored to use
10207         left/right notation rather than a single variable whose meaning
10208         could differ based on flow directionality.
10209
10210         To support differing inline directionality vs flow directionality,
10211         different variables are now used in InlineTextBox::placeEllipsisBox to
10212         track the two.
10213
10214         The drawing mode for underlines in standards mode now correctly handles
10215         RTL truncation and relevant test where added.
10216
10217         https://bugs.webkit.org/show_bug.cgi?id=24186
10218         https://bugs.webkit.org/show_bug.cgi?id=25135
10219         https://bugs.webkit.org/show_bug.cgi?id=24206
10220
10221         Tests: fast/css/text-overflow-ellipsis-bidi.html
10222                fast/css/text-overflow-ellipsis-strict.html
10223
10224         * rendering/InlineBox.cpp:
10225         (WebCore::InlineBox::placeEllipsisBox):
10226         * rendering/InlineBox.h:
10227         * rendering/InlineFlowBox.cpp:
10228         (WebCore::InlineFlowBox::paintTextDecorations):
10229         (WebCore::InlineFlowBox::placeEllipsisBox):
10230         * rendering/InlineFlowBox.h:
10231         * rendering/InlineTextBox.cpp:
10232         (WebCore::InlineTextBox::placeEllipsisBox):
10233         (WebCore::InlineTextBox::paint):
10234         * rendering/InlineTextBox.h:
10235         * rendering/RenderFlexibleBox.cpp:
10236         (WebCore::RenderFlexibleBox::layoutVerticalBox):
10237         * rendering/RootInlineBox.cpp:
10238         (WebCore::RootInlineBox::placeEllipsis):
10239         (WebCore::RootInlineBox::placeEllipsisBox):
10240         * rendering/RootInlineBox.h:
10241         * rendering/bidi.cpp:
10242         (WebCore::RenderBlock::checkLinesForTextOverflow):
10243
10244 2009-05-13  Dmitry Titov  <dimich@chromium.org>
10245
10246         Rubber-stamped by Mark Rowe.
10247
10248         https://bugs.webkit.org/show_bug.cgi?id=25746
10249         Revert http://trac.webkit.org/changeset/43507 which caused crash in PPC nightlies with Safari 4.
10250
10251         * dom/XMLTokenizerLibxml2.cpp:
10252         (WebCore::matchFunc):
10253         (WebCore::openFunc):
10254         (WebCore::createStringParser):
10255         (WebCore::createMemoryParser):
10256         * loader/icon/IconDatabase.cpp:
10257         (WebCore::IconDatabase::open):
10258         * platform/sql/SQLiteDatabase.cpp:
10259         (WebCore::SQLiteDatabase::SQLiteDatabase):
10260         (WebCore::SQLiteDatabase::close):
10261         * storage/DatabaseThread.cpp:
10262         (WebCore::DatabaseThread::DatabaseThread):
10263         (WebCore::DatabaseThread::start):
10264         (WebCore::DatabaseThread::databaseThread):
10265         * storage/LocalStorageThread.cpp:
10266         (WebCore::LocalStorageThread::LocalStorageThread):
10267         (WebCore::LocalStorageThread::start):
10268         (WebCore::LocalStorageThread::localStorageThread):
10269         (WebCore::LocalStorageThread::scheduleImport):
10270         (WebCore::LocalStorageThread::scheduleSync):
10271         (WebCore::LocalStorageThread::terminate):
10272         * workers/WorkerThread.cpp:
10273         (WebCore::WorkerThread::WorkerThread):
10274         (WebCore::WorkerThread::start):
10275
10276 2009-05-13  David Hyatt  <hyatt@apple.com>
10277
10278         Reviewed by Beth Dakin.
10279
10280         Fix for <rdar://problem/6872894> REGRESSION (r41896-42143): First letter cut off in styled select menus
10281         
10282         Make sure to do rounded clipping for overflow and controls relative to the border box and not to the overflow/control clip rect
10283         (which is typically clipped to the padding or content box).  Doing so was causing rounded clips to be incorrectly applied to padding and
10284         content.
10285     
10286         Added fast/overflow/border-radius-clipping.html
10287
10288         * rendering/RenderBox.cpp:
10289         (WebCore::RenderBox::pushContentsClip):
10290
10291 2009-05-13  Darin Adler  <darin@apple.com>
10292
10293         Revert the parser arena change. It was a slowdown, not a speedup.
10294         Better luck next time (I'll break it up into pieces).
10295
10296 2009-05-13  David Hyatt  <hyatt@apple.com>
10297
10298         Reviewed by Beth Dakin and Darin Adler.
10299
10300         Fix for <rdar://problem/6869687> REGRESSION (r41203): Facebook friend suggestions disappear on update.
10301         
10302         Make sure that renderers are marked for layout if a style change causes them to switch from having a self-painting layer
10303         to a non-self-painting layer (and vice versa).
10304         
10305         Move misplaced layer repainting code that was in RenderBox up into RenderBoxModelObject so that inlines with layers
10306         repaint properly on opacity changes, etc.
10307
10308         Added fast/repaint/opacity-change-on-overflow-float.html.
10309
10310         * rendering/RenderBox.cpp:
10311         (WebCore::RenderBox::styleWillChange):
10312         * rendering/RenderBoxModelObject.cpp:
10313         (WebCore::RenderBoxModelObject::styleWillChange):
10314         (WebCore::RenderBoxModelObject::styleDidChange):
10315         * rendering/RenderBoxModelObject.h:
10316
10317 2009-05-13  Dimitri Glazkov  <dglazkov@chromium.org>
10318
10319         Not reviewed, build fix.
10320
10321         Move an include, needed by Debugger under the corresponding guard.
10322
10323         * inspector/InspectorController.cpp: Moved parser/SourceCode under JAVASCRIPT_DEBUGGER
10324             guard.
10325
10326 2009-05-13  David Levin  <levin@chromium.org>
10327
10328         Reviewed by Darin Adler.
10329
10330         Bug 25394: REGRESSION: crash in DocumentLoader::addResponse due to bad |this| pointer
10331         https://bugs.webkit.org/show_bug.cgi?id=25394
10332
10333         Test: http/tests/xmlhttprequest/frame-unload-abort-crash.html
10334
10335         * loader/SubresourceLoader.cpp:
10336         (WebCore::SubresourceLoader::create):
10337         Add another check to subresource loader to avoid doing any loads in frames
10338         when the loaders are being stopped.
10339
10340 2009-05-13  Stephan Haller  <nomad@froevel.de>
10341
10342         Reviewed by Gustavo Noronha.
10343
10344         Wrong handling of file upload if no file selected
10345         https://bugs.webkit.org/show_bug.cgi?id=25649
10346
10347         Fixed returned path if path is empty
10348
10349         * WebCore/platform/gtk/FileSystemGtk.cpp:
10350
10351 2009-05-13  Dan Bernstein  <mitz@apple.com>
10352
10353         Reviewed by Dave Hyatt.
10354
10355         - fix <rdar://problem/6805567> REGRESSION (r42348): Notes flicker white
10356           when loading
10357
10358         Tests: fast/frames/content-opacity-1.html
10359                fast/frames/content-opacity-2.html
10360
10361         * page/FrameView.cpp:
10362         (WebCore::FrameView::reset): Reset m_contentIsOpaque to false.
10363         (WebCore::FrameView::useSlowRepaints): Use slow repaints if the content
10364         is not known to be opaque.
10365         (WebCore::FrameView::setContentIsOpaque): Added. Sets m_contentIsOpaque
10366         and enables or disables fast repaints accordingly.
10367         * page/FrameView.h:
10368         * rendering/RenderBoxModelObject.cpp:
10369         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Removed the
10370         document()->haveStylesheetsLoaded() condition in determining whether the
10371         root is opaque. This is what was causing the bug, as iframes were
10372         considered to be opaque, and thus painted an opaque white background,
10373         whenever they were pending a style sheet load.
10374         Changed to call FrameView::setContentIsOpaqe() instead of
10375         setUseSlowRepaints(), which allows the frame to go back to fast repaints
10376         if the content becomes opaque.
10377         Corrected the check for background color opacity: any alpha value other
10378         than 255--not just zero--is not opaque.
10379
10380 2009-05-13  Ariya Hidayat  <ariya.hidayat@nokia.com>
10381
10382         Reviewed by Sam Weinig.
10383
10384         [Qt] Fix "lighther" composition mode.
10385         QPainter::CompositionMode_Plus is the right match.
10386
10387         * platform/graphics/qt/GraphicsContextQt.cpp:
10388         (WebCore::toQtCompositionMode):
10389
10390 2009-05-13  Darin Adler  <darin@apple.com>
10391
10392         Reviewed by Cameron Zwarich.
10393
10394         Bug 25674: syntax tree nodes should use arena allocation
10395         https://bugs.webkit.org/show_bug.cgi?id=25674
10396
10397         * bindings/js/JSDOMBinding.h: Removed include of JSFunction.h.
10398         We don't want the entire DOM binding to depend on that file.
10399
10400         * bindings/js/JSAudioConstructor.cpp: Added include of Error.h.
10401         Before we inherited this automatically because JDDOMBinding.h
10402         included JSFunction.h, but that was excessive.
10403         * bindings/js/JSDOMWindowCustom.cpp: Ditto.
10404         * bindings/js/JSHTMLInputElementCustom.cpp: Ditto.
10405         * bindings/js/JSImageConstructor.cpp: Ditto.
10406         * bindings/js/JSLazyEventListener.cpp: Ditto, but for JSFunction.h.
10407         * bindings/js/JSMessageChannelConstructor.cpp: Ditto.
10408         * bindings/js/JSOptionConstructor.cpp: Ditto.
10409         * bindings/js/JSWorkerConstructor.cpp: Ditto.
10410         * bindings/js/JSXMLHttpRequestConstructor.cpp: Ditto.
10411         * bridge/jni/jni_jsobject.mm: Ditto, but for SourceCode.h.
10412         * inspector/InspectorController.cpp: Ditto.
10413
10414         * inspector/JavaScriptDebugServer.cpp:
10415         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
10416         Moved mose of this function into the base class in JavaScriptCore,
10417         so the details of compilation don't have to be exposed.
10418
10419 2009-05-13  Douglas R. Davidson  <ddavidso@apple.com>
10420
10421         Reviewed by Darin Adler.
10422
10423         <rdar://problem/6879145>
10424         Generate a contextual menu item allowing autocorrections to
10425         easily be changed back.  Refrain from re-correcting items
10426         that have already been autocorrected once.
10427
10428         * dom/DocumentMarker.h:
10429         * editing/Editor.cpp:
10430         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
10431         (WebCore::Editor::changeBackToReplacedString):
10432         * editing/Editor.h:
10433         * page/ContextMenuController.cpp:
10434         (WebCore::ContextMenuController::contextMenuItemSelected):
10435         * page/mac/WebCoreViewFactory.h:
10436         * platform/ContextMenu.cpp:
10437         (WebCore::ContextMenu::populate):
10438         (WebCore::ContextMenu::checkOrEnableIfNeeded):
10439         * platform/ContextMenuItem.h:
10440         * platform/LocalizedStrings.h:
10441         * platform/mac/LocalizedStringsMac.mm:
10442         (WebCore::contextMenuItemTagChangeBack):
10443         * rendering/HitTestResult.cpp:
10444         (WebCore::HitTestResult::replacedString):
10445         * rendering/HitTestResult.h:
10446         * rendering/InlineTextBox.cpp:
10447         (WebCore::InlineTextBox::computeRectForReplacementMarker):
10448         (WebCore::InlineTextBox::paintDocumentMarkers):
10449         * rendering/InlineTextBox.h:
10450
10451 2009-05-13  Holger Hans Peter Freyther  <zecke@selfish.org>
10452
10453         Rubber Stamped by Oliver Hunt.
10454
10455         [GTK] Fix Gtk+/X11 build on OSX
10456
10457         Including the CoreFoundation header here and X11 headers
10458         later will result in different definitions of Boolean. The
10459         CoreFoundation include does not seem to be necessary here
10460         and my mac build was successfull without it. I will remove
10461         it for now. If the build bots disagree this will be replaced
10462         by a #if PLATFORM(CF).
10463
10464         * platform/FileSystem.h:
10465
10466 2009-05-13  Holger Hans Peter Freyther  <zecke@selfish.org>
10467
10468         Rubber Stamped by Gustavo Noronha.
10469
10470         [GTK] Move the #ifdef around for a buildfix for Gtk+ on OSX
10471
10472         When building Gtk+ on OSX we ended up declaring
10473         setNPWindowIfNeeded twice. Fix that by moving
10474         the #if PLATFORM(GTK) up and using elif instead of
10475         else.
10476
10477         * plugins/PluginView.h:
10478
10479 2009-05-13  Holger Hans Peter Freyther  <zecke@selfish.org>
10480
10481         Reviewed by Xan Lopez.
10482
10483         https://bugs.webkit.org/show_bug.cgi?id=25685
10484         [GTK] Middle click paste form the pasteboard
10485
10486         The kit wants to paste from at least two different
10487         clipboards. By introducing getCurrentTarget to the
10488         PasteboardHelper interface we can make this decision
10489         in the kit.
10490         Use the new method in PasteboardGtk to get the right
10491         GdkClipboard for the paste operation.
10492
10493         * platform/gtk/PasteboardGtk.cpp:
10494         (WebCore::Pasteboard::documentFragment):
10495         (WebCore::Pasteboard::plainText):
10496         * platform/gtk/PasteboardHelper.h:
10497
10498 2009-05-13  Eric Carlson  <eric.carlson@apple.com>
10499
10500         Reviewed by Darin Adler.
10501
10502         <rdar://problem/6438177> QTMoviePreferredTransformAttribute only supported on SnowLeopard
10503         <rdar://problem/6872468> QTMovieOpenForPlaybackAttribute only supported on SnowLeopard
10504
10505         QTMoviePreferredTransformAttribute and QTMovieOpenForPlaybackAttribute are not supported
10506         on Tiger or Leopard.
10507
10508         * html/HTMLMediaElement.cpp:
10509         (WebCore::HTMLMediaElement::setNetworkState): Remove invalid ASSERT.
10510
10511         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
10512         (WebCore::MediaPlayerPrivate::createQTMovie): Only request QTMoviePreferredTransformAttribute
10513         when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD.
10514         (WebCore::MediaPlayerPrivate::cacheMovieScale): Only ask for QTMovieOpenForPlaybackAttribute 
10515         when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD,
10516
10517 2009-05-12  Roland Steiner <rolandsteiner@google.com>
10518
10519         Reviewed by Eric Seidel.
10520
10521         Bug 25738: Skia: CSS border style not cleared for SVG object
10522         https://bugs.webkit.org/show_bug.cgi?id=25738
10523
10524         If no dashing is set, this change reverts to solid stroke
10525         (previously the code bailed and left the old setting, whatever it was)
10526
10527         Test case listed in above bug entry.
10528         (Additional complications due to each platform rendering dotted lines differently -
10529         c.f. https://bugs.webkit.org/show_bug.cgi?id=25737)
10530
10531         * platform/graphics/skia/GraphicsContextSkia.cpp:
10532         (WebCore::GraphicsContext::setLineDash):
10533
10534 2009-05-11  Erik Arvidsson  <arv@chromium.org>
10535
10536         Reviewed by Eric Seidel.
10537
10538         Bug 21903: Adds DOM bindings for the placeholder property of the
10539         HTMLInputElement.
10540         https://bugs.webkit.org/show_bug.cgi?id=21903
10541
10542         Test: fast/forms/placeholder-dom-property.html
10543
10544         * dom/InputElement.cpp:
10545         (WebCore::InputElement::updatePlaceholderVisibility):
10546         * dom/InputElement.h:
10547         * html/HTMLInputElement.cpp:
10548         (WebCore::HTMLInputElement::placeholder):
10549         (WebCore::HTMLInputElement::setPlaceholder):
10550         * html/HTMLInputElement.h:
10551         * html/HTMLInputElement.idl:
10552         * rendering/RenderTextControlSingleLine.cpp:
10553         (WebCore::RenderTextControlSingleLine::updateFromElement):
10554         * wml/WMLInputElement.h:
10555         (WebCore::WMLInputElement::placeholder):
10556         (WebCore::WMLInputElement::setPlaceholder):
10557
10558 2009-05-12  Adam Barth  <abarth@webkit.org>
10559
10560         Reviewed by Dimitri Glazkov.
10561
10562         https://bugs.webkit.org/show_bug.cgi?id=25706
10563
10564         Change V8 bindings to match JSC bindings with respect to using
10565         the lexical or dynamic global object.
10566
10567         Tests: http/tests/security/aboutBlank/security-context-grandchildren-lexical.html
10568                http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html
10569                http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html
10570
10571         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
10572         (WebCore::CALLBACK_FUNC_DECL):
10573
10574 2009-03-19  Oliver Hunt  <oliver@apple.com>
10575
10576         Reviewed by Darin Adler.
10577
10578         <rdar://problem/6702386> Incorrect bound check in SVGList::insertItemBefore
10579
10580         SVGList::insertItemBefore would not perform a bounds check on the
10581         index it was provided, potentially leading to a buffer overflow. 
10582
10583         Test: svg/dom/svglist-exception-on-out-bounds-error.html
10584
10585         * svg/SVGList.h:
10586         (WebCore::SVGList::insertItemBefore):
10587
10588 2009-05-12  Paul Godavari  <paul@chromium.org>
10589
10590         Reviewed by Dimitri Glazkov.
10591
10592         Bug 25708: Cannot choose menu items in popups with many entries in Chromium
10593         https://bugs.webkit.org/show_bug.cgi?id=25708
10594
10595         This change sets the window size for popups on Mac to include all items
10596         in the menu. This is required for hit testing on Mac, where we use native
10597         controls to manage the popups and don't want to artificially limit the
10598         valid hit testing region to a limited scroll window.
10599
10600         * platform/chromium/PopupMenuChromium.cpp:
10601         (WebCore::PopupListBox::layout):
10602
10603 2009-05-12  Stephen White  <senorblanco@chromium.org>
10604
10605         Reviewed by Dimitri Glazkov.
10606
10607         Fixes to build with latest skia:  SkTypeface::Create() is now
10608         SkTypeface::CreateFromName(); computeBounds() has been reworked
10609         as getBounds().  The changes are placed behind an #ifdef for now,
10610         so that we can roll back the skia version in Chromium if necessary
10611         without having to roll back this change.
10612
10613         https://bugs.webkit.org/show_bug.cgi?id=25705
10614
10615         * platform/graphics/chromium/FontCacheLinux.cpp:
10616         (WebCore::FontCache::createFontPlatformData):
10617         * platform/graphics/skia/PathSkia.cpp:
10618         (WebCore::Path::boundingRect):
10619         (WebCore::boundingBoxForCurrentStroke):
10620         * platform/graphics/skia/SkiaUtils.cpp:
10621         (WebCore::SkPathContainsPoint):
10622
10623 2009-05-12  Nate Chapin  <japhet@google.com>
10624
10625         Reviewed by Dimitri Glazkov.
10626
10627         https://bugs.webkit.org/show_bug.cgi?id=25732
10628         Update V8ElementCustom.cpp to match the current API of V8Proxy.
10629
10630         (WebCore::ACCESSOR_SETTER): Change retrieveActiveFrame() to retrieveFrameForEnteredContext().
10631
10632 2009-05-12  Alexey Proskuryakov  <ap@webkit.org>
10633
10634         Reviewed by Darin Adler.
10635
10636         https://bugs.webkit.org/show_bug.cgi?id=25694
10637         HTMLParser::createHead() ASSERT: Creating an element, calling  document.open() and writing
10638         to the document NULL ptr
10639
10640         Test: fast/parser/implicit-head-in-fragment-crash.html
10641
10642         * html/HTMLParser.cpp: (WebCore::HTMLParser::bodyCreateErrorCheck): Do not try to implicitly
10643         create <head> when parsing a fragment.
10644
10645 2009-05-12  Soren Gjesse  <sgjesse@chromium.org>
10646
10647         Reviewed by Dimitri Glazkov.
10648
10649         https://bugs.webkit.org/show_bug.cgi?id=25687
10650         Missing check for valid function in V8 bindings for toString function for event listeners.
10651
10652         * bindings/v8/V8LazyEventListener.cpp:
10653         (WebCore::V8LazyEventListener::getWrappedListenerFunction): Added empty handle checks.
10654
10655 2009-05-11  Yael Aharon  <yael.aharon@nokia.com>
10656
10657         Reviewed by Holger Freyther.
10658
10659         Change Qt port to match the mac and windows ports, and unregister plugins when plugins are stopped.
10660         Not doing that can cause assersion failure.
10661         https://bugs.webkit.org/show_bug.cgi?id=25702
10662
10663         * plugins/qt/PluginViewQt.cpp:
10664         (WebCore::PluginView::stop):
10665
10666 2009-05-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
10667
10668         Reviewed by Holger Freyther.
10669
10670         Bug 25714: [Qt] Decouple HTML5 Database support from the
10671         SQLite/generic database support in the Qt port
10672
10673         <https://bugs.webkit.org/show_bug.cgi?id=25714>
10674
10675         * WebCore.pro:
10676
10677 2009-05-11  Chris Fleizach  <cfleizach@apple.com>
10678
10679         Reviewed by Beth Dakin.
10680
10681         Bug 25713: AX: Control Elements not identified in HTML content
10682         https://bugs.webkit.org/show_bug.cgi?id=25713
10683
10684         Test: accessibility/onclick-handlers.html
10685
10686         * page/AccessibilityRenderObject.cpp:
10687         (WebCore::AccessibilityRenderObject::mouseButtonListener):
10688
10689 2009-05-11  Darin Adler  <darin@apple.com>
10690
10691         Reviewed by Dan Bernstein.
10692
10693         <rdar://problem/6276843> REGRESSION: TextIterator generates
10694         an extra newline for ranges that start outside of body
10695
10696         * editing/TextIterator.cpp:
10697         (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
10698         Check startPos for null, not just currPos.
10699
10700 2009-05-11  Chris Fleizach  <cfleizach@apple.com>
10701
10702         Reviewed by Darin Adler.
10703
10704         Bug 25700: Regression:WebKit:cmd-left and cmd-right use to go to the beginning and end of a line in Mail
10705         https://bugs.webkit.org/show_bug.cgi?id=25700
10706
10707         Keyboard selection movement handlers need to also watch for the Cmd key when Accessibility is enabled.
10708         Note: This code is only used when accessibility is enabled.
10709
10710         * page/EventHandler.cpp:
10711         (WebCore::EventHandler::handleKeyboardSelectionMovement):
10712
10713 2009-05-11  David Kilzer  <ddkilzer@apple.com>
10714
10715         Bug 25087: Test for ENABLE_FOO macros consistently in IDL files
10716
10717         <https://bugs.webkit.org/show_bug.cgi?id=25087>
10718
10719         Reviewed by Timothy Hatcher.
10720
10721         Change tests for ENABLE macros to check for both existence and
10722         value:
10723
10724         - Negative:  #if !defined(ENABLE_FOO) || !ENABLE_FOO
10725         - Positive:  #if defined(ENABLE_FOO) && ENABLE_FOO
10726
10727         * css/CSSCharsetRule.idl:
10728         * css/CSSPrimitiveValue.idl:
10729         * css/RGBColor.idl:
10730         * dom/Attr.idl:
10731         * dom/DOMCoreException.idl:
10732         * dom/DOMImplementation.idl:
10733         * dom/Document.idl:
10734         * dom/Element.idl:
10735         * dom/Event.idl:
10736         * dom/EventException.idl:
10737         * dom/KeyboardEvent.idl:
10738         * dom/MessagePort.idl:
10739         * dom/MouseEvent.idl:
10740         * dom/Node.idl:
10741         * dom/ProcessingInstruction.idl:
10742         * dom/Range.idl:
10743         * dom/RangeException.idl:
10744         * dom/WheelEvent.idl:
10745         * html/CanvasPixelArray.idl:
10746         * html/HTMLAnchorElement.idl:
10747         * html/HTMLAppletElement.idl:
10748         * html/HTMLAreaElement.idl:
10749         * html/HTMLBaseFontElement.idl:
10750         * html/HTMLCanvasElement.idl:
10751         * html/HTMLDocument.idl:
10752         * html/HTMLElement.idl:
10753         * html/HTMLEmbedElement.idl:
10754         * html/HTMLFrameElement.idl:
10755         * html/HTMLIFrameElement.idl:
10756         * html/HTMLImageElement.idl:
10757         * html/HTMLInputElement.idl:
10758         * html/HTMLLinkElement.idl:
10759         * html/HTMLObjectElement.idl:
10760         * html/HTMLOptionElement.idl:
10761         * html/HTMLOptionsCollection.idl:
10762         * html/HTMLSelectElement.idl:
10763         * html/HTMLStyleElement.idl:
10764         * html/ImageData.idl:
10765         * inspector/InspectorController.idl:
10766         * loader/appcache/DOMApplicationCache.idl:
10767         * page/Console.idl:
10768         * page/Coordinates.idl:
10769         * page/DOMSelection.idl:
10770         * page/DOMWindow.idl:
10771         * page/Geoposition.idl:
10772         * page/History.idl:
10773         * page/Location.idl:
10774         * page/Navigator.idl:
10775         * svg/SVGElementInstance.idl:
10776         * svg/SVGException.idl:
10777         * workers/WorkerContext.idl:
10778         * xml/XMLHttpRequestException.idl:
10779         * xml/XPathException.idl:
10780
10781 2009-05-11  Norbert Leser  <norbert.leser@nokia.com>
10782
10783         Reviewed by Darin Adler.
10784
10785         Bug 24538: class/struct mixup in forward declarations
10786         https://bugs.webkit.org/show_bug.cgi?id=24538
10787
10788         * inspector/InspectorResource.h:
10789         * loader/CachedFont.h:
10790         * loader/appcache/ApplicationCache.h:
10791         * rendering/RenderBlock.h:
10792         * rendering/RootInlineBox.h:
10793         * rendering/SVGInlineTextBox.h:
10794         * svg/SVGGlyphElement.h:
10795         * svg/SVGHKernElement.h:
10796
10797 2009-05-11  Norbert Leser  <norbert.leser@nokia.com>
10798
10799         Reviewed by Darin Adler.
10800
10801         Bug 24539: Unresolved CSSMutableStyleDeclaration
10802         https://bugs.webkit.org/show_bug.cgi?id=24539
10803
10804         The Symbian tools can't compile and link this without this include.
10805         It's not clear why this is different from other toolsets or why it affects
10806         only this header file, but adding the include for now.
10807
10808         * editing/RemoveCSSPropertyCommand.h: Added include of CSSMutableStyleDeclaration.h.
10809
10810 2009-05-11  Alice Liu  <alice.liu@apple.com>
10811
10812         Reviewed by Dan Bernstein.
10813
10814         https://bugs.webkit.org/show_bug.cgi?id=25701
10815         REGRESSION(r38788 & r42020): styled searchfields look wrong on Windows, affects Facebook
10816
10817         Test: fast/forms/search-styled.html
10818
10819         * css/themeWin.css:
10820         Remove the overriding of -webkit-appearance for searchfields. This will cause background
10821         images to not be honored when styling searchfields
10822
10823         * rendering/RenderThemeWin.cpp:
10824         (WebCore::RenderThemeWin::adjustSearchFieldStyle):
10825         * rendering/RenderThemeWin.h:
10826         Re-instate final adjustments to searchfield styling that were removed in r42020
10827
10828 2009-05-11  Brady Eidson  <beidson@apple.com>
10829
10830         Fix Windows build
10831
10832         * platform/network/cf/ResourceHandleCFNet.cpp:
10833         (WebCore::createCFURLResponseWithDefaultMIMEType):
10834
10835 2009-05-11  Nate Chapin  <japhet@google.com>
10836
10837         Reviewed by Dimitri Glazkov.
10838
10839         https://bugs.webkit.org/show_bug.cgi?id=25626
10840         Update V8ElementCustom.cpp to match the current API of Node.
10841
10842         * bindings/v8/custom/V8ElementCustom.cpp:
10843         (WebCore::ACCESSOR_SETTER): Changed a couple of method names to match current names.
10844         (WebCore::ACCESSOR_GETTER): Changed a method name to match current name.
10845
10846 2009-05-11  Brady Eidson  <beidson@apple.com>
10847
10848         Fix Windows build
10849
10850         * platform/network/cf/ResourceHandleCFNet.cpp:
10851         (WebCore::createCFURLResponseWithDefaultMIMEType):
10852         (WebCore::WebCoreSynchronousLoader::load):
10853
10854 2009-05-11  Brady Eidson  <beidson@apple.com>
10855
10856         Fix Windows build
10857
10858         * platform/network/cf/ResourceHandleCFNet.cpp:
10859         (WebCore::createCFURLResponseWithDefaultMIMEType):
10860
10861 2009-05-11  Nate Chapin  <japhet@google.com>
10862
10863         Reviewed by Dimitri Glazkov.
10864
10865         V8CustomBinding.cpp is missing a header file
10866
10867         https://bugs.webkit.org/show_bug.cgi?id=25644
10868
10869         * bindings/v8/custom/V8CustomBinding.cpp: Added #include "V8Proxy.h".
10870
10871 2009-05-11  Aaron Boodman  <aa@chromium.org>
10872
10873         Reviewed by Darin Fisher.
10874
10875         https://bugs.webkit.org/show_bug.cgi?id=25634
10876         Change V8Proxy::retrieveActiveFrame() call sites to V8Proxy::retrieveFrameForEnteredContext().
10877
10878         Also, change instances of ScriptController::retrieveActiveFrame() to
10879         V8::retrieveFrameForEnteredContext() for consistency.
10880
10881
10882         See http://codereview.chromium.org/113085 for the corresponding Chromium change.
10883
10884         * bindings/v8/custom/V8DOMWindowCustom.cpp:
10885         (WebCore::V8Custom::WindowSetLocation):
10886         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
10887         (WebCore::CALLBACK_FUNC_DECL):
10888         * bindings/v8/custom/V8LocationCustom.cpp:
10889         (WebCore::navigateIfAllowed):
10890         (WebCore::ACCESSOR_SETTER):
10891         (WebCore::CALLBACK_FUNC_DECL):
10892
10893 2009-05-11  Brady Eidson  <beidson@apple.com>
10894
10895         Reviewed by Darin Adler.
10896
10897         <rdar://problem/5972751> Local image files (BMP, ico) can be misidentified as HTML.
10898
10899         First part of the fix - Disable content sniffing for file resources which never should've been happening anyways.
10900         Second part of the fix - If the networking layer doesn't give us back a MIME type default to "application/octet-stream".
10901
10902         * platform/MIMETypeRegistry.cpp:
10903         (WebCore::defaultMIMEType): "application/octet-stream"
10904         * platform/MIMETypeRegistry.h:
10905
10906         * platform/network/ResourceHandle.cpp:
10907         (WebCore::ResourceHandle::create): If content sniffing is true, double check with "shouldContentSniffRequest()" which
10908           might override it to false.
10909         (WebCore::ResourceHandle::shouldContentSniffURL): Return false for file:// urls, true for everything else.
10910         * platform/network/ResourceHandle.h:
10911
10912         * platform/network/cf/ResourceHandleCFNet.cpp:
10913         (WebCore::createCFURLResponseWithDefaultMIMEType): Create a copy of the CFURLRequest with the default MIME type instead
10914           of null.
10915         (WebCore::didReceiveResponse): If the MIME type for the response is null, create a copy with the default MIME type.
10916         (WebCore::WebCoreSynchronousLoader::load): Use shouldContentSniffRequest() to make synchronous loads have the same 
10917           sniffing policy as asynchronous loads.  Also, correct a null MIME type by creating a copy with the default type.
10918
10919         * platform/network/mac/ResourceHandleMac.mm:
10920         (WebCore::ResourceHandle::loadResourceSynchronously): Use shouldContentSniffRequest() to make synchronous loads have the
10921           same sniffing policy as asynchronous loads.
10922         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Set up the [NSURLResponse MIMEType] swizzling if
10923           it hasn't been set up yet.
10924         (_web_NSURLResponse_MIMEType): Either return the actual MIME type of the response, or the default MIME type if it's nil.
10925
10926         * xml/XMLHttpRequest.cpp:
10927         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Remove the workaround added in r29370 as it will now be covered by
10928           the new mechanism.
10929
10930 2009-05-11  David Kilzer  <ddkilzer@apple.com>
10931
10932         Fix typo "APPLICATION_CAHE_DYNAMIC_ENTRIES" to "APPLICATION_CACHE_DYNAMIC_ENTRIES"
10933
10934         This was added in r39816 to disable dynamic entries.  They are
10935         still disabled after fixing the typo since this feature define
10936         is never set anywhere.
10937
10938         * bindings/js/JSDOMApplicationCacheCustom.cpp:
10939         * loader/appcache/DOMApplicationCache.idl:
10940
10941 2009-05-11  Dmitry Titov  <dimich@chromium.org>
10942
10943         Reviewed by Alexey Proskuryakov and Adam Roben.
10944
10945         https://bugs.webkit.org/show_bug.cgi?id=25348
10946         Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
10947
10948         Most of the change is in WTF.
10949         Unless noted, all the following files changed to use the new ThreadIdentifier::isValid()
10950         method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier
10951         is now a class rather then an integer.
10952         Also, there is no need to initialize threadID in constructors to 0 now.
10953
10954         * dom/XMLTokenizerLibxml2.cpp:
10955         (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id,
10956         since now ThreadIdentifier needs construction and we avoid having global initializers.
10957         (WebCore::matchFunc): use the new accessor function.
10958         (WebCore::openFunc): ditto.
10959         (WebCore::createStringParser): ditto.
10960         (WebCore::createMemoryParser): ditto.
10961         * loader/icon/IconDatabase.cpp:
10962         (WebCore::IconDatabase::open):
10963         * platform/sql/SQLiteDatabase.cpp:
10964         (WebCore::SQLiteDatabase::SQLiteDatabase):
10965         (WebCore::SQLiteDatabase::close):
10966         * storage/DatabaseThread.cpp:
10967         (WebCore::DatabaseThread::start):
10968         (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output.
10969         * storage/LocalStorageThread.cpp:
10970         (WebCore::LocalStorageThread::start):
10971         (WebCore::LocalStorageThread::scheduleImport):
10972         (WebCore::LocalStorageThread::scheduleSync):
10973         (WebCore::LocalStorageThread::terminate):
10974         * workers/WorkerThread.cpp:
10975         (WebCore::WorkerThread::start):
10976         (WebCore::WorkerThread::WorkerThread):
10977         (WebCore::WorkerThread::start):
10978
10979 2009-05-11  Brady Eidson  <beidson@apple.com>
10980
10981         Reviewed by Darin Adler.
10982
10983         Remove unused header that declared one function which was never defined anywhere.
10984
10985         * WebCore.vcproj/WebCore.vcproj:
10986         * platform/network/cf/ResourceResponseCFNet.cpp: Change to include ResourceResponse.h (which really means
10987           platform/network/cf/ResourceResponse.h)
10988         * platform/network/cf/ResourceResponseCFNet.h: Removed.
10989
10990 2009-05-11  Dimitri Glazkov  <dglazkov@chromium.org>
10991
10992         Reviewed by Timothy Hatcher.
10993
10994         https://bugs.webkit.org/show_bug.cgi?id=25213
10995         Fix assert during Inspector destruction.
10996
10997         * inspector/InspectorController.cpp:
10998         (WebCore::InspectorController::inspectedPageDestroyed): Moved closing
10999             inspector above removing InspectorController object to fix JS errors,
11000             added clearing inspector page ptr.
11001
11002 2009-05-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
11003
11004         Reviewed by Holger Freyther.
11005
11006         [Qt] Make sure that public APIs are properly exported on all Qt platforms
11007         https://bugs.webkit.org/show_bug.cgi?id=25601
11008
11009         * WebCore.pro: Define QT_MAKEDLL for all non-static builds, not just for win
11010
11011 2009-05-11  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>
11012
11013         Reviewed by Holger Freyther.
11014
11015         https://bugs.webkit.org/show_bug.cgi?id=24284
11016
11017         * WebCore.pro: duplicated values removed from INCLUDEPATH
11018
11019 2009-05-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
11020
11021         Reviewed by Eric Seidel.
11022
11023         Build fix Symbian; clean Up WebKit/Qt if ENABLE_NETSCAPE_PLUGIN_API=0
11024         https://bugs.webkit.org/show_bug.cgi?id=24688
11025
11026         * WebCore.pro: Use platform independent plugin stubs if ENABLE_NETSCAPE_PLUGIN_API=0
11027         * platform/qt/TemporaryLinkStubs.cpp: Remove stub functions for plugins
11028
11029 2009-05-10  Dan Bernstein  <mitz@apple.com>
11030
11031         Reviewed by Darin Adler.
11032
11033         - fix a crash when deactivating a document that had adopted a <form>
11034           element
11035
11036         Test: fast/dom/HTMLFormElement/document-deactivation-callback-crash.html
11037
11038         * html/HTMLFormElement.cpp:
11039         (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Corrected the
11040         logic here: <form> elements should be registered for document activation
11041         callbacks if and only if autocomplete is off.
11042
11043 2009-05-10  Alexey Proskuryakov  <ap@webkit.org>
11044
11045         Reviewed by Dan Bernstein.
11046
11047         <rdar://problem/6867598> REGRESSION (r42483): Have to enter credentials twice when trying
11048         to view protected MobileMe video
11049
11050         Add a temporary workaround.
11051
11052         * platform/network/ResourceHandleInternal.h:
11053         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
11054         Added an m_useSiteSpecificQuirks boolean (Mac-only). A Frame pointer is only available when
11055         starting a request, so we need to store this data for later use.
11056
11057         * platform/network/mac/ResourceHandleMac.mm:
11058         (WebCore::ResourceHandle::start): Initialize m_useSiteSpecificQuirks.
11059         (WebCore::ResourceHandle::receivedCredential): Use per-session credentials with gallery.me.com.
11060
11061 2009-05-10  Alexey Proskuryakov  <ap@webkit.org>
11062
11063         Reviewed by Dan Bernstein.
11064
11065         <rdar://problem/6870383> Have to enter credentials twice when downloading from a protected page
11066
11067         * platform/network/cf/AuthenticationCF.cpp:
11068         * platform/network/cf/AuthenticationCF.h:
11069         (WebCore::WebCoreCredentialStorage::set):
11070         (WebCore::WebCoreCredentialStorage::get):
11071         * platform/network/cf/ResourceHandleCFNet.cpp:
11072         Move WebCore credential storage to AuthenticationCF, so that WebKit could use it (macthing
11073         an earlier Mac change).
11074
11075 2009-05-10  Alexey Proskuryakov  <ap@webkit.org>
11076
11077         Reviewed by Dan Bernstein.
11078
11079         Match newer XMLHttpRequest draft and make withCredential setter raise an exception when
11080         called at a wrong time.
11081
11082         No test, because we are waiting for a newer version of system frameworks to test the attribute.
11083
11084         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::setWithCredentials):
11085         * xml/XMLHttpRequest.h:
11086         * xml/XMLHttpRequest.idl:
11087         Raise INVALID_STATE_ERR if the state is not OPENED, or if the send() flag is true.
11088
11089 2009-05-10  Dan Bernstein  <mitz@apple.com>
11090
11091         Reviewed by Dave Kilzer.
11092
11093         - fix https://bugs.webkit.org/show_bug.cgi?id=25602
11094           REGRESSION: fast/overflow/overflow-focus-ring.html seems double-drawn
11095           on ToT
11096
11097         Test: fast/layers/self-painting-outline.html
11098
11099         * rendering/RenderLayer.cpp:
11100         (WebCore::RenderLayer::paintLayer): Paint the layer's own outline only
11101         if it is a self-painting layer.
11102
11103 2009-05-09  Dan Bernstein  <mitz@apple.com>
11104
11105         Reviewed by Geoffrey Garen and Mark Rowe.
11106
11107         - fix https://bugs.webkit.org/show_bug.cgi?id=25666
11108           Assertion failure in Node::setDocument()
11109           (willMoveToNewOwnerDocumentWasCalled) when adopting a <form> element
11110
11111         Test: fast/dom/HTMLFormElement/adopt-assertion.html
11112
11113         * html/HTMLFormElement.cpp:
11114         (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Overrides of
11115         this method are required to call the base class implementation. Do it.
11116         (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Ditto.
11117
11118 2009-03-29  Kevin Ollivier  <kevino@theolliviers.com>
11119
11120         Reviewed by Maciej Stachowiak.
11121
11122         WebCore::DocumentLoader::mainReceivedError now asserts if error.isNull(), so
11123         make sure CURL does not create empty ResourceError() objects.
11124         
11125         https://bugs.webkit.org/show_bug.cgi?id=24927
11126
11127         * platform/network/curl/ResourceHandleManager.cpp:
11128         (WebCore::ResourceHandleManager::downloadTimerCallback):
11129
11130 2009-05-09  Gustavo Noronha Silva  <gns@gnome.org>
11131
11132         Build fix, adding missing files to make dist.
11133
11134         * GNUmakefile.am:
11135
11136 2009-05-08  Simon Fraser  <simon.fraser@apple.com>
11137
11138         Reviewed by Dan Bernstein
11139         
11140         https://bugs.webkit.org/show_bug.cgi?id=25656
11141         
11142         Reduce the inline capacity of CSSParserValueList's m_values
11143         vector to reduce the size of CSSParserValueList from 544 to 160 bytes in 64-bit.
11144
11145         * css/CSSParserValues.h:
11146
11147 2009-05-08  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
11148
11149         Not reviewed. Used sort-Xcode-project-file to sort the XCode project file - it hasn't been done for a while.
11150
11151         * WebCore.xcodeproj/project.pbxproj:
11152
11153 2009-05-08  Dan Bernstein  <mitz@apple.com>
11154
11155         Reviewed by Darin Adler.
11156
11157         - fix <rdar://problem/6864786> REGRESSION: Crash below
11158           ApplyStyleCommand::applyInlineStyleToRange when reviewing a patch in
11159           Bugzilla
11160
11161         Test: editing/style/apply-through-end-of-document.html
11162
11163         * editing/ApplyStyleCommand.cpp:
11164         (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Added a null
11165         check for the case of a range extending through the end of the document,
11166         in which pastEndNode is 0.
11167
11168 2009-05-08  Douglas R. Davidson  <ddavidso@apple.com>
11169
11170         Reviewed by Beth Dakin.
11171
11172         <rdar://problem/6857446> REGRESSION (Safari 3-4): Contraction base 
11173         marked as misspelled even though contraction is a word
11174         Make sure spelling underline does not persist on words like 
11175         <doesn't>.  
11176
11177         * editing/TypingCommand.cpp:
11178         (WebCore::TypingCommand::typingAddedToOpenCommand):
11179
11180 2009-05-08  Kevin Watters  <kevinwatters@gmail.com>
11181
11182         Reviewed by Kevin Ollivier.
11183
11184         Make sure the path's refdata isn't deleted before we're done with the object.
11185         
11186         https://bugs.webkit.org/show_bug.cgi?id=25652
11187
11188         * platform/graphics/wx/PathWx.cpp:
11189         (WebCore::Path::~Path):
11190         (WebCore::Path::Path):
11191         (WebCore::Path::translate):
11192
11193 2009-05-08  Kevin Watters  <kevinwatters@gmail.com>
11194
11195         Reviewed by Darin Adler.
11196
11197         Fix for memory leak on Mac.
11198         
11199         https://bugs.webkit.org/show_bug.cgi?id=25650
11200
11201         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
11202         (wxFontProperties::wxFontProperties):
11203
11204 2009-05-08  Beth Dakin  <bdakin@apple.com>
11205
11206         Reviewed by Dan Bernstein.
11207
11208         <rdar://problem/6857446> REGRESSION (r37591): Cannot print or 
11209         preview from maps.yandex.ru
11210
11211         We need to fall into the stretchesToViewHeight() quirk when we are 
11212         printing and we are the root and the root has percentage height OR 
11213         when we are the body and the root has percentage height. Otherwise 
11214         we have a height of 0 and can run into painting troubles.
11215
11216         * rendering/RenderBox.cpp:
11217         (WebCore::RenderBox::calcHeight):
11218
11219 2009-05-08  Douglas Davidson  <ddavidso@apple.com>
11220
11221         Reviewed by Darin Adler.
11222
11223         Fixes for <rdar://problem/6852771>.
11224         Prevent text checking replacement immediately after an apostrophe
11225         and automatic link addition except immediately after typing.
11226
11227         * editing/Editor.cpp:
11228         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
11229
11230 2009-05-08  Eric Carlson  <eric.carlson@apple.com>
11231
11232         Reviewed by Darin Adler.
11233         
11234         https://bugs.webkit.org/show_bug.cgi?id=25627
11235         Bug 25627: HTMLMediaElement: some errors should fire on <source> elements
11236
11237         Update for HTML5 spec change to fire 'error' events on <source> element
11238         when there is a failure while processing/loading a <source>.
11239
11240         Test: media/video-source-error.html
11241
11242         * html/HTMLMediaElement.cpp:
11243         (WebCore::HTMLMediaElement::enqueueEvent): Remove white-space.
11244         (WebCore::HTMLMediaElement::loadInternal): Call cancelPendingEventsAndCallbacks instead
11245         of just calling m_pendingEvents.clear() as we now also need to cancel pending errors on
11246         all <source> element. 
11247         (WebCore::HTMLMediaElement::selectMediaResource): Call isSafeToLoadURL() here instead of in
11248         loadResource() as we need to report errors differently depending on the type of failure. Use
11249         KURL instead of String.
11250         (WebCore::HTMLMediaElement::loadNextSourceChild): nextSourceChild -> selectNextSourceChild.
11251         Fail silently when there are no more <source> canditates because that is what spec mandates.
11252         Keep url as KURL instead of converting to String.
11253         (WebCore::HTMLMediaElement::loadResource): ASSERT that the URL is safe to load as we now 
11254         assume the safety check now done before this function. Takes KURL instead of String.
11255         (WebCore::HTMLMediaElement::isSafeToLoadURL): New, checks to see if a url is safe to load, logs
11256         failure if not.
11257         (WebCore::HTMLMediaElement::noneSupported): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED
11258         (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): New, clear all events pending on
11259         the media and all source elements.
11260         (WebCore::HTMLMediaElement::setNetworkState): Fire an error on the source element when the 
11261         the failure happened while processing one. Only call nonSupported() when the failure happened
11262         while processing media element 'src' attribute.
11263         (WebCore::HTMLMediaElement::havePotentialSourceChild): nextSourceChild -> selectNextSourceChild.
11264         Deal with selectNextSourceChild returning a KURL instead of a String.
11265         (WebCore::HTMLMediaElement::selectNextSourceChild): Renamed from nextSourceChild, add optional
11266         param to control whether or not errors are fired on a source element when it will not be used.
11267         Check safety of url here instead of waiting until loadResource(). Return a KURL instead of a
11268         String.
11269         (WebCore::HTMLMediaElement::initialURL): nextSourceChild -> selectNextSourceChild. Keep url as
11270         a KURL instead of a String.
11271         * html/HTMLMediaElement.h:
11272         (WebCore::HTMLMediaElement::):
11273
11274         * html/HTMLSourceElement.cpp:
11275         (WebCore::HTMLSourceElement::HTMLSourceElement): Initialize timer related variables.
11276         (WebCore::HTMLSourceElement::scheduleErrorEvent): New, start one-shot timer to fire an error
11277         event ASAP.
11278         (WebCore::HTMLSourceElement::cancelPendingErrorEvent): New, cancel pending error event.
11279         (WebCore::HTMLSourceElement::errorEventTimerFired): New, fire error event if it has not been
11280         cancelled.
11281         * html/HTMLSourceElement.h:
11282
11283         * html/MediaError.h: 
11284         (WebCore::MediaError::): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED
11285         * html/MediaError.idl: Ditto
11286
11287 2009-05-08  Dan Bernstein  <mitz@apple.com>
11288
11289         Reviewed by Maciej Stachowiak.
11290
11291         - fix <rdar://problem/6859955> Undoing typed text after selecting all
11292           leaves non-text areas highlighted
11293
11294         Test: fast/repaint/selection-clear.html
11295
11296         When RenderView::clearSelection() is called from
11297         SelectionController::nodeWillBeRemoved(), selected renderers may already
11298         be marked for layout, which means that they can no longer compute
11299         their selection repaint info. Instead, an empty IntRect (or GapRects) is
11300         returned, leading to incomplete repaint.
11301
11302         The fix is not to rely on individual renderers when clearing the
11303         selection, but instead, cache the bounding rectangle of the selected
11304         blocks' GapRects when setting the selection, and invalidate that
11305         entire rectangle when clearing it.
11306
11307         * rendering/RenderView.cpp:
11308         (WebCore::RenderView::setSelection): Added a parameter saying whether
11309         the repainting of selected blocks should include both
11310         previously-selected areas and newly-selected areas or only
11311         newly-selected areas. The default is both. Also compute
11312         m_cachedSelectionBounds to be the bounding rectangle of the
11313         new selection's BlockSelectionInfos' GapRects.
11314         (WebCore::RenderView::clearSelection): Repaint m_cachedSelectionBounds,
11315         and tell setSelection() that it should not paint areas that were in
11316         the old selection's BlockSelectionInfos' GapRects.
11317         * rendering/RenderView.h:
11318         (WebCore::RenderView::):
11319
11320 2009-05-08  Alexey Proskuryakov  <ap@webkit.org>
11321
11322         Reviewed by Maciej Stachowiak.
11323
11324         <rdar://problem/6868773> NPN_GetAuthenticationInfo does not work with non-permanent credentials
11325
11326         * WebCore.base.exp:
11327         * platform/network/mac/AuthenticationMac.h:
11328         (WebCore::WebCoreCredentialStorage::set):
11329         (WebCore::WebCoreCredentialStorage::get):
11330         * platform/network/mac/AuthenticationMac.mm:
11331         * platform/network/mac/ResourceHandleMac.mm:
11332         Moved WebCoreCredentialStorage to AuthenticationMac, so that it could be used from WebKit.
11333
11334 2009-05-08  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
11335
11336         Reviewed by Simon Hausmann.
11337
11338         Fix the Qt build, add missing JSC_HOST_CALL macros to the runtime
11339         call methods.
11340
11341         * bridge/qt/qt_runtime.h:
11342
11343 2009-05-08  Jan Michael Alonzo  <jmalonzo@webkit.org>
11344
11345         Reviewed by Mark Rowe.
11346
11347         Add missing strings to localizedStrings.js
11348         https://bugs.webkit.org/show_bug.cgi?id=25635
11349
11350         Add the strings "Delete", "Key", "Refresh" and "Value".
11351
11352         * English.lproj/localizedStrings.js:
11353
11354 2009-05-08  Robert Hogan  <robert@roberthogan.net>
11355
11356         Reviewed, tweaked and landed by Alexey Proskuryakov.
11357
11358         https://bugs.webkit.org/show_bug.cgi?id=24992
11359         [Qt] crash at http://browserspy.dk/browser.php
11360
11361         This cannot be easily tested in DRT, because it relies on interaction with QApplication,
11362         but the added assertions guard against re-introducing this issue.
11363
11364         * loader/FrameLoader.cpp: (WebCore::FrameLoader::didOpenURL): Don't make client calls
11365         while the frame is being constructed, because the intermediate state without a document
11366         is something we don't want to expose.
11367
11368         * page/Frame.cpp:
11369         (WebCore::Frame::setJSStatusBarText): Assert that the frame has a document, which is an
11370         approximation of it being in a consistent state for client calls.
11371         (WebCore::Frame::setJSDefaultStatusBarText): Ditto.
11372
11373 2009-05-07  Mark Rowe  <mrowe@apple.com>
11374
11375         Rubber-stamped by Oliver Hunt.
11376
11377         Fix <https://bugs.webkit.org/show_bug.cgi?id=25640>.
11378         Bug 25640: Crash on quit in r43384 nightly build on Leopard w/ Safari 4 beta installed
11379         
11380         Roll out r43366 as it removed symbols that Safari 4 Beta uses.
11381
11382         * dom/XMLTokenizerLibxml2.cpp:
11383         (WebCore::matchFunc):
11384         (WebCore::openFunc):
11385         (WebCore::createStringParser):
11386         (WebCore::createMemoryParser):
11387         * loader/icon/IconDatabase.cpp:
11388         (WebCore::IconDatabase::open):
11389         * platform/sql/SQLiteDatabase.cpp:
11390         (WebCore::SQLiteDatabase::SQLiteDatabase):
11391         (WebCore::SQLiteDatabase::close):
11392         * storage/DatabaseThread.cpp:
11393         (WebCore::DatabaseThread::DatabaseThread):
11394         (WebCore::DatabaseThread::start):
11395         (WebCore::DatabaseThread::databaseThread):
11396         * storage/LocalStorageThread.cpp:
11397         (WebCore::LocalStorageThread::LocalStorageThread):
11398         (WebCore::LocalStorageThread::start):
11399         (WebCore::LocalStorageThread::localStorageThread):
11400         (WebCore::LocalStorageThread::scheduleImport):
11401         (WebCore::LocalStorageThread::scheduleSync):
11402         (WebCore::LocalStorageThread::terminate):
11403         * workers/WorkerThread.cpp:
11404         (WebCore::WorkerThread::WorkerThread):
11405         (WebCore::WorkerThread::start):
11406
11407 2009-05-08  Xan Lopez  <xlopez@igalia.com>
11408
11409         Reviewed by Gustavo Noronha.
11410
11411         Unify scrolling code via adjustments and keys. Use the WebCore
11412         defined constants, since that's what people are most used to at
11413         this point.
11414
11415         * platform/gtk/ScrollViewGtk.cpp:
11416         (WebCore::ScrollView::platformHandleHorizontalAdjustment):
11417         (WebCore::ScrollView::platformHandleVerticalAdjustment):
11418
11419 2009-05-07  David Levin  <levin@chromium.org>
11420
11421         Reviewed by NOBODY.
11422         Suggested by Oliver Hunt.
11423
11424         Rolling back http://trac.webkit.org/changeset/43385
11425         because we have to use mac artwork for the underline on OSX.
11426
11427         * platform/graphics/cg/GraphicsContextCG.cpp:
11428         * platform/graphics/mac/GraphicsContextMac.mm:
11429         (WebCore::createPatternColor):
11430         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
11431         * platform/graphics/win/GraphicsContextCGWin.cpp:
11432         (WebCore::setCGStrokeColor):
11433         (WebCore::spellingPatternColor):
11434         (WebCore::grammarPatternColor):
11435         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
11436
11437 2009-05-07  John Grabowski  <jrg@chromium.org>
11438
11439         Reviewed by Simon Fraser.
11440   
11441         https://bugs.webkit.org/show_bug.cgi?id=25573
11442         Unify use of CG-common routine for drawLineForMisspellingOrBadGrammar.
11443         Cleanup for WebKit, but required for Chromium happiness.
11444
11445         * platform/graphics/cg/GraphicsContextCG.cpp:
11446         (WebCore::spellingPatternColor):
11447         (WebCore::grammarPatternColor):
11448         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
11449         * platform/graphics/mac/GraphicsContextMac.mm:
11450         * platform/graphics/win/GraphicsContextCGWin.cpp:
11451
11452 2009-05-07  Darin Adler  <darin@apple.com>
11453
11454         Reviewed by Simon Fraser.
11455
11456         Bug 25575: Registered mutation event listener crashes HTMLMediaElement
11457         https://bugs.webkit.org/show_bug.cgi?id=25575
11458
11459         Test: fast/media/video-controls-with-mutation-event-handler.html
11460
11461         * rendering/MediaControlElements.cpp:
11462         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Don't call setAttribute.
11463         * rendering/RenderMedia.cpp:
11464         (WebCore::RenderMedia::createTimeline): Call setAttribute here.
11465
11466 2009-05-07  Simon Fraser  <simon.fraser@apple.com>
11467
11468         Rubber Stamped by Dave Hyatt
11469         
11470         Shuffle the data members to minimize padding.
11471
11472         * rendering/RenderTableSection.cpp:
11473         (WebCore::RenderTableSection::RenderTableSection):
11474         * rendering/RenderTableSection.h:
11475
11476 2009-05-07  Simon Fraser  <simon.fraser@apple.com>
11477
11478         Rubber Stamped by Dave Hyatt
11479         
11480         Shuffle the data members to make Events 8 bytes smaller in 64-bit.
11481
11482         * dom/Event.cpp:
11483         (WebCore::Event::Event):
11484         * dom/Event.h:
11485
11486 2009-05-07  Eric Seidel  <eric@webkit.org>
11487
11488         Reviewed by Beth Dakin.
11489
11490         Fix regression caused by r41469, add test case to prevent it from 
11491         happening again.
11492         https://bugs.webkit.org/show_bug.cgi?id=25252
11493   
11494         hasLayer() was true during removeOnlyThisLayer()/
11495         updateLayerPositions()
11496         which caused updateLayerPosition()'s walk up the render tree to 
11497         include offsets from the layer we were about to remove.
11498   
11499         I'm not 100% convinced that this wasn't a bug in 
11500         updateLayerPosition() or in RenderBoxModelObject::styleDidChange, 
11501         because the layer in question is not the containing block for the 
11502         block which gets laid out wrong. But this restores the previous 
11503         behavior and adds a test.  So the next time someone is in here re-
11504         factoring, they will at least know if they break something.
11505   
11506         Test: fast/layers/remove-only-this-layer-update.html
11507
11508         * rendering/RenderBoxModelObject.cpp:
11509         (WebCore::RenderBoxModelObject::destroyLayer):
11510         * rendering/RenderLayer.cpp:
11511         (WebCore::RenderLayer::removeOnlyThisLayer):
11512         * rendering/RenderObject.cpp:
11513         (WebCore::RenderObject::destroy):
11514         * rendering/RenderWidget.cpp:
11515         (WebCore::RenderWidget::destroy):
11516
11517 2009-05-07  Dmitry Titov  <dimich@chromium.org>
11518
11519         Attempt to fix GTK build.
11520
11521         * platform/graphics/GlyphPageTreeNode.h: add #include <string.h> to ensure memcpy and memset are defined.
11522
11523 2009-05-07  Oliver Hunt  <oliver@apple.com>
11524
11525         Reviewed by Gavin Barraclough.
11526
11527         Improve native call performance
11528
11529         Add calling convention declarations where necessary, and update bindings
11530         script to generate them as well.
11531
11532         * bindings/js/JSHTMLCollectionCustom.cpp:
11533         (WebCore::callHTMLCollection):
11534         * bindings/js/JSNodeListCustom.cpp:
11535         (WebCore::callNodeList):
11536         * bindings/js/JSPluginElementFunctions.cpp:
11537         (WebCore::callPlugin):
11538         * bindings/js/JSQuarantinedObjectWrapper.h:
11539         * bindings/scripts/CodeGeneratorJS.pm:
11540         * bridge/runtime_method.cpp:
11541         (JSC::callRuntimeMethod):
11542         * bridge/runtime_object.cpp:
11543         (JSC::callRuntimeObject):
11544
11545 2009-05-07  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
11546
11547         Reviewed by Dave Hyatt.
11548
11549         Fixes: https://bugs.webkit.org/show_bug.cgi?id=25617
11550
11551         Fix memory/performance regression because of too much form control related abstraction just for WMLs sake.
11552
11553         Remove FormControlElement and FormControlElementWithState base classes, as the overhead is too high for the
11554         gain. HTML has no benefit of that kind of abstraction, so we're going to move the functionality to Element directly.
11555
11556         The functions now living in FormControlElement(WithState) lived in Node/Element/HTMLFormControlElement before.
11557         This patches moves all of them in a central place in Element.h, as virtual functions with an inline default implementation.
11558         To avoid confusion like isEnabled() living on Node, before the creation of the FormControlElement abstraction layer, all
11559         methods are renamed to clarify where they belong to. All renames are listed here:
11560
11561         From FormControlElement:
11562         - isEnabled() -> isEnabledFormControl()
11563         - isReadOnly() -> isReadOnlyFormControl()
11564         - isTextControl() -> isTextFormControl()
11565         - valueMatchesRenderer() -> formControlValueMatchesRenderer()
11566         - setValueMatchesRenderer() -> setFormControlValueMatchesRenderer()
11567         - name() -> formControlName()
11568         - type() -> formControlType()
11569
11570         From FormControlElementWithState:
11571         - saveState() -> saveFormControlState()
11572         - restoreState() -> restoreFormControlState()
11573
11574         A lot of Element -> FormControlElement(WithState) casting is gone again, so it's not only a memory, but also a performance progression.
11575
11576         No testcases affected, no new tests needed.
11577
11578         * GNUmakefile.am:
11579         * WebCore.pro:
11580         * WebCore.vcproj/WebCore.vcproj:
11581         * WebCore.xcodeproj/project.pbxproj:
11582         * WebCoreSources.bkl:
11583         * css/CSSStyleSelector.cpp:
11584         (WebCore::CSSStyleSelector::canShareStyleWithElement):
11585         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
11586         * dom/Document.cpp:
11587         (WebCore::Document::formElementsState):
11588         * dom/Document.h:
11589         (WebCore::Document::registerFormElementWithState):
11590         (WebCore::Document::unregisterFormElementWithState):
11591         * dom/Element.h:
11592         (WebCore::Element::isFormControlElement):
11593         (WebCore::Element::isEnabledFormControl):
11594         (WebCore::Element::isReadOnlyFormControl):
11595         (WebCore::Element::isTextFormControl):
11596         (WebCore::Element::formControlValueMatchesRenderer):
11597         (WebCore::Element::setFormControlValueMatchesRenderer):
11598         (WebCore::Element::formControlName):
11599         (WebCore::Element::formControlType):
11600         (WebCore::Element::saveFormControlState):
11601         (WebCore::Element::restoreFormControlState):
11602         * dom/FormControlElement.cpp: Removed.
11603         * dom/FormControlElement.h: Removed.
11604         * dom/FormControlElementWithState.cpp: Removed.
11605         * dom/FormControlElementWithState.h: Removed.
11606         * dom/InputElement.cpp:
11607         (WebCore::InputElement::setValueFromRenderer):
11608         * html/HTMLButtonElement.cpp:
11609         (WebCore::HTMLButtonElement::formControlType):
11610         * html/HTMLButtonElement.h:
11611         * html/HTMLFieldSetElement.cpp:
11612         (WebCore::HTMLFieldSetElement::formControlType):
11613         * html/HTMLFieldSetElement.h:
11614         * html/HTMLFormControlElement.cpp:
11615         (WebCore::HTMLFormControlElement::attach):
11616         (WebCore::HTMLFormControlElement::formControlName):
11617         (WebCore::HTMLFormControlElement::willValidate):
11618         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
11619         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
11620         (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument):
11621         (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument):
11622         (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
11623         * html/HTMLFormControlElement.h:
11624         (WebCore::HTMLFormControlElement::isTextFormControl):
11625         (WebCore::HTMLFormControlElement::isEnabledFormControl):
11626         (WebCore::HTMLFormControlElement::formControlValueMatchesRenderer):
11627         (WebCore::HTMLFormControlElement::setFormControlValueMatchesRenderer):
11628         (WebCore::HTMLFormControlElement::isReadOnlyFormControl):
11629         (WebCore::HTMLFormControlElement::type):
11630         (WebCore::HTMLFormControlElement::name):
11631         * html/HTMLInputElement.cpp:
11632         (WebCore::HTMLInputElement::formControlName):
11633         (WebCore::HTMLInputElement::formControlType):
11634         (WebCore::HTMLInputElement::saveFormControlState):
11635         (WebCore::HTMLInputElement::restoreFormControlState):
11636         (WebCore::HTMLInputElement::parseMappedAttribute):
11637         (WebCore::HTMLInputElement::detach):
11638         (WebCore::HTMLInputElement::setValue):
11639         (WebCore::HTMLInputElement::setFileListFromRenderer):
11640         * html/HTMLInputElement.h:
11641         (WebCore::HTMLInputElement::readOnly):
11642         (WebCore::HTMLInputElement::isTextFormControl):
11643         * html/HTMLKeygenElement.cpp:
11644         (WebCore::HTMLKeygenElement::formControlType):
11645         * html/HTMLKeygenElement.h:
11646         * html/HTMLLegendElement.cpp:
11647         (WebCore::HTMLLegendElement::formControlType):
11648         * html/HTMLLegendElement.h:
11649         * html/HTMLOptGroupElement.cpp:
11650         (WebCore::HTMLOptGroupElement::formControlType):
11651         * html/HTMLOptGroupElement.h:
11652         * html/HTMLOptionElement.cpp:
11653         (WebCore::HTMLOptionElement::formControlType):
11654         * html/HTMLOptionElement.h:
11655         * html/HTMLSelectElement.cpp:
11656         (WebCore::HTMLSelectElement::formControlType):
11657         (WebCore::HTMLSelectElement::saveFormControlState):
11658         (WebCore::HTMLSelectElement::restoreFormControlState):
11659         * html/HTMLSelectElement.h:
11660         * html/HTMLTextAreaElement.cpp:
11661         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
11662         (WebCore::HTMLTextAreaElement::formControlType):
11663         (WebCore::HTMLTextAreaElement::saveFormControlState):
11664         (WebCore::HTMLTextAreaElement::restoreFormControlState):
11665         (WebCore::HTMLTextAreaElement::updateValue):
11666         (WebCore::HTMLTextAreaElement::setValue):
11667         * html/HTMLTextAreaElement.h:
11668         (WebCore::HTMLTextAreaElement::readOnly):
11669         (WebCore::HTMLTextAreaElement::isTextFormControl):
11670         * page/AccessibilityRenderObject.cpp:
11671         (WebCore::AccessibilityRenderObject::isEnabled):
11672         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
11673         * page/DragController.cpp:
11674         (WebCore::DragController::concludeEditDrag):
11675         * rendering/RenderMenuList.cpp:
11676         (WebCore::RenderMenuList::itemIsEnabled):
11677         * rendering/RenderTextControl.cpp:
11678         (WebCore::updateUserModifyProperty):
11679         (WebCore::RenderTextControl::setInnerTextValue):
11680         * rendering/RenderTextControl.h:
11681         * rendering/RenderTextControlMultiLine.cpp:
11682         (WebCore::RenderTextControlMultiLine::subtreeHasChanged):
11683         * rendering/RenderTextControlSingleLine.cpp:
11684         (WebCore::RenderTextControlSingleLine::updateFromElement):
11685         * rendering/RenderTheme.cpp:
11686         (WebCore::RenderTheme::isEnabled):
11687         (WebCore::RenderTheme::isReadOnlyControl):
11688         * rendering/RenderThemeChromiumMac.mm:
11689         (WebCore::RenderThemeChromiumMac::adjustMenuListStyle):
11690         * rendering/RenderThemeMac.mm:
11691         (WebCore::RenderThemeMac::adjustMenuListStyle):
11692         * rendering/RenderThemeSafari.cpp:
11693         (WebCore::RenderThemeSafari::adjustMenuListStyle):
11694         * wml/WMLFormControlElement.cpp:
11695         * wml/WMLFormControlElement.h:
11696         (WebCore::WMLFormControlElement::isReadOnlyFormControl):
11697         (WebCore::WMLFormControlElement::isTextFormControl):
11698         (WebCore::WMLFormControlElement::formControlValueMatchesRenderer):
11699         (WebCore::WMLFormControlElement::setFormControlValueMatchesRenderer):
11700         * wml/WMLInputElement.cpp:
11701         (WebCore::WMLInputElement::WMLInputElement):
11702         (WebCore::WMLInputElement::isKeyboardFocusable):
11703         (WebCore::WMLInputElement::isMouseFocusable):
11704         (WebCore::WMLInputElement::dispatchBlurEvent):
11705         (WebCore::WMLInputElement::formControlType):
11706         (WebCore::WMLInputElement::formControlName):
11707         (WebCore::WMLInputElement::setValue):
11708         (WebCore::WMLInputElement::saveFormControlState):
11709         (WebCore::WMLInputElement::restoreFormControlState):
11710         (WebCore::WMLInputElement::parseMappedAttribute):
11711         (WebCore::WMLInputElement::detach):
11712         (WebCore::WMLInputElement::appendFormData):
11713         (WebCore::WMLInputElement::init):
11714         * wml/WMLInputElement.h:
11715         (WebCore::WMLInputElement::isTextFormControl):
11716         * wml/WMLOptGroupElement.cpp:
11717         (WebCore::WMLOptGroupElement::formControlType):
11718         * wml/WMLOptGroupElement.h:
11719         * wml/WMLOptionElement.cpp:
11720         (WebCore::WMLOptionElement::formControlType):
11721         * wml/WMLOptionElement.h:
11722
11723 2009-05-07  Dmitry Titov  <dimich@chromium.org>
11724
11725         Reviewed by Alexey Proskuryakov and Adam Roben.
11726
11727         https://bugs.webkit.org/show_bug.cgi?id=25348
11728         Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
11729
11730         Most of the change is in WTF.
11731         Unless noted, all the following files changed to use the new ThreadIdentifier::isValid()
11732         method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier
11733         is now a class rather then an integer.
11734         Also, there is no need to initialize threadID in constructors to 0 now.
11735
11736         * dom/XMLTokenizerLibxml2.cpp:
11737         (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id,
11738         since now ThreadIdentifier needs construction and we avoid having global initializers.
11739         (WebCore::matchFunc): use the new accessor function.
11740         (WebCore::openFunc): ditto.
11741         (WebCore::createStringParser): ditto.
11742         (WebCore::createMemoryParser): ditto.
11743         * loader/icon/IconDatabase.cpp:
11744         (WebCore::IconDatabase::open):
11745         * platform/sql/SQLiteDatabase.cpp:
11746         (WebCore::SQLiteDatabase::SQLiteDatabase):
11747         (WebCore::SQLiteDatabase::close):
11748         * storage/DatabaseThread.cpp:
11749         (WebCore::DatabaseThread::start):
11750         (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output.
11751         * storage/LocalStorageThread.cpp:
11752         (WebCore::LocalStorageThread::start):
11753         (WebCore::LocalStorageThread::scheduleImport):
11754         (WebCore::LocalStorageThread::scheduleSync):
11755         (WebCore::LocalStorageThread::terminate):
11756         * workers/WorkerThread.cpp:
11757         (WebCore::WorkerThread::start):
11758         (WebCore::WorkerThread::WorkerThread):
11759         (WebCore::WorkerThread::start):
11760
11761 2009-05-07  Simon Fraser  <simon.fraser@apple.com>
11762
11763         Rubber Stamped by Dave Hyatt
11764         
11765         Shuffle the data members to minimize padding.
11766
11767         * dom/ClassNames.h:
11768
11769 2009-05-07  Simon Fraser  <simon.fraser@apple.com>
11770
11771         Reviewed by Darin Adler
11772
11773         <rdar://problem/6864062> Shrink GlyphPage from 4112 to 2576 bytes in 64-bit
11774         https://bugs.webkit.org/show_bug.cgi?id=25605
11775
11776         Shrink GlyphPage by splitting the array of GlyphData, which has lots
11777         of padding, into separate Glyph and SimpleFontData* arrays.
11778
11779         * platform/graphics/Font.h:
11780         glyphDataForCharacter has to return a GlyphData by value now.
11781         
11782         * platform/graphics/FontFastPath.cpp:
11783         (WebCore::Font::glyphDataForCharacter):
11784         Return GlyphData by value.
11785         
11786         * platform/graphics/GlyphPageTreeNode.cpp:
11787         (WebCore::GlyphPageTreeNode::initializePage):
11788         Better encapsulation of GlyphPage, using the new methods.
11789
11790         * platform/graphics/Font.h:
11791         * platform/graphics/FontFastPath.cpp:
11792         (WebCore::Font::glyphDataForCharacter):
11793         * platform/graphics/GlyphPageTreeNode.cpp:
11794         (WebCore::GlyphPageTreeNode::initializePage):
11795         * platform/graphics/GlyphPageTreeNode.h:
11796         (WebCore::GlyphData::GlyphData):
11797         (WebCore::GlyphPage::indexForCharacter):
11798         (WebCore::GlyphPage::glyphDataForCharacter):
11799         (WebCore::GlyphPage::glyphDataForIndex):
11800         (WebCore::GlyphPage::glyphAt):
11801         (WebCore::GlyphPage::fontDataForCharacter):
11802         (WebCore::GlyphPage::setGlyphDataForCharacter):
11803         (WebCore::GlyphPage::setGlyphDataForIndex):
11804         (WebCore::GlyphPage::copyFrom):
11805         (WebCore::GlyphPage::clear):
11806
11807 2009-05-07  Dimitri Glazkov  <dglazkov@chromium.org>
11808
11809         Reviewed by Darin Fisher.
11810
11811         https://bugs.webkit.org/show_bug.cgi?id=25625
11812         Implement Image/Option constructors in V8 bindings.
11813
11814         * bindings/v8/custom/V8DOMWindowCustom.cpp:
11815         (WebCore::NAMED_PROPERTY_GETTER): Removed old JS-based code.
11816         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Added.
11817         * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: Added.
11818
11819 2009-05-07  Brady Eidson  <beidson@apple.com>
11820
11821         I hate myself for doing this, but need to fix that ChangeLog entry.
11822
11823         * ChangeLog:
11824
11825 2009-05-07  Brady Eidson  <beidson@apple.com>
11826
11827         Rubberstamped by Darin Adler
11828
11829         * html/HTMLParser.cpp: Use the correct style of BUILDING_ON_* for WebCore.
11830         * html/HTMLParser.h: Ditto
11831
11832 2009-05-07  David Hyatt  <hyatt@apple.com>
11833
11834         Restore intrinsic margins to all form controls on Mac and Windows.  Some of this regressed in 43007
11835         when textareas were given explicit margins.  Some of it had already regressed earlier whenever intrinsic
11836         margins were turned off in themeWin.css.
11837
11838         Reviewed by Beth Dakin.
11839
11840         * css/html4.css:
11841         * css/themeWin.css:
11842
11843 2009-05-07  Brady Eidson  <beidson@apple.com>
11844
11845         Reviewed by Darin Adler and Alexey Proskuryakov.
11846
11847         <rdar://problem/6863795> Exception occurs in Mail when attempting to create signatures due to <head> element creation
11848
11849         * dom/Document.cpp:
11850         (WebCore::Document::implicitClose): Check shouldCreateImplicitHead() before creating it.
11851
11852         * html/HTMLParser.cpp:
11853         (WebCore::HTMLParser::handleError): Check shouldCreateImplicitHead() before creating it.
11854         (WebCore::HTMLParser::bodyCreateErrorCheck): Ditto.
11855         (WebCore::shouldCreateImplicitHead): For Tiger/Leopard when running under Mail, the implicit <head> shouldn't be created.
11856         * html/HTMLParser.h:
11857         (WebCore::shouldCreateImplicitHead): Inline implementation for non-Tiger/Leopard platforms
11858
11859 2009-05-07  Antony Sargent  <asargent@chromium.org>
11860
11861         Reviewed by Darin Fisher.
11862
11863         Fix a memory leak in V8EventListenerList::remove.
11864
11865         https://bugs.webkit.org/show_bug.cgi?id=25618
11866
11867         No new functionality so no new tests. 
11868
11869         * bindings/v8/V8EventListenerList.cpp:
11870         (WebCore::V8EventListenerList::remove):
11871
11872 2009-05-07  Darin Fisher  <darin@chromium.org>
11873
11874         Fix Chromium build bustage.
11875
11876         * bindings/v8/custom/V8HTMLFormElementCustom.cpp: Add missing
11877         HTMLCollection.h include.
11878
11879 2009-05-07  Chris Fleizach  <cfleizach@apple.com>
11880
11881         Reviewed by Beth Dakin.
11882
11883         Bug 25598: AX: if a radio button has a label and a title, the label is not exposed
11884         https://bugs.webkit.org/show_bug.cgi?id=25598
11885
11886         Test: accessibility/radio-button-title-label.html
11887
11888         * page/AccessibilityObject.h:
11889         (WebCore::AccessibilityObject::exposesTitleUIElement):
11890         * page/AccessibilityRenderObject.cpp:
11891         (WebCore::AccessibilityRenderObject::exposesTitleUIElement):
11892         (WebCore::AccessibilityRenderObject::titleUIElement):
11893         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
11894         * page/AccessibilityRenderObject.h:
11895
11896 2009-05-07  Darin Fisher  <darin@chromium.org>
11897
11898         Fix Chromium build bustage.
11899
11900         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
11901         (WebCore::INDEXED_PROPERTY_GETTER): ":" should be "::"
11902
11903 2009-05-07  Xan Lopez  <xlopez@igalia.com>
11904
11905         Reviewed by Gustavo Noronha.
11906
11907         https://bugs.webkit.org/show_bug.cgi?id=25610
11908         [GTK] text.caretOffset is reportedly always 0
11909
11910         Use the right function to get the caret offset in an
11911         element. selectionStart() would only work for text
11912         controls (there's even an ASSERT when calculating the selected
11913         text range). Instead just get the selection and get the offset of
11914         the start position.
11915
11916         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
11917
11918 2009-05-07  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
11919
11920         Reviewed by Simon Hausmann.
11921
11922         [Qt] Fix support for antialiased CSS border-radius
11923         
11924         WebKit implements border-radius by drawing a double-size border,
11925         and then letting the clip constrain the border to the right width
11926         and position. This requires support for antialiased clipping, as
11927         well as painting, to get a nice smooth border.
11928         
11929         Qt only does antialiased clipping if the anti-alias flag is set
11930         at the time of clipping, so we have to enable this in the method
11931         addInnerRoundedRectClip(), as well as when we draw the border.
11932         
11933         Currently the raster-engine is the only Qt paint engine to support
11934         anti-aliased clipping, but the OpenGL and Mac paint engines could
11935         potentially support this in the future.
11936
11937         * platform/graphics/qt/GraphicsContextQt.cpp:
11938         (WebCore::GraphicsContext::strokeArc):
11939         (WebCore::GraphicsContext::addInnerRoundedRectClip):
11940
11941 2009-05-07  Adam Langley  <agl@google.com>
11942
11943         Reviewed by Eric Seidel.
11944
11945         Render empty optgroup elements.
11946
11947         https://bugs.webkit.org/show_bug.cgi?id=24900
11948
11949         Currently, optgroup elements which are empty are not rendered. The
11950         HTML specification gives no guidance on this situation.
11951
11952         However, the test for being empty is that they have no children, thus
11953         this will not render:
11954           <optgroup label="test"></optgroup>
11955         while this /will/ render (because of the text node child):
11956           <optgroup label="test"> </optgroup>
11957
11958         This patch will cause both cases to render which matches IE's and
11959         Firefox's behaviour.
11960
11961         The difference only appears when opening the select element and does
11962         not appear in the render tree. Thus, a manual layout-test is required.
11963
11964         * html/HTMLSelectElement.cpp:
11965         (WebCore::HTMLSelectElement::recalcListItems):
11966         * manual-tests/optgroup-empty-and-nested.html: Added.
11967
11968 2009-05-06  Julie Parent  <jparent@google.com>
11969
11970         Reviewed by Eric Seidel.
11971
11972         Bug 25608: Unused m_frame in ChromiumClipboard.
11973         https://bugs.webkit.org/show_bug.cgi?id=25608
11974
11975         * platform/chromium/ClipboardChromium.h:
11976         
11977         No tests added as this is only removing dead code, no functional changes.
11978
11979 2009-05-06  Dan Bernstein  <mitz@apple.com>
11980
11981         Reviewed by Simon Fraser and Justin Garcia.
11982
11983         - fix another part of <rdar://problem/6703873> Triple-click quoted line
11984           and type Return creates an extra quoted blank line
11985
11986         Test: editing/inserting/6703873-2.html
11987
11988         * editing/BreakBlockquoteCommand.cpp:
11989         (WebCore::BreakBlockquoteCommand::doApply): Corrected the logic for
11990         determining the first node that should go into the new blockquote
11991         given the split position: if it is at the end of a container, use the
11992         next node after the container. Otherwise, use the child at the
11993         position's offset.
11994
11995 2009-05-06  Kevin Ollivier  <kevino@theolliviers.com>
11996
11997         wx build fix, fixes for wx trunk builds.
11998
11999         * platform/graphics/wx/ImageWx.cpp:
12000         (WebCore::BitmapImage::draw):
12001         * platform/wx/RenderThemeWx.cpp:
12002         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
12003         (wxFontProperties::wxFontProperties):
12004
12005 2009-05-06  Albert J. Wong  <ajwong@chromium.org>
12006
12007         Reviewed by Darin Fisher.
12008
12009         https://bugs.webkit.org/show_bug.cgi?id=25597
12010         Fix API drift compile errors that occurred while this was ifdef-ed out.
12011         The two big issues were that RenderObject::element() became
12012         RenderObject::node() and some of the wk* drawing functions had
12013         an extra theme parameter added to the argument list.
12014
12015         * rendering/RenderThemeChromiumMac.mm:
12016         (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
12017         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
12018         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
12019         (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton):
12020         (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton):
12021         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
12022         (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):
12023
12024 2009-05-06  Jian Li  <jianli@chromium.org>
12025
12026         Reviewed by Dimitri Glazkov.
12027
12028         https://bugs.webkit.org/show_bug.cgi?id=25385
12029         Upstream changes to V8 bindings for supporting nested workers.
12030
12031         * bindings/v8/WorkerContextExecutionProxy.cpp:
12032         (WebCore::WorkerContextExecutionProxy::ToV8Object):
12033         (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object):
12034         * bindings/v8/custom/V8WorkerCustom.cpp:
12035         (WebCore::getEventListener):
12036         (WebCore::ACCESSOR_SETTER WorkerOnmessage):
12037         (WebCore::CALLBACK_FUNC_DECL WorkerAddEventListener):
12038
12039 2009-05-06  Dave Moore  <davemoore@google.com>
12040
12041         Reviewed by Dimitri Glazkov.
12042
12043         https://bugs.webkit.org/show_bug.cgi?id=25513
12044         The V8 bindings convert every javascript property to its associated css style
12045         name. It then calls functions that convert that name to an id. This makes
12046         getting or setting css styles on elements slow.
12047         
12048         The patch fixes this by caching the results of the transformation, mapping a
12049         javascript property name to its css property id. It then calls the already
12050         public webkit methods that take the id in place of the string property names.
12051
12052         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
12053
12054 2009-05-06  Nate Chapin  <japhet@google.com>
12055
12056         Reviewed by Dimitri Glazkov.
12057
12058         https://bugs.webkit.org/show_bug.cgi?id=25591
12059         Upstream V8HTMLFormElement from the Chromium repository.
12060
12061         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
12062         (WebCore::INDEXED_PROPERTY_GETTER HTMLFormElement): Upstreamed from Chromium repository
12063         (WebCore::NAMED_PROPERTY_GETTER HTMLFormElement): Changed empty element return case to return notHandledByInterceptor();
12064         (WebCore::CALLBACK_FUNC_DECL HTMLFormElementSubmit): Upstreamed from Chromium repository
12065
12066 2009-05-06  Albert J. Wong  <ajwong@chromium.org>
12067
12068         Reviewed by Dimitri Glazkov.
12069
12070         https://bugs.webkit.org/show_bug.cgi?id=25595
12071         Upstream V8CanvasPixelArrayCustom from chromium port tree.
12072
12073         * bindings/v8/V8CanvasPixelArrayCustom.cpp: Added.
12074
12075 2009-05-06  Simon Fraser  <simon.fraser@apple.com>
12076
12077         Rubber-stampted by Eric Seidel
12078
12079         Add braces to clarify logic flow in RenderObject::adjustStyleDifference.
12080         Only affects ACCELERATED_COMPOSITING builds.
12081
12082         * rendering/RenderObject.cpp:
12083         (WebCore::RenderObject::adjustStyleDifference):
12084
12085 2009-05-06  Simon Fraser  <simon.fraser@apple.com>
12086
12087         Reviewed by Dan Bernstein
12088
12089         <rdar://problem/6862550> Reduce size of RenderText in 64-bit
12090         
12091         Rearrange data members of RenderText so that an int comes
12092         first, to minimize padding.
12093
12094         * rendering/RenderText.cpp:
12095         (WebCore::RenderText::RenderText):
12096         * rendering/RenderText.h:
12097
12098 2009-05-06  Simon Fraser  <simon.fraser@apple.com>
12099
12100         Reviewed by Dan Bernstein
12101
12102         <rdar://problem/6862823> Reduce size of RenderStyle in 64-bit
12103         
12104         Rearrange data members of RenderStyle to minimize padding
12105         when building for 64-bit.
12106
12107         * rendering/style/RenderStyle.cpp:
12108         (WebCore::RenderStyle::RenderStyle):
12109         * rendering/style/RenderStyle.h:
12110         (WebCore::):
12111
12112 2009-05-06  Darin Fisher  <darin@chromium.org>
12113
12114         Reviewed by Dimitri Glazkov.
12115
12116         https://bugs.webkit.org/show_bug.cgi?id=25596
12117
12118         Fixes Chromium build bustage caused by r43317 (making
12119         RefCountedBase::m_refCount private)
12120
12121         * page/chromium/AccessibilityObjectWrapper.h:
12122         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
12123
12124 2009-05-06  Hin-Chung Lam  <hclam@chromium.org>
12125
12126         Reviewed by Darin Fisher.
12127
12128         https://bugs.webkit.org/show_bug.cgi?id=25593
12129
12130         Refactor for MediaPlayerPrivate for Chromium port. Remove
12131         the implementation of MediaPlayerPrivateInferface from it.
12132
12133         * platform\graphics\chromium\MediaPlayerPrivateChromium.h:
12134
12135 2009-05-06  Simon Fraser  <simon.fraser@apple.com>
12136
12137         Reviewed by Dave Hyatt, Dan Bernstein
12138         
12139         <rdar://problem/6860197> Reduce the size of FontFallbackList in 64-bit
12140
12141         Re-order the data members of FontFallbackList to save 8 bytes when building 64-bit.
12142
12143         * platform/graphics/FontFallbackList.cpp:
12144         (WebCore::FontFallbackList::FontFallbackList):
12145         * platform/graphics/FontFallbackList.h:
12146
12147 2009-05-06  Simon Fraser  <simon.fraser@apple.com>
12148
12149         Reviewed by Darin Adler, Dan Bernstein
12150
12151         <rdar://problem/6860068> Reduce size of InlineBox in 64-bit
12152
12153         Re-order the data members of InlineBox to save 8 bytes when building 64-bit.
12154
12155         * rendering/InlineBox.h:
12156         (WebCore::InlineBox::InlineBox):
12157
12158 2009-05-06  David Levin  <levin@chromium.org>
12159
12160         Reviewed by Dimitri Glazkov.
12161
12162         https://bugs.webkit.org/show_bug.cgi?id=25588
12163         Adding the custom v8 bindings Document.location.
12164
12165         * bindings/v8/custom/V8DocumentLocationCustom.cpp: Added.
12166
12167 2009-05-06  Kevin McCullough  <kmccullough@apple.com>
12168
12169         -Clarified a comment
12170
12171         * editing/InsertParagraphSeparatorCommand.cpp:
12172         (WebCore::InsertParagraphSeparatorCommand::doApply):
12173
12174 2009-05-06  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
12175
12176         Not reviewed. Fix WML enabled builds by including "MappedAttribute.h" in several places.
12177
12178         * wml/WMLAElement.cpp:
12179         * wml/WMLAccessElement.cpp:
12180         * wml/WMLBRElement.cpp:
12181         * wml/WMLCardElement.cpp:
12182         * wml/WMLDoElement.cpp:
12183         * wml/WMLElement.cpp:
12184         * wml/WMLFieldSetElement.cpp:
12185         * wml/WMLGoElement.cpp:
12186         * wml/WMLImageElement.cpp:
12187         * wml/WMLInputElement.cpp:
12188         * wml/WMLMetaElement.cpp:
12189         * wml/WMLOnEventElement.cpp:
12190         * wml/WMLOptGroupElement.cpp:
12191         * wml/WMLOptionElement.cpp:
12192         * wml/WMLPElement.cpp:
12193         * wml/WMLPostfieldElement.cpp:
12194         * wml/WMLSetvarElement.cpp:
12195         * wml/WMLTableElement.cpp:
12196         * wml/WMLTemplateElement.cpp:
12197         * wml/WMLTimerElement.cpp:
12198
12199 2009-05-06  Xan Lopez  <xlopez@igalia.com>
12200
12201         Reviewed by Gustavo Noronha.
12202
12203         https://bugs.webkit.org/show_bug.cgi?id=25526
12204         [Gtk] Additional support is needed for caret browsing
12205
12206         Emit AtkText::text-selection-changed when the selection changes
12207         and the current selection is of Range (ie, the start and end
12208         positions are different) type. This seems to match what Gecko
12209         does.
12210
12211         * editing/gtk/SelectionControllerGtk.cpp:
12212         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
12213
12214 2009-05-05  Xan Lopez  <xlopez@igalia.com>
12215
12216         Reviewed by Gustavo Noronha.
12217
12218         https://bugs.webkit.org/show_bug.cgi?id=25526
12219         [Gtk] Additional support is needed for caret browsing
12220
12221         Emit AtkText::text-caret-moved when selection changes.
12222
12223         * GNUmakefile.am:
12224         * editing/SelectionController.h:
12225         * editing/gtk/SelectionController.cpp: Added.
12226         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
12227
12228 2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>
12229
12230         Reviewed by Gustavo Noronha.
12231
12232         Use mozilla cursors for the previously not implemented
12233         cursors. The manual-tests/cursor.html is looking complete
12234         now.
12235
12236         * platform/gtk/CursorGtk.cpp:
12237         (WebCore::cellCursor):
12238         (WebCore::noDropCursor):
12239         (WebCore::progressCursor):
12240         (WebCore::noneCursor):
12241         (WebCore::notAllowedCursor):
12242         (WebCore::grabCursor):
12243         (WebCore::grabbingCursor):
12244         * platform/gtk/CursorGtk.h:
12245
12246 2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>
12247
12248         Reviewed by Xan Lopez.
12249
12250         Properly indent the header file.
12251
12252         * platform/gtk/CursorGtk.h:
12253
12254 2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>
12255
12256         Reviewed by Gustavo Noronha.
12257
12258         Use the mozilla copyright header. Use MPL1.1/GPL2.0
12259         and LGPL2.1 as the license compared to LGPL2.0.
12260
12261         * platform/gtk/CursorGtk.h:
12262
12263 2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>
12264
12265         Reviewed by Gustavo Noronha.
12266
12267         Move PluginView::invalidateRegion from the
12268         TemporaryLinkStubs to PluginViewGtk.cpp and implement
12269         it with a call to Widget::invalidate() just like
12270         mac is doing. Optimisations would have to be window
12271         system specific.
12272
12273         * platform/gtk/TemporaryLinkStubs.cpp:
12274         * plugins/gtk/PluginViewGtk.cpp:
12275         (WebCore::PluginView::invalidateRegion):
12276
12277 2009-05-06  Jan Michael Alonzo  <jmalonzo@webkit.org>
12278
12279         Reviewed by Holger Freyther.
12280
12281         Misc fixes to InspectorClientGtk.
12282
12283         * GNUmakefile.am: Add localizedStrings.js to webinspector_DATA.
12284         This prevents copious amounts "Localized string not found" errors
12285         in the console
12286
12287 2009-05-06  Simon Hausmann  <simon.hausmann@nokia.com>
12288
12289         Reviewed by Ariya Hidayat.
12290
12291         Fix the Qt build on Windows.
12292
12293         * platform/graphics/GraphicsContext.h:
12294         (WebCore::GraphicsContext::shouldIncludeChildWindows): Implemented dummy accessor.
12295
12296 2009-05-06  Simon Hausmann  <simon.hausmann@nokia.com>
12297
12298         Reviewed by Tor Arne Vestbø.
12299
12300         Tweak WebCore.pro for being able to override the generated sources dir for the
12301         generated_files target.
12302
12303         * WebCore.pro:
12304
12305 2009-05-06  Simon Hausmann  <simon.hausmann@nokia.com>
12306
12307         Reviewed by Holger Freyther.
12308
12309         Fix the Qt/Windows build, use iface instead of interface to avoid conflict
12310         with VS2005 headers.
12311
12312         * css/CSSStyleSelector.cpp:
12313         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState):
12314
12315 2009-05-06  Joerg Bornemann  <joerg.bornemann@trolltech.com>
12316
12317         Reviewed by Simon Hausmann.
12318
12319         We need to include StringExtras.h on Windows CE to access the strdup function.
12320
12321         * plugins/PluginStream.cpp:
12322
12323 2009-05-06  Soren Gjesse  <sgjesse@chromium.org>
12324
12325         Reviewed by Eric Seidel.
12326
12327         Changed the toString behaviour for non document dom node event handlers in the V8 bindings.
12328         https://bugs.webkit.org/show_bug.cgi?id=25544
12329
12330         In the V8 bindings non document dom node event handlers are wrapped in a number of with blocks and uses an inner
12331         function. This causes the default toString on such a handler to return all this wrapper code. As some web sites
12332         use the source of an event handler to create new functions this wrapper code causes compatibility problems.
12333
12334         Create a specific toString function for these handlers which will return a function source compatible with the
12335         source returned by the JSC bindings and other browsers.
12336
12337         Test: fast/events/event-function-toString.html
12338
12339         * bindings/v8/ScriptEventListener.cpp:
12340         (WebCore::createAttributeEventListener):
12341         * bindings/v8/V8LazyEventListener.cpp:
12342         (WebCore::V8LazyEventListener::V8LazyEventListener):
12343         (WebCore::V8LazyEventListener::getListenerFunction):
12344         (WebCore::V8LazyEventListenerToString):
12345         (WebCore::V8LazyEventListener::getWrappedListenerFunction):
12346         * bindings/v8/V8LazyEventListener.h:
12347         (WebCore::V8LazyEventListener::create):
12348
12349 2009-05-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
12350
12351         Reviewed by Simon Hausmann.
12352
12353         Build QtWebKit as a framework on Mac
12354
12355         This implies both debug and release build by default, unless
12356         one of the --debug or --release config options are passed to
12357         the build-webkit script.
12358
12359         Frameworks can be disabled by passing CONFIG+=webkit_no_framework
12360         to the build-webkit script.
12361
12362         To be able to build both debug and release targets in parallel
12363         we have to use separate output directories for the generated
12364         sources, which is not optimal, but required to avoid race conditions.
12365
12366         An optimization would be to only require this spit-up on Mac.
12367
12368         * WebCore.pro:
12369
12370 2009-05-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
12371
12372         Reviewed by Simon Hausmann.
12373
12374         [Qt] Use $$GENERATED_SOURCES_DIR as output when running bison
12375
12376         A couple of the generators left the bison output file in the source
12377         tree, and then moved it into $$GENERATED_SOURCES_DIR, which did not
12378         work well when building release and debug configurations in parallel.
12379
12380         * WebCore.pro:
12381
12382 2009-05-06  Dan Bernstein  <mitz@apple.com>
12383
12384         Reviewed by Justin Garcia.
12385
12386         - fix an assertion failure in RemoveNodeCommand() when deleting a <br>
12387           between a block and a mail blockquote
12388
12389         Test: editing/deleting/removeNodeCommand-assert.html
12390
12391         * editing/DeleteSelectionCommand.cpp:
12392         (WebCore::DeleteSelectionCommand::mergeParagraphs): Pass the start block
12393         to prune() instead of passing m_upstreamStart.node(), because the latter
12394         may have been removed already.
12395
12396 2009-05-05  Eric Seidel  <eric@webkit.org>
12397
12398         No review, roll out only.
12399
12400         Roll out r23072 since it broke layout tests
12401
12402         * page/AccessibilityRenderObject.cpp:
12403         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
12404
12405 2009-05-05  Ben Murdoch  <benm@google.com>
12406
12407         Reviewed by Eric Seidel.
12408         
12409         Add #if ENABLE(DATABASE) guards around database code so toggling ENABLE_DATABASE off does not break builds.
12410         https://bugs.webkit.org/show_bug.cgi?id=24776
12411
12412         No functional changes, thus no tests.
12413
12414         * bindings/js/JSCustomSQLStatementCallback.cpp:
12415         * bindings/js/JSCustomSQLStatementCallback.h:
12416         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
12417         * bindings/js/JSCustomSQLStatementErrorCallback.h:
12418         * bindings/js/JSCustomSQLTransactionCallback.cpp:
12419         * bindings/js/JSCustomSQLTransactionCallback.h:
12420         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
12421         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
12422         * bindings/js/JSDatabaseCustom.cpp:
12423         * bindings/js/JSSQLTransactionCustom.cpp:
12424         * loader/EmptyClients.h:
12425         * page/ChromeClient.h:
12426         * storage/ChangeVersionWrapper.cpp:
12427         * storage/ChangeVersionWrapper.h:
12428         * storage/Database.cpp:
12429         (WebCore::Database::databaseInfoTableName):
12430         * storage/Database.h:
12431         * storage/Database.idl:
12432         * storage/DatabaseTask.cpp:
12433         * storage/DatabaseTask.h:
12434         * storage/DatabaseThread.cpp:
12435         * storage/DatabaseThread.h:
12436         * storage/DatabaseTracker.cpp:
12437         * storage/DatabaseTracker.h:
12438         * storage/DatabaseTrackerClient.h:
12439         * storage/OriginQuotaManager.cpp:
12440         * storage/OriginQuotaManager.h:
12441         * storage/SQLStatement.cpp:
12442         * storage/SQLStatement.h:
12443         * storage/SQLTransaction.cpp:
12444         * storage/SQLTransaction.h:
12445         * storage/SQLTransaction.idl:
12446
12447 2009-05-05  Jeremy Moskovich  <jeremy@chromium.org>
12448
12449         Reviewed by Eric Seidel.
12450
12451         Add some documentation to InlineBox::x(),y().
12452         https://bugs.webkit.org/show_bug.cgi?id=25378
12453
12454         * rendering/InlineBox.h:
12455
12456 2009-05-05  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
12457
12458         Reviewed by Eric Seidel.
12459
12460         Disable all the SVG features for WebKit/Qt if ENABLE_SVG=0 
12461         https://bugs.webkit.org/show_bug.cgi?id=24693
12462
12463         * WebCore.pro:
12464
12465 2009-05-05  Sankar Aditya Tanguturi  <sankaraditya@gmail.com>
12466
12467         Reviewed by Eric Seidel.
12468
12469         Anonymous blocks should not be exposed in accessibility tree.
12470         Part of https://bugs.webkit.org/show_bug.cgi?id=23072
12471
12472         Tests: accessibility/ignore-anonymous-block.html
12473                platform/win/accessibility/document-role.html
12474
12475         * page/AccessibilityRenderObject.cpp:
12476         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):Return
12477         true for Anonymous blocks. Matching Firefox 2.0.0.14
12478
12479 2009-05-05  Jungshik Shin  <jshin@chromium.org>
12480
12481         Reviewed by Alexey Proskuryakov.
12482
12483         http://bugs.webkit.org/show_bug.cgi?id=25487
12484
12485         For euc-kr and other 8bit Korean encodings
12486         (similar to euc-kr/windows-949), make document.charset return
12487         EUC-KR instead of windows-949. The latter is not recognized by
12488         Korean web servers.
12489
12490         Add domName method to TextEncoding to deal with cases where
12491         our internal encoding name does not match what's widely recognized
12492         by web servers. Currently, the only case is 'windows-949' (internal
12493         name) vs 'EUC-KR'.
12494
12495         Test: fast/encoding/euckr-name.html
12496
12497         * dom/Document.cpp:
12498         (WebCore::Document::encoding): Call TextEncoding.domName() instead
12499         of TextEncoding.name().
12500         * platform/text/TextEncoding.cpp:
12501         (WebCore::TextEncoding::domName): For the canonical name 'windows-949',
12502         return 'EUC-KR'. Otherwise, just return the canonical name.
12503         * platform/text/TextEncoding.h:
12504
12505 2009-05-05  Adam Langley  <agl@google.com>
12506
12507         Reviewed by Darin Adler.
12508
12509         Rendering fix for <select> elements.
12510         https://bugs.webkit.org/show_bug.cgi?id=25558
12511
12512         When switching a <select> element from display:none to default
12513         display, we would fail to invalidate the parent's pref widths in some
12514         situations:
12515
12516         When attaching the element, RenderMenuList::updateOptionsWidth would
12517         call setNeedsLayoutAndPrefWidthsRecalc before the parent pointer was
12518         set. This would mark the pref widths as dirty, but not for any parent
12519         objects.
12520
12521         When RenderObjectChildList::appendChildNode later calls
12522         setNeedsLayoutAndPrefWidthsRecalc again, with a valid parent pointer,
12523         nothing would be done because the pref widths were already dirty for.
12524         the RenderMenuList.
12525
12526         * rendering/RenderMenuList.cpp:
12527         (WebCore::RenderMenuList::updateOptionsWidth):
12528
12529 2009-05-05  Antony Sargent  <asargent@chromium.org>
12530
12531         Reviewed by Dimitri Glazkov.
12532
12533         Switch V8EventListenerList to use HashTable<T>.
12534         https://bugs.webkit.org/show_bug.cgi?id=25496
12535         
12536         This avoids some tricky issues with event listener removal in the 
12537         current implementation and has slightly better performance.
12538
12539         No new functionality so no new tests.
12540
12541         * bindings/v8/V8EventListenerList.cpp: Added V8EventListenerListIterator.
12542         * bindings/v8/V8EventListenerList.h:
12543         (WebCore::V8EventListenerList::size):
12544         * bindings/v8/WorkerContextExecutionProxy.cpp:
12545         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
12546
12547 2009-05-05  Darin Fisher  <darin@chromium.org>
12548
12549         Fixing build bustage.
12550
12551         Add some missing includes to fix the Chromium build.
12552
12553         * bindings/v8/custom/V8DOMWindowCustom.cpp:
12554         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
12555
12556 2009-05-05  Darin Fisher  <darin@chromium.org>
12557
12558         Reviewed by Darin Adler.
12559
12560         https://bugs.webkit.org/show_bug.cgi?id=25570
12561
12562         history.{back,forward,go} should always be dispatched asynchronously,
12563         even when the history navigation would just result in scrolling the
12564         page.  This matches the behavior of other browsers like IE and FF.
12565
12566         Test: fast/history/back-forward-is-asynchronous.html
12567
12568         * loader/FrameLoader.cpp:
12569         (WebCore::FrameLoader::scheduleHistoryNavigation):
12570
12571 2009-05-05  Eric Seidel  <eric@webkit.org>
12572
12573         Reviewed by Simon Fraser.
12574
12575         Add an ASSERT(useTransforms) to mapLocalToContainer implementations in SVG.
12576         https://bugs.webkit.org/show_bug.cgi?id=25532
12577         https://bugs.webkit.org/show_bug.cgi?id=25568
12578
12579         Adding this ASSERT exposed a bug in SVGPaintServerPattern::setup
12580         which was causing transformed SVG text when filled/stroked with a
12581         pattern using patternUnits=objectBoundingBox to draw incorrectly.
12582
12583         I fixed the incorrect drawing (by removing the broken code) and added
12584         two test cases to test the fix:
12585         * svg/transforms/text-with-pattern-inside-transformed-html.xhtml
12586         * svg/transforms/text-with-pattern-with-svg-transform.svg
12587
12588         * rendering/RenderSVGRoot.cpp:
12589         (WebCore::RenderSVGRoot::mapLocalToContainer):
12590         * rendering/SVGRenderSupport.cpp:
12591         (WebCore::SVGRenderBase::mapLocalToContainer):
12592         * svg/graphics/SVGPaintServerPattern.cpp:
12593         (WebCore::SVGPaintServerPattern::setup):
12594
12595 2009-05-05  Greg Bolsinga  <bolsinga@apple.com>
12596
12597         Reviewed by Sam Weinig.
12598
12599         https://bugs.webkit.org/show_bug.cgi?id=25554
12600         
12601         Support HTML5 text control input types: email, number, tel, url
12602
12603         Test: fast/html/text-field-input-types.html
12604
12605         * bindings/objc/DOMHTML.mm:
12606         (-[DOMHTMLInputElement _isTextField]): Call HTMLInputElement::isTextField directly.
12607         * html/HTMLInputElement.cpp: Use the new types where appropriate.
12608         (WebCore::HTMLInputElement::setInputType):
12609         (WebCore::HTMLInputElement::type):
12610         (WebCore::HTMLInputElement::saveState):
12611         (WebCore::HTMLInputElement::restoreState):
12612         (WebCore::HTMLInputElement::accessKeyAction):
12613         (WebCore::HTMLInputElement::rendererIsNeeded):
12614         (WebCore::HTMLInputElement::createRenderer):
12615         (WebCore::HTMLInputElement::appendFormData):
12616         (WebCore::HTMLInputElement::valueWithDefault):
12617         (WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
12618         (WebCore::HTMLInputElement::defaultEventHandler):
12619         * html/HTMLInputElement.h: Ditto.
12620         (WebCore::HTMLInputElement::):
12621         (WebCore::HTMLInputElement::isTextField):
12622
12623 2009-04-01  miggilin  <mr.diggilin@gmail.com>
12624
12625         Reviewed by Kevin Ollivier.
12626
12627         Mouse wheel scrolling and keyboard shortcut support for wx.
12628         
12629         https://bugs.webkit.org/show_bug.cgi?id=24797
12630
12631         * platform/ScrollView.cpp:
12632         (WebCore::ScrollView::wheelEvent):
12633         * platform/wx/KeyboardEventWx.cpp:
12634         (WebCore::windowsKeyCodeForKeyEvent):
12635         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
12636         * platform/wx/ScrollViewWx.cpp:
12637         (WebCore::ScrollView::platformSetScrollPosition):
12638
12639 2009-05-05  Kevin Ollivier  <kevino@theolliviers.com>
12640
12641         wx build fix for Windows, add missing include.
12642         
12643         https://bugs.webkit.org/show_bug.cgi?id=24798
12644
12645         * platform/wx/wxcode/win/non-kerned-drawing.cpp:
12646
12647 2009-05-05  Chris Fleizach  <cfleizach@apple.com>
12648
12649         Reviewed by Beth Dakin.
12650
12651         Bug 25574: AXImageMap children links don't respond properly to accessibilityHitTest:
12652         https://bugs.webkit.org/show_bug.cgi?id=25574
12653
12654         Enable accessibility hit-testing for image map links. 
12655         Allow image map links to return AXURLs and AXAccessKey information.
12656
12657         Test: platform/mac/accessibility/imagemap-hittest.html
12658
12659         * page/AccessibilityImageMapLink.cpp:
12660         (WebCore::AccessibilityImageMapLink::url):
12661         * page/AccessibilityImageMapLink.h:
12662         * page/AccessibilityObject.h:
12663         (WebCore::AccessibilityObject::minValueForRange):
12664         * page/AccessibilityRenderObject.cpp:
12665         (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
12666         (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
12667         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
12668         * page/AccessibilityRenderObject.h:
12669         * page/mac/AccessibilityObjectWrapper.mm:
12670         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
12671
12672 2009-05-05  Kevin McCullough  <kmccullough@apple.com>
12673
12674         Reviewed by Dan Bernstein.
12675
12676         <rdar://problem/6552129> Select a quote line and paste elsewhere, you
12677         get that line and an extra quoted blank line
12678         <rdar://problem/6609308> Triple-click a quoted header line, copy, paste
12679         onto an empty line makes an extra quoted line
12680
12681         - When pasting a blockquote with a newline, make sure we put the newline
12682         outside of the blockquote so that it is not quoted.
12683
12684         * editing/InsertParagraphSeparatorCommand.cpp:
12685         (WebCore::InsertParagraphSeparatorCommand::doApply):
12686
12687 2009-05-05  Jan Michael Alonzo  <jmalonzo@webkit.org>
12688
12689         Reviewed by Xan Lopez.
12690
12691         Call moz_gtk_shutdown on RenderThemeGtk destruction.
12692
12693         * platform/gtk/RenderThemeGtk.cpp:
12694         (WebCore::RenderThemeGtk::~RenderThemeGtk):
12695         * platform/gtk/RenderThemeGtk.h:
12696
12697 2009-05-05  Darin Adler  <darin@apple.com>
12698
12699         Reviewed by Steve Falkenburg.
12700
12701         <rdar://problem/6858340> REGRESSION: can't drag local HTML files into Safari because CFURLCreateWithFileSystemPath inserts "localhost"
12702
12703         * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::urlFromPath): Remove localhost.
12704
12705 2009-05-05  Peter Kasting  <pkasting@google.com>
12706
12707         Reviewed by Brady Eidson.
12708
12709         Safety-check m_documentLoader before dereferencing.  While it seems
12710         unlikely this could fail (as Safari 3 shipped without this),
12711         technically almost any call can change or reset m_documentLoader.
12712
12713         * loader/FrameLoader.cpp:
12714         (WebCore::FrameLoader::receivedFirstData):
12715
12716 2009-05-05  Dan Bernstein  <mitz@apple.com>
12717
12718         - Tiger build fix
12719
12720         * css/CSSComputedStyleDeclaration.cpp:
12721         (WebCore::toCSSIdentifier):
12722
12723 2009-05-05  Peter Kasting  <pkasting@google.com>
12724
12725         Reviewed by Eric Seidel.
12726
12727         https://bugs.webkit.org/show_bug.cgi?id=25303
12728         No need to ref the internal buffer inside the Skia ImageDecoder.
12729
12730         * platform/image-decoders/skia/ImageDecoder.h:
12731         (WebCore::RGBA32Buffer::RGBA32Buffer):
12732         (WebCore::RGBA32Buffer::operator=):
12733         (WebCore::RGBA32Buffer::clear):
12734         (WebCore::RGBA32Buffer::copyBitmapData):
12735         (WebCore::RGBA32Buffer::bitmap):
12736         (WebCore::RGBA32Buffer::setSize):
12737         (WebCore::RGBA32Buffer::width):
12738         (WebCore::RGBA32Buffer::height):
12739         (WebCore::RGBA32Buffer::hasAlpha):
12740         (WebCore::RGBA32Buffer::setStatus):
12741         (WebCore::RGBA32Buffer::setHasAlpha):
12742         (WebCore::RGBA32Buffer::setRGBA):
12743
12744 2009-05-05  Dan Bernstein  <mitz@apple.com>
12745
12746         Reviewed by Darin Adler.
12747
12748         - fix https://bugs.webkit.org/show_bug.cgi?id=24192
12749           <rdar://problem/5760774> Replying to a Mail message that contains
12750           fixed width text can change the size of the text
12751
12752         Covered by existing tests: editing/pasteboard/5027857.html
12753                                    editing/pasteboard/paste-pre-002.html
12754
12755         * css/CSSComputedStyleDeclaration.cpp:
12756         (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword):
12757         Added. If the font-size is keyword-based, returns the keyword value
12758         instead of the pixel size.
12759         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): If
12760         font-family is a generic family, return the generic family instead of
12761         the the internal string -webkit-[serif|sans-serif|cursive|fantasy
12762         |monospace].
12763         (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
12764         For the font-size property, prefer a keyword value over a pixel size.
12765         * css/CSSComputedStyleDeclaration.h:
12766         * editing/ApplyStyleCommand.cpp:
12767         (WebCore::StyleChange::currentlyHasStyle): For the font-size property,
12768         call getFontSizeCSSValuePreferringKeyword().
12769         * platform/graphics/FontDescription.h:
12770         (WebCore::FontDescription::keywordSize): Changed the return type to
12771         unsigned.
12772         (WebCore::FontDescription::setKeywordSize): Changed the parameter type
12773         to unsigned.
12774         (WebCore::FontDescription::m_keywordSize): Changed the type of this
12775         4-bit field to unsigned, because it takes values as high as 8.
12776
12777 2009-05-05  Oliver Hunt  <oliver@apple.com>
12778
12779         Reviewed by Maciej Stachowiak.
12780
12781         Fix http/tests/misc/DOMContentLoaded-event.html
12782
12783         The native call performance improvement removed a few places where we
12784         unintentionally performed a toThisObject conversion.  This patch updates
12785         the bindings codegen to not rely on this bug.
12786
12787         * bindings/scripts/CodeGeneratorJS.pm:
12788
12789 2009-05-05  Holger Hans Peter Freyther  <zecke@selfish.org>
12790
12791         Reviewed by Xan Lopez and Gustavo Noronha.
12792
12793         Implement WebCore::directoryName for Gtk+.
12794
12795         * platform/gtk/FileSystemGtk.cpp:
12796         (WebCore::directoryName):
12797
12798 2009-05-05  Eric Seidel  <eric@webkit.org>
12799
12800         Reviewed by Adam Roben.
12801
12802         Fix mappedAttributes() access without NULL check
12803         https://bugs.webkit.org/show_bug.cgi?id=25553
12804
12805         SVGStyledElement::getPresentationAttribute was using mappedAttributes()
12806         without checking for NULL.
12807
12808         HTMLInputElement::setInputType also doesn't NULL check, but I was not
12809         able to get it to crash with a test case so I just added an ASSERT.
12810
12811         * html/HTMLInputElement.cpp:
12812         (WebCore::HTMLInputElement::setInputType):
12813         * svg/SVGStyledElement.cpp:
12814         (WebCore::SVGStyledElement::getPresentationAttribute):
12815
12816 2009-05-05  Holger Hans Peter Freyther  <zecke@selfish.org>
12817
12818         Reviewed by Xan Lopez.
12819
12820         Implement WebCore::imageTitle for Gtk+.
12821
12822         * platform/gtk/LocalizedStringsGtk.cpp:
12823         (WebCore::imageTitle):
12824
12825 2009-05-05  Oliver Hunt  <oliver@apple.com>
12826
12827         Reviewed by Gavin Barraclough.
12828
12829         Bug 25559: Improve native function call performance
12830         <https://bugs.webkit.org/show_bug.cgi?id=25559>
12831
12832         Add forwarding header necessary for compilation, and fix debugger
12833         to correctly account for change in JSFunction behaviour.
12834
12835         * ForwardingHeaders/jit/JITCode.h: Added.
12836         * inspector/JavaScriptDebugServer.cpp:
12837         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
12838
12839 2009-05-05  Simon Hausmann  <simon.hausmann@nokia.com>
12840
12841         Reviewed by Ariya Hidayat.
12842
12843         Make convertValueToQVariant more robust against null JSValues.
12844
12845         Don't require the caller to do the null check.
12846
12847         * bridge/qt/qt_runtime.cpp:
12848         (JSC::Bindings::convertValueToQVariant):
12849
12850 2009-05-05  Eric Seidel  <eric@webkit.org>
12851
12852         No review, just a revert.
12853
12854         Roll out http://trac.webkit.org/changeset/43213 as it caused 4 tests to crash.
12855
12856         * rendering/RenderSVGRoot.cpp:
12857         (WebCore::RenderSVGRoot::mapLocalToContainer):
12858         * rendering/SVGRenderSupport.cpp:
12859         (WebCore::SVGRenderBase::mapLocalToContainer):
12860
12861 2009-05-04  Alexey Proskuryakov  <ap@webkit.org>
12862
12863         Reviewed by Dave Hyatt.
12864
12865         <rdar://problem/6576889> REGRESSION (r35185): Cannot watch Flash movies on omg.yahoo.com
12866
12867         The problem was caused by missing <head> element - we used to create it when moving a
12868         misplaced <style> element, but we now handle those in place. Other browsers always create
12869         a <head> element.
12870
12871         There is no guarantee that a <head> element always exists - first, it can be removed with
12872         removeChild or innerHTML, and also, we don't currently create it for frameset documents, or
12873         for manually created ones (e.g. ImageDocument).
12874
12875         Test: fast/parser/head-element-for-yahoo-player.html
12876
12877         * dom/Document.cpp: (WebCore::Document::implicitClose): Create a <head> element for about:blank.
12878         A removed comment talked about rdar://3758785, but that problem doesn't re-occur even if this
12879         code is removed completely.
12880
12881         * html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::checkDTD): No longer allow <script>
12882         elements as children of <html>. This isn't directly related to this bug, but it was easier
12883         to fix both at once (IE and Firefox both don't allow such mispositioned <script> elements).
12884
12885         * html/HTMLParser.cpp:
12886         (WebCore::HTMLParser::handleError): Move <script> to <head> if <body> hasn't been created yet.
12887         Create a <head> it a <body> is created implicitly to contain some other element.
12888         (WebCore::HTMLParser::bodyCreateErrorCheck): Ensure that a <head> exists when <body> is
12889         explicitly present in source.
12890         (WebCore::HTMLParser::createHead): Do the work even if <html> element hasn't been created yet.
12891
12892 2009-05-04  Jakub Wieczorek  <faw217@gmail.com>
12893
12894         Reviewed by Simon Hausmann.
12895
12896         As Qtish implementation of MIMETypeRegistry::getMIMETypeForExtension()
12897         returns the application/octet-stream mimetype when it can't associate
12898         extension with any mimetype, it can happen that the application/octet-stream
12899         mimetype will hit the list of supported image formats. For instance,
12900         it is possible when QImageReader or QImageWriter support an extension
12901         that is not in the extensions map.
12902
12903         Make sure that this mimetype is not treated as displayable image type.
12904
12905         * platform/MIMETypeRegistry.cpp:
12906         (WebCore::initializeSupportedImageMIMETypes):
12907         (WebCore::initializeSupportedImageMIMETypesForEncoding):
12908
12909 2009-05-03  Eric Seidel  <eric@webkit.org>
12910
12911         Reviewed by Simon Fraser.
12912
12913         ASSERT(useTransforms) in SVG mapLocalToContainer implementations
12914         https://bugs.webkit.org/show_bug.cgi?id=25532
12915
12916         * rendering/RenderSVGRoot.cpp:
12917         (WebCore::RenderSVGRoot::mapLocalToContainer):
12918         * rendering/SVGRenderSupport.cpp:
12919         (WebCore::SVGRenderBase::mapLocalToContainer):
12920
12921 2009-05-03  Eric Seidel  <eric@webkit.org>
12922
12923         Reviewed by Simon Fraser.
12924
12925         Remove m_absoluteBounds hack from RenderSVGText
12926         https://bugs.webkit.org/show_bug.cgi?id=25532
12927
12928         No functional changes (SVGs inside CSS transformed HTML should theoretically repaint better)
12929
12930         * rendering/RenderSVGText.cpp:
12931         (WebCore::RenderSVGText::layout):
12932         * rendering/RenderSVGText.h:
12933
12934 2009-05-03  Eric Seidel  <eric@webkit.org>
12935
12936         Reviewed by Simon Fraser.
12937
12938         Remove the vestigial calculateLocalTransform()
12939         https://bugs.webkit.org/show_bug.cgi?id=25532
12940
12941         RenderSVGContainer is now the only render which needs this
12942         function, but it no longer returns the unused bool.
12943
12944         calculateLocalTransform() previously was called by the DOM before
12945         transform updates were part of layout().
12946
12947         * rendering/RenderForeignObject.cpp:
12948         (WebCore::RenderForeignObject::layout):
12949         * rendering/RenderForeignObject.h:
12950         (WebCore::RenderForeignObject::localTransform):
12951         * rendering/RenderPath.cpp:
12952         (WebCore::RenderPath::layout):
12953         * rendering/RenderPath.h:
12954         * rendering/RenderSVGContainer.cpp:
12955         * rendering/RenderSVGContainer.h:
12956         (WebCore::RenderSVGContainer::calculateLocalTransform):
12957         * rendering/RenderSVGImage.cpp:
12958         (WebCore::RenderSVGImage::layout):
12959         * rendering/RenderSVGImage.h:
12960         * rendering/RenderSVGText.cpp:
12961         (WebCore::RenderSVGText::layout):
12962         * rendering/RenderSVGText.h:
12963         * rendering/RenderSVGTransformableContainer.cpp:
12964         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
12965         * rendering/RenderSVGTransformableContainer.h:
12966
12967 2009-05-03  Eric Seidel  <eric@webkit.org>
12968
12969         Reviewed by Simon Fraser.
12970
12971         Move more code into SVGRenderBase
12972         https://bugs.webkit.org/show_bug.cgi?id=25532
12973
12974         clippedOverflowRectForRepaint, computeRectForRepaint and mapLocalToContainer
12975         are now all shared via SVGRenderBase.
12976
12977         RenderForeignObject should also be sharing this code, but I've left it
12978         alone for now, as changing that would likely cause test changes.
12979
12980         No test changes.  It's possible that transformed <svg:image> elements will
12981         now show up with better metrics in the inspector.
12982
12983         * rendering/RenderSVGImage.cpp:
12984         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint):
12985         (WebCore::RenderSVGImage::computeRectForRepaint):
12986         (WebCore::RenderSVGImage::mapLocalToContainer):
12987         * rendering/RenderSVGImage.h:
12988         * rendering/RenderSVGModelObject.cpp:
12989         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
12990         (WebCore::RenderSVGModelObject::computeRectForRepaint):
12991         (WebCore::RenderSVGModelObject::mapLocalToContainer):
12992         * rendering/RenderSVGText.cpp:
12993         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
12994         (WebCore::RenderSVGText::computeRectForRepaint):
12995         (WebCore::RenderSVGText::mapLocalToContainer):
12996         * rendering/SVGRenderSupport.cpp:
12997         (WebCore::SVGRenderBase::clippedOverflowRectForRepaint):
12998         (WebCore::SVGRenderBase::computeRectForRepaint):
12999         (WebCore::SVGRenderBase::mapLocalToContainer):
13000         * rendering/SVGRenderSupport.h:
13001
13002 2009-05-03  Eric Seidel  <eric@webkit.org>
13003
13004         Reviewed by Simon Fraser.
13005
13006         Add SVGRenderBase to share logic between SVG renderers
13007         https://bugs.webkit.org/show_bug.cgi?id=25532
13008
13009         I've added an SVGRenderBase base class which is shared by
13010         all of the SVG renders now.  This patch is just moving code
13011         there are no functional changes in this patch.
13012
13013         Currently I've left these functions in SVGRenderSupport.h
13014         In a later patch I will rename SVGRenderSupport.* to SVGRenderBase.*
13015
13016         clampImageBufferSizeToViewport now takes a FrameView* which makes some code easier to read.
13017
13018         * rendering/RenderSVGBlock.h:
13019         * rendering/RenderSVGImage.h:
13020         * rendering/RenderSVGModelObject.h:
13021         * rendering/RenderSVGRoot.h:
13022         * rendering/SVGRenderSupport.cpp:
13023         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
13024         (WebCore::SVGRenderBase::finishRenderSVGContent):
13025         (WebCore::clampImageBufferSizeToViewport):
13026         (WebCore::SVGRenderBase::computeContainerBoundingBox):
13027         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
13028         * rendering/SVGRenderSupport.h:
13029         * rendering/SVGRootInlineBox.cpp:
13030         (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
13031         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
13032         (WebCore::SVGRootInlineBox::paint):
13033         * svg/SVGMaskElement.cpp:
13034         (WebCore::SVGMaskElement::drawMaskerContent):
13035         * svg/SVGPatternElement.cpp:
13036         (WebCore::SVGPatternElement::buildPattern):
13037         * svg/graphics/SVGPaintServerGradient.cpp:
13038         (WebCore::createMaskAndSwapContextForTextGradient):
13039         (WebCore::clipToTextMask):
13040
13041 2009-05-05  Simon Hausmann  <simon.hausmann@nokia.com>
13042
13043         Unreviewed SVG build fix.
13044
13045         Include MappedAttribute.h after r43187.
13046
13047         * svg/SVGComponentTransferFunctionElement.cpp:
13048         * svg/SVGFEBlendElement.cpp:
13049         * svg/SVGFEColorMatrixElement.cpp:
13050         * svg/SVGFEComponentTransferElement.cpp:
13051         * svg/SVGFECompositeElement.cpp:
13052         * svg/SVGFEDiffuseLightingElement.cpp:
13053         * svg/SVGFEDisplacementMapElement.cpp:
13054         * svg/SVGFEGaussianBlurElement.cpp:
13055         * svg/SVGFEImageElement.cpp:
13056         * svg/SVGFELightElement.cpp:
13057         * svg/SVGFEMergeNodeElement.cpp:
13058         * svg/SVGFEOffsetElement.cpp:
13059         * svg/SVGFESpecularLightingElement.cpp:
13060         * svg/SVGFETileElement.cpp:
13061         * svg/SVGFETurbulenceElement.cpp:
13062         * svg/SVGFilterElement.cpp:
13063         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
13064
13065 2009-05-04  Brady Eidson  <beidson@apple.com>
13066
13067         Reviewed by Sam 'The Belly' Weinig
13068
13069         <rdar://problem/6828894> - Facebook photo uploader applet broken on Leopard only
13070
13071         In r41568 we started adding a default codebase attribute to <applet> tags if they didn't specify one
13072         themselves.  Leopard's Java plug-in mishandles this case and fails to load code for the applet.
13073
13074         The spirit of r41568 can be maintained by removing the "default codebase" piece and only performing
13075         the canLoad() check if a codebase was actually set on the applet tag.
13076
13077         * html/HTMLAppletElement.cpp:
13078         (WebCore::HTMLAppletElement::createRenderer): Don't create a default codebase attribute.
13079
13080         * loader/FrameLoader.cpp:
13081         (WebCore::FrameLoader::createJavaAppletWidget): Only perform the canLoad() check if the codebase was set.
13082
13083 2009-05-04  Adam Roben  <aroben@apple.com>
13084
13085         Windows build fix
13086
13087         * html/HTMLCollection.h:
13088         * html/HTMLFormElement.h:
13089         Declare CollectionCache as a struct, not a class, to match its
13090         definition.
13091
13092 2009-05-04  Chris Fleizach  <cfleizach@apple.com>
13093
13094         Reviewed by Beth Dakin, Oliver Hunt.
13095
13096         Bug 25557: REGRESSION: Canvas elements are ignored instead of being exposed as AXImage
13097         https://bugs.webkit.org/show_bug.cgi?id=25557
13098
13099         Test: accessibility/canvas.html
13100
13101         * page/AccessibilityRenderObject.cpp:
13102         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
13103         (WebCore::AccessibilityRenderObject::roleValue):
13104
13105 2009-05-04  Brady Eidson  <beidson@apple.com>
13106
13107         Fix an ancient Changelog entry where Sam Weinig flat out lied and confused my exploration of a bug.
13108
13109         * ChangeLog
13110
13111 2009-05-04  Kai Brüning  <kai@granus.net>
13112
13113         Reviewed by Eric Seidel.
13114         
13115         https://bugs.webkit.org/show_bug.cgi?id=24883
13116         24883: Bad success test in parseXMLDocumentFragment in XMLTokenizerLibxml2.cpp
13117         
13118         Fixed test whether all the chunk has been processed to correctly count utf8 bytes.
13119
13120         Test: fast/innerHTML/innerHTML-nbsp.xhtml
13121
13122         * dom/XMLTokenizerLibxml2.cpp:
13123         (WebCore::parseXMLDocumentFragment):
13124
13125 2009-05-04  Darin Adler  <darin@apple.com>
13126
13127         Reviewed by Eric Seidel.
13128
13129         Bug 24924: remove Document.h include of Attr.h and HTMLCollection.h,
13130         and NamedMappedAttrMap.h include of MappedAttribute.h
13131         https://bugs.webkit.org/show_bug.cgi?id=24924
13132
13133         Make compiles faster, and debugging info smaller.
13134
13135         * GNUmakefile.am: Added new source files.
13136         * WebCore.pro: Ditto.
13137         * WebCore.scons: Ditto.
13138         * WebCore.vcproj/WebCore.vcproj: Ditto.
13139         * WebCore.xcodeproj/project.pbxproj: Ditto.
13140         * WebCoreSources.bkl: Ditto.
13141
13142         * bindings/js/JSHTMLCollectionCustom.cpp:
13143         (WebCore::toJS): Updated for new collection type names.
13144
13145         * dom/Document.cpp:
13146         (WebCore::Document::createAttribute): Added. No longer inline.
13147         (WebCore::Document::images): Updated for new collection type names.
13148         (WebCore::Document::applets): Ditto.
13149         (WebCore::Document::embeds): Ditto.
13150         (WebCore::Document::plugins): Ditto.
13151         (WebCore::Document::objects): Ditto.
13152         (WebCore::Document::scripts): Ditto.
13153         (WebCore::Document::links): Ditto.
13154         (WebCore::Document::forms): Ditto.
13155         (WebCore::Document::anchors): Ditto.
13156         (WebCore::Document::all): Ditto.
13157         (WebCore::Document::windowNamedItems): Ditto.
13158         (WebCore::Document::documentNamedItems): Ditto.
13159         (WebCore::Document::nameCollectionInfo): Ditto.
13160
13161         * dom/Document.h: Changed around includes and forward declarations.
13162         Updated for changes to collection types.
13163
13164         * dom/NamedMappedAttrMap.h: Removed include of MappedAttribute.h.
13165
13166         * html/CollectionCache.cpp: Copied from WebCore/html/HTMLCollection.cpp.
13167         Contains the class that used to be HTMLCollection::CollectionInfo.
13168         * html/CollectionCache.h: Copied from WebCore/html/HTMLCollection.h.
13169         Ditto.
13170
13171         * html/CollectionType.h: Copied from WebCore/html/HTMLCollection.h.
13172         Has the enum that used to be HTMLCollection::Type.
13173
13174         * html/HTMLCollection.cpp:
13175         (WebCore::HTMLCollection::HTMLCollection): Update for collection type change.
13176         (WebCore::HTMLCollection::create): Ditto.
13177         (WebCore::HTMLCollection::resetCollectionInfo): Ditto.
13178         (WebCore::HTMLCollection::itemAfter): Ditto.
13179         * html/HTMLCollection.h: Ditto.
13180
13181         * html/HTMLElement.cpp:
13182         (WebCore::HTMLElement::children): Updated for new collection type names.
13183         * html/HTMLFormCollection.cpp:
13184         (WebCore::HTMLFormCollection::formCollectionInfo): Ditto.
13185         (WebCore::HTMLFormCollection::HTMLFormCollection): Ditto.
13186         * html/HTMLFormCollection.h: Ditto.
13187         * html/HTMLFormElement.h: Ditto.
13188         * html/HTMLMapElement.cpp:
13189         (WebCore::HTMLMapElement::areas): Ditto.
13190         * html/HTMLNameCollection.cpp:
13191         (WebCore::HTMLNameCollection::HTMLNameCollection): Ditto.
13192         * html/HTMLNameCollection.h:
13193         (WebCore::HTMLNameCollection::create): Ditto.
13194         * html/HTMLSelectElement.h:
13195         (WebCore::HTMLSelectElement::collectionInfo): Ditto.
13196         * html/HTMLTableElement.cpp:
13197         (WebCore::HTMLTableElement::tBodies):Ditto.
13198         * html/HTMLTableRowElement.cpp:
13199         (WebCore::HTMLTableRowElement::cells):Ditto.
13200         * html/HTMLTableRowsCollection.cpp:
13201         (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection): Ditto.
13202         * html/HTMLTableSectionElement.cpp:
13203         (WebCore::HTMLTableSectionElement::rows): Ditto.
13204
13205         * bindings/js/JSDOMWindowBase.cpp: Added newly-needed includes.
13206         * bindings/js/JSHTMLFrameSetElementCustom.cpp: Ditto.
13207         * css/CSSStyleSelector.cpp: Ditto.
13208         * dom/Element.cpp: Ditto.
13209         * dom/InputElement.cpp: Ditto.
13210         * dom/NamedAttrMap.cpp: Ditto.
13211         * dom/NamedMappedAttrMap.cpp: Ditto.
13212         * dom/Node.cpp: Ditto.
13213         * dom/StyledElement.cpp: Ditto.
13214         * dom/StyledElement.h: Ditto.
13215         * editing/ApplyStyleCommand.cpp: Ditto.
13216         * editing/DeleteSelectionCommand.cpp: Ditto.
13217         * editing/Editor.cpp: Ditto.
13218         * editing/EditorCommand.cpp: Ditto.
13219         * editing/InsertParagraphSeparatorCommand.cpp: Ditto.
13220         * editing/ReplaceSelectionCommand.cpp: Ditto.
13221         * editing/markup.cpp: Ditto.
13222         * html/CanvasRenderingContext2D.cpp: Ditto.
13223         * html/HTMLAnchorElement.cpp: Ditto.
13224         * html/HTMLAppletElement.cpp: Ditto.
13225         * html/HTMLAreaElement.cpp: Ditto.
13226         * html/HTMLBRElement.cpp: Ditto.
13227         * html/HTMLBaseElement.cpp: Ditto.
13228         * html/HTMLBodyElement.cpp: Ditto.
13229         * html/HTMLButtonElement.cpp: Ditto.
13230         * html/HTMLCanvasElement.cpp: Ditto.
13231         * html/HTMLDivElement.cpp: Ditto.
13232         * html/HTMLEmbedElement.cpp: Ditto.
13233         * html/HTMLFontElement.cpp: Ditto.
13234         * html/HTMLFormControlElement.cpp: Ditto.
13235         * html/HTMLFormElement.cpp: Ditto.
13236         * html/HTMLFrameElement.cpp: Ditto.
13237         * html/HTMLFrameElementBase.cpp: Ditto.
13238         * html/HTMLFrameSetElement.cpp: Ditto.
13239         * html/HTMLHRElement.cpp: Ditto.
13240         * html/HTMLIFrameElement.cpp: Ditto.
13241         * html/HTMLImageElement.cpp: Ditto.
13242         * html/HTMLInputElement.cpp: Ditto.
13243         * html/HTMLIsIndexElement.cpp: Ditto.
13244         * html/HTMLKeygenElement.cpp: Ditto.
13245         * html/HTMLLIElement.cpp: Ditto.
13246         * html/HTMLLinkElement.cpp: Ditto.
13247         * html/HTMLMarqueeElement.cpp: Ditto.
13248         * html/HTMLMetaElement.cpp: Ditto.
13249         * html/HTMLOListElement.cpp: Ditto.
13250         * html/HTMLObjectElement.cpp: Ditto.
13251         * html/HTMLOptionElement.cpp: Ditto.
13252         * html/HTMLParagraphElement.cpp: Ditto.
13253         * html/HTMLParamElement.cpp: Ditto.
13254         * html/HTMLPlugInElement.cpp: Ditto.
13255         * html/HTMLPreElement.cpp: Ditto.
13256         * html/HTMLScriptElement.cpp: Ditto.
13257         * html/HTMLSelectElement.cpp: Ditto.
13258         * html/HTMLStyleElement.cpp: Ditto.
13259         * html/HTMLTableCaptionElement.cpp: Ditto.
13260         * html/HTMLTableCellElement.cpp: Ditto.
13261         * html/HTMLTableColElement.cpp: Ditto.
13262         * html/HTMLTablePartElement.cpp: Ditto.
13263         * html/HTMLTextAreaElement.cpp: Ditto.
13264         * html/HTMLTokenizer.cpp: Ditto.
13265         * html/HTMLUListElement.cpp: Ditto.
13266         * html/HTMLVideoElement.cpp: Ditto.
13267         * html/HTMLViewSourceDocument.cpp: Ditto.
13268         * loader/ImageDocument.cpp: Ditto.
13269         * page/Frame.cpp: Ditto.
13270         * rendering/RenderTreeAsText.cpp: Ditto.
13271         * svg/SVGAElement.cpp: Ditto.
13272         * svg/SVGAnimateMotionElement.cpp: Ditto.
13273         * svg/SVGAnimateTransformElement.cpp: Ditto.
13274         * svg/SVGAnimationElement.cpp: Ditto.
13275         * svg/SVGCircleElement.cpp: Ditto.
13276         * svg/SVGClipPathElement.cpp: Ditto.
13277         * svg/SVGCursorElement.cpp: Ditto.
13278         * svg/SVGElement.cpp: Ditto.
13279         * svg/SVGEllipseElement.cpp: Ditto.
13280         * svg/SVGExternalResourcesRequired.cpp: Ditto.
13281         * svg/SVGFitToViewBox.cpp: Ditto.
13282         * svg/SVGFontFaceElement.cpp: Ditto.
13283         * svg/SVGFontFaceUriElement.cpp: Ditto.
13284         * svg/SVGForeignObjectElement.cpp: Ditto.
13285         * svg/SVGGlyphElement.cpp: Ditto.
13286         * svg/SVGGradientElement.cpp: Ditto.
13287         * svg/SVGImageElement.cpp: Ditto.
13288         * svg/SVGLangSpace.cpp: Ditto.
13289         * svg/SVGLineElement.cpp: Ditto.
13290         * svg/SVGLinearGradientElement.cpp: Ditto.
13291         * svg/SVGMarkerElement.cpp: Ditto.
13292         * svg/SVGMaskElement.cpp: Ditto.
13293         * svg/SVGPathElement.cpp: Ditto.
13294         * svg/SVGPatternElement.cpp: Ditto.
13295         * svg/SVGPolyElement.cpp: Ditto.
13296         * svg/SVGRadialGradientElement.cpp: Ditto.
13297         * svg/SVGRectElement.cpp: Ditto.
13298         * svg/SVGSVGElement.cpp: Ditto.
13299         * svg/SVGScriptElement.cpp: Ditto.
13300         * svg/SVGStopElement.cpp: Ditto.
13301         * svg/SVGStyleElement.cpp: Ditto.
13302         * svg/SVGStyledElement.cpp: Ditto.
13303         * svg/SVGStyledTransformableElement.cpp: Ditto.
13304         * svg/SVGTests.cpp: Ditto.
13305         * svg/SVGTextContentElement.cpp: Ditto.
13306         * svg/SVGTextElement.cpp: Ditto.
13307         * svg/SVGTextPathElement.cpp: Ditto.
13308         * svg/SVGTextPositioningElement.cpp: Ditto.
13309         * svg/SVGURIReference.cpp: Ditto.
13310         * svg/SVGUseElement.cpp: Ditto.
13311         * svg/SVGViewElement.cpp: Ditto.
13312         * svg/animation/SVGSMILElement.cpp: Ditto.
13313         * xml/XPathStep.cpp: Ditto.
13314
13315 2009-05-04  Pavel Feldman  <pfeldman@chromium.org>
13316
13317         Reviewed by Timothy Hatcher.
13318
13319         Do not instantiate hidden WebInspector panels. Otherwise they are hitting unimplemented InspectorController methods.
13320         https://bugs.webkit.org/show_bug.cgi?id=25520
13321
13322         * inspector/front-end/inspector.js:
13323         (WebInspector.loaded):
13324
13325 2009-05-04  Brady Eidson <beidson@apple.com>
13326
13327         Reviewed by Darin Adler.
13328
13329         <rdar://problem/6839881> With "Mail Contents of This Page" in Safari images don't appear in the Tiger Mail compose window
13330
13331         DocumentLoader::subresource() is the implementation for the WebKit API [WebDataSource subresourceForURL:] and has 
13332         particularly sticky behavior.  
13333
13334         If the DocumentLoader represents a WebArchive, this method should return ArchiveResources from that archive.  However, we 
13335         prefer CachedResources over ArchiveResources because they might represent fresher data than what was originally loaded 
13336         from the WebArchive.
13337
13338         In some instances, CachedResources are created and associated with the DocumentLoader but not immediately run through the 
13339         loading delegate machinery.  This was always a possibility, but the Preload Scanner made this significantly more likely.
13340
13341         When this happens and someone asks the WebDataSource for a subresource, it would prefer the CachedResource over an 
13342         ArchiveResource it has even if the CachedResource hasn't been loaded yet.  The CachedResource has nil data, so no
13343         WebResource is returned, and the client thinks the subresource doesn't exist even though it does.
13344
13345         This broke Tiger Mail and probably various other WebKit applications but has a fairly straightforward fix.
13346
13347         * loader/DocumentLoader.cpp:
13348         (WebCore::DocumentLoader::subresource): If there is a CachedResource but it hasn't been loaded yet, fallback to the
13349           ArchiveResource.
13350
13351 2009-05-04  Eric Carlson  <eric.carlson@apple.com>
13352
13353         Reviewed by Adam Roben.
13354         
13355         https://bugs.webkit.org/show_bug.cgi?id=25545
13356         Bug 25545: HTMLMediaElement: display anamorphic video correctly
13357         
13358         Tell QuickTime to use clean aperture mode so movies with non-square pixels are sized
13359         and displayed correctly.
13360
13361         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
13362         (WebCore::MediaPlayerPrivate::createQTMovie): Ask QuickTime to use clean aperture mode.
13363         * platform/graphics/win/QTMovieWin.cpp:
13364         (QTMovieWin::load): Ditto. Add ASSERT to ensure that static movie property array isn't 
13365         filled beyond capacity.
13366
13367 2009-05-03  Mark Rowe  <mrowe@apple.com>
13368
13369         Reviewed by Darin Adler.
13370
13371         Fix <https://bugs.webkit.org/show_bug.cgi?id=25332>.
13372         Bug 25332: Plug-in inserted in to DOM of PluginDocument fails to load
13373
13374         Only the first plug-in in a PluginDocument can use the main resource data.  For all
13375         subsequent plug-ins, such as the plug-in that ClickToFlash inserts when swapping itself
13376         out for the real Flash plug-in, we need to load the resource data in the same manner
13377         as for other embedded plug-ins.
13378
13379         * loader/FrameLoader.cpp:
13380         (WebCore::FrameLoader::loadPlugin):
13381
13382 2009-05-04  Simon Hausmann  <simon.hausmann@nokia.com>
13383
13384         Rubber-stamped by Ariya Hidayat.
13385
13386         Update the qrc file for the Web Inspector in the Qt build
13387         with missing files.
13388
13389         * inspector/front-end/WebKit.qrc:
13390
13391 2009-05-03  Eric Seidel  <eric@webkit.org>
13392
13393         Reviewed by George Staikos.
13394
13395         Move absoluteRects and absoluteQuads into RenderSVGInline and remove absoluteTransform() usage
13396         https://bugs.webkit.org/show_bug.cgi?id=25532
13397
13398         * rendering/RenderSVGInline.cpp:
13399         (WebCore::RenderSVGInline::absoluteRects):
13400         (WebCore::RenderSVGInline::absoluteQuads):
13401         * rendering/RenderSVGInline.h:
13402         * rendering/RenderSVGTSpan.cpp:
13403         * rendering/RenderSVGTSpan.h:
13404         * rendering/RenderSVGTextPath.cpp:
13405         * rendering/RenderSVGTextPath.h:
13406
13407 2009-05-03  Eric Seidel  <eric@webkit.org>
13408
13409         Reviewed by George Staikos.
13410
13411         Move RenderSVGText off of localToAbsolute()
13412         https://bugs.webkit.org/show_bug.cgi?id=25532
13413
13414         * rendering/RenderSVGText.cpp:
13415         (WebCore::RenderSVGText::absoluteRects):
13416         (WebCore::RenderSVGText::absoluteQuads):
13417
13418 2009-05-03  Eric Seidel  <eric@webkit.org>
13419
13420         Reviewed by George Staikos.
13421
13422         Remove broken absoluteTransform() code from RenderSVGInlineText
13423         https://bugs.webkit.org/show_bug.cgi?id=25532
13424
13425         This improved SVG text focus rings.
13426         This also improved SVG.getScreenCTM() results.
13427
13428         SVGSVGElement::getScreenCTM was passing "true" for the second argument in
13429         localToAbsolute, which is "fixed" it meant to pass "true" for the
13430         third argument (useTransforms).  That change alone caused no layout test changes, however
13431         before I fixed this, it was hitting ASSERT(!fixed) in RenderSVGRoot::mapLocalToContainer
13432
13433         mapLocalToContainer implementations really should be shared,
13434         but I'll do that in a later patch.
13435
13436         * rendering/RenderSVGInlineText.cpp:
13437         (WebCore::RenderSVGInlineText::styleDidChange):
13438         (WebCore::RenderSVGInlineText::absoluteQuads):
13439         (WebCore::RenderSVGInlineText::computeRepaintRectForRange):
13440         (WebCore::RenderSVGInlineText::computeRepaintQuadForRange):
13441         * rendering/RenderSVGInlineText.h:
13442         * rendering/RenderSVGRoot.cpp:
13443         (WebCore::RenderSVGRoot::mapLocalToContainer):
13444         * rendering/RenderSVGRoot.h:
13445         * rendering/RenderSVGText.cpp:
13446         (WebCore::RenderSVGText::mapLocalToContainer):
13447         * rendering/RenderSVGText.h:
13448         * svg/SVGSVGElement.cpp:
13449         (WebCore::SVGSVGElement::getScreenCTM):
13450
13451 2009-05-03  Eric Seidel  <eric@webkit.org>
13452
13453         Reviewed by George Staikos.
13454
13455         Remove dead code from RenderPath
13456         https://bugs.webkit.org/show_bug.cgi?id=25532
13457
13458         * rendering/RenderPath.cpp:
13459         * rendering/RenderPath.h:
13460
13461 2009-05-03  Eric Seidel  <eric@webkit.org>
13462
13463         Reviewed by George Staikos.
13464
13465         Share layout code between RenderSVGViewportContainer and RenderSVGContainer
13466         https://bugs.webkit.org/show_bug.cgi?id=25532
13467
13468         * rendering/RenderSVGContainer.cpp:
13469         (WebCore::RenderSVGContainer::layout):
13470         * rendering/RenderSVGContainer.h:
13471         (WebCore::RenderSVGContainer::calcViewport):
13472         * rendering/RenderSVGViewportContainer.cpp:
13473         (WebCore::RenderSVGViewportContainer::applyViewportClip):
13474         * rendering/RenderSVGViewportContainer.h:
13475
13476 2009-05-03  Eric Seidel  <eric@webkit.org>
13477
13478         Reviewed by George Staikos.
13479
13480         Remove redundant disableLayoutState() calls
13481         https://bugs.webkit.org/show_bug.cgi?id=25532
13482
13483         * rendering/RenderForeignObject.cpp:
13484         (WebCore::RenderForeignObject::layout):
13485         * rendering/RenderSVGContainer.cpp:
13486         (WebCore::RenderSVGContainer::layout):
13487         * rendering/RenderSVGViewportContainer.cpp:
13488         (WebCore::RenderSVGViewportContainer::layout):
13489
13490 2009-05-03  Eric Seidel  <eric@webkit.org>
13491
13492         Reviewed by George Staikos.
13493
13494         Simplify RenderForeignObject::paint and fix a repaint bug.
13495         Paint now calls applyTransformToPaintInfo which correctly transforms the damage rect.
13496         https://bugs.webkit.org/show_bug.cgi?id=16939
13497
13498         * rendering/RenderForeignObject.cpp:
13499         (WebCore::RenderForeignObject::paint):
13500
13501 2009-05-03  Hironori Bono  <hbono@chromium.org>
13502
13503         Reviewed by Eric Seidel.
13504
13505         Test: editing/spelling/spellcheck-attribute.html
13506
13507         Bug 14552: Add a way to disable spell checking for specific element
13508         https://bugs.webkit.org/show_bug.cgi?id=14552
13509
13510         For compatibility with Firefox, this code ascends the DOM tree when an element does
13511         not have its "spellcheck" attribute.
13512
13513         * editing/Editor.cpp:
13514         (WebCore::markMisspellingsOrBadGrammar): Retrieve the value of the "spellcheck"
13515         attribute of an element before calling a spell checker or a grammar checker.
13516         * html/HTMLAttributeNames.in: Add a "spellcheck" attribute.
13517
13518 2009-05-03  Sam Weinig  <sam@webkit.org>
13519
13520         Roll JSC API number marshaling back in one last time (I hope).
13521
13522 2009-05-03  Sam Weinig  <sam@webkit.org>
13523
13524         Roll JSC API number marshaling back out. It still breaks windows.
13525
13526 2009-05-03  Sam Weinig  <sam@webkit.org>
13527
13528         Roll JSC API number marshaling back in.
13529
13530 2009-05-02  Dan Bernstein  <mitz@apple.com>
13531
13532         Reviewed by Darin Adler.
13533
13534         - another fix for <rdar://problem/6617298> Typing delete on an unquoted
13535           blank line unquotes the preceding, quoted blank line
13536
13537         Test: editing/deleting/type-delete-after-quote-2.html
13538
13539         * editing/DeleteSelectionCommand.cpp:
13540         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): Initialize
13541         m_startsAtEmptyLine.
13542         (WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete): When the
13543         selection starts at an empty line, do not prevent the merging of blocks.
13544         This is what allows the text after the line break to be merged into the
13545         block containing the line break. Also set m_startsAtEmptyLine to true.
13546         (WebCore::DeleteSelectionCommand::mergeParagraphs): If
13547         m_startsAtEmptyLine is true, create a placeholder BR to serve as the
13548         merge destination.
13549         * editing/DeleteSelectionCommand.h:
13550
13551 2009-05-02  Geoffrey Garen  <ggaren@apple.com>
13552
13553         Reviewed by Sam Weinig.
13554
13555         Simplified null-ish JSValues.
13556         
13557         Replaced calls to noValue() with calls to JSValue() (which is what
13558         noValue() returned). Removed noValue().
13559         
13560         Removed "JSValue()" initialiazers, since default construction happens...
13561         by default.
13562
13563         * bindings/js/JSDOMBinding.cpp:
13564         (WebCore::setDOMException):
13565         * bindings/js/JSDOMWindowCustom.cpp:
13566         (WebCore::JSDOMWindow::open):
13567         (WebCore::JSDOMWindow::showModalDialog):
13568         * bindings/js/JSEventListener.cpp:
13569         (WebCore::JSEventListener::handleEvent):
13570         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
13571         (WebCore::JSJavaScriptCallFrame::evaluate):
13572         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13573         (WebCore::JSSQLResultSetRowList::item):
13574         * bindings/js/ScriptController.cpp:
13575         (WebCore::ScriptController::evaluate):
13576         * bindings/js/ScriptValue.h:
13577         (WebCore::ScriptValue::ScriptValue):
13578         (WebCore::ScriptValue::hasNoValue):
13579         * bindings/js/WorkerScriptController.cpp:
13580         (WebCore::WorkerScriptController::evaluate):
13581         * bridge/jni/jni_instance.cpp:
13582         (JavaInstance::invokeMethod):
13583         * bridge/jni/jni_runtime.cpp:
13584         (JavaField::dispatchValueFromInstance):
13585         (JavaField::dispatchSetValueToInstance):
13586         * bridge/runtime.h:
13587         (JSC::Bindings::Instance::invokeConstruct):
13588
13589 2009-05-02  Antti Koivisto  <antti@apple.com>
13590
13591         Reviewed by Dan Bernstein.
13592
13593         <rdar://problem/6631735> Crash in WebCore::CSSStyleSelector::applyProperty(int, WebCore::CSSValue*) (RenderStyle.h:454)
13594         
13595         Avoid re-entering style selector from load delegates by not issuing resource loads synchronously during attach().
13596
13597         * dom/ContainerNode.cpp:
13598         (WebCore::ContainerNode::suspendPostAttachCallbacks):
13599         (WebCore::ContainerNode::resumePostAttachCallbacks):
13600         (WebCore::ContainerNode::attach):
13601         * dom/Element.cpp:
13602         (WebCore::Element::attach):
13603         * loader/loader.cpp:
13604         (WebCore::Loader::Loader):
13605         (WebCore::Loader::servePendingRequests):
13606         (WebCore::Loader::suspendPendingRequests):
13607         (WebCore::Loader::resumePendingRequests):
13608         (WebCore::Loader::Host::servePendingRequests):
13609         * loader/loader.h:
13610         (WebCore::Loader::isSuspendingPendingRequests):
13611
13612 2009-05-02  Darin Adler  <darin@apple.com>
13613
13614         Reviewed by Dan Bernstein.
13615
13616         Bug 25352: REGRESSION(r42322): style isn't applied at bmwusa.com
13617         https://bugs.webkit.org/show_bug.cgi?id=25352
13618         rdar://problem/6823239
13619
13620         Test: http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html
13621
13622         * platform/network/HTTPParsers.cpp:
13623         (WebCore::extractMIMETypeFromMediaType): Allow comma as a separator.
13624
13625 2009-05-02  Darin Adler  <darin@apple.com>
13626
13627         Reviewed by Brady Eidson.
13628
13629         Bug 25491: WebFrame leak when a subframe removes itself
13630         https://bugs.webkit.org/show_bug.cgi?id=25491
13631         rdar://problem/6833859
13632
13633         Test: fast/loading/subframe-removes-itself.html
13634
13635         * loader/FrameLoader.cpp:
13636         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): When isStopping is true,
13637         treat load as complete, even if isLoadingInAPISense is still returning true.
13638
13639 2009-05-01  Sam Weinig  <sam@webkit.org>
13640
13641         Roll out JavaScriptCore API number marshaling.
13642
13643         * bindings/js/ScriptValue.cpp:
13644         (WebCore::ScriptValue::isEqual):
13645         * inspector/JavaScriptProfile.cpp:
13646         (WebCore::getHeadCallback):
13647         * inspector/JavaScriptProfileNode.cpp:
13648         (WebCore::getChildren):
13649         (WebCore::getParent):
13650         (WebCore::getHead):
13651
13652 2009-05-01  Sam Weinig  <sam@webkit.org>
13653
13654         Fix build.
13655
13656         * workers/WorkerContext.idl:
13657
13658 2009-05-01  Sam Weinig  <sam@webkit.org>
13659
13660         Reviewed by Oliver Hunt.
13661
13662         Cleanup workers code a bit.
13663
13664         * bindings/js/JSWorkerContextBase.cpp:
13665         (WebCore::toJS):
13666         * bindings/js/JSWorkerContextBase.h:
13667         * bindings/js/JSWorkerContextCustom.cpp:
13668         (WebCore::JSWorkerContext::customGetOwnPropertySlot):
13669         * workers/WorkerContext.h:
13670         (WebCore::WorkerContext::toWorkerContext):
13671         (WebCore::WorkerContext::self):
13672         (WebCore::WorkerContext::setOnmessage):
13673         (WebCore::WorkerContext::onmessage):
13674         * workers/WorkerContext.idl:
13675
13676 2009-05-01  Sam Weinig  <sam@webkit.org>
13677
13678         Reviewed by Darin Adler.
13679
13680         A little clean up.
13681
13682         * loader/FrameLoader.cpp:
13683         (WebCore::FrameLoader::createJavaAppletWidget):
13684
13685 2009-05-01  Sam Weinig  <sam@webkit.org>
13686
13687         Fix the build.
13688
13689         * bindings/js/ScriptValue.cpp:
13690         (WebCore::ScriptValue::isEqual):
13691         * inspector/JavaScriptProfile.cpp:
13692         (WebCore::getHeadCallback):
13693         * inspector/JavaScriptProfileNode.cpp:
13694         (WebCore::getChildren):
13695         (WebCore::getParent):
13696         (WebCore::getHead):
13697
13698 2009-05-01  Brady Eidson  <beidson@apple.com>
13699
13700         Reviewed by Oliver Hunt and Sam "Jon 'The Belly' Honeycutt" Weinig
13701
13702         Fix <rdar://problem/6848867> Addition of DOCTYPE node breaks Tiger Mail
13703
13704         * bindings/objc/DOMHTML.mm:
13705         (-[DOMHTMLDocument firstChild]): Add a Tiger Mail version of this method that skips DOCTYPE nodes.
13706
13707 2009-05-01  Geoffrey Garen  <ggaren@apple.com>
13708
13709         Rubber Stamped by Sam Weinig.
13710         
13711         Renamed JSValuePtr => JSValue.
13712
13713         * bindings/js/JSAttrCustom.cpp:
13714         (WebCore::JSAttr::setValue):
13715         * bindings/js/JSCDATASectionCustom.cpp:
13716         (WebCore::toJSNewlyCreated):
13717         * bindings/js/JSCSSRuleCustom.cpp:
13718         (WebCore::toJS):
13719         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
13720         (WebCore::JSCSSStyleDeclaration::nameGetter):
13721         (WebCore::JSCSSStyleDeclaration::customPut):
13722         * bindings/js/JSCSSValueCustom.cpp:
13723         (WebCore::toJS):
13724         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
13725         (WebCore::toJS):
13726         (WebCore::toHTMLCanvasStyle):
13727         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
13728         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
13729         (WebCore::JSCanvasRenderingContext2D::fillStyle):
13730         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
13731         (WebCore::JSCanvasRenderingContext2D::setFillColor):
13732         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
13733         (WebCore::JSCanvasRenderingContext2D::strokeRect):
13734         (WebCore::JSCanvasRenderingContext2D::drawImage):
13735         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
13736         (WebCore::JSCanvasRenderingContext2D::setShadow):
13737         (WebCore::JSCanvasRenderingContext2D::createPattern):
13738         (WebCore::JSCanvasRenderingContext2D::putImageData):
13739         (WebCore::JSCanvasRenderingContext2D::fillText):
13740         (WebCore::JSCanvasRenderingContext2D::strokeText):
13741         * bindings/js/JSClipboardCustom.cpp:
13742         (WebCore::JSClipboard::types):
13743         (WebCore::JSClipboard::clearData):
13744         (WebCore::JSClipboard::getData):
13745         (WebCore::JSClipboard::setData):
13746         (WebCore::JSClipboard::setDragImage):
13747         * bindings/js/JSConsoleCustom.cpp:
13748         (WebCore::JSConsole::profiles):
13749         * bindings/js/JSCoordinatesCustom.cpp:
13750         (WebCore::JSCoordinates::altitude):
13751         (WebCore::JSCoordinates::altitudeAccuracy):
13752         (WebCore::JSCoordinates::heading):
13753         (WebCore::JSCoordinates::speed):
13754         * bindings/js/JSCustomPositionCallback.cpp:
13755         (WebCore::JSCustomPositionCallback::handleEvent):
13756         * bindings/js/JSCustomPositionErrorCallback.cpp:
13757         (WebCore::JSCustomPositionErrorCallback::handleEvent):
13758         * bindings/js/JSCustomSQLStatementCallback.cpp:
13759         (WebCore::JSCustomSQLStatementCallback::handleEvent):
13760         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
13761         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
13762         * bindings/js/JSCustomSQLTransactionCallback.cpp:
13763         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
13764         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
13765         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
13766         * bindings/js/JSCustomVoidCallback.cpp:
13767         (WebCore::JSCustomVoidCallback::handleEvent):
13768         (WebCore::toVoidCallback):
13769         * bindings/js/JSCustomVoidCallback.h:
13770         * bindings/js/JSCustomXPathNSResolver.cpp:
13771         (WebCore::JSCustomXPathNSResolver::create):
13772         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
13773         * bindings/js/JSCustomXPathNSResolver.h:
13774         * bindings/js/JSDOMApplicationCacheCustom.cpp:
13775         (WebCore::JSDOMApplicationCache::hasItem):
13776         (WebCore::JSDOMApplicationCache::add):
13777         (WebCore::JSDOMApplicationCache::remove):
13778         (WebCore::JSDOMApplicationCache::addEventListener):
13779         (WebCore::JSDOMApplicationCache::removeEventListener):
13780         * bindings/js/JSDOMBinding.cpp:
13781         (WebCore::jsStringOrNull):
13782         (WebCore::jsOwnedStringOrNull):
13783         (WebCore::jsStringOrUndefined):
13784         (WebCore::jsStringOrFalse):
13785         (WebCore::valueToStringWithNullCheck):
13786         (WebCore::valueToStringWithUndefinedOrNullCheck):
13787         (WebCore::reportException):
13788         (WebCore::reportCurrentException):
13789         (WebCore::setDOMException):
13790         (WebCore::objectToStringFunctionGetter):
13791         * bindings/js/JSDOMBinding.h:
13792         (WebCore::getDOMObjectWrapper):
13793         (WebCore::getDOMNodeWrapper):
13794         (WebCore::toJS):
13795         * bindings/js/JSDOMGlobalObject.cpp:
13796         (WebCore::JSDOMGlobalObject::findJSEventListener):
13797         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
13798         (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
13799         * bindings/js/JSDOMGlobalObject.h:
13800         * bindings/js/JSDOMStringListCustom.cpp:
13801         (WebCore::JSDOMStringList::getByIndex):
13802         (WebCore::JSDOMStringList::item):
13803         * bindings/js/JSDOMWindowBase.cpp:
13804         (WebCore::JSDOMWindowBase::childFrameGetter):
13805         (WebCore::JSDOMWindowBase::indexGetter):
13806         (WebCore::JSDOMWindowBase::namedItemGetter):
13807         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
13808         (WebCore::JSDOMWindowBase::put):
13809         (WebCore::JSDOMWindowBase::setReturnValueSlot):
13810         (WebCore::toJS):
13811         (WebCore::toJSDOMWindow):
13812         * bindings/js/JSDOMWindowBase.h:
13813         * bindings/js/JSDOMWindowCustom.cpp:
13814         (WebCore::JSDOMWindow::lookupGetter):
13815         (WebCore::JSDOMWindow::lookupSetter):
13816         (WebCore::JSDOMWindow::history):
13817         (WebCore::JSDOMWindow::location):
13818         (WebCore::JSDOMWindow::setLocation):
13819         (WebCore::JSDOMWindow::crypto):
13820         (WebCore::JSDOMWindow::event):
13821         (WebCore::JSDOMWindow::image):
13822         (WebCore::JSDOMWindow::option):
13823         (WebCore::JSDOMWindow::audio):
13824         (WebCore::JSDOMWindow::webKitPoint):
13825         (WebCore::JSDOMWindow::webKitCSSMatrix):
13826         (WebCore::JSDOMWindow::xmlHttpRequest):
13827         (WebCore::JSDOMWindow::xsltProcessor):
13828         (WebCore::JSDOMWindow::messageChannel):
13829         (WebCore::JSDOMWindow::worker):
13830         (WebCore::createWindow):
13831         (WebCore::JSDOMWindow::open):
13832         (WebCore::JSDOMWindow::showModalDialog):
13833         (WebCore::JSDOMWindow::postMessage):
13834         (WebCore::JSDOMWindow::setTimeout):
13835         (WebCore::JSDOMWindow::setInterval):
13836         (WebCore::JSDOMWindow::atob):
13837         (WebCore::JSDOMWindow::btoa):
13838         (WebCore::JSDOMWindow::addEventListener):
13839         (WebCore::JSDOMWindow::removeEventListener):
13840         (WebCore::toDOMWindow):
13841         * bindings/js/JSDOMWindowCustom.h:
13842         (WebCore::nonCachingStaticFunctionGetter):
13843         (WebCore::JSDOMWindow::customPut):
13844         * bindings/js/JSDOMWindowShell.cpp:
13845         (WebCore::JSDOMWindowShell::put):
13846         (WebCore::JSDOMWindowShell::putWithAttributes):
13847         (WebCore::JSDOMWindowShell::lookupGetter):
13848         (WebCore::JSDOMWindowShell::lookupSetter):
13849         (WebCore::toJS):
13850         * bindings/js/JSDOMWindowShell.h:
13851         (WebCore::JSDOMWindowShell::createStructure):
13852         * bindings/js/JSDatabaseCustom.cpp:
13853         (WebCore::JSDatabase::changeVersion):
13854         (WebCore::JSDatabase::transaction):
13855         * bindings/js/JSDocumentCustom.cpp:
13856         (WebCore::JSDocument::location):
13857         (WebCore::JSDocument::setLocation):
13858         (WebCore::toJS):
13859         * bindings/js/JSElementCustom.cpp:
13860         (WebCore::JSElement::setAttribute):
13861         (WebCore::JSElement::setAttributeNode):
13862         (WebCore::JSElement::setAttributeNS):
13863         (WebCore::JSElement::setAttributeNodeNS):
13864         (WebCore::toJSNewlyCreated):
13865         * bindings/js/JSEventCustom.cpp:
13866         (WebCore::JSEvent::clipboardData):
13867         (WebCore::toJS):
13868         * bindings/js/JSEventListener.cpp:
13869         (WebCore::JSEventListener::handleEvent):
13870         * bindings/js/JSEventTarget.cpp:
13871         (WebCore::toJS):
13872         (WebCore::toEventTarget):
13873         * bindings/js/JSEventTarget.h:
13874         * bindings/js/JSEventTargetBase.h:
13875         * bindings/js/JSGeolocationCustom.cpp:
13876         (WebCore::createPositionOptions):
13877         (WebCore::JSGeolocation::getCurrentPosition):
13878         (WebCore::JSGeolocation::watchPosition):
13879         * bindings/js/JSHTMLAllCollection.h:
13880         (WebCore::JSHTMLAllCollection::createStructure):
13881         * bindings/js/JSHTMLAppletElementCustom.cpp:
13882         (WebCore::JSHTMLAppletElement::customPut):
13883         (WebCore::JSHTMLAppletElement::nameGetter):
13884         * bindings/js/JSHTMLCollectionCustom.cpp:
13885         (WebCore::getNamedItems):
13886         (WebCore::callHTMLCollection):
13887         (WebCore::JSHTMLCollection::nameGetter):
13888         (WebCore::JSHTMLCollection::item):
13889         (WebCore::JSHTMLCollection::namedItem):
13890         (WebCore::toJS):
13891         * bindings/js/JSHTMLDocumentCustom.cpp:
13892         (WebCore::JSHTMLDocument::nameGetter):
13893         (WebCore::JSHTMLDocument::all):
13894         (WebCore::JSHTMLDocument::setAll):
13895         (WebCore::JSHTMLDocument::open):
13896         (WebCore::JSHTMLDocument::write):
13897         (WebCore::JSHTMLDocument::writeln):
13898         * bindings/js/JSHTMLEmbedElementCustom.cpp:
13899         (WebCore::JSHTMLEmbedElement::customPut):
13900         (WebCore::JSHTMLEmbedElement::nameGetter):
13901         * bindings/js/JSHTMLFormElementCustom.cpp:
13902         (WebCore::JSHTMLFormElement::nameGetter):
13903         (WebCore::JSHTMLFormElement::submit):
13904         * bindings/js/JSHTMLFrameElementCustom.cpp:
13905         (WebCore::JSHTMLFrameElement::setSrc):
13906         (WebCore::JSHTMLFrameElement::setLocation):
13907         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
13908         (WebCore::JSHTMLFrameSetElement::nameGetter):
13909         * bindings/js/JSHTMLIFrameElementCustom.cpp:
13910         (WebCore::JSHTMLIFrameElement::setSrc):
13911         * bindings/js/JSHTMLInputElementCustom.cpp:
13912         (WebCore::JSHTMLInputElement::selectionStart):
13913         (WebCore::JSHTMLInputElement::setSelectionStart):
13914         (WebCore::JSHTMLInputElement::selectionEnd):
13915         (WebCore::JSHTMLInputElement::setSelectionEnd):
13916         (WebCore::JSHTMLInputElement::setSelectionRange):
13917         * bindings/js/JSHTMLObjectElementCustom.cpp:
13918         (WebCore::JSHTMLObjectElement::customPut):
13919         (WebCore::JSHTMLObjectElement::nameGetter):
13920         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13921         (WebCore::JSHTMLOptionsCollection::length):
13922         (WebCore::JSHTMLOptionsCollection::setLength):
13923         (WebCore::JSHTMLOptionsCollection::indexSetter):
13924         (WebCore::JSHTMLOptionsCollection::add):
13925         (WebCore::JSHTMLOptionsCollection::remove):
13926         * bindings/js/JSHTMLSelectElementCustom.cpp:
13927         (WebCore::JSHTMLSelectElement::remove):
13928         (WebCore::selectIndexSetter):
13929         (WebCore::JSHTMLSelectElement::indexSetter):
13930         * bindings/js/JSHTMLSelectElementCustom.h:
13931         * bindings/js/JSHistoryCustom.cpp:
13932         (WebCore::nonCachingStaticBackFunctionGetter):
13933         (WebCore::nonCachingStaticForwardFunctionGetter):
13934         (WebCore::nonCachingStaticGoFunctionGetter):
13935         (WebCore::JSHistory::customPut):
13936         * bindings/js/JSImageDataCustom.cpp:
13937         (WebCore::toJS):
13938         * bindings/js/JSInspectedObjectWrapper.cpp:
13939         (WebCore::JSInspectedObjectWrapper::wrap):
13940         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue):
13941         * bindings/js/JSInspectedObjectWrapper.h:
13942         (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
13943         * bindings/js/JSInspectorCallbackWrapper.cpp:
13944         (WebCore::JSInspectorCallbackWrapper::wrap):
13945         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
13946         * bindings/js/JSInspectorCallbackWrapper.h:
13947         (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
13948         * bindings/js/JSInspectorControllerCustom.cpp:
13949         (WebCore::JSInspectorController::highlightDOMNode):
13950         (WebCore::JSInspectorController::addResourceSourceToFrame):
13951         (WebCore::JSInspectorController::addSourceToFrame):
13952         (WebCore::JSInspectorController::getResourceDocumentNode):
13953         (WebCore::JSInspectorController::search):
13954         (WebCore::JSInspectorController::databaseTableNames):
13955         (WebCore::JSInspectorController::inspectedWindow):
13956         (WebCore::JSInspectorController::setting):
13957         (WebCore::JSInspectorController::setSetting):
13958         (WebCore::JSInspectorController::wrapCallback):
13959         (WebCore::JSInspectorController::currentCallFrame):
13960         (WebCore::JSInspectorController::profiles):
13961         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
13962         (WebCore::JSJavaScriptCallFrame::evaluate):
13963         (WebCore::JSJavaScriptCallFrame::thisObject):
13964         (WebCore::JSJavaScriptCallFrame::type):
13965         (WebCore::JSJavaScriptCallFrame::scopeChain):
13966         * bindings/js/JSLazyEventListener.cpp:
13967         (WebCore::JSLazyEventListener::parseCode):
13968         * bindings/js/JSLocationCustom.cpp:
13969         (WebCore::nonCachingStaticReplaceFunctionGetter):
13970         (WebCore::nonCachingStaticReloadFunctionGetter):
13971         (WebCore::nonCachingStaticAssignFunctionGetter):
13972         (WebCore::JSLocation::customPut):
13973         (WebCore::JSLocation::setHref):
13974         (WebCore::JSLocation::setProtocol):
13975         (WebCore::JSLocation::setHost):
13976         (WebCore::JSLocation::setHostname):
13977         (WebCore::JSLocation::setPort):
13978         (WebCore::JSLocation::setPathname):
13979         (WebCore::JSLocation::setSearch):
13980         (WebCore::JSLocation::setHash):
13981         (WebCore::JSLocation::replace):
13982         (WebCore::JSLocation::reload):
13983         (WebCore::JSLocation::assign):
13984         (WebCore::JSLocation::toString):
13985         (WebCore::JSLocationPrototype::customPut):
13986         * bindings/js/JSMessagePortCustom.cpp:
13987         (WebCore::JSMessagePort::startConversation):
13988         (WebCore::JSMessagePort::addEventListener):
13989         (WebCore::JSMessagePort::removeEventListener):
13990         * bindings/js/JSMimeTypeArrayCustom.cpp:
13991         (WebCore::JSMimeTypeArray::nameGetter):
13992         * bindings/js/JSNamedNodeMapCustom.cpp:
13993         (WebCore::JSNamedNodeMap::nameGetter):
13994         * bindings/js/JSNamedNodesCollection.cpp:
13995         (WebCore::JSNamedNodesCollection::lengthGetter):
13996         (WebCore::JSNamedNodesCollection::indexGetter):
13997         * bindings/js/JSNamedNodesCollection.h:
13998         (WebCore::JSNamedNodesCollection::createStructure):
13999         * bindings/js/JSNavigatorCustom.cpp:
14000         (WebCore::needsYouTubeQuirk):
14001         (WebCore::JSNavigator::appVersion):
14002         * bindings/js/JSNodeCustom.cpp:
14003         (WebCore::JSNode::insertBefore):
14004         (WebCore::JSNode::replaceChild):
14005         (WebCore::JSNode::removeChild):
14006         (WebCore::JSNode::appendChild):
14007         (WebCore::JSNode::addEventListener):
14008         (WebCore::JSNode::removeEventListener):
14009         (WebCore::createWrapper):
14010         (WebCore::toJSNewlyCreated):
14011         (WebCore::toJS):
14012         * bindings/js/JSNodeFilterCondition.cpp:
14013         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
14014         (WebCore::JSNodeFilterCondition::acceptNode):
14015         * bindings/js/JSNodeFilterCondition.h:
14016         (WebCore::JSNodeFilterCondition::create):
14017         * bindings/js/JSNodeFilterCustom.cpp:
14018         (WebCore::JSNodeFilter::acceptNode):
14019         (WebCore::toNodeFilter):
14020         * bindings/js/JSNodeIteratorCustom.cpp:
14021         (WebCore::JSNodeIterator::nextNode):
14022         (WebCore::JSNodeIterator::previousNode):
14023         * bindings/js/JSNodeListCustom.cpp:
14024         (WebCore::callNodeList):
14025         (WebCore::JSNodeList::nameGetter):
14026         * bindings/js/JSPluginArrayCustom.cpp:
14027         (WebCore::JSPluginArray::nameGetter):
14028         * bindings/js/JSPluginCustom.cpp:
14029         (WebCore::JSPlugin::nameGetter):
14030         * bindings/js/JSPluginElementFunctions.cpp:
14031         (WebCore::runtimeObjectGetter):
14032         (WebCore::runtimeObjectPropertyGetter):
14033         (WebCore::runtimeObjectCustomPut):
14034         (WebCore::callPlugin):
14035         * bindings/js/JSPluginElementFunctions.h:
14036         * bindings/js/JSQuarantinedObjectWrapper.cpp:
14037         (WebCore::JSQuarantinedObjectWrapper::asWrapper):
14038         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter):
14039         (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
14040         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
14041         (WebCore::JSQuarantinedObjectWrapper::put):
14042         (WebCore::JSQuarantinedObjectWrapper::construct):
14043         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
14044         (WebCore::JSQuarantinedObjectWrapper::call):
14045         * bindings/js/JSQuarantinedObjectWrapper.h:
14046         (WebCore::JSQuarantinedObjectWrapper::createStructure):
14047         * bindings/js/JSRGBColor.cpp:
14048         (WebCore::getJSRGBColor):
14049         (jsRGBColorRed):
14050         (jsRGBColorGreen):
14051         (jsRGBColorBlue):
14052         * bindings/js/JSRGBColor.h:
14053         (WebCore::JSRGBColor::createStructure):
14054         * bindings/js/JSSQLResultSetRowListCustom.cpp:
14055         (WebCore::JSSQLResultSetRowList::item):
14056         * bindings/js/JSSQLTransactionCustom.cpp:
14057         (WebCore::JSSQLTransaction::executeSql):
14058         * bindings/js/JSSVGElementInstanceCustom.cpp:
14059         (WebCore::JSSVGElementInstance::addEventListener):
14060         (WebCore::JSSVGElementInstance::removeEventListener):
14061         (WebCore::toJS):
14062         * bindings/js/JSSVGLengthCustom.cpp:
14063         (WebCore::JSSVGLength::value):
14064         (WebCore::JSSVGLength::convertToSpecifiedUnits):
14065         * bindings/js/JSSVGMatrixCustom.cpp:
14066         (WebCore::JSSVGMatrix::inverse):
14067         (WebCore::JSSVGMatrix::rotateFromVector):
14068         * bindings/js/JSSVGPathSegCustom.cpp:
14069         (WebCore::toJS):
14070         * bindings/js/JSSVGPathSegListCustom.cpp:
14071         (WebCore::JSSVGPathSegList::clear):
14072         (WebCore::JSSVGPathSegList::initialize):
14073         (WebCore::JSSVGPathSegList::getItem):
14074         (WebCore::JSSVGPathSegList::insertItemBefore):
14075         (WebCore::JSSVGPathSegList::replaceItem):
14076         (WebCore::JSSVGPathSegList::removeItem):
14077         (WebCore::JSSVGPathSegList::appendItem):
14078         * bindings/js/JSSVGPointListCustom.cpp:
14079         (WebCore::finishGetter):
14080         (WebCore::finishSetter):
14081         (WebCore::finishSetterReadOnlyResult):
14082         (WebCore::JSSVGPointList::clear):
14083         (WebCore::JSSVGPointList::initialize):
14084         (WebCore::JSSVGPointList::getItem):
14085         (WebCore::JSSVGPointList::insertItemBefore):
14086         (WebCore::JSSVGPointList::replaceItem):
14087         (WebCore::JSSVGPointList::removeItem):
14088         (WebCore::JSSVGPointList::appendItem):
14089         * bindings/js/JSSVGTransformListCustom.cpp:
14090         (WebCore::finishGetter):
14091         (WebCore::finishSetter):
14092         (WebCore::finishSetterReadOnlyResult):
14093         (WebCore::JSSVGTransformList::clear):
14094         (WebCore::JSSVGTransformList::initialize):
14095         (WebCore::JSSVGTransformList::getItem):
14096         (WebCore::JSSVGTransformList::insertItemBefore):
14097         (WebCore::JSSVGTransformList::replaceItem):
14098         (WebCore::JSSVGTransformList::removeItem):
14099         (WebCore::JSSVGTransformList::appendItem):
14100         * bindings/js/JSStorageCustom.cpp:
14101         (WebCore::JSStorage::nameGetter):
14102         (WebCore::JSStorage::deleteProperty):
14103         (WebCore::JSStorage::customPut):
14104         * bindings/js/JSStyleSheetCustom.cpp:
14105         (WebCore::toJS):
14106         * bindings/js/JSStyleSheetListCustom.cpp:
14107         (WebCore::JSStyleSheetList::nameGetter):
14108         * bindings/js/JSTextCustom.cpp:
14109         (WebCore::toJSNewlyCreated):
14110         * bindings/js/JSTreeWalkerCustom.cpp:
14111         (WebCore::JSTreeWalker::parentNode):
14112         (WebCore::JSTreeWalker::firstChild):
14113         (WebCore::JSTreeWalker::lastChild):
14114         (WebCore::JSTreeWalker::nextSibling):
14115         (WebCore::JSTreeWalker::previousSibling):
14116         (WebCore::JSTreeWalker::previousNode):
14117         (WebCore::JSTreeWalker::nextNode):
14118         * bindings/js/JSWorkerContextCustom.cpp:
14119         (WebCore::JSWorkerContext::self):
14120         (WebCore::JSWorkerContext::setSelf):
14121         (WebCore::JSWorkerContext::xmlHttpRequest):
14122         (WebCore::JSWorkerContext::importScripts):
14123         (WebCore::JSWorkerContext::addEventListener):
14124         (WebCore::JSWorkerContext::removeEventListener):
14125         (WebCore::JSWorkerContext::setTimeout):
14126         (WebCore::JSWorkerContext::setInterval):
14127         * bindings/js/JSWorkerCustom.cpp:
14128         (WebCore::JSWorker::addEventListener):
14129         (WebCore::JSWorker::removeEventListener):
14130         * bindings/js/JSXMLHttpRequestCustom.cpp:
14131         (WebCore::JSXMLHttpRequest::open):
14132         (WebCore::JSXMLHttpRequest::setRequestHeader):
14133         (WebCore::JSXMLHttpRequest::send):
14134         (WebCore::JSXMLHttpRequest::getResponseHeader):
14135         (WebCore::JSXMLHttpRequest::overrideMimeType):
14136         (WebCore::JSXMLHttpRequest::addEventListener):
14137         (WebCore::JSXMLHttpRequest::removeEventListener):
14138         (WebCore::JSXMLHttpRequest::responseText):
14139         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
14140         (WebCore::JSXMLHttpRequestUpload::addEventListener):
14141         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
14142         * bindings/js/JSXSLTProcessorCustom.cpp:
14143         (WebCore::JSXSLTProcessor::importStylesheet):
14144         (WebCore::JSXSLTProcessor::transformToFragment):
14145         (WebCore::JSXSLTProcessor::transformToDocument):
14146         (WebCore::JSXSLTProcessor::setParameter):
14147         (WebCore::JSXSLTProcessor::getParameter):
14148         (WebCore::JSXSLTProcessor::removeParameter):
14149         * bindings/js/ScheduledAction.cpp:
14150         (WebCore::ScheduledAction::create):
14151         (WebCore::ScheduledAction::ScheduledAction):
14152         (WebCore::ScheduledAction::executeFunctionInContext):
14153         * bindings/js/ScheduledAction.h:
14154         * bindings/js/ScriptCallStack.cpp:
14155         (WebCore::ScriptCallStack::ScriptCallStack):
14156         (WebCore::ScriptCallStack::initialize):
14157         * bindings/js/ScriptCallStack.h:
14158         * bindings/js/ScriptController.cpp:
14159         (WebCore::ScriptController::jsObjectForPluginElement):
14160         * bindings/js/ScriptFunctionCall.cpp:
14161         (WebCore::ScriptFunctionCall::appendArgument):
14162         (WebCore::ScriptFunctionCall::call):
14163         (WebCore::ScriptFunctionCall::construct):
14164         * bindings/js/ScriptFunctionCall.h:
14165         * bindings/js/ScriptObject.cpp:
14166         (WebCore::ScriptGlobalObject::get):
14167         * bindings/js/ScriptValue.h:
14168         (WebCore::ScriptValue::ScriptValue):
14169         (WebCore::ScriptValue::jsValue):
14170         * bindings/objc/WebScriptObject.mm:
14171         (-[WebScriptObject callWebScriptMethod:withArguments:]):
14172         (-[WebScriptObject evaluateWebScript:]):
14173         (-[WebScriptObject valueForKey:]):
14174         (-[WebScriptObject webScriptValueAtIndex:]):
14175         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
14176         * bindings/objc/WebScriptObjectPrivate.h:
14177         * bridge/NP_jsobject.cpp:
14178         (_NPN_InvokeDefault):
14179         (_NPN_Invoke):
14180         (_NPN_Evaluate):
14181         (_NPN_GetProperty):
14182         (_NPN_HasMethod):
14183         (_NPN_Construct):
14184         * bridge/c/c_instance.cpp:
14185         (JSC::Bindings::CInstance::invokeMethod):
14186         (JSC::Bindings::CInstance::invokeDefaultMethod):
14187         (JSC::Bindings::CInstance::invokeConstruct):
14188         (JSC::Bindings::CInstance::defaultValue):
14189         (JSC::Bindings::CInstance::stringValue):
14190         (JSC::Bindings::CInstance::numberValue):
14191         (JSC::Bindings::CInstance::booleanValue):
14192         (JSC::Bindings::CInstance::valueOf):
14193         * bridge/c/c_instance.h:
14194         * bridge/c/c_runtime.cpp:
14195         (JSC::Bindings::CField::valueFromInstance):
14196         (JSC::Bindings::CField::setValueToInstance):
14197         * bridge/c/c_runtime.h:
14198         * bridge/c/c_utility.cpp:
14199         (JSC::Bindings::convertValueToNPVariant):
14200         (JSC::Bindings::convertNPVariantToValue):
14201         * bridge/c/c_utility.h:
14202         * bridge/jni/jni_instance.cpp:
14203         (JavaInstance::stringValue):
14204         (JavaInstance::numberValue):
14205         (JavaInstance::booleanValue):
14206         (JavaInstance::invokeMethod):
14207         (JavaInstance::defaultValue):
14208         (JavaInstance::valueOf):
14209         * bridge/jni/jni_instance.h:
14210         * bridge/jni/jni_jsobject.h:
14211         * bridge/jni/jni_jsobject.mm:
14212         (JavaJSObject::call):
14213         (JavaJSObject::eval):
14214         (JavaJSObject::getMember):
14215         (JavaJSObject::getSlot):
14216         (JavaJSObject::convertValueToJObject):
14217         (JavaJSObject::convertJObjectToValue):
14218         * bridge/jni/jni_objc.mm:
14219         (JSC::Bindings::dispatchJNICall):
14220         * bridge/jni/jni_runtime.cpp:
14221         (JavaArray::convertJObjectToArray):
14222         (JavaField::dispatchValueFromInstance):
14223         (JavaField::valueFromInstance):
14224         (JavaField::dispatchSetValueToInstance):
14225         (JavaField::setValueToInstance):
14226         (JavaArray::setValueAt):
14227         (JavaArray::valueAt):
14228         * bridge/jni/jni_runtime.h:
14229         * bridge/jni/jni_utility.cpp:
14230         (JSC::Bindings::convertArrayInstanceToJavaArray):
14231         (JSC::Bindings::convertValueToJValue):
14232         * bridge/jni/jni_utility.h:
14233         * bridge/objc/WebScriptObject.h:
14234         * bridge/objc/objc_class.h:
14235         * bridge/objc/objc_class.mm:
14236         (JSC::Bindings::ObjcClass::fallbackObject):
14237         * bridge/objc/objc_instance.h:
14238         * bridge/objc/objc_instance.mm:
14239         (ObjcInstance::invokeMethod):
14240         (ObjcInstance::invokeDefaultMethod):
14241         (ObjcInstance::setValueOfUndefinedField):
14242         (ObjcInstance::getValueOfUndefinedField):
14243         (ObjcInstance::defaultValue):
14244         (ObjcInstance::stringValue):
14245         (ObjcInstance::numberValue):
14246         (ObjcInstance::booleanValue):
14247         (ObjcInstance::valueOf):
14248         * bridge/objc/objc_runtime.h:
14249         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
14250         * bridge/objc/objc_runtime.mm:
14251         (JSC::Bindings::ObjcField::valueFromInstance):
14252         (JSC::Bindings::convertValueToObjcObject):
14253         (JSC::Bindings::ObjcField::setValueToInstance):
14254         (JSC::Bindings::ObjcArray::setValueAt):
14255         (JSC::Bindings::ObjcArray::valueAt):
14256         (JSC::Bindings::ObjcFallbackObjectImp::put):
14257         (JSC::Bindings::callObjCFallbackObject):
14258         (JSC::Bindings::ObjcFallbackObjectImp::defaultValue):
14259         * bridge/objc/objc_utility.h:
14260         * bridge/objc/objc_utility.mm:
14261         (JSC::Bindings::convertValueToObjcValue):
14262         (JSC::Bindings::convertNSStringToString):
14263         (JSC::Bindings::convertObjcValueToValue):
14264         * bridge/runtime.h:
14265         (JSC::Bindings::Class::fallbackObject):
14266         (JSC::Bindings::Instance::setValueOfUndefinedField):
14267         (JSC::Bindings::Instance::invokeDefaultMethod):
14268         (JSC::Bindings::Instance::invokeConstruct):
14269         (JSC::Bindings::Instance::put):
14270         * bridge/runtime_array.cpp:
14271         (JSC::RuntimeArray::lengthGetter):
14272         (JSC::RuntimeArray::indexGetter):
14273         (JSC::RuntimeArray::put):
14274         * bridge/runtime_array.h:
14275         (JSC::RuntimeArray::createStructure):
14276         * bridge/runtime_method.cpp:
14277         (JSC::RuntimeMethod::lengthGetter):
14278         (JSC::callRuntimeMethod):
14279         * bridge/runtime_method.h:
14280         (JSC::RuntimeMethod::createStructure):
14281         * bridge/runtime_object.cpp:
14282         (JSC::RuntimeObjectImp::fallbackObjectGetter):
14283         (JSC::RuntimeObjectImp::fieldGetter):
14284         (JSC::RuntimeObjectImp::methodGetter):
14285         (JSC::RuntimeObjectImp::put):
14286         (JSC::RuntimeObjectImp::defaultValue):
14287         (JSC::callRuntimeObject):
14288         (JSC::callRuntimeConstructor):
14289         * bridge/runtime_object.h:
14290         (JSC::RuntimeObjectImp::createStructure):
14291         * inspector/JavaScriptCallFrame.cpp:
14292         (WebCore::JavaScriptCallFrame::evaluate):
14293         * inspector/JavaScriptCallFrame.h:
14294         * inspector/JavaScriptProfile.cpp:
14295         (WebCore::toJS):
14296         * inspector/JavaScriptProfile.h:
14297         * inspector/JavaScriptProfileNode.cpp:
14298         (WebCore::toJS):
14299         * inspector/JavaScriptProfileNode.h:
14300
14301 2009-05-01  Dimitri Glazkov  <dglazkov@chromium.org>
14302
14303         Reviewed by Eric Seidel.
14304
14305         https://bugs.webkit.org/show_bug.cgi?id=25485
14306         Only use visitedURL in Qt. This is a follow-up change to http://trac.webkit.org/changeset/43052,
14307         which broke Chromium build.
14308
14309         * css/CSSStyleSelector.cpp:
14310         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Moved guards around to
14311             provide separate code paths for Qt and non-Qt ports. Also restored original
14312             order of execution.
14313
14314 2009-05-01  Anders Carlsson  <andersca@apple.com>
14315
14316         Reviewed by Adele Peterson.
14317
14318         <rdar://problem/6839222>
14319         CrashTracer: Lots of crashes in Safari in hash table remove function inside DocumentLoader::removeSubresourceLoader
14320         
14321         After calling m_client->didFail(), check if the subresource loader has reached its terminal state. If that's the case,
14322         return early to avoid calling removeSubresourceLoader on a null document loader. I don't think this is allowed to happen
14323         which is why I've added the ASSERT.
14324         
14325         * loader/SubresourceLoader.cpp:
14326         (WebCore::SubresourceLoader::didCancel):
14327
14328 2009-05-01  Timothy Hatcher  <timothy@apple.com>
14329
14330         Disallow the deletion UI for elements that have any overflow clipping.
14331         Also disallow the UI for the body element it isn't practical to delete,
14332         and the deletion UI would be clipped.
14333
14334         <rdar://problem/6840161> Deletion UI can be clipped by some
14335         elements (with overflow: hidden)
14336
14337         Reviewed by Darin Adler.
14338
14339         * editing/DeleteButtonController.cpp:
14340         (WebCore::isDeletableElement):
14341
14342 2009-05-01  Timothy Hatcher  <timothy@apple.com>
14343
14344         Decrease the minimum height for deleteable elements to 16px, and increase the
14345         minimum width to 48px. This allows deleting shorter items like navigation bars.
14346
14347         <rdar://problem/6840735> Deletion UI does not show up for short
14348         elements (22px or less)
14349
14350         Reviewed by Adele Peterson.
14351
14352         * editing/DeleteButtonController.cpp:
14353         (WebCore::isDeletableElement):
14354
14355 2009-05-01  Timothy Hatcher  <timothy@apple.com>
14356
14357         Clean up the comments and logic in the code for picking a
14358         deleteable element for the deletion UI.
14359
14360         Reviewed by Adele Peterson.
14361
14362         * editing/DeleteButtonController.cpp:
14363         (WebCore::isDeletableElement):
14364
14365 2009-05-01  Kevin McCullough  <kmccullough@apple.com>
14366
14367         Reviewed by Adele Peterson and Darin Adler.
14368
14369         <rdar://problem/4815598> Stuck in double spacing mode after pasting a
14370         paragraph with padding/margin (or table mode !)
14371
14372         A lot of the issues in this bug were resolved on Mail's side by using
14373         WebKit to convert to plain text.  This is the final issue, that floating
14374         style stays on copied nodes causing them to float when they are pasted
14375         which is not what the user intended.
14376
14377         * editing/markup.cpp:
14378         (WebCore::removeExteriorStyles):
14379         (WebCore::):
14380         (WebCore::appendStartMarkup):
14381         (WebCore::getStartMarkup):
14382         (WebCore::createMarkup):
14383
14384 2009-05-01  Pavel Feldman  <pfeldman@chromium.org>
14385
14386         Reviewed by Timothy Hatcher.
14387
14388         Add a FrameLoaderClient callback for the ResourceRetrievedByXMLHttpRequest.
14389         This is the only resource-related information that is available in InspectorController
14390         and is missing in the FrameLoaderClient.
14391
14392         https://bugs.webkit.org/show_bug.cgi?id=25347
14393
14394         * WebCore.xcodeproj/project.pbxproj: Made ScriptSource private.
14395         * dom/Document.cpp: Made a call to a client along with the call to the InspectorController.
14396         (WebCore::Document::resourceRetrievedByXMLHttpRequest):
14397         * loader/EmptyClients.h: Added stub implementation.
14398         (WebCore::EmptyFrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest):
14399         * loader/FrameLoader.cpp: Call initiating dispatches.
14400         (WebCore::FrameLoader::resourceRetrievedByXMLHttpRequest):
14401         * loader/FrameLoader.h:
14402         * loader/FrameLoaderClient.h:
14403
14404 2009-04-30  Beth Dakin  <bdakin@apple.com>
14405
14406         Reviewed by Oliver Hunt.
14407
14408         Fix for <rdar://problem/6841106> REGRESSION: Crash drag selecting 
14409         To Do's in a Mail note (excessive recursion in mouse drag tracking)
14410
14411         Oliver's recent change to dragging seems to have revealed a long-
14412         time bug in passSubframeEventToSubframe where we did not set 
14413         m_sendingEventToSubview to true before calling 
14414         handleMouseMoveEvent() in the NSMouseMoved case. This patch fixes 
14415         that and adds ASSERTions around all of the places where 
14416         m_sendingEventToSubview is set to true and then false to make sure 
14417         we are not trampling its state.
14418
14419         * page/mac/EventHandlerMac.mm:
14420         (WebCore::EventHandler::eventLoopHandleMouseDragged):
14421         (WebCore::EventHandler::eventLoopHandleMouseUp):
14422         (WebCore::EventHandler::passSubframeEventToSubframe):
14423         (WebCore::EventHandler::passWheelEventToWidget):
14424
14425 2009-04-30  Eric Carlson  <eric.carlson@apple.com>
14426
14427         Reviewed by Simon Fraser.
14428         
14429         MediaDocument falls back to plug-in unnecessarily
14430         https://bugs.webkit.org/show_bug.cgi?id=25504
14431         <rdar://problem/6844702>
14432         
14433         Don't allow harmless media types to cause a MediaDocument to fall
14434         back to PluginDocument.
14435
14436         Test: media/video-document-types.html
14437
14438         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
14439         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): add timecode, timecode 64,
14440         odsm, and sdsm to allowed track types.
14441
14442         * platform/graphics/win/QTMovieWin.cpp:
14443         (QTMovieWin::disableUnsupportedTracks): Ditto.
14444
14445 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14446
14447         Reviewed by Eric Seidel.
14448
14449         Add CHROMIUM guard to unfork Document.cpp
14450
14451         * dom/Document.cpp:
14452         (WebCore::Document::setFocusedNode): Added guard.
14453
14454 2009-04-30  David Kilzer  <ddkilzer@apple.com>
14455
14456         Use OwnPtr<HTMLParserQuirks> for m_parserQuirks
14457
14458         Reviewed by Geoff Garen.
14459
14460         * html/HTMLParser.cpp:
14461         (WebCore::HTMLParser::~HTMLParser): Removed unneeded code.
14462         * html/HTMLParser.h: Made m_parserQuirks an OwnPtr.
14463
14464 2009-04-30  David Kilzer  <ddkilzer@apple.com>
14465
14466         Provide a mechanism to create a quirks delegate for HTMLParser
14467
14468         Reviewed by David Hyatt.
14469
14470         No tests since there is no change in behavior.
14471
14472         HTMLParserQuirks.h defines an abstract base class that may be
14473         extended as needed.  The ChromeClient::createHTMLParserQuirks()
14474         factory method should be used to return an HTMLParserQuirks
14475         subclassed object when needed.
14476
14477         * WebCore.xcodeproj/project.pbxproj: Added HTMLParserQuirks.h.
14478         * html/HTMLParser.cpp:
14479         (WebCore::HTMLParser::HTMLParser): Initialize m_parserQuirks
14480         using ChromeClient::createHTMLParserQuirks().
14481         (WebCore::HTMLParser::~HTMLParser): Delete m_parserQuirks if
14482         set.
14483         (WebCore::HTMLParser::reset): Call HTMLParserQuirks::reset() if
14484         m_parserQuirks is set.
14485         (WebCore::HTMLParser::insertNode): Call
14486         HTMLParserQuirks::shouldInsertNode() if m_parserQuirks is set,
14487         and return early if it returns false.
14488         (WebCore::HTMLParser::popBlock): Call
14489         HTMLParserQuirks::shouldPopBlock() if m_parserQuirks is set, and
14490         return early if it returns false.
14491         * html/HTMLParser.h: Added m_parserQuirks.
14492         * html/HTMLParserQuirks.h: Added.
14493         (WebCore::HTMLParserQuirks::HTMLParserQuirks):
14494         (WebCore::HTMLParserQuirks::~HTMLParserQuirks):
14495         * loader/EmptyClients.h:
14496         (WebCore::EmptyChromeClient::createHTMLParserQuirks): Added.
14497         * page/ChromeClient.h:
14498         (WebCore::ChromeClient::createHTMLParserQuirks): Added.
14499
14500 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14501
14502         Reviewed by Eric Seidel.
14503
14504         https://bugs.webkit.org/show_bug.cgi?id=25492
14505         Add JSC guards around node wrapper cache calls. These are not used by V8.
14506
14507         Also, remove JSDOMBinding include, which is brought in by ScriptController.
14508
14509         * dom/Document.cpp:
14510         (WebCore::Document::~Document): Added JSC guard.
14511         * dom/Node.cpp:
14512         (WebCore::Node::setDocument): Ditto and removed JSDOMBinding include.
14513
14514 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14515
14516         Reviewed by Eric Seidel.
14517
14518         https://bugs.webkit.org/show_bug.cgi?id=25493
14519         Remove debugger/profiler custom method stubs, catching V8 bindings up to
14520         http://trac.webkit.org/changeset/43072.
14521
14522         * bindings/v8/custom/V8InspectorControllerCustom.cpp: Removed method stubs.
14523
14524 2009-04-30  Simon Fraser  <simon.fraser@apple.com>
14525
14526         Reviewed by Darin Adler
14527
14528         <rdar://problem/6839338> VoiceOver does not take into account transforms when drawing outlines
14529         
14530         Use transform-aware quad methods when computing the boundingBoxRect for
14531         an AccessibilityRenderObject. The code follows RenderObject::absoluteBoundingBoxRect().
14532
14533         Test: accessibility/transformed-element.html
14534
14535         * page/AccessibilityRenderObject.cpp:
14536         (WebCore::AccessibilityRenderObject::boundingBoxRect):
14537
14538 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14539
14540         Unreviewed, Chromium build fix.
14541
14542         Catch up to ScriptObject changes from http://trac.webkit.org/changeset/42512.
14543
14544         * bindings/v8/ScriptObject.cpp:
14545         (WebCore::ScriptGlobalObject::get): Renamed from getObject.
14546         (WebCore::ScriptGlobalObject::remove): Added.
14547         * bindings/v8/ScriptObject.h: Ditto.
14548
14549 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14550
14551         Unreviewed, build fix.
14552
14553         https://bugs.webkit.org/show_bug.cgi?id=25470
14554         Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.
14555
14556         * WebCore.pro: Fix copy-paste error.
14557
14558 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14559
14560         Unreviewed, build fix.
14561
14562         https://bugs.webkit.org/show_bug.cgi?id=25470
14563         Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.
14564
14565         * GNUmakefile.am: Add ENABLE_JAVASCRIPT_DEBUGGER definitions.
14566         * WebCore.pro: Ditto.
14567
14568 2009-04-02  Eric Seidel  <eric@webkit.org>
14569
14570         Reviewed by Darin Adler.
14571
14572         Change Position to pre-compute the AnchorType and store it.
14573         Also store a "legacy editing mode" bit on the Position.
14574         https://bugs.webkit.org/show_bug.cgi?id=24763
14575
14576         The old Postion(node, offset) constructor creates legacy positions
14577         but there are new constructors to create explicitly anchored positions
14578         which the next patch will use.
14579
14580         Once we fix all the "position-fixup" functions (like rangeCompliantEquivalent) to
14581         only affect legacy positions, we will be able to distinguish
14582         between [table, 1] and [table, after] in the code correctly!
14583
14584         * WebCore.base.exp:
14585         * WebCore.xcodeproj/project.pbxproj:
14586         * dom/Position.cpp:
14587         (WebCore::Position::Position):
14588         (WebCore::Position::moveToPosition):
14589         (WebCore::Position::moveToOffset):
14590         (WebCore::Position::anchorTypeForLegacyEditingPosition):
14591         (WebCore::Position::element):
14592         * dom/Position.h:
14593         (WebCore::Position::):
14594         (WebCore::Position::Position):
14595         (WebCore::Position::anchorType):
14596         (WebCore::Position::deprecatedEditingOffset):
14597
14598 2009-04-30  Sam Weinig  <sam@webkit.org>
14599
14600         Reviewed by Alexey Proskuryakov.
14601
14602         Fix bug where the WorkerLocation and WorkerNavigator wrappers would be
14603         collected even if the WorkerContext is still alive.
14604
14605         Test: fast/workers/worker-context-gc.html
14606
14607         * bindings/js/JSWorkerContextCustom.cpp:
14608         (WebCore::JSWorkerContext::mark):
14609         * workers/WorkerContext.cpp:
14610         (WebCore::WorkerContext::WorkerContext):
14611         (WebCore::WorkerContext::completeURL):
14612         (WebCore::WorkerContext::location):
14613         * workers/WorkerContext.h:
14614         (WebCore::WorkerContext::optionalNavigator):
14615         (WebCore::WorkerContext::optionalLocation):
14616
14617 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14618
14619         Reviewed by Timothy Hatcher.
14620
14621         https://bugs.webkit.org/show_bug.cgi?id=25470
14622         Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.
14623
14624         * Configurations/FeatureDefines.xcconfig: Added ENABLE_JAVASCRIPT_DEBUGGER.
14625         * WebCore.vcproj/build-generated-files.sh: Ditto.
14626         * bindings/js/JSConsoleCustom.cpp: Added ENABLE(JAVASCRIPT_DEBUGGER) guard.
14627         * bindings/js/JSDOMWindowBase.cpp: Ditto.
14628         * bindings/js/JSInspectorControllerCustom.cpp: Ditto.
14629         * inspector/InspectorController.cpp: Moved profiler/debugger methods under
14630             ENABLE(JAVASCRIPT_DEBUGGER) flag.
14631         * inspector/InspectorController.h: Ditto.
14632         * inspector/InspectorController.idl: Added ENABLE(JAVASCRIPT_DEBUGGER) guard.
14633         * page/Console.cpp: Replaced USE(JSC) with ENABLE(JAVASCRIPT_DEBUGGER) guard.
14634
14635 2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>
14636
14637         Unreviewed, build fix.
14638
14639         https://bugs.webkit.org/show_bug.cgi?id=25275
14640         This patch snuck in a re-definition of a local.
14641
14642         * bindings/v8/custom/V8DOMWindowCustom.cpp:
14643         (WebCore::NAMED_PROPERTY_GETTER): Removed re-definition.
14644
14645 2009-04-30  Sam Weinig  <sam@webkit.org>
14646
14647         Reviewed by Mark Rowe.
14648
14649         Fix a leak introduced yesterday.  Don't allocate a ScheduledAction
14650         if the toString()ing throws an exception.
14651
14652         * bindings/js/ScheduledAction.cpp:
14653         (WebCore::ScheduledAction::create):
14654
14655 2009-04-30  Alexey Proskuryakov  <ap@webkit.org>
14656
14657         Reviewed by Darin Adler.
14658
14659         https://bugs.webkit.org/show_bug.cgi?id=25379
14660         <rdar://problem/6809460> REGRESSION (r41772): Selecting a bank in American Express Pay Bill fails
14661
14662         Test: fast/forms/multiple-selected-options-innerHTML.html
14663
14664         This problem was caused by an inconsistency at when Node::instertedIntoTree() is called.
14665         For normal HTML parsing, it is called immediately after an element is inserted, but for
14666         innerHTML, it is only called after the whole subtree is inserted into a document.
14667
14668         It may make sense to harmonize these cases one day, but for now, I only made the minimal
14669         changes necessary to fix the bug.
14670
14671         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::insertedIntoTree):
14672         * html/HTMLSelectElement.h:
14673         Recalculate list items when a SELECT element is inserted. OPTION elements cannot decide
14674         which one to keep selected themselves, because their logic assumes normal parsing, with
14675         insertedIntoTree() called after each element is inserted.
14676
14677 2009-04-30  Pavel Feldman  <pfeldman@chromium.org>
14678
14679         Reviewed by Dimitri Glazkov.
14680
14681         https://bugs.webkit.org/show_bug.cgi?id=25342
14682         Add MessageSource and MessageLevel parameters to the ChromeClient::addMessageToConsole.
14683
14684         Chromium async/out-of-process version of WebInspector is currently not based on
14685         InspectorController. The reason was that we did not want to interfere with
14686         the unforking effort, yet wanted to experiment. So we came up with these
14687         agents concept that basically mimic InspectorController, but separating 'agent'
14688         nature from the 'transport'. Now that InspectorController is unforked, I am
14689         planning to bring these concepts into the WebKit land and use what we have in
14690         Chromium as a proof of concept / experimental playground.
14691
14692         * loader/EmptyClients.h: added MessageSource and MessageLevel parameters.
14693         (WebCore::EmptyChromeClient::addMessageToConsole): ditto
14694         * page/ChromeClient.h: ditto
14695         * page/Console.cpp: Used new method signature.
14696         (WebCore::Console::addMessage): ditto
14697
14698 2009-04-30  Dan Bernstein  <mitz@apple.com>
14699
14700         Reviewed by Simon Fraser.
14701
14702         - fix https://bugs.webkit.org/show_bug.cgi?id=25476
14703           <rdar://problem/6841919> REGRESSION (r42987): Welcome to Safari 4
14704           animation is jittery
14705
14706         Reverted r42987.
14707
14708         * platform/graphics/cg/ImageCG.cpp:
14709         (WebCore::BitmapImage::draw):
14710
14711 2009-04-30  Brady Eidson  <beidson@apple.com>
14712
14713         Reviewed by Maciej Stachowiak
14714
14715         <rdar://problem/3785248> http://www.greekembassy.org/ gets in an infinite reload loop
14716         https://bugs.webkit.org/show_bug.cgi?id=21193
14717
14718         Some websites use for attributes in script elements to specify events that the script 
14719         should be run for.  One example is greekembassy.org which has the following in their <head>:
14720
14721         <script for=window event=onresize>
14722             location.reload(false);
14723         </script>
14724
14725         Since we don't support the full for attribute syntax, we would just blissfully ignore the
14726         condition and execute the code unconditionally.  This caused breakage on multiple real-world 
14727         sites besides greekembassy.org.
14728
14729         https://bugs.webkit.org/show_bug.cgi?id=16915 and <rdar://problem/4471751> track adding full 
14730         support for the for attribute in scripts.  In the meantime it's best to not execute them
14731         unconditionally.
14732
14733         Test: fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution.html
14734
14735         * dom/ScriptElement.cpp:
14736         (WebCore::ScriptElementData::shouldExecuteAsJavaScript): After all other checks have
14737           passed, only return true if there is no for attribute in the script element.
14738         * dom/ScriptElement.h:
14739
14740         * html/HTMLScriptElement.cpp:
14741         (WebCore::HTMLScriptElement::forAttributeValue): Return the attribute value, if any.
14742         * html/HTMLScriptElement.h:
14743
14744         * svg/SVGScriptElement.cpp:
14745         (WebCore::SVGScriptElement::forAttributeValue): Return an empty string (like the other
14746           attribute getters do for SVGScriptElement)
14747         * svg/SVGScriptElement.h:
14748
14749 2009-04-30  Holger Hans Peter Freyther  <zecke@selfish.org>
14750
14751         Reviewed by Darin Adler.
14752
14753         The Qt API exposes a global history patch CSSStyleSelector to make API consumers work again
14754
14755         https://bugs.webkit.org/show_bug.cgi?id=20952
14756
14757         The QtWebKit port made the mistake of exposing a global history. This broke
14758         with the addition of PageGroup and LinkHash. This needs to be repaired
14759         for Qt4.5.
14760
14761         Add a function to LinkHash.cpp that is resolving a URL. Use this
14762         function from within CSSStyleSelector to forward the url to the
14763         QWebHistoryInterface API.
14764
14765         It is sad that there is a path within visitedLinkHash which is now
14766         doing a memcpy, it is sad to add a PLATFORM(QT) define to CSSStyleSelector
14767         and using QtWebKit types within WebCore is a layering violation as well.
14768
14769         PageGroup::setShouldTrackVisitedLinks is currently not enabled. For
14770         Qt4.6 a second version of the QWebHistoryInterface is going to be
14771         added which will fix things up.
14772
14773         * css/CSSStyleSelector.cpp:
14774         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState):
14775         * platform/LinkHash.cpp:
14776         (WebCore::visitedURL):
14777         (WebCore::visitedLinkHash):
14778         * platform/LinkHash.h:
14779
14780 2009-04-30  Simon Hausmann  <simon.hausmann@nokia.com>
14781
14782         Fix the Qt build.
14783
14784         * platform/graphics/SimpleFontData.cpp: Don't use initCharWidths() for the Qt build.
14785         * platform/graphics/qt/SimpleFontDataQt.cpp:
14786         (WebCore::SimpleFontData::platformCharWidthInit): Instead initialize the average and
14787         max char widths from QFontMetrics.
14788
14789 2009-04-30  Ariya Hidayat  <ariya.hidayat@nokia.com>
14790
14791         Unreview build fix after r43037.
14792
14793         Use MarkedArgumentBuffer instead of ArgList.
14794
14795         * bridge/qt/qt_runtime.cpp:
14796         (JSC::Bindings::QtConnectionObject::execute):
14797
14798 2009-04-29  Sam Weinig  <sam@webkit.org>
14799
14800         Reviewed by Oliver Hunt.
14801
14802         Fix for https://bugs.webkit.org/show_bug.cgi?id=25440
14803         setTimeout should stringify non-string/non-function first arguments
14804
14805         Test: fast/dom/Window/setTimeout-string-argument.html
14806
14807         * bindings/js/JSDOMWindowCustom.cpp:
14808         (WebCore::JSDOMWindow::setTimeout):
14809         (WebCore::JSDOMWindow::setInterval):
14810         * bindings/js/JSWorkerContextCustom.cpp:
14811         (WebCore::JSWorkerContext::setTimeout):
14812         (WebCore::JSWorkerContext::setInterval):
14813         * bindings/js/ScheduledAction.cpp:
14814         (WebCore::ScheduledAction::create):
14815         * bindings/js/ScheduledAction.h:
14816
14817 2009-04-29  Dan Bernstein  <mitz@apple.com>
14818
14819         Reviewed by Simon Fraser.
14820
14821         - WebCore part of <rdar://problem/6609509> Select All and then Delete
14822           should put Mail editing back into the same state as a new message
14823
14824         Test: editing/deleting/in-visibly-empty-root.html
14825
14826         * WebCore.base.exp: Exported VisibleSelection::isAll(bool).
14827         * editing/SelectionController.h:
14828         (WebCore::SelectionController::isAll): Added. Calls through to
14829         VisibleSelection.
14830         * editing/TypingCommand.cpp:
14831         (WebCore::TypingCommand::makeEditableRootEmpty): Added. Removes all children
14832         of the root editable element the selection is in, other than a
14833         placeholder. Returns true iff it did anything.
14834         (WebCore::TypingCommand::deleteKeyPressed): When there is only a single
14835         visible position in the root editable element, but it has children other
14836         than a placeholder, remove those children.
14837         * editing/TypingCommand.h:
14838         * editing/VisiblePosition.h:
14839         Added a StayInEditableContent enum and a FIXME.
14840         * editing/VisibleSelection.cpp:
14841         (WebCore::VisibleSelection::isAll): Added. Returns whether the
14842         selection encompasses all visible positions, either in the document or
14843         in the editable root.
14844         * editing/VisibleSelection.h:
14845
14846 2009-04-29  Sam Weinig  <sam@webkit.org>
14847
14848         Fix style nit.
14849
14850         * editing/visible_units.cpp:
14851         (WebCore::getLeafBoxesInLogicalOrder):
14852
14853 2009-04-29  David Hyatt  <hyatt@apple.com>
14854
14855         Reviewed by Dan Bernstein.
14856
14857         For now just drop the deferred layout on the floor, since it causes an infinite hang in mail.  Even
14858         trying to schedule a relayout for later leaves you in a state where you hit the needsLayout painting
14859         assertions.
14860
14861         Basically what Mail is doing is crazy, and we can't support it other than to just drop the last layout
14862         and not do it (which is basically what was happening before).
14863
14864         * page/FrameView.cpp:
14865         (WebCore::FrameView::setContentsSize):
14866         (WebCore::FrameView::needsLayout):
14867
14868 2009-04-29  Douglas Davidson  <ddavidso@apple.com>
14869
14870         Reviewed by Justin Garcia.
14871
14872         <rdar://problem/6836921> Mail exhibits issues with text checking, e.g. menu items not always validated correctly
14873         
14874         Updates to the text checking code to enable text checking even if spellchecking is turned off 
14875         and fix an off-by-one error in selection handling.
14876
14877         * editing/Editor.cpp:
14878         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
14879         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
14880         (WebCore::Editor::markMisspellingsAndBadGrammar):
14881         * editing/Editor.h:
14882         * editing/TypingCommand.cpp:
14883         (WebCore::TypingCommand::markMisspellingsAfterTyping):
14884
14885 2009-04-29  Oliver Hunt  <oliver@apple.com>
14886
14887         Reviewed by Gavin Barraclough.
14888
14889         Clean up ArgList to be a trivial type
14890
14891         Start using MarkedArgumentBuffer to create argument lists for function calls
14892
14893         * bindings/js/JSClipboardCustom.cpp:
14894         (WebCore::JSClipboard::types):
14895         * bindings/js/JSConsoleCustom.cpp:
14896         (WebCore::JSConsole::profiles):
14897         * bindings/js/JSCustomPositionCallback.cpp:
14898         (WebCore::JSCustomPositionCallback::handleEvent):
14899         * bindings/js/JSCustomPositionErrorCallback.cpp:
14900         (WebCore::JSCustomPositionErrorCallback::handleEvent):
14901         * bindings/js/JSCustomSQLStatementCallback.cpp:
14902         (WebCore::JSCustomSQLStatementCallback::handleEvent):
14903         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
14904         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
14905         * bindings/js/JSCustomSQLTransactionCallback.cpp:
14906         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
14907         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
14908         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
14909         * bindings/js/JSCustomVoidCallback.cpp:
14910         (WebCore::JSCustomVoidCallback::handleEvent):
14911         * bindings/js/JSCustomXPathNSResolver.cpp:
14912         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
14913         * bindings/js/JSEventListener.cpp:
14914         (WebCore::JSEventListener::handleEvent):
14915         * bindings/js/JSInspectorControllerCustom.cpp:
14916         (WebCore::JSInspectorController::profiles):
14917         (WebCore::JSInspectorController::search):
14918         (WebCore::JSInspectorController::databaseTableNames):
14919         (WebCore::JSInspectorController::setting):
14920         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
14921         (WebCore::JSJavaScriptCallFrame::scopeChain):
14922         * bindings/js/JSLazyEventListener.cpp:
14923         (WebCore::JSLazyEventListener::parseCode):
14924         * bindings/js/JSNodeFilterCondition.cpp:
14925         (WebCore::JSNodeFilterCondition::acceptNode):
14926         * bindings/js/JSQuarantinedObjectWrapper.cpp:
14927         (WebCore::JSQuarantinedObjectWrapper::construct):
14928         (WebCore::JSQuarantinedObjectWrapper::call):
14929         * bindings/js/ScheduledAction.cpp:
14930         (WebCore::ScheduledAction::ScheduledAction):
14931         (WebCore::ScheduledAction::executeFunctionInContext):
14932         * bindings/js/ScriptFunctionCall.h:
14933         * bindings/objc/WebScriptObject.mm:
14934         (getListFromNSArray):
14935         (-[WebScriptObject callWebScriptMethod:withArguments:]):
14936         * bridge/NP_jsobject.cpp:
14937         (getListFromVariantArgs):
14938         (_NPN_InvokeDefault):
14939         (_NPN_Invoke):
14940         (_NPN_Construct):
14941         * bridge/jni/jni_jsobject.h:
14942         * bridge/jni/jni_jsobject.mm:
14943         (JavaJSObject::call):
14944         (JavaJSObject::getListFromJArray):
14945
14946 2009-04-29  Eric Seidel  <eric@webkit.org>
14947
14948         No review, build fix only.
14949
14950         Fix m_offset uses added while I wasn't looking.
14951
14952         * editing/visible_units.cpp:
14953         (WebCore::logicalStartPositionForLine):
14954         (WebCore::logicalEndPositionForLine):
14955
14956 2009-04-29  Xiaomei Ji  <xji@chromium.org>
14957
14958         Reviewed by Dan Bernstein.
14959
14960         Fix https://bugs.webkit.org/show_bug.cgi?id=24168
14961         RTL: Home/End key does not behave correctly in mixed bidi text in RTL document
14962
14963         Test: editing/selection/home-end.html
14964
14965         * editing/SelectionController.cpp:
14966         (WebCore::SelectionController::modifyExtendingForward): Change calling endOfLine()
14967         to logicalEndOfLine() when granularity is LineBoundary.
14968         (WebCore::SelectionController::modifyMovingForward): Change calling endOfLine()
14969         to logicalEndOfLine() when granularity is LineBoundary
14970         (WebCore::SelectionController::modifyExtendingBackward): Change calling 
14971         startOfLine() to logicalStartOfLine() when granularity is LineBoundary.
14972         (WebCore::SelectionController::modifyMovingBackward): Change calling startOfLine() 
14973         to logicalStartOfLine() when granularity is LineBoundary.
14974         * editing/visible_units.cpp:
14975         (WebCore::getLeafBoxesInLogicalOrder): Added. Reconstruct leaf boxes in logical order.
14976         (WebCore::getLogicalStartBoxAndNode): Added.
14977         (WebCore::getLogicalEndBoxAndNode): Added.
14978         (WebCore::logicalStartPositionForLine): Added. Similar to startPositionForLine.
14979         (WebCore::logicalStartOfLine): Added. Similar to startOfLine.
14980         (WebCore::logicalEndPositionForLine): Added. Similar to endPositionForLine.
14981         (WebCore::inSameLogicalLine): Added.
14982         (WebCore::logicalEndOfLine): Added. Similar to endOfLine.
14983         * editing/visible_units.h:
14984
14985 2009-04-29  Eric Seidel  <eric@webkit.org>
14986
14987         Reviewed by Darin Adler.
14988
14989         Make m_offset private and change all callers to use deprecatedEditingOffset().
14990         https://bugs.webkit.org/show_bug.cgi?id=25472
14991
14992         Per Darin's suggestion, this was just a simple search replace
14993         of .m_offset with .deprecatedEditingOffset().
14994
14995         There was one change in InsertParagraphSeparatorCommand::doApply to use
14996         Position::moveToOffset(0) instead of .m_offset = 0;
14997
14998         * dom/Position.cpp:
14999         (WebCore::Position::rendersInDifferentPosition):
15000         (WebCore::Position::leadingWhitespacePosition):
15001         * dom/Position.h:
15002         (WebCore::Position::deprecatedEditingOffset):
15003         (WebCore::Position::moveToOffset):
15004         (WebCore::operator==):
15005         * dom/PositionIterator.h:
15006         (WebCore::PositionIterator::PositionIterator):
15007         * dom/Range.cpp:
15008         (WebCore::Range::create):
15009         (WebCore::Range::compareBoundaryPoints):
15010         * editing/ApplyStyleCommand.cpp:
15011         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
15012         (WebCore::ApplyStyleCommand::applyInlineStyleToRange):
15013         (WebCore::ApplyStyleCommand::removeInlineStyle):
15014         (WebCore::ApplyStyleCommand::nodeFullySelected):
15015         (WebCore::ApplyStyleCommand::nodeFullyUnselected):
15016         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
15017         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
15018         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
15019         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
15020         (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
15021         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
15022         (WebCore::ApplyStyleCommand::joinChildTextNodes):
15023         * editing/BreakBlockquoteCommand.cpp:
15024         (WebCore::BreakBlockquoteCommand::doApply):
15025         * editing/CompositeEditCommand.cpp:
15026         (WebCore::CompositeEditCommand::insertNodeAt):
15027         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
15028         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
15029         (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
15030         (WebCore::CompositeEditCommand::deleteInsignificantText):
15031         (WebCore::CompositeEditCommand::moveParagraphs):
15032         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
15033         * editing/DeleteSelectionCommand.cpp:
15034         (WebCore::updatePositionForNodeRemoval):
15035         (WebCore::updatePositionForTextRemoval):
15036         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
15037         (WebCore::DeleteSelectionCommand::fixupWhitespace):
15038         * editing/Editor.cpp:
15039         (WebCore::Editor::setComposition):
15040         (WebCore::Editor::advanceToNextMisspelling):
15041         (WebCore::Editor::getCompositionSelection):
15042         * editing/InsertLineBreakCommand.cpp:
15043         (WebCore::InsertLineBreakCommand::doApply):
15044         * editing/InsertParagraphSeparatorCommand.cpp:
15045         (WebCore::InsertParagraphSeparatorCommand::doApply):
15046         * editing/InsertTextCommand.cpp:
15047         (WebCore::InsertTextCommand::performTrivialReplace):
15048         (WebCore::InsertTextCommand::input):
15049         (WebCore::InsertTextCommand::insertTab):
15050         * editing/MoveSelectionCommand.cpp:
15051         (WebCore::MoveSelectionCommand::doApply):
15052         * editing/ReplaceSelectionCommand.cpp:
15053         (WebCore::ReplaceSelectionCommand::doApply):
15054         * editing/SelectionController.cpp:
15055         (WebCore::SelectionController::debugRenderer):
15056         * editing/TextIterator.cpp:
15057         (WebCore::TextIterator::rangeFromLocationAndLength):
15058         * editing/TypingCommand.cpp:
15059         (WebCore::TypingCommand::deleteKeyPressed):
15060         (WebCore::TypingCommand::forwardDeleteKeyPressed):
15061         * editing/VisiblePosition.cpp:
15062         (WebCore::VisiblePosition::characterAfter):
15063         (WebCore::VisiblePosition::debugPosition):
15064         (WebCore::makeRange):
15065         (WebCore::setStart):
15066         (WebCore::setEnd):
15067         * editing/VisibleSelection.cpp:
15068         (WebCore::VisibleSelection::toNormalizedRange):
15069         (WebCore::makeSearchRange):
15070         (WebCore::VisibleSelection::debugPosition):
15071         (WebCore::VisibleSelection::showTreeForThis):
15072         * editing/htmlediting.cpp:
15073         (WebCore::comparePositions):
15074         (WebCore::rangeCompliantEquivalent):
15075         * editing/visible_units.cpp:
15076         (WebCore::previousBoundary):
15077         (WebCore::nextBoundary):
15078         (WebCore::startPositionForLine):
15079         (WebCore::startOfLine):
15080         (WebCore::endPositionForLine):
15081         (WebCore::nextLinePosition):
15082         (WebCore::startOfParagraph):
15083         (WebCore::endOfParagraph):
15084         (WebCore::logicalStartPositionForLine):
15085         (WebCore::logicalEndPositionForLine):
15086         * page/AccessibilityObject.cpp:
15087         (WebCore::updateAXLineStartForVisiblePosition):
15088         * page/AccessibilityRenderObject.cpp:
15089         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
15090         * page/DOMSelection.cpp:
15091         (WebCore::DOMSelection::anchorOffset):
15092         (WebCore::DOMSelection::focusOffset):
15093         (WebCore::DOMSelection::baseOffset):
15094         (WebCore::DOMSelection::extentOffset):
15095         * page/EventHandler.cpp:
15096         (WebCore::EventHandler::handleMousePressEventSingleClick):
15097         * page/Frame.cpp:
15098         (WebCore::Frame::selectionLayoutChanged):
15099         * page/mac/AccessibilityObjectWrapper.mm:
15100         (textMarkerForVisiblePosition):
15101         (visiblePositionForTextMarker):
15102         * rendering/RenderTextControl.cpp:
15103         (WebCore::RenderTextControl::indexForVisiblePosition):
15104         * rendering/RenderTreeAsText.cpp:
15105         (WebCore::writeSelection):
15106
15107 2009-04-29  Eric Seidel  <eric@webkit.org>
15108
15109         No review, rolling out a patch.
15110
15111         Revert http://trac.webkit.org/changeset/43019
15112
15113         New tests failed because I removed the tabs from them
15114         when landing (since we avoid tabs in WebKit files).
15115         I couldn't tell if the new results were correct with
15116         spaces or not.
15117
15118         * editing/SelectionController.cpp:
15119         (WebCore::SelectionController::modifyExtendingForward):
15120         (WebCore::SelectionController::modifyMovingForward):
15121         (WebCore::SelectionController::modifyExtendingBackward):
15122         (WebCore::SelectionController::modifyMovingBackward):
15123         * editing/visible_units.cpp:
15124         * editing/visible_units.h:
15125
15126 2009-04-29  David Hyatt  <hyatt@apple.com>
15127
15128         Reviewed by Dan Bernstein.
15129
15130         Fix for <rdar://problem/6828164>, Mail hits the !root->needsLayout() assert because it re-marks the FrameView for layout
15131         when the FrameView is resized.  This bug was exposed by the elimination of the separate WebKit layout
15132         flag on Mac.  
15133         
15134         FrameView now defers setNeedsLayouts during size changes.  Once all of the size changes are finished (including re-entrant ones
15135         from WebDynamicScrollbarsView and ScrollView::updateScrollbars) we then do a layout if necessary.
15136
15137         * page/FrameView.cpp:
15138         (WebCore::FrameView::FrameView):
15139         (WebCore::FrameView::setContentsSize):
15140         (WebCore::FrameView::layout):
15141         (WebCore::FrameView::needsLayout):
15142         (WebCore::FrameView::setNeedsLayout):
15143         * page/FrameView.h:
15144
15145 2009-04-29  Eric Seidel  <eric@webkit.org>
15146
15147         No review, rolling out a patch.
15148
15149         Revert 43020 as it caused accessibility/lists.html to fail
15150         and no one is around to tell me if it's a progression or not.
15151
15152         * page/AccessibilityObject.h:
15153         (WebCore::):
15154         * page/AccessibilityRenderObject.cpp:
15155         (WebCore::AccessibilityRenderObject::roleValue):
15156         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
15157         * page/mac/AccessibilityObjectWrapper.mm:
15158         (RoleEntry::):
15159
15160 2009-04-29  Sankar Aditya Tanguturi  <sankaraditya@gmail.com>
15161
15162         Reviewed by Jon Honeycutt.
15163
15164         Add a new accessibility role for list items. Part of
15165         http://bugs.webkit.org/show_id.cgi?id=20013
15166
15167         Tests: platform/win/accessibility/listitem-role.html
15168
15169         * page/AccessibilityObject.h:
15170         (WebCore::):  Add ListItemRole to accessibilityRole enum.
15171         * page/AccessibilityRenderObject.cpp:
15172         (WebCore::AccessibilityRenderObject::roleValue):Return
15173         listItemRole when rendered object is a list item.
15174         (WebCore::AccessibilityRenderObject::canSetFocusAttribute): Return
15175         true for ListItemRole, matching firefox.
15176         * page/mac/AccessibilityObjectWrapper.mm:
15177         (RoleEntry::): Map ListItemRole with NSAccessibilityGroupRole in
15178         MAC.
15179
15180 2009-04-29  Xiaomei Ji  <xji@chromium.org>
15181
15182         Reviewed by Dan Bernstein.
15183
15184         Fix https://bugs.webkit.org/show_bug.cgi?id=24168
15185         RTL: Home/End key does not behave correctly in mixed bidi text in RTL document
15186
15187         Test: editing/selection/home-end.html
15188
15189         * editing/SelectionController.cpp:
15190         (WebCore::SelectionController::modifyExtendingForward): Change calling endOfLine()
15191         to logicalEndOfLine() when granularity is LineBoundary.
15192         (WebCore::SelectionController::modifyMovingForward): Change calling endOfLine()
15193         to logicalEndOfLine() when granularity is LineBoundary
15194         (WebCore::SelectionController::modifyExtendingBackward): Change calling 
15195         startOfLine() to logicalStartOfLine() when granularity is LineBoundary.
15196         (WebCore::SelectionController::modifyMovingBackward): Change calling startOfLine() 
15197         to logicalStartOfLine() when granularity is LineBoundary.
15198         * editing/visible_units.cpp:
15199         (WebCore::getLeafBoxesInLogicalOrder): Added. Reconstruct leaf boxes in logical order.
15200         (WebCore::getLogicalStartBoxAndNode): Added.
15201         (WebCore::getLogicalEndBoxAndNode): Added.
15202         (WebCore::logicalStartPositionForLine): Added. Similar to startPositionForLine.
15203         (WebCore::logicalStartOfLine): Added. Similar to startOfLine.
15204         (WebCore::logicalEndPositionForLine): Added. Similar to endPositionForLine.
15205         (WebCore::inSameLogicalLine): Added.
15206         (WebCore::logicalEndOfLine): Added. Similar to endOfLine.
15207         * editing/visible_units.h:
15208
15209 2009-04-29  Mike Belshe  <mike@belshe.com>
15210
15211         Reviewed by Eric Seidel.
15212
15213         Update location while page is loading.
15214         https://bugs.webkit.org/show_bug.cgi?id=21597
15215
15216         Tested by:
15217         - fast/dom/location-new-window-no-crash
15218         - fast/dom/Window/window-open-pending-url
15219
15220         * page/Location.cpp:
15221
15222 2009-04-29  Feng Qian  <feng@chromium.org>
15223
15224         Reviewed by Darin Adler.
15225
15226         Add Android port files to WebCore/platform.
15227         https://bugs.webkit.org/show_bug.cgi?id=23296
15228
15229         * platform/android: Added.
15230         * platform/android/ClipboardAndroid.cpp: Added.
15231         * platform/android/ClipboardAndroid.h: Added.
15232
15233 2009-04-29  Feng Qian  <feng@chromium.org>
15234
15235         Reviewed by Darin Adler.
15236
15237         Add Android-specific files to the WebCore/page directory.
15238         https://bugs.webkit.org/show_bug.cgi?id=23295
15239
15240         * page/android: Added.
15241         * page/android/DragControllerAndroid.cpp: Added.
15242         * page/android/EventHandlerAndroid.cpp: Added.
15243         * page/android/InspectorControllerAndroid.cpp: Added.
15244
15245 2009-04-29  Pavel Feldman  <pfeldman@chromium.org>
15246
15247         Reviewed by Timothy Hatcher.
15248
15249         Extract PageGroupLoadDeferrer from Chrome.cpp
15250
15251         * GNUmakefile.am: added PageGroupLoadDeferrer
15252         * WebCore.pro: ditto
15253         * WebCore.scons: ditto
15254         * WebCore.vcproj/WebCore.vcproj: ditto
15255         * WebCore.xcodeproj/project.pbxproj: ditto
15256         * WebCoreSources.bkl: ditto
15257         * page/Chrome.cpp: PageGroupLoadDeferrer impl moved to a separate class.
15258         * page/PageGroupLoadDeferrer.cpp: Added.
15259         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
15260         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
15261         * page/PageGroupLoadDeferrer.h: Added.
15262
15263 2009-04-24  Ojan Vafai  <ojan@chromium.org>
15264
15265         Reviewed by Dan Bernstein.
15266
15267         Make textarea and text input metrics more closely match IEs.
15268
15269         This involves:
15270         -set text input width to size*avgCharWidth + maxCharWidth - avgCharWidth
15271         -set textarea width to cols*avgCharWidth
15272         -Make default CSS match IEs
15273         -Correctly initializing m_avgCharWidth and m_maxCharWidth for each platform and SVG.
15274
15275         Those values for textarea and inputs were derived by doing a ton of manual
15276         testing of IE's width values for various textareas and fonts. On Windows we match
15277         IE exactly except for a couple fonts of the ~12 tested.
15278
15279         To get the average and max character width of a font, we do the following
15280         for each platform:
15281         -Win: TextMetrics expose avgCharWidth and maxCharWidth
15282         -SVG: avgCharWidth = width of an '0', fallback on width of a space glyph, then m_xHeight
15283             maxCharWidth = width of a 'W' for roman fonts, fallback on m_ascent
15284         -Linux: avgCharWidth = width of an '0', fallback on m_xHeight
15285             maxCharWidth = max of avgCharWidth and m_ascent
15286         -Mac: Calculate the avgCharWidth and grab the maxCharWidth off the font.
15287             If either one is non-positive, then calculate the value using the Linux approach.
15288
15289         Tests: fast/forms/text-control-intrinsic-widths.html
15290                fast/forms/textarea-metrics.html
15291                svg/custom/svg-fonts-in-text-controls.html
15292
15293         * css/html4.css:
15294         * css/themeWin.css:
15295         * platform/graphics/SimpleFontData.cpp:
15296         (WebCore::SimpleFontData::SimpleFontData):
15297         (WebCore::SimpleFontData::initCharWidths):
15298         * platform/graphics/SimpleFontData.h:
15299         (WebCore::SimpleFontData::maxCharWidth):
15300         (WebCore::SimpleFontData::avgCharWidth):
15301         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
15302         (WebCore::SimpleFontData::platformCharWidthInit):
15303         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
15304         (WebCore::SimpleFontData::platformCharWidthInit):
15305         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
15306         (WebCore::SimpleFontData::platformCharWidthInit):
15307         * platform/graphics/gtk/SimpleFontDataPango.cpp:
15308         (WebCore::SimpleFontData::platformCharWidthInit):
15309         * platform/graphics/mac/SimpleFontDataMac.mm:
15310         (WebCore::SimpleFontData::platformCharWidthInit):
15311         * platform/graphics/qt/SimpleFontDataQt.cpp:
15312         (WebCore::SimpleFontData::platformCharWidthInit):
15313         * platform/graphics/win/SimpleFontDataCGWin.cpp:
15314         (WebCore::SimpleFontData::platformCharWidthInit):
15315         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
15316         (WebCore::SimpleFontData::platformInit):
15317         (WebCore::SimpleFontData::platformCharWidthInit):
15318         * platform/graphics/win/SimpleFontDataWin.cpp:
15319         (WebCore::SimpleFontData::initGDIFont):
15320         * platform/graphics/wx/SimpleFontDataWx.cpp:
15321         (WebCore::SimpleFontData::platformCharWidthInit):
15322         * rendering/RenderTextControl.cpp:
15323         (WebCore::RenderTextControl::calcPrefWidths):
15324         * rendering/RenderTextControlMultiLine.cpp:
15325         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
15326         * rendering/RenderTextControlSingleLine.cpp:
15327         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
15328
15329 2009-04-29  Brady Eidson  <beidson@apple.com>
15330
15331         Reviewed by Darin Adler.
15332
15333         * bindings/objc/DOMCSS.mm:
15334         (kitClass):  Added CSS_INITIAL to the switch statement, and changed to use the WebCore
15335           type and not the binding type.
15336
15337 2009-04-29  John Abd-El-Malek  <jam@google.com>
15338
15339         Reviewed by Dimitri Glazkov.
15340
15341         Reverted my previous change to add resetChromiumPluginCache().
15342         https://bugs.webkit.org/show_bug.cgi?id=25318
15343
15344         * plugins/chromium/PluginDataChromium.cpp:
15345
15346 2009-04-29  Brady Eidson  <beidson@apple.com>
15347
15348         Reviewed by Darin Adler.
15349
15350         <rdar://problem/6573742> - Problem dragging standalone images from Safari to Mail
15351
15352         Roll out trac.webkit.org/changeset/35867 which fixed <rdar://problem/6153432>
15353
15354         Cloned <rdar://problem/6153432> to <rdar://problem/6839881> to find a better fix for that Tiger Mail bug.
15355
15356         * loader/DocumentLoader.cpp:
15357         (WebCore::DocumentLoader::subresource): Remove the preload referenced check.
15358
15359 2009-04-29  Alpha Lam  <hclam@chromium.org>
15360
15361         Reviewed by Dimitri Glazkov.
15362
15363         https://bugs.webkit.org/show_bug.cgi?id=25430
15364
15365         Provide style sheet for UI controls of media elements for Chromium port.
15366
15367         * rendering/RenderThemeChromiumWin.cpp:
15368         (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet):
15369
15370 2009-04-29  John Abd-El-Malek  <jam@chromium.org>
15371
15372         Reviewed by Darin Adler.
15373
15374         Expose sudden termination to Chromium port.
15375         https://bugs.webkit.org/show_bug.cgi?id=25457
15376
15377         * platform/SuddenTermination.h:
15378         * platform/chromium/ChromiumBridge.h:
15379         * platform/chromium/SuddenTerminationChromium.cpp: Added.
15380         (WebCore::disableSuddenTermination):
15381         (WebCore::enableSuddenTermination):
15382
15383 2009-04-29  Sam Weinig  <sam@webkit.org>
15384
15385         Reviewed by Dimitri Glazkov.
15386
15387         Remove unused EventListeners.
15388
15389         * page/DOMWindow.idl:
15390
15391 2009-04-29  Yury Semikhatsky  <yurys@chromium.org>
15392
15393         Reveal current execution line once SourceFrame content is loaded. 
15394
15395         https://bugs.webkit.org/show_bug.cgi?id=25448
15396
15397         Reviewed by Timothy Hatcher.
15398
15399         * inspector/front-end/SourceFrame.js:
15400         (WebInspector.SourceFrame.prototype._loaded):
15401
15402 2009-04-29  Ariya Hidayat  <ariya.hidayat@nokia.com>
15403
15404         Reviewed by Simon Fraser.
15405
15406         [Qt] Initialize GraphicsContext's and ImageBuffer's QPainter to match
15407         the default values of canvas attributes.
15408
15409         * platform/graphics/qt/ImageBufferQt.cpp:
15410         (WebCore::ImageBufferData::ImageBufferData):
15411
15412 2009-04-28  Simon Hausmann  <simon.hausmann@nokia.com>
15413
15414         Fix the Qt build.
15415
15416         * bridge/qt/qt_runtime.cpp:
15417         (JSC::Bindings::findMethodIndex): Removed exec param from at() call.
15418         (JSC::Bindings::QtRuntimeConnectionMethod::call): Ditto.
15419
15420 2009-04-28  Geoffrey Garen  <ggaren@apple.com>
15421
15422         Rubber stamped by Beth Dakin.
15423         
15424         Missed one.
15425
15426         * bindings/scripts/CodeGeneratorJS.pm:
15427
15428 2009-04-28  Geoffrey Garen  <ggaren@apple.com>
15429
15430         Rubber stamped by Beth Dakin.
15431         
15432         Removed scaffolding supporting dynamically converting between 32bit and
15433         64bit value representations. 
15434
15435         * bindings/js/JSAudioConstructor.cpp:
15436         (WebCore::constructAudio):
15437         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
15438         (WebCore::JSCanvasRenderingContext2D::setFillColor):
15439         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
15440         (WebCore::JSCanvasRenderingContext2D::strokeRect):
15441         (WebCore::JSCanvasRenderingContext2D::drawImage):
15442         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
15443         (WebCore::JSCanvasRenderingContext2D::setShadow):
15444         (WebCore::JSCanvasRenderingContext2D::createPattern):
15445         (WebCore::JSCanvasRenderingContext2D::putImageData):
15446         (WebCore::JSCanvasRenderingContext2D::fillText):
15447         (WebCore::JSCanvasRenderingContext2D::strokeText):
15448         * bindings/js/JSClipboardCustom.cpp:
15449         (WebCore::JSClipboard::clearData):
15450         (WebCore::JSClipboard::getData):
15451         (WebCore::JSClipboard::setData):
15452         (WebCore::JSClipboard::setDragImage):
15453         * bindings/js/JSDOMApplicationCacheCustom.cpp:
15454         (WebCore::JSDOMApplicationCache::hasItem):
15455         (WebCore::JSDOMApplicationCache::add):
15456         (WebCore::JSDOMApplicationCache::remove):
15457         (WebCore::JSDOMApplicationCache::addEventListener):
15458         (WebCore::JSDOMApplicationCache::removeEventListener):
15459         * bindings/js/JSDOMStringListCustom.cpp:
15460         (WebCore::JSDOMStringList::item):
15461         * bindings/js/JSDOMWindowCustom.cpp:
15462         (WebCore::JSDOMWindow::open):
15463         (WebCore::JSDOMWindow::showModalDialog):
15464         (WebCore::JSDOMWindow::postMessage):
15465         (WebCore::JSDOMWindow::setTimeout):
15466         (WebCore::JSDOMWindow::setInterval):
15467         (WebCore::JSDOMWindow::atob):
15468         (WebCore::JSDOMWindow::btoa):
15469         (WebCore::JSDOMWindow::addEventListener):
15470         (WebCore::JSDOMWindow::removeEventListener):
15471         * bindings/js/JSDatabaseCustom.cpp:
15472         (WebCore::JSDatabase::changeVersion):
15473         (WebCore::JSDatabase::transaction):
15474         * bindings/js/JSElementCustom.cpp:
15475         (WebCore::JSElement::setAttribute):
15476         (WebCore::JSElement::setAttributeNode):
15477         (WebCore::JSElement::setAttributeNS):
15478         (WebCore::JSElement::setAttributeNodeNS):
15479         * bindings/js/JSGeolocationCustom.cpp:
15480         (WebCore::JSGeolocation::getCurrentPosition):
15481         (WebCore::JSGeolocation::watchPosition):
15482         * bindings/js/JSHTMLCollectionCustom.cpp:
15483         (WebCore::callHTMLCollection):
15484         (WebCore::JSHTMLCollection::item):
15485         (WebCore::JSHTMLCollection::namedItem):
15486         * bindings/js/JSHTMLDocumentCustom.cpp:
15487         (WebCore::documentWrite):
15488         * bindings/js/JSHTMLInputElementCustom.cpp:
15489         (WebCore::JSHTMLInputElement::setSelectionRange):
15490         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
15491         (WebCore::JSHTMLOptionsCollection::add):
15492         * bindings/js/JSHTMLSelectElementCustom.cpp:
15493         (WebCore::JSHTMLSelectElement::remove):
15494         * bindings/js/JSImageConstructor.cpp:
15495         (WebCore::constructImage):
15496         * bindings/js/JSInspectorControllerCustom.cpp:
15497         (WebCore::JSInspectorController::highlightDOMNode):
15498         (WebCore::JSInspectorController::addResourceSourceToFrame):
15499         (WebCore::JSInspectorController::addSourceToFrame):
15500         (WebCore::JSInspectorController::getResourceDocumentNode):
15501         (WebCore::JSInspectorController::search):
15502         (WebCore::JSInspectorController::databaseTableNames):
15503         (WebCore::JSInspectorController::setting):
15504         (WebCore::JSInspectorController::setSetting):
15505         (WebCore::JSInspectorController::wrapCallback):
15506         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
15507         (WebCore::JSJavaScriptCallFrame::evaluate):
15508         * bindings/js/JSLocationCustom.cpp:
15509         (WebCore::JSLocation::replace):
15510         (WebCore::JSLocation::assign):
15511         * bindings/js/JSMessagePortCustom.cpp:
15512         (WebCore::JSMessagePort::startConversation):
15513         (WebCore::JSMessagePort::addEventListener):
15514         (WebCore::JSMessagePort::removeEventListener):
15515         * bindings/js/JSNodeCustom.cpp:
15516         (WebCore::JSNode::insertBefore):
15517         (WebCore::JSNode::replaceChild):
15518         (WebCore::JSNode::removeChild):
15519         (WebCore::JSNode::appendChild):
15520         (WebCore::JSNode::addEventListener):
15521         (WebCore::JSNode::removeEventListener):
15522         * bindings/js/JSNodeFilterCustom.cpp:
15523         (WebCore::JSNodeFilter::acceptNode):
15524         * bindings/js/JSNodeListCustom.cpp:
15525         (WebCore::callNodeList):
15526         * bindings/js/JSOptionConstructor.cpp:
15527         (WebCore::constructHTMLOptionElement):
15528         * bindings/js/JSQuarantinedObjectWrapper.cpp:
15529         (WebCore::JSQuarantinedObjectWrapper::construct):
15530         (WebCore::JSQuarantinedObjectWrapper::call):
15531         * bindings/js/JSSQLResultSetRowListCustom.cpp:
15532         (WebCore::JSSQLResultSetRowList::item):
15533         * bindings/js/JSSQLTransactionCustom.cpp:
15534         (WebCore::JSSQLTransaction::executeSql):
15535         * bindings/js/JSSVGElementInstanceCustom.cpp:
15536         (WebCore::JSSVGElementInstance::addEventListener):
15537         (WebCore::JSSVGElementInstance::removeEventListener):
15538         * bindings/js/JSSVGLengthCustom.cpp:
15539         (WebCore::JSSVGLength::convertToSpecifiedUnits):
15540         * bindings/js/JSSVGMatrixCustom.cpp:
15541         (WebCore::JSSVGMatrix::rotateFromVector):
15542         * bindings/js/JSSVGPathSegListCustom.cpp:
15543         (WebCore::JSSVGPathSegList::initialize):
15544         (WebCore::JSSVGPathSegList::getItem):
15545         (WebCore::JSSVGPathSegList::insertItemBefore):
15546         (WebCore::JSSVGPathSegList::replaceItem):
15547         (WebCore::JSSVGPathSegList::removeItem):
15548         (WebCore::JSSVGPathSegList::appendItem):
15549         * bindings/js/JSSVGPointListCustom.cpp:
15550         (WebCore::JSSVGPointList::initialize):
15551         (WebCore::JSSVGPointList::getItem):
15552         (WebCore::JSSVGPointList::insertItemBefore):
15553         (WebCore::JSSVGPointList::replaceItem):
15554         (WebCore::JSSVGPointList::removeItem):
15555         (WebCore::JSSVGPointList::appendItem):
15556         * bindings/js/JSSVGTransformListCustom.cpp:
15557         (WebCore::JSSVGTransformList::initialize):
15558         (WebCore::JSSVGTransformList::getItem):
15559         (WebCore::JSSVGTransformList::insertItemBefore):
15560         (WebCore::JSSVGTransformList::replaceItem):
15561         (WebCore::JSSVGTransformList::removeItem):
15562         (WebCore::JSSVGTransformList::appendItem):
15563         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
15564         (WebCore::constructWebKitCSSMatrix):
15565         * bindings/js/JSWebKitPointConstructor.cpp:
15566         (WebCore::constructWebKitPoint):
15567         * bindings/js/JSWorkerConstructor.cpp:
15568         (WebCore::constructWorker):
15569         * bindings/js/JSWorkerContextCustom.cpp:
15570         (WebCore::JSWorkerContext::importScripts):
15571         (WebCore::JSWorkerContext::addEventListener):
15572         (WebCore::JSWorkerContext::removeEventListener):
15573         (WebCore::JSWorkerContext::setTimeout):
15574         (WebCore::JSWorkerContext::setInterval):
15575         * bindings/js/JSWorkerCustom.cpp:
15576         (WebCore::JSWorker::addEventListener):
15577         (WebCore::JSWorker::removeEventListener):
15578         * bindings/js/JSXMLHttpRequestCustom.cpp:
15579         (WebCore::JSXMLHttpRequest::open):
15580         (WebCore::JSXMLHttpRequest::setRequestHeader):
15581         (WebCore::JSXMLHttpRequest::send):
15582         (WebCore::JSXMLHttpRequest::getResponseHeader):
15583         (WebCore::JSXMLHttpRequest::overrideMimeType):
15584         (WebCore::JSXMLHttpRequest::addEventListener):
15585         (WebCore::JSXMLHttpRequest::removeEventListener):
15586         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
15587         (WebCore::JSXMLHttpRequestUpload::addEventListener):
15588         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
15589         * bindings/js/JSXSLTProcessorCustom.cpp:
15590         (WebCore::JSXSLTProcessor::importStylesheet):
15591         (WebCore::JSXSLTProcessor::transformToFragment):
15592         (WebCore::JSXSLTProcessor::transformToDocument):
15593         (WebCore::JSXSLTProcessor::setParameter):
15594         (WebCore::JSXSLTProcessor::getParameter):
15595         (WebCore::JSXSLTProcessor::removeParameter):
15596         * bindings/js/ScheduledAction.cpp:
15597         (WebCore::ScheduledAction::create):
15598         (WebCore::ScheduledAction::ScheduledAction):
15599         * bindings/js/ScheduledAction.h:
15600         * bindings/js/ScriptCallFrame.cpp:
15601         (WebCore::ScriptCallFrame::ScriptCallFrame):
15602         * bindings/js/ScriptCallFrame.h:
15603         * bindings/js/ScriptCallStack.cpp:
15604         (WebCore::ScriptCallStack::ScriptCallStack):
15605         (WebCore::ScriptCallStack::initialize):
15606         * bridge/c/c_instance.cpp:
15607         (JSC::Bindings::CInstance::invokeMethod):
15608         (JSC::Bindings::CInstance::invokeDefaultMethod):
15609         (JSC::Bindings::CInstance::invokeConstruct):
15610         * bridge/jni/jni_instance.cpp:
15611         (JavaInstance::invokeMethod):
15612         * bridge/objc/objc_instance.mm:
15613         (ObjcInstance::invokeMethod):
15614         (ObjcInstance::invokeDefaultMethod):
15615
15616 2009-04-28  David Carson  <dacarson@apple.com>
15617
15618         Reviewed by David Hyatt.
15619
15620         Restore alignment to device pixel boundaries.
15621         https://bugs.webkit.org/show_bug.cgi?id=25458
15622
15623         Adjust the adjusted destination rect to be device pixel aligned.
15624
15625         * platform/graphics/cg/ImageCG.cpp:
15626         (WebCore::BitmapImage::draw):
15627
15628 2009-04-28  Sam Weinig  <sam@webkit.org>
15629
15630         Reviewed by Anders Carlsson.
15631
15632         Move unimplemented captureEvents and releaseEvents from JSDOMWindow
15633         to DOMWindow.
15634
15635         * bindings/js/JSDOMWindowCustom.cpp:
15636         * page/DOMWindow.cpp:
15637         (WebCore::DOMWindow::captureEvents):
15638         (WebCore::DOMWindow::releaseEvents):
15639         * page/DOMWindow.h:
15640         * page/DOMWindow.idl:
15641
15642 2009-04-28  Alexey Proskuryakov  <ap@webkit.org>
15643
15644         Reviewed by Darin Adler.
15645
15646         https://bugs.webkit.org/show_bug.cgi?id=25420
15647         <rdar://problem/6829570> REGRESSION: XMLHttpRequest allows loading from another origin
15648
15649         Test: http/tests/xmlhttprequest/detaching-frame-2.html
15650
15651         This was caused by faulty DOMWindow::document(), which could return a new document from
15652         the window's frame after navigation.
15653
15654         * bindings/js/JSDOMWindowCustom.h: (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
15655         Removed an obsolete check that allowed access when document was null. Contrary to what a
15656         comment said, that can happen for a window that is no longer in frame, not to one whose
15657         document is not constructed yet.
15658
15659         * bindings/js/JSXMLHttpRequestConstructor.cpp: (WebCore::constructXMLHttpRequest): Bail
15660         out if context was not found. This currently happens due to a shortcoming in
15661         DOMWindow::document() - when it is fixed, the XMLHttpRequest object in included regression
15662         test will be constructed successfully, but won't be sent, because its context will be
15663         frameless.
15664
15665         * page/DOMWindow.cpp: (WebCore::DOMWindow::document): Check that the window in frame hasn't
15666         been replaced yet. Added FIXME comments about how this may be better fixed in the future.
15667
15668         * bindings/js/JSAudioConstructor.cpp:
15669         (WebCore::JSAudioConstructor::document):
15670         (WebCore::constructAudio):
15671         * bindings/js/JSImageConstructor.cpp:
15672         (WebCore::JSImageConstructor::document):
15673         (WebCore::constructImage):
15674         * bindings/js/JSMessageChannelConstructor.cpp:
15675         (WebCore::JSMessageChannelConstructor::construct):
15676         * bindings/js/JSOptionConstructor.cpp:
15677         (WebCore::JSOptionConstructor::document):
15678         (WebCore::constructHTMLOptionElement):
15679         Make matching changes to other constructors that hold a reference to global object.
15680
15681 2009-04-28  Kevin Ollivier <kevino@theolliviers.com>
15682
15683         wxMSW build fix. Switch JSCore build back to static.
15684
15685         * config.h:
15686
15687 2009-04-28  Pierre d'Herbemont  <pdherbemont@apple.com>
15688
15689         Reviewed by Simon Fraser.
15690
15691         <rdar://problem/6834830>
15692
15693         Make sure we cover the two possible values reported by event.total that are playback engine
15694         specific.
15695
15696         * media/progress-event-total-expected.txt: Match the new test.
15697         * media/progress-event-total.html: Test the two values.
15698
15699 2009-04-28  Timothy Hatcher  <timothy@apple.com>
15700
15701         Rename -[DOMRange lineBoxRects] to -[DOMRange textRects] and change how it
15702         collects the individual rects, making sure to only include RenderText.
15703
15704         <rdar://problem/6810061>
15705
15706         Reviewed by Sam Weinig.
15707
15708         * bindings/objc/DOM.mm:
15709         (-[DOMNode textRects]): Added. Make a Range and call textRects.
15710         (-[DOMNode lineBoxRects]): Call textRects method.
15711         (-[DOMRange textRects]): Call Range::textRects.
15712         (-[DOMRange lineBoxRects]): Call textRects method.
15713         * bindings/objc/DOMPrivate.h: Add the new methods and a comment
15714         about lineBoxRects being deprecated.
15715         * dom/Range.cpp:
15716         (WebCore::Range::boundingBox): Call textRects (renamed from addLineBoxRects).
15717         (WebCore::Range::textRects): Renamed from addLineBoxRects. Iterate over the
15718         nodes instead of the RenderObjects to correctly account for offsets. Also
15719         only call absoluteRectsForRange on RenderText.
15720         * dom/Range.h: Renamed addLineBoxRects to textRects.
15721         * page/Frame.cpp:
15722         (WebCore::Frame::selectionTextRects): Call textRects (renamed from addLineBoxRects).
15723         * rendering/RenderObject.cpp:
15724         (WebCore::RenderObject::absoluteRectsForRange): Remove if conditions that made this
15725         function very specific for the lineBoxRects API. These functions are still used
15726         by the InspectorController, and this change improves what the Inspector shows.
15727         (WebCore::RenderObject::absoluteQuadsForRange): Ditto.
15728
15729 2009-04-28  Timothy Hatcher  <timothy@apple.com>
15730
15731         Remove the topLevel boolean argument from absolute{Rects,Quads}.
15732         This argument was default to true and no one ever passed false.
15733
15734         Reviewed by Sam Weinig.
15735
15736         * rendering/RenderBlock.cpp:
15737         (WebCore::RenderBlock::absoluteRects):
15738         (WebCore::RenderBlock::absoluteQuads):
15739         * rendering/RenderBlock.h:
15740         * rendering/RenderBox.cpp:
15741         (WebCore::RenderBox::absoluteRects):
15742         (WebCore::RenderBox::absoluteQuads):
15743         * rendering/RenderBox.h:
15744         * rendering/RenderInline.cpp:
15745         (WebCore::RenderInline::absoluteRects):
15746         (WebCore::RenderInline::absoluteQuads):
15747         * rendering/RenderInline.h:
15748         * rendering/RenderObject.h:
15749         (WebCore::RenderObject::absoluteRects):
15750         (WebCore::RenderObject::absoluteQuads):
15751         * rendering/RenderSVGHiddenContainer.cpp:
15752         (WebCore::RenderSVGHiddenContainer::absoluteRects):
15753         (WebCore::RenderSVGHiddenContainer::absoluteQuads):
15754         * rendering/RenderSVGHiddenContainer.h:
15755         * rendering/RenderSVGImage.cpp:
15756         (WebCore::RenderSVGImage::absoluteRects):
15757         (WebCore::RenderSVGImage::absoluteQuads):
15758         * rendering/RenderSVGImage.h:
15759         * rendering/RenderSVGInlineText.cpp:
15760         (WebCore::RenderSVGInlineText::absoluteRects):
15761         (WebCore::RenderSVGInlineText::absoluteQuads):
15762         * rendering/RenderSVGInlineText.h:
15763         * rendering/RenderSVGModelObject.cpp:
15764         (WebCore::RenderSVGModelObject::absoluteRects):
15765         (WebCore::RenderSVGModelObject::absoluteQuads):
15766         * rendering/RenderSVGModelObject.h:
15767         * rendering/RenderSVGTSpan.cpp:
15768         (WebCore::RenderSVGTSpan::absoluteRects):
15769         (WebCore::RenderSVGTSpan::absoluteQuads):
15770         * rendering/RenderSVGTSpan.h:
15771         * rendering/RenderSVGText.cpp:
15772         (WebCore::RenderSVGText::absoluteRects):
15773         (WebCore::RenderSVGText::absoluteQuads):
15774         * rendering/RenderSVGText.h:
15775         * rendering/RenderSVGTextPath.cpp:
15776         (WebCore::RenderSVGTextPath::absoluteQuads):
15777         * rendering/RenderSVGTextPath.h:
15778         * rendering/RenderText.cpp:
15779         (WebCore::RenderText::absoluteRects):
15780         * rendering/RenderText.h:
15781         * rendering/RenderView.cpp:
15782         (WebCore::RenderView::absoluteRects):
15783         (WebCore::RenderView::absoluteQuads):
15784         * rendering/RenderView.h:
15785
15786 2009-04-28  Eric Carlson  <eric.carlson@apple.com>
15787
15788         Reviewed by Simon Fraser.
15789
15790         <rdar://problem/6794691> Media documents and <video controls> never show controls on Windows
15791
15792         RenderThemeWin doesn't implement the media element controller rendering methods, so media
15793         controls stopped rendering when we switched from RenderThemeSafari. Rather than having copies
15794         of the code in both places, the logic is in a new class that is called from both.
15795
15796         * WebCore.vcproj/WebCore.vcproj: Add RenderMediaControls.cpp.
15797
15798         * rendering/RenderMediaControls.cpp: Added.
15799         (WebCore::determineState): Translate renderer state to ThemeControlState.
15800         (WebCore::RenderMediaControls::adjustMediaSliderThumbSize): Adjust slider thumb.
15801         (WebCore::parentMediaElement): Return the HTMLMediaElement parent of a controller element.
15802         (WebCore::RenderMediaControls::paintMediaControlsPart): Paint a media controller part.
15803         * rendering/RenderMediaControls.h: Added.
15804
15805         * rendering/RenderThemeSafari.cpp:
15806         (WebCore::RenderThemeSafari::paintSliderTrack): Remove the MediaSliderPart case, it is never
15807         called for the media slider.
15808         (WebCore::RenderThemeSafari::adjustSliderThumbSize): Call RenderMediaControls function.
15809         (WebCore::RenderThemeSafari::paintMediaFullscreenButton): Ditto.
15810         (WebCore::RenderThemeSafari::paintMediaMuteButton): Ditto.
15811         (WebCore::RenderThemeSafari::paintMediaPlayButton): Ditto.
15812         (WebCore::RenderThemeSafari::paintMediaSeekBackButton): Ditto.
15813         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): Ditto.
15814         (WebCore::RenderThemeSafari::paintMediaSliderTrack): Ditto.
15815         (WebCore::RenderThemeSafari::paintMediaSliderThumb): Ditto.
15816
15817         * rendering/RenderThemeWin.cpp:
15818         (WebCore::RenderThemeWin::adjustSliderThumbSize): Ditto.
15819         (WebCore::RenderThemeWin::paintMediaFullscreenButton): Ditto.
15820         (WebCore::RenderThemeWin::paintMediaMuteButton): Ditto.
15821         (WebCore::RenderThemeWin::paintMediaPlayButton): Ditto.
15822         (WebCore::RenderThemeWin::paintMediaSeekBackButton): Ditto.
15823         (WebCore::RenderThemeWin::paintMediaSeekForwardButton): Ditto.
15824         (WebCore::RenderThemeWin::paintMediaSliderTrack): Ditto.
15825         (WebCore::RenderThemeWin::paintMediaSliderThumb): Ditto.
15826         * rendering/RenderThemeWin.h:
15827
15828 2009-04-28  Beth Dakin  <bdakin@apple.com>
15829
15830         Reviewed by Sam Weinig.
15831
15832         Fix for <rdar://problem/6419515> REGRESSION (r31037): Positioned 
15833         images with % height are collapsed when printing
15834
15835         * rendering/RenderBox.cpp:
15836         (WebCore::RenderBox::calcHeight): Make sure we don't ignore 
15837         printing here!
15838
15839 2009-04-28  Adele Peterson  <adele@apple.com>
15840
15841         Reviewed by Darin Adler.
15842
15843         Fix for <rdar://problem/6617298> Typing delete on an unquoted blank line unquotes the preceding, quoted blank line
15844
15845         Test: editing/deleting/type-delete-after-quote.html
15846
15847         When a selection is deleted that contains a whole number paragraphs plus a line break, we refrain from merging paragraphs after the delete,
15848         since it is unclear to most users that such a selection actually ends at the start of the next paragraph.  However, when a user hits delete 
15849         with a caret selection, they actually do expect the start of that paragraph to be merged into the paragraph before it.  We can tell that 
15850         we're in this state because the TypingCommand creates the selection to delete but it doesn't change the endingSelection.  So we can tell
15851         that if we started with a caret selection, then we're not in this special case where we have to protect the user from unexpected behavior 
15852         from deleting a range they selected.
15853
15854         * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializePositionData):
15855
15856 2009-04-28  Xan Lopez  <xlopez@igalia.com>
15857
15858         Unreviewed: fix distcheck build, add missing header to file list.
15859
15860         * GNUmakefile.am:
15861
15862 2009-04-27  Eric Seidel  <eric@webkit.org>
15863
15864         Reviewed by Sam Weinig.
15865
15866         Fix foreignObject transform order
15867         https://bugs.webkit.org/show_bug.cgi?id=25433
15868
15869         Transforms were being applied in the wrong order.
15870         When mapping from local to parent, first apply the viewport transform
15871         then map from the viewport box to the parent box.
15872
15873         * rendering/RenderForeignObject.cpp:
15874         (WebCore::RenderForeignObject::localToParentTransform):
15875
15876 2009-04-27  Eric Seidel  <eric@webkit.org>
15877
15878         Reviewed by Simon Fraser.
15879
15880         Simplify nodeAtPoint for SVG
15881         https://bugs.webkit.org/show_bug.cgi?id=25432
15882
15883         Added a new nodeAtFloatPoint method which takes a FloatPoint
15884         instead of the *super confusing* x/y tx/ty pairs that HTML uses.
15885         Mostly this is just lots of minus-lines as the new code is *much* simpler.
15886
15887         I made all the SVG renderers use the new nodeAtFloatPoint and ASSERT_NOT_REACHED
15888         for the nodeAtPoint HTML/CSS int x/y version.
15889
15890         Eventually the rest of CSS/HTML render objects will follow suit
15891         and move to nodeAtFloatPoint (possibly renamed back to nodeAtPoint), but changing them
15892         over was well outside the scope of this change.
15893
15894         SVG hit testing is not actually floating point precise yet, since its still
15895         passed in an integer x/y.  Certain transform hit-test edge cases are likely fixed
15896         by moving to FloatPoint here, but I didn't try to find one.
15897
15898         This should not cause functional changes for common-case hit testing, thus
15899         no tests changed, nor should new tests be needed.
15900
15901         * rendering/RenderForeignObject.cpp:
15902         (WebCore::RenderForeignObject::translationForAttributes):
15903         (WebCore::RenderForeignObject::paint):
15904         (WebCore::RenderForeignObject::computeRectForRepaint):
15905         (WebCore::RenderForeignObject::localToParentTransform):
15906         (WebCore::RenderForeignObject::layout):
15907         (WebCore::RenderForeignObject::nodeAtFloatPoint):
15908         * rendering/RenderForeignObject.h:
15909         * rendering/RenderObject.cpp:
15910         (WebCore::RenderObject::nodeAtFloatPoint):
15911         * rendering/RenderObject.h:
15912         * rendering/RenderPath.cpp:
15913         (WebCore::RenderPath::nodeAtFloatPoint):
15914         * rendering/RenderPath.h:
15915         * rendering/RenderSVGContainer.cpp:
15916         (WebCore::RenderSVGContainer::nodeAtFloatPoint):
15917         * rendering/RenderSVGContainer.h:
15918         (WebCore::RenderSVGContainer::pointIsInsideViewportClip):
15919         * rendering/RenderSVGHiddenContainer.cpp:
15920         (WebCore::RenderSVGHiddenContainer::nodeAtFloatPoint):
15921         * rendering/RenderSVGHiddenContainer.h:
15922         * rendering/RenderSVGImage.cpp:
15923         (WebCore::RenderSVGImage::paint):
15924         (WebCore::RenderSVGImage::nodeAtFloatPoint):
15925         * rendering/RenderSVGImage.h:
15926         (WebCore::RenderSVGImage::localToParentTransform):
15927         (WebCore::RenderSVGImage::localTransform):
15928         * rendering/RenderSVGModelObject.cpp:
15929         (WebCore::RenderSVGModelObject::nodeAtFloatPoint):
15930         * rendering/RenderSVGModelObject.h:
15931         * rendering/RenderSVGRoot.cpp:
15932         (WebCore::RenderSVGRoot::nodeAtFloatPoint):
15933         * rendering/RenderSVGText.cpp:
15934         (WebCore::RenderSVGText::nodeAtFloatPoint):
15935         * rendering/RenderSVGText.h:
15936         * rendering/RenderSVGViewportContainer.cpp:
15937         (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip):
15938         * rendering/RenderSVGViewportContainer.h:
15939
15940 2009-04-28  Eric Carlson  <eric.carlson@apple.com>
15941
15942         - fix the Tiger build
15943
15944         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
15945         (WebCore::MediaPlayerPrivate::cacheMovieScale):
15946
15947 2009-04-28  Sam Weinig  <sam@webkit.org>
15948
15949         Reviewed by Beth Dakin.
15950
15951         Consolidate ScheduleAction creation into ScheduledAction::create.
15952         Autogenerate JSWorkerContext.clearTimeout and clearInterval.
15953
15954         * bindings/js/JSDOMWindowCustom.cpp:
15955         (WebCore::JSDOMWindow::setTimeout):
15956         (WebCore::JSDOMWindow::setInterval):
15957         * bindings/js/JSWorkerContextCustom.cpp:
15958         (WebCore::JSWorkerContext::setTimeout):
15959         (WebCore::JSWorkerContext::setInterval):
15960         * bindings/js/ScheduledAction.cpp:
15961         (WebCore::ScheduledAction::create):
15962         (WebCore::ScheduledAction::ScheduledAction):
15963         (WebCore::ScheduledAction::execute):
15964         * bindings/js/ScheduledAction.h:
15965         * workers/WorkerContext.cpp:
15966         (WebCore::DOMWindow::setTimeout):
15967         (WebCore::DOMWindow::clearTimeout):
15968         (WebCore::DOMWindow::setInterval):
15969         (WebCore::DOMWindow::clearInterval):
15970         * workers/WorkerContext.h:
15971         * workers/WorkerContext.idl:
15972
15973 2009-04-28  Brady Eidson  <beidson@apple.com>
15974
15975         Reviewed by Darin Adler
15976
15977         <rdar://problem/6643219> Crashes after moving nodes between documents with Safari 4 Beta installed
15978
15979         When moving Nodes between documents we weren't properly updating style declarations.  Certain operations, such
15980         as creating webarchives, would tickle this bug.
15981
15982         Tests: webarchive/adopt-attribute-styled-body-webarchive.html
15983                webarchive/adopt-attribute-styled-node-webarchive.html
15984                webarchive/adopt-inline-styled-node-webarchive.html
15985
15986         * dom/Node.cpp:  Add a debug-only mechanism to insure that anyone who overrides (did/will)MoveToNewOwnerDocument
15987           calls their parent-class implementation after they've done their own work.
15988         (WebCore::setWillMoveToNewOwnerDocumentWasCalled): 
15989         (WebCore::setDidMoveToNewOwnerDocumentWasCalled):
15990         (WebCore::Node::setDocument):
15991         (WebCore::Node::willMoveToNewOwnerDocument):
15992         (WebCore::Node::didMoveToNewOwnerDocument):
15993
15994         * dom/StyledElement.cpp:
15995         (WebCore::StyledElement::attributeChanged): Add a comment explaining why we don't need to walk the nameAttrMap
15996           to update style declarations.
15997         (WebCore::StyledElement::didMoveToNewOwnerDocument): Update the parent pointer for the inline style declaration.
15998         * dom/StyledElement.h:
15999
16000         * html/HTMLBodyElement.cpp:
16001         (WebCore::HTMLBodyElement::didMoveToNewOwnerDocument): Update the parent pointer for the link declaration.
16002         * html/HTMLBodyElement.h:
16003
16004 2009-04-28  Eric Carlson  <eric.carlson@apple.com>
16005
16006          Reviewed by Darin Adler.
16007         
16008         <rdar://problem/6834876> Don't use BlockExceptions macros until QTKit supports 
16009         QTMoviePreferredTransformAttribute
16010
16011         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
16012         (WebCore::MediaPlayerPrivate::cacheMovieScale): use @try and @catch instead of 
16013         BEGIN_BLOCK_OBJC_EXCEPTIONS and END_BLOCK_OBJC_EXCEPTIONS for builds of QTKit 
16014         that throw an exception on QTMovieCurrentSizeAttribute but don't support 
16015         QTMoviePreferredTransformAttribute
16016
16017 2009-04-28  Darin Adler  <darin@apple.com>
16018
16019         Reviewed by Sam Weinig.
16020
16021         * rendering/RenderText.cpp:
16022         (WebCore::RenderText::RenderText): Streamline code path to avoid a bit of reference count
16023         churn and remove a strange unneeeded PassRefPtr typecast. Also added a comment.
16024         (WebCore::RenderText::setTextInternal): Ditto.
16025
16026 2009-04-27  Eric Seidel  <eric@webkit.org>
16027
16028         Reviewed by Simon Fraser.
16029
16030         Simplify how SVG containers paint
16031         https://bugs.webkit.org/show_bug.cgi?id=25431
16032
16033         Moved filterBoundingBox() from RenderSVGModelObject to SVGRenderSupport to share with other classes.
16034         Gave RenderSVGText a modern clippedOverflowRectForRepaint and computeRectForRepaint.
16035         RenderSVGText now applies transforms at paint() time instead of during chunk draw time
16036         this should be much more efficient.
16037
16038         Fixed the order in which RenderSVGViewportContainer applied
16039         transforms and clips.  We now clip to the viewport first and apply
16040         all transforms at once.  Also since the viewport logic is now only
16041         inside RenderSVGViewportContainer (instead of inside RenderSVGContainer)
16042         we always know we have a viewport.  We now use only viewportSize instead of
16043         viewport() since RenderSVGViewportContainers can't have x/y offsets.
16044
16045         We now correctly transform the PaintInfo::rect (damage rect) when applying transforms.
16046         This allowed us to apply the transform during text paint() instead of at chunk paint
16047         time. Previously we had to apply the transform during chunk paint time because
16048         RenderBlock (superclass of RenderSVGBlock) would check intersection with the damageRect
16049         before telling any of the inlines to draw.  Now that we adjust the damage rect correctly
16050         we pass the intersection check correctly!  (This probably fixed some <text> redraw bugs
16051         but since I still have a bunch of those to fix, I've not tried to write additional tests
16052         to cover these potential fixes yet.)
16053
16054         SVGRootInlineBox no longer needs to deal with transforms at chunk paint time, yay!
16055
16056         * rendering/RenderPath.cpp:
16057         (WebCore::RenderPath::repaintRectInLocalCoordinates):
16058         (WebCore::RenderPath::paint):
16059         * rendering/RenderSVGContainer.cpp:
16060         (WebCore::RenderSVGContainer::paint):
16061         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
16062         * rendering/RenderSVGContainer.h:
16063         (WebCore::RenderSVGContainer::applyViewportClip):
16064         * rendering/RenderSVGImage.cpp:
16065         (WebCore::RenderSVGImage::layout):
16066         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
16067         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint):
16068         (WebCore::RenderSVGImage::computeRectForRepaint):
16069         * rendering/RenderSVGImage.h:
16070         * rendering/RenderSVGModelObject.cpp:
16071         * rendering/RenderSVGModelObject.h:
16072         * rendering/RenderSVGRoot.cpp:
16073         (WebCore::RenderSVGRoot::layout):
16074         (WebCore::RenderSVGRoot::selfWillPaint):
16075         (WebCore::RenderSVGRoot::paint):
16076         (WebCore::RenderSVGRoot::viewportSize):
16077         (WebCore::RenderSVGRoot::calcViewport):
16078         (WebCore::RenderSVGRoot::localToBorderBoxTransform):
16079         (WebCore::RenderSVGRoot::parentOriginToBorderBox):
16080         (WebCore::RenderSVGRoot::borderOriginToContentBox):
16081         (WebCore::RenderSVGRoot::localToRepaintContainerTransform):
16082         (WebCore::RenderSVGRoot::localToParentTransform):
16083         (WebCore::RenderSVGRoot::computeRectForRepaint):
16084         (WebCore::RenderSVGRoot::nodeAtPoint):
16085         * rendering/RenderSVGRoot.h:
16086         * rendering/RenderSVGText.cpp:
16087         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
16088         (WebCore::RenderSVGText::computeRectForRepaint):
16089         (WebCore::RenderSVGText::paint):
16090         (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
16091         * rendering/RenderSVGText.h:
16092         (WebCore::RenderSVGText::localToParentTransform):
16093         (WebCore::RenderSVGText::localTransform):
16094         * rendering/RenderSVGViewportContainer.cpp:
16095         (WebCore::RenderSVGViewportContainer::applyViewportClip):
16096         * rendering/RenderSVGViewportContainer.h:
16097         * rendering/SVGRenderSupport.cpp:
16098         (WebCore::filterBoundingBoxForRenderer):
16099         (WebCore::applyTransformToPaintInfo):
16100         * rendering/SVGRenderSupport.h:
16101         * rendering/SVGRootInlineBox.cpp:
16102         (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
16103         (WebCore::SVGRootInlineBox::paint):
16104
16105 2009-04-28  Chris Fleizach  <cfleizach@apple.com>
16106
16107         Reviewed by Darin Adler.
16108
16109         Bug 25453: AX: fall back to PLACEHOLDER attr if form element is not labeled
16110         https://bugs.webkit.org/show_bug.cgi?id=25453
16111
16112         Test: accessibility/placeholder.html
16113
16114         * page/AccessibilityRenderObject.cpp:
16115         (WebCore::AccessibilityRenderObject::title):
16116
16117 2009-04-28  Chris Fleizach  <cfleizach@apple.com>
16118
16119         Reviewed by Darin Adler.
16120
16121         Bug 25452: AX: Don't create addition space AXStaticText element for every bold or link tag
16122         https://bugs.webkit.org/show_bug.cgi?id=25452
16123
16124         Test: accessibility/ignore-spacer-elements.html
16125
16126         * page/AccessibilityRenderObject.cpp:
16127         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
16128
16129 2009-04-28  Mark Rowe  <mrowe@apple.com>
16130
16131         Reviewed by Sam Weinig.
16132
16133         Work around <rdar://problem/6833240> by relying on static initialization to zero the entire struct.
16134         This removes the need for us to explicitly initialize all of the members, which have a tendency
16135         to change in meaning and number between versions of libxml2.
16136
16137         * dom/XMLTokenizerLibxml2.cpp:
16138         (WebCore::):
16139         (WebCore::sharedXHTMLEntity):
16140         (WebCore::getXHTMLEntity):
16141
16142 2009-04-28  Steve Falkenburg  <sfalken@apple.com>
16143
16144         Fix linker warning by specifying /NODEFAULTLIB:LIBCMT for QTMovieWin.
16145         
16146         Reviewed by Mark Rowe.
16147
16148         * WebCore.vcproj/QTMovieWin.vcproj:
16149
16150 2009-04-28  Chris Fleizach  <cfleizach@apple.com>
16151
16152         Reviewed by Darin Adler.
16153
16154         Bug 25449: AX: Respect the alt tag of ARIA button as AXDescription
16155         https://bugs.webkit.org/show_bug.cgi?id=25449
16156
16157         Test: accessibility/img-aria-button-alt-tag.html
16158
16159         * page/AccessibilityRenderObject.cpp:
16160         (WebCore::AccessibilityRenderObject::accessibilityDescription):
16161
16162 2009-04-28  Dan Bernstein  <mitz@apple.com>
16163
16164         Reviewed by John Sullivan.
16165
16166         - formatting cleanup
16167
16168         * rendering/RenderBox.cpp:
16169         (WebCore::RenderBox::calcHeight): Corrected indentation and added braces
16170         around a multi-line "else" clause.
16171
16172 2009-04-28  Eric Carlson  <eric.carlson@apple.com>
16173
16174         Reviewed by Adam Roben
16175         
16176         <rdar://problem/6769968> media/video-size-intrinsic-scale.html fails on Windows
16177         https://bugs.webkit.org/show_bug.cgi?id=25094
16178         
16179         Display movies saved with a non-identity matrix at the correct size.
16180
16181         * platform/graphics/win/QTMovieWin.cpp:
16182         (QTMovieWinPrivate::QTMovieWinPrivate): Initialize m_widthScaleFactor and m_heightScaleFactor.
16183         (QTMovieWinPrivate::cacheMovieScale): New, calculate difference between initial
16184         size and natural size so naturalSize() accounts for non-identity movie matrix.
16185         (QTMovieWinPrivate::task):Call cacheMovieScale when load state reaches
16186         kMovieLoadStateLoaded for the first time. kMovieLoadState -> QTMovieLoadState.
16187         (QTMovieWinPrivate::drawingComplete): kMovieLoadState -> QTMovieLoadState.
16188         (QTMovieWinPrivate::createGWorld): Don't bother creating gworld until load state reaches
16189         kMovieLoadStateLoaded because we do not try to draw it before that point.
16190         (QTMovieWinPrivate::setSize): Do not change movie box before reaching kMovieLoadStateLoaded
16191         because we need to get the movie's initial size in cacheMovieScale.
16192         (QTMovieWin::getNaturalSize): Multiply width and height by initial scale.
16193
16194 2009-04-28  Sam Weinig  <sam@webkit.org>
16195
16196         Reviewed by Dan Bernstein.
16197
16198         Move timer code from JSDOMWindow to DOMWindow. clearTimeout and
16199         clearInterval can now be autogenerated.
16200
16201         * bindings/js/JSDOMWindowBase.cpp:
16202         * bindings/js/JSDOMWindowBase.h:
16203         * bindings/js/JSDOMWindowCustom.cpp:
16204         (WebCore::createScheduledAction):
16205         (WebCore::JSDOMWindow::setTimeout):
16206         (WebCore::JSDOMWindow::setInterval):
16207         * page/DOMWindow.cpp:
16208         (WebCore::DOMWindow::setTimeout):
16209         (WebCore::DOMWindow::clearTimeout):
16210         (WebCore::DOMWindow::setInterval):
16211         (WebCore::DOMWindow::clearInterval):
16212         * page/DOMWindow.h:
16213         * page/DOMWindow.idl:
16214
16215 2009-04-28  Kevin Watters  <kevinwatters@gmail.com>
16216
16217         Reviewed by Kevin Ollivier.
16218
16219         Small optimization, don't get the widget's handle twice in one method.
16220         
16221         https://bugs.webkit.org/show_bug.cgi?id=25446
16222
16223         * platform/wx/WidgetWx.cpp:
16224         (WebCore::Widget::setFocus):
16225         (WebCore::Widget::show):
16226         (WebCore::Widget::hide):
16227         (WebCore::Widget::frameRect):
16228         (WebCore::Widget::setFrameRect):
16229         (WebCore::Widget::invalidateRect):
16230         (WebCore::Widget::paint):
16231
16232 2009-04-28  Kevin Watters  <kevinwatters@gmail.com>
16233
16234         Reviewed by Kevin Ollivier.
16235
16236         ScrollView copy and paste typo fix.
16237         
16238         https://bugs.webkit.org/show_bug.cgi?id=25445
16239
16240         * platform/wx/ScrollViewWx.cpp:
16241         (WebCore::ScrollView::platformSetScrollbarModes):
16242
16243 2009-04-28  John Sullivan  <sullivan@apple.com>
16244
16245         <rdar://problem/6820221> REGRESSION: 2-byte character names of images are displayed as %-encoded ASCII
16246
16247         Reviewed by Adam Roben
16248
16249         * loader/ImageDocument.cpp:
16250         (WebCore::ImageTokenizer::finish):
16251         decode the filename before processing it as part of the image name that's passed to the client
16252
16253 2009-04-28  Maciej Stachowiak  <mjs@apple.com>
16254
16255         Not reviewed, build fix.
16256
16257         - fix initialization order to match declaration order to fix release build
16258
16259         * page/Settings.cpp:
16260         (WebCore::Settings::Settings):
16261
16262 2009-04-28  Xan Lopez  <xlopez@igalia.com>
16263
16264         Reviewed by Justin Garcia.
16265
16266         https://bugs.webkit.org/show_bug.cgi?id=16135
16267         [GTK] Support caret browsing
16268
16269         Based on a patch by Alp Toker.
16270
16271         Implement basic support for caret browsing, active only when the
16272         corresponding setting is enabled.
16273
16274         * page/EventHandler.cpp:
16275         (WebCore::EventHandler::handleMouseReleaseEvent):
16276         * page/FocusController.cpp:
16277         (WebCore::FocusController::advanceFocus):
16278         (WebCore::clearSelectionIfNeeded):
16279         (WebCore::FocusController::setFocusedNode):
16280         * page/Frame.cpp:
16281         (WebCore::Frame::setFocusedNodeIfNeeded):
16282         (WebCore::Frame::setSelectionFromNone):
16283         (WebCore::Frame::respondToChangedSelection):
16284         * page/Settings.cpp:
16285         (WebCore::Settings::Settings):
16286         * page/Settings.h:
16287         * rendering/RenderBlock.cpp:
16288         (WebCore::RenderBlock::paintCaret):
16289
16290 2009-04-27  Eric Roman  <eroman@chromium.org>
16291
16292         Reviewed by Darin Fisher.
16293
16294         Fix a compile breakage.
16295         <https://bugs.webkit.org/show_bug.cgi?id=25384>
16296
16297         * bindings/v8/custom/V8DOMWindowCustom.cpp:
16298         (WebCore::CALLBACK_FUNC_DECL):
16299
16300 2009-04-27  Eric Carlson  <eric.carlson@apple.com>
16301
16302         Reviewed by Darin Adler.
16303
16304         <rdar://problem/6822344> Use of QTMovieCurrentSizeAttribute generates exception and will crash
16305
16306         QTMovieCurrentSizeAttribute generates an exception with some versions of QTKit, so calculate a 
16307         multiplier to scale from natural size to current size when a movie is opened and use that to 
16308         return the correct value from the naturalSize() method.
16309
16310         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
16311         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
16312         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_scaleFactor.
16313         (WebCore::MediaPlayerPrivate::naturalSize): Return naturalSize transformed by initial scale.
16314         (WebCore::MediaPlayerPrivate::cacheMovieScale): New, calculate difference between initial
16315         size and natural size so naturalSize() accounts for non-identity movie matrix.
16316         (WebCore::MediaPlayerPrivate::updateStates): Call cacheMovieScale when load state reaches
16317         QTMovieLoadStateLoaded for the first time.
16318
16319 2009-04-27  Beth Dakin  <bdakin@apple.com>
16320
16321         Reviewed by Dave Hyatt.
16322
16323         Fix for <rdar://problem/6709057> REGRESSION (4PB-TOT): http://www.winway.com/main3/support/faq.aspx selector doesn't look right or work
16324
16325         The problem here is that we had a self-painting layer nested inside 
16326         a non-self-painting layer. We ended up ignoring the self-painting 
16327         layer both during painting and hit-testing. This patch corrects 
16328         that. 
16329
16330         * rendering/RenderLayer.cpp:
16331         (WebCore::RenderLayer::paintLayer):
16332         (WebCore::RenderLayer::hitTestLayer):
16333
16334 2009-04-27  Ada Chan  <adachan@apple.com>
16335
16336         If it has been set to allow any HTTPS certificates for this host, set 
16337         kCFStreamSSLAllowsExpiredCertificates to true to allow expired 
16338         certificate, and set kCFStreamSSLValidatesCertificateChain false to skip
16339         certificate chain validation. (<rdar://problem/6382059>)
16340
16341         Reviewed by John Sullivan.
16342
16343         * platform/network/cf/ResourceHandleCFNet.cpp:
16344         (WebCore::makeFinalRequest):
16345
16346 2009-04-27  Simon Fraser  <simon.fraser@apple.com>
16347
16348         Reviewed by Adele Peterson
16349         
16350         <rdar://problem/6822225> Full page zooming of <video> element in the browser window doesn't work well
16351         
16352         Fix a 'size changed' notification thrash that caused standalone video elements
16353         to continually resize after full page zooming, by using the movie's natual size (which is independent
16354         of zooming), rather than its current size (which is not).
16355         
16356         Note that this regresses <https://bugs.webkit.org/show_bug.cgi?id=25029>, so we have to
16357         disable the media/video-size-intrinsic-scale.html test. However, we have to stop using
16358         QTMovieCurrentSizeAttribute anyway; this will be addressed, and the test re-enabled via
16359         <rdar://problem/6822344>.
16360
16361         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
16362         (WebCore::MediaPlayerPrivate::naturalSize):
16363
16364 2009-04-27  Simon Fraser  <simon.fraser@apple.com>
16365
16366         Reviewed by Darin Adler
16367
16368         <rdar://problem/6642221> REGRESSION: With the Movie widget, movie trailer fails to
16369         load if movie had been previously viewed
16370         
16371         Fix the Dashboard quirk for display:none plug-ins by moving the code from HTMLObjectElement
16372         to HTMLEmebedElement. It has to be in HTMLEmbedElement because the content we care about uses <embed>.
16373
16374         * html/HTMLEmbedElement.cpp:
16375         (WebCore::HTMLEmbedElement::rendererIsNeeded):
16376         * html/HTMLObjectElement.cpp:
16377         (WebCore::HTMLObjectElement::rendererIsNeeded):
16378
16379 2009-04-27  Sam Weinig  <sam@webkit.org>
16380
16381         Reviewed by Geoffrey Garen.
16382
16383         Move more window event related code into DOMWindow.
16384
16385         * dom/Document.cpp:
16386         (WebCore::Document::implicitClose):
16387         (WebCore::Document::setWindowAttributeEventListener):
16388         (WebCore::Document::dispatchWindowEvent):
16389         (WebCore::Document::dispatchLoadEvent):
16390         * dom/Document.h:
16391         * dom/Element.cpp:
16392         * dom/Element.h:
16393         * dom/Node.cpp:
16394         * dom/Node.h:
16395         * html/HTMLBodyElement.cpp:
16396         (WebCore::HTMLBodyElement::parseMappedAttribute):
16397         * html/HTMLFrameSetElement.cpp:
16398         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
16399         * loader/FrameLoader.cpp:
16400         (WebCore::FrameLoader::stopLoading):
16401         * page/DOMWindow.cpp:
16402         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
16403         (WebCore::DOMWindow::postMessageTimerFired):
16404         (WebCore::DOMWindow::dispatchEvent):
16405         (WebCore::DOMWindow::dispatchEventWithDocumentAsTarget):
16406         (WebCore::DOMWindow::dispatchLoadEvent):
16407         (WebCore::DOMWindow::dispatchUnloadEvent):
16408         (WebCore::DOMWindow::dispatchBeforeUnloadEvent):
16409         * page/DOMWindow.h:
16410         * page/Frame.cpp:
16411         (WebCore::Frame::shouldClose):
16412         * svg/SVGSVGElement.cpp:
16413         (WebCore::SVGSVGElement::parseMappedAttribute):
16414
16415 2009-04-27  Douglas R. Davidson  <ddavidso@apple.com>
16416
16417         Implement the editing mechanisms and add context menu items for
16418         <rdar://problem/6724106> WebViews need to implement text checking
16419
16420         Reviewed by Justin Garcia.
16421
16422         * editing/Editor.cpp:
16423         * editing/Editor.h:
16424         * editing/TypingCommand.cpp:
16425         * loader/EmptyClients.h:
16426         * page/ContextMenuController.cpp:
16427         * page/EditorClient.h:
16428         * page/mac/WebCoreViewFactory.h:
16429         * platform/ContextMenu.cpp:
16430         * platform/ContextMenuItem.h:
16431         * platform/LocalizedStrings.h:
16432         * platform/mac/LocalizedStringsMac.mm:
16433
16434 2009-04-27  Sam Weinig  <sam@webkit.org>
16435
16436         Reviewed by Geoffrey Garen.
16437
16438         Fix for <rdar://problem/6772944> REGRESSION (r42223): PLT 2% slower, i-Bench 3% slower
16439
16440         Be slightly less eager in collecting after page close/navigation by increasing
16441         the time before collection from 0 seconds to .5 seconds.
16442
16443         3% speedup on the PLT.
16444
16445         * bindings/js/GCController.cpp:
16446         (WebCore::GCController::garbageCollectSoon):
16447
16448 2009-04-27  David Kilzer  <ddkilzer@apple.com>
16449
16450         Consolidate runtime application checks for Apple Mail and Safari
16451
16452         Reviewed by Mark Rowe and Darin Adler.
16453
16454         * WebCore.base.exp: Added exports.
16455         * WebCore.xcodeproj/project.pbxproj: Added
16456         RuntimeApplicationChecks.{h|mm} source files to the project.
16457         * page/mac/EventHandlerMac.mm:
16458         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
16459         Removed local checkedSafari and isSafari variables and switched
16460         to use applicationIsSafari().
16461         * platform/mac/RuntimeApplicationChecks.h: Added.
16462         * platform/mac/RuntimeApplicationChecks.mm: Added.
16463         (WebCore::applicationIsAppleMail): Runtime application check for
16464         Apple Mail.
16465         (WebCore::applicationIsSafari): Runtime application check for
16466         Safari.
16467
16468 2009-04-27  Chris Fleizach  <cfleizach@apple.com>
16469
16470         Reviewed by Darin Adler.
16471
16472         Bug 25374: AX: No AXValue change sent when text is auto-inserted
16473         https://bugs.webkit.org/show_bug.cgi?id=25374
16474
16475         First patch caused some regression tests to fail. 
16476
16477         * rendering/RenderTextControl.cpp:
16478         (WebCore::RenderTextControl::setInnerTextValue):
16479
16480 2009-04-16  Xan Lopez  <xlopez@igalia.com>
16481
16482         Reviewed by Gustavo Noronha.
16483
16484         https://bugs.webkit.org/show_bug.cgi?id=21546
16485         [GTK] ATK accessibility enhancements
16486
16487         Based on a patch by Alp Toker.
16488
16489         Cover more WebCore role -> ATK role conversions.
16490
16491         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
16492
16493 2009-04-18  Xan Lopez  <xlopez@igalia.com>
16494
16495         Reviewed by Gustavo Noronha.
16496
16497         https://bugs.webkit.org/show_bug.cgi?id=21546
16498         [GTK] ATK accessibility enhancements
16499
16500         Do not call ATK setters in the getters, just return the
16501         value. Among other things calling the setter will emit the notify
16502         signal, which is wrong.
16503
16504         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
16505
16506 2009-04-16  Xan Lopez  <xlopez@igalia.com>
16507
16508         Reviewed by Gustavo Noronha.
16509
16510         https://bugs.webkit.org/show_bug.cgi?id=21546
16511         [GTK] ATK accessibility enhancements
16512
16513         Based on a patch by Alp Toker.
16514
16515         Implement AtkImage interface.
16516
16517         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
16518
16519 2009-04-27  Gustavo Noronha Silva  <gns@gnome.org>
16520
16521         Unreviewed debug build fix.
16522
16523         * platform/gtk/gtk2drawing.c:
16524         (moz_gtk_toggle_paint):
16525
16526 2009-04-27  Dimitri Glazkov  <dglazkov@chromium.org>
16527
16528         Build fix.
16529
16530         https://bugs.webkit.org/show_bug.cgi?id=25382
16531         Remove direct reference to CallFrame.h include to pacify Win build.
16532
16533         * bindings/js/JSDOMBinding.h: Removed ScriptState.h include.
16534         * bindings/js/ScriptState.h: Replaced CallFrame.h with JSDOMBinding.h
16535
16536 2009-04-27  Chris Fleizach  <cfleizach@apple.com>
16537
16538         Reviewed by Beth Dakin.
16539
16540         Bug 25374: AX: No AXValue change sent when text is auto-inserted
16541         https://bugs.webkit.org/show_bug.cgi?id=25374
16542
16543         When an input's text value is changed through the DOM, no AXValueChange notification is being sent.
16544
16545         * rendering/RenderTextControl.cpp:
16546         (WebCore::RenderTextControl::setInnerTextValue):
16547
16548 2009-04-27  Dimitri Glazkov  <dglazkov@chromium.org>
16549
16550         Reviewed by Eric Seidel.
16551
16552         https://bugs.webkit.org/show_bug.cgi?id=25382
16553         Move scriptStateFromNode to ScriptState.
16554
16555         * bindings/js/JSDOMBinding.cpp: Moved scriptStateFromNode to ScriptState.
16556         * bindings/js/JSDOMBinding.h: Ditto.
16557         * bindings/js/ScriptState.cpp:
16558         (WebCore::scriptStateFromNode): Added.
16559         * bindings/js/ScriptState.h: Ditto.
16560         * bindings/v8/ScriptState.cpp:
16561         (WebCore::scriptStateFromNode): Added.
16562         * bindings/v8/ScriptState.h: Ditto.
16563         * dom/NodeFilter.h: Removed JSDOMBinding header include.
16564         * dom/NodeIterator.h: Ditto.
16565         * dom/TreeWalker.h: Ditto.
16566
16567 2009-04-27  Chris Fleizach  <cfleizach@apple.com>
16568
16569         Reviewed by Beth Dakin.
16570
16571         Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore • -[AccessibilityObjectWrapper accessibilityAttributeValue:] + 830
16572         https://bugs.webkit.org/show_bug.cgi?id=25428
16573
16574         When marking children as changed in accessibility, we cannot rely on the accessibility parent chain existing.
16575         Instead, the render chain needs to be consulted.
16576
16577         * page/AccessibilityRenderObject.cpp:
16578         (WebCore::AccessibilityRenderObject::childrenChanged):
16579
16580 2009-04-27  Alexey Proskuryakov  <ap@webkit.org>
16581
16582         Reviewed by Darin Adler.
16583
16584         https://bugs.webkit.org/show_bug.cgi?id=25399
16585         <rdar://problem/6633943> REGRESSION: Many crashes reported accessing Lexis/Nexis database,
16586         beneath WebCore::Cache::evict
16587
16588         The crash happened because a cached resource handle was removed from a document's cached
16589         resources map twice recursively, so a destructor was called for a value in a deleted bucket.
16590         The first call was from Cache::evict, and when destroying CachedResourceHandle destroyed
16591         CachedResource, DocLoader::removeCachedResource() was called again, with HashMap being in
16592         an inconsistent state.
16593
16594         I couldn't fully reconstruct the loading sequence to make a test.
16595
16596         * loader/Cache.cpp:
16597         (WebCore::Cache::revalidateResource): Assert that the resource being revalidated is in cache
16598         (it makes no sense to revalidate one that isn't).
16599         (WebCore::Cache::evict): Don't remove the resource from document's map. Removing a resource
16600         from the cache in no way implies that documents no longer use the old version. This fixes the
16601         crash, and also fixes many cases of resource content being unavailable in Web Inspector.
16602
16603         * loader/CachedResource.h:
16604         (WebCore::CachedResource::setInCache): When bringing a revalidated resource back to cache,
16605         reset m_isBeingRevalidated to maintain the invariant of resources being revalidated never
16606         being in cache. This fixes another assertion I saw on LexisNexis search: in rare cases,
16607         switchClientsToRevalidatedResource() results in the same resource being requested again,
16608         but we were only enforcing CachedResource invariants after calling this function.
16609         (WebCore::CachedResource::unregisterHandle): Assert that the counter doesn't underflow.
16610
16611         * loader/DocLoader.cpp: (WebCore::DocLoader::removeCachedResource): Assert that the passed
16612         resource is removed, not some other resource that happens to have the same URL (this used to
16613         fail on LexisNexis search before this patch).
16614
16615         * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::write): Replaced ASSERT_NOT_REACHED
16616         with notImplemented(). This method can be legally called via document.write(), and should
16617         work. LexisNexis takes this code path, but apparently has a fallback for Safari, so it
16618         doesn't affect site functionality.
16619
16620         * loader/CachedResource.cpp:
16621         (WebCore::CachedResource::clearResourceToRevalidate): Don't assert that m_resourceToRevalidate
16622         is being revalidated - this may no longer be true, because we now reset this member in
16623         CachedResource::setInCache().
16624
16625 2009-04-27  Dan Bernstein  <mitz@apple.com>
16626
16627         Reviewed by Sam Weinig.
16628
16629         - make BidiContext a RefCounted class, starting with a refcount of 1,
16630           and share the root BidiContexts.
16631
16632         * platform/graphics/GraphicsContext.cpp:
16633         (WebCore::GraphicsContext::drawBidiText): Use BidiContext::create().
16634         * platform/text/BidiContext.cpp:
16635         (WebCore::BidiContext::create): Added. For the four "root" contexts,
16636         returns a reference to a shared static BidiContext.
16637         * platform/text/BidiContext.h:
16638         (WebCore::BidiContext::BidiContext):
16639         * platform/text/BidiResolver.h:
16640         (WebCore::::commitExplicitEmbedding): Use BidiContext::create().
16641         * rendering/bidi.cpp:
16642         (WebCore::RenderBlock::determineStartPosition): Ditto.
16643
16644 2009-04-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
16645
16646         Rubber-stamped by Gustavo Noronha.
16647
16648         Build fix for r42893: change GDK_exclaim to GDK_exclam
16649
16650         * platform/chromium/KeyCodeConversionGtk.cpp:
16651         (WebCore::windowsKeyCodeForKeyEvent):
16652         * platform/gtk/KeyEventGtk.cpp:
16653         (WebCore::windowsKeyCodeForKeyEvent):
16654
16655 2009-04-27  Fumitoshi Ukai  <ukai@google.com>
16656
16657         Reviewed by Xan Lopez.
16658
16659         Fix wrong key code conversion.
16660
16661         Missing conversion for GDK_exlaim ('!').
16662         Parens are opposite: GDK_parenleft is open paren '('
16663         and GDK_parenright is close paren ')'.
16664         https://bugs.webkit.org/show_bug.cgi?id=25367
16665
16666         * platform/chromium/KeyCodeConversionGtk.cpp:
16667         (WebCore::windowsKeyCodeForKeyEvent):
16668         * platform/gtk/KeyEventGtk.cpp:
16669         (WebCore::windowsKeyCodeForKeyEvent):
16670
16671 2009-04-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
16672
16673         Reviewed by Gustavo Noronha.
16674
16675         [Gtk] gtkdrawing update
16676         https://bugs.webkit.org/show_bug.cgi?id=25408
16677
16678         Update to the 25 Apr 2009 version of gtk2drawing.c and
16679         gtkdrawing.h from Mozilla (http://hg.mozilla.org/mozilla-central)
16680
16681         * platform/gtk/gtk2drawing.c:
16682         (setup_widget_prototype):
16683         (moz_gtk_get_combo_box_entry_arrow):
16684         (ensure_toolbar_widget):
16685         (ensure_tree_header_cell_widget):
16686         (moz_gtk_init):
16687         (moz_gtk_button_get_inner_border):
16688         (moz_gtk_toggle_paint):
16689         (moz_gtk_caret_paint):
16690         (moz_gtk_entry_paint):
16691         (moz_gtk_tree_header_cell_paint):
16692         (moz_gtk_combo_box_paint):
16693         (moz_gtk_toolbar_separator_paint):
16694         (moz_gtk_menu_separator_paint):
16695         (moz_gtk_get_widget_border):
16696         (moz_gtk_get_tab_scroll_arrow_size):
16697         (moz_gtk_get_toolbar_separator_width):
16698         (moz_gtk_get_menu_separator_height):
16699         (moz_gtk_widget_paint):
16700         (moz_gtk_shutdown):
16701         * platform/gtk/gtkdrawing.h:
16702
16703 2009-04-27  Ariya Hidayat  <ariya.hidayat@nokia.com>
16704
16705         Reviewed by Tor Arne Vestbø.
16706
16707         https://bugs.webkit.org/show_bug.cgi?id=18475
16708
16709         [Qt] Widget painting should follow the layout direction (LTR, RTL)
16710         of the element style, not the application layout direction.
16711
16712         * platform/qt/RenderThemeQt.cpp:
16713         (WebCore::RenderThemeQt::applyTheme):
16714
16715 2009-04-26  Sam Weinig  <sam@webkit.org>
16716
16717         Reviewed by Dan Bernstein.
16718
16719         Fix for https://bugs.webkit.org/show_bug.cgi?id=25412
16720         The Window object should be an EventTarget
16721
16722         Test: fast/dom/Window/dispatchEvent.html
16723
16724         * bindings/js/JSEventTarget.cpp:
16725         (WebCore::toJS): Add DOMWindow case.
16726         (WebCore::toEventTarget): Ditto.
16727
16728         * dom/EventTarget.cpp:
16729         (WebCore::EventTarget::toDOMWindow): Added.
16730         * dom/EventTarget.h:
16731
16732         * page/DOMWindow.cpp:
16733         (WebCore::DOMWindow::scriptExecutionContext): Added. Returns the document.
16734         (WebCore::DOMWindow::dispatchEvent): Added.
16735         * page/DOMWindow.h:
16736         (WebCore::DOMWindow::toDOMWindow):
16737         (WebCore::DOMWindow::refEventTarget):
16738         (WebCore::DOMWindow::derefEventTarget):
16739         * page/DOMWindow.idl:
16740
16741 2009-04-26  Sam Weinig  <sam@webkit.org>
16742
16743         Reviewed by Eric Seidel.
16744
16745         Remove scons-based build system.
16746
16747         * WebCore.scons: Removed.
16748
16749 2009-04-26  Darin Adler  <darin@apple.com>
16750
16751         Suggested by Darin Fisher.
16752
16753         Improve the fix for bug 25355: Crash when Creating New Tab or New Window when set to open Same Page
16754         https://bugs.webkit.org/show_bug.cgi?id=25355
16755         rdar://problem/6823543
16756
16757         * loader/FrameLoader.cpp:
16758         (WebCore::FrameLoader::loadItem): Allow shouldScroll to be true even if m_currentHistoryItem is 0.
16759         Not sure if when this case can really arise in practice, but it's good to match the original
16760         logic more closely.
16761
16762 2009-04-25  Dirk Schulze  <krit@webkit.org>
16763
16764         Reviewed by Oliver Hunt.
16765
16766         A width or height of zero for the destination or source rect of an
16767         image causes a not invertible pattern matrix.
16768         This crahes newer versions of Cairo and give some graphic gliches in
16769         Canvas.
16770         With this patch we check if there is something to draw and return if not.
16771
16772         * platform/graphics/cairo/ImageCairo.cpp:
16773         (WebCore::BitmapImage::draw):
16774
16775 2009-04-25  Simon Fraser  <simon.fraser@apple.com>
16776
16777         Reviewed by Darin Adler
16778         
16779         https://bugs.webkit.org/show_bug.cgi?id=25390
16780         
16781         Fix point mapping and hit testing through transforms and perspective
16782         with ENABLE_3D_RENDERING. Previously the code did the more efficient
16783         move(), rather than getTransformFromContainer(), when the object had
16784         no transform. However, this skipped the application of perspective
16785         when the immediate child of the perspective element had no transform
16786         itself.
16787
16788         Test: transforms/3d/point-mapping/3d-point-mapping-3.html
16789
16790         * rendering/RenderBox.cpp:
16791         (WebCore::RenderBox::mapLocalToContainer):
16792         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
16793         * rendering/RenderLayer.cpp:
16794         (WebCore::RenderLayer::createLocalTransformState):
16795         Call shouldUseTransformFromContainer() to determine if we need to
16796         go through the more expensive getTransformFromContainer() code
16797         path.
16798
16799         * rendering/RenderObject.h:
16800         * rendering/RenderObject.cpp:
16801         (WebCore::RenderObject::shouldUseTransformFromContainer):
16802         New method that indicates whether we need use getTransformFromContainer()
16803         when mapping points through renderers, and hit testing.
16804
16805 2009-04-25  Adele Peterson  <adele@apple.com>
16806
16807         Reviewed by Oliver Hunt.
16808
16809         Fix for <rdar://problem/6712771> REGRESSION(34681): Text is no longer underlined after delete
16810         https://bugs.webkit.org/show_bug.cgi?id=25396
16811
16812         Test: editing/deleting/delete-br-013.html
16813
16814         * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs):
16815          Only preserve an empty paragraph's style when moving paragraphs around if the selection is still 
16816          in an empty paragraph after the move occurs.  This was causing the empty paragraph's style to overwrite
16817          the previous paragraph's style during a delete of an empty paragraph.
16818
16819 2009-04-25  Eric Carlson  <eric.carlson@apple.com>
16820
16821         Reviewed by Darin Adler.
16822
16823         <rdar://problem/6808171> REGRESSION (3-4): Standalone media documents don't 
16824         properly display non-linear media
16825
16826         If a media engine claims it can support the MIME type, WebCore now creates a <video>
16827         element for document mode media files instead of an <embed> element. Because WebCore's 
16828         QuickTime backed media players do not support every kind of media the QuickTime plug-in
16829         supports, and because it is not always possible to tell what type of media is in a file 
16830         without opening and parsing it, some types of media that used to be displayed properly
16831         by a plug-in are no longer supported properly. To fix this, if the media engine
16832         sees that it can not completely support a media file it now informs the media 
16833         document, which replaces the <video> element with an <embed>.
16834         
16835         r42301 landed support for OSX. This patch modifies those changes slighly and adds support
16836         for Windows.
16837
16838         * loader/MediaDocument.cpp:
16839         (WebCore::MediaDocument::MediaDocument): Initialize m_replaceMediaElementTimer.
16840         (WebCore::MediaDocument::mediaElementSawUnsupportedTracks): Don't replace the <video> 
16841         element immediately.
16842         (WebCore::MediaDocument::replaceMediaElementTimerFired): Renamed from replaceVideoWithEmbed.
16843         Set body margin-width and margin-height to 0 as that is what a PluginDocument uses.
16844         * loader/MediaDocument.h:
16845
16846         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
16847         (WebCore::MediaPlayerPrivate::loadStateChanged): Don't do anything if m_hasUnsupportedTracks.
16848         (WebCore::MediaPlayerPrivate::rateChanged): Ditto.
16849         (WebCore::MediaPlayerPrivate::timeChanged): Ditto.
16850         (WebCore::MediaPlayerPrivate::didEnd): Ditto.
16851         (WebCore::MediaPlayerPrivate::repaint): Ditto.
16852         (WebCore::MediaPlayerPrivate::paint): Ditto.
16853         (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): Set m_hasUnsupportedTracks before callback.
16854
16855         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
16856         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_totalTrackCount and m_hasUnsupportedTracks.
16857         (WebCore::MediaPlayerPrivate::updateStates): Call sawUnsupportedTracks if the movie has unsupported
16858         media type(s) or if it fails completely.
16859         (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): New, disable the movie object and tell the
16860         media player client we won't play this movie correctly.
16861         (WebCore::MediaPlayerPrivate::didEnd): Don't do anything if m_hasUnsupportedTracks.
16862         (WebCore::MediaPlayerPrivate::setSize): Ditto.
16863         (WebCore::MediaPlayerPrivate::setVisible): Ditto.
16864         (WebCore::MediaPlayerPrivate::paint): Ditto.
16865         (WebCore::MediaPlayerPrivate::movieEnded): Ditto.
16866         (WebCore::MediaPlayerPrivate::movieLoadStateChanged): Ditto.
16867         (WebCore::MediaPlayerPrivate::movieTimeChanged): Ditto.
16868         (WebCore::MediaPlayerPrivate::movieNewImageAvailable): Ditto.
16869         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
16870
16871         * platform/graphics/win/QTMovieWin.cpp:
16872         (QTMovieWinPrivate::task): Stop the task timer if we were disabled during the load state
16873         change callback.
16874         (QTMovieWinPrivate::drawingComplete): Don't do anything if disabled.
16875         (QTMovieWin::QTMovieWin): Initialize m_disabled.
16876         (QTMovieWin::disableUnsupportedTracks): Return total number of tracks.
16877         (QTMovieWin::setDisabled): New, set m_disabled flag.
16878         * platform/graphics/win/QTMovieWin.h:
16879
16880 2009-04-25  Jan Michael Alonzo  <jmalonzo@webkit.org>
16881
16882         Reviewed by Xan Lopez.
16883
16884         [GTK] Error reporting
16885         https://bugs.webkit.org/show_bug.cgi?id=18344
16886
16887         Fix the SOUP resource handle to report SOUP_HTTP_ERROR for Soup
16888         errors and G_IO_ERROR for gio errors.
16889
16890         * platform/network/soup/ResourceHandleSoup.cpp:
16891         (WebCore::finishedCallback):
16892         (WebCore::ResourceHandle::startHttp):
16893         (WebCore::ResourceHandle::start):
16894         (WebCore::readCallback):
16895         (WebCore::openCallback):
16896         (WebCore::queryInfoCallback):
16897         (WebCore::ResourceHandle::startGio):
16898
16899 2009-04-25  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
16900
16901         Reviewed by Mark Rowe.
16902
16903         Only set the new URL once for the request. Doing it a second time
16904         after the call to willSendRequest was causing crashes when
16905         redirected requests got cancelled.
16906
16907         * platform/network/soup/ResourceHandleSoup.cpp:
16908         (WebCore::restartedCallback):
16909
16910 2009-04-24  Kevin Ollivier  <kevino@theolliviers.com>
16911
16912         wx build fix. Adding ScriptEventListener.cpp.
16913
16914         * WebCoreSources.bkl:
16915
16916 2009-04-24  Sergio García-Cuevas  <sergio_gcg@telefonica.net>
16917
16918         Reviewed by Gustavo Noronha.
16919
16920         https://bugs.webkit.org/show_bug.cgi?id=17267
16921         [GTK] Primary selection/clipboard support
16922
16923         Copy the link location to the primary selection as well as the
16924         clipboard selection when using the "copy link selection" context
16925         menu entry.
16926
16927         * platform/gtk/PasteboardGtk.cpp:
16928         (WebCore::Pasteboard::writeURL):
16929         * platform/gtk/PasteboardHelper.h:
16930
16931 2009-04-24  Eric Seidel  <eric@webkit.org>
16932
16933         Reviewed by Simon Fraser.
16934
16935         https://bugs.webkit.org/show_bug.cgi?id=25383
16936         Changing SVG size via JS does not update CSS width/height
16937
16938         Add an ugly hack to fix CSS width/height updates from JS.
16939
16940         We can't easily call setAttribute when width/height changes
16941         as that would cause infinite recursion (as we'd try to set
16942         the animation storage from the attributes)
16943
16944         For now, when we get notification that JS changed width/height
16945         we copy what parseMappedAttribute does and update the CSS values as well.
16946
16947         A better fix for this would be:
16948         https://bugs.webkit.org/show_bug.cgi?id=25383
16949
16950         * svg/SVGSVGElement.cpp:
16951         (WebCore::updateCSSForAttribute):
16952         (WebCore::SVGSVGElement::svgAttributeChanged):
16953
16954 2009-04-24  Kevin McCullough  <kmccullough@apple.com>
16955
16956         Reviewed by Dan Bernstein.
16957
16958         We should not show the deletion UI for blockquotes in mail but they do 
16959         show now that we only check for one visible border.
16960
16961         * editing/DeleteButtonController.cpp:
16962         (WebCore::isDeletableElement):
16963
16964 2009-04-24  Dan Bernstein  <mitz@apple.com>
16965
16966         - address Hyatt's review comments on the last patch
16967
16968         * rendering/RenderLayer.cpp:
16969         (WebCore::performOverlapTests):
16970         (WebCore::RenderLayer::paintLayer):
16971
16972 2009-04-24  Dan Bernstein  <mitz@apple.com>
16973
16974         Reviewed by Dave Hyatt.
16975
16976         - fix https://bugs.webkit.org/show_bug.cgi?id=5909
16977           <rdar://problem/5863349> overlapping element leaves trail when
16978           scrolling iframe
16979
16980         * WebCore.xcodeproj/project.pbxproj: Added OverlapTestRequestClient.h.
16981
16982         * page/FrameView.cpp:
16983         (WebCore::FrameView::reset): Initialize m_isOverlapped.
16984         (WebCore::FrameView::useSlowRepaints): Also check m_isOverlapped.
16985         (WebCore::FrameView::removeSlowRepaintObject): Use useSlowRepaints()
16986         so overlapping is taken into account.
16987         (WebCore::FrameView::setIsOverlapped): Added. Sets m_isOverlapped and
16988         enables or disables copy-on-scroll accordingly.
16989
16990         * page/FrameView.h:
16991         Added setIsOverlapped() and m_isOverlapped.
16992
16993         * rendering/OverlapTestRequestClient.h: Added. During foreground painting,
16994         an OverlapTestRequestClient can make a request to test if any subsequently-
16995         painted layers overlap a rect. The test result is delivered to the
16996         requestClient via setOverlapTestResult().
16997         (WebCore::OverlapTestRequestClient::~OverlapTestRequestClient):
16998
16999         * rendering/RenderLayer.cpp:
17000         (WebCore::RenderLayer::paint): Pass an OverlapTestRequestMap to
17001         paintLayer(). When done painting, inform any remaining requestClients that
17002         they are not overlapped.
17003
17004         (WebCore::RenderLayer::paintLayer): Take an OverlapTestRequestMap and
17005         pass it down to child and reflection layers. Inform requestClients if this
17006         layer overlaps their requested rects.
17007
17008         * rendering/RenderLayer.h:
17009
17010         * rendering/RenderObject.h:
17011         (WebCore::RenderObject::PaintInfo::PaintInfo): Added an
17012         OverlapTestRequestMap member.
17013
17014         * rendering/RenderReplica.cpp:
17015         (WebCore::RenderReplica::paint): For now, pass a 0 OverlapTestRequestMap
17016         to paintLayer().
17017
17018         * rendering/RenderWidget.cpp:
17019         (WebCore::RenderWidget::paint): For FrameViews, request an overlap test
17020         with the frame.
17021         (WebCore::RenderWidget::setOverlapTestResult): Call
17022         FrameView::setIsOverlapped() with the result of the overlap test.
17023
17024         * rendering/RenderWidget.h: Made RenderWidget an OverlapTestRequestClient.
17025
17026 2009-04-24  David Hyatt  <hyatt@apple.com>
17027
17028         Reviewed by Simon Fraser, Dan Bernstein.
17029
17030         Speed up the PLT by devirtualizing the height() function on InlineBox.  virtualizing it in order to make the height() computation dynamic caused
17031         a ~0.5% slowdown.  This patch does the following to get the speed back:
17032         
17033         (a) Devirtualizes isText and forces inline box creators to set the bit as needed.  This actually resulted in simplified code, since ListMarkerBox could
17034         then be removed.
17035         (b) Reduces the height() call count.  In some cases the code was repeatedly calling height(), which used to be fine when the function was just an inline
17036         member variable access.  The call sites have been patched to cut down on extra height() calls now that it is more expensive.
17037         (c) Devirtualize height() except on SVG boxes.  For all non-SVG, the height() function on InlineBox handles the computation.  For SVG boxes, a new bit has
17038         been set on InlineBoxes (isSVG()) that indicates that the virtual svgBoxHeight() function should be called to retrieve the height instead.
17039
17040         * GNUmakefile.am:
17041         * WebCore.pro:
17042         * WebCore.vcproj/WebCore.vcproj:
17043         * WebCore.xcodeproj/project.pbxproj:
17044         * WebCoreSources.bkl:
17045         * rendering/InlineBox.cpp:
17046         (WebCore::InlineBox::height):
17047         * rendering/InlineBox.h:
17048         (WebCore::InlineBox::InlineBox):
17049         (WebCore::InlineBox::isSVG):
17050         (WebCore::InlineBox::setIsSVG):
17051         (WebCore::InlineBox::isText):
17052         (WebCore::InlineBox::setIsText):
17053         (WebCore::InlineBox::svgBoxHeight):
17054         * rendering/InlineFlowBox.cpp:
17055         (WebCore::InlineFlowBox::placeBoxesVertically):
17056         (WebCore::InlineFlowBox::paintBoxDecorations):
17057         (WebCore::InlineFlowBox::paintMask):
17058         * rendering/InlineFlowBox.h:
17059         * rendering/InlineTextBox.cpp:
17060         * rendering/InlineTextBox.h:
17061         * rendering/ListMarkerBox.cpp: Removed.
17062         * rendering/ListMarkerBox.h: Removed.
17063         * rendering/RenderListMarker.cpp:
17064         (WebCore::RenderListMarker::createInlineBox):
17065         * rendering/RenderSVGInline.cpp:
17066         (WebCore::RenderSVGInline::createFlowBox):
17067         * rendering/RenderSVGInlineText.cpp:
17068         (WebCore::RenderSVGInlineText::createTextBox):
17069         * rendering/RenderSVGText.cpp:
17070         (WebCore::RenderSVGText::createRootBox):
17071         * rendering/RenderText.cpp:
17072         (WebCore::RenderText::createInlineTextBox):
17073         * rendering/RootInlineBox.cpp:
17074         * rendering/RootInlineBox.h:
17075         * rendering/SVGInlineFlowBox.h:
17076         (WebCore::SVGInlineFlowBox::svgBoxHeight):
17077         * rendering/SVGInlineTextBox.h:
17078         (WebCore::SVGInlineTextBox::svgBoxHeight):
17079         * rendering/SVGRootInlineBox.h:
17080         (WebCore::SVGRootInlineBox::svgBoxHeight):
17081
17082 2009-04-24  Dimitri Glazkov  <dglazkov@chromium.org>
17083
17084         Reviewed by Eric Seidel.
17085
17086         https://bugs.webkit.org/show_bug.cgi?id=25370
17087         Introduce ScriptEventListener to refactor away direct references to
17088         JSLazyEventListener in WebCore code.
17089
17090         * GNUmakefile.am: Added ScriptEventListener to project.
17091         * WebCore.pro: Ditto.
17092         * WebCore.vcproj/WebCore.vcproj: Ditto.
17093         * WebCore.xcodeproj/project.pbxproj: Ditto.
17094         * bindings/js/JSDOMGlobalObject.cpp: Removed unused JSLazyEventListener include.
17095         * bindings/js/JSLazyEventListener.cpp: Moved createAttributeEventListener helpers
17096             to ScriptEventListener.
17097         * bindings/js/JSLazyEventListener.h: Ditto.
17098         * bindings/js/ScriptController.cpp: Removed unused JSLazyEventListener include.
17099         * bindings/js/ScriptEventListener.cpp: Added.
17100         * bindings/js/ScriptEventListener.h: Added.
17101         * bindings/v8/ScriptEventListener.cpp: Added.
17102         * bindings/v8/ScriptEventListener.h: Added.
17103         * dom/Document.cpp: Renamed JSLazyEventListener include to ScriptEventListener.
17104         * html/HTMLBodyElement.cpp: Ditto.
17105         * html/HTMLButtonElement.cpp: Ditto.
17106         * html/HTMLElement.cpp: Ditto.
17107         * html/HTMLFormElement.cpp: Ditto.
17108         * html/HTMLFrameElementBase.cpp: Ditto.
17109         * html/HTMLFrameSetElement.cpp: Ditto.
17110         * html/HTMLImageElement.cpp: Ditto.
17111         * html/HTMLInputElement.cpp: Ditto.
17112         * html/HTMLObjectElement.cpp: Ditto.
17113         * html/HTMLScriptElement.cpp: Ditto.
17114         * html/HTMLSelectElement.cpp: Ditto.
17115         * html/HTMLTextAreaElement.cpp: Ditto.
17116         * svg/SVGElement.cpp: Ditto.
17117         * svg/SVGSVGElement.cpp: Ditto.
17118
17119 2009-04-24  Darin Adler  <darin@apple.com>
17120
17121         Reviewed by Sam Weinig.
17122
17123         Bug 25355: Crash when Creating New Tab or New Window when set to open Same Page
17124         https://bugs.webkit.org/show_bug.cgi?id=25355
17125         rdar://problem/6823543
17126
17127         * loader/FrameLoader.cpp:
17128         (WebCore::FrameLoader::loadItem): Added a null check.
17129
17130 2009-04-24  Eric Seidel  <eric@webkit.org>
17131
17132         Reviewed by Simon Fraser.
17133
17134         Fix RenderSVGImage to dump with full bounds and style information.
17135         https://bugs.webkit.org/show_bug.cgi?id=25377
17136         
17137         No functional changes, we're just now including more info in render tree dumps.
17138
17139         * rendering/RenderObject.h:
17140         (WebCore::RenderObject::isSVGImage):
17141         * rendering/RenderSVGImage.h:
17142         (WebCore::RenderSVGImage::isSVGImage):
17143         * rendering/RenderTreeAsText.cpp:
17144         (WebCore::write):
17145         * rendering/SVGRenderTreeAsText.cpp:
17146         (WebCore::operator<<):
17147         (WebCore::write):
17148         * rendering/SVGRenderTreeAsText.h:
17149
17150 2009-04-24  David Levin  <levin@chromium.org>
17151
17152         Reviewed by NOBODY (chromium build fix).
17153
17154         Rename "isInline" => "isAttribute" in v8 bindings (jsc was done in r42699).
17155
17156         * bindings/v8/V8AbstractEventListener.cpp:
17157         (WebCore::V8AbstractEventListener::V8AbstractEventListener):
17158         (WebCore::V8AbstractEventListener::invokeEventHandler):
17159         * bindings/v8/V8AbstractEventListener.h:
17160         * bindings/v8/V8EventListenerList.cpp:
17161         (WebCore::V8EventListenerList::add):
17162         (WebCore::V8EventListenerList::remove):
17163         (WebCore::V8EventListenerList::clear):
17164         * bindings/v8/V8LazyEventListener.h:
17165         (WebCore::V8LazyEventListener::virtualisAttribute):
17166         * bindings/v8/custom/V8CustomEventListener.cpp:
17167         (WebCore::V8EventListener::V8EventListener):
17168         * bindings/v8/custom/V8CustomEventListener.h:
17169         (WebCore::V8EventListener::create):
17170         (WebCore::V8EventListener::virtualisAttribute):
17171
17172 2009-04-24  Nate Chapin  <japhet@google.com>
17173
17174         Reviewed by Dimitri Glazkov.
17175
17176         https://bugs.webkit.org/show_bug.cgi?id=25343
17177         Fix Chromium/Skia bug where -webkit-box-shadow with 0,0 offset 
17178         ignores blur.
17179
17180         * WebCore\platform\graphics\skia\GraphicsContextSkia.cpp
17181          (WebCore::GraphicsContext::setPlatformShadow): Add check against
17182          blur before clearing looper.
17183
17184 2009-04-24  Eric Roman  <eroman@chromium.org>
17185
17186         Reviewed by Darin Adler.
17187
17188         Initialize TextIterator::m_textLength to 0.
17189
17190         This assures that TextIterator::length() will return 0 for cases when TextIterator's constructor returns early (because there is nothing to iterate over in the range).
17191
17192         <https://bugs.webkit.org/show_bug.cgi?id=25335>
17193
17194         Test: editing/selection/doubleclick-whitespace-img-crash.html
17195
17196         * editing/TextIterator.cpp:
17197         (WebCore::TextIterator::TextIterator):
17198
17199 2009-04-24  Fumitoshi Ukai  <ukai@google.com>
17200
17201         Reviewed by Dimitri Glazkov.
17202
17203         https://bugs.webkit.org/show_bug.cgi?id=25329
17204         Add indexed access method in v8 binding of ClientRectList.
17205
17206         * bindings/v8/custom/V8ClientRectListCustom.cpp: Added.
17207
17208 2009-04-24  Fumitoshi Ukai  <ukai@google.com>
17209
17210         Reviewed by Dimitri Glazkov.
17211
17212         https://bugs.webkit.org/show_bug.cgi?id=25257
17213         Use null for unspecified event listener attributes of XMLHttpRequest
17214         and XMLHttpRequestUpload in v8 binding.
17215
17216         cf. http://www.whatwg.org/specs/web-apps/current-work/#event-handler-attributes
17217         An event handler attribute, unless otherwise specified, can either
17218         have the value null or be set to a Function object.
17219         Initially, an event handler attribute must be set to null.
17220
17221         Test: fast/xmlhttprequest/xmlhttprequest-default-attributes.html
17222
17223         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
17224         (WebCore::ACCESSOR_GETTER): Changed to use v8::Null().
17225         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
17226         (WebCore::ACCESSOR_GETTER): Ditto.
17227
17228 2009-04-24  Darin Adler  <darin@apple.com>
17229
17230         Reviewed by Adam Roben.
17231
17232         <rdar://problem/6663836> CrashTracer: crashes in Safari at com.apple.WebCore • WebCore::reportException + 1513
17233
17234         * bindings/js/JSDOMBinding.cpp:
17235         (WebCore::reportException): Added a null check.
17236
17237 2009-04-24  Simon Fraser  <simon.fraser@apple.com>
17238
17239         Reviewed by Darin Adler
17240         
17241         https://bugs.webkit.org/show_bug.cgi?id=23219
17242
17243         Add support for transtions and animations of background-position, -webkit-background-size,
17244         -webkit-mask-position and -webkit-mask-size.
17245
17246         Tests: transitions/background-transitions.html
17247                transitions/mask-transitions.html
17248
17249         * page/animation/AnimationBase.cpp:
17250         (WebCore::blendFunc):
17251         Add a blend func for LengthSize.
17252         
17253         (WebCore::ensurePropertyMap):
17254         Add wrappers for the new properties.
17255         
17256         (WebCore::addShorthandProperties):
17257         Add a shorthand property for CSSPropertyBackgroundPosition to map to
17258         CSSPropertyBackgroundPositionX and CSSPropertyBackgroundPositionY, 
17259         add CSSPropertyWebkitMask for CSSPropertyWebkitMaskPosition, and add
17260         CSSPropertyWebkitMaskPosition for CSSPropertyWebkitMaskPositionX and
17261         CSSPropertyWebkitMaskPositionY.
17262         
17263         * rendering/style/RenderStyle.h:
17264         (WebCore::InheritedFlags::setBackgroundXPosition):
17265         (WebCore::InheritedFlags::setBackgroundYPosition):
17266         (WebCore::InheritedFlags::setBackgroundSize):
17267         (WebCore::InheritedFlags::setMaskXPosition):
17268         (WebCore::InheritedFlags::setMaskYPosition):
17269         (WebCore::InheritedFlags::setMaskSize):
17270         Add setters for the properties that can be animated now.
17271
17272 2009-04-24  Adele Peterson  <adele@apple.com>
17273
17274         Reviewed by Darin Adler.
17275
17276         Fix for <rdar://problem/5089327> Newline gets stripped when pasting whole lines in certain markup
17277
17278         Test: editing/pasteboard/paste-blockquote-after-blockquote.html
17279
17280         When we have matching quote levels, its ok to merge the starts of the inserted and existing blocks more frequently.
17281         But we should only merge here if the selection start was inside a mail blockquote.  This prevents against removing a 
17282         blockquote from newly pasted quoted content that was pasted into an unquoted position.  If that unquoted position happens 
17283         to be right after another blockquote, we don't want to merge and risk stripping a valid block (and newline) from the pasted content.
17284
17285         * editing/ReplaceSelectionCommand.cpp:
17286         (WebCore::ReplaceSelectionCommand::shouldMergeStart): Also added an early return to always return false when we're already moving paragraphs.
17287         (WebCore::ReplaceSelectionCommand::doApply): Removed redundant check for when we're moving paragraphs.
17288         * editing/ReplaceSelectionCommand.h:
17289
17290 2009-04-23  Francisco Tolmasky  <francisco@280north.com>
17291
17292         BUG 24604: WebKit profiler reports incorrect total times
17293         <https://bugs.webkit.org/show_bug.cgi?id=24604>
17294
17295         Reviewed by Timothy Hatcher and Kevin McCullough.
17296
17297         Made it so that most of the profiler functions now match the behavior of Shark. Most notably, in the
17298         heavy view, child nodes now represent the statistics of the root node. Each root node of heavy view
17299         displays flattened statistics for a particular function that ran during the profile, and each child
17300         of these root nodes represents a callpath that lead to it. Thus, the statistics for each of these child
17301         nodes should show how much of the root nodes values came from it. For example, if you had the following to
17302         stacks take place during the profile:
17303
17304         A ->calls 1 times-> B ->calls 2 times-> C
17305         D ->calls 4 times-> C
17306
17307         The tree for the C root node would look like this:
17308
17309         C -> B -> A
17310           -> D
17311
17312         The number of calls values would look like this:
17313
17314         C (6) -> B (2) -> A(2)
17315               -> D (4)
17316
17317         What this means is that "2 of the total 6 C calls came from B", "2 of the total C calls came from A", and
17318         "4 of the total C calls came from D".  Notice that the "A ->calls 2 time->" is completely ignored. This becomes
17319         particularly tricky during recursive calls, because each child note can represent multiple possible paths. This
17320         is the reason that we would get things like 40000% previously with recursion.
17321
17322         This is also the way gprof works, and as close as we can get to Shark's behavior (Shark is not instrumented so it
17323         can't know exactly how many calls came from where, etc).
17324
17325         * English.lproj/localizedStrings.js: Added "Average" for average times in the profile.
17326         * inspector/JavaScriptProfile.cpp:
17327         (WebCore::ProfileClass):
17328         * inspector/JavaScriptProfileNode.cpp:
17329         (WebCore::getParent):
17330         (WebCore::getHead):
17331         (WebCore::getCallUID):
17332         (WebCore::ProfileNodeClass):
17333         * inspector/front-end/BottomUpProfileDataGridTree.js: Added.
17334         (WebInspector.BottomUpProfileDataGridTree):
17335         (WebInspector.BottomUpProfileDataGridTree.prototype.focus):
17336         (WebInspector.BottomUpProfileDataGridNode):
17337         (WebInspector.BottomUpProfileDataGridNode.prototype._takePropertiesFromProfileDataGridNode):
17338         (WebInspector.BottomUpProfileDataGridNode.prototype._keepOnlyChild):
17339         (WebInspector.BottomUpProfileDataGridNode.prototype._exclude):
17340         (WebInspector.BottomUpProfileDataGridNode.prototype._merge):
17341         (WebInspector.BottomUpProfileDataGridNode.prototype._populate):
17342         * inspector/front-end/DataGrid.js:
17343         (WebInspector.DataGrid.prototype.insertChild):
17344         (WebInspector.DataGrid.prototype.removeChild):
17345         (WebInspector.DataGrid.prototype.removeChildren):
17346         (WebInspector.DataGridNode.prototype.set hasChildren):
17347         (WebInspector.DataGridNode.prototype.get hasChildren):
17348         * inspector/front-end/ProfileDataGridTree.js: Added.
17349         (WebInspector.ProfileDataGridNode):
17350         (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
17351         (WebInspector.ProfileDataGridNode.prototype.get data):
17352         (WebInspector.ProfileDataGridNode.prototype.createCell):
17353         (WebInspector.ProfileDataGridNode.prototype.select):
17354         (WebInspector.ProfileDataGridNode.prototype.deselect):
17355         (WebInspector.ProfileDataGridNode.prototype.expand):
17356         (WebInspector.ProfileDataGridNode.prototype.insertChild):
17357         (WebInspector.ProfileDataGridNode.prototype.removeChild):
17358         (WebInspector.ProfileDataGridNode.prototype.removeChildren):
17359         (WebInspector.ProfileDataGridNode.prototype.findChild):
17360         (WebInspector.ProfileDataGridNode.prototype.get averageTime):
17361         (WebInspector.ProfileDataGridNode.prototype.get averagePercent):
17362         (WebInspector.ProfileDataGridNode.prototype.get selfPercent):
17363         (WebInspector.ProfileDataGridNode.prototype.get totalPercent):
17364         (WebInspector.ProfileDataGridNode.prototype._save):
17365         (WebInspector.ProfileDataGridNode.prototype._restore):
17366         (WebInspector.ProfileDataGridNode.prototype._merge):
17367         (WebInspector.ProfileDataGridTree):
17368         (WebInspector.ProfileDataGridTree.prototype.get expanded):
17369         (WebInspector.ProfileDataGridTree.prototype.appendChild):
17370         (WebInspector.ProfileDataGridTree.prototype.insertChild):
17371         (WebInspector.ProfileDataGridTree.prototype.removeChildren):
17372         (WebInspector.ProfileDataGridTree.prototype.findChild.WebInspector.ProfileDataGridNode.prototype.findChild.sort.WebInspector.ProfileDataGridNode.prototype.sort._save):
17373         (WebInspector.ProfileDataGridTree.propertyComparator.comparator):
17374         (WebInspector.ProfileDataGridTree.propertyComparator.else.comparator):
17375         (WebInspector.ProfileDataGridTree.propertyComparator):
17376         * inspector/front-end/ProfileView.js:
17377         (WebInspector.ProfileView):
17378         (WebInspector.ProfileView.prototype.set profile):
17379         (WebInspector.ProfileView.prototype.get bottomUpProfileDataGridTree):
17380         (WebInspector.ProfileView.prototype.get topDownProfileDataGridTree):
17381         (WebInspector.ProfileView.prototype.get currentTree):
17382         (WebInspector.ProfileView.prototype.set currentTree):
17383         (WebInspector.ProfileView.prototype.get topDownTree):
17384         (WebInspector.ProfileView.prototype.get bottomUpTree):
17385         (WebInspector.ProfileView.prototype.refresh):
17386         (WebInspector.ProfileView.prototype.refreshVisibleData):
17387         (WebInspector.ProfileView.prototype.refreshShowAsPercents):
17388         (WebInspector.ProfileView.prototype.performSearch.matchesQuery):
17389         (WebInspector.ProfileView.prototype.performSearch):
17390         (WebInspector.ProfileView.prototype._changeView):
17391         (WebInspector.ProfileView.prototype._focusClicked):
17392         (WebInspector.ProfileView.prototype._excludeClicked):
17393         (WebInspector.ProfileView.prototype._resetClicked):
17394         (WebInspector.ProfileView.prototype._sortProfile):
17395         * inspector/front-end/ProfilesPanel.js:
17396         (WebInspector.ProfilesPanel.prototype.showProfile):
17397         (WebInspector.ProfilesPanel.prototype.showView):
17398         (WebInspector.ProfilesPanel.prototype.searchMatchFound):
17399         * inspector/front-end/TopDownProfileDataGridTree.js: Added.
17400         (WebInspector.TopDownProfileDataGridNode):
17401         (WebInspector.TopDownProfileDataGridNode.prototype._populate):
17402         (WebInspector.TopDownProfileDataGridNode.prototype._exclude):
17403         (WebInspector.TopDownProfileDataGridTree):
17404         (WebInspector.TopDownProfileDataGridTree.prototype.focus):
17405         (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
17406         * inspector/front-end/WebKit.qrc:
17407         * inspector/front-end/inspector.css:
17408         * inspector/front-end/inspector.html:
17409
17410 2009-04-23  Eric Seidel  <eric@webkit.org>
17411
17412         Reviewed by Sam Weinig.
17413
17414         Use static functions (and a couple templates)
17415         to further reduce the amount of copy/paste code in SVGRenderTreeAsText
17416
17417         No test changes, only code cleanup.
17418
17419         * rendering/SVGRenderTreeAsText.cpp:
17420         (WebCore::writeNameValuePair):
17421         (WebCore::writeNameAndQuotedValue):
17422         (WebCore::writeIfNotEmpty):
17423         (WebCore::writeIfNotDefault):
17424         (WebCore::writeStyle):
17425         (WebCore::writePositionAndStyle):
17426         (WebCore::operator<<):
17427
17428 2009-04-23  Eric Seidel  <eric@webkit.org>
17429
17430         Reviewed by Simon Fraser.
17431
17432         SVGRenderTreeAsText cleanup/code sharing.
17433
17434         No test changes, only code cleanup.
17435
17436         * rendering/RenderText.cpp:
17437         (WebCore::RenderText::firstRunOrigin):
17438         * rendering/RenderText.h:
17439         * rendering/SVGRenderTreeAsText.cpp:
17440         (WebCore::writeStandardPrefix):
17441         (WebCore::writeChildren):
17442         (WebCore::write):
17443         (WebCore::writeRenderResources):
17444
17445 2009-04-23  Beth Dakin  <bdakin@apple.com>
17446
17447         Reviewed by Darin Adler.
17448
17449         WebCore part of fix for <rdar://problem/6333461> REGRESSION 
17450         (r36864-r36869): Dragging stocks widget scrollbar drags the whole 
17451         widget
17452
17453         * platform/Scrollbar.h:
17454         (WebCore::Scrollbar::isScrollbar):
17455         * platform/Widget.h:
17456         (WebCore::Widget::isScrollbar):
17457
17458 2009-04-23  Kevin McCullough  <kmccullough@apple.com>
17459
17460         Reviewed by Adam Roben.
17461
17462         <rdar://problem/6808109> "Deletion UI" is not available for many
17463         portions of HTML content
17464
17465         This patch makes the deletion UI show up in some new situations:
17466         1) If a block's background color is different from its parent's
17467         2) If a block has a background image.
17468         3) If a block has a single visible border.
17469         However the block must now not only be at least a minimum width and
17470         height, but also exceed a minimum area.  In practice this has led to
17471         much better element selection. 
17472
17473         * editing/DeleteButtonController.cpp:
17474         (WebCore::isDeletableElement):
17475
17476 2009-04-23  Kevin Ollivier  <kevino@theolliviers.com>
17477
17478         wx build fix. Adding XMLTokenizerScope.cpp to the build.
17479
17480         * WebCoreSources.bkl:
17481
17482 2009-04-23  Adele Peterson  <adele@apple.com>
17483
17484         Reviewed by Darin Adler.
17485
17486         Fix for <rdar://problem/6788905> REGRESSION (41928?): hang in Position::upstream
17487         https://bugs.webkit.org/show_bug.cgi?id=25312
17488
17489         I was unable to reproduce the problem, but I'm pretty sure this will fix it.
17490
17491         * rendering/RenderObject.cpp: (WebCore::RenderObject::createVisiblePosition):
17492         Since VisiblePosition doesn't ensure the offset is good, we shouldn't pass max int as an offset.
17493
17494 2009-04-23  Dimitri Glazkov  <dglazkov@chromium.org>
17495
17496         Reviewed by Darin Adler.
17497
17498         https://bugs.webkit.org/show_bug.cgi?id=25313
17499         Missing scroll bars in GMail.
17500
17501         Test: fast/overflow/overflow-y-scroll.html
17502
17503         * platform/ScrollView.cpp:
17504         (WebCore::ScrollView::updateScrollbars): Added check for the ScrollbarAlwaysOn
17505         scroll mode.
17506
17507 2009-04-23  Dan Bernstein  <mitz@apple.com>
17508
17509         Reviewed by Justin Garcia.
17510
17511         - fix <rdar://problem/6081309> Mail crash when pressing down arrow in
17512           some messages in WebCore::canHaveChildrenForEditing
17513
17514         Test: editing/selection/extend-by-line-anonymous-content-crash.html
17515
17516         * editing/visible_units.cpp:
17517         (WebCore::previousLinePosition): Null-check node. If p is not an
17518         editable position, then closestLeafChildForXPos() may have returned a
17519         non-editable box, and in particular one belonging to anonymous content.
17520         If node is 0, fall back on RenderObject::positionForPoint, which
17521         finds the closest position in non-anonymous content.
17522         (WebCore::nextLinePosition): Ditto.
17523         * rendering/RenderObject.cpp:
17524         (WebCore::RenderObject::createVisiblePosition): Fixed a typo.
17525
17526 2009-04-23  Alexey Proskuryakov  <ap@webkit.org>
17527
17528         Reviewed by Adele Peterson.
17529
17530         <rdar://problem/6791439> REGRESSION: Get an error page instead of login page navigating back in gmail
17531
17532         Test: http/tests/history/back-to-post.php
17533
17534         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
17535         Apply a new cache policy if it changed after the platform request was first created.
17536         While at it, also made sure to update timeout.
17537
17538 2009-04-23  Zan Dobersek  <zandobersek@gmail.com>
17539
17540         Reviewed by Gustavo Noronha.
17541
17542         When creating a new drawable object, collect system's
17543         information about the best depth it can provide and use it
17544         in a new colormap that the new drawable requires.
17545
17546         * platform/graphics/gtk/ImageGtk.cpp:
17547         (WebCore::BitmapImage::getGdkPixbuf):
17548
17549 2009-04-23  Zan Dobersek  <zandobersek@gmail.com>
17550
17551         Reviewed by Gustavo Noronha.
17552
17553         https://bugs.webkit.org/show_bug.cgi?id=15654
17554         GdkPixbuf support for ImageCairo
17555
17556         Add support for converting a Cairo surface to a GdkPixbuf.
17557
17558         * platform/graphics/BitmapImage.h:
17559         * platform/graphics/Image.h:
17560         (WebCore::Image::getGdkPixbuf):
17561         * platform/graphics/gtk/ImageGtk.cpp:
17562         (WebCore::BitmapImage::getGdkPixbuf):
17563
17564 2009-04-23  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
17565
17566         Reviewed by Simon Hausmann.
17567
17568         Make windowed plugins (on X11, Qt) behave nicer with wheel scrolling.
17569
17570         Basically, what we want is to send wheel events to the plugin *only*
17571         when it has focus, or else send it to the parent frame.
17572
17573         This is a work around, and basically what we do, is to steal the
17574         wheel events from the plugin, modify the window ID, and put the
17575         event back into the Qt event loop.
17576
17577         * plugins/qt/PluginContainerQt.cpp:
17578         (PluginClientWrapper::PluginClientWrapper):
17579         (PluginClientWrapper::~PluginClientWrapper):
17580         (PluginClientWrapper::x11Event):
17581         (PluginContainerQt::PluginContainerQt):
17582         (PluginContainerQt::~PluginContainerQt):
17583         (PluginContainerQt::on_clientClosed):
17584         (PluginContainerQt::on_clientIsEmbedded):
17585         (PluginContainerQt::redirectWheelEventsToParent):
17586         (PluginContainerQt::x11Event):
17587         (PluginContainerQt::focusInEvent):
17588         * plugins/qt/PluginContainerQt.h:
17589
17590 2009-04-22  Brady Eidson  <beidson@apple.com>
17591
17592         Reviewed by Maciej Stachowiak
17593
17594         <rdar://problem/6786961> - "Are you sure you want to resubmit this form?" nag displays twice.
17595
17596         For most loads, we were consulting the navigation policy delegate twice.  Once from FrameLoader before
17597         the load started and once from MainResourceLoader in its willSendRequest callback.
17598
17599         In the past we tried removing MainResourceLoader's call altogether.  This caused a regression where urls 
17600         that redirect to a url handled by an external application would no longer work in Safari.  It probably 
17601         also broke other WebKit apps in subtle ways.
17602
17603         Changing MainResourceLoader to make the check only on redirects fixes both bugs.  We now only call the 
17604         policy delegate once for most standard loads, but we do correctly call it a second time for redirects.
17605
17606         Tests: http/tests/misc/policy-delegate-called-twice.html
17607                http/tests/misc/redirect-to-external-url.html
17608
17609         * loader/MainResourceLoader.cpp:
17610         (WebCore::MainResourceLoader::willSendRequest): Call the navigation policy delegate only for redirects.
17611
17612 2009-04-22  Sam Weinig  <sam@webkit.org>
17613
17614         Reviewed by Mark Rowe.
17615
17616         Fix for <rdar://problem/6800695>
17617
17618         Add a hack to only allow navigating (via a link from a http page)
17619         to feed: urls (same for feeds: and feedsearch:) that map to http:
17620         or https: via their nested protocol. This includes both feed://example.com
17621         and feed:http://example.com.
17622
17623         * loader/FrameLoader.cpp:
17624         (WebCore::isFeedWithNestedProtocolInHTTPFamily):
17625         (WebCore::FrameLoader::loadFrameRequest):
17626
17627 2009-04-22  Sam Weinig  <sam@webkit.org>
17628
17629         Reviewed by Anders Carlsson.
17630
17631         Autogenerate the XMLHttpRequest constructor getter/setter for the
17632         WorkerContext and remove the now no longer needed JSWorkerContextBase.lut.h
17633         file.
17634
17635         * DerivedSources.make: Remove JSWorkerContextBase.lut.h
17636         * WebCore.xcodeproj/project.pbxproj: Ditto.
17637
17638         * bindings/js/JSWorkerContextBase.cpp:
17639         * bindings/js/JSWorkerContextBase.h: Remove code to support hand written
17640         code for XMLHttpRequest constructor lookup and shadowing.
17641
17642         * bindings/js/JSWorkerContextCustom.cpp:
17643         (WebCore::JSWorkerContext::customGetOwnPropertySlot): Remove JSC prefixes.
17644         (WebCore::JSWorkerContext::xmlHttpRequest): Added. Custom implementation of
17645         cached constructor lookup.
17646         * workers/WorkerContext.idl: Make the XMLHttpRequestConstructor accessor not
17647         V8 specific.
17648
17649 2009-04-22  Darin Adler  <darin@apple.com>
17650
17651         * page/Navigator.idl: Touch this file to fix build since Geolocation
17652         configuration was recently turned off.
17653
17654 2009-04-22  Justin Garcia  <justin.garcia@apple.com>
17655
17656         Reviewed by Darin Adler.
17657
17658         https://bugs.webkit.org/show_bug.cgi?id=25322
17659         Can't delete empty paragraph after a block image
17660         
17661         Empty paragraph removal would have been handled by mergeParagraphs, but we stopped short
17662         because of some code that avoided problems that would arise from Positions that would go
17663         bad during deletion.  
17664         
17665         We have several checks that prevent us from using bad Positions, this one in particular
17666         was added to avoid bad Positions that result from text removal.  So, I removed the check
17667         and started correctly updating m_downstreamEnd during text removal so that it doesn't go
17668         bad.  m_upstreamStart doesn't need to be updated during text removal, since only text
17669         after it will ever be removed.
17670
17671         * editing/DeleteSelectionCommand.cpp:
17672         (WebCore::DeleteSelectionCommand::deleteTextFromNode):
17673         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
17674         (WebCore::DeleteSelectionCommand::mergeParagraphs):
17675
17676 2009-04-22  Oliver Hunt  <oliver@apple.com>
17677
17678         Reviewed by Darin Adler.
17679
17680         <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves
17681
17682         Make mouseUp target the correct frame when the original
17683         mousedown made the drag non-capturing.
17684
17685         * page/mac/EventHandlerMac.mm:
17686         (WebCore::EventHandler::passSubframeEventToSubframe):
17687
17688 2009-04-22  Oliver Hunt  <oliver@apple.com>
17689
17690         Reviewed by Darin Adler.
17691
17692         <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves
17693
17694         This is the first step of allowing drag events to match the behaviour
17695         of mouse move events when the default action of the initial mouse down
17696         is prevented.  Remaining issue is that the final mouse up event still
17697         targets the original root frame.
17698
17699         Test: fast/events/mouse-drag-from-frame-to-other-frame.html
17700
17701         * page/mac/EventHandlerMac.mm:
17702         (WebCore::EventHandler::passSubframeEventToSubframe):
17703
17704 2009-04-22  Simon Fraser  <simon.fraser@apple.com>
17705
17706         Reviewed by Adele Peterson
17707         
17708         <rdar://problem/6702882> QT movie's video fails to be displayed after switching between tabs
17709         <rdar://problem/6754957> Resizing Web browser window and hitting play will cause video blocks and artifacting
17710
17711         When in a media document, MediaPlayerPrivateQTKit uses a QTMovieView which may get
17712         layer backing under some circumstances. However, drawing the view via
17713         displayRectIgnoringOpacity:inContext: bypasses any layer setup that AppKit normally performs.
17714         So when in the media document, we draw via displayRectIgnoringOpacity:.
17715
17716         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
17717         (WebCore::MediaPlayerPrivate::paint):
17718
17719 2009-04-22  Timothy Hatcher  <timothy@apple.com>
17720
17721         Fix a crash in Mail when forwarding a specific HTML email.
17722         Caused by the fix for <rdar://problem/6512520> (r42096).
17723         Unable to create a test case that works outside of Mail.
17724
17725         <rdar://problem/6796069>
17726
17727         Reviewed by Ada Chan.
17728
17729         * editing/markup.cpp:
17730         (WebCore::createMarkup): Null check pastEnd before trying to
17731         call Range::compareBoundaryPoints.
17732
17733 2009-04-22  Sam Weinig  <sam@webkit.org>
17734
17735         Rubber-stamped by Darin Adler.
17736
17737         Fix for <rdar://problem/6816957>
17738         Turn off Geolocation by default
17739
17740         * Configurations/FeatureDefines.xcconfig:
17741
17742 2009-04-22  Eric Seidel  <eric@webkit.org>
17743
17744         Rubber-stamped by David Hyatt.
17745
17746         Change RenderSVGImage to dump as RenderSVGImage instead of RenderImage
17747
17748         * rendering/RenderSVGImage.h:
17749         (WebCore::RenderSVGImage::renderName):
17750
17751 2009-04-21  Timothy Hatcher  <timothy@apple.com>
17752
17753         Fix a crash on Gmail when they remove a "before unload" event listener when
17754         it was never added to the pending map in the first place.
17755
17756         <rdar://problem/6814144>
17757
17758         Reviewed by Darin Adler.
17759
17760         * page/DOMWindow.cpp:
17761         (WebCore::allowsPendingBeforeUnloadListeners): Renamed from shouldAddPendingBeforeUnloadListener.
17762         (WebCore::DOMWindow::addEventListener): Call allowsPendingBeforeUnloadListeners now.
17763         (WebCore::DOMWindow::removeEventListener): Call allowsPendingBeforeUnloadListeners before
17764         removing the before unload listener.
17765         (WebCore::DOMWindow::clearAttributeEventListener): Ditto.
17766
17767 2009-04-22  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
17768
17769         Reviewed by Ariya Hidayat.
17770
17771         Made windowed plugins move/resize synchronized with the painting, so
17772         that windowed plugins are not moved before the rest of the parent
17773         frame during scrolling.
17774
17775         * plugins/qt/PluginContainerQt.cpp:
17776         (PluginContainerQt::PluginContainerQt):
17777         (PluginContainerQt::requestGeometry):
17778         (PluginContainerQt::adjustGeometry):
17779         * plugins/qt/PluginContainerQt.h:
17780         * plugins/qt/PluginViewQt.cpp:
17781         (WebCore::PluginView::updatePluginWidget):
17782         (WebCore::PluginView::paint):
17783
17784 2009-04-22  Simon Hausmann  <simon.hausmann@nokia.com>
17785
17786         Reviewed by Ariya Hidayat.
17787
17788         Fix various bugs in the X11 Qt plugin focus handling.
17789
17790         Notify the focus controller on activation/deactivation of the plugin and
17791         set focus on the plugin's element when it receives the window system
17792         focus.
17793
17794         * WebCore.pro: Added PluginContainerQt to the Qt build.
17795         * plugins/PluginView.cpp:
17796         (WebCore::PluginView::focusPluginElement): New helper function, moved from PluginViewWin.
17797         * plugins/PluginView.h:
17798         (WebCore::PluginView::parentFrame): Added parent frame accessor.
17799         * plugins/qt/PluginContainerQt.cpp: Added.
17800         (PluginContainerQt::PluginContainerQt):
17801         (PluginContainerQt::focusInEvent): Set the focus controller active on focus in events.
17802         (PluginContainerQt::focusOutEvent): Deactivate the focus controller when loosing the focus.
17803         * plugins/qt/PluginContainerQt.h: Added.
17804         * plugins/qt/PluginViewQt.cpp:
17805         (WebCore::PluginView::init): Allocate a PluginContainerQt instead of QX11EmbedContainer.
17806         * plugins/win/PluginViewWin.cpp:
17807         (WebCore::PluginView::handleMouseEvent): Moved the code to set focus on the plugin element
17808         to PluginView::focusPluginElement.
17809
17810 2009-04-22  Tamas Szirbucz  <szirbucz.tamas@stud.u-szeged.hu>
17811
17812         Reviewed by Ariya Hidayat.
17813
17814         https://bugs.webkit.org/show_bug.cgi?id=25023
17815         Delete reply in QNetworkReplyHandler::abort() to avoid leak.
17816
17817         * platform/network/qt/QNetworkReplyHandler.cpp:
17818         (WebCore::QNetworkReplyHandler::abort):
17819
17820 2009-04-21  Jon Honeycutt  <jhoneycutt@apple.com>
17821
17822         Allow the UI delegate to control cursor-setting.
17823
17824         Reviewed by Ada Chan.
17825
17826         * page/Chrome.cpp:
17827         (WebCore::Chrome::setCursor):
17828         Pass the call to the client.
17829
17830         * page/Chrome.h:
17831
17832         * page/ChromeClient.h:
17833         (WebCore::ChromeClient::setCursor):
17834         Stubbed; returns false.
17835
17836         * platform/Cursor.h:
17837         Define PlatformCursorHandle for each platform.
17838
17839         * platform/win/WidgetWin.cpp:
17840         Reordered some includes. Added an include of Page.h.
17841         (WebCore::Widget::setCursor):
17842         Fixed a typo in the comment about ignoreNextSetCursor. Get the Page, and
17843         call its Chrome's setCursor() method with the passed cursor. Fall back
17844         to SetCursor() if the Page is not available.
17845
17846         * plugins/win/PluginViewWin.cpp:
17847         (WebCore::PluginView::handleMouseEvent):
17848         Remove an unused variable. Cleaned up some whitespace.
17849
17850 2009-04-21  John Abd-El-Malek  <jam@google.com>
17851
17852         Reviewed by Dimitri Glazkov.
17853
17854         Add a method to purge the Chromium plugin list cache.
17855         https://bugs.webkit.org/show_bug.cgi?id=25318
17856
17857         * plugins/chromium/PluginDataChromium.cpp:
17858         (WebCore::resetChromiumPluginCache):
17859
17860 2009-04-21  Mark Rowe  <mrowe@apple.com>
17861
17862         Reviewed by Darin Adler.
17863
17864         Fix <https://bugs.webkit.org/show_bug.cgi?id=25164> / <rdar://problem/6786319>.
17865
17866         We need to ensure that XMLTokenizer sets the current DocLoader before calling in to
17867         any libxml2 methods that may trigger a load.  The presence of a DocLoader indicates
17868         that the load was originated by WebCore's use of libxml2 and that we should enforce
17869         the same-origin policy on it.  XMLTokenizer::initializeParserContext,
17870         XMLTokenizer::doWrite and XMLTokenizer::doEnd were three methods that were not setting
17871         the current DocLoader when they should have.
17872
17873         The XMLTokenizerScope class is introduced to simplify the pattern of saving, setting and
17874         restoring the current DocLoader and libxml2 error handlers.  The DocLoader and error handlers
17875         are saved and set when the scope is allocated, and restored to their previous values when
17876         the scope is exited.
17877
17878         Test: http/tests/security/xss-DENIED-xml-external-entity.xhtml
17879
17880         * GNUmakefile.am:
17881         * WebCore.pro:
17882         * WebCore.scons:
17883         * WebCore.vcproj/WebCore.vcproj:
17884         * WebCore.xcodeproj/project.pbxproj:
17885         * dom/XMLTokenizer.cpp:
17886         * dom/XMLTokenizer.h:
17887         * dom/XMLTokenizerLibxml2.cpp:
17888         (WebCore::matchFunc):
17889         (WebCore::shouldAllowExternalLoad):
17890         (WebCore::openFunc):
17891         (WebCore::XMLTokenizer::doWrite):
17892         (WebCore::XMLTokenizer::initializeParserContext):
17893         (WebCore::XMLTokenizer::doEnd):
17894         (WebCore::xmlDocPtrForString):
17895         * dom/XMLTokenizerScope.cpp:
17896         (WebCore::XMLTokenizerScope::XMLTokenizerScope):
17897         (WebCore::XMLTokenizerScope::~XMLTokenizerScope):
17898         * dom/XMLTokenizerScope.h:
17899         * xml/XSLStyleSheet.cpp:
17900         (WebCore::XSLStyleSheet::parseString):
17901         * xml/XSLTProcessor.cpp:
17902
17903 2009-04-21  Sam Weinig  <sam@webkit.org>
17904
17905         Reviewed by Dan Bernstein.
17906
17907         Fix for <rdar://problem/5874009>
17908         Add port 3659 (apple-sasl / PasswordServer) to the list of blocked ports.
17909
17910         * platform/network/ResourceHandle.cpp:
17911         (WebCore::portAllowed):
17912
17913 2009-04-21  Justin Garcia  <justin.garcia@apple.com>
17914
17915         Reviewed by Dan Bernstein.
17916
17917         https://bugs.webkit.org/show_bug.cgi?id=25320
17918         Crash when changing block styles in a root that contains no visible content (but contains nodes with renderers)
17919
17920         * editing/CompositeEditCommand.cpp:
17921         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): If the enclosing block is the 
17922         root editable element and it contains no visible content, create a new block but don't try and move 
17923         content into it, since there's nothing for moveParagraphs to move.
17924         
17925
17926 2009-04-21  Darin Adler  <darin@apple.com>
17927
17928         Reviewed by Dan Bernstein.
17929
17930         Bug 25162: REGRESSION (r41176-r41242): Drag-selection above/below the line does not select to beginning/end
17931         https://bugs.webkit.org/show_bug.cgi?id=25162
17932         rdar://problem/6764354
17933
17934         * page/Settings.cpp:
17935         (WebCore::Settings::Settings): Initialize editing behavior to Mac-style for PLATFORM(MAC).
17936         Later we may want to change this default to encompass other versions running on Mac.
17937
17938         * page/Settings.h: Added EditingBehavior, setEditingBehavior, editingBehavior, and
17939         m_editingBehavior. Also moved m_maximumDecodedImageSize out of the middle of all
17940         the bit fields.
17941
17942         * platform/graphics/IntPoint.h: Added a constructor to turn an IntSize into an IntPoint.
17943         I'm not sure the distinction here is serving us well at the moment. When converting from
17944         global to local coordinates you want to do IntPoint - IntPoint and have the result be
17945         another IntPoint, not an IntSize. And so on.
17946
17947         * rendering/RenderBlock.cpp:
17948         (WebCore::positionForPointRespectingEditingBoundaries): Changed to use pointers more and
17949         separate coordinates less.
17950         (WebCore::RenderBlock::positionForPointWithInlineChildren): Turned into a member function.
17951         Added separate cases to support the Mac and Windows behavior.
17952         (WebCore::RenderBlock::positionForPoint): Updated for the change above. Also moved the
17953         computation of pointInContents closer to the place it's used.
17954
17955         * rendering/RenderBlock.h: Updated for the new private member function.
17956
17957 2009-04-17  Timothy Hatcher  <timothy@apple.com>
17958
17959         Change pending unload and beforeunload counts to store the listeners
17960         in a single data structure that can be quickly iterated for dispatch.
17961
17962         <rdar://problem/6383352&6383379&6383940>
17963
17964         Reviewed by Darin Adler.
17965
17966         * WebCore.base.exp: Change what symbols are exported.
17967         * loader/FrameLoader.cpp:
17968         (WebCore::FrameLoader::stopLoading): Remove count updating code
17969         and move an if inside a block already checking m_frame->document().
17970         * page/Chrome.cpp: Remove disableSuddenTermination/enableSuddenTermination.
17971         * page/Chrome.h: Ditto.
17972         * page/ChromeClient.h: Ditto.
17973         * page/DOMWindow.cpp:
17974         (WebCore::pendingUnloadEventListenerMap): Create a static map.
17975         (WebCore::pendingBeforeUnloadEventListenerMap): Ditto.
17976         (WebCore::addPendingEventListener): Add the event listener to the map.
17977         (WebCore::removePendingEventListener): Remove the event listener from the map.
17978         (WebCore::removePendingEventListeners): Remove all listeners for the window.
17979         (WebCore::dispatchWindowEventToListeners): Dispatch the event to the given listeners.
17980         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Send the beforeunload event.
17981         (WebCore::DOMWindow::pendingUnloadEventListeners): Return a count of pending listeners.
17982         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Send the unload event.
17983         (WebCore::DOMWindow::~DOMWindow): Remove the window from both event listener maps.
17984         (WebCore::DOMWindow::addEventListener): Call addPendingEventListener when needed.
17985         (WebCore::DOMWindow::removeEventListener): Call removePendingEventListener when needed.
17986         (WebCore::DOMWindow::removeAllEventListeners): Call removePendingEventListeners.
17987         (WebCore::DOMWindow::removeInlineEventListenerForType): Call removePendingEventListener when needed.
17988         * page/DOMWindow.h:
17989         (WebCore::DOMWindow::frame): Changed to be const.
17990         * page/EventHandler.cpp:
17991         (WebCore::EventHandler::EventHandler): Remove count tracking code.
17992         * page/EventHandler.h: Ditto.
17993         * page/Page.cpp:
17994         (WebCore::Page::Page): Ditto.
17995         * page/Page.h: Ditto.
17996
17997 2009-04-21  Justin Garcia  <justin.garcia@apple.com>
17998
17999         Reviewed by Darin Adler.
18000
18001         https://bugs.webkit.org/show_bug.cgi?id=19644
18002         Text copied with Select All pastes with a indent but shouldn't
18003         <rdar://problem/6102483> 
18004         Pasting the content of an HTML message in Mail causes addition nested <div> elements to be added
18005         
18006         To improve selectall/copy/paste fidelity of certain pages, we began wrapping copied content with
18007         a div that held properties and attributes from the fully selected body.  To fix the above issues, 
18008         only do this if if the body has certain properties or attributes.  We'll begin adding to this list as 
18009         necessary.  For now it's just background colors and images.  Tested copy/paste of nytimes, wired,
18010         arstechnica, and several others.
18011         
18012         Massive nesting can still happen, it will just be much less common.
18013
18014         * editing/markup.cpp:
18015         (WebCore::createMarkup): 
18016
18017 2009-04-21  Peter Kasting  <pkasting@google.com>
18018
18019         Reviewed by David Hyatt.
18020
18021         https://bugs.webkit.org/show_bug.cgi?id=25250
18022         Allow platforms to snap the scroll thumb back to the drag origin
18023         during a drag.  Implement functions for Safari/Win and Chromium/Win
18024         to do this snapping at distances approximating the native ones.
18025
18026         * platform/Scrollbar.cpp:
18027         (WebCore::Scrollbar::Scrollbar):
18028         (WebCore::Scrollbar::setValue):
18029         (WebCore::Scrollbar::scroll):
18030         (WebCore::Scrollbar::moveThumb):
18031         (WebCore::Scrollbar::setCurrentPos):
18032         (WebCore::Scrollbar::mouseMoved):
18033         (WebCore::Scrollbar::mouseDown):
18034         * platform/Scrollbar.h:
18035         * platform/ScrollbarTheme.h:
18036         (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
18037         * platform/chromium/ScrollbarThemeChromium.h:
18038         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
18039         (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin):
18040         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
18041         (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin):
18042         * platform/win/ScrollbarThemeWin.cpp:
18043         (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
18044         (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
18045         * platform/win/ScrollbarThemeWin.h:
18046
18047 2009-04-21  Adam Roben  <aroben@apple.com>
18048
18049         Windows build fix
18050
18051         * bindings/js/JSLazyEventListener.cpp:
18052         (WebCore::eventParameterName): Remove unreachable code when SVG is
18053         enabled.
18054
18055 2009-04-21  Kevin Ollivier  <kevino@theolliviers.com>
18056
18057         !ENABLE(SVG) build fix.
18058         
18059         * bindings/js/JSLazyEventListener.cpp:
18060         (WebCore::eventParameterName):
18061
18062 2009-04-21  Dave Moore  <davemoore@google.com>
18063
18064         Reviewed by Dimitri Glazkov.
18065
18066         https://bugs.webkit.org/show_bug.cgi?id=25309
18067         Better use AtomicStrings when calling from the V8
18068         bindings into WebCore code.
18069
18070         * bindings/v8/custom/V8DOMWindowCustom.cpp:
18071         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
18072         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
18073         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
18074
18075 2009-04-21  Chris Fleizach  <cfleizach@apple.com>
18076
18077         Reviewed by Darin Adler.
18078  
18079         Bug 25304: AX: Safari not identifying a secure text field
18080         https://bugs.webkit.org/show_bug.cgi?id=25304
18081
18082         Secure text fields need to be able to return AXTitleUIElements.
18083
18084         Test: accessibility/secure-textfield-title-ui.html
18085
18086         * page/mac/AccessibilityObjectWrapper.mm:
18087         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
18088
18089 2009-04-21  Dan Bernstein  <mitz@apple.com>
18090
18091         - fix the Tiger build
18092
18093         * page/mac/EventHandlerMac.mm:
18094         (method_setImplementation):
18095
18096 2009-04-21   Laszlo Gombos  <laszlo.1.gombos@nokia.com>
18097
18098         Reviewed by Sam Weinig.
18099
18100         https://bugs.webkit.org/show_bug.cgi?id=25271
18101
18102         Fix the build with disabled DOM storage or disabled database support.
18103
18104         * bindings/js/ScriptObjectQuarantine.cpp:
18105         * bindings/js/ScriptObjectQuarantine.h:
18106
18107 2009-04-21  Holger Hans Peter Freyther  <zecke@selfish.org>
18108
18109         Unreviewed build fix.
18110
18111         Compile fix for r42633. const qualifier does not work
18112         on a static method.
18113
18114         * dom/Document.h:
18115         (WebCore::Document::isSVGDocument):
18116
18117 2009-04-21  Dan Bernstein  <mitz@apple.com>
18118
18119         Reviewed by Darin Adler and John Sullivan.
18120
18121         - fix <rdar://problem/5914146> Crash at -[NSScrollView scrollWheel:]
18122
18123         -[NSScrollView scrollWheel:] runs a nested event-tracking run loop
18124         in a mode that allows WebCore timers to fire and NSURLConnection
18125         callbacks to be dispatched, which can release the NSScrollView and
18126         cause it to be deallocated (one example is a DOM timer callback that
18127         removes a subframe from the document). This leads to a crash in
18128         -scrollView:.
18129
18130         The fix is to replace the implementation of -[NSScrollView scrollWheel:]
18131         with one that optionally retains the receiver for the duration of the
18132         call.
18133
18134         * page/mac/EventHandlerMac.mm:
18135         (WebCore::nsScrollViewScrollWheelShouldRetainSelf): Added.
18136         (WebCore::setNSScrollViewScrollWheelShouldRetainSelf): Added. Replaces
18137         the implementation of -[NSScrollView scrollWheel:] with the
18138         self-retaining one, and sets a static boolean that tells it whether to
18139         retain the receiver around the call to the original implementation.
18140         (WebCore::selfRetainingNSScrollViewScrollWheel): Added. If
18141         setNSScrollViewScrollWheelShouldRetainSelf(true) was called and this
18142         function is executing on the main thread, it retains the NSScrollView,
18143         invokes the original -[NSScrollView scrollWheel:], then releases the
18144         view. Otherwise it just calls through to the original implementation.
18145         (WebCore::EventHandler::passWheelEventToWidget): Added calls to
18146         setNSScrollViewScrollWheelShouldRetainSelf() around the call to
18147         -scrollWheel:.
18148
18149 2009-04-21  Geoffrey Garen  <ggaren@apple.com>
18150
18151         Reviewed by Mark Rowe.
18152
18153         Tiger crash fix: Put VM tags in their own header file, and fixed up the
18154         #ifdefs so they're not used on Tiger.
18155
18156         * ForwardingHeaders/wtf/VMTags.h: Copied from WebCore/ForwardingHeaders/wtf/HashTraits.h.
18157
18158 2009-04-21  Xan Lopez  <xlopez@igalia.com>
18159
18160         Reviewed by Gustavo Noronha.
18161
18162         https://bugs.webkit.org/show_bug.cgi?id=21546
18163         [GTK] ATK accessibility enhancements
18164
18165         Based on a patch by Alp Toker.
18166
18167         Implement AtkComponent interface.
18168
18169         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
18170         (core):
18171
18172 2009-04-21  Xan Lopez  <xlopez@igalia.com>
18173
18174         Reviewed by Gustavo Noronha.
18175
18176         https://bugs.webkit.org/show_bug.cgi?id=21546
18177         [GTK] ATK accessibility enhancements
18178
18179         Only implement AtkAction interface if we actually have an action.
18180
18181         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
18182
18183 2009-04-20  Alexey Proskuryakov  <ap@webkit.org>
18184
18185         Reviewed by Darin Adler.
18186
18187         https://bugs.webkit.org/show_bug.cgi?id=25290
18188         REGRESSION(r41732): Crash when constructing XMLHttpRequest in a detached document
18189
18190         Test: fast/dom/xmlhttprequest-constructor-in-detached-document.html
18191
18192         * bindings/js/JSAudioConstructor.cpp:
18193         (WebCore::JSAudioConstructor::JSAudioConstructor):
18194         * bindings/js/JSAudioConstructor.h:
18195         * bindings/js/JSDOMGlobalObject.h:
18196         (WebCore::getDOMConstructor):
18197         * bindings/js/JSImageConstructor.cpp:
18198         (WebCore::JSImageConstructor::JSImageConstructor):
18199         * bindings/js/JSImageConstructor.h:
18200         * bindings/js/JSMessageChannelConstructor.cpp:
18201         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
18202         * bindings/js/JSMessageChannelConstructor.h:
18203         * bindings/js/JSOptionConstructor.cpp:
18204         (WebCore::JSOptionConstructor::JSOptionConstructor):
18205         * bindings/js/JSOptionConstructor.h:
18206         * bindings/js/JSXMLHttpRequestConstructor.cpp:
18207         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
18208         * bindings/js/JSXMLHttpRequestConstructor.h:
18209         Avoid accessing JSDOMGlobalObject via ScriptExecutionContext, since it may not
18210         work during frame teardown.
18211
18212 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
18213
18214         Rubber stamped by Darin Adler and Sam Weinig.
18215
18216         Renamed "*InlineEventListener*" => "*AttributeEventListener*", and
18217         "isInline" => "isAttribute".
18218
18219         * bindings/js/JSDOMGlobalObject.cpp:
18220         (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
18221         * bindings/js/JSEventListener.cpp:
18222         (WebCore::JSEventListener::JSEventListener):
18223         (WebCore::JSEventListener::~JSEventListener):
18224         (WebCore::JSEventListener::handleEvent):
18225         (WebCore::JSEventListener::virtualisAttribute):
18226         * bindings/js/JSEventListener.h:
18227         (WebCore::JSEventListener::create):
18228         (WebCore::JSEventListener::isAttribute):
18229         * bindings/js/JSLazyEventListener.cpp:
18230         (WebCore::createAttributeEventListener):
18231         * bindings/js/JSLazyEventListener.h:
18232         * bindings/scripts/CodeGeneratorJS.pm:
18233         * dom/Element.cpp:
18234         (WebCore::Element::setWindowAttributeEventListener):
18235         * dom/Element.h:
18236         * dom/EventListener.h:
18237         (WebCore::EventListener::isAttribute):
18238         (WebCore::EventListener::virtualisAttribute):
18239         * dom/Node.cpp:
18240         (WebCore::Node::clearAttributeEventListener):
18241         (WebCore::Node::setAttributeEventListener):
18242         (WebCore::Node::getAttributeEventListener):
18243         (WebCore::Node::onabort):
18244         (WebCore::Node::setOnabort):
18245         (WebCore::Node::onblur):
18246         (WebCore::Node::setOnblur):
18247         (WebCore::Node::onchange):
18248         (WebCore::Node::setOnchange):
18249         (WebCore::Node::onclick):
18250         (WebCore::Node::setOnclick):
18251         (WebCore::Node::oncontextmenu):
18252         (WebCore::Node::setOncontextmenu):
18253         (WebCore::Node::ondblclick):
18254         (WebCore::Node::setOndblclick):
18255         (WebCore::Node::onerror):
18256         (WebCore::Node::setOnerror):
18257         (WebCore::Node::onfocus):
18258         (WebCore::Node::setOnfocus):
18259         (WebCore::Node::oninput):
18260         (WebCore::Node::setOninput):
18261         (WebCore::Node::onkeydown):
18262         (WebCore::Node::setOnkeydown):
18263         (WebCore::Node::onkeypress):
18264         (WebCore::Node::setOnkeypress):
18265         (WebCore::Node::onkeyup):
18266         (WebCore::Node::setOnkeyup):
18267         (WebCore::Node::onload):
18268         (WebCore::Node::setOnload):
18269         (WebCore::Node::onmousedown):
18270         (WebCore::Node::setOnmousedown):
18271         (WebCore::Node::onmousemove):
18272         (WebCore::Node::setOnmousemove):
18273         (WebCore::Node::onmouseout):
18274         (WebCore::Node::setOnmouseout):
18275         (WebCore::Node::onmouseover):
18276         (WebCore::Node::setOnmouseover):
18277         (WebCore::Node::onmouseup):
18278         (WebCore::Node::setOnmouseup):
18279         (WebCore::Node::onmousewheel):
18280         (WebCore::Node::setOnmousewheel):
18281         (WebCore::Node::onbeforecut):
18282         (WebCore::Node::setOnbeforecut):
18283         (WebCore::Node::oncut):
18284         (WebCore::Node::setOncut):
18285         (WebCore::Node::onbeforecopy):
18286         (WebCore::Node::setOnbeforecopy):
18287         (WebCore::Node::oncopy):
18288         (WebCore::Node::setOncopy):
18289         (WebCore::Node::onbeforepaste):
18290         (WebCore::Node::setOnbeforepaste):
18291         (WebCore::Node::onpaste):
18292         (WebCore::Node::setOnpaste):
18293         (WebCore::Node::ondragenter):
18294         (WebCore::Node::setOndragenter):
18295         (WebCore::Node::ondragover):
18296         (WebCore::Node::setOndragover):
18297         (WebCore::Node::ondragleave):
18298         (WebCore::Node::setOndragleave):
18299         (WebCore::Node::ondrop):
18300         (WebCore::Node::setOndrop):
18301         (WebCore::Node::ondragstart):
18302         (WebCore::Node::setOndragstart):
18303         (WebCore::Node::ondrag):
18304         (WebCore::Node::setOndrag):
18305         (WebCore::Node::ondragend):
18306         (WebCore::Node::setOndragend):
18307         (WebCore::Node::onreset):
18308         (WebCore::Node::setOnreset):
18309         (WebCore::Node::onresize):
18310         (WebCore::Node::setOnresize):
18311         (WebCore::Node::onscroll):
18312         (WebCore::Node::setOnscroll):
18313         (WebCore::Node::onsearch):
18314         (WebCore::Node::setOnsearch):
18315         (WebCore::Node::onselect):
18316         (WebCore::Node::setOnselect):
18317         (WebCore::Node::onselectstart):
18318         (WebCore::Node::setOnselectstart):
18319         (WebCore::Node::onsubmit):
18320         (WebCore::Node::setOnsubmit):
18321         (WebCore::Node::onunload):
18322         (WebCore::Node::setOnunload):
18323         * dom/Node.h:
18324         * editing/ReplaceSelectionCommand.cpp:
18325         (WebCore::ReplacementFragment::ReplacementFragment):
18326         * html/HTMLBodyElement.cpp:
18327         (WebCore::HTMLBodyElement::parseMappedAttribute):
18328         * html/HTMLButtonElement.cpp:
18329         (WebCore::HTMLButtonElement::parseMappedAttribute):
18330         * html/HTMLElement.cpp:
18331         (WebCore::HTMLElement::parseMappedAttribute):
18332         * html/HTMLFormElement.cpp:
18333         (WebCore::HTMLFormElement::parseMappedAttribute):
18334         * html/HTMLFrameElementBase.cpp:
18335         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
18336         * html/HTMLFrameSetElement.cpp:
18337         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
18338         * html/HTMLImageElement.cpp:
18339         (WebCore::HTMLImageElement::parseMappedAttribute):
18340         * html/HTMLInputElement.cpp:
18341         (WebCore::HTMLInputElement::parseMappedAttribute):
18342         * html/HTMLObjectElement.cpp:
18343         (WebCore::HTMLObjectElement::parseMappedAttribute):
18344         * html/HTMLScriptElement.cpp:
18345         (WebCore::HTMLScriptElement::parseMappedAttribute):
18346         * html/HTMLSelectElement.cpp:
18347         (WebCore::HTMLSelectElement::parseMappedAttribute):
18348         * html/HTMLTextAreaElement.cpp:
18349         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
18350         * page/AccessibilityRenderObject.cpp:
18351         (WebCore::AccessibilityRenderObject::mouseButtonListener):
18352         * page/DOMWindow.cpp:
18353         (WebCore::DOMWindow::setAttributeEventListener):
18354         (WebCore::DOMWindow::clearAttributeEventListener):
18355         (WebCore::DOMWindow::getAttributeEventListener):
18356         (WebCore::DOMWindow::onabort):
18357         (WebCore::DOMWindow::setOnabort):
18358         (WebCore::DOMWindow::onblur):
18359         (WebCore::DOMWindow::setOnblur):
18360         (WebCore::DOMWindow::onchange):
18361         (WebCore::DOMWindow::setOnchange):
18362         (WebCore::DOMWindow::onclick):
18363         (WebCore::DOMWindow::setOnclick):
18364         (WebCore::DOMWindow::ondblclick):
18365         (WebCore::DOMWindow::setOndblclick):
18366         (WebCore::DOMWindow::onerror):
18367         (WebCore::DOMWindow::setOnerror):
18368         (WebCore::DOMWindow::onfocus):
18369         (WebCore::DOMWindow::setOnfocus):
18370         (WebCore::DOMWindow::onkeydown):
18371         (WebCore::DOMWindow::setOnkeydown):
18372         (WebCore::DOMWindow::onkeypress):
18373         (WebCore::DOMWindow::setOnkeypress):
18374         (WebCore::DOMWindow::onkeyup):
18375         (WebCore::DOMWindow::setOnkeyup):
18376         (WebCore::DOMWindow::onload):
18377         (WebCore::DOMWindow::setOnload):
18378         (WebCore::DOMWindow::onmousedown):
18379         (WebCore::DOMWindow::setOnmousedown):
18380         (WebCore::DOMWindow::onmousemove):
18381         (WebCore::DOMWindow::setOnmousemove):
18382         (WebCore::DOMWindow::onmouseout):
18383         (WebCore::DOMWindow::setOnmouseout):
18384         (WebCore::DOMWindow::onmouseover):
18385         (WebCore::DOMWindow::setOnmouseover):
18386         (WebCore::DOMWindow::onmouseup):
18387         (WebCore::DOMWindow::setOnmouseup):
18388         (WebCore::DOMWindow::onmousewheel):
18389         (WebCore::DOMWindow::setOnmousewheel):
18390         (WebCore::DOMWindow::onreset):
18391         (WebCore::DOMWindow::setOnreset):
18392         (WebCore::DOMWindow::onresize):
18393         (WebCore::DOMWindow::setOnresize):
18394         (WebCore::DOMWindow::onscroll):
18395         (WebCore::DOMWindow::setOnscroll):
18396         (WebCore::DOMWindow::onsearch):
18397         (WebCore::DOMWindow::setOnsearch):
18398         (WebCore::DOMWindow::onselect):
18399         (WebCore::DOMWindow::setOnselect):
18400         (WebCore::DOMWindow::onsubmit):
18401         (WebCore::DOMWindow::setOnsubmit):
18402         (WebCore::DOMWindow::onunload):
18403         (WebCore::DOMWindow::setOnunload):
18404         (WebCore::DOMWindow::onbeforeunload):
18405         (WebCore::DOMWindow::setOnbeforeunload):
18406         (WebCore::DOMWindow::onwebkitanimationstart):
18407         (WebCore::DOMWindow::setOnwebkitanimationstart):
18408         (WebCore::DOMWindow::onwebkitanimationiteration):
18409         (WebCore::DOMWindow::setOnwebkitanimationiteration):
18410         (WebCore::DOMWindow::onwebkitanimationend):
18411         (WebCore::DOMWindow::setOnwebkitanimationend):
18412         (WebCore::DOMWindow::onwebkittransitionend):
18413         (WebCore::DOMWindow::setOnwebkittransitionend):
18414         * page/DOMWindow.h:
18415         * svg/SVGElement.cpp:
18416         (WebCore::SVGElement::parseMappedAttribute):
18417         * svg/SVGElementInstance.cpp:
18418         (WebCore::SVGElementInstance::onabort):
18419         (WebCore::SVGElementInstance::setOnabort):
18420         (WebCore::SVGElementInstance::onblur):
18421         (WebCore::SVGElementInstance::setOnblur):
18422         (WebCore::SVGElementInstance::onchange):
18423         (WebCore::SVGElementInstance::setOnchange):
18424         (WebCore::SVGElementInstance::onclick):
18425         (WebCore::SVGElementInstance::setOnclick):
18426         (WebCore::SVGElementInstance::oncontextmenu):
18427         (WebCore::SVGElementInstance::setOncontextmenu):
18428         (WebCore::SVGElementInstance::ondblclick):
18429         (WebCore::SVGElementInstance::setOndblclick):
18430         (WebCore::SVGElementInstance::onerror):
18431         (WebCore::SVGElementInstance::setOnerror):
18432         (WebCore::SVGElementInstance::onfocus):
18433         (WebCore::SVGElementInstance::setOnfocus):
18434         (WebCore::SVGElementInstance::oninput):
18435         (WebCore::SVGElementInstance::setOninput):
18436         (WebCore::SVGElementInstance::onkeydown):
18437         (WebCore::SVGElementInstance::setOnkeydown):
18438         (WebCore::SVGElementInstance::onkeypress):
18439         (WebCore::SVGElementInstance::setOnkeypress):
18440         (WebCore::SVGElementInstance::onkeyup):
18441         (WebCore::SVGElementInstance::setOnkeyup):
18442         (WebCore::SVGElementInstance::onload):
18443         (WebCore::SVGElementInstance::setOnload):
18444         (WebCore::SVGElementInstance::onmousedown):
18445         (WebCore::SVGElementInstance::setOnmousedown):
18446         (WebCore::SVGElementInstance::onmousemove):
18447         (WebCore::SVGElementInstance::setOnmousemove):
18448         (WebCore::SVGElementInstance::onmouseout):
18449         (WebCore::SVGElementInstance::setOnmouseout):
18450         (WebCore::SVGElementInstance::onmouseover):
18451         (WebCore::SVGElementInstance::setOnmouseover):
18452         (WebCore::SVGElementInstance::onmouseup):
18453         (WebCore::SVGElementInstance::setOnmouseup):
18454         (WebCore::SVGElementInstance::onmousewheel):
18455         (WebCore::SVGElementInstance::setOnmousewheel):
18456         (WebCore::SVGElementInstance::onbeforecut):
18457         (WebCore::SVGElementInstance::setOnbeforecut):
18458         (WebCore::SVGElementInstance::oncut):
18459         (WebCore::SVGElementInstance::setOncut):
18460         (WebCore::SVGElementInstance::onbeforecopy):
18461         (WebCore::SVGElementInstance::setOnbeforecopy):
18462         (WebCore::SVGElementInstance::oncopy):
18463         (WebCore::SVGElementInstance::setOncopy):
18464         (WebCore::SVGElementInstance::onbeforepaste):
18465         (WebCore::SVGElementInstance::setOnbeforepaste):
18466         (WebCore::SVGElementInstance::onpaste):
18467         (WebCore::SVGElementInstance::setOnpaste):
18468         (WebCore::SVGElementInstance::ondragenter):
18469         (WebCore::SVGElementInstance::setOndragenter):
18470         (WebCore::SVGElementInstance::ondragover):
18471         (WebCore::SVGElementInstance::setOndragover):
18472         (WebCore::SVGElementInstance::ondragleave):
18473         (WebCore::SVGElementInstance::setOndragleave):
18474         (WebCore::SVGElementInstance::ondrop):
18475         (WebCore::SVGElementInstance::setOndrop):
18476         (WebCore::SVGElementInstance::ondragstart):
18477         (WebCore::SVGElementInstance::setOndragstart):
18478         (WebCore::SVGElementInstance::ondrag):
18479         (WebCore::SVGElementInstance::setOndrag):
18480         (WebCore::SVGElementInstance::ondragend):
18481         (WebCore::SVGElementInstance::setOndragend):
18482         (WebCore::SVGElementInstance::onreset):
18483         (WebCore::SVGElementInstance::setOnreset):
18484         (WebCore::SVGElementInstance::onresize):
18485         (WebCore::SVGElementInstance::setOnresize):
18486         (WebCore::SVGElementInstance::onscroll):
18487         (WebCore::SVGElementInstance::setOnscroll):
18488         (WebCore::SVGElementInstance::onsearch):
18489         (WebCore::SVGElementInstance::setOnsearch):
18490         (WebCore::SVGElementInstance::onselect):
18491         (WebCore::SVGElementInstance::setOnselect):
18492         (WebCore::SVGElementInstance::onselectstart):
18493         (WebCore::SVGElementInstance::setOnselectstart):
18494         (WebCore::SVGElementInstance::onsubmit):
18495         (WebCore::SVGElementInstance::setOnsubmit):
18496         (WebCore::SVGElementInstance::onunload):
18497         (WebCore::SVGElementInstance::setOnunload):
18498         * svg/SVGSVGElement.cpp:
18499         (WebCore::SVGSVGElement::parseMappedAttribute):
18500
18501 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
18502
18503         Approved by Mark Rowe, Cameron Zwarich, Oliver Hunt, and Ojan Vafai.
18504         
18505         Used svn merge to roll out revisions 42678, 42690, 42694, 42697 because
18506         they broke the Tiger and Windows buildbots.
18507
18508         * css/html4.css:
18509         * css/themeWin.css:
18510         * platform/graphics/SimpleFontData.cpp:
18511         * platform/graphics/SimpleFontData.h:
18512         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
18513         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
18514         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
18515         * platform/graphics/gtk/SimpleFontDataPango.cpp:
18516         * platform/graphics/mac/SimpleFontDataMac.mm:
18517         * platform/graphics/qt/SimpleFontDataQt.cpp:
18518         * platform/graphics/win/SimpleFontDataCGWin.cpp:
18519         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
18520         * platform/graphics/win/SimpleFontDataWin.cpp:
18521         * platform/graphics/wx/SimpleFontDataWx.cpp:
18522         * rendering/RenderTextControl.cpp:
18523         * rendering/RenderTextControlMultiLine.cpp:
18524         * rendering/RenderTextControlSingleLine.cpp:
18525
18526 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
18527
18528         Reviewed by Adam Roben.
18529
18530         One last loose end, discovered using COLLECT_ON_EVERY_ALLOCATION, for
18531         https://bugs.webkit.org/show_bug.cgi?id=21260
18532         Unbounded memory growth when churning elements with anonymous event handler functions
18533         
18534         * bindings/js/JSSVGElementInstanceCustom.cpp:
18535         (WebCore::JSSVGElementInstance::mark): Don't ASSERT that an ElementInstance's
18536         correspondingElement has a JS wrapper. If a GC falls exactly between the
18537         allocation of the ElementInstance wrapper and the correspondingElement
18538         wrapper, the correspondingElement won't have a wrapper at the time we
18539         mark the ElementInstance's wrapper.
18540
18541 2009-04-20  Brady Eidson  <beidson@apple.com>
18542
18543         Rubberstamped by Mark Rowe
18544
18545         Clean builds are broken on case-sensitive filesystems.  Let's fix, shall we?
18546
18547         * platform/graphics/SimpleFontData.cpp: Remove "String.h" include.  Ojan probably intended to include
18548           "PlatformString.h" which was unnecessary because it is pulled in through other headers.  This wasn't a 
18549           build failure on case-insensitive file systems because those systems would find the system <string.h>, averting
18550           the warning.
18551
18552 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
18553
18554         Reviewed by Darin Adler.
18555
18556         Last patch for https://bugs.webkit.org/show_bug.cgi?id=21260
18557         Unbounded memory growth when churning elements with anonymous event handler functions
18558         
18559         Converted "lazy" event listeners to be unprotected, just like all the others.
18560
18561         * bindings/js/JSEventListener.cpp:
18562         (WebCore::JSEventListener::JSEventListener):
18563         (WebCore::JSEventListener::~JSEventListener):
18564         (WebCore::JSEventListener::jsFunction):
18565         (WebCore::JSEventListener::markJSFunction):
18566         (WebCore::JSEventListener::handleEvent):
18567         (WebCore::JSEventListener::virtualIsInline):
18568         * bindings/js/JSEventListener.h:
18569         (WebCore::JSEventListener::isInline): Merged JSAbstractEventListener
18570         into JSEventListener. Now that the only difference between JSEventListener
18571         and JSLazyEventListener is that JSLazyEventListener compiles lazily,
18572         there's no need for an abstract base class.
18573
18574         * bindings/js/JSLazyEventListener.cpp: Converted JSLazyEventListener to
18575         inherit from JSEventListener and match its un-GC-protected behavior.
18576         (WebCore::JSLazyEventListener::JSLazyEventListener): ditto
18577         (WebCore::JSLazyEventListener::parseCode): ditto
18578         (WebCore::createInlineEventListener): When creating a lazy event listener,
18579         ensure that the related node has a JS wrapper to mark the listener. Since
18580         the parser makes these listeners, it's possible that no JS reference has
18581         been made to the node yet.
18582         * bindings/js/JSLazyEventListener.h: ditto
18583
18584         * dom/EventListener.h:
18585         (WebCore::EventListener::clearJSFunction): Removed an usused function.
18586
18587 2009-04-20  Justin Garcia  <justin.garcia@apple.com>
18588
18589         Reviewed by Dan Bernstein.
18590
18591         https://bugs.webkit.org/show_bug.cgi?id=25299
18592         Don't bound caret to root line box if it is still inside its containing block
18593         
18594         Can't yet write tests for behavior of non-standard caret widths.
18595
18596         * rendering/RenderText.cpp:
18597         (WebCore::RenderText::localCaretRect):
18598
18599 2009-04-20  Steve Falkenburg  <sfalken@apple.com>
18600
18601         Separate JavaScriptCore.dll from WebKit.dll.
18602         Slight performance improvement or no change on benchmarks.
18603         
18604         Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
18605         and simplifies standalone JavaScriptCore builds.
18606
18607         Reviewed by Oliver Hunt.
18608
18609         * config.h: Specify __declspec(dllexport/dllimport) appropriately when exporting data.
18610
18611 2009-04-20  Anders Carlsson  <andersca@apple.com>
18612
18613         Reviewed by Sam Weinig.
18614
18615         <rdar://problem/6722845> In the Cocoa event model, NPWindow's window field should be null
18616
18617         * bridge/npapi.h:
18618         (_NPCocoaEvent::):
18619         Add a CGContextRef member to the draw struct. Add an NPCoordinateSpace enum.
18620         
18621         * plugins/npfunctions.h:
18622         Add a prototype for NPN_ConvertPoint.
18623
18624 2009-04-10  Ojan Vafai  <ojan@chromium.org>
18625
18626         Reviewed by Dan Bernstein.
18627
18628         Make textarea and text input metrics more closely match IEs.
18629         https://bugs.webkit.org/show_bug.cgi?id=15312
18630
18631         This involves:
18632         -set text input width to size*avgCharWidth + maxCharWidth - avgCharWidth
18633         -set textarea width to cols*avgCharWidth
18634         -Make default CSS match IEs
18635         -Correctly initializing m_avgCharWidth and m_maxCharWidth for each platform and SVG.
18636
18637         Those values for textarea and inputs were derived by doing a ton of manual
18638         testing of IE's width values for various textareas and fonts.
18639
18640         To get the average and max character width of a font, we do the following
18641         for each platform:
18642         -Win: TextMetrics expose avgCharWidth and maxCharWidth
18643         -SVG: avgCharWidth = width of an '0', fallback on width of a space glyph, then m_xHeight
18644             maxCharWidth = width of a 'W' for roman fonts, fallback on m_ascent
18645         -Linux: avgCharWidth = width of an '0', fallback on m_xHeight
18646             maxCharWidth = max of avgCharWidth and m_ascent
18647         -Mac: look in the OS/2 table for avgCharWidth and grab the maxCharWidth off the font.
18648             If either one is not there, then calculate the value using the Linux approach.
18649
18650         Linux ports could probably dig into the OS/2 table as well, but I'll leave
18651         that up to them to implement.
18652
18653         Tests: fast/forms/text-control-intrinsic-widths.html
18654                fast/forms/textarea-metrics.html
18655                svg/custom/svg-fonts-in-text-controls.html
18656
18657         * css/html4.css:
18658         * css/themeWin.css:
18659         * platform/graphics/SimpleFontData.cpp:
18660         (WebCore::SimpleFontData::SimpleFontData):
18661         (WebCore::SimpleFontData::initCharWidths):
18662         * platform/graphics/SimpleFontData.h:
18663         (WebCore::SimpleFontData::maxCharWidth):
18664         (WebCore::SimpleFontData::avgCharWidth):
18665         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
18666         (WebCore::SimpleFontData::platformCharWidthInit):
18667         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
18668         (WebCore::SimpleFontData::platformCharWidthInit):
18669         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
18670         (WebCore::SimpleFontData::platformCharWidthInit):
18671         * platform/graphics/gtk/SimpleFontDataPango.cpp:
18672         (WebCore::SimpleFontData::platformCharWidthInit):
18673         * platform/graphics/mac/SimpleFontDataMac.mm:
18674         (WebCore::SimpleFontData::platformCharWidthInit):
18675         * platform/graphics/qt/SimpleFontDataQt.cpp:
18676         (WebCore::SimpleFontData::platformCharWidthInit):
18677         * platform/graphics/win/SimpleFontDataCGWin.cpp:
18678         (WebCore::SimpleFontData::platformCharWidthInit):
18679         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
18680         (WebCore::SimpleFontData::platformInit):
18681         (WebCore::SimpleFontData::platformCharWidthInit):
18682         * platform/graphics/win/SimpleFontDataWin.cpp:
18683         (WebCore::SimpleFontData::initGDIFont):
18684         * platform/graphics/wx/SimpleFontDataWx.cpp:
18685         (WebCore::SimpleFontData::platformCharWidthInit):
18686         * rendering/RenderTextControl.cpp:
18687         (WebCore::RenderTextControl::calcPrefWidths):
18688         * rendering/RenderTextControlMultiLine.cpp:
18689         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
18690         * rendering/RenderTextControlSingleLine.cpp:
18691         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
18692
18693 2009-04-17  Eric Seidel  <eric@webkit.org>
18694
18695         Reviewed by Simon Fraser.
18696
18697         Remove m_absoluteBounds hack from SVG renderers and move outlineBoundsForRepaint into RenderSVGModelObject
18698         https://bugs.webkit.org/show_bug.cgi?id=25276
18699
18700         This also exposed a buggy paint check in RenderSVGContainer::layout()
18701         we should repaint if we are self painting OR if our kids changed, not AND.
18702
18703         Writing real outlineBoundsForRepaint required writing a mapLocalToContainer() function
18704
18705         No functional changes, thus no tests.
18706
18707         * rendering/RenderPath.cpp:
18708         (WebCore::RenderPath::localToParentTransform):
18709         (WebCore::RenderPath::layout):
18710         * rendering/RenderPath.h:
18711         * rendering/RenderSVGContainer.cpp:
18712         (WebCore::RenderSVGContainer::layout):
18713         * rendering/RenderSVGContainer.h:
18714         * rendering/RenderSVGModelObject.cpp:
18715         (WebCore::RenderSVGModelObject::mapLocalToContainer):
18716         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
18717         * rendering/RenderSVGModelObject.h:
18718         * rendering/RenderSVGRoot.cpp:
18719         (WebCore::RenderSVGRoot::layout):
18720         (WebCore::RenderSVGRoot::paint):
18721         (WebCore::RenderSVGRoot::localToParentTransformWithoutCSSParentOffset):
18722         (WebCore::RenderSVGRoot::localToParentTransform):
18723         (WebCore::RenderSVGRoot::computeRectForRepaint):
18724         * rendering/RenderSVGRoot.h:
18725         * rendering/RenderSVGViewportContainer.cpp:
18726         (WebCore::RenderSVGViewportContainer::layout):
18727
18728 2009-04-20  Simon Fraser  <simon.fraser@apple.com>
18729
18730         Reviewed by Eric Seidel
18731
18732         https://bugs.webkit.org/show_bug.cgi?id=25282
18733         
18734         outlineBoundsForRepaint() should compute a quad relative to the
18735         repaintContainer. This fixes the repaint issues originally fixed in
18736         https://bugs.webkit.org/show_bug.cgi?id=12885 for elements in compositing layers.
18737         Failure was only apparent when building with ACCELERATED_COMPOSITING enabled.
18738
18739         Tests: compositing/repaint/content-into-overflow.html
18740                compositing/repaint/overflow-into-content.html
18741
18742         * rendering/RenderBox.cpp:
18743         (WebCore::RenderBox::outlineBoundsForRepaint):
18744
18745 2009-04-20  Sam Weinig  <sam@webkit.org>
18746
18747         Rubber-stamped by Tim Hatcher.
18748
18749         Add licenses for xcconfig files.
18750
18751         * Configurations/Base.xcconfig:
18752         * Configurations/DebugRelease.xcconfig:
18753         * Configurations/FeatureDefines.xcconfig:
18754         * Configurations/Version.xcconfig:
18755         * Configurations/WebCore.xcconfig:
18756
18757 2009-04-20  Eric Roman  <eroman@chromium.org>
18758
18759         Reviewed by Dimitri Glazkov.
18760
18761         https://bugs.webkit.org/show_bug.cgi?id=25261
18762         Implement the V8 binding for DOMWindow.event similarly to JSC, by using
18763         the custom getter boilerplate from the IDL file. 
18764         Also, stub out DOMWindow.crypto which is defined by the idl.
18765
18766         * bindings/v8/V8AbstractEventListener.cpp:
18767         (WebCore::V8AbstractEventListener::invokeEventHandler):
18768         * bindings/v8/custom/V8DOMWindowCustom.cpp:
18769         (WebCore::ACCESSOR_GETTER):
18770
18771 2009-04-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
18772
18773         Reviewed by Xan Lopez.
18774
18775         https://bugs.webkit.org/show_bug.cgi?id=25243
18776         Crash when data:// loads are cancelled
18777
18778         Properly handle cancellation of the load for data:// loads. This
18779         fixes crashing in the followin test:
18780
18781         plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html
18782
18783         * platform/network/soup/ResourceHandleSoup.cpp:
18784         (WebCore::parseDataUrl):
18785
18786 2009-04-19  Dan Bernstein  <mitz@apple.com>
18787
18788         - maybe fix release builds
18789
18790         * dom/ScriptElement.cpp:
18791         (WebCore::ScriptElementData::notifyFinished):
18792
18793 2009-04-19  Dan Bernstein  <mitz@apple.com>
18794
18795         - not fix release builds
18796
18797         * dom/Document.cpp:
18798         (WebCore::Document::executeScriptSoonTimerFired):
18799
18800 2009-04-19  Dan Bernstein  <mitz@apple.com>
18801
18802         Reviewed by Mark Rowe.
18803
18804         - fix <rdar://problem/6734365> REGRESSION eBay "Save this search" link
18805           does nothing the second time search results are opened
18806
18807         Test: fast/dom/HTMLScriptElement/nested-execution.html
18808
18809         Instead of executing scripts as soon as they finish loading, which may
18810         happen synchronously during execution of another script, defer their
18811         execution until the next run loop iteration, using a queue that is
18812         similar to the HTML5 notion of the "list of scripts that will execute as
18813         soon as possible", and in my testing was consistent with how Firefox
18814         behaved.
18815
18816         * dom/Document.cpp:
18817         (WebCore::Document::Document): Initialize m_executeScriptSoonTimer.
18818         (WebCore::Document::~Document): deref() script elements in
18819         m_scriptsToExecuteSoon.
18820         (WebCore::Document::executeScriptSoonTimerFired): Added. Executes the
18821         scripts in m_scriptsToExecuteSoon and deref()s them.
18822         (WebCore::Document::executeScriptSoon): Added. Appends to
18823         m_scriptsToExecuteSoon and ref()s the script element, which keeps the
18824         ScriptElementData alive as well.
18825         * dom/Document.h:
18826         * dom/ScriptElement.cpp:
18827         (WebCore::ScriptElementData::ScriptElementData): Initialize m_requested.
18828         (WebCore::ScriptElementData::requestScript): Set m_requested to true, to
18829         prevent further load requests.
18830         (WebCore::ScriptElementData::execute): Added. Moved the code from
18831         notifyFinished() which should not execute synchronously here, to be
18832         called by the Document on a 0-interval timer.
18833         (WebCore::ScriptElementData::notifyFinished): Moved the code to
18834         dispatch events and evaluate the script, which should not execute
18835         synchronously, out of here.
18836         (WebCore::ScriptElementData::ignoresLoadRequest): Changed to test for
18837         m_requested instead of m_cachedScript, because the latter is cleared
18838         before the script is evaluated.
18839         * dom/ScriptElement.h:
18840
18841 2009-04-19  Oliver Hunt  <oliver@apple.com>
18842
18843         Reviewed by Antti Koivisto and Darin Adler.
18844
18845         <rdar://problem/6127705> Excessive memory consumption on image load failure
18846
18847         When we fail to decode an image we clear most of the image data, but not the
18848         input data itself, which can be backed by a CFData object that itself holds onto
18849         a few hundred Kbs of memory.  This patch merely ensures that this buffer gets
18850         cleared.
18851
18852         * loader/CachedImage.cpp:
18853         (WebCore::CachedImage::error):
18854
18855 2009-04-19  Darin Adler  <darin@apple.com>
18856
18857         Reviewed by Sam Weinig.
18858
18859         Add hooks so sudden termination will not cause loss of icons or local storage.
18860         rdar://problem/5951701
18861
18862         * loader/icon/IconDatabase.cpp: Marked various constants static to give them
18863         internal linkage.
18864         (WebCore::IconDatabase::IconDatabase): Added initial value for m_syncTimer.
18865         Removed unneeded initial value for m_defaultIconRecord. Changed assertion to
18866         work cross-platform.
18867         (WebCore::IconDatabase::wakeSyncThread): Added disableSuddenTermination, so
18868         we won't terminate until the sync thread has done its thing.
18869         (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Added disableSuddenTermination,
18870         so we won't terminate if we have an outstanding sync timer.
18871         (WebCore::IconDatabase::syncTimerFired): Added enableSuddenTermination, to
18872         balance the one in scheduleOrDeferSyncTimer.
18873         (WebCore::IconDatabase::syncThreadMainLoop): Added enableSuddenTermination, to
18874         balance the one in wakeSyncThread.
18875         (WebCore::IconDatabase::deleteAllPreparedStatements): Use clear() instead of set(0).
18876
18877         * loader/icon/IconDatabase.h: Use a Timer instead of an OwnPtr<Timer>.
18878
18879         * storage/LocalStorageArea.cpp:
18880         (WebCore::LocalStorageArea::scheduleFinalSync): Added disableSuddenTermination.
18881         (WebCore::LocalStorageArea::scheduleItemForSync): Ditto.
18882         (WebCore::LocalStorageArea::scheduleClear): Ditto.
18883         (WebCore::LocalStorageArea::syncTimerFired): Added a disableSuddenTermination if
18884         we schedule a performSync callback for later and an unconditional
18885         enableSuddenTermination to balance the ones in the schedule calls above.
18886         (WebCore::LocalStorageArea::sync): Factored out the work of the sync function so it
18887         can continue to use early return idiom.
18888         (WebCore::LocalStorageArea::performSync): Added a call to enableSuddenTermination.
18889
18890         * storage/LocalStorageArea.h: Added declaration of the sync function.
18891
18892 2009-04-19  David Kilzer  <ddkilzer@apple.com>
18893
18894         Make FEATURE_DEFINES completely dynamic
18895
18896         Reviewed by Darin Adler.
18897
18898         Make FEATURE_DEFINES depend on individual ENABLE_FEATURE_NAME
18899         variables for each feature, making it possible to remove all
18900         knowledge of FEATURE_DEFINES from build-webkit.
18901
18902         * Configurations/FeatureDefines.xcconfig: Extract a variable
18903         from FEATURE_DEFINES for each feature setting.
18904
18905 2009-04-18  Geoffrey Garen  <ggaren@apple.com>
18906
18907         Reviewed by Alexey Proskuryakov.
18908
18909         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
18910         Unbounded memory growth when churning elements with anonymous event handler functions
18911         
18912         Removed a little more complexity from event handler creation and destruction.
18913         
18914         Removed the jsProtectedEventListeners, jsProtectedInlineEventListeners,
18915         and jsInlineEventListeners maps, and all the code for managing them.
18916         
18917         ProtectedEventListeners don't exist anymore, so they're easy to nix.
18918         
18919         Inline EventListeners do still exist, but there's no reason to track
18920         them in a map. The map exists to enable 'removeEventListener' to associate
18921         a unique JSEventListener with a given JavaScript function. But the
18922         'removeEventListener' API only works with non-inline event listeners!
18923         
18924         * bindings/js/JSDOMGlobalObject.cpp:
18925         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
18926         (WebCore::JSDOMGlobalObject::findJSEventListener):
18927         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
18928         (WebCore::JSDOMGlobalObject::createJSInlineEventListener):
18929         * bindings/js/JSDOMGlobalObject.h:
18930         * bindings/js/JSEventListener.cpp:
18931         (WebCore::JSEventListener::JSEventListener):
18932         (WebCore::JSEventListener::clearJSFunctionInline):
18933         * bindings/js/JSLazyEventListener.cpp:
18934         (WebCore::JSLazyEventListener::~JSLazyEventListener):
18935         (WebCore::JSLazyEventListener::parseCode):
18936         * bindings/scripts/CodeGeneratorJS.pm:
18937
18938 2009-04-18  Dan Bernstein  <mitz@apple.com>
18939
18940         - try to fix the Windows build
18941
18942         * editing/VisiblePosition.cpp:
18943         (WebCore::VisiblePosition::characterAfter):
18944
18945 2009-04-18  Dan Bernstein  <mitz@apple.com>
18946
18947         - revert the previous change, which was to a file that the Windows
18948           port does not even use
18949
18950         * icu/unicode/utf16.h:
18951
18952 2009-04-18  Dan Bernstein  <mitz@apple.com>
18953
18954         Reviewed by Geoffrey Garen.
18955
18956         - try to fix the Windows build
18957
18958         * icu/unicode/utf16.h:
18959
18960 2009-04-18  Simon Fraser  <simon.fraser@apple.com>
18961
18962         Reviewed by Antti Koivisto.
18963         
18964         https://bugs.webkit.org/show_bug.cgi?id=25066
18965         
18966         When a <video> element gained a RenderLayer via opacity, reflection etc., the
18967         layer hierarchy was not correctly updated because RenderMedia skipped a level
18968         when asked for its children; it skipped m_controlsShadowRoot's renderer, which
18969         actually has a layer.
18970
18971         Test: fast/layers/video-layer.html
18972
18973         * rendering/MediaControlElements.cpp:
18974         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
18975         Don't manually call setParent() on the renderer. It will happen later
18976         as a result of addChild().
18977         
18978         * rendering/RenderMedia.cpp:
18979         (WebCore::RenderMedia::createControlsShadowRoot):
18980         Add m_controlsShadowRoot's renderer as a child. 
18981
18982         * rendering/RenderMedia.h:
18983         (WebCore::RenderMedia::children):
18984         Now maintain a RenderObjectChildList, m_children, and remove the unneeded
18985         removeChild() method. Make the two children() methods inline.
18986
18987         * rendering/RenderObject.cpp:
18988         (WebCore::RenderObject::moveLayers):
18989         Assert if moveLayers() is called with an oldParent that is not the
18990         layer's actual parent (which would have revealed this bug).
18991
18992 2009-04-18  Geoffrey Garen  <ggaren@apple.com>
18993
18994         Reviewed by Cameron Zwarich.
18995
18996         Fixed a layout test failure, caused by my last check-in
18997         (fast/dom/script-element-gc.html).
18998
18999         * bindings/js/JSDOMBinding.cpp:
19000         (WebCore::isObservableThroughDOM):
19001         * html/HTMLScriptElement.h:
19002         (WebCore::HTMLScriptElement::haveFiredLoadEvent): Treat script elements
19003         just like image elements: if a script element is loading, mark its JS
19004         wrapper, even if the element is not in the document.
19005
19006 2009-04-18  Jian Li  <jianli@chromium.org>
19007
19008         Reviewed by Dimitri Glazkov.
19009
19010         https://bugs.webkit.org/show_bug.cgi?id=25170
19011         Upstream V8WorkerCustom.cpp and V8WorkerContextCustom.cpp for V8 bindings.
19012
19013         * bindings/v8/WorkerContextExecutionProxy.cpp:
19014         (WebCore::WorkerContextExecutionProxy::findOrCreateEventListener):
19015         * bindings/v8/WorkerContextExecutionProxy.h:
19016         * bindings/v8/custom/V8WorkerContextCustom.cpp: Added.
19017         * bindings/v8/custom/V8WorkerCustom.cpp: Added.
19018
19019 2009-04-18  Jian Li  <jianli@chromium.org>
19020
19021         Reviewed by Dimitri Glazkov.
19022
19023         https://bugs.webkit.org/post_bug.cg://bugs.webkit.org/show_bug.cgi?id=25167 
19024         Change createHiddenXHRDependency and removeHiddenXHRDependency so that they can be used by other custom code in V8 bindings.
19025
19026         * bindings/v8/V8Utilities.cpp: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.cpp.
19027         (WebCore::createHiddenDependency):
19028         (WebCore::removeHiddenDependency):
19029         * bindings/v8/V8Utilities.h: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.h.
19030         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
19031         (WebCore::ACCESSOR_SETTER):
19032         (WebCore::CALLBACK_FUNC_DECL):
19033         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
19034         (WebCore::ACCESSOR_SETTER):
19035         (WebCore::CALLBACK_FUNC_DECL):
19036
19037 2009-04-18  Drew Wilson  <amw@apple.com>
19038
19039         <rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32
19040
19041         Reviewed by Dan Bernstein.
19042
19043         No test case since there is no change in behavior.
19044
19045         * editing/VisiblePosition.cpp:
19046         (WebCore::VisiblePosition::characterAfter): Now handles surrogate
19047         pairs correctly and returns a UChar32.
19048         * editing/VisiblePosition.h:
19049         (WebCore::VisiblePosition::characterBefore): Now returns a UChar32.
19050         * editing/visible_units.cpp:
19051         (WebCore::endOfFirstWordBoundaryContext): Renamed
19052         firstNonComplexContextLineBreak() to this. Changed it to use the
19053         generic requiresContextForWordBoundary() instead of
19054         hasLineBreakingPropertyComplexContext().
19055         (WebCore::startOfLastWordBoundaryContext): Replaces
19056         lastNonComplexContextLineBreak(), but returns the offset of
19057         the character after the last character that does not require
19058         context for word breaking. Also changed to use
19059         requiresContextForWordBoundary().
19060         (WebCore::previousBoundary): Updated for the above changes in
19061         names and semantics, and changed to use
19062         requiresContextForWordBoundary().
19063         (WebCore::nextBoundary): Ditto.
19064         (WebCore::startWordBoundary): Ditto.
19065         (WebCore::endWordBoundary): Ditto.
19066         (WebCore::previousWordPositionBoundary): Ditto.
19067         (WebCore::nextWordPositionBoundary): Ditto.
19068         * platform/text/TextBoundaries.h:
19069         (WebCore::requiresContextForWordBoundary): Added.
19070         * platform/text/mac/TextBoundaries.mm:
19071
19072 2009-04-18  Geoffrey Garen  <ggaren@apple.com>
19073
19074         Reviewed by Cameron Zwarich.
19075
19076         Fixed <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285
19077         REGRESSION (r42569): Profiles cannot be selected in inspector profiler
19078         
19079         EventListeners are shared; RegisteredEventListeners are not. Therefore,
19080         when a node wrapper needs to invalidate the node's JS event listeners,
19081         it should invalidate its RegisteredEventListeners, not its EventListeners.
19082         Otherwise, it might invalidate an EventListener shared by another node.
19083
19084         * dom/RegisteredEventListener.h:
19085         (WebCore::invalidateEventListeners): ditto
19086
19087 2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
19088
19089         Reviewed by Mark Rowe.
19090
19091         <rdar://problem/6781295> video.buffered and video.seekable are not
19092         the same. video.buffered should return only what is buffered and
19093         not what is seekable
19094
19095         * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable.
19096
19097         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
19098         (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable.
19099
19100         * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable.
19101         * platform/mac/WebCoreSystemInterface.mm: Ditto.
19102
19103 2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
19104
19105         Reviewed by Adele Peterson.
19106
19107         <rdar://problem/6747241> work around QTKit no longer reaching
19108         QTMovieLoadStateComplete
19109
19110         * WebCore.base.exp: Export wkQTMovieMaxTimeLoadedChangeNotification.
19111
19112         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
19113         (WebCore::MediaPlayerPrivate::createQTMovie): observe QTMovieMaxTimeLoadedChangeNotification.
19114         (WebCore::MediaPlayerPrivate::updateStates): compare duuration() with maxTimeLoaded() instead of
19115         using QTMovieLoadStateComplete to determine if a movie are fully loaded.
19116
19117         * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeLoadedChangeNotification.
19118         * platform/mac/WebCoreSystemInterface.mm: Ditto.
19119
19120 2009-04-18  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
19121
19122         Reviewed by George Staikos.
19123
19124         Make WML work again, most regressions test were failing.
19125
19126         * dom/Document.cpp: Be sure to create WML elements in WML namespace. Otherwhise hasTagName() comparisions fail.
19127         (WebCore::Document::createElement):
19128         * wml/WMLCardElement.cpp: Add ASSERT(hasTagName(cardTag)) to catch errors like this in future.
19129         (WebCore::WMLCardElement::WMLCardElement):
19130         * wml/WMLTagNames.in: Wrap comment in #if 0/#endif blocks, to silence the generation script.
19131
19132 2009-04-17  Justin Garcia  <justin.garcia@apple.com>
19133
19134         Reviewed by Dan Bernstein.
19135
19136         https://bugs.webkit.org/show_bug.cgi?id=25277
19137         If there is no line wrapping, a caret can leave its containing block but it shouldn't leave its root line box
19138         
19139         Also added code to handle a caret wider than one pixel.
19140         
19141         Added fast/inline/25277.html and fast/inline/25277-2.html
19142
19143         * rendering/RenderText.cpp:
19144         (WebCore::RenderText::localCaretRect): Distribute a caret's width to either side of the offset,
19145         so that a caret between two characters doesn't hang over one character more than the other.
19146         If there is no wrapping, the caret can leave its containing block, but not its root line box.
19147
19148 2009-04-17  Geoffrey Garen  <ggaren@apple.com>
19149
19150         Reviewed by Oliver Hunt.
19151
19152         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
19153         Unbounded memory growth when churning elements with anonymous event handler functions
19154         
19155         Some refactoring of "inline" event listeners.
19156         
19157         Renames:
19158             dispatchEventForType => dispatchEvent
19159             setWindowInlineEventListenerForTypeAndAttribute => setWindowInlineEventListener
19160             removeInlineEventListenerForType => clearInlineEventListener
19161             setInlineEventListenerForType => setInlineEventListener
19162             inlineEventListenerForType => getInlineEventListener
19163
19164         * bindings/js/JSLazyEventListener.cpp:
19165         (WebCore::eventParameterName):
19166         (WebCore::JSLazyEventListener::JSLazyEventListener):
19167         (WebCore::createInlineEventListener):
19168         * bindings/js/JSLazyEventListener.h: Added two helper functions for
19169         creating "inline" event listeners. These replace Document::createEventListener,
19170         and abstract the creation of JS event listeners for DOM attributes out
19171         of the DOM. Removed legacy JSProtectedEventListener constructor code for
19172         adding the event listener's function to a map, since lazy event listeners
19173         don't have functions at construction time.
19174
19175         * dom/Document.cpp:
19176         (WebCore::Document::setFocusedNode):
19177         * dom/Document.h:
19178         (WebCore::Document::isSVGDocument):
19179         * dom/Element.cpp:
19180         (WebCore::Element::setWindowInlineEventListener):
19181         * dom/Element.h: Updated for renames. Nixed Document::createEventListener,
19182         mentioned above. Moved setWindowInlineEventListenerForTypeAndAttribute
19183         to Element, for simplicity.
19184
19185         * dom/InputElement.cpp:
19186         (WebCore::InputElement::setValueFromRenderer):
19187         * dom/Node.cpp:
19188         (WebCore::Node::dispatchFocusEvent):
19189         (WebCore::Node::dispatchBlurEvent):
19190         (WebCore::Node::dispatchEvent):
19191         (WebCore::Node::clearInlineEventListener):
19192         (WebCore::Node::setInlineEventListener):
19193         (WebCore::Node::getInlineEventListener):
19194         (WebCore::Node::onabort):
19195         (WebCore::Node::setOnabort):
19196         (WebCore::Node::etc.):
19197         * dom/Node.h: Updated for renames.
19198         
19199         * editing/ReplaceSelectionCommand.cpp:
19200         (WebCore::ReplacementFragment::ReplacementFragment): Updated for renames.
19201         
19202         Updated these files for renames, and to use the new createInlineEventListener
19203         helper function:
19204
19205         * html/HTMLBodyElement.cpp:
19206         (WebCore::HTMLBodyElement::parseMappedAttribute):
19207         * html/HTMLButtonElement.cpp:
19208         (WebCore::HTMLButtonElement::parseMappedAttribute):
19209         * html/HTMLElement.cpp:
19210         (WebCore::HTMLElement::parseMappedAttribute):
19211         * html/HTMLFormControlElement.cpp:
19212         (WebCore::HTMLFormControlElement::onChange):
19213         * html/HTMLFormElement.cpp:
19214         (WebCore::HTMLFormElement::prepareSubmit):
19215         (WebCore::HTMLFormElement::reset):
19216         (WebCore::HTMLFormElement::parseMappedAttribute):
19217         * html/HTMLFrameElementBase.cpp:
19218         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
19219         * html/HTMLFrameSetElement.cpp:
19220         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
19221         * html/HTMLImageElement.cpp:
19222         (WebCore::HTMLImageElement::parseMappedAttribute):
19223         * html/HTMLImageLoader.cpp:
19224         (WebCore::HTMLImageLoader::dispatchLoadEvent):
19225         * html/HTMLInputElement.cpp:
19226         (WebCore::HTMLInputElement::parseMappedAttribute):
19227         (WebCore::HTMLInputElement::onSearch):
19228         * html/HTMLMediaElement.cpp:
19229         (WebCore::HTMLMediaElement::loadInternal):
19230         * html/HTMLObjectElement.cpp:
19231         (WebCore::HTMLObjectElement::parseMappedAttribute):
19232         * html/HTMLScriptElement.cpp:
19233         (WebCore::HTMLScriptElement::parseMappedAttribute):
19234         (WebCore::HTMLScriptElement::dispatchLoadEvent):
19235         (WebCore::HTMLScriptElement::dispatchErrorEvent):
19236         * html/HTMLSelectElement.cpp:
19237         (WebCore::HTMLSelectElement::parseMappedAttribute):
19238         * html/HTMLTextAreaElement.cpp:
19239         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
19240         * html/HTMLTokenizer.cpp:
19241         (WebCore::HTMLTokenizer::notifyFinished):
19242         * page/AccessibilityRenderObject.cpp:
19243         (WebCore::AccessibilityRenderObject::mouseButtonListener):
19244         * page/DOMWindow.cpp:
19245         * page/DOMWindow.h:
19246         (WebCore::DOMWindow::eventListeners):
19247         * page/EventHandler.cpp:
19248         (WebCore::EventHandler::canMouseDownStartSelect):
19249         (WebCore::EventHandler::canMouseDragExtendSelect):
19250         (WebCore::EventHandler::sendScrollEvent):
19251         * page/Page.cpp:
19252         (WebCore::networkStateChanged):
19253         * rendering/RenderListBox.cpp:
19254         (WebCore::RenderListBox::valueChanged):
19255         * rendering/RenderTextControl.cpp:
19256         (WebCore::RenderTextControl::selectionChanged):
19257         * svg/SVGElement.cpp:
19258         (WebCore::SVGElement::parseMappedAttribute):
19259         * svg/SVGElementInstance.cpp:
19260         * svg/SVGImageLoader.cpp:
19261         (WebCore::SVGImageLoader::dispatchLoadEvent):
19262         * svg/SVGSVGElement.cpp:
19263         (WebCore::SVGSVGElement::parseMappedAttribute):
19264         * svg/SVGScriptElement.cpp:
19265         (WebCore::SVGScriptElement::dispatchErrorEvent):
19266         * wml/WMLInputElement.cpp:
19267         (WebCore::WMLInputElement::defaultEventHandler):
19268
19269 2009-04-17  David Kilzer  <ddkilzer@apple.com>
19270
19271         Simplify FEATURE_DEFINES definition
19272
19273         Reviewed by Darin Adler.
19274
19275         This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME
19276         variables to their own FeatureDefines.xcconfig file.  It also
19277         extracts a new ENABLE_GEOLOCATION variable so that
19278         FEATURE_DEFINES only needs to be defined once.
19279
19280         * Configurations/FeatureDefines.xcconfig: Added.
19281         * Configurations/WebCore.xcconfig: Removed definition of
19282         ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES.  Added include
19283         of FeatureDefines.xcconfig.
19284         * WebCore.xcodeproj/project.pbxproj: Added
19285         FeatureDefines.xcconfig file.
19286         * bindings/scripts/CodeGeneratorObjC.pm: When creating a list of
19287         command-line macro definitions, split on one-or-more spaces
19288         instead of a single space since the FEATURE_DEFINES macro may
19289         now contain more than one space between macros if some macros
19290         aren't defined.
19291
19292 2009-04-17  Brady Eidson  <beidson@apple.com>
19293
19294         Reviewed by Mark Rowe
19295
19296         <rdar://problem/6786999> Tiger WebKit shouldn't try to POST on back/forward without nagging.
19297
19298         * platform/network/mac/ResourceHandleMac.mm:
19299         (WebCore::ResourceHandle::willLoadFromCache):
19300
19301 2009-04-17  Darin Adler  <darin@apple.com>
19302
19303         Reviewed by Timothy Hatcher.
19304
19305         Added sudden termination functions that can be called without involving
19306         the page or client.
19307
19308         * GNUmakefile.am: Added SuddenTermination.h.
19309         * WebCore.vcproj/WebCore.vcproj: Ditto.
19310         * WebCore.xcodeproj/project.pbxproj: Ditto. Also added SuddenTermination.mm.
19311
19312         * platform/SuddenTermination.h: Added.
19313         * platform/mac/SuddenTermination.mm: Added.
19314
19315 2009-04-17  Eric Seidel  <eric@webkit.org>
19316
19317         Reviewed by Simon Fraser.
19318
19319         Move more code into RenderSVGModelObject
19320
19321         needsLayer() already returns false from RenderSVGModelObject
19322         lineHeight and baselinePosition are from days of RenderPath having RenderBox parents.
19323
19324         I also added comments to explain how focus rings work (now that I understand)
19325         I got rid of two more uses of m_absoluteBounds (nearly dead!)
19326
19327         * rendering/RenderPath.cpp:
19328         * rendering/RenderPath.h:
19329         * rendering/RenderSVGContainer.cpp:
19330         (WebCore::RenderSVGContainer::paint):
19331         (WebCore::RenderSVGContainer::addFocusRingRects):
19332         * rendering/RenderSVGContainer.h:
19333         * rendering/RenderSVGModelObject.cpp:
19334         (WebCore::RenderSVGModelObject::absoluteRects):
19335         (WebCore::RenderSVGModelObject::absoluteQuads):
19336         * rendering/RenderSVGModelObject.h:
19337
19338 2009-04-16  Peter Kasting  <pkasting@google.com>
19339
19340         Reviewed by Adele Peterson.
19341
19342         https://bugs.webkit.org/show_bug.cgi?id=25238
19343         Invalidate the hovered scrollbar part when resetting the pressed part,
19344         since once there is no pressed part we can draw a hovered state.
19345
19346         * platform/Scrollbar.cpp:
19347         (WebCore::Scrollbar::setHoveredPart):
19348         (WebCore::Scrollbar::setPressedPart):
19349
19350 2009-04-16  Darin Fisher  <darin@chromium.org>
19351
19352         Reviewed by Darin Adler.
19353
19354         https://bugs.webkit.org/show_bug.cgi?id=25223
19355         REGRESSION: Back button after form submission to the same URL fails to navigate.
19356
19357         Test: http/tests/navigation/post-goback-same-url.html
19358
19359         * loader/FrameLoader.cpp:
19360         (WebCore::FrameLoader::loadItem): Check if the page we are leaving has
19361         FormData.
19362
19363 2009-04-17  Nikolas Zimmermann  <nikolas.zimmerman@torchmobile.com>
19364
19365         Not reviewed. Fix WML enabled builds.
19366
19367         * rendering/RenderTableRow.cpp: Remove dead code, which is no longer necessary.
19368         (WebCore::RenderTableRow::addChild):
19369         * wml/WMLInputElement.cpp: Apply same fix HTMLInputElement received. Covert RenderObject's to RenderTextControl where needed.
19370         (WebCore::WMLInputElement::defaultEventHandler):
19371
19372 2009-04-17  Pierre d'Herbemont  <pdherbemont@apple.com>
19373
19374         Reviewed by Simon Fraser.
19375         
19376         https://bugs.webkit.org/show_bug.cgi?id=24849
19377
19378         Add support for the media element 'played' attribute.
19379         This involves support of "normalized TimeRanges" as described by
19380         the spec.
19381
19382         Test: media/video-played.html
19383
19384         * html/HTMLMediaElement.cpp:
19385         (WebCore::HTMLMediaElement::HTMLMediaElement): Renamed 
19386         m_currentTimeDuringSeek->m_lastSeekTime. Added m_playing and m_playedTimeRanges.
19387         (WebCore::HTMLMediaElement::loadInternal): Reset m_playing, m_lastSeekTime, and
19388         m_playedTimeRanges
19389         (WebCore::HTMLMediaElement::seek): Set current time to m_playedTimeRanges
19390         (WebCore::HTMLMediaElement::currentTime): m_currentTimeDuringSeek -> m_lastSeekTime
19391         (WebCore::HTMLMediaElement::played): Returns m_playedTimeRanges.
19392         (WebCore::HTMLMediaElement::updatePlayState): Add the new played time ranges when pausing. 
19393         Set the m_playing flag.
19394         * html/HTMLMediaElement.h:
19395
19396         * html/TimeRanges.cpp:
19397         (TimeRanges::add): Merge range(s) if overlap.
19398         * html/TimeRanges.h: Add various helpers (below).
19399         (WebCore::TimeRanges::Range::isPointInRange): Added.
19400         (WebCore::TimeRanges::Range::isOverlappingRange): Ditto.
19401         (WebCore::TimeRanges::Range::unionWithOverlappingRange): Ditto.
19402         (WebCore::TimeRanges::Range::isBeforeRange): Ditto.
19403
19404 2009-04-17  Darin Adler  <darin@apple.com>
19405
19406         Reviewed by Antti Koivisto.
19407
19408         Bug 25210: don't use ObjC methods to wrap/unwrap DOM objects with ObjC
19409         https://bugs.webkit.org/show_bug.cgi?id=25210
19410
19411         * WebCore.base.exp: Export the core and kit function overloads that are used
19412         in WebKit. Also resorted this file.
19413
19414         * WebCore.xcodeproj/project.pbxproj: Re-added DOMHTMLCanvasElement.h to fix
19415         a strange problem with the file type.
19416
19417         * bindings/objc/DOM.mm: Removed the many extraneous includes. Added new includes
19418         so we can use and implement the new core and kit functions. Import DOMInternal.h
19419         first so it can do its public/private magic.
19420         (-[DOMNode _rootObject]): Changed to use early-return style.
19421         (kitClass): Added. Tells the wrapper generator what kind of node class to create
19422         to wrap DOM nodes. This has the code that used to be in the _wrapNode method.
19423         (kit): Added. Takes an EventTarget and makes the appropriate type of wrapper,
19424         dpending on whether it's a Node or an SVGElementInstance. This replace methods
19425         that used to be on both of those classes.
19426         (-[DOMNode boundingBox]): Changed to use early return, and the core function.
19427         (-[DOMNode lineBoxRects]): Ditto.
19428         (-[DOMNode renderedImage]): Ditto.
19429         (-[DOMRange boundingBox]): Ditto.
19430         (-[DOMRange lineBoxRects]): Ditto.
19431         (-[DOMElement image]): Ditto.
19432         (-[DOMElement _font]): Ditto.
19433         (-[DOMElement _imageTIFFRepresentation]): Ditto.
19434         (-[DOMElement _getURLAttribute:]): Ditto.
19435         (-[DOMElement isFocused]): Ditto.
19436         (kit): Hand-wrote the version of this for NodeFilter, since it's a protocol,
19437         not a class in the binding.
19438         (core): Ditto.
19439         (-[DOMNodeFilter acceptNode:]): Use core.
19440
19441         * bindings/objc/DOMAbstractView.mm:
19442         (-[DOMAbstractView document]): Use kit.
19443         (-[DOMAbstractView _disconnectFrame]): Call removeDOMWrapper, which is no longer
19444         in the WebCore namespace, since it's headed for WebKit in the future.
19445         (core): Hand-wrote the version of this for DOMAbstractView.mm, since we store
19446         a pointer to the Frame, not the DMWindow.
19447         (kit): Ditto.
19448
19449         * bindings/objc/DOMCSS.mm:
19450         (kitClass): Added. Tells the wrapper generator what kind of node class to create
19451         to wrap CSS objects. This has the code that used to be in the _wrapStyleSheet,
19452         _wrapCSSRule, and _wrapCSSValue methods.
19453
19454         * bindings/objc/DOMEvents.mm:
19455         (kitClass): Added. Tells the wrapper generator what kind of node class to create
19456         to wrap event objects. This has the code that used to be in the _wrapEvent methods.
19457
19458         * bindings/objc/DOMHTML.mm:
19459         (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]): Use kit and core.
19460         (-[DOMHTMLDocument createDocumentFragmentWithText:]): Ditto.
19461         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto.
19462         (-[DOMHTMLInputElement _rectOnScreen]): Ditto.
19463         (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]): Ditto.
19464         (-[DOMHTMLInputElement _selectedRange]): Ditto.
19465         (-[DOMHTMLInputElement _setAutofilled:]): Ditto.
19466         (-[DOMHTMLSelectElement _activateItemAtIndex:]): Ditto.
19467         (-[DOMHTMLInputElement _isEdited]): Ditto.
19468         (-[DOMHTMLTextAreaElement _isEdited]): Ditto.
19469         (kitClass): Added. Gives HTMLOptionCollection objects an appropriate wrapper.
19470
19471         * bindings/objc/DOMInternal.h: Removed most of the imports. There's no reason
19472         to have this header include all the other internal DOM headers. Removed unneeded
19473         interfaces, including the redeclaration of _init in DOMObject, since it's already
19474         inherited from WebScriptObject. Moved all the functions out of the WebCore
19475         namespace since this code is destined for WebKit, which doesn't use a namespace.
19476         Added kit and core functions for the two classes that live in this header.
19477
19478         * bindings/objc/DOMInternal.mm:
19479         (-[WebScriptObject _initializeScriptDOMNodeImp]): Use core.
19480
19481         * bindings/objc/DOMObject.h: Made the _internal field be private instead of
19482         protected. This also allows the "#define private public" trick to be used to
19483         make the field accessible inside the bindings code.
19484
19485         * bindings/objc/DOMObject.mm:
19486         (-[DOMObject dealloc]): Updated for namespace change.
19487         (-[DOMObject sheet]): Use core and kit functions.
19488
19489         * bindings/objc/DOMRGBColor.mm:
19490         (-[DOMRGBColor dealloc]): Updated for namespace change.
19491         (-[DOMRGBColor red]): Use kit function.
19492         (-[DOMRGBColor green]): Ditto.
19493         (-[DOMRGBColor blue]): Ditto.
19494         (-[DOMRGBColor alpha]): Ditto.
19495         (core): Added. Replaces the _RGBColor method.
19496         (kit): Added. Replaces the _wrapRGBColor method.
19497
19498         * bindings/objc/DOMSVGPathSegInternal.mm:
19499         (kitClass): Added. Replaces the _wrapSVGPathSeg method.
19500
19501         * bindings/objc/DOMUtility.mm:
19502         (JSC::createDOMWrapper): Use kit function.
19503         (createDOMWrapper): Ditto.
19504
19505         * bindings/objc/DOMXPath.mm:
19506         (core): Added. Replaces the _xpathNSResolver method.
19507         (kit): Added. Replaces the _wrapXPathNSResolver method.
19508
19509         * bindings/objc/ObjCEventListener.mm:
19510         (WebCore::ObjCEventListener::find): Changed to use early return.
19511         (WebCore::ObjCEventListener::handleEvent): Use kit function.
19512
19513         * bindings/objc/ObjCNodeFilterCondition.mm:
19514         (WebCore::ObjCNodeFilterCondition::acceptNode): Use kit function.
19515
19516         * bindings/objc/WebScriptObject.mm:
19517         (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
19518         Updated for namespace change.
19519
19520         * bindings/scripts/CodeGeneratorObjC.pm: Changed spelling of "license"
19521         to U.S. spelling. Removed GetObjCTypeMaker, GetObjCTypeGetterName,
19522         GetInternalTypeGetterSignature, and GetInternalTypeMakerSignature.
19523         Changed includes to conform to new scheme. Generate core and kit
19524         functions instead of methods and calls to those functions. Added a new
19525         attribute, Polymorphic, to indicate classes that have derived subclasses.
19526         Removed the old ObjCCustomInternalImpl attribute.
19527
19528         * css/CSSRule.idl: Use Polymorphic attribute, so core and kit functions
19529         will be generated, with kit calling kitClass. This requires less hand-
19530         written code than the old ObjCCustomInternalImpl.
19531         * css/CSSValue.idl: Ditto.
19532         * css/StyleSheet.idl: Ditto.
19533         * dom/Event.idl: Ditto.
19534         * dom/Node.idl: Ditto.
19535         * html/HTMLCollection.idl: Ditto.
19536         * svg/SVGPathSeg.idl: Ditto.
19537
19538         * editing/TextAffinity.h: Moved kit and core functions out of the
19539         WebCore namespace since this code is destined for WebKit, which
19540         doesn't use a namespace
19541
19542         * platform/mac/ClipboardMac.mm:
19543         (WebCore::ClipboardMac::declareAndWriteDragImage): Use kit function.
19544
19545         * platform/mac/DragDataMac.mm:
19546         (WebCore::DragData::asFragment): Use core function.
19547
19548         * platform/mac/PasteboardMac.mm:
19549         (WebCore::Pasteboard::writeSelection): Use kit function.
19550
19551         * svg/SVGElementInstance.idl: Removed now-unneeded ObjCCustomInternalImpl
19552         function. This can be generated in a standard way now.
19553         * svg/SVGViewSpec.idl: Ditto.
19554
19555 2009-04-17  Brady Eidson  <beidson@apple.com>
19556
19557         Reviewed by Maciej Stachowiak
19558
19559         <rdar://problem/5753299> "Private Browsing" doesn't affect HTML 5 Database storage
19560
19561         If the Page is in private browsing mode when a statement is queued up, flag that 
19562         statement as read-only.
19563
19564         It would be better to set the read-only flag on the database thread when it actually
19565         executes, but that would either require making Settings access a lock-protected operation
19566         or involve a synchronous callback to the WebCore thread, neither of which seem worth it.
19567         If it becomes an issue in practice, we can revisit this later.
19568
19569         Test: storage/private-browsing-readonly.html
19570
19571         * storage/Database.cpp:
19572         (WebCore::Database::setAuthorizerReadOnly):
19573         * storage/Database.h:
19574
19575         * storage/DatabaseAuthorizer.cpp:  For all action types that would alter the database,
19576           deny when in read-only mode.
19577         (WebCore::DatabaseAuthorizer::reset):
19578         (WebCore::DatabaseAuthorizer::createTable):
19579         (WebCore::DatabaseAuthorizer::dropTable):
19580         (WebCore::DatabaseAuthorizer::allowAlterTable):
19581         (WebCore::DatabaseAuthorizer::createIndex):
19582         (WebCore::DatabaseAuthorizer::dropIndex):
19583         (WebCore::DatabaseAuthorizer::createTrigger):
19584         (WebCore::DatabaseAuthorizer::dropTrigger):
19585         (WebCore::DatabaseAuthorizer::createVTable):
19586         (WebCore::DatabaseAuthorizer::dropVTable):
19587         (WebCore::DatabaseAuthorizer::allowDelete):
19588         (WebCore::DatabaseAuthorizer::allowInsert):
19589         (WebCore::DatabaseAuthorizer::allowUpdate):
19590         (WebCore::DatabaseAuthorizer::setReadOnly):
19591         * storage/DatabaseAuthorizer.h:
19592
19593         * storage/SQLStatement.cpp:
19594         (WebCore::SQLStatement::create): Add a m_readOnly flag.
19595         (WebCore::SQLStatement::SQLStatement): Ditto.
19596         (WebCore::SQLStatement::execute): If m_readOnly is set, tell the authorizer to change
19597           to read-only mode.
19598         * storage/SQLStatement.h:
19599
19600         * storage/SQLTransaction.cpp:
19601         (WebCore::SQLTransaction::executeSQL): Flag the statement as read-only if the Page is
19602           currently in private browsing mode.
19603
19604 2009-04-17  Eric Seidel  <eric@webkit.org>
19605
19606         Reviewed by Antti Koivisto.
19607
19608         Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint
19609         https://bugs.webkit.org/show_bug.cgi?id=25268
19610
19611         Lots of minus lines.  Now we're sharing more sane code
19612         (which will respect -webkit-transforms! and scroll offsets correctly)
19613
19614         Which means this fixes:
19615         https://bugs.webkit.org/show_bug.cgi?id=20769 and
19616         https://bugs.webkit.org/show_bug.cgi?id=21968 too!
19617
19618         We're no longer expanding the paint rect "for anti-aliasing", since
19619         I can't find a case where that's required.  If it is, repaintRectInLocalCoordinates()
19620         should be fixed to handle those cases instead of here.
19621
19622         This fixes svg/custom/scroll-hit-test (now that we respect scroll offsets when repainting)
19623         as well as improves our focus ring drawing seen in svg/custom/focus-ring
19624         focus rings are now closer to transformed content by a couple pixels (they were needlessly outset by the antialiasing hack)
19625         Also, it fixes the dumped rects for markers, causing a progression in svg/custom/marker-overflow-clip
19626
19627         * rendering/RenderPath.cpp:
19628         (WebCore::RenderPath::repaintRectInLocalCoordinates):
19629         (WebCore::RenderPath::setPath):
19630         * rendering/RenderPath.h:
19631         * rendering/RenderSVGContainer.cpp:
19632         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
19633         * rendering/RenderSVGContainer.h:
19634         * rendering/RenderSVGModelObject.cpp:
19635         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
19636         (WebCore::RenderSVGModelObject::computeRectForRepaint):
19637         * rendering/RenderSVGModelObject.h:
19638         * rendering/RenderSVGRoot.cpp:
19639         (WebCore::RenderSVGRoot::computeRectForRepaint):
19640         * rendering/RenderSVGRoot.h:
19641
19642 2009-04-17  Chris Fleizach  <cfleizach@apple.com>
19643
19644         Reviewed by Darin Adler.
19645
19646         Bug 25259: AX: VoiceOver cmd-cntl-space does not follow the google.com->more link
19647         https://bugs.webkit.org/show_bug.cgi?id=25259
19648   
19649         When a node becomes visible or hidden, accessibility needs to be told to update.
19650
19651         Test: accessibility/visible-elements.html
19652
19653         * rendering/RenderObject.cpp:
19654         (WebCore::RenderObject::styleWillChange):
19655
19656 2009-04-17  Kevin Ollivier  <kevino@theolliviers.com>
19657
19658         wx build fix, added missing header.
19659
19660         * platform/graphics/wx/TransformationMatrixWx.cpp:
19661
19662 2009-04-17  Simon Hausmann  <simon.hausmann@nokia.com>
19663
19664         Unreviewed build fix.
19665
19666         Fix the build with enabled SVG filters
19667
19668         * rendering/RenderSVGModelObject.cpp: Include SVGResourceFilter.h.
19669
19670 2009-04-16  Eric Roman  <eroman@chromium.org>
19671
19672         Reviewed by Dimitri Glazkov.
19673
19674         https://bugs.webkit.org/show_bug.cgi?id=25196
19675         Add a missing V8DOMMap include.
19676
19677         * bindings/v8/WorkerScriptController.cpp: Included V8DOMMap.h.
19678
19679 2009-04-16  Dimitri Glazkov  <dglazkov@chromium.org>
19680
19681         Reviewed by Darin Fisher.
19682
19683         https://bugs.webkit.org/show_bug.cgi?id=25260
19684         Finish V8 custom bindings for InspectorController.
19685
19686         * bindings/v8/custom/V8InspectorControllerCustom.cpp:
19687         (WebCore::CALLBACK_FUNC_DECL): Added.
19688
19689 2009-04-16  Kevin Watters  <kevinwatters@gmail.com>
19690
19691         Reviewed by Kevin Ollivier.
19692
19693         Switch to wxGraphicsBitmap when using wxGraphicsContext so that we're not doing
19694         unnecessary conversions internally when drawing bitmaps.
19695         
19696         https://bugs.webkit.org/show_bug.cgi?id=25248
19697
19698         * platform/graphics/ImageSource.h:
19699         * platform/graphics/wx/ImageSourceWx.cpp:
19700         (WebCore::ImageSource::createFrameAtIndex):
19701         * platform/graphics/wx/ImageWx.cpp:
19702         (WebCore::BitmapImage::draw):
19703         (WebCore::BitmapImage::drawPattern):
19704
19705 2009-04-16  Justin Garcia  <justin.garcia@apple.com>
19706
19707         Reviewed by Dan Bernstein.
19708
19709         Performing a block style change in an editable root that contains only a br adds a newline
19710         https://bugs.webkit.org/show_bug.cgi?id=25256
19711
19712         * editing/CompositeEditCommand.cpp:
19713         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix a bad check for an root
19714         block that didn't handle a root that contained a placeholder.
19715
19716 2009-04-16  Eric Seidel  <eric@webkit.org>
19717
19718         Reviewed by Simon Fraser.
19719
19720         Fix computeContainerBoundingBox to respect viewport translations
19721         https://bugs.webkit.org/show_bug.cgi?id=25254
19722
19723         Previously computeContainerBoundingBox was just adding the viewportTranslation.
19724         Which, although it has a confusing name, only contains the scale and translation
19725         for the viewBox/preserveAspectRatio adjustment.  It does not contain the
19726         translation for the x/y offset of the viewport.
19727         localToParentTransform() does contain this offset, so we use that instead
19728         of the previous hacky code.
19729
19730         * rendering/RenderSVGContainer.h:
19731         * rendering/RenderSVGViewportContainer.h:
19732         * rendering/SVGRenderSupport.cpp:
19733         (WebCore::computeContainerBoundingBox):
19734
19735 2009-04-16  Eric Seidel  <eric@webkit.org>
19736
19737         Reviewed by Simon Fraser.
19738
19739         Add a localToParentTransform() method which includes the
19740         full transform between local and parent local coordinates.
19741         https://bugs.webkit.org/show_bug.cgi?id=25226
19742
19743         Moved m_localTransform up into RenderSVGTransformableContainer
19744         and added a comment to RenderSVGViewportContainer to make it more
19745         clear that it does not have a localTransform().
19746
19747         This patch reveals two more failed design decisions:
19748         1.  Use of RenderBox::absoluteTransform() to mean "absoluteTransform()
19749             including only my localTransform()" callers are probably using it
19750             incorrectly anyway and are just masking bugs in the confused code.
19751         2.  computeContainerBoundingBox does not include viewport translations in
19752             its computed bounding box, so bounding boxes will be off for parents of
19753             inner <svg> elements.  I'll fix this an updated the results in a separate change.
19754
19755         No functional changes, thus no tests.
19756
19757         * rendering/RenderObject.cpp:
19758         (WebCore::RenderObject::localToParentTransform):
19759         (WebCore::RenderObject::absoluteTransform):
19760         * rendering/RenderObject.h:
19761         * rendering/RenderSVGContainer.cpp:
19762         (WebCore::RenderSVGContainer::layout):
19763         * rendering/RenderSVGContainer.h:
19764         (WebCore::RenderSVGContainer::viewportTransform):
19765         * rendering/RenderSVGHiddenContainer.cpp:
19766         * rendering/RenderSVGHiddenContainer.h:
19767         (WebCore::RenderSVGHiddenContainer::absoluteTransform):
19768         * rendering/RenderSVGRoot.cpp:
19769         (WebCore::RenderSVGRoot::localToParentTransform):
19770         (WebCore::RenderSVGRoot::absoluteTransform):
19771         * rendering/RenderSVGRoot.h:
19772         * rendering/RenderSVGTransformableContainer.cpp:
19773         (WebCore::RenderSVGTransformableContainer::localToParentTransform):
19774         (WebCore::RenderSVGTransformableContainer::localTransform):
19775         * rendering/RenderSVGTransformableContainer.h:
19776         * rendering/RenderSVGViewportContainer.cpp:
19777         (WebCore::RenderSVGViewportContainer::localToParentTransform):
19778         (WebCore::RenderSVGViewportContainer::absoluteTransform):
19779         * rendering/RenderSVGViewportContainer.h:
19780         * rendering/SVGRenderSupport.cpp:
19781         (WebCore::computeContainerBoundingBox):
19782
19783 2009-04-16  Adam Langley  <agl@google.com>
19784
19785         Reviewed by Darin Fisher.
19786
19787         Fix Chromium's rendering of <option> elements inside of <optgroups>.
19788
19789         https://bugs.webkit.org/show_bug.cgi?id=25244
19790
19791         Test (will included as a manual test by https://bugs.webkit.org/show_bug.cgi?id=24900):
19792
19793         <select>
19794           <optgroup label="Should be bold">
19795             <option>Should not be bold</option>
19796           </optgroup>
19797         </select>
19798
19799         * css/themeWin.css: adding comments
19800         * platform/chromium/PopupMenuChromium.cpp:
19801         (WebCore::PopupListBox::getRowFont): use menuStyle() rather than the item's style
19802
19803 2009-04-16  Eric Roman  <eroman@chromium.org>
19804
19805         Reviewed by Alexey Proskuryakov.
19806
19807         https://bugs.webkit.org/show_bug.cgi?id=25218
19808
19809         Make DOMWindow::inlineEventListenerForType not have the "inline"
19810         keyword. As this method gets used outside of DOMWindow.
19811
19812         * page/DOMWindow.cpp:
19813         (WebCore::DOMWindow::inlineEventListenerForType):
19814
19815 2009-04-16  Greg Bolsinga  <bolsinga@apple.com>
19816
19817         Reviewed by Antti Koivisto.
19818
19819         Fix <rdar://problem/6766969>
19820         
19821         When deferred repaints are enabled and being reset and there is a active
19822         timer, stop the timer and do the deferred repaints immediately.
19823
19824         * page/FrameView.cpp:
19825         (WebCore::FrameView::resetDeferredRepaintDelay):
19826
19827 2009-04-16  Xan Lopez  <xlopez@igalia.com>
19828
19829         Reviewed by Sam Weinig.
19830
19831         https://bugs.webkit.org/show_bug.cgi?id=25241
19832         Remove superfluous NotImplemented.h includes.
19833
19834         * html/CanvasRenderingContext2D.cpp:
19835         * html/CanvasStyle.cpp:
19836         * page/AccessibilityRenderObject.cpp:
19837         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
19838         * platform/graphics/GraphicsContext.cpp:
19839         * platform/graphics/cairo/ImageBufferCairo.cpp:
19840         * platform/graphics/cairo/PathCairo.cpp:
19841         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
19842         * platform/graphics/gtk/FontGtk.cpp:
19843         * platform/graphics/gtk/IconGtk.cpp:
19844         * platform/graphics/qt/IconQt.cpp:
19845         * platform/graphics/qt/ImageQt.cpp:
19846         * platform/graphics/qt/ImageSourceQt.cpp:
19847         * platform/graphics/skia/ImageBufferSkia.cpp:
19848         * platform/graphics/skia/ImageSkia.cpp:
19849         * platform/graphics/win/ColorSafari.cpp:
19850         * platform/graphics/win/FontWin.cpp:
19851         * platform/graphics/win/GraphicsContextCGWin.cpp:
19852         * platform/graphics/win/GraphicsContextCairoWin.cpp:
19853         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
19854         * platform/graphics/wx/ImageWx.cpp:
19855         * platform/graphics/wx/TransformationMatrixWx.cpp:
19856         * platform/gtk/PlatformScreenGtk.cpp:
19857         * platform/gtk/PopupMenuGtk.cpp:
19858         * platform/gtk/ScrollViewGtk.cpp:
19859         * platform/gtk/ScrollbarGtk.cpp:
19860         * platform/network/cf/ResourceHandleCFNet.cpp:
19861         * platform/posix/FileSystemPOSIX.cpp:
19862         * platform/qt/DragDataQt.cpp:
19863         * platform/qt/FileSystemQt.cpp:
19864         * platform/qt/Localizations.cpp:
19865         * platform/qt/PopupMenuQt.cpp:
19866         * platform/win/EditorWin.cpp:
19867         * platform/win/PasteboardWin.cpp:
19868         * platform/wx/KeyboardEventWx.cpp:
19869         * platform/wx/PopupMenuWx.cpp:
19870         * platform/wx/SharedTimerWx.cpp:
19871         * plugins/gtk/PluginViewGtk.cpp:
19872         * plugins/mac/PluginPackageMac.cpp:
19873         * plugins/qt/PluginPackageQt.cpp:
19874         * plugins/win/PluginViewWin.cpp:
19875         * rendering/RenderThemeChromiumLinux.cpp:
19876         * svg/graphics/SVGImage.cpp:
19877
19878 2009-04-16  Geoffrey Garen  <ggaren@apple.com>
19879
19880         Reviewed by Sam Weinig.
19881
19882         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
19883         Unbounded memory growth when churning elements with anonymous event handler functions
19884         
19885         Some cleanup in event handling code.
19886
19887         * bindings/js/JSDOMGlobalObject.cpp:
19888         * bindings/js/JSDOMGlobalObject.h: Removed findJSProtectedEventListener
19889         and findJSProtectedEventListener because they are now unused.
19890
19891         * bindings/js/JSEventListener.cpp:
19892         * bindings/js/JSEventListener.h:
19893         (WebCore::JSEventListener::clearGlobalObject):
19894         * bindings/js/JSLazyEventListener.cpp:
19895         (WebCore::JSLazyEventListener::JSLazyEventListener):
19896         (WebCore::JSLazyEventListener::~JSLazyEventListener):
19897         (WebCore::JSLazyEventListener::globalObject):
19898         * bindings/js/JSLazyEventListener.h:
19899         (WebCore::JSLazyEventListener::clearGlobalObject): Nixed JSProtectedEventListener,
19900         and merged it with JSLazyEventListener, the only remaining event listener
19901         that still GC-protects its function and global object.
19902
19903         * bindings/js/ScriptController.cpp:
19904         (WebCore::ScriptController::ScriptController):
19905         * bindings/js/ScriptController.h:
19906         (WebCore::ScriptController::setEventHandlerLineNumber):
19907         (WebCore::ScriptController::eventHandlerLineNumber): Renamed handlerLineno =>
19908         handlerLineNumber, because anything less would be uncivilized. Removed
19909         createInlineEventListener because it mostly did irrelevent work, so it
19910         just got in the way of understanding how event handler creation works.
19911
19912         * dom/Document.cpp:
19913         (WebCore::Document::createEventListener):
19914         * dom/XMLTokenizerLibxml2.cpp:
19915         (WebCore::XMLTokenizer::startElementNs):
19916         * html/HTMLTokenizer.cpp:
19917         (WebCore::HTMLTokenizer::processToken): Ditto.
19918
19919 2009-04-16  Beth Dakin  <bdakin@apple.com>
19920
19921         Reviewed by Dave Hyatt.
19922
19923         Fix for https://bugs.webkit.org/show_bug.cgi?id=20765 Website 
19924         crashes on load due to messy HTML in search form
19925         -and corresponding-
19926         <rdar://problem/6210633>
19927
19928         Before this patch, <form>s were allowed to sit inside tables 
19929         without being wrapped by anonymous table parts. There was also a 
19930         concept that such a form could be "demoted" and would not be 
19931         allowed to have any children. This patch has the HTML parser mark 
19932         form elements that have been demoted as such, and then the demoted 
19933         forms are not given renderers. I also removed the code that allowed 
19934         forms to sit in tables without anonymous table sections. So now any 
19935         forms that do manage to get a renderer inside a table will also be 
19936         wrapped with appropriate table parts.
19937
19938         * html/HTMLFormElement.cpp:
19939         (WebCore::HTMLFormElement::HTMLFormElement):
19940         (WebCore::HTMLFormElement::rendererIsNeeded):
19941         * html/HTMLFormElement.h:
19942         (WebCore::HTMLFormElement::setDemoted):
19943         (WebCore::HTMLFormElement::isDemoted):
19944         * html/HTMLParser.cpp:
19945         (WebCore::HTMLParser::insertNode):
19946         * rendering/RenderTable.cpp:
19947         (WebCore::RenderTable::addChild):
19948         * rendering/RenderTableRow.cpp:
19949         (WebCore::RenderTableRow::addChild):
19950         * rendering/RenderTableSection.cpp:
19951         (WebCore::RenderTableSection::addChild):
19952
19953 2009-04-16  Xiaomei Ji  <xji@chromium.org>
19954
19955         Reviewed by Simon Fraser.
19956
19957         Fix https://bugs.webkit.org/show_bug.cgi?id=24527
19958         caret does not paint the first time you focus on a 0px right padding RTL div
19959
19960         Test: fast/forms/caret-rtl.html
19961
19962         * rendering/RenderBlock.cpp:
19963         (WebCore::RenderBlock::localCaretRect): When calculating x-axis if 
19964         alignment is alignRight, we need to subtract the caretWidth so that the
19965         caret at IntRect(x, y, caretWidth, height) is inside the block.
19966
19967 2009-04-16  Justin Garcia  <justin.garcia@apple.com>
19968
19969         Reviewed by Simon Fraser.
19970
19971         https://bugs.webkit.org/show_bug.cgi?id=25228
19972         SelectionController::absoluteCaretBounds returns an inflated caret (the caret repaint rect)
19973         
19974         Return the bounds of the transformed caret, not the transformed repaint rect for the caret (which is inflated).
19975
19976         * editing/SelectionController.cpp:
19977         (WebCore::SelectionController::localCaretRect):
19978         (WebCore::SelectionController::absoluteBoundsForLocalRect):
19979         (WebCore::SelectionController::caretRepaintRect):
19980         (WebCore::SelectionController::recomputeCaretRect):
19981         * editing/SelectionController.h:
19982
19983 2009-04-16  Pierre d'Herbemont  <pdherbemont@apple.com>
19984
19985         Reviewed by Simon Fraser.
19986
19987         https://bugs.webkit.org/show_bug.cgi?id=25187
19988         Bug 25187: <video> may not be rendered upon certain racy conditions
19989
19990         Always create the video renderer when the load state reaches QTMovieLoadStateLoaded and
19991         the element is visible, not just when the movie has just been opened.
19992
19993         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
19994         (WebCore::MediaPlayerPrivate::updateStates): Make sure we do not make false
19995         assumption on the state changes order. Create the renderer if none is present,
19996         when movie is loaded instead.
19997
19998 2009-04-16  Eric Seidel  <eric@webkit.org>
19999
20000         Reviewed by Geoffrey Garen.
20001
20002         Add filterBoundingBox() to RenderSVGModelObject to share a tiny bit of code
20003
20004         RenderSVGModelObject has much more interesting code it can share,
20005         but I'm just trying to get the commits out of my local branch and into
20006         the repository in any order I can. :)  This one was small.
20007
20008         This will be used by the unified RenderSVGModelObject
20009         clippedOverflowRectForRepaint patch coming soon.
20010
20011         * rendering/RenderPath.cpp:
20012         (WebCore::RenderPath::clippedOverflowRectForRepaint):
20013         * rendering/RenderSVGContainer.cpp:
20014         (WebCore::RenderSVGContainer::clippedOverflowRectForRepaint):
20015         * rendering/RenderSVGModelObject.cpp:
20016         (WebCore::RenderSVGModelObject::filterBoundingBox):
20017         * rendering/RenderSVGModelObject.h:
20018
20019 2009-04-16  Geoffrey Garen  <ggaren@apple.com>
20020
20021         Reviewed by Eric Seidel and Adam Roben.
20022
20023         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
20024         Unbounded memory growth when churning elements with anonymous event handler functions
20025         
20026         Simplified some EventHandler creation code.
20027         
20028         Removed a pile of code whose sole purpose was to allow SVG event handlers
20029         to supply a parameter named "evt" instead of the normal "event", and
20030         replaced it with a single parameter to JSLazyEventListener's constructor
20031         specifying the parameter name to use.
20032
20033         * bindings/js/JSDOMWindowBase.h:
20034         * bindings/js/JSLazyEventListener.cpp:
20035         (WebCore::JSLazyEventListener::JSLazyEventListener):
20036         (WebCore::JSLazyEventListener::parseCode):
20037         * bindings/js/JSLazyEventListener.h:
20038         (WebCore::JSLazyEventListener::create):
20039         * bindings/js/ScriptController.cpp:
20040         (WebCore::ScriptController::createInlineEventListener):
20041         * bindings/js/ScriptController.h:
20042         * dom/Document.cpp:
20043         (WebCore::Document::createEventListener):
20044
20045 2009-04-15  Eric Seidel  <eric@webkit.org>
20046
20047         Reviewed by David Hyatt.
20048
20049         Split out objectBoundingBox and repaintRectInLocalCoordinates from relativeBBox
20050         in preparation for simplifying (and fixing) repaint logic in the SVG rendering tree.
20051         https://bugs.webkit.org/show_bug.cgi?id=25224
20052
20053         objectBoundingBox() matches the SVG 1.1 concept of a "bounding box"
20054
20055         repaintRectInLocalCoordinates() should return the a rect covering all painted content.
20056         However, repaintRectInLocalCoordinates() still only returns the "stroke bounding box"
20057         in this patch.  In a future patch, repaintRectInLocalCoordinates will be fixed to return
20058         a rect covering all painted content.  In order to avoid changing several hundred layout test results, I've left
20059         the behavior as-is for now.  The returned rect is used by various repaintRectInLocalCoordinates
20060         implementations and sometimes adjusted to include all painted content, but not always, and
20061         the places where the adjustments are made are sometimes wrong.  Again, will be fixed in
20062         an upcoming patch.
20063
20064         This patch discovered a bug in Font::drawTextUsingSVGFont, which is probably causing
20065         bounding-box relative gradients on SVGFont glyphs to not paint correctly.
20066         I chose not to try and fix the bug in this patch and instead left a FIXME.
20067
20068         This patch also discovered that at least tspan.getBBox() is broken.  This
20069         along with the foreignObject.getBBox() change will be tested (and fixed) in a
20070         later patch.  https://bugs.webkit.org/show_bug.cgi?id=25225
20071
20072         No change in behavior (besides the above mentioned foreignObject.getBBox()), thus no tests.
20073
20074         * rendering/RenderForeignObject.cpp:
20075         (WebCore::RenderForeignObject::objectBoundingBox): this is a behavior improvement for getBBox() test case coming in a later patch
20076         (WebCore::RenderForeignObject::repaintRectInLocalCoordinates): only really used for layout test results, might some day be used for repaint.
20077         * rendering/RenderForeignObject.h:
20078         * rendering/RenderObject.cpp:
20079         (WebCore::RenderObject::objectBoundingBox): new methods, ASSERT if used but not implemented.
20080         (WebCore::RenderObject::repaintRectInLocalCoordinates):
20081         * rendering/RenderObject.h:
20082         * rendering/RenderPath.cpp:
20083         (WebCore::RenderPath::objectBoundingBox):
20084         (WebCore::RenderPath::repaintRectInLocalCoordinates):
20085         (WebCore::RenderPath::clippedOverflowRectForRepaint):
20086         (WebCore::RenderPath::lineHeight):
20087         (WebCore::RenderPath::baselinePosition):
20088         (WebCore::RenderPath::paint):
20089         (WebCore::RenderPath::addFocusRingRects):
20090         * rendering/RenderPath.h:
20091         * rendering/RenderSVGContainer.cpp:
20092         (WebCore::RenderSVGContainer::paint):
20093         (WebCore::RenderSVGContainer::objectBoundingBox):
20094         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
20095         * rendering/RenderSVGContainer.h:
20096         * rendering/RenderSVGGradientStop.h:
20097         (WebCore::RenderSVGGradientStop::objectBoundingBox):
20098         (WebCore::RenderSVGGradientStop::repaintRectInLocalCoordinates):
20099         * rendering/RenderSVGHiddenContainer.cpp:
20100         (WebCore::RenderSVGHiddenContainer::objectBoundingBox):
20101         (WebCore::RenderSVGHiddenContainer::repaintRectInLocalCoordinates):
20102         * rendering/RenderSVGHiddenContainer.h:
20103         * rendering/RenderSVGImage.cpp:
20104         (WebCore::RenderSVGImage::objectBoundingBox):
20105         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
20106         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
20107         (WebCore::RenderSVGImage::addFocusRingRects):
20108         * rendering/RenderSVGImage.h:
20109         * rendering/RenderSVGRoot.cpp:
20110         (WebCore::RenderSVGRoot::paint):
20111         (WebCore::RenderSVGRoot::objectBoundingBox):
20112         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
20113         * rendering/RenderSVGRoot.h:
20114         * rendering/RenderSVGTSpan.h:
20115         (WebCore::RenderSVGTSpan::objectBoundingBox):
20116         (WebCore::RenderSVGTSpan::repaintRectInLocalCoordinates):
20117         * rendering/RenderSVGText.cpp:
20118         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
20119         (WebCore::RenderSVGText::absoluteRects):
20120         (WebCore::RenderSVGText::absoluteQuads):
20121         (WebCore::RenderSVGText::objectBoundingBox):
20122         (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
20123         * rendering/RenderSVGText.h:
20124         * rendering/RenderSVGViewportContainer.cpp:
20125         (WebCore::RenderSVGViewportContainer::viewportTransform):
20126         * rendering/SVGRenderSupport.cpp:
20127         (WebCore::computeContainerBoundingBox):
20128         * rendering/SVGRenderSupport.h:
20129         * rendering/SVGRenderTreeAsText.cpp:
20130         (WebCore::operator<<):
20131         * svg/SVGFont.cpp:
20132         (WebCore::Font::drawTextUsingSVGFont):
20133         * svg/SVGLocatable.cpp:
20134         (WebCore::SVGLocatable::getBBox):
20135         * svg/SVGPatternElement.cpp:
20136         (WebCore::SVGPatternElement::buildPattern):
20137         * svg/graphics/SVGPaintServerGradient.cpp:
20138         (WebCore::createMaskAndSwapContextForTextGradient):
20139         (WebCore::clipToTextMask):
20140         (WebCore::SVGPaintServerGradient::setup):
20141         * svg/graphics/SVGPaintServerPattern.cpp:
20142         (WebCore::SVGPaintServerPattern::setup):
20143
20144 2009-04-16  Dan Bernstein  <mitz@apple.com>
20145
20146         Reviewed by Darin Adler.
20147
20148         - fix <rdar://problem/6032139> Table cell widths calculated
20149           incorrectly on table that uses table-layout:fixed, colspans, and a mix
20150           of percentage and pixel widths
20151
20152         Test: fast/table/fixed-granular-cols.html
20153
20154         The incorrect widths resulted from incorrect handling of the case where
20155         the <col> elements are more granular than the table cells.
20156
20157         * rendering/FixedTableLayout.cpp:
20158         (WebCore::FixedTableLayout::calcWidthArray): When processing <col>
20159         elements, append effective columns or split existing effective columns
20160         as needed.
20161
20162 2009-04-16  Alexey Proskuryakov  <ap@webkit.org>
20163
20164         <rdar://problem/6795285> Infinite recursion in ResourceHandle::receivedRequestToContinueWithoutCredential
20165
20166         Rolled out <http://trac.webkit.org/projects/webkit/changeset/42536> - the two instances of
20167         authentication challenge are different, after all. Added a FIXME comment about a possible
20168         future improvement.
20169
20170         * platform/network/ResourceHandle.cpp:
20171         (WebCore::ResourceHandle::clearAuthentication):
20172         * platform/network/ResourceHandleInternal.h:
20173         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
20174         * platform/network/cf/ResourceHandleCFNet.cpp:
20175         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
20176         (WebCore::ResourceHandle::receivedCredential):
20177         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
20178         (WebCore::ResourceHandle::receivedCancellation):
20179         * platform/network/mac/ResourceHandleMac.mm:
20180         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
20181         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
20182         (WebCore::ResourceHandle::receivedCredential):
20183         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
20184         (WebCore::ResourceHandle::receivedCancellation):
20185
20186 2009-04-15  Geoffrey Garen  <ggaren@apple.com>
20187
20188         Reviewed by Sam Weinig.
20189         
20190         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
20191         Unbounded memory growth when churning elements with anonymous event handler functions
20192
20193         Also fixed <rdar://problem/6792909> WebInspector crashes when reloading
20194         a page with breakpoints set
20195         
20196         * bindings/js/JSEventListener.cpp:
20197         (WebCore::JSEventListener::clearJSFunctionInline):
20198         (WebCore::JSEventListener::markJSFunction):
20199         * bindings/js/JSEventListener.h: Actually clear our function and global
20200         object pointers when our client instructs us to. (Oops!) Also, mark
20201         our global object while we still intend to use it.
20202
20203         * bindings/js/JSSVGElementInstanceCustom.cpp:
20204         (WebCore::JSSVGElementInstance::mark):
20205         (WebCore::toJS):
20206         * bindings/scripts/CodeGeneratorJS.pm:
20207         * svg/SVGElementInstance.idl: For every SVGElementInstance wrapper, ensure
20208         that the corresponding element also has a wrapper, to keep its event
20209         listeners alive.
20210
20211 2009-04-15  Dimitri Glazkov  <dglazkov@chromium.org>
20212
20213         Reviewed by Darin Fisher.
20214
20215         https://bugs.webkit.org/show_bug.cgi?id=25201
20216         Add ScriptFunctionCall/ScriptObject for V8.
20217
20218         * bindings/v8/ScriptFunctionCall.cpp: Added.
20219         * bindings/v8/ScriptFunctionCall.h: Added.
20220         * bindings/v8/ScriptObject.cpp: Added.
20221         * bindings/v8/ScriptObject.h: Added.
20222         * bindings/v8/ScriptObjectQuarantine.cpp: Added.
20223         * bindings/v8/ScriptObjectQuarantine.h: Added.
20224         * bindings/v8/ScriptScope.cpp: Added.
20225         * bindings/v8/ScriptScope.h: Added.
20226         * bindings/v8/ScriptState.h:
20227         (WebCore::ScriptState::ScriptState): Added new constructors.
20228         (WebCore::ScriptState::frame): Added Frame ptr accessor.
20229         * bindings/v8/ScriptString.h:
20230         (WebCore::ScriptString::ScriptString): Added default constructor.
20231         * bindings/v8/ScriptValue.h:
20232         (WebCore::ScriptValue::isEqual): Added.
20233
20234 2009-04-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
20235
20236         Unreviewed build fix. Add RenderSVGModelObject.* to GTK+'s build.
20237
20238         * GNUmakefile.am:
20239
20240 2009-04-15  Steve Falkenburg  <sfalken@apple.com>
20241
20242         <rdar://problem/6785760> WebCore should use a maximum of 6 connections per host, not 4
20243
20244         Reviewed by Adam Roben.
20245
20246         * platform/network/ResourceRequestBase.cpp:
20247         * platform/network/cf/ResourceRequestCFNet.cpp:
20248         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
20249
20250 2009-04-15  Sam Weinig  <sam@webkit.org>
20251
20252         Reviewed by Mark Rowe.
20253
20254         Add special casing to bindings generator so that custom functions
20255         starting with xml or xslt conform to WebKit style guidelines.
20256
20257         * bindings/js/JSDOMWindowCustom.cpp:
20258         (WebCore::JSDOMWindow::xmlHttpRequest):
20259         (WebCore::JSDOMWindow::xsltProcessor):
20260         * bindings/scripts/CodeGenerator.pm:
20261
20262 2009-04-15  Eric Seidel  <eric@webkit.org>
20263
20264         Reviewed by Simon Fraser.
20265
20266         Add minimal RenderSVGModelObject and make RenderPath and RenderSVGContainer use it.
20267         https://bugs.webkit.org/show_bug.cgi?id=25221
20268         
20269         RenderSVGModelObject is the base rendering class for things which live
20270         in the SVG rendering tree.  Not all SVG renders are RenderSVGModelObjects yet.
20271         
20272         More patches coming.  This is just adding the class, future patches
20273         will pull more logic out of RenderPath and RenderSVGContainer into RenderSVGModelObject.
20274
20275         * WebCore.pro:
20276         * WebCore.scons:
20277         * WebCore.vcproj/WebCore.vcproj:
20278         * WebCore.xcodeproj/project.pbxproj:
20279         * rendering/RenderPath.cpp:
20280         (WebCore::RenderPath::RenderPath):
20281         * rendering/RenderPath.h:
20282         * rendering/RenderSVGContainer.cpp:
20283         (WebCore::RenderSVGContainer::RenderSVGContainer):
20284         * rendering/RenderSVGContainer.h:
20285         * rendering/RenderSVGModelObject.cpp: Added.
20286         (WebCore::RenderSVGModelObject::RenderSVGModelObject):
20287         * rendering/RenderSVGModelObject.h: Added.
20288         (WebCore::RenderSVGModelObject::requiresLayer):
20289         * rendering/RenderTreeAsText.cpp:
20290         * rendering/SVGRenderTreeAsText.cpp:
20291
20292 2009-04-15  Eric Seidel  <eric@webkit.org>
20293
20294         Reviewed by Simon Fraser.
20295
20296         Remove more dead code from RenderSVGHiddenContainer.
20297
20298         lineHeight and baselinePosition used to be on RenderSVGContainer
20299         (of which this is a subclass) because RenderSVGContainer used
20300         to be a RenderBox and always the renderer for <svg>
20301         Now <svg> uses RenderSVGRoot when needing a RenderBox (inside HTML)
20302         and RenderSVGViewportContainer (when inside SVG content)
20303         so there is no need for RenderSVGHiddenContainer to have these HTML-specific methods.
20304
20305         * rendering/RenderSVGHiddenContainer.cpp:
20306         * rendering/RenderSVGHiddenContainer.h:
20307
20308 2009-04-15  Eric Seidel  <eric@webkit.org>
20309
20310         Reviewed by Simon Fraser.
20311
20312         Remove unneeded (broken) code from SVG renderers
20313         https://bugs.webkit.org/show_bug.cgi?id=25214
20314
20315         Mostly due to my historical confusions about the render tree
20316         and some methods not being removed after classes were split.
20317
20318         RenderSVGRoot is an RenderBox and should just use all the
20319         standard RenderBox methods for inspector and repaint rects.
20320
20321         RenderSVGContainer is *not* a RenderBox (any more) and thus
20322         doesn't need lineHeight or width/height or calcBounds.
20323
20324         RenderSVGViewportContainer had some broken code which tried
20325         to see if the click was inside the container at all, but it
20326         was using width/height metrics based off of the containing
20327         block (from calcWidth) which is wrong (since its real
20328         width/height are from its containing viewport not containing block).
20329
20330         * rendering/RenderSVGContainer.cpp:
20331         (WebCore::RenderSVGContainer::RenderSVGContainer):
20332         (WebCore::RenderSVGContainer::layout):
20333         * rendering/RenderSVGContainer.h:
20334         * rendering/RenderSVGRoot.cpp:
20335         * rendering/RenderSVGRoot.h:
20336         * rendering/RenderSVGViewportContainer.cpp:
20337         (WebCore::RenderSVGViewportContainer::layout):
20338         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
20339
20340 2009-04-15  Eric Seidel  <eric@webkit.org>
20341
20342         Reviewed by Simon Fraser and Sam Weinig.
20343
20344         https://bugs.webkit.org/show_bug.cgi?id=25217
20345         Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop
20346         Add ASSERT(element) to all these functions since they should never be passed a null element.
20347
20348         * svg/SVGLocatable.cpp:
20349         (WebCore::isViewportElement):
20350         (WebCore::SVGLocatable::nearestViewportElement):
20351         (WebCore::SVGLocatable::farthestViewportElement):
20352         (WebCore::SVGLocatable::getBBox):
20353         (WebCore::SVGLocatable::getCTM):
20354         (WebCore::SVGLocatable::getScreenCTM):
20355
20356 2009-04-15  Sam Weinig  <sam@webkit.org>
20357
20358         Reviewed by Anders Carlsson.
20359
20360         Remove support for the ObjCIvar extended attribute from the Objective-C
20361         bindings generator.  It is not used anymore.
20362
20363         * bindings/scripts/CodeGeneratorObjC.pm:
20364
20365 2009-04-15  Justin Garcia  <justin.garcia@apple.com>
20366
20367         Reviewed by Dan Bernstein.
20368
20369         https://bugs.webkit.org/show_bug.cgi?id=25204
20370         Create a fast path for ReplaceSelectionCommand that merges text nodes
20371         
20372         During simple pastes, where we're just pasting a text node into a run of text, we would split the current
20373         text and insert the new node in between.  This is slow and we hit this bug:
20374
20375         https://bugs.webkit.org/show_bug.cgi?id=6148
20376
20377         in the layout and rendering code where adjacent text nodes don't shape correctly in Arabic.
20378         
20379         This change creates a fast path for ReplaceSelectionCommand that inserts text directly into the
20380         text node that holds the selection (very similar to the fast path we wrote for InsertTextCommand).
20381
20382         * editing/ReplaceSelectionCommand.cpp:
20383         (WebCore::ReplaceSelectionCommand::doApply):
20384         (WebCore::ReplaceSelectionCommand::performTrivialReplace):
20385         * editing/ReplaceSelectionCommand.h:
20386         * editing/TextIterator.cpp:
20387
20388 2009-04-15  Adam Langley  <agl@google.com>
20389
20390         Reviewed by Darin Fisher.
20391
20392         Move VDMX parsing into the Chromium Linux port.
20393
20394         https://bugs.webkit.org/show_bug.cgi?id=25116
20395
20396         VDMX tables are optional tables in TrueType fonts which contain the
20397         exact pixel height of a given font at a given pel size. In order to
20398         match Windows font metrics we have to use these numbers.
20399
20400         Previously, the parsing was performed in Skia. As part of the merge
20401         with upstream Skia, an interface for getting table data from a font
20402         has been added to Skia and we're moving the parsing into WebKit.
20403
20404         This does not change any layout tests.
20405
20406         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
20407         (WebCore::FontPlatformData::uniqueID):
20408         * platform/graphics/chromium/FontPlatformDataLinux.h:
20409         * platform/graphics/chromium/FontTrueTypeLinux.cpp: Added.
20410         * platform/graphics/chromium/FontTrueTypeLinux.h: Added.
20411         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
20412         (WebCore::SimpleFontData::platformInit):
20413         (WebCore::SimpleFontData::platformWidthForGlyph):
20414
20415 2009-04-15  Stephen White  <senorblanco@chromium.org>
20416
20417         Reviewed by Dimitri Glazkov.
20418
20419         https://bugs.webkit.org/show_bug.cgi?id=25180
20420
20421         Restore stroked outlines to PlatformContextSkia::drawRect().
20422         These were removed inadvertently in r41805, aka
20423         https://bugs.webkit.org/show_bug.cgi?id=24662.
20424         SkRect is { left, top, right, bottom }, not { left, top, width, height }.
20425
20426         * platform/graphics/skia/PlatformContextSkia.cpp:
20427         (PlatformContextSkia::drawRect):
20428
20429 2009-04-15  Dan Bernstein  <mitz@apple.com>
20430
20431         Reviewed by Dave Hyatt.
20432
20433         - fix <rdar://problem/6777374> Generated content with display: run-in
20434           causes a crash
20435
20436         Test: fast/runin/generated.html
20437
20438         * rendering/RenderBlock.cpp:
20439         (WebCore::RenderBlock::handleRunInChild): Check if the run-in block is
20440         generated, and if so, make the RenderInline anonymous instead of passing
20441         a 0 node to the RenderInline constructor. If the run-in itself is
20442         generated, do move :before and :after children from the block into the
20443         inline, as they will not be regenerated. Changed nested ifs into early
20444         returns.
20445
20446 2009-04-15  Eric Roman  <eroman@chromium.org>
20447
20448         Reviewed by Geoffrey Garen.
20449
20450         https://bugs.webkit.org/show_bug.cgi?id=25192
20451
20452         Expose DOMWindow::removeInlineEventListenerForType and
20453         DOMWindow::inlineEventListenerForType as public.
20454
20455         * page/DOMWindow.h:
20456
20457 2009-04-14  Eric Roman  <eroman@chromium.org>
20458
20459         Reviewed by Darin Adler.
20460
20461         https://bugs.webkit.org/show_bug.cgi?id=25198
20462
20463         Wrap RegisteredEventListener's markEventListeners and invalidateEventListeners
20464         in a USE(JSC), since it doesn't compile with V8 bindings.
20465
20466         * dom/RegisteredEventListener.h:
20467
20468 2009-04-15  Eric Roman  <eroman@chromium.org>
20469
20470         Reviewed by Darin Adler.
20471
20472         https://bugs.webkit.org/show_bug.cgi?id=25194
20473
20474         Fix a caller of Settings::javaScriptCanOpenWindowsAutomatically() to
20475         use the new name.
20476
20477         * bindings/v8/custom/V8DOMWindowCustom.cpp:
20478
20479 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
20480
20481         Rubber-stamped by Darin Adler.
20482
20483         Don't keep platform objects for authentication challenge in ResourceHandleInternal.
20484         We already have a copy in AuthenticationChallenge object.
20485
20486         * platform/network/ResourceHandle.cpp:
20487         (WebCore::ResourceHandle::clearAuthentication):
20488         * platform/network/ResourceHandleInternal.h:
20489         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
20490         * platform/network/cf/ResourceHandleCFNet.cpp:
20491         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
20492         (WebCore::ResourceHandle::receivedCredential):
20493         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
20494         (WebCore::ResourceHandle::receivedCancellation):
20495         * platform/network/mac/ResourceHandleMac.mm:
20496         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
20497         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
20498         (WebCore::ResourceHandle::receivedCredential):
20499         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
20500         (WebCore::ResourceHandle::receivedCancellation):
20501
20502 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
20503
20504         Reviewed by Sam Weinig.
20505
20506         Nixed some now-defunct autogeneration code.
20507
20508         * bindings/scripts/CodeGeneratorJS.pm:
20509
20510 2009-04-14  Eric Carlson  <eric.carlson@apple.com>
20511
20512         Reviewed by Alexey Proskuryakov.
20513         
20514         Fix <rdar://problem/6755724> <audio> and <video> elements can reference local 
20515         file:/// URLs from remote in Safari
20516
20517         Tests: http/tests/security/local-video-poster-from-remote.html
20518                http/tests/security/local-video-source-from-remote.html
20519                http/tests/security/local-video-src-from-remote.html
20520
20521         * html/HTMLMediaElement.cpp:
20522         (WebCore::HTMLMediaElement::loadResource): Don't pass url to media engine unless loader->canLoad()
20523         says it is OK.
20524
20525 2009-04-14  Sam Weinig  <sam@webkit.org>
20526
20527         Reviewed by Darin Adler.
20528
20529         Part of <rdar://problem/6150868>
20530         Fix incorrect handling of content that needs to go into the head element
20531         once the head element has been removed.
20532
20533         Test: fast/parser/head-content-after-head-removal.html
20534
20535         * html/HTMLParser.cpp:
20536         (WebCore::HTMLParser::HTMLParser): Remove unneeded initializer of m_head.
20537         (WebCore::HTMLParser::handleError): Update since m_head is now a RefPtr.
20538         (WebCore::HTMLParser::createHead): Ditto.
20539         * html/HTMLParser.h: Make m_head a RefPtr.
20540
20541 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
20542
20543         Used svn merge -r42529:42528 to roll out my last patch because it broke
20544         the build.
20545
20546         * bindings/js/JSDOMGlobalObject.cpp:
20547         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
20548         (WebCore::JSDOMGlobalObject::findJSProtectedEventListener):
20549         (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
20550         (WebCore::JSDOMGlobalObject::jsProtectedEventListeners):
20551         (WebCore::JSDOMGlobalObject::jsProtectedInlineEventListeners):
20552         * bindings/js/JSDOMGlobalObject.h:
20553
20554 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
20555
20556         Reviewed by Sam Weinig.
20557
20558         Nixed some now-dead code related to protected event listeners.
20559
20560         * bindings/js/JSDOMGlobalObject.cpp:
20561         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
20562         * bindings/js/JSDOMGlobalObject.h:
20563
20564 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
20565
20566         Reviewed by Sam Weinig.
20567
20568         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
20569         Unbounded memory growth when churning elements with anonymous event handler functions
20570
20571         Stop using protected event listeners on SVGElementInstance.
20572
20573         * bindings/js/JSSVGElementInstanceCustom.cpp:
20574         (WebCore::JSSVGElementInstance::mark): Mark our event listeners, since
20575         they're not protected anymore.
20576
20577         (WebCore::JSSVGElementInstance::addEventListener):
20578         (WebCore::JSSVGElementInstance::removeEventListener): Make unprotected
20579         event listeners, since we mark them now.
20580
20581         * bindings/scripts/CodeGeneratorJS.pm: Autogenerate event listener
20582         invalidation for SVGElementInstance.
20583
20584         * svg/SVGElementInstance.h:
20585         (WebCore::SVGElementInstance::eventListeners): Added an accessor, for
20586         the sake of autogenerated code.
20587
20588         * svg/SVGElementInstance.idl: Removed the ProtectedEventListener attribute
20589         from event listener properties. Added a CustomMarkFunction attribute,
20590         since we need to mark our event listeners.
20591
20592 2009-04-14  Steve Falkenburg  <sfalken@apple.com>
20593
20594         Windows build fix.
20595
20596         * WebCore.vcproj/WebCore.vcproj:
20597
20598 2009-04-14  Steve Falkenburg  <sfalken@apple.com>
20599
20600         Add header guards to WebCore forwarding headers.
20601         
20602         Speeds up WebCore debug build on Windows by 12% on my system,
20603         since Visual Studio appears to not optimize for standard header
20604         guards in included files.
20605         
20606         Rubber stamped by Ada Chan.
20607
20608         * ForwardingHeaders/debugger/Debugger.h:
20609         * ForwardingHeaders/debugger/DebuggerActivation.h:
20610         * ForwardingHeaders/debugger/DebuggerCallFrame.h:
20611         * ForwardingHeaders/interpreter/CallFrame.h:
20612         * ForwardingHeaders/interpreter/Interpreter.h:
20613         * ForwardingHeaders/masm/X86Assembler.h:
20614         * ForwardingHeaders/parser/Parser.h:
20615         * ForwardingHeaders/parser/SourceCode.h:
20616         * ForwardingHeaders/parser/SourceProvider.h:
20617         * ForwardingHeaders/pcre/pcre.h:
20618         * ForwardingHeaders/profiler/Profile.h:
20619         * ForwardingHeaders/profiler/ProfileNode.h:
20620         * ForwardingHeaders/profiler/Profiler.h:
20621         * ForwardingHeaders/runtime/ArgList.h:
20622         * ForwardingHeaders/runtime/ArrayPrototype.h:
20623         * ForwardingHeaders/runtime/BooleanObject.h:
20624         * ForwardingHeaders/runtime/CallData.h:
20625         * ForwardingHeaders/runtime/Collector.h:
20626         * ForwardingHeaders/runtime/CollectorHeapIterator.h:
20627         * ForwardingHeaders/runtime/Completion.h:
20628         * ForwardingHeaders/runtime/ConstructData.h:
20629         * ForwardingHeaders/runtime/DateInstance.h:
20630         * ForwardingHeaders/runtime/Error.h:
20631         * ForwardingHeaders/runtime/FunctionConstructor.h:
20632         * ForwardingHeaders/runtime/FunctionPrototype.h:
20633         * ForwardingHeaders/runtime/Identifier.h:
20634         * ForwardingHeaders/runtime/InitializeThreading.h:
20635         * ForwardingHeaders/runtime/InternalFunction.h:
20636         * ForwardingHeaders/runtime/JSArray.h:
20637         * ForwardingHeaders/runtime/JSByteArray.h:
20638         * ForwardingHeaders/runtime/JSFunction.h:
20639         * ForwardingHeaders/runtime/JSGlobalData.h:
20640         * ForwardingHeaders/runtime/JSGlobalObject.h:
20641         * ForwardingHeaders/runtime/JSLock.h:
20642         * ForwardingHeaders/runtime/JSNumberCell.h:
20643         * ForwardingHeaders/runtime/JSObject.h:
20644         * ForwardingHeaders/runtime/JSString.h:
20645         * ForwardingHeaders/runtime/JSValue.h:
20646         * ForwardingHeaders/runtime/Lookup.h:
20647         * ForwardingHeaders/runtime/ObjectPrototype.h:
20648         * ForwardingHeaders/runtime/Operations.h:
20649         * ForwardingHeaders/runtime/PropertyMap.h:
20650         * ForwardingHeaders/runtime/PropertyNameArray.h:
20651         * ForwardingHeaders/runtime/Protect.h:
20652         * ForwardingHeaders/runtime/PrototypeFunction.h:
20653         * ForwardingHeaders/runtime/StringObject.h:
20654         * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h:
20655         * ForwardingHeaders/runtime/StringPrototype.h:
20656         * ForwardingHeaders/runtime/Structure.h:
20657         * ForwardingHeaders/runtime/SymbolTable.h:
20658         * ForwardingHeaders/runtime/UString.h:
20659         * ForwardingHeaders/wrec/WREC.h:
20660         * ForwardingHeaders/wtf/ASCIICType.h:
20661         * ForwardingHeaders/wtf/AlwaysInline.h:
20662         * ForwardingHeaders/wtf/Assertions.h:
20663         * ForwardingHeaders/wtf/ByteArray.h:
20664         * ForwardingHeaders/wtf/CurrentTime.h:
20665         * ForwardingHeaders/wtf/Deque.h:
20666         * ForwardingHeaders/wtf/DisallowCType.h:
20667         * ForwardingHeaders/wtf/FastMalloc.h:
20668         * ForwardingHeaders/wtf/Forward.h:
20669         * ForwardingHeaders/wtf/GetPtr.h:
20670         * ForwardingHeaders/wtf/HashCountedSet.h:
20671         * ForwardingHeaders/wtf/HashFunctions.h:
20672         * ForwardingHeaders/wtf/HashMap.h:
20673         * ForwardingHeaders/wtf/HashSet.h:
20674         * ForwardingHeaders/wtf/HashTable.h:
20675         * ForwardingHeaders/wtf/HashTraits.h:
20676         * ForwardingHeaders/wtf/ListHashSet.h:
20677         * ForwardingHeaders/wtf/ListRefPtr.h:
20678         * ForwardingHeaders/wtf/Locker.h:
20679         * ForwardingHeaders/wtf/MainThread.h:
20680         * ForwardingHeaders/wtf/MathExtras.h:
20681         * ForwardingHeaders/wtf/MessageQueue.h:
20682         * ForwardingHeaders/wtf/Noncopyable.h:
20683         * ForwardingHeaders/wtf/NotFound.h:
20684         * ForwardingHeaders/wtf/OwnArrayPtr.h:
20685         * ForwardingHeaders/wtf/OwnPtr.h:
20686         * ForwardingHeaders/wtf/PassRefPtr.h:
20687         * ForwardingHeaders/wtf/Platform.h:
20688         * ForwardingHeaders/wtf/PtrAndFlags.h:
20689         * ForwardingHeaders/wtf/RandomNumber.h:
20690         * ForwardingHeaders/wtf/RefCounted.h:
20691         * ForwardingHeaders/wtf/RefCountedLeakCounter.h:
20692         * ForwardingHeaders/wtf/RefPtr.h:
20693         * ForwardingHeaders/wtf/RetainPtr.h:
20694         * ForwardingHeaders/wtf/StdLibExtras.h:
20695         * ForwardingHeaders/wtf/StringExtras.h:
20696         * ForwardingHeaders/wtf/ThreadSpecific.h:
20697         * ForwardingHeaders/wtf/Threading.h:
20698         * ForwardingHeaders/wtf/TypeTraits.h:
20699         * ForwardingHeaders/wtf/UnusedParam.h:
20700         * ForwardingHeaders/wtf/Vector.h:
20701         * ForwardingHeaders/wtf/VectorTraits.h:
20702         * ForwardingHeaders/wtf/dtoa.h:
20703         * ForwardingHeaders/wtf/unicode/Collator.h:
20704         * ForwardingHeaders/wtf/unicode/UTF8.h:
20705         * ForwardingHeaders/wtf/unicode/Unicode.h:
20706         * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h:
20707
20708 2009-04-14  Sam Weinig  <sam@webkit.org>
20709
20710         Reviewed by Adele Peterson.
20711
20712         Use a template function to generalize the way we create non-caching
20713         JS function getters.
20714
20715         * bindings/js/JSDOMWindowCustom.cpp:
20716         * bindings/js/JSDOMWindowCustom.h:
20717         (WebCore::nonCachingStaticFunctionGetter):
20718         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
20719
20720 2009-04-14  Benjamin C Meyer  <benjamin.meyer@torchmobile.com>
20721
20722         Reviewed by George Staikos.
20723
20724         https://bugs.webkit.org/show_bug.cgi?id=25099
20725
20726         When creating a QNetworkRequest make sure to populate the
20727         CacheLoadControlAttribute with the value set by the ResourceRequest::cachePolicy() so that the cache will be used as WebKit expects.
20728
20729         * WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:
20730         (tst_QWebPage::requestCache):
20731
20732         * platform/network/qt/ResourceRequestQt.cpp:
20733         (WebCore::ResourceRequest::toNetworkRequest):
20734
20735 2009-04-14  Timothy Hatcher  <timothy@apple.com>
20736
20737         Fix a world leak caused by opening the Web Inspector. This was
20738         a regression caused by the InspectorController becoming refcounted.
20739
20740         <rdar://problem/6782944>
20741
20742         Reviewed by Darin Adler.
20743
20744         * bindings/js/ScriptObject.cpp:
20745         (WebCore::ScriptGlobalObject::get): Renamed to better match the
20746         other functions.
20747         (WebCore::ScriptGlobalObject::remove): Added. Deletes the property.
20748         * bindings/js/ScriptObject.h:
20749         * inspector/InspectorController.cpp:
20750         (WebCore::InspectorController::~InspectorController): Do less work
20751         at destruction time since the object lifetime is tied to JS GC.
20752         Assert that inspectedPageDestroyed cleared everything needed.
20753         (WebCore::InspectorController::inspectedPageDestroyed): Do most
20754         of the work that ~InspectorController was doing.
20755         (WebCore::InspectorController::scriptObjectReady): Renamed getObject.
20756
20757 2009-04-14  Antony Sargent  <asargent@chromium.org>
20758
20759         Reviewed by Dimitri Glazkov.
20760
20761         This is some cleanup motivated by the crash in http://crbug.com/9775 , which 
20762         happens because of calling window.open inside a window.onload handler. 
20763
20764         These changes are just part of the fix, along with some asserts to help prevent
20765         breakage on future changes. 
20766
20767         https://bugs.webkit.org/show_bug.cgi?id=25132
20768
20769         * bindings/v8/V8EventListenerList.cpp:
20770         (WebCore::V8EventListenerList::add):
20771         (WebCore::V8EventListenerList::remove):
20772         (WebCore::V8EventListenerList::clear):
20773         * bindings/v8/V8EventListenerList.h:
20774         (WebCore::V8EventListenerList::size):
20775
20776 2009-04-14  Evan Martin  <evan@chromium.org>
20777
20778         Reviewed by Darin Adler.
20779
20780         https://bugs.webkit.org/show_bug.cgi?id=25142
20781         Fix a race that can occur between flex and the perl script that parses
20782         its output.
20783
20784         * css/maketokenizer: Consume all input.
20785
20786 2009-04-14  Rohit Rao  <rohitrao@google.com>
20787
20788         Reviewed by Dan Bernstein.
20789
20790         https://bugs.webkit.org/show_bug.cgi?id=25184
20791         Do not change the text color for selected text in Mac Chromium.
20792
20793         * rendering/RenderThemeChromiumMac.h:
20794         (WebCore::RenderThemeChromiumMac::supportsSelectionForegroundColors):
20795         Now returns false, matching the behavior of Safari on Mac.
20796
20797 2009-04-14  Justin Garcia  <justin.garcia@apple.com>
20798
20799         Reviewed by Eric Seidel.
20800
20801         https://bugs.webkit.org/show_bug.cgi?id=25172
20802         Extra partial layout during the first keypress in an empty block
20803         
20804         Determining if a placeholder needs to be removed requires the creation of a VisiblePosition 
20805         which was triggering layout before we were finished modifying the DOM for the insert operation.
20806         
20807         Find out if we need to remove a placeholder near the start of the operation, and if we do remember 
20808         where it's located.  Then, later, remove it along with all of the other DOM operations we perform.
20809         
20810         Renamed lineBreakExistsAtPosition to lineBreakExistsAtVisiblePosition and added a lineBreakExistsAtPosition
20811         that takes in a Position.  In InsertTextCommand, we can use the latter, since we normalize manually.
20812         
20813         removePlaceholderAt now takes in a Position that it assumes has already been checked for a placeholder.
20814         
20815         No test added as this only effects performance.
20816
20817         * editing/BreakBlockquoteCommand.cpp:
20818         (WebCore::BreakBlockquoteCommand::doApply):
20819         * editing/CompositeEditCommand.cpp:
20820         (WebCore::CompositeEditCommand::removePlaceholderAt):
20821         (WebCore::CompositeEditCommand::moveParagraphs):
20822         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
20823         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
20824         * editing/CompositeEditCommand.h:
20825         * editing/DeleteSelectionCommand.cpp:
20826         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
20827         (WebCore::DeleteSelectionCommand::doApply):
20828         * editing/FormatBlockCommand.cpp:
20829         (WebCore::FormatBlockCommand::doApply):
20830         * editing/InsertLineBreakCommand.cpp:
20831         (WebCore::InsertLineBreakCommand::doApply):
20832         * editing/InsertParagraphSeparatorCommand.cpp:
20833         (WebCore::InsertParagraphSeparatorCommand::doApply):
20834         * editing/InsertTextCommand.cpp:
20835         (WebCore::InsertTextCommand::input):
20836         * editing/htmlediting.cpp:
20837         (WebCore::lineBreakExistsAtVisiblePosition):
20838         (WebCore::lineBreakExistsAtPosition):
20839         * editing/htmlediting.h:
20840
20841 2009-04-14  Adam Roben  <aroben@apple.com>
20842
20843         Remove support for profile-guided optimization on Windows
20844
20845         Rubber-stamped by Steve Falkenburg.
20846
20847         * WebCore.vcproj/WebCore.vcproj: Removed the Release_PGO
20848         configuration.
20849
20850 2009-04-14  Dmitry Titov  <dimich@chromium.org>
20851
20852         Reviewed by Dimitri Glazkov.
20853
20854         https://bugs.webkit.org/show_bug.cgi?id=25163
20855         Upstream fix for releasing v8 objects on worker thread termination in Chromium.
20856
20857         * bindings/v8/V8DOMMap.cpp:
20858         (WebCore::domDataList): Now uses Vector instead of HashMap.
20859         (WebCore::domDataListMutex):
20860         (WebCore::ThreadSpecificDOMData::ThreadSpecificDOMData):  remove usage of currentThread();
20861         (WebCore::ThreadSpecificDOMData::~ThreadSpecificDOMData): ditto.
20862         (WebCore::NonMainThreadSpecificDOMData::~NonMainThreadSpecificDOMData): moved call to removeAllDOMObjectsInCurrentThread() to ~WorkerScriptController.
20863         (WebCore::handleWeakObjectInOwningThread):
20864         (WebCore::derefDelayedObjects):
20865         (WebCore::removeAllDOMObjectsInCurrentThread): not static anymore.
20866         * bindings/v8/V8DOMMap.h:
20867         * bindings/v8/WorkerContextExecutionProxy.cpp:
20868         (WebCore::WorkerContextExecutionProxy::dispose): removed code that avoided dual-dereference of WorkerContext.
20869         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): this ref() is countered in removeAllDOMObjectsInCurrentThread(), when the WorkerContext is removed from the v8 map.
20870         * bindings/v8/WorkerScriptController.cpp:
20871         (WebCore::WorkerScriptController::~WorkerScriptController):
20872
20873 2009-04-14  Adam Roben  <aroben@apple.com>
20874
20875         Fix Bug 25183: Split up WebCore.vcproj's settings into vsprops files
20876
20877         <https://bugs.webkit.org/show_bug.cgi?id=25183>
20878
20879         WebCore.vcproj now uses a set of .vsprops files to store most of its
20880         settings.
20881
20882         Reviewed by Darin Adler.
20883
20884         * WebCore.vcproj/WebCore.vcproj: Moved settings from here into the new
20885         .vsprops files.
20886
20887         * WebCore.vcproj/WebCoreCFNetwork.vsprops: Added. Contains settings
20888         for ports that build against CFNetwork.
20889         * WebCore.vcproj/WebCoreCG.vsprops: Added. Contains settings for ports
20890         that build against CoreGraphics.
20891         * WebCore.vcproj/WebCoreCURL.vsprops: Added. Contains settings for
20892         ports that build against libcurl.
20893         * WebCore.vcproj/WebCoreCairo.vsprops: Added. Contains settings for
20894         ports that build against Cairo.
20895         * WebCore.vcproj/WebCoreCommon.vsprops: Added. Contains settings
20896         shared by all ports.
20897         * WebCore.vcproj/WebCoreMediaQT.vsprops: Added. Contains settings for
20898         ports that use QTMovieWin to implement the MediaPlayerPrivate
20899         interface.
20900         * WebCore.vcproj/WebCorePthreads.vsprops: Added. Contains settings for
20901         ports that build against pthreads.
20902
20903 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
20904
20905         Reviewed by Darin Adler.
20906
20907         http/tests/xmlhttprequest/basic-auth.html fails on Tiger.
20908
20909         Turns out that NSURLCredentialPersistenceNone doesn't work on Tiger, so we have to use
20910         session persistence.
20911
20912         * platform/network/mac/ResourceHandleMac.mm:
20913         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Route the credential through
20914         receivedCredential(), ensuring that the Tiger-specific need to use session credentials
20915         is honored.
20916         (WebCore::ResourceHandle::receivedCredential): On Tiger, change PersistenceNone to
20917         PersistenceForSession, because the former doesn't work.
20918
20919 2009-04-14  Adele Peterson  <adele@apple.com>
20920
20921         Reviewed by Darin Adler.
20922
20923         Fix for <rdar://problem/6703873> Triple-click quoted line and type Return creates an extra quoted blank line
20924
20925         Test: editing/inserting/6703873.html
20926
20927         * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply):
20928         If the startNode's original parent is now empty, we can remove it.  Its already been cloned and copied with the startNode,
20929         so we only need to keep it around if it actually holds some original content, otherwise it will look like an extra empty 
20930         container in the document.
20931
20932 2009-04-14  Xan Lopez  <xlopez@igalia.com>
20933
20934         Reviewed by Holger Freyther.
20935
20936         https://bugs.webkit.org/show_bug.cgi?id=21546
20937         [GTK] ATK accessibility enhancements
20938
20939         Add a proper implementation of AtkText::get_text and
20940         AtkText::get_character_count, which takes into account non
20941         TextControl text. With this the 'Text' field in Accerciser's
20942         Interface Viewer is filled correctly.
20943
20944         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
20945
20946 2009-04-14  Xan Lopez  <xlopez@igalia.com>
20947
20948         Reviewed by Holger Freyther.
20949
20950         https://bugs.webkit.org/show_bug.cgi?id=21546
20951         [GTK] ATK accessibility enhancements
20952
20953         Remove some dead code and g_return_if_fail from static functions.
20954
20955         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
20956
20957 2009-04-14  Xan Lopez  <xlopez@igalia.com>
20958
20959         Reviewed by Holger Freyther.
20960
20961         https://bugs.webkit.org/show_bug.cgi?id=21546
20962         [GTK] ATK accessibility enhancements
20963
20964         Also implement text interface for StaticTextRole, which covers
20965         most of the text in web pages.
20966
20967         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
20968
20969 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
20970
20971         Another Windows build fix.
20972
20973         * platform/network/cf/ResourceHandleCFNet.cpp:
20974         (WebCore::WebCoreSynchronousLoader::load):
20975
20976 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
20977
20978         Windows build fix.
20979
20980         * platform/network/cf/ResourceHandleCFNet.cpp:
20981         (WebCore::WebCoreSynchronousLoader::willSendRequest):
20982         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
20983
20984 2009-04-13  Alexey Proskuryakov  <ap@webkit.org>
20985
20986         Reviewed by Sam Weinig.
20987
20988         <rdar://problem/6698851> Implement XMLHttpRequest withCredentials attribute
20989
20990         * WebCore.xcodeproj/project.pbxproj: Made ThreadableLoader.h private, as enum definitions
20991         from it are now used in otehr private headers.
20992
20993         * xml/XMLHttpRequest.h:
20994         * xml/XMLHttpRequest.idl:
20995         Added withCredentials attribute. When it is false (default), neither credentials nor cookies
20996         are sent with cross origin requests, When it is true, those are sent, but the server needs
20997         to allow handling results via Access-Control-Allow-Credentials header. It was always possible
20998         to send a cross-site request with credentials via IFRAME or IMG, so this just adds a way to
20999         read results, as long as the server reports that it's allowed.
21000         Having the default set to false ensures that requests won't fail unexpectedly because of
21001         stored credentials and cookies for other resources in the target protection space.
21002
21003         * xml/XMLHttpRequest.cpp:
21004         (WebCore::XMLHttpRequest::loadRequestSynchronously): Allow stored credentials for same origin
21005         requests, and for cross origin ones that have withCredentials attribute set. Such code already
21006         existed for cookies (but it's simpler, because we could just set a ResourceRequest flag).
21007         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto.
21008
21009         * platform/network/ResourceHandle.h: Added willSendRequest() - just like for other callbacks,
21010         is is easier to have code in the class. Also, loadResourceSynchronously() now takes a
21011         StoredCredentials option, matching async case.
21012
21013         * platform/network/ResourceHandleClient.h:
21014         (WebCore::ResourceHandleClient::receivedCredential): Removed. This method could never be
21015         called, and no client used it.
21016         (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential): Ditto.
21017
21018         * platform/network/ResourceHandleInternal.h:
21019         (WebCore::ResourceHandleInternal::ResourceHandleInternal): Split username and password out
21020         of request URL. We want to always get a callback for credentials to manage them in WebCore,
21021         so network back-end shouldn't see them too early.
21022
21023         * platform/network/ResourceRequestBase.cpp:
21024         (WebCore::ResourceRequestBase::removeCredentials):
21025         * platform/network/ResourceRequestBase.h:
21026         Added a removeCredentials() method that removes login and password parts from request URL.
21027
21028         * platform/network/mac/ResourceHandleMac.mm:
21029         (WebCoreCredentialStorage): Added a simple storage class for per-session credentials.
21030         (WebCore::ResourceHandle::loadResourceSynchronously): Pass allowStoredCredentials through.
21031         (WebCore::ResourceHandle::willSendRequest): On a redirect, credentials should be replaced.
21032         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Try credentials from the URL
21033         and per-session credentials. Code was partially moved from Obj-C callback.
21034         (WebCore::ResourceHandle::receivedCredential): Intercept per-session credentials and store
21035         them in WebCore storage.
21036         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Don't
21037         store the redirected URL - we only needed credentials, which are now stored separately.
21038         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): Removed
21039         code that was setting credentials from URL. First, the code is now in ResourceHandle, and
21040         also, it wasn't actually needed in Leopard release before this patch, see <rdar://problem/5298142>.
21041         (-[WebCoreSynchronousLoader dealloc]): Release credentials. Note that unlike ResourceHandle,
21042         this class still needs to track URL for checking whether a redirect is allowed. This is
21043         not a great solution, and we should unify client code to use the same checks in sync and
21044         async cases.
21045         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Just like in
21046         async case, put credentials aside to ensure that network back-end asks for them.
21047         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Use credentials
21048         from URL, or from WebCore storage.
21049         (-[WebCoreSynchronousLoader connectionShouldUseCredentialStorage:]): Don't use stored
21050         credentials when not allowed to.
21051         (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
21052         Put credentials aside to ensure that network back-end asks for them.
21053
21054         * platform/network/cf/ResourceHandleCFNet.cpp:
21055         (WebCore::WebCoreCredentialStorage::set):
21056         (WebCore::WebCoreCredentialStorage::get):
21057         (WebCore::willSendRequest):
21058         (WebCore::ResourceHandle::start):
21059         (WebCore::ResourceHandle::willSendRequest):
21060         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
21061         (WebCore::ResourceHandle::receivedCredential):
21062         (WebCore::ResourceHandle::loadResourceSynchronously):
21063         (WebCore::WebCoreSynchronousLoader::willSendRequest):
21064         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
21065         (WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage):
21066         (WebCore::WebCoreSynchronousLoader::load):
21067         Same changes as in Mac case.
21068
21069         * platform/network/curl/ResourceHandleCurl.cpp:
21070         (WebCore::ResourceHandle::loadResourceSynchronously):
21071         * platform/network/qt/ResourceHandleQt.cpp:
21072         (WebCore::ResourceHandle::loadResourceSynchronously):
21073         * platform/network/soup/ResourceHandleSoup.cpp:
21074         (WebCore::ResourceHandle::loadResourceSynchronously):
21075         Trying not to break the build.
21076
21077         * dom/XMLTokenizerLibxml2.cpp: (WebCore::openFunc):
21078         * xml/XSLTProcessor.cpp: (WebCore::docLoaderFunc):
21079         Unconditionally allow stored credentials for these, as they only support same origin loads.
21080
21081         * workers/WorkerContext.cpp: (WebCore::WorkerContext::importScripts):
21082         WorkerContext.importScripts() can be cross-origin, but sending credentials with it is no worse
21083         than sending them with <script src=...>, so this is also unconditionally allowed.
21084
21085         * loader/DocumentThreadableLoader.cpp:
21086         (WebCore::DocumentThreadableLoader::loadResourceSynchronously): Pass through storedCredentials.
21087         (WebCore::DocumentThreadableLoader::create): Ditto.
21088         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Save storedCredentials and
21089         sameOrigin flags foruse in callbacks.
21090         (WebCore::DocumentThreadableLoader::willSendRequest): Assert that loaders aren't all confused.
21091         (WebCore::DocumentThreadableLoader::didSendData): Ditto.
21092         (WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
21093         (WebCore::DocumentThreadableLoader::didReceiveData): Ditto.
21094         (WebCore::DocumentThreadableLoader::didFinishLoading): Ditto.
21095         (WebCore::DocumentThreadableLoader::didFail): Ditto.
21096         (WebCore::DocumentThreadableLoader::getShouldUseCredentialStorage): Don't use credential
21097         storage if that's not allowed by the code that invoked DocumentThreadableLoader.
21098         (WebCore::DocumentThreadableLoader::didReceiveAuthenticationChallenge): Simulate a failure
21099         and cancel the request if we are about to ask the user for credentials for a cross-origin
21100         request, which is forbidden by CORS (and would have been very confusing if allowed).
21101         (WebCore::DocumentThreadableLoader::receivedCancellation): Assert that loaders aren't all confused.
21102
21103         * loader/DocumentThreadableLoader.h: Updated for the new flags (storedCredentials and
21104         sameOrigin) that affect the loader. Eventually, we need to move all CORS logic from XHR here.
21105
21106         * loader/ThreadableLoader.h: (StoredCredentials): Added another flag that affects loader
21107         behavior. We should combine all of these into a structure, and use it for sync requests, too.
21108
21109         * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
21110         * loader/FrameLoader.h:
21111         * loader/ThreadableLoader.cpp:
21112         (WebCore::ThreadableLoader::create):
21113         (WebCore::ThreadableLoader::loadResourceSynchronously):
21114         * loader/WorkerThreadableLoader.cpp:
21115         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
21116         (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
21117         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
21118         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
21119         * loader/WorkerThreadableLoader.h:
21120         (WebCore::WorkerThreadableLoader::create):
21121         Pass through storedCredentials.
21122
21123 2009-04-13  David Hyatt  <hyatt@apple.com>
21124
21125         Reviewed by Cameron Zwarich.
21126
21127         Remove an outdated comment in ScrollView.h
21128
21129         * platform/ScrollView.h:
21130
21131 2009-04-13  Eric Carlson  <eric.carlson@apple.com>
21132
21133         Reviewed by Mark Rowe.
21134
21135         https://bugs.webkit.org/show_bug.cgi?id=25177
21136
21137         QTTrack's -media method always return NULL in 64-bit QTKit, so
21138         MediaPlayerPrivate::disableUnsupportedTracks should use 
21139         QTTrackMediaTypeAttribute to get a track's type.
21140
21141         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
21142         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
21143
21144 2009-04-13  Geoffrey Garen  <ggaren@apple.com>
21145
21146         Reviewed by Cameron Zwarich.
21147
21148         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
21149         Unbounded memory growth when churning elements with anonymous event handler functions
21150
21151         Stop using protected event listeners on the window object.
21152
21153         * bindings/js/JSDOMWindowCustom.cpp:
21154         (WebCore::JSDOMWindow::mark): Mark our event listeners, since they're
21155         no longer protected.
21156
21157         (WebCore::JSDOMWindow::addEventListener):
21158         (WebCore::JSDOMWindow::removeEventListener): Create unprotected event
21159         listeners, since we mark them now.
21160
21161         * bindings/js/JSEventListener.h: Made some functions public so
21162         DOMWindow could call them.
21163
21164         * bindings/js/JSNodeCustom.cpp: Moved markEventListeners to a header,
21165         so it could be shared.
21166
21167         * bindings/scripts/CodeGeneratorJS.pm: Generate event listener marking
21168         and invalidating code for the DOMWindow.
21169
21170         * dom/RegisteredEventListener.h:
21171         (WebCore::markEventListeners):
21172         (WebCore::invalidateEventListeners): Added helper functions.
21173
21174         * page/DOMWindow.idl: Make the window's event listener attributes not
21175         protected.
21176
21177 2009-04-13  Eric Carlson  <eric.carlson@apple.com>
21178
21179         Reviewed by Mark Rowe.
21180         
21181         https://bugs.webkit.org/show_bug.cgi?id=25155
21182
21183         OS X standalone media documents should not switch from <video> to <embed> when 
21184         QTKit load state is QTMovieLoadStateLoading as that happens frequently when a loading
21185         with a slow network connection or when a movie is not saved fast-start.
21186
21187         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
21188         (WebCore::MediaPlayerPrivate::updateStates): Don't open movie with plug-in when QTKit's
21189         loadstate is QTMovieLoadStateLoading, wait until it drops below QTMovieLoadStateError.
21190
21191 2009-04-13  Dmitry Titov  <dimich@chromium.org>
21192
21193         Reviewed by Darin Adler.
21194
21195         https://bugs.webkit.org/show_bug.cgi?id=24453
21196         REGRESSION: If setTimeout is called on a iframe's window, the DOM changes to
21197         the main document that timer callback makes are not flushed.
21198
21199         * bindings/js/ScheduledAction.cpp:
21200         (WebCore::ScheduledAction::execute):
21201         Use Document::updateStyleForAllDocuments() instead of document->updateStyleIfNeeded()
21202         since timers may affect documents other then their own.
21203
21204 2009-04-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
21205
21206         Reviewed by David Hyatt.
21207
21208         Check document for nullity to avoid crashing on GTK+, when
21209         creating the WebView.
21210
21211         * page/FrameView.cpp:
21212         (WebCore::FrameView::needsLayout):
21213
21214 2009-04-13  Ada Chan  <adachan@apple.com>
21215
21216         Forgot to capitalize the "US".
21217
21218         * platform/text/win/TextBreakIteratorInternalICUWin.cpp:
21219         (WebCore::currentTextBreakLocaleID):
21220
21221 2009-04-13  Ada Chan  <adachan@apple.com>
21222
21223         <rdar://problem/6564956> URL field double-click selects entire domain, rather than single word or entire URL
21224         Revert back to the old word breaking behavior by using en_US_POSIX locale.        
21225
21226         Reviewed by Steve Falkenburg.
21227
21228         * platform/text/win/TextBreakIteratorInternalICUWin.cpp:
21229         (WebCore::currentTextBreakLocaleID):
21230
21231 2009-04-13  Darin Adler  <darin@apple.com>
21232
21233         Reviewed by Dan Bernstein.
21234
21235         * platform/cf/BinaryPropertyList.cpp: Added comment.
21236         * platform/cf/BinaryPropertyList.h: Fixed mistakes in comments.
21237
21238 2009-04-13  Darin Adler  <darin@apple.com>
21239
21240         Reviewed by Dan Bernstein.
21241
21242         Bug 25158: hit testing doesn't work right in some cases involving anonymous blocks
21243         https://bugs.webkit.org/show_bug.cgi?id=25158
21244         rdar://problem/6769693
21245
21246         Test: editing/selection/click-after-nested-block.html
21247
21248         * rendering/RenderBlock.cpp:
21249         (WebCore::isChildHitTestCandidate): Added. Helper so the two loops in positionForPoint
21250         can share code.
21251         (WebCore::RenderBlock::positionForPoint): Removed unneeded special case for first
21252         child box. Changed special case for last child box to propertly handle the various
21253         types of child box that are not hit test candidates (the same ones already handled
21254         by the hit test loop below), adding in a loop so we find the last candidate.
21255
21256 2009-04-13  David Hyatt  <hyatt@apple.com>
21257
21258         Reviewed by Sam Weinig.
21259
21260         Fix for https://bugs.webkit.org/show_bug.cgi?id=25125.  Rework scrolling so that a layout happens first when
21261         it's already needed so that the code doesn't end up making bad decisions based off invalid document sizes.
21262
21263         * WebCore.base.exp:
21264         * page/FrameView.h:
21265         (WebCore::FrameView::visibleContentsResized):
21266         * platform/ScrollView.cpp:
21267         (WebCore::ScrollView::ScrollView):
21268         (WebCore::ScrollView::updateScrollbars):
21269         * platform/ScrollView.h:
21270
21271 2009-04-13  Adam Roben  <aroben@apple.com>
21272
21273         Add SharedBuffer::wrapCFData
21274
21275         This is the CF-equivalent of wrapNSData.
21276
21277         Reviewed by Brady Eidson.
21278
21279         * platform/SharedBuffer.h:
21280         * platform/cf/SharedBufferCF.cpp:
21281         (WebCore::SharedBuffer::wrapCFData):
21282
21283 2009-04-13  Dan Bernstein  <mitz@apple.com>
21284
21285         - build fix
21286
21287         * page/EventHandler.cpp:
21288         (WebCore::documentPointForWindowPoint):
21289
21290 2009-04-13  Antti Koivisto  <antti@apple.com>
21291
21292         Reviewed by Darin Adler.
21293
21294         <rdar://problem/6740294> Increase the connection count per host
21295         
21296         Try to use six connections per host if possible.
21297
21298         * WebCore.base.exp:
21299         * loader/loader.cpp:
21300         (WebCore::Loader::Loader):
21301         * platform/mac/WebCoreSystemInterface.h:
21302         * platform/mac/WebCoreSystemInterface.mm:
21303         * platform/network/ResourceRequestBase.cpp:
21304         (WebCore::initMaximumHTTPConnectionCountPerHost):
21305         * platform/network/ResourceRequestBase.h:
21306         * platform/network/mac/ResourceRequestMac.mm:
21307         (WebCore::initMaximumHTTPConnectionCountPerHost):
21308
21309 2009-04-13  Justin Garcia  <justin.garcia@apple.com>
21310
21311         Reviewed by Adele Peterson.
21312
21313         https://bugs.webkit.org/show_bug.cgi?id=25153
21314         Can't place the caret into text field that scrolls the window on focus
21315         
21316         We refetch the target node in the shadow node case, and when we do so the window coordinate for the mouse event may
21317         be invalid because of scrolling that the focus handler did.  Cache the document point (that we derived from the window
21318         coordinate) and use that any time we refetch.
21319
21320         * page/EventHandler.cpp:
21321         (WebCore::documentPointForWindowPoint):
21322         (WebCore::EventHandler::handleMousePressEvent):
21323         (WebCore::EventHandler::prepareMouseEvent):
21324
21325 2009-04-13  Sam Weinig  <sam@webkit.org>
21326
21327         Reviewed by Geoffrey Garen.
21328
21329         Rename JavaScriptCanOpenWindowsAutomatically to javaScriptCanOpenWindowsAutomatically
21330         to conform to our style guidelines.
21331
21332         * page/DOMWindow.cpp:
21333         (WebCore::DOMWindow::allowPopUp):
21334         * page/Settings.h:
21335         (WebCore::Settings::javaScriptCanOpenWindowsAutomatically):
21336
21337 2009-04-13  Geoffrey Garen  <ggaren@apple.com>
21338
21339         Mac build fix: Made another header private.
21340
21341         * WebCore.xcodeproj/project.pbxproj:
21342
21343 2009-04-13  Jian Li  <jianli@chromium.org>
21344
21345         Reviewed by Darin Fisher.
21346
21347         https://bugs.webkit.org/show_bug.cgi?id=25121
21348         Upstream changes to handle error messages from V8 when running worker script.
21349
21350         * bindings/v8/WorkerContextExecutionProxy.cpp:
21351         (WebCore::reportFatalErrorInV8):
21352         (WebCore::handleConsoleMessage):
21353         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
21354         (WebCore::WorkerContextExecutionProxy::dispose):
21355         (WebCore::WorkerContextExecutionProxy::initV8IfNeeded):
21356         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
21357         (WebCore::WorkerContextExecutionProxy::evaluate):
21358         * bindings/v8/WorkerContextExecutionProxy.h:
21359
21360 2009-04-13  Geoffrey Garen  <ggaren@apple.com>
21361
21362         Build fix: Made setInlineEventListenerForType not inline, since Document
21363         calls it now. Made RegisteredEventListener.h a private header on Mac,
21364         so WebKit can use it.
21365
21366         * page/DOMWindow.cpp:
21367         (WebCore::DOMWindow::setInlineEventListenerForType):
21368
21369 2009-04-13  Dan Bernstein  <mitz@apple.com>
21370
21371         Reviewed by Sam Weinig.
21372
21373         - fix <rdar://problem/6404439> REGRESSION: Overlapping text and other
21374           layout issues in View Sample feature of MYOB FIrstEdge v3
21375
21376         * page/Navigator.cpp:
21377         (WebCore::shouldHideFourDot): Added "tdqm_loader.js" to the list of
21378         JavaScript files this quirk applies to.
21379
21380 2009-04-13  Sam Weinig  <sam@webkit.org>
21381
21382         Reviewed by Oliver Hunt.
21383
21384         Move open and showModalDialog functions out of JSDOMWindowBase
21385         and into JSDOMWindow by partially generating them.
21386
21387         This slightly changes the behavior of getting window.showModalDialog
21388         when the embedding app does not support it to return undefined regardless
21389         of shadowing.  This should not be an issue in a practice, but will be addressed
21390         when we add a generic way to handle runtime specialization of property
21391         access.
21392
21393         * DerivedSources.make: Remove JSDOMWindowBase.lut.h
21394         * WebCore.xcodeproj/project.pbxproj: Ditto.
21395         * bindings/js/JSDOMWindowBase.cpp:
21396         (WebCore::):
21397         (WebCore::JSDOMWindowBase::getOwnPropertySlot): Move canShowModalDialog check from
21398         here to JSDOMWindow::customGetOwnPropertySlot.
21399         (WebCore::JSDOMWindowBase::put): Remove dead code.
21400         * bindings/js/JSDOMWindowCustom.cpp:
21401         (WebCore::createWindow):
21402         (WebCore::JSDOMWindow::open):
21403         (WebCore::JSDOMWindow::showModalDialog):
21404         * bindings/js/JSDOMWindowCustom.h:
21405         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
21406         * page/DOMWindow.cpp:
21407         (WebCore::DOMWindow::parseModalDialogFeatures): Move from JSDOMWindowBase.
21408         (WebCore::DOMWindow::allowPopUp): Ditto.
21409         (WebCore::DOMWindow::canShowModalDialog): Ditto.
21410         (WebCore::DOMWindow::canShowModalDialogNow): Ditto.
21411         * page/DOMWindow.h:
21412         * page/DOMWindow.idl:
21413
21414 2009-04-13  Geoffrey Garen  <ggaren@apple.com>
21415
21416         Reviewed by Sam Weinig.
21417
21418         Moved storage for window event listeners into the window object.
21419
21420         * bindings/js/JSDOMWindowCustom.cpp:
21421         (WebCore::JSDOMWindow::addEventListener):
21422         (WebCore::JSDOMWindow::removeEventListener): Add / remove window event
21423         listeners to / from the window object.
21424
21425         * dom/Document.cpp:
21426         (WebCore::Document::removeAllEventListeners):
21427         (WebCore::Document::clear):
21428         (WebCore::Document::setWindowInlineEventListenerForTypeAndAttribute): Moved
21429         a bunch of code to the DOMWindow class, and left behind a few calls through
21430         to DOMWindow, to support legacy clients. (Eventually, these will go away, too.)
21431
21432         * dom/Document.h: ditto.
21433
21434         * dom/Node.cpp:
21435         (WebCore::Node::dispatchGenericEvent):
21436         (WebCore::Node::dispatchWindowEvent): Dipatch window events on the window
21437         object, not the document.
21438
21439         * dom/Node.h:
21440         * dom/RegisteredEventListener.h: Moved RegisteredEventListenerVector
21441         declaration, since it's required in more places now.
21442
21443         * history/CachedFrame.cpp:
21444         (WebCore::CachedFrame::clear): Updated for rename. Also, remove event
21445         listeners before detaching and clearing the document's window pointer,
21446         since the the document needs its window pointer in order to tell the window
21447         to clear its event listeners.
21448
21449         * loader/FrameLoader.cpp:
21450         (WebCore::FrameLoader::stopLoading):
21451         (WebCore::FrameLoader::canCachePageContainingThisFrame):
21452         (WebCore::FrameLoader::logCanCacheFrameDecision): Updated for rename, and
21453         movement of window event listeners into the window.
21454
21455         * loader/ImageDocument.cpp:
21456         (WebCore::ImageDocument::createDocumentStructure): Updated for movement
21457         of window event listeners into the window.
21458
21459         * page/DOMWindow.cpp:
21460         (WebCore::DOMWindow::handleEvent):
21461         (WebCore::DOMWindow::addEventListener):
21462         (WebCore::DOMWindow::removeEventListener):
21463         (WebCore::DOMWindow::removeAllEventListeners):
21464         (WebCore::DOMWindow::hasEventListener):
21465         (WebCore::DOMWindow::setInlineEventListenerForType):
21466         (WebCore::DOMWindow::removeInlineEventListenerForType):
21467         (WebCore::DOMWindow::inlineEventListenerForType):
21468         (WebCore::DOMWindow::addPendingFrameUnloadEventCount):
21469         (WebCore::DOMWindow::removePendingFrameUnloadEventCount):
21470         (WebCore::DOMWindow::addPendingFrameBeforeUnloadEventCount):
21471         (WebCore::DOMWindow::removePendingFrameBeforeUnloadEventCount):
21472         * page/DOMWindow.h: Moved a bunch of code to the DOMWindow class, from the Document.
21473
21474         * page/Frame.cpp:
21475         (WebCore::Frame::shouldClose): Updated for movement of window event listeners into the window.
21476
21477 2009-04-13  Greg Bolsinga  <bolsinga@apple.com>
21478
21479         Reviewed by Sam Weinig.
21480
21481         https://bugs.webkit.org/show_bug.cgi?id=25149
21482
21483         The Geolocation timer needs to start after the UA has granted permission.
21484
21485         * bindings/js/JSGeolocationCustom.cpp: Use PassRefPtr<PositionOptions>
21486         (WebCore::JSGeolocation::getCurrentPosition):
21487         (WebCore::JSGeolocation::watchPosition):
21488         * page/Geolocation.cpp: Add a RefPtr<PositionOptions> so it can be used
21489         later when the timer is started. Change PositionOptions* to PassRefPtr<PositionOptions>
21490         where needed.
21491         (WebCore::Geolocation::GeoNotifier::GeoNotifier):
21492         (WebCore::Geolocation::GeoNotifier::startTimer):
21493         (WebCore::Geolocation::getCurrentPosition):
21494         (WebCore::Geolocation::watchPosition):
21495         (WebCore::Geolocation::setIsAllowed): Start the timer is the UA allows
21496         (WebCore::Geolocation::startTimer):
21497         (WebCore::Geolocation::startTimersForOneShots):
21498         (WebCore::Geolocation::startTimersForWatchers):
21499         (WebCore::Geolocation::startTimers):
21500         * page/Geolocation.h:
21501         (WebCore::Geolocation::GeoNotifier::create):
21502
21503 2009-04-13  Pamela Greene  <pam@chromium.org>
21504
21505         Reviewed by Darin Fisher.
21506
21507         Fix Chromium (V8) build by renaming methods to match changes
21508         in http://trac.webkit.org/changeset/42377.
21509
21510         https://bugs.webkit.org/show_bug.cgi?id=25141
21511
21512         * bindings/v8/ScheduledAction.cpp:
21513      (WebCore::ScheduledAction::execute): updateRendering() -> updateStyleIfNeeded()
21514         * bindings/v8/V8AbstractEventListener.cpp:
21515         (WebCore::V8AbstractEventListener::handleEvent): updateDocumentsRendering() -> updateStyleForAllDocuments()
21516
21517 2009-04-13  Darin Fisher  <darin@chromium.org>
21518
21519         Reviewed by Darin Adler.
21520
21521         https://bugs.webkit.org/show_bug.cgi?id=25136
21522         CRASH in DocumentLoader::removeSubresourceLoader due to null m_frame
21523
21524         Test: fast/frames/frame-unload-crash.html
21525
21526         * loader/DocumentLoader.cpp:
21527         (WebCore::DocumentLoader::updateLoading): Added null check of m_frame.
21528
21529 2009-04-13  Sam Weinig  <sam@webkit.org>
21530
21531         Reviewed by Tim Hatcher.
21532
21533         Put the MessagePort constructor back in ENABLE_CHANNEL_MESSAGING.
21534
21535         * page/DOMWindow.idl:
21536
21537 2009-04-13  Greg Bolsinga  <bolsinga@apple.com>
21538
21539         Fix GTK build break.
21540
21541         * platform/gtk/GeolocationServiceGtk.cpp:
21542         (WebCore::GeolocationServiceGtk::updatePosition):
21543
21544 2009-04-13  David Hyatt  <hyatt@apple.com>
21545
21546         Reviewed by Darin Adler and Dan Bernstein.
21547
21548         Assertion in updateStyleForAllDocuments.  Make sure to unscheduleStyleRecalc when an object goes into
21549         the page cache.  Disallow scheduling of style recalcs on a document that is already in the page cache.
21550         Schedule a style recalc if needed when an object comes out of the page cache.
21551
21552         * dom/Document.cpp:
21553         (WebCore::Document::scheduleStyleRecalc):
21554         (WebCore::Document::setInPageCache):
21555
21556 2009-04-13  Timothy Hatcher  <timothy@apple.com>
21557
21558         Correctly sort (program) scripts in the Scripts panel popup menu.
21559
21560         Reviewed by Ada Chan.
21561
21562         * inspector/front-end/ScriptsPanel.js:
21563         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Refactor the code
21564         and sort "(program)" options by the sourceID to maintain some order.
21565         * inspector/front-end/utilities.js:
21566         (indexOfObjectInListSortedByFunction): Fix a bug where identical objects would cause
21567         an incorrect return value that confuses insertionIndexForObjectInListSortedByFunction.
21568         Just set 'first' and break so the correct result will be returned.
21569
21570 2009-04-13  Greg Bolsinga  <bolsinga@apple.com>
21571
21572         Reviewed by Darin Adler.
21573
21574         https://bugs.webkit.org/show_bug.cgi?id=24770
21575         
21576         Add custom code for Coordinates that returns null when required by the
21577         Geolocation spec.
21578         
21579         http://dev.w3.org/geo/api/spec-source.html#coordinates
21580
21581         * WebCore.xcodeproj/project.pbxproj:
21582         * bindings/js/JSCoordinatesCustom.cpp: Added.
21583         (WebCore::JSCoordinates::altitude): returns null if the value cannot be provided.
21584         (WebCore::JSCoordinates::altitudeAccuracy): Ditto
21585         (WebCore::JSCoordinates::heading): Ditto
21586         (WebCore::JSCoordinates::speed): Ditto
21587         * page/Coordinates.h:
21588         (WebCore::Coordinates::create): Add 'canProvide' parameters and values
21589         (WebCore::Coordinates::canProvideAltitude):
21590         (WebCore::Coordinates::canProvideAltitudeAccuracy):
21591         (WebCore::Coordinates::canProvideHeading):
21592         (WebCore::Coordinates::canProvideSpeed):
21593         (WebCore::Coordinates::Coordinates):
21594         * page/Coordinates.idl: specify custom getters
21595         * platform/mac/GeolocationServiceMac.mm: Set the values correctly if they cannot be provided.
21596         (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
21597
21598 2009-04-13  Adele Peterson  <adele@apple.com>
21599
21600         Reviewed by Darin Adler.
21601
21602         Fix for <rdar://problem/5510537> Typing return at start of block quote yields empty quoted line
21603
21604         Test: editing/inserting/5510537.html
21605
21606         * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply): If the break insertion position
21607         is at the beginning of the topmost quote, then just insert the <br> before the blockquote.  Otherwise, if the break
21608         insertion position is at the beginning of any quote, adjust the position so the break comes before the current quote level
21609         so we don't end up with an empty line in that quote in addition to the new line we're adding with the <br>.
21610
21611 2009-04-11  Darin Adler  <darin@apple.com>
21612
21613         Reviewed by Dan Bernstein.
21614
21615         Fix problem when encoding history files with duplicate integer arrays near the end of the file.
21616         This results in an assertion failure, and if assertions are turned off, corrupted output.
21617
21618         When writing an integer array it's important not to add an object reference to the
21619         aggregate buffer. The writing of the array does not depend on the aggregate buffer. But,
21620         more importantly, it's possible this instance integer array is a duplicate and won't be
21621         written out. If so, there's no guarantee there's enough space in the aggregate buffer to
21622         store the object references (the references will be ignored). In some cases the aggregate
21623         buffer can then overrun the data being written; normally this is prevented by the fact that
21624         the data being written will include a copy of the aggregate buffer.
21625
21626         Also removed a bit of unneeded dead code to handle the integer -1.
21627
21628         * platform/cf/BinaryPropertyList.cpp:
21629         (WebCore::BinaryPropertyListPlan::BinaryPropertyListPlan): Removed unneeded
21630         m_integerNegativeOneObjectReference, since property lists support only non-negative integers.
21631         (WebCore::BinaryPropertyListPlan::writeInteger): Removed support for
21632         m_integerNegativeOneObjectReference.
21633         (WebCore::BinaryPropertyListPlan::integerObjectReference): Ditto.
21634         (WebCore::BinaryPropertyListSerializer::writeIntegerWithoutAddingAggregateObjectReference):
21635         Added. Factored out most of writeInteger, for use in writeIntegerArray, without calling
21636         addAggregateObjectReference.
21637         (WebCore::BinaryPropertyListSerializer::writeInteger): Changed to call the new
21638         writeIntegerWithoutAddingAggregateObjectReference function.
21639         (WebCore::BinaryPropertyListSerializer::writeIntegerArray): Call the new
21640         writeIntegerWithoutAddingAggregateObjectReference function and therefore remove the
21641         code to save and restore m_currentAggregateBufferByte, which is no longer needed.
21642
21643 2009-04-13  Holger Hans Peter Freyther  <zecke@selfish.org>
21644
21645         Unreviewed Qt build fix.
21646
21647         * platform/graphics/qt/FontQt.cpp:
21648         (WebCore::Font::floatWidthForComplexText):
21649
21650 2009-04-12  Sam Weinig  <sam@webkit.org>
21651
21652         Reviewed by Mark Rowe.
21653
21654         Move the event and crypto attributes and the captureEvents and releaseEvents
21655         functions out of JSDOMWindowBase by partially generating them.
21656
21657         * bindings/js/JSDOMGlobalObject.cpp:
21658         (WebCore::JSDOMGlobalObject::currentEvent): Make const.
21659         * bindings/js/JSDOMGlobalObject.h:
21660         * bindings/js/JSDOMWindowBase.cpp:
21661         * bindings/js/JSDOMWindowCustom.cpp:
21662         (WebCore::JSDOMWindow::crypto): Not implemented.
21663         (WebCore::JSDOMWindow::event):
21664         (WebCore::JSDOMWindow::captureEvents): Not implemented.
21665         (WebCore::JSDOMWindow::releaseEvents): Ditto.
21666         * page/DOMWindow.idl:
21667
21668 2009-04-12  Sam Weinig  <sam@webkit.org>
21669
21670         Reviewed by Mark Rowe.
21671
21672         Move more attributes out of JSDOMWindowBase by
21673         partially generating them.
21674
21675         - Expose the MessagePort constructor.
21676
21677         * bindings/js/JSDOMGlobalObject.h:
21678         (WebCore::getDOMConstructor):
21679         * bindings/js/JSDOMWindowBase.cpp:
21680         (setJSDOMWindowBaseEvent):
21681         * bindings/js/JSDOMWindowCustom.cpp:
21682         (WebCore::JSDOMWindow::image):
21683         (WebCore::JSDOMWindow::option):
21684         (WebCore::JSDOMWindow::audio):
21685         (WebCore::JSDOMWindow::webKitPoint):
21686         (WebCore::JSDOMWindow::webKitCSSMatrix):
21687         (WebCore::JSDOMWindow::xMLHttpRequest):
21688         (WebCore::JSDOMWindow::xSLTProcessor):
21689         (WebCore::JSDOMWindow::messageChannel):
21690         (WebCore::JSDOMWindow::worker):
21691         * page/DOMWindow.idl:
21692
21693 2009-04-12  Timothy Hatcher  <timothy@apple.com>
21694
21695         A resource's filename is not correct after a redirect in the Inspector.
21696
21697         Reviewed by Dan Bernstein.
21698
21699         * inspector/InspectorResource.cpp:
21700         (WebCore::InspectorResource::updateScriptObject): Fix a typo in the
21701         lastPathComponent property name.
21702
21703 2009-04-12  Adele Peterson  <adele@apple.com>
21704
21705         Reviewed by Darin Adler.
21706
21707         Test: editing/inserting/6609479-1.html
21708
21709         Follow-up to <rdar://problem/6609479>.
21710
21711         Before my last change, a Mail blockquote would've been broken up earlier, and you would've been guaranteed that the inserted content
21712         was at the start of a paragraph.  Now we need to check for that explicitly, and only merge the start of the inserted content if it is 
21713         at the start of a paragraph.
21714
21715         * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::shouldMergeStart):
21716
21717 2009-04-11  Adele Peterson  <adele@apple.com>
21718
21719         Reviewed by Dan Bernstein.
21720
21721         Fix for <rdar://problem/6609479> Pressing return inside a table cell that's inside quoted content will split the table
21722
21723         Test: editing/inserting/6609479.html
21724
21725         Don't break a blockquote if pasting or inserting into a table.
21726
21727         * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
21728         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
21729
21730 2009-04-11  Dan Bernstein  <mitz@apple.com>
21731
21732         Reviewed by Darin Adler.
21733
21734         - fix <rdar://problem/6643103> Unscaled values from body.scrollHeight
21735
21736         Test: fast/css/zoom-body-scroll.html
21737
21738         Adjust scroll{Left,Top,Width,Height} values for zoom in getters and
21739         setters.
21740
21741         * html/HTMLBodyElement.cpp:
21742         (WebCore::adjustForZoom):
21743         (WebCore::HTMLBodyElement::scrollLeft):
21744         (WebCore::HTMLBodyElement::setScrollLeft):
21745         (WebCore::HTMLBodyElement::scrollTop):
21746         (WebCore::HTMLBodyElement::setScrollTop):
21747         (WebCore::HTMLBodyElement::scrollHeight):
21748         (WebCore::HTMLBodyElement::scrollWidth):
21749
21750 2009-04-10  Timothy Hatcher  <timothy@apple.com>
21751
21752         Allow page navigation and reload while stopped at a breakpoint.
21753
21754         <rdar://problem/6781108> Having a breakpoint active prevents page reload
21755
21756         Reviewed by Darin Adler.
21757
21758         * inspector/InspectorController.cpp:
21759         (WebCore::InspectorController::didContinue): Call the resumedScript function.
21760         * inspector/InspectorController.h: Added didContinue.
21761         * inspector/JavaScriptDebugListener.h: Ditto.
21762         * inspector/JavaScriptDebugServer.cpp:
21763         (WebCore::JavaScriptDebugServer::pauseIfNeeded): Call didContinue on the listeners.
21764         * inspector/front-end/ScriptsPanel.js:
21765         (WebInspector.ScriptsPanel.prototype.debuggerResumed): Update the interface and state.
21766         * inspector/front-end/inspector.js:
21767         (WebInspector.resumedScript): Call ScriptsPanel.debuggerResumed.
21768         * loader/FrameLoader.cpp:
21769         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Call resumeDebugger.
21770
21771 2009-04-10  Sam Weinig  <sam@webkit.org>
21772
21773         Reviewed by Adele Peterson.
21774
21775         Remove unused include for JSLock.
21776
21777         * page/mac/FrameMac.mm:
21778
21779 2009-04-10  Sam Weinig  <sam@webkit.org>
21780
21781         Reviewed by Darin Adler.
21782
21783         Add back the keepAlive timer for after the script execution to
21784         protect the callers of evaluate, as was part of the original intent
21785         of timer.
21786
21787         * bindings/js/ScriptController.cpp:
21788         (WebCore::ScriptController::evaluate):
21789         * page/mac/FrameMac.mm:
21790
21791 2009-04-10  Chris Marrin  <cmarrin@apple.com>
21792
21793         Reviewed by Simon Fraser.
21794
21795         Fixed https://bugs.webkit.org/show_bug.cgi?id=25137
21796
21797         If we reload, the animation controller sticks around and has
21798         a stale animation time. So the needed delay is computed wrong.
21799         I added a reset of the animation timer on load.
21800
21801         I did not do a test case because this only happens on reload so I
21802         couldn't make an automated test. I tried using an iframe and using
21803         reload() but that doesn't tickle the bug.
21804
21805         * dom/Document.cpp:
21806         (WebCore::Document::implicitOpen):
21807
21808 2009-04-10  Grace Kloba  <klobag@gmail.com>
21809
21810         Reviewed by Darin Adler.
21811
21812         Move WORKERS header files inside ENABLE(WORKERS).
21813         So if WORKERS is not enabled and the generated files are not generated, the build is still working.
21814
21815         * bindings/js/JSDOMGlobalObject.cpp:
21816         * bindings/js/JSMessageChannelConstructor.cpp:
21817         * bindings/js/ScheduledAction.cpp:
21818
21819 2009-04-10  Darin Adler  <darin@apple.com>
21820
21821         Reviewed by Brady Eidson.
21822
21823         <rdar://problem/6773515> crash in push_heap inside WebCore when printing
21824
21825         The crash was due to manipulating a timer on a different thread than the one it was created on.
21826         This adds some diagnostics so we'll catch that kind of mistake immediately.
21827
21828         * platform/Timer.cpp:
21829         (WebCore::TimerBase::TimerBase): Store the thread identifier in debug versions.
21830         (WebCore::TimerBase::start): Assert it's the same thread the timer was created on.
21831         (WebCore::TimerBase::stop): Ditto.
21832         (WebCore::TimerBase::isActive): Ditto.
21833         (WebCore::TimerBase::setNextFireTime): Ditto.
21834
21835         * platform/Timer.h: Added the thread identifier data member.
21836
21837 2009-04-10  Chris Marrin  <cmarrin@apple.com>
21838
21839         Reviewed by Dan Bernstein
21840
21841         https://bugs.webkit.org/show_bug.cgi?id=25108
21842
21843         If you remove a class with a transition while that transition is running
21844         the animation timer will continue to fire after the transition is finished.
21845         This has no visual indication, but it does drain the processor. And in some
21846         cases it might even cause a glitch in future animations. Unfortunately there
21847         is no way to test this without putting in printfs.
21848
21849         This happens because the animation logic is never traversed after a transition
21850         is removed, so we never get a chance to cleanup. So I added cleanup in the logic
21851         that fires the dispatch of the last style change when the animation finishes.
21852
21853         Test: transitions/remove-transition-style.html
21854
21855         * page/animation/AnimationController.cpp:
21856         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
21857         * page/animation/CompositeAnimation.cpp:
21858         (WebCore::CompositeAnimation::updateTransitions):
21859         (WebCore::CompositeAnimation::animate):
21860         (WebCore::CompositeAnimation::cleanupFinishedAnimations):
21861         * page/animation/CompositeAnimation.h:
21862
21863 2009-04-10  Sam Weinig  <sam@webkit.org>
21864
21865         Reviewed by Geoffrey Garen.
21866
21867         Fix for <rdar://problem/6648858>
21868         CrashTracer: [REGRESSION(Safari 4)] 60 crashes in Safari at com.apple.WebCore • WebCore::ScriptController::evaluate + 241
21869
21870         The Frame (and therefore ScriptController) were being destroyed
21871         during JavaScript execution causing the JSDOMWindowShell to become
21872         null.
21873
21874         * bindings/js/ScriptController.cpp:
21875         (WebCore::ScriptController::evaluate): Use a RefPtr to protect the Frame
21876         instead of the keep-alive timer, since a nested event loop used from with-in 
21877         JavaScript execution could cause the timer to fire before returning.
21878
21879 2009-04-10  Dimitri Glazkov  <dglazkov@chromium.org>
21880
21881         Reviewed by Timothy Hatcher.
21882
21883         https://bugs.webkit.org/show_bug.cgi?id=25133
21884         Fix an error in InspectorController's bindings, clean up a few header
21885         includes, make empty object construction in ScriptObject less ambiguous.
21886
21887         * bindings/js/JSInspectorControllerCustom.cpp:
21888         (WebCore::JSInspectorController::setSetting): Send correct argument from
21889             the bindings.
21890         * bindings/js/ScriptObject.cpp:
21891         (WebCore::ScriptObject::createNew): Added.
21892         * bindings/js/ScriptObject.h: Removed constructor, added decl for createNew.
21893         * inspector/ConsoleMessage.cpp: Remove unused header.
21894         * inspector/ConsoleMessage.h: Ditto.
21895         * inspector/InspectorResource.cpp:
21896         (WebCore::createHeadersObject): Changed to use ScriptObject::createNew.
21897
21898 2009-04-10  Chris Marrin  <cmarrin@apple.com>
21899
21900         Reviewed by Simon Fraser.
21901
21902         Fixed https://bugs.webkit.org/show_bug.cgi?id=25134
21903
21904         This both fixes a bug where I was not sending in the right time
21905         to continue the animation and was not recomputing current time
21906         when coming out of suspend.
21907
21908         * page/animation/AnimationBase.cpp:
21909         (WebCore::AnimationBase::updateStateMachine):
21910         * page/animation/AnimationController.cpp:
21911         (WebCore::AnimationControllerPrivate::suspendAnimations):
21912         (WebCore::AnimationControllerPrivate::resumeAnimations):
21913
21914 2009-04-10  Adam Roben  <aroben@apple.com>
21915
21916         Give Windows's <select> popup menus drop shadows
21917
21918         Rubber-stamped by Steve Falkenburg.
21919
21920         No test possible.
21921
21922         * platform/win/PopupMenuWin.cpp:
21923         (WebCore::registerPopup): Use the CS_DROPSHADOW window class style.
21924
21925 2009-04-10  Timothy Hatcher  <timothy@apple.com>
21926
21927         Fix a bug in the Web Inspector where it would show scripts
21928         from previous pages when toggling the debugger off and back on.
21929
21930         https://bugs.webkit.org/show_bug.cgi?id=25095
21931         rdar://problem/6769970
21932
21933         Reviewed by John Sullivan.
21934
21935         * bindings/js/ScriptCachedFrameData.cpp:
21936         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData): Null out the
21937         debugger for the scriptController. This balances the attachDebugger
21938         that was already in ScriptCachedFrameData::restore.
21939         (WebCore::ScriptCachedFrameData::restore): Clean up an if statement.
21940         * bindings/js/ScriptController.cpp:
21941         (WebCore::ScriptController::clearWindowShell): Clear the debugger from
21942         the current window before setting the new window.
21943         * inspector/JavaScriptDebugServer.cpp:
21944         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): Only accumulate
21945         source providers for code associated this as the debugger.
21946
21947 2009-04-10  Pierre d'Herbemont  <pdherbemont@apple.com>
21948
21949         Reviewed by Adele Peterson.
21950
21951         <rdar://problem/6646998> Avoid starting QTKitServer if possible
21952         When possible avoid asking QTKit for the MIME types that require QTKitServer
21953         when running 64-bit.
21954
21955         * WebCore.base.exp: Added new entry point.
21956
21957         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
21958         (WebCore::addFileTypesToCache): Add an NSArray of types to the cache.
21959         (WebCore::mimeCommonTypesCache): Add all "common" QTKit types to the cache.
21960         (WebCore::mimeModernTypesCache): Add only "modern" QTKit types to the cache (this list does 
21961         not start QTKitServer if it is not already running).
21962         (WebCore::MediaPlayerPrivate::getSupportedTypes): Refactored.
21963         (WebCore::MediaPlayerPrivate::supportsType): Look in list of "modern" types first to avoid
21964         starting QTKitServer if possible.
21965
21966         * platform/mac/WebCoreSystemInterface.h: Add wkQTIncludeOnlyModernMediaFileTypes.
21967         * platform/mac/WebCoreSystemInterface.mm: Ditto.
21968
21969 2009-04-10  Adam Roben  <aroben@apple.com>
21970
21971         Turn on window animations for <select> popup menus
21972
21973         We turned these off back when <select> popup menus were partially
21974         transparent. Now that they're opaque, there's no reason not to
21975         animate them.
21976
21977         Reviewed by Steve Falkenburg.
21978
21979         No test possible.
21980
21981         * platform/win/PopupMenuWin.cpp:
21982         (WebCore::PopupMenu::show): Remove the #ifdef that was disabling the
21983         window animation.
21984
21985 2009-04-10  Dan Bernstein  <mitz@apple.com>
21986
21987         Reviewed by Sam Weinig.
21988
21989         - fix a regression from r42379 which made zero-width characters affect
21990           line height
21991
21992         Test: fixes fast/text/wide-zero-width-space.html
21993
21994         * platform/graphics/mac/FontMacATSUI.mm:
21995         (WebCore::overrideLayoutOperation): Add to the fallback font list set
21996         here, and only if the glyph is not zero-width...
21997         (WebCore::ATSULayoutParameters::initialize): ...instead of doing it
21998         here. This matches WidthIterator's behavior.
21999
22000 2009-04-10  Darin Fisher  <darin@chromium.org>
22001
22002         Fixing build bustage caused by warnings being treated as errors.
22003         1- A local variable was only be used inside a debug assertion, which
22004            caused grief for the release build.
22005         2- Missing initializer for member 'DocumentMarker::activeMatch'
22006
22007         * dom/Document.cpp:
22008         (WebCore::Document::addMarker):
22009         (WebCore::Document::setMarkersActive):
22010
22011 2009-04-10  Finnur Thorarinsson  <finnur.webkit@gmail.com>
22012
22013         Reviewed by John Sullivan.
22014
22015         Fixing: https://bugs.webkit.org/show_bug.cgi?id=25117
22016         (TextMatches don't have a concept of active match)
22017
22018         For the ports that use the DocumentMarker as highlighting for FindInPage it is
22019         useful to have a flag that specifies which marker is active, so it can be drawn
22020         in a different color.
22021
22022         This allows me to remove the hack to use the SelectionController to highlight
22023         the active match (in the ChromiumWin port).
22024
22025         * dom/Document.cpp:
22026         (WebCore::Document::setMarkersActive):
22027         * dom/Document.h:
22028         * dom/DocumentMarker.h:
22029         * rendering/InlineTextBox.cpp:
22030         (WebCore::InlineTextBox::paintTextMatchMarker):
22031         * rendering/RenderTheme.cpp:
22032         (WebCore::RenderTheme::platformActiveTextSearchHighlightColor):
22033         (WebCore::RenderTheme::platformInactiveTextSearchHighlightColor):
22034         * rendering/RenderTheme.h:
22035         * rendering/RenderThemeChromiumWin.cpp:
22036         (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
22037         (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
22038         (WebCore::RenderThemeChromiumWin::platformActiveTextSearchHighlightColor):
22039         (WebCore::RenderThemeChromiumWin::platformInactiveTextSearchHighlightColor):
22040         * rendering/RenderThemeChromiumWin.h:
22041
22042 2009-04-10  Pamela Greene  <pam@chromium.org>
22043
22044         Reviewed by Dimitri Glazkov.
22045
22046         Build fix for Chromium.
22047         https://bugs.webkit.org/show_bug.cgi?id=12440
22048
22049         * page/chromium/FrameChromium.cpp:
22050         (WebCore::computePageRectsForFrame): change docWidth() to overflowWidth()
22051
22052 2009-04-09  David Hyatt  <hyatt@apple.com>
22053
22054         Reviewed by Oliver Hunt
22055
22056         Add a timer for style recalc (similar to the one used for scheduling layouts).  For now in order
22057         to reduce the risk of regressions, I have left in all the synchronous machinery for updating style
22058         following DOM events and JavaScript timeouts.  Eventually these calls will be removed.
22059
22060         Where the timer will really kick in and be useful is for clients that do style changes from
22061         Objective-C DOM bindings or that execute JavaScript to manipulate style from the JavaScriptCore C API.
22062
22063         * dom/ContainerNode.cpp:
22064         (WebCore::ContainerNode::insertBefore):
22065         (WebCore::ContainerNode::replaceChild):
22066         (WebCore::ContainerNode::removeChild):
22067         (WebCore::ContainerNode::appendChild):
22068         * dom/Document.cpp:
22069         (WebCore::Document::Document):
22070         (WebCore::Document::~Document):
22071         (WebCore::Document::scheduleStyleRecalc):
22072         (WebCore::Document::unscheduleStyleRecalc):
22073         (WebCore::Document::styleRecalcTimerFired):
22074         (WebCore::Document::updateStyleForAllDocuments):
22075         (WebCore::Document::detach):
22076         * dom/Document.h:
22077         * dom/Node.cpp:
22078         (WebCore::Node::setNeedsStyleRecalc):
22079         (WebCore::Node::lazyAttach):
22080
22081 2009-04-09  Oliver Hunt  <oliver@apple.com>
22082
22083         Reviewed by Gavin Barraclough.
22084
22085         <rdar://problem/6586787> JS debugger does not work in 64-bit
22086
22087         Don't truncate the source id in JSCallFrame
22088
22089         * inspector/JavaScriptCallFrame.h:
22090
22091 2009-04-09  Adam Roben  <aroben@apple.com>
22092
22093         Start compiling HistoryPropertyList on Windows
22094
22095         Reviewed by Darin Adler.
22096
22097         * WebCore.vcproj/WebCore.vcproj: Added HistoryPropertyList and its
22098         dependencies to the project. Copy headers from history/cf to
22099         $WebKitOutputDir.
22100         * history/cf/HistoryPropertyList.cpp: Added StringExtras.h so that
22101         this file will compile on Windows.
22102
22103 2009-04-09  Dan Bernstein  <mitz@apple.com>
22104
22105         Reviewed by Dave Hyatt.
22106
22107         - fix <rdar://problem/6166612> Text boxes' metrics should be based on
22108           the actual fonts used in them, not just the primary font
22109
22110         Covered by many existing layout tests
22111
22112         * platform/graphics/Font.cpp:
22113         (WebCore::Font::floatWidth): Added a fallbackFonts parameter. If the
22114         platform supports collecting fallback fonts in its complex font path
22115         and fallbackFonts is not null, all fallback fonts used for the text run
22116         will be added to it.
22117
22118         * platform/graphics/Font.h:
22119         (WebCore::Font::width): Ditto.
22120
22121         * platform/graphics/FontFastPath.cpp:
22122         (WebCore::Font::glyphDataForCharacter): Removed an unnecessary namespace
22123         qualifier.
22124         (WebCore::Font::floatWidthForSimpleText): Added a fallbackFonts
22125         parameter, which is passed down to WidthIterator.
22126
22127         * platform/graphics/WidthIterator.cpp:
22128         (WebCore::WidthIterator::WidthIterator): Added a fallbackFonts parameter
22129         and used it to initialize the m_fallbackFonts member.
22130         (WebCore::WidthIterator::advance): Track the fonts being used and add
22131         any fallback fonts to the m_fallbackFonts set. Make sure to only add
22132         non-small-caps fonts.
22133
22134         * platform/graphics/WidthIterator.h:
22135
22136         * platform/graphics/chromium/FontChromiumWin.cpp:
22137         (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
22138         implementation that returns false, meaning this platform's
22139         implementation of floatWidthForComplexText() does not populate the
22140         fallbackFonts set.
22141         (WebCore::Font::floatWidthForComplexText): Updated for the new
22142         prototype.
22143
22144         * platform/graphics/chromium/FontLinux.cpp: Ditto.
22145
22146         * platform/graphics/gtk/FontGtk.cpp: Ditto.
22147
22148         * platform/graphics/mac/CoreTextController.cpp:
22149         (WebCore::CoreTextController::CoreTextController): Added a fallbackFonts
22150         parameter and used it to initialize the m_fallbackFonts member.
22151         (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Add
22152         fallback fonts to m_fallbackFonts.
22153
22154         * platform/graphics/mac/CoreTextController.h:
22155
22156         * platform/graphics/mac/FontMac.mm:
22157         (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
22158         implementation that returns true, indicating that the Mac
22159         implementations of floatWidthForComplexText() populate the fallbackFonts
22160         set.
22161         * platform/graphics/mac/FontMacATSUI.mm:
22162         (WebCore::ATSULayoutParameters::ATSULayoutParameters): Added a
22163         fallbackFonts parameter and used it to initialize the m_fallbackFonts
22164         member.
22165         (WebCore::ATSULayoutParameters::initialize): Add fallback fonts to
22166         m_fallbackFonts.
22167         (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts
22168         parameter, which is passed down to ATSULayoutParameters.
22169
22170         * platform/graphics/mac/FontMacCoreText.cpp:
22171         (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts
22172         parameter, which is passed down to CoreTextController.
22173
22174         * platform/graphics/win/FontWin.cpp:
22175         (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
22176         implementation that returns true, indicating that the
22177         UniscribeController-based implementations of floatWidthForComplexText()
22178         populate the fallbackFonts set.
22179         (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts
22180         parameter, which is passed down to UniscribeController.
22181
22182         * platform/graphics/win/UniscribeController.cpp:
22183         (WebCore::UniscribeController::UniscribeController): Added a
22184         fallbackfonts parameter and used it to initialize m_fallbackFonts.
22185         (WebCore::UniscribeController::advance): Add fallback fonts to
22186         m_fallbackFonts.
22187
22188         * platform/graphics/win/UniscribeController.h:
22189         
22190         * platform/graphics/wx/FontWx.cpp:
22191         (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
22192         implementation that returns false, meaning this platform's
22193         implementation of floatWidthForComplexText() does not populate the
22194         fallbackFonts set.
22195         (WebCore::Font::floatWidthForComplexText): Updated for the new
22196         prototype.
22197
22198         * rendering/InlineFlowBox.cpp:
22199         (WebCore::InlineFlowBox::computeLogicalBoxHeights): For an InlineTextBox
22200         with multiple fonts, compute a common baseline and line height by
22201         considering all fonts' ascents and descents (and line spacing, if
22202         applicable).
22203
22204         * rendering/InlineTextBox.cpp:
22205         (WebCore::InlineTextBox::setFallbackFonts): Added. Temporarily stores
22206         the set of fallback fonts in a vector.
22207         (WebCore::InlineTextBox::takeFallbackFonts): Added. Returns the fallback
22208         fonts previously stored and removes them from storage.
22209
22210         * rendering/InlineTextBox.h:
22211
22212         * rendering/RenderText.cpp:
22213         (WebCore::RenderText::RenderText): Initialized the
22214         m_knownNotToUseFallbackFonts to false.
22215         (WebCore::RenderText::styleDidChange): Reset
22216         m_knownNotToUseFallbackFonts to false if the style difference is such that
22217         affects layout.
22218         (WebCore::RenderText::widthFromCache): Added a fallbackFonts parameter,
22219         which is passed down to Font::width().
22220         (WebCore::RenderText::trimmedPrefWidths): Updated for the change to
22221         widthFromCache().
22222         (WebCore::RenderText::calcPrefWidths): Made this call a private version
22223         of calcPrefWidths() that takes a fallbackFonts parameter and set the
22224         m_knownNotToUseFallbackFonts to true if the set comes back empty.
22225         The private version passes the fallbackFonts set to widthFromCache().
22226         (WebCore::RenderText::setText): Reset m_knownNotToUseFallbackFonts to
22227         false.
22228         (WebCore::RenderText::createFallbackFontMetricsBox): Added.
22229         (WebCore::RenderText::width): Added a fallbackFonts parameter, which is
22230         passed down to calcPrefWidths(), widthFromCache() and Font::width().
22231         Set m_knownNotToUseFallbackFonts to true when appropriate.
22232
22233         * rendering/RenderText.h:
22234
22235         * rendering/bidi.cpp:
22236         (WebCore::RenderBlock::constructLine): Added an assertion and a continue
22237         statement to remove one level of indentation.
22238         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Temporarily
22239         store the set of fallback fonts in the InlineTextBox.
22240         (WebCore::RenderBlock::computeVerticalPositionsForLine): Added an
22241         assertion.
22242
22243 2009-04-09  David Hyatt  <hyatt@apple.com>
22244
22245         Reviewed by Adam Roben
22246
22247         Rename all of the changed()/setChanged()/setDocumentChanged() methods to mention style recalc
22248         explicitly instead.
22249
22250         * bindings/js/JSCustomPositionCallback.cpp:
22251         (WebCore::JSCustomPositionCallback::handleEvent):
22252         * bindings/js/JSCustomPositionErrorCallback.cpp:
22253         (WebCore::JSCustomPositionErrorCallback::handleEvent):
22254         * bindings/js/JSCustomSQLStatementCallback.cpp:
22255         (WebCore::JSCustomSQLStatementCallback::handleEvent):
22256         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
22257         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
22258         * bindings/js/JSCustomSQLTransactionCallback.cpp:
22259         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
22260         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
22261         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
22262         * bindings/js/JSCustomVoidCallback.cpp:
22263         (WebCore::JSCustomVoidCallback::handleEvent):
22264         * bindings/js/JSCustomXPathNSResolver.cpp:
22265         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
22266         * bindings/js/JSEventListener.cpp:
22267         (WebCore::JSAbstractEventListener::handleEvent):
22268         * bindings/js/ScheduledAction.cpp:
22269         (WebCore::ScheduledAction::execute):
22270         * bindings/js/ScriptControllerMac.mm:
22271         (WebCore::updateStyleIfNeededForBindings):
22272         (WebCore::ScriptController::initJavaJSBindings):
22273         * css/CSSMutableStyleDeclaration.cpp:
22274         (WebCore::CSSMutableStyleDeclaration::removeProperty):
22275         (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
22276         (WebCore::CSSMutableStyleDeclaration::setProperty):
22277         (WebCore::CSSMutableStyleDeclaration::setStringProperty):
22278         (WebCore::CSSMutableStyleDeclaration::setImageProperty):
22279         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
22280         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
22281         (WebCore::CSSMutableStyleDeclaration::setCssText):
22282         (WebCore::CSSMutableStyleDeclaration::merge):
22283         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
22284         * css/CSSMutableStyleDeclaration.h:
22285         * css/CSSStyleSelector.cpp:
22286         (WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged):
22287         (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
22288         * css/CSSVariablesDeclaration.cpp:
22289         (WebCore::CSSVariablesDeclaration::removeVariable):
22290         (WebCore::CSSVariablesDeclaration::setVariable):
22291         (WebCore::CSSVariablesDeclaration::setNeedsStyleRecalc):
22292         * css/CSSVariablesDeclaration.h:
22293         * dom/ContainerNode.cpp:
22294         (WebCore::ContainerNode::insertBefore):
22295         (WebCore::ContainerNode::replaceChild):
22296         (WebCore::ContainerNode::removeChild):
22297         (WebCore::ContainerNode::appendChild):
22298         (WebCore::ContainerNode::detach):
22299         (WebCore::ContainerNode::setFocus):
22300         (WebCore::ContainerNode::setActive):
22301         (WebCore::ContainerNode::setHovered):
22302         * dom/Document.cpp:
22303         (WebCore::Document::Document):
22304         (WebCore::Document::~Document):
22305         (WebCore::Document::scheduleStyleRecalc):
22306         (WebCore::Document::unscheduleStyleRecalc):
22307         (WebCore::Document::recalcStyle):
22308         (WebCore::Document::updateStyleIfNeeded):
22309         (WebCore::Document::updateStyleForAllDocuments):
22310         (WebCore::Document::updateLayout):
22311         (WebCore::Document::implicitClose):
22312         (WebCore::Document::prepareMouseEvent):
22313         (WebCore::Document::setFocusedNode):
22314         (WebCore::Document::setCSSTarget):
22315         * dom/Document.h:
22316         * dom/Element.cpp:
22317         (WebCore::Element::recalcStyle):
22318         (WebCore::checkForSiblingStyleChanges):
22319         * dom/InputElement.cpp:
22320         (WebCore::InputElement::parseMaxLengthAttribute):
22321         * dom/MouseRelatedEvent.cpp:
22322         (WebCore::MouseRelatedEvent::receivedTarget):
22323         * dom/Node.cpp:
22324         (WebCore::Node::Node):
22325         (WebCore::Node::setNeedsStyleRecalc):
22326         (WebCore::Node::lazyAttach):
22327         (WebCore::Node::dispatchGenericEvent):
22328         * dom/Node.h:
22329         (WebCore::Node::needsStyleRecalc):
22330         (WebCore::Node::childNeedsStyleRecalc):
22331         (WebCore::Node::setChildNeedsStyleRecalc):
22332         * dom/OptionElement.cpp:
22333         (WebCore::OptionElement::setSelectedState):
22334         * dom/ScriptElement.cpp:
22335         (WebCore::ScriptElementData::evaluateScript):
22336         * dom/StyledElement.cpp:
22337         (WebCore::StyledElement::attributeChanged):
22338         (WebCore::StyledElement::classAttributeChanged):
22339         (WebCore::StyledElement::parseMappedAttribute):
22340         * dom/Text.cpp:
22341         (WebCore::Text::recalcStyle):
22342         * dom/XMLTokenizer.cpp:
22343         (WebCore::XMLTokenizer::insertErrorMessageBlock):
22344         * editing/DeleteButtonController.cpp:
22345         (WebCore::DeleteButtonController::enable):
22346         * editing/Editor.cpp:
22347         (WebCore::Editor::setBaseWritingDirection):
22348         * editing/SelectionController.cpp:
22349         (WebCore::SelectionController::nodeWillBeRemoved):
22350         (WebCore::SelectionController::layout):
22351         (WebCore::SelectionController::focusedOrActiveStateChanged):
22352         * html/HTMLAnchorElement.cpp:
22353         (WebCore::HTMLAnchorElement::parseMappedAttribute):
22354         * html/HTMLElement.cpp:
22355         (WebCore::HTMLElement::setInnerText):
22356         (WebCore::HTMLElement::isContentEditable):
22357         (WebCore::HTMLElement::isContentRichlyEditable):
22358         (WebCore::HTMLElement::contentEditable):
22359         * html/HTMLEmbedElement.cpp:
22360         (WebCore::HTMLEmbedElement::updateWidget):
22361         * html/HTMLFormControlElement.cpp:
22362         (WebCore::HTMLFormControlElement::parseMappedAttribute):
22363         * html/HTMLFrameSetElement.cpp:
22364         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
22365         (WebCore::HTMLFrameSetElement::recalcStyle):
22366         * html/HTMLInputElement.cpp:
22367         (WebCore::HTMLInputElement::parseMappedAttribute):
22368         (WebCore::HTMLInputElement::setChecked):
22369         (WebCore::HTMLInputElement::setIndeterminate):
22370         (WebCore::HTMLInputElement::setValue):
22371         (WebCore::HTMLInputElement::setAutofilled):
22372         * html/HTMLMediaElement.cpp:
22373         (WebCore::HTMLMediaElement::finishParsingChildren):
22374         * html/HTMLObjectElement.cpp:
22375         (WebCore::HTMLObjectElement::updateWidget):
22376         (WebCore::HTMLObjectElement::finishParsingChildren):
22377         (WebCore::HTMLObjectElement::childrenChanged):
22378         * html/HTMLSelectElement.cpp:
22379         (WebCore::HTMLSelectElement::recalcStyle):
22380         (WebCore::HTMLSelectElement::restoreState):
22381         (WebCore::HTMLSelectElement::setRecalcListItems):
22382         (WebCore::HTMLSelectElement::reset):
22383         (WebCore::HTMLSelectElement::typeAheadFind):
22384         * html/HTMLTableElement.cpp:
22385         (WebCore::setTableCellsChanged):
22386         (WebCore::HTMLTableElement::parseMappedAttribute):
22387         * html/HTMLTextAreaElement.cpp:
22388         (WebCore::HTMLTextAreaElement::setValue):
22389         * loader/FrameLoader.cpp:
22390         (WebCore::FrameLoader::stopLoading):
22391         (WebCore::FrameLoader::executeScript):
22392         (WebCore::FrameLoader::gotoAnchor):
22393         * page/DOMWindow.cpp:
22394         (WebCore::DOMWindow::alert):
22395         (WebCore::DOMWindow::confirm):
22396         (WebCore::DOMWindow::prompt):
22397         * page/EventHandler.cpp:
22398         (WebCore::EventHandler::hoverTimerFired):
22399         * page/FrameView.cpp:
22400         (WebCore::FrameView::layout):
22401         (WebCore::FrameView::needsLayout):
22402         * page/animation/AnimationBase.cpp:
22403         (WebCore::AnimationBase::setNeedsStyleRecalc):
22404         (WebCore::AnimationBase::updateStateMachine):
22405         * page/animation/AnimationBase.h:
22406         * page/animation/AnimationController.cpp:
22407         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
22408         (WebCore::AnimationControllerPrivate::clear):
22409         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
22410         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
22411         (WebCore::AnimationControllerPrivate::startupdateStyleIfNeededDispatcher):
22412         (WebCore::AnimationControllerPrivate::addEventToDispatch):
22413         (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch):
22414         (WebCore::AnimationControllerPrivate::animationTimerFired):
22415         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
22416         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
22417         (WebCore::AnimationControllerPrivate::addToStartTimeResponseWaitList):
22418         (WebCore::AnimationController::cancelAnimations):
22419         * page/animation/AnimationControllerPrivate.h:
22420         * page/animation/ImplicitAnimation.cpp:
22421         (WebCore::ImplicitAnimation::sendTransitionEvent):
22422         * page/animation/KeyframeAnimation.cpp:
22423         (WebCore::KeyframeAnimation::endAnimation):
22424         (WebCore::KeyframeAnimation::sendAnimationEvent):
22425         * rendering/RenderObject.cpp:
22426         (WebCore::RenderObject::updateDragState):
22427         * rendering/RenderView.cpp:
22428         (WebCore::RenderView::selectionBounds):
22429         * svg/SVGAElement.cpp:
22430         (WebCore::SVGAElement::svgAttributeChanged):
22431         * svg/SVGAnimationElement.cpp:
22432         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
22433         * svg/SVGCursorElement.cpp:
22434         (WebCore::SVGCursorElement::svgAttributeChanged):
22435         * svg/SVGElementInstance.cpp:
22436         (WebCore::SVGElementInstance::setNeedsUpdate):
22437         * svg/SVGForeignObjectElement.cpp:
22438         (WebCore::addCSSPropertyAndNotifyAttributeMap):
22439         * svg/SVGStopElement.cpp:
22440         (WebCore::SVGStopElement::parseMappedAttribute):
22441         * svg/SVGStyledElement.cpp:
22442         (WebCore::SVGStyledElement::parseMappedAttribute):
22443         * svg/SVGUseElement.cpp:
22444         (WebCore::SVGUseElement::svgAttributeChanged):
22445         (WebCore::SVGUseElement::childrenChanged):
22446         (WebCore::SVGUseElement::recalcStyle):
22447         * svg/animation/SMILTimeContainer.cpp:
22448         (WebCore::SMILTimeContainer::updateAnimations):
22449         * wml/WMLAElement.cpp:
22450         (WebCore::WMLAElement::parseMappedAttribute):
22451         * wml/WMLInputElement.cpp:
22452         (WebCore::WMLInputElement::setValue):
22453         (WebCore::WMLInputElement::parseMappedAttribute):
22454         * wml/WMLNoopElement.cpp:
22455         (WebCore::WMLNoopElement::insertedIntoDocument):
22456
22457 2009-04-09  Brett Wilson  <brettw@chromium.org>
22458
22459         Reviewed by Darin Fisher.
22460
22461         When there is a shadow set but it specifies "no shadow", clear the
22462         shadow shader. This will prevent Chromium from thinking there's a
22463         shadow and using the Skia codepath rather than Windows.
22464
22465         * platform/graphics/skia/GraphicsContextSkia.cpp:
22466         (WebCore::GraphicsContext::setPlatformShadow):
22467
22468 2009-04-09  Eric Seidel  <eric@webkit.org>
22469
22470         Reviewed by Simon Fraser.
22471
22472         Crash when accessing svg.viewport on a detached SVGSVGElement
22473         https://bugs.webkit.org/show_bug.cgi?id=25105
22474
22475         * svg/SVGSVGElement.cpp:
22476         (WebCore::SVGSVGElement::isOutermostSVG): return "true" that we are the "outermost" SVG element if we have no parent.  (The spec is unclear as to what behavior we should have in this case, and I doubt anyone cares for now).
22477
22478 2009-04-09  Jian Li  <jianli@chromium.org>
22479
22480         Reviewed by Dimitri Glazkov.
22481
22482         https://bugs.webkit.org/show_bug.cgi?id=25084
22483         Upstream changes to V8 bindings for XHR so that it can work under either DOMWindow or WorkerContext.
22484
22485         * bindings/v8/WorkerContextExecutionProxy.cpp:
22486         (WebCore::WorkerContextExecutionProxy::dispose):
22487         (WebCore::WorkerContextExecutionProxy::retrieve):
22488         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
22489         (WebCore::WorkerContextExecutionProxy::findOrCreateEventListenerHelper):
22490         (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener):
22491         (WebCore::WorkerContextExecutionProxy::findOrCreateObjectEventListener):
22492         * bindings/v8/WorkerContextExecutionProxy.h:
22493         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
22494         (WebCore::CALLBACK_FUNC_DECL):
22495         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
22496         (WebCore::getEventListener):
22497         (WebCore::ACCESSOR_SETTER):
22498         (WebCore::CALLBACK_FUNC_DECL):
22499
22500 2009-04-09  Darin Adler  <darin@apple.com>
22501
22502         Reviewed by Anders Carlsson and Sam Weinig.
22503
22504         Part of <rdar://problem/5438063> Saving history containing 100,000 entries causes pauses of 2s while browsing
22505
22506         Longer term solution is to change the design so Safari doesn't read and write all of history.
22507         This patch is step one: Do the serializing, which is done on the main thread, much faster.
22508
22509         * WebCore.base.exp: Added new entry points.
22510         * WebCore.xcodeproj/project.pbxproj: Added new source files.
22511
22512         * history/cf: Added.
22513
22514         * history/cf/HistoryPropertyList.cpp: Added.
22515         * history/cf/HistoryPropertyList.h: Added. Code to write history files. In the future we'll also
22516         have code for reading here too.
22517
22518         * platform/cf/BinaryPropertyList.cpp: Added.
22519         * platform/cf/BinaryPropertyList.h: Added. Code to write binary property list files.
22520
22521 2009-04-09  Simon Fraser  <simon.fraser@apple.com>
22522
22523         Reviewed by Antti Koivisto
22524
22525         https://bugs.webkit.org/show_bug.cgi?id=25122
22526
22527         If deferred repainting is active, we need to ensure that there are no repaints
22528         pending at the end of layoutIfNeededRecursive, which is called just before
22529         painting via -viewWillDraw.
22530
22531         * page/FrameView.cpp:
22532         (WebCore::FrameView::layoutIfNeededRecursive):
22533
22534 2009-04-09  John Grabowski  <jrg@chromium.org>
22535
22536         Reviewed by Darin Fisher.
22537
22538         https://bugs.webkit.org/show_bug.cgi?id=25117
22539         Fix Mac Chromium form controls.
22540
22541         * rendering/RenderThemeChromiumMac.mm:
22542         When rendering native controls in Mac Chromium, use a clean NSGraphicsContext.
22543         Properly save and restore native graphics context.
22544         (WebCore::RenderThemeChromiumMac::paintCheckbox):
22545         (WebCore::RenderThemeChromiumMac::paintRadio):
22546         (WebCore::RenderThemeChromiumMac::paintMenuList):
22547         (WebCore::RenderThemeChromiumMac::paintSearchFieldCancelButton):
22548         (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsDecoration):
22549         (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsButton):
22550
22551 2009-04-09  Drew Wilson  <atwilson@google.com>
22552
22553         Reviewed by Alexey Proskuryakov.
22554
22555         https://bugs.webkit.org/show_bug.cgi?id=25030
22556         Refactor MessagePort code to enable Chrome to use a MessagePortProxy object
22557         instead of a real MessagePort for the entangledPort, since it could
22558         theoretically live in a separate process.
22559
22560         The goal of this refactoring is to remove all assumptions that the object
22561         representing the entangled port is actually of type MessagePort. All
22562         operations that were previously directly modifying private MessagePort member
22563         variables in the entangled port (i.e. entangle(), postMessage()) have been changed
22564         to invoke functions in the  MessagePortProxy interface instead which will allow
22565         the Chrome bindings to proxy these calls to another process.
22566
22567         No new layout tests, as this is just a refactoring with no bug fixes
22568         or new functionality.
22569
22570         * GNUmakefile.am:
22571         * WebCore.vcproj/WebCore.vcproj:
22572         * WebCore.xcodeproj/project.pbxproj:
22573         * bindings/js/JSMessagePortCustom.cpp:
22574         (WebCore::JSMessagePort::mark):
22575         * dom/MessagePort.cpp:
22576         (WebCore::MessagePort::clone):
22577         (WebCore::MessagePort::postMessage):
22578         (WebCore::MessagePort::deliverMessage):
22579         (WebCore::MessagePort::startConversation):
22580         (WebCore::MessagePort::close):
22581         (WebCore::MessagePort::entangle):
22582         (WebCore::MessagePort::unentangle):
22583         * dom/MessagePort.h:
22584         (WebCore::MessagePort::entangledPort):
22585         * dom/MessagePortProxy.h: Added.
22586         (WebCore::MessagePortProxy::~MessagePortProxy):
22587
22588 2009-04-08  Sam Weinig  <sam@webkit.org>
22589
22590         Reviewed by Geoffrey "Big Boy" Garen.
22591
22592         Fix for <rdar://problem/5745677> Possible to stop load during an unload event
22593         Also fixes https://bugs.webkit.org/show_bug.cgi?id=20605
22594
22595         Tests: fast/events/stop-load-in-unload-handler-using-document-write.html
22596                fast/events/stop-load-in-unload-handler-using-window-stop.html
22597
22598         Don't allow calling methods that would stop the new load inside the unload
22599         event.
22600
22601         * loader/FrameLoader.cpp:
22602         (WebCore::FrameLoader::FrameLoader):
22603         (WebCore::FrameLoader::stopLoading):
22604         (WebCore::FrameLoader::stopAllLoaders):
22605         * loader/FrameLoader.h:
22606
22607 2009-04-09  David Kilzer  <ddkilzer@apple.com>
22608
22609         Reinstating <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings
22610
22611         Rolled r42345 back in.  The build failure was caused by an
22612         internal script which had not been updated the same way that
22613         build-webkit was updated.
22614
22615         * Configurations/WebCore.xcconfig:
22616         * DerivedSources.make:
22617         * bindings/objc/DOM.mm:
22618         (WebCore::createElementClassMap):
22619         (+[DOMNode _wrapNode:WebCore::]):
22620         * bindings/objc/DOMCSS.mm:
22621         (+[DOMCSSValue _wrapCSSValue:WebCore::]):
22622         * bindings/objc/DOMEvents.mm:
22623         (+[DOMEvent _wrapEvent:WebCore::]):
22624         * bindings/objc/DOMInternal.h:
22625         * bindings/objc/ExceptionHandlers.mm:
22626         (WebCore::raiseDOMException):
22627         * html/HTMLEmbedElement.idl:
22628         * html/HTMLFrameElement.idl:
22629         * html/HTMLIFrameElement.idl:
22630         * html/HTMLObjectElement.idl:
22631
22632 2009-04-09  Simon Fraser  <simon.fraser@apple.com>
22633
22634         Reviewed by Darin Adler
22635
22636         https://bugs.webkit.org/show_bug.cgi?id=25109
22637
22638         Eliminate CompositeAnimationPrivate, which was a needless level
22639         of abstraction. Remove the methods like addToStyleAvailableWaitList()
22640         that simply turn around and call the animation controller.
22641         
22642         Rename animationControllerPriv() to animationController().
22643         Rename willNeedService() to timeToNextService().
22644
22645         * page/animation/AnimationBase.cpp:
22646         (WebCore::AnimationBase::~AnimationBase):
22647         (WebCore::AnimationBase::updateStateMachine):
22648         (WebCore::AnimationBase::timeToNextService):
22649         (WebCore::AnimationBase::beginAnimationUpdateTime):
22650         * page/animation/AnimationBase.h:
22651         * page/animation/AnimationController.cpp:
22652         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
22653         * page/animation/CompositeAnimation.cpp:
22654         (WebCore::CompositeAnimation::~CompositeAnimation):
22655         (WebCore::CompositeAnimation::clearRenderer):
22656         (WebCore::CompositeAnimation::updateTransitions):
22657         (WebCore::CompositeAnimation::updateKeyframeAnimations):
22658         (WebCore::CompositeAnimation::animate):
22659         (WebCore::CompositeAnimation::getAnimatedStyle):
22660         (WebCore::CompositeAnimation::setAnimating):
22661         (WebCore::CompositeAnimation::timeToNextService):
22662         (WebCore::CompositeAnimation::getAnimationForProperty):
22663         (WebCore::CompositeAnimation::cleanupFinishedAnimations):
22664         (WebCore::CompositeAnimation::suspendAnimations):
22665         (WebCore::CompositeAnimation::resumeAnimations):
22666         (WebCore::CompositeAnimation::overrideImplicitAnimations):
22667         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
22668         (WebCore::CompositeAnimation::isAnimatingProperty):
22669         (WebCore::CompositeAnimation::pauseAnimationAtTime):
22670         (WebCore::CompositeAnimation::pauseTransitionAtTime):
22671         (WebCore::CompositeAnimation::numberOfActiveAnimations):
22672         * page/animation/CompositeAnimation.h:
22673         (WebCore::CompositeAnimation::animationController):
22674         (WebCore::CompositeAnimation::isSuspended):
22675         (WebCore::CompositeAnimation::hasAnimations):
22676         (WebCore::CompositeAnimation::CompositeAnimation):
22677         * page/animation/ImplicitAnimation.cpp:
22678         (WebCore::ImplicitAnimation::sendTransitionEvent):
22679         (WebCore::ImplicitAnimation::timeToNextService):
22680         * page/animation/ImplicitAnimation.h:
22681         * page/animation/KeyframeAnimation.cpp:
22682         (WebCore::KeyframeAnimation::sendAnimationEvent):
22683         (WebCore::KeyframeAnimation::timeToNextService):
22684         * page/animation/KeyframeAnimation.h:
22685
22686 2009-04-09  Alexey Proskuryakov  <ap@webkit.org>
22687
22688         Reverting <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings.
22689         It broke Mac build, and I don't know how to fix it.
22690
22691         * Configurations/WebCore.xcconfig:
22692         * DerivedSources.make:
22693         * bindings/objc/DOM.mm:
22694         (WebCore::createElementClassMap):
22695         (+[DOMNode _wrapNode:WebCore::]):
22696         * bindings/objc/DOMCSS.mm:
22697         (+[DOMCSSValue _wrapCSSValue:WebCore::]):
22698         * bindings/objc/DOMEvents.mm:
22699         (+[DOMEvent _wrapEvent:WebCore::]):
22700         * bindings/objc/DOMInternal.h:
22701         * bindings/objc/ExceptionHandlers.mm:
22702         (WebCore::raiseDOMException):
22703         * html/HTMLEmbedElement.idl:
22704         * html/HTMLFrameElement.idl:
22705         * html/HTMLIFrameElement.idl:
22706         * html/HTMLObjectElement.idl:
22707
22708 2009-04-09  Xan Lopez  <xlopez@igalia.com>
22709
22710         Unreviewed build fix.
22711
22712         RenderView::docWidth() was made private by r42334. That commit
22713         changes its usage for overflowWidth(), so do that here too.
22714
22715         * page/PrintContext.cpp:
22716         (WebCore::PrintContext::computePageRects):
22717
22718 2009-04-09  Xan Lopez  <xlopez@igalia.com>
22719
22720         Reviewed by Holger Freyther.
22721
22722         https://bugs.webkit.org/show_bug.cgi?id=21546
22723         [GTK] ATK accessibility enhancements
22724
22725         Based on a patch by Alp Toker.
22726
22727         Implement AtkObject::ref_state_set. Still quite a few states not
22728         implemented.
22729
22730         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
22731
22732 2009-04-09  Xan Lopez  <xlopez@igalia.com>
22733
22734         Reviewed by Holger Freyther.
22735
22736         https://bugs.webkit.org/show_bug.cgi?id=21546
22737         [GTK] ATK accessibility enhancements
22738
22739         Based on a patch by Alp Toker.
22740
22741         Move fallback object creation to its own function, as it will be
22742         used in several places.
22743
22744         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
22745         (fallbackObject):
22746
22747 2009-04-09  Xan Lopez  <xlopez@igalia.com>
22748
22749         Reviewed by Holger Freyther.
22750
22751         https://bugs.webkit.org/show_bug.cgi?id=21546
22752         [GTK] ATK accessibility enhancements
22753
22754         Based on a patch by Alp Toker.
22755
22756         Move AccessibilityObject methods to their file.
22757
22758         * page/gtk/AccessibilityObjectAtk.cpp:
22759         (WebCore::AccessibilityObject::wrapper):
22760         (WebCore::AccessibilityObject::setWrapper):
22761         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
22762
22763 2009-04-09  Xan Lopez  <xlopez@igalia.com>
22764
22765         Reviewed by Holger Freyther.
22766
22767         https://bugs.webkit.org/show_bug.cgi?id=21546
22768         [GTK] ATK accessibility enhancements
22769
22770         Rework accessibility type generation code, based on Mozilla a11y
22771         implementation.
22772
22773         Have one base a11y type, and generate derived types that implement
22774         only the necessary interfaces at runtime, based on the specific
22775         object we are wrapping. This allows to save a lot of code while
22776         covering all possible cases.
22777
22778         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
22779
22780 2009-04-09  Eric Seidel  <eric@webkit.org>
22781
22782         Reviewed by Oliver Hunt.
22783
22784         Fix document.implementation.createDocument(null, "a:b") not to crash!
22785         https://bugs.webkit.org/show_bug.cgi?id=25096
22786
22787         Test: fast/dom/DOMImplementation/createDocument-namespace-err.html
22788
22789         * dom/ContainerNode.cpp:
22790         (WebCore::ContainerNode::addChild): add ASSERT() to give a better crash next time
22791         * dom/DOMImplementation.cpp:
22792         (WebCore::DOMImplementation::createDocument): check the exception code before using the result
22793
22794 2009-04-08  Adam Roben  <aroben@apple.com>
22795
22796         Make <select>s in application chrome documents match the Vista system
22797         dialog look
22798
22799         Reviewed by Dave Hyatt.
22800
22801         * rendering/RenderThemeWin.cpp:
22802         (WebCore::documentIsInApplicationChromeMode): Added this simple helper
22803         function.
22804         (WebCore::RenderThemeWin::getThemeData): In application chrome mode,
22805         the drop down button never uses any look but the "normal" look.
22806         (WebCore::RenderThemeWin::paintMenuList): In application chrome mode,
22807         use the "readonly" style to match system dialogs.
22808
22809 2009-04-08  Adam Roben  <aroben@apple.com>
22810
22811         Fix <rdar://6592515> Crash closing tab with Top Sites or Cover Flow
22812         showing after clicking "Go Back" in phishing alert
22813
22814         RenderButton's m_timer is not stopped when its Document enters the
22815         page cache. When the WebView was torn down, the timer would fire after
22816         the Frame's Page had been destroyed, leading to a crash. This patch
22817         just makes the timer do nothing when it fires. Making the timer not
22818         fire when in the page cache is covered by bug 25110.
22819
22820         Reviewed by Dave Hyatt.
22821
22822         No test possible.
22823
22824         * rendering/RenderButton.cpp:
22825         (WebCore::RenderButton::timerFired): Do nothing when we're in the page
22826         cache.
22827
22828 2009-04-09  David Hyatt  <hyatt@apple.com>
22829
22830         Reviewed by Adam Roben
22831
22832         Fix bugs where we would mistakenly turn off blitting for iframes if an external paint
22833         caused the checks to be triggered too early in the loading process of the frame.
22834
22835         * rendering/RenderBoxModelObject.cpp:
22836         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
22837
22838 2009-04-08  Simon Fraser  <simon.fraser@apple.com>
22839
22840         Reviewed by Cameron Zwarich
22841
22842         https://bugs.webkit.org/show_bug.cgi?id=25106
22843         
22844         Fix signature of virtual function on AnimationBase so that it matches
22845         those in the derived classes, by removing unused parameter.
22846         
22847         * page/animation/AnimationBase.h:
22848         (WebCore::AnimationBase::endAnimation):
22849
22850 2009-04-08  David Kilzer  <ddkilzer@apple.com>
22851
22852         <rdar://problem/6718589> Option to turn off SVG DOM Objective-C bindings
22853
22854         Reviewed by Darin Adler and Maciej Stachowiak.
22855
22856         Introduce the ENABLE_SVG_DOM_OBJC_BINDINGS feature define so
22857         that SVG DOM Objective-C bindings may be optionally disabled.
22858
22859         * Configurations/WebCore.xcconfig: Added
22860         ENABLE_SVG_DOM_OBJC_BINDINGS variable and use it in
22861         FEATURE_DEFINES and EXCLUDED_SOURCE_FILE_NAMES.  When SVG DOM
22862         Objective-C bindings are disabled, two generated header files no
22863         longer exist and none of the generated DOMSVG*.mm files should
22864         be compiled.
22865         * DerivedSources.make: All of the WebCore.SVG*.exp files contain
22866         SVG DOM Objective-C bindings classes, so exclude them unless
22867         ENABLE_SVG_DOM_OBJC_BINDINGS is set.
22868         * bindings/objc/DOM.mm: Switched from using ENABLE(SVG) to using
22869         ENABLE(SVG_DOM_OBJC_BINDINGS).
22870         (WebCore::createElementClassMap):
22871         (+[DOMNode _wrapNode:WebCore::]):
22872         * bindings/objc/DOMCSS.mm: Ditto.
22873         (+[DOMCSSValue _wrapCSSValue:WebCore::]):
22874         * bindings/objc/DOMEvents.mm: Ditto.
22875         (+[DOMEvent _wrapEvent:WebCore::]):
22876         * bindings/objc/DOMInternal.h: Ditto.
22877         * bindings/objc/ExceptionHandlers.mm: Added use of
22878         ENABLE(SVG_DOM_OBJC_BINDINGS).
22879         (WebCore::raiseDOMException):
22880         * html/HTMLEmbedElement.idl: Excluded -getSVGDocument method
22881         in generated Objective-C DOM classes if SVG DOM Objective-C
22882         bindings are disabled.
22883         * html/HTMLFrameElement.idl: Ditto.
22884         * html/HTMLIFrameElement.idl: Ditto.
22885         * html/HTMLObjectElement.idl: Ditto.
22886
22887 2009-04-08  Dan Bernstein  <mitz@apple.com>
22888
22889         Reviewed by Sam Weinig.
22890
22891         - limit the workaround for <rdar://problem/5781372> to Mac OS X versions
22892           that need it
22893
22894         * platform/mac/WebFontCache.mm:
22895         (fixUpWeight): Changed this function to be a no-op post-Leopard.
22896
22897 2009-04-08  Dan Bernstein  <mitz@apple.com>
22898
22899         Reviewed by Dave Hyatt.
22900
22901         - fix <rdar://problem/6771547> Appending to a RenderText causes all its
22902           lines to be dirtied
22903
22904         Test: fast/repaint/text-append-dirty-lines.html
22905
22906         * rendering/RenderText.cpp:
22907         (WebCore::RenderText::setTextWithOffset): If no text boxes intersected
22908         with or came after the new text, dirty the last root box, since the new
22909         text may begin there. Having at least one dirty line prevents the
22910         incorrect dirtying of all lines later during layoutInlineChildren().
22911
22912 2009-04-08  Darin Fisher  <darin@chromium.org>
22913
22914         Reviewed by Eric Seidel.
22915
22916         https://bugs.webkit.org/show_bug.cgi?id=25100
22917
22918         Fixes a Chromium-specific crash in WebCore::ImageBuffer::context that
22919         occurs when rendering semi-transparent RTL text.
22920
22921         Test: fast/text/complex-text-opacity.html
22922
22923         * platform/graphics/chromium/FontChromiumWin.cpp: Handle RTL when computing text bounds.
22924         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds):
22925
22926 2009-04-08  David Hyatt  <hyatt@apple.com>
22927
22928         Reviewed by Beth Dakin
22929
22930         Fix a porting error in my previous patch.  A != was supposed to be an ==.
22931
22932         * platform/ScrollView.cpp:
22933         (WebCore::ScrollView::updateScrollbars):
22934
22935 2009-04-08  David Hyatt  <hyatt@apple.com>
22936
22937         Reviewed by Adam Roben and Darin Adler
22938
22939         Fix for https://bugs.webkit.org/show_bug.cgi?id=12440, repaints inconsistent for
22940         fixed positioned elements.
22941
22942         Rewrite the updateScrollers method to be more correct in its results.
22943
22944         Test: fast/block/positioning/fixed-positioning-scrollbar-bug.html
22945
22946         * dom/Document.cpp:
22947         (WebCore::Document::recalcStyle):
22948         (WebCore::Document::implicitClose):
22949         * page/FrameView.cpp:
22950         (WebCore::FrameView::createScrollbar):
22951         (WebCore::FrameView::layout):
22952         (WebCore::FrameView::adjustPageHeight):
22953         * page/FrameView.h:
22954         * page/win/FrameWin.cpp:
22955         (WebCore::computePageRectsForFrame):
22956         * platform/ScrollView.cpp:
22957         (WebCore::ScrollView::ScrollView):
22958         (WebCore::ScrollView::updateScrollbars):
22959         * platform/ScrollView.h:
22960         * rendering/RenderView.cpp:
22961         (WebCore::RenderView::layout):
22962         (WebCore::RenderView::docHeight):
22963         (WebCore::RenderView::docWidth):
22964         * rendering/RenderView.h:
22965
22966 2009-04-08  Sam Weinig  <sam@webkit.org>
22967
22968         Reviewed by Anders Carlsson.
22969
22970         Fix for <rdar://problem/6226200> Implement Microsoft's X-FRAME-OPTIONS anti-framing defense
22971
22972         Tests: http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html
22973                http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow.html
22974                http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html
22975                http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html
22976                http/tests/security/XFrameOptions/x-frame-options-deny.html
22977                http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow.html
22978                http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny.html
22979
22980         * dom/Document.cpp:
22981         (WebCore::Document::processHttpEquiv): Stop the current load and redirect to about:blank
22982         if an X-FRAME-OPTIONS <meta> tag http-equiq dictates we should.
22983         * loader/FrameLoader.cpp:
22984         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions): Add logic to parse
22985         the X-FRAME-OPTIONS parameter.
22986         * loader/FrameLoader.h:
22987         * loader/MainResourceLoader.cpp:
22988         (WebCore::MainResourceLoader::didReceiveResponse): Stop the current load if framed and
22989         a X-FRAME-OPTIONS header and its parameter dictate that we should.
22990
22991 2009-04-08  Adam Roben  <aroben@apple.com>
22992
22993         Fix http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html on Windows
22994
22995         Reviewed by Sam Weinig.
22996
22997         * platform/network/cf/ResourceHandleCFNet.cpp:
22998         (WebCore::ResourceHandle::loadResourceSynchronously): Mimic the
22999         ResourceHandleMac code by propagating the CFError's error code for
23000         kCFErrorDomainCFNetwork errors to the ResourceResponse.
23001
23002 2009-04-08  Anders Carlsson  <andersca@apple.com>
23003
23004         Try to fix the PPC build.
23005         
23006         * plugins/npfunctions.h:
23007
23008 2009-04-08  Darin Adler  <darin@apple.com>
23009
23010         Reviewed by Sam Weinig.
23011
23012         <rdar://problem/5908616> tokenizer resizer should handle edge cases consistently
23013
23014         * html/HTMLTokenizer.cpp:
23015         (WebCore::HTMLTokenizer::enlargeBuffer): Handle edge cases the same way as a failed fastMalloc.
23016         (WebCore::HTMLTokenizer::enlargeScriptBuffer): Ditto.
23017
23018 2009-04-08  David Hyatt  <hyatt@apple.com>
23019
23020         Reviewed by Darin Adler
23021
23022         Make sure that cloneNode works with SVG attributes that require synchronization.  This fixes
23023         issues with <use> element shadow tree cloning where the clones can end up not obtaining the
23024         correct attribute values.
23025
23026         A subsequent patch of mine will expose this problem and cause it to be covered by existing
23027         layout tests, so no test is required at this time for this problem.
23028
23029         * dom/Element.cpp:
23030         (WebCore::Element::cloneElementWithoutChildren):
23031
23032 2009-04-08  Dimitri Glazkov  <dglazkov@chromium.org>
23033
23034         Reviewed by Timothy Hatcher.
23035
23036         https://bugs.webkit.org/show_bug.cgi?id=25093
23037         REGRESSION: some scripts are showing in the Inspector with only "true"
23038         as the source.
23039
23040         * inspector/InspectorController.cpp:
23041         (WebCore::InspectorController::didParseSource): Fixed conversion issue.
23042         (WebCore::InspectorController::failedToParseSource): Ditto.
23043
23044 2009-04-08  Adam Barth  <abarth@webkit.org>
23045
23046         Reviewed by Alexey Proskuryakov.
23047
23048         https://bugs.webkit.org/show_bug.cgi?id=24904
23049
23050         Verify the MIME type of stylesheets (in standards mode) by looking
23051         at the Content-Type header directly.  This bypasses any content
23052         sniffing that might be confusing the issue.
23053
23054         Test: http/tests/mime/standard-mode-loads-stylesheet-without-content-type-header.html
23055
23056         * loader/CachedCSSStyleSheet.cpp:
23057         (WebCore::CachedCSSStyleSheet::canUseSheet):
23058
23059 2009-04-08  Eric Carlson  <eric.carlson@apple.com>
23060
23061         Reviewed by Simon Fraser.
23062
23063         https://bugs.webkit.org/show_bug.cgi?id=25041
23064         <rdar://problem/6697754>
23065         Bug 25041: HTMLMediaElement: OSX autoplay broken by r41907
23066         
23067         OSX media player should set readyState to HAVE_ENOUGH_DATA when the movie's load state
23068         reaches QTMovieLoadStatePlaythroughOK, not when the entire file has been downloaded,
23069         so autoplay can begin when it should.
23070
23071         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
23072         (WebCore::MediaPlayerPrivate::updateStates): Set readState to 
23073         HAVE_ENOUGH_DATA when QTMovie load state reaches QTMovieLoadStatePlaythroughOK.
23074         (WebCore::MediaPlayerPrivate::paint): Add braces missed in r42203.
23075
23076 2009-04-08  Alexey Proskuryakov  <ap@webkit.org>
23077
23078         Reviewed by David Kilzer. Based on a patch by Grace Kloba.
23079
23080         https://bugs.webkit.org/show_bug.cgi?id=24656
23081         cacheControlContainsNoCache() in ResourceResponseBase.h is wrong
23082
23083         * platform/network/ResourceResponseBase.cpp:
23084         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Removed misused code for
23085         parsing directive values, fixing parsing of directives that we care about.
23086
23087         * platform/network/ResourceResponseBase.h:
23088         (WebCore::ResourceResponseBase::cacheControlContainsNoCache): Fixed a copy/paste mistake,
23089         m_cacheControlContainsMustRevalidate was returned instead of m_cacheControlContainsNoCache.
23090
23091 2009-04-08  Adam Roben  <aroben@apple.com>
23092
23093         Make text fields match the system look on Vista
23094
23095         Reviewed by Dave Hyatt.
23096
23097         * rendering/RenderThemeWin.cpp:
23098         (WebCore::RenderThemeWin::getThemeData): Use the new-to-Vista
23099         EP_EDITBORDER_NOSCROLL part for text fields.
23100
23101 2009-04-07  Alexey Proskuryakov  <ap@webkit.org>
23102
23103         Reviewed by Maciej Stachowiak.
23104
23105         https://bugs.webkit.org/show_bug.cgi?id=24957
23106         REGRESSION: Google calendar widget no longer shows upcoming events
23107
23108         Test: http/tests/xmlhttprequest/authorization-header.html
23109
23110         * xml/XMLHttpRequest.cpp:
23111         (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData): Removed Authorization from
23112         the list of forbidden headers.
23113
23114 2009-04-07  miggilin  <mr.diggilin@gmail.com>
23115
23116         Reviewed by Kevin Ollivier.
23117
23118         Remove no longer needed debug warning and Windows-specific codepaths
23119         (as we now use the Safari/Win port's timer there)
23120
23121         https://bugs.webkit.org/show_bug.cgi?id=25070
23122
23123         * platform/wx/SharedTimerWx.cpp:
23124         (WebCore::setSharedTimerFireTime):
23125
23126
23127 2009-04-07  Adam Roben  <aroben@apple.com>
23128
23129         Fix many <video> regression tests on Windows
23130
23131         Reviewed by Dave Hyatt.
23132
23133         * platform/graphics/win/QTMovieWin.cpp:
23134         (QTMovieWin::getNaturalSize): Call GetMovieNaturalBoundsRect, which
23135         returns the movie's natural bounds (duh), rather than GetMovieBox,
23136         which returns the movie's current displayed size/position.
23137
23138 2009-04-07  Brady Eidson  <beidson@apple.com>
23139
23140         Reviewed by Darin Adler and Sam Weinig
23141
23142         <rdar://problem/5968249> "Private Browsing" doesn't affect HTML 5 LocalStorage
23143
23144         The expected behavior for persistent storage when private browsing mode is undefined by the spec.
23145         For now we're going with a "read-only when in private browsing" policy until we can get feedback
23146         and/or get the behavior specified in the spec.
23147
23148         Note that I purposefully made the change to restrict SessionStorage to read-only, also, with the
23149         understanding that the spec allows for SessionStorage to persist across relaunches, even though
23150         our implementation currently doesn't do this.
23151
23152         * dom/DOMCoreException.idl: Add some new ExceptionCodes defined in HTML5, one of which is needed
23153           for LocalStorage changes (QUOTA_EXCEEDED_ERR)
23154         * dom/ExceptionCode.cpp: 
23155         * dom/ExceptionCode.h:
23156
23157         * storage/StorageArea.cpp:
23158         (WebCore::StorageArea::internalSetItem): If private browsing is enabled, throw the QUOTA_EXCEEDED_ERR
23159           exception as the spec allows.
23160         (WebCore::StorageArea::internalRemoveItem): If private browsing is enabled, silently fail to remove
23161           the item.
23162         (WebCore::StorageArea::internalClear): If private browsing is enabled, silently fail to clear the area.
23163
23164 2009-04-07  Dean Jackson  <dino@apple.com>
23165
23166         Reviewed by Simon Fraser.
23167
23168         <rdar://problem/6148255>
23169
23170         Standalone media documents can not always handle everything
23171         using a <video> element. In these cases switch to an <embed>
23172         element that uses the QuickTime plugin, in the hope that it
23173         will have more luck. Typical media types that trigger this
23174         are streamed media and QTVR.
23175
23176         Equivalent Windows fix to come once reviewed. Note also that
23177         this area of code needs a cleanup:
23178         https://bugs.webkit.org/show_bug.cgi?id=25085
23179
23180         * html/HTMLMediaElement.cpp:
23181         (WebCore::HTMLMediaElement::mediaPlayerSawUnsupportedTracks):
23182         * html/HTMLMediaElement.h:
23183         * loader/MediaDocument.cpp:
23184         (WebCore::MediaDocument::mediaElementSawUnsupportedTracks):
23185         (WebCore::MediaDocument::replaceVideoWithEmbed):
23186         * loader/MediaDocument.h:
23187             - removes the <video> element and puts in an <embed>
23188         * platform/graphics/MediaPlayer.h:
23189         (WebCore::MediaPlayerClient::mediaPlayerSawUnsupportedTracks):
23190             - new internal method for flagging a problem
23191         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
23192         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
23193         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
23194         (WebCore::MediaPlayerPrivate::updateStates):
23195             - looks for the types of content we don't handle
23196         (WebCore::MediaPlayerPrivate::rateChanged):
23197         (WebCore::MediaPlayerPrivate::sizeChanged):
23198         (WebCore::MediaPlayerPrivate::timeChanged):
23199         (WebCore::MediaPlayerPrivate::didEnd):
23200         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
23201         (WebCore::MediaPlayerPrivate::sawUnsupportedTracks):
23202             - inform the MediaClient that we have a potential problem
23203
23204 2009-04-07  Dan Bernstein  <mitz@apple.com>
23205
23206         Reviewed by Darin Adler.
23207
23208         - fix <rdar://problem/6767428> Resurrect
23209           +[WebFontCache fontWithFamily:traits:size:] for clients that call it
23210           directly
23211
23212         WebFontCache is a class in the WebCore framework and is not WebKit API,
23213         but apparently (perhaps mistakenly) some clients call this private
23214         interface.
23215
23216         This change resurrects the interface and gives it reasonable behavior
23217         (however, note that WebCore will not call the old interface, so hacks that
23218         override it will have no effect on WebKit clients).
23219
23220         * platform/mac/WebFontCache.h:
23221         * platform/mac/WebFontCache.mm:
23222         (+[WebFontCache fontWithFamily:traits:size:]): Added. Call through to
23223         +fontWithFamily:traits:weight:size:.
23224
23225 2009-04-07  David Hyatt  <hyatt@apple.com>
23226
23227         Reviewed by Adam Roben
23228
23229         Fix ScrollView's algorithm that determines whether or not to show scrollbars.  There was a bug
23230         with the method mainly because RenderView will size itself to the viewport's size, making it
23231         impossible to really know the document's "true" size.
23232
23233         In order to solve this problem ScrollView now has a minimumContentsSize method.  This method
23234         returns the document size excluding the RenderView from the calculation.  This width/height
23235         is now cached on RenderView in m_docWidth/m_docHeight member variables.
23236
23237         * WebCore.base.exp:
23238         * page/FrameView.cpp:
23239         (WebCore::FrameView::adjustPageHeight):
23240         (WebCore::FrameView::minimumContentsSize):
23241         * page/FrameView.h:
23242         * platform/ScrollView.cpp:
23243         (WebCore::ScrollView::updateScrollbars):
23244         * platform/ScrollView.h:
23245         (WebCore::ScrollView::minimumContentsSize):
23246         * rendering/RenderView.cpp:
23247         (WebCore::RenderView::layout):
23248         (WebCore::RenderView::calcDocHeight):
23249         (WebCore::RenderView::calcDocWidth):
23250         * rendering/RenderView.h:
23251         (WebCore::RenderView::docWidth):
23252         (WebCore::RenderView::docHeight):
23253
23254 2009-04-07  Dimitri Glazkov  <dglazkov@chromium.org>
23255
23256         Build fix, not reviewed.
23257
23258         * WebCore.xcodeproj/project.pbxproj: Made ScriptObject.h private.
23259
23260 2009-04-07  Dimitri Glazkov  <dglazkov@chromium.org>
23261
23262         Reviewed by Timothy Hatcher.
23263
23264         https://bugs.webkit.org/show_bug.cgi?id=25063
23265         Refactor InspectorController to use ScriptObject/State.
23266
23267         * GNUmakefile.am: Added ScriptState.cpp.
23268         * WebCore.pro: Ditto.
23269         * WebCore.vcproj/WebCore.vcproj: Ditto.
23270         * WebCore.xcodeproj/project.pbxproj: Ditto.
23271         * WebCoreSources.bkl: Ditto.
23272         * bindings/js/JSInspectorControllerCustom.cpp:
23273         (WebCore::JSInspectorController::addSourceToFrame): Fixed argument index typo.
23274         * bindings/js/ScriptFunctionCall.cpp:
23275         (WebCore::ScriptFunctionCall::call): Added reportExceptions parameter.
23276         (WebCore::ScriptFunctionCall::construct): Ditto.
23277         * bindings/js/ScriptFunctionCall.h: Ditto.
23278         * bindings/js/ScriptObject.cpp:
23279         (WebCore::handleException): Added exception-reporting heloper.
23280         (WebCore::ScriptObject::set): Changed to use handleException.
23281         (WebCore::ScriptGlobalObject::set): Ditto,
23282         * bindings/js/ScriptObject.cpp: Added ScriptGlobalObject.
23283         (WebCore::ScriptGlobalObject::set): Added.
23284         (WebCore::ScriptGlobalObject::getObject): Added.
23285         * bindings/js/ScriptObject.h: Added ScriptGlobalObject decls.
23286         (WebCore::ScriptGlobalObject::ScriptGlobalObject): Added.
23287         * bindings/js/ScriptState.cpp: Added.
23288         * bindings/js/ScriptState.h: Added scriptStateFromPage decl.
23289         * inspector/ConsoleMessage.cpp:
23290         (WebCore::ConsoleMessage::addToConsole): Changed to not report exceptions
23291             to avoid re-entrancy.
23292         * inspector/InspectorController.cpp: Refactored to use ScriptState/Object.
23293         * inspector/InspectorController.h: Ditto.
23294
23295 2009-04-07  Adam Langley  <agl@google.com>
23296
23297         Reviewed by Darin Fisher.
23298
23299         https://bugs.webkit.org/show_bug.cgi?id=25083
23300
23301         Skia was previously calculating the leading value incorrectly, leading
23302         us to add fHeight to get the height of a line of text. Now that Skia
23303         is calculating fLeading correctly, we can remove fHeight.
23304
23305         This doesn't affect any layout tests.
23306
23307         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
23308         (WebCore::SimpleFontData::platformInit):
23309
23310 2009-04-07  Brian Weinstein  <bweinstein@gmail.com>
23311
23312         Reviewed by Darin Adler.
23313
23314         https://bugs.webkit.org/show_bug.cgi?id=24851
23315
23316         This fix removes the status code from the status message in a ResourceResponse, which allows a few more tests in http to pass.
23317
23318         * platform/network/cf/ResourceResponseCFNet.cpp:
23319         (WebCore::ResourceResponse::platformLazyInit):
23320
23321 2009-04-07  Adam Langley  <agl@google.com>
23322
23323         Reviewed by Darin Fisher.
23324
23325         https://bugs.webkit.org/show_bug.cgi?id=25081
23326
23327         Skia is changing from reporting the XRange to reporting the XMin and
23328         XMax.  Obviously these are equivalent, but other users of the metrics
23329         need the two numbers to be separate.
23330
23331         This doesn't affect any layout tests.
23332
23333         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
23334         (WebCore::SimpleFontData::platformInit):
23335
23336 2009-04-07  Adam Roben  <aroben@apple.com>
23337
23338         Make the look of <select>s match the system look on Vista
23339
23340         Reviewed by Dave Hyatt.
23341
23342         * rendering/RenderThemeWin.cpp: Added new constants.
23343         (WebCore::RenderThemeWin::getThemeData): On Vista, use the
23344         CP_DROPDOWNBUTTONRIGHT part for drop down buttons.
23345         (WebCore::RenderThemeWin::paintMenuList): On Vista, use the CP_BORDER
23346         part to draw the border of <select>s.
23347         (WebCore::RenderThemeWin::paintMenuListButton): On Vista, outset the
23348         drop down button to make its border coincide with the <select>'s
23349         border.
23350
23351 2009-04-07  Adam Roben  <aroben@apple.com>
23352
23353         Move isRunningOnVistaOrLater to a shared location
23354
23355         Rubber-stamped in advance by Dave Hyatt.
23356
23357         * WebCore.vcproj/WebCore.vcproj: Added SystemInfo.{cpp,h}, and let VS
23358         have its way with the rest of the file.
23359         * platform/win/ScrollbarThemeWin.cpp: Moved isRunningOnVistaOrLater
23360         from here...
23361         * platform/win/SystemInfo.cpp: Added.
23362         (WebCore::isRunningOnVistaOrLater): ...to here.
23363         * platform/win/SystemInfo.h: Added.
23364
23365 2009-04-07  Paul Godavari  <paul@chromium.org>
23366
23367         Reviewed by Darin Fisher.
23368
23369         https://bugs.webkit.org/show_bug.cgi?id=24692
23370         Enable PopupMenuChromium to handle HTML select popups using native
23371         cocoa controls on the Mac, all other platforms are unchanged.
23372
23373         We also split out the storage container for the popup menu items
23374         so that ChromeClientChromium can access them for forwarding to
23375         the embedding host (Chromium.app or test_shell).
23376
23377         * page/chromium/ChromeClientChromium.h:
23378         * platform/chromium/PopupMenuChromium.cpp:
23379         (WebCore::PopupListBox::items):
23380         (WebCore::PopupContainer::PopupContainer):
23381         (WebCore::PopupContainer::~PopupContainer):
23382         (WebCore::PopupContainer::showPopup):
23383         (WebCore::PopupContainer::showExternal):
23384         (WebCore::PopupContainer::menuItemHeight):
23385         (WebCore::popupData):
23386         (WebCore::PopupListBox::pointToRowIndex):
23387         (WebCore::PopupListBox::getRowBounds):
23388         (WebCore::PopupListBox::isSelectableItem):
23389         (WebCore::PopupListBox::updateFromElement):
23390         (WebCore::PopupListBox::layout):
23391         (WebCore::PopupListBox::clear):
23392         (WebCore::PopupMenu::show):
23393         * platform/chromium/PopupMenuChromium.h:
23394         (WebCore::PopupItem::):
23395         (WebCore::PopupItem::PopupItem):
23396
23397 2009-04-07  Geoffrey Garen  <ggaren@apple.com>
23398
23399         Reviewed by Oliver Hunt.
23400         
23401         Added some double-checking to event handler marking. Now, when the
23402         wrapper that's responsible for marking an event handler's JavaScript
23403         function gets collected, it clears the event handler's JavaScript function
23404         so we won't dereference it after it's collected.
23405         
23406         In theory, we would never dereference a JavaScript event handler after
23407         its node's wrapper was collected anyway, but it's nice to be safe.
23408
23409         * bindings/js/JSDOMApplicationCacheCustom.cpp:
23410         (WebCore::JSDOMApplicationCache::mark):
23411         * bindings/js/JSEventListener.cpp:
23412         (WebCore::JSEventListener::JSEventListener):
23413         (WebCore::JSEventListener::jsFunction):
23414         (WebCore::JSEventListener::invalidateJSFunction):
23415         (WebCore::JSEventListener::markJSFunction):
23416         * bindings/js/JSEventListener.h:
23417         * bindings/js/JSMessagePortCustom.cpp:
23418         (WebCore::JSMessagePort::mark):
23419         * bindings/js/JSNodeCustom.cpp:
23420         (WebCore::markEventListeners):
23421         * bindings/js/JSWorkerContextCustom.cpp:
23422         (WebCore::JSWorkerContext::mark):
23423         * bindings/js/JSWorkerCustom.cpp:
23424         (WebCore::JSWorker::mark):
23425         * bindings/js/JSXMLHttpRequestCustom.cpp:
23426         (WebCore::JSXMLHttpRequest::mark):
23427         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
23428         (WebCore::JSXMLHttpRequestUpload::mark):
23429         * bindings/scripts/CodeGeneratorJS.pm:
23430         * dom/EventListener.h:
23431         (WebCore::EventListener::invalidateJSFunction):
23432         (WebCore::EventListener::markJSFunction):
23433         (WebCore::markIfNotNull):
23434
23435 2009-04-07  David Levin  <levin@chromium.org>
23436
23437         Build fix.
23438
23439         r44280 undid the change in r42268 that made CookieJar.h private.
23440         This redoes the change.
23441
23442         * WebCore.xcodeproj/project.pbxproj:
23443
23444 2009-04-07  Jian Li  <jianli@chromium.org>
23445
23446         Reviewed by Darin Fisher.
23447
23448         Upstream changes to WorkerContextExecutionProxy for enabling V8 preemption.
23449         https://bugs.webkit.org/show_bug.cgi?id=25034
23450
23451         * bindings/v8/WorkerContextExecutionProxy.cpp:
23452         (WebCore::WorkerContextExecutionProxy::evaluate):
23453
23454 2009-04-07  Dan Bernstein  <mitz@apple.com>
23455
23456         Reviewed by Darin Adler.
23457
23458         - fix <rdar://problem/6764359> Thai word selection misbehaves for the
23459           last sentence in the document
23460
23461         Test: editing/selection/thai-word-at-document-end.html
23462
23463         * editing/visible_units.cpp:
23464             - Added a BoundarySearchContextAvailability enum used to indicate
23465             whether the caller to a boundary search function may be able to provide
23466             additional text in the search direction and call again.
23467             - Added a named type for the boundary search function signature. Changed
23468             the signature to take a context availability parameter and a boolean
23469             out parameter indicating whether more context is needed to perform
23470             the search.
23471         (WebCore::previousBoundary): If the beginning of the range was reached
23472             but the last search wanted more context, perform the search again, this
23473             time indicating that there is no earlier text.
23474         (WebCore::nextBoundary): Similarly, in the other direction.
23475         (WebCore::startWordBoundary): Check whether more context may be available
23476             and ask for more context if needed.
23477         (WebCore::endWordBoundary): Ditto.
23478         (WebCore::previousWordPositionBoundary): Ditto.
23479         (WebCore::nextWordPositionBoundary): Ditto.
23480         (WebCore::startSentenceBoundary):  Updated signature.
23481         (WebCore::endSentenceBoundary): Ditto.
23482         (WebCore::previousSentencePositionBoundary): Ditto.
23483         (WebCore::nextSentencePositionBoundary): Ditto.
23484
23485 2009-04-07  Geoffrey Garen  <ggaren@apple.com>
23486
23487         Rubber stamped by Sam Weinig.
23488         
23489         A little renaming:
23490         
23491         function => jsFunction
23492         listener => jsFunction
23493
23494         * bindings/js/JSEventListener.cpp:
23495         (WebCore::JSAbstractEventListener::handleEvent):
23496         (WebCore::JSEventListener::JSEventListener):
23497         (WebCore::JSEventListener::~JSEventListener):
23498         (WebCore::JSEventListener::jsFunction):
23499         (WebCore::JSEventListener::mark):
23500         (WebCore::JSProtectedEventListener::JSProtectedEventListener):
23501         (WebCore::JSProtectedEventListener::~JSProtectedEventListener):
23502         (WebCore::JSProtectedEventListener::jsFunction):
23503         * bindings/js/JSEventListener.h:
23504         (WebCore::JSProtectedEventListener::create):
23505         * bindings/js/JSLazyEventListener.cpp:
23506         (WebCore::JSLazyEventListener::jsFunction):
23507         (WebCore::JSLazyEventListener::parseCode):
23508         * dom/EventListener.h:
23509         (WebCore::EventListener::jsFunction):
23510
23511 2009-04-07  Brady Eidson  <beidson@apple.com>
23512
23513         Reviewed by Darin Adler
23514
23515         While working on <rdar://problem/5968249>, noticed some glaring problems with LocalStorage.
23516
23517         * page/DOMWindow.cpp:
23518         (WebCore::DOMWindow::localStorage): Return the cached m_localStorage object if it exists to 
23519           avoid creating multiple representations for the same underlying StorageArea.
23520         * page/DOMWindow.h:
23521         (WebCore::DOMWindow::optionalLocalStorage): Return m_localStorage, not m_sessionStorage.
23522
23523 2009-04-07  Darin Adler  <darin@apple.com>
23524
23525         Roll out incorrect build fix.
23526
23527         * WebCore.NPAPI.exp: Reverted.
23528
23529 2009-04-07  Darin Adler  <darin@apple.com>
23530
23531         Another build fix.
23532
23533         * WebCore.NPAPI.exp: Added new functions.
23534
23535 2009-04-07  Anders Carlsson  <andersca@apple.com>
23536
23537         Another build fix.
23538         
23539         * plugins/npfunctions.h:
23540
23541 2009-04-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
23542
23543         Unreviewed build fix. Fix non-Mac builds.
23544
23545         * bridge/npapi.h:
23546
23547 2009-04-07  Simon Fraser  <simon.fraser@apple.com>
23548
23549         Reviewed by Dan Bernstein
23550
23551         https://bugs.webkit.org/show_bug.cgi?id=25082
23552         
23553         Clean up repaint logic when RenderLayers become and stop being composited.
23554
23555         * rendering/RenderLayer.h:
23556         * rendering/RenderLayer.cpp:
23557         (WebCore::RenderLayer::rendererContentChanged):
23558         (WebCore::RenderLayer::repaintIncludingNonCompositingDescendants):
23559         New compositing-only method that repaints a layer and all its non-composited descendants.
23560         Takes a repaintContainer for performance; all the repaints necessarily share the same
23561         repaintContainer.
23562
23563         * rendering/RenderLayerCompositor.h:
23564         * rendering/RenderLayerCompositor.cpp:
23565         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
23566         Rather than use calculateCompositedBounds() to compute the repaint rect (which gave
23567         the wrong answer when the composited layer tree was in flux), use the new
23568         repaintOnCompositingChange() method.
23569         
23570         (WebCore::RenderLayerCompositor::repaintOnCompositingChange):
23571         Call repaintIncludingNonCompositingDescendants(), and if necessary make sure
23572         that the view/layer drawing synchronization happens.
23573         
23574         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
23575         Do a repaintOnCompositingChange() when a layer is going to be composited. This is
23576         a good place because we haven't started to change the compositing tree.
23577         
23578         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
23579         After we've finished updating all the descendant layers, we can do a repaint for
23580         layers that ceased compositing.
23581
23582 2009-04-07  Simon Fraser  <simon.fraser@apple.com>
23583
23584         Reviewed by Dave Hyatt
23585         
23586         https://bugs.webkit.org/show_bug.cgi?id=25069
23587         
23588         Clean up the accelerated compositing code that determines the format of
23589         the GraphicsLayer hierarchy, being more explicit about which parts have
23590         to happen before and after descendant layers have been updated. Also remove
23591         some unhelpful caching of state.
23592
23593         * dom/Document.cpp:
23594         (WebCore::Document::recalcStyle):
23595         Only call updateCompositingLayers() if we know we're not going to be
23596         doing a layout soon.
23597         
23598         * platform/graphics/mac/GraphicsLayerCA.mm:
23599         (WebCore::GraphicsLayerCA::setDrawsContent):
23600         Toggling drawsContent from false to true should do a setNeedsDisplay().
23601         
23602         * rendering/RenderLayer.cpp:
23603         (WebCore::RenderLayer::styleChanged):
23604         updateLayerCompositingState() no longer updates the layer geometry, so
23605         do that here if we're not going to rebuild layers anyway.
23606         Also, updateLayerCompositingState() no longer does a setContentsNeedDisplay,
23607         so do that if the style change indicates that a repaint is required.
23608         
23609         * rendering/RenderLayerBacking.h:
23610         * rendering/RenderLayerBacking.cpp:
23611         (WebCore::RenderLayerBacking::RenderLayerBacking):
23612         (WebCore::RenderLayerBacking::updateAfterLayout):
23613         The 'drawing optimizations' logic has been rolled into updateGraphicsLayerConfiguration()
23614         and updateGraphicsLayerGeometry().
23615         
23616         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
23617         Group that code that decides what GraphicsLayers are needed into this method,
23618         which deals with clipping layers and 'direct compositing': images that can be
23619         rendered via the compositor.
23620         
23621         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
23622         Call setDrawsContent() if updateGraphicsLayerConfiguration() didn't already
23623         figure it out for image layers.
23624         
23625         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
23626         Remove the m_simpleCompositingLayerStatusDirty cache indicator, since we just
23627         computed it every time anyway.
23628         
23629         * rendering/RenderLayerCompositor.h:
23630         * rendering/RenderLayerCompositor.cpp:
23631         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
23632         updateGraphicsLayers() was renamed to updateGraphicsLayerConfiguration(),
23633         which calls clippedByAncestor() etc. itself rather than having everything passed in.
23634         Repaints are taken care of by styleChanged() and setDrawsContent().
23635         
23636         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
23637         !layer->isComposited() && layer->transform() is a synonym for paintsWithTransform().
23638         
23639         (WebCore::RenderLayerCompositor::setCompositingParent):
23640         No need to call updateGraphicsLayerGeometry() here, because we're going to
23641         rebuild layers anyway.
23642         
23643         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
23644         Add comments, and test layerBacking instead of layer->isComposited().
23645
23646 2009-04-07  Anders Carlsson  <andersca@apple.com>
23647
23648         Fix build.
23649         
23650         * WebCore.base.exp:
23651
23652 2009-04-07  Anders Carlsson  <andersca@apple.com>
23653
23654         Reviewed by Sam Weinig.
23655
23656         <rdar://problem/6667001> NPAPI: need NPN_Get/SetValueForURL() and NPN_GetAuthenticationInfo()
23657         
23658         * WebCore.base.exp:
23659         Add symbols needed by WebKit.
23660         
23661         * WebCore.xcodeproj/project.pbxproj:
23662         Make CookieJar a private header.
23663         
23664         * bridge/npapi.h:
23665         Add function definitions.
23666         
23667         * plugins/npfunctions.h:
23668         Fix the NPN_SetValueForURLProcPtr signature.
23669
23670 2009-04-07  Adam Roben  <aroben@apple.com>
23671
23672         Fix <rdar://6520933> REGRESSION (3.2.1-ToT): Scroll bar disappears in
23673         WebView and Bookmarks view after switching theme or turning on High
23674         Contrast mode
23675
23676         Reviewed by Dave Hyatt.
23677
23678         * platform/win/ScrollbarThemeWin.cpp:
23679         (WebCore::ScrollbarThemeWin::themeChanged): Null out scrollbarTheme
23680         after closing it so that we'll re-open the theme next time we paint.
23681
23682 2009-04-07  Adam Roben  <aroben@apple.com>
23683
23684         Small cleanup/correctness fix in ScrollbarThemeWin
23685
23686         Reviewed by Dave Hyatt.
23687
23688         * platform/win/ScrollbarThemeWin.cpp: Removed the now-unused
23689         haveTheme boolean.
23690         (WebCore::checkAndInitScrollbarTheme): Check IsThemeActive() before
23691         calling OpenThemeData. This seems to be what MSDN recommends.
23692         (WebCore::ScrollbarThemeWin::themeChanged): Null-check scrollbarTheme
23693         before closing it, rather than indirectly null-checking it via
23694         checking haveTheme.
23695
23696 2009-04-07  Dan Bernstein  <mitz@apple.com>
23697
23698         Reviewed by John Sullivan.
23699
23700         - when -webkit-line-break: after-white-space is specified but the text
23701           does not auto-wrap, do not shrink the trailing space to fit in the
23702           available width
23703
23704         Test: fast/text/whitespace/nowrap-line-break-after-white-space.html
23705
23706         - when shrinking such trailing space, do not shrink below zero
23707
23708         Covered by existing tests
23709
23710         * rendering/bidi.cpp:
23711         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
23712         (WebCore::RenderBlock::layoutInlineChildren):
23713
23714 2009-04-07  Eric Seidel  <eric@webkit.org>
23715
23716         Reviewed by Darin Adler.
23717
23718         Move RangeBoundaryPoint off of Position, per Darin's suggestion
23719         https://bugs.webkit.org/show_bug.cgi?id=24966
23720
23721         Rename setToChild to setToBeforeChild (since that's what the method does)
23722
23723         * dom/Position.h:
23724         (WebCore::Position::offsetInContainerNode):
23725         * dom/Range.cpp:
23726         (WebCore::Range::insertNode):
23727         (WebCore::Range::selectNodeContents):
23728         (WebCore::boundaryNodeWillBeRemoved):
23729         * dom/Range.h:
23730         (WebCore::Range::startPosition):
23731         (WebCore::Range::endPosition):
23732         * dom/RangeBoundaryPoint.h:
23733         (WebCore::RangeBoundaryPoint::RangeBoundaryPoint):
23734         (WebCore::RangeBoundaryPoint::container):
23735         (WebCore::RangeBoundaryPoint::childBefore):
23736         (WebCore::RangeBoundaryPoint::position):
23737         (WebCore::RangeBoundaryPoint::offset):
23738         (WebCore::RangeBoundaryPoint::clear):
23739         (WebCore::RangeBoundaryPoint::set):
23740         (WebCore::RangeBoundaryPoint::setOffset):
23741         (WebCore::RangeBoundaryPoint::setToBeforeChild):
23742         (WebCore::RangeBoundaryPoint::setToStartOfNode):
23743         (WebCore::RangeBoundaryPoint::setToEndOfNode):
23744         (WebCore::RangeBoundaryPoint::childBeforeWillBeRemoved):
23745         (WebCore::RangeBoundaryPoint::invalidateOffset):
23746
23747 2009-04-07  Eric Seidel  <eric@webkit.org>
23748
23749         Reviewed by Darin Adler.
23750
23751         Add containerNode(), computeOffsetInContainerNode(),
23752         computeNodeBeforePosition() and computeNodeAfterPosition().
23753         https://bugs.webkit.org/show_bug.cgi?id=24763
23754
23755         These functions will replace uses of rangeCompliantPosition()
23756         in future patches.
23757
23758         No changes in behavior, thus no tests.
23759
23760         * dom/Position.cpp:
23761         (WebCore::Position::containerNode):
23762         (WebCore::Position::computeOffsetInContainerNode):
23763         (WebCore::Position::computeNodeBeforePosition):
23764         (WebCore::Position::computeNodeAfterPosition):
23765         (WebCore::Position::anchorType):
23766         * dom/Position.h:
23767         (WebCore::Position::):
23768
23769 2009-04-06  Sam Weinig  <sam@webkit.org>
23770
23771         Reviewed by Mark Rowe.
23772
23773         Bottleneck dispatching mutation events in a new dispatchMutationEvent
23774         function.
23775
23776         * dom/CharacterData.cpp:
23777         (WebCore::CharacterData::dispatchModifiedEvent):
23778         * dom/ContainerNode.cpp:
23779         (WebCore::dispatchChildInsertionEvents):
23780         (WebCore::dispatchChildRemovalEvents):
23781         * dom/Node.cpp:
23782         (WebCore::Node::dispatchSubtreeModifiedEvent):
23783         (WebCore::Node::dispatchMutationEvent):
23784         * dom/Node.h:
23785
23786 2009-04-06  Dimitri Glazkov  <dglazkov@chromium.org>
23787
23788         Reviewed by Darin Fisher.
23789
23790         https://bugs.webkit.org/show_bug.cgi?id=25059
23791         Remove references to dominantScript, getGenericFontForScript.
23792
23793         * platform/graphics/chromium/FontCacheChromiumWin.cpp: Removed references
23794             to getGenericFontForScript.
23795         (WebCore::FontCache::getLastResortFallbackFont): Removed calls to dominantScript.
23796         * platform/graphics/chromium/FontCacheLinux.cpp: Ditto.
23797         * rendering/RenderThemeChromiumLinux.cpp:
23798         (WebCore::defaultGUIFont): Removed Document* arg.
23799         (WebCore::RenderThemeChromiumLinux::systemFont): Ditto.
23800         * rendering/RenderThemeChromiumLinux.h: Ditto.
23801         * rendering/RenderThemeChromiumMac.h: Ditto.
23802         * rendering/RenderThemeChromiumMac.mm: Ditto.
23803         (WebCore::RenderThemeChromiumMac::systemFont): Ditto.
23804         * rendering/RenderThemeChromiumWin.cpp:
23805         (WebCore::defaultGUIFont): Ditto.
23806         (WebCore::RenderThemeChromiumWin::systemFont): Ditto.
23807         * rendering/RenderThemeChromiumWin.h: Ditto.
23808
23809 2009-04-06  Geoffrey Garen  <ggaren@apple.com>
23810
23811         Reviewed by Darin Adler.
23812         
23813         Fixed https://bugs.webkit.org/show_bug.cgi?id=21260
23814         Unbounded memory growth when churning elements with anonymous event handler functions
23815
23816         The problem was that a protected event listener's scope chain would end
23817         up with a reference to the Node protecting it, causing a cycle. The
23818         solution is to stop protecting event listeners and rely on marking instead.
23819
23820         This patch converts most Node event listeners to use marking instead of
23821         GC protection.
23822
23823         * bindings/js/JSDOMBinding.cpp:
23824         (WebCore::isObservableThroughDOM):
23825         (WebCore::markDOMNodesForDocument): Refactored the test for whether a Node
23826         needs marking, and added a case for marking the node in order to mark its
23827         event listeners.
23828
23829         * bindings/js/JSNodeCustom.cpp:
23830         (WebCore::markEventListeners):
23831         (WebCore::JSNode::addEventListener):
23832         (WebCore::JSNode::removeEventListener):
23833         (WebCore::JSNode::mark): Added code to mark a Node's event listeners when
23834         marking the Node. Changed code using protected event listeners to use event
23835         listeners.
23836
23837         * dom/Node.idl: Changed code using protected event listeners to use event
23838         listeners.
23839
23840 2009-04-06  Sam Weinig  <sam@webkit.org>
23841
23842         Reviewed by Darin Adler.
23843
23844         Remove unchecked bool return values for some dispatch event functions.
23845
23846         * dom/Node.cpp:
23847         (WebCore::Node::dispatchSubtreeModifiedEvent):
23848         (WebCore::Node::dispatchUIEvent):
23849         (WebCore::Node::dispatchWebKitAnimationEvent):
23850         (WebCore::Node::dispatchWebKitTransitionEvent):
23851         (WebCore::Node::dispatchProgressEvent):
23852         * dom/Node.h:
23853
23854 2009-04-06  Darin Fisher  <darin@chromium.org>
23855
23856         Reviewed by Dimitri Glazkov.
23857
23858         https://bugs.webkit.org/show_bug.cgi?id=25058
23859         Fix chromium build bustage caused by r42216
23860
23861         * bindings/scripts/CodeGeneratorJS.pm:
23862         * page/DOMWindow.idl:
23863
23864 2009-04-06  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
23865
23866         Rubber-stamped by Sam Weinig.
23867
23868         https://bugs.webkit.org/show_bug.cgi?id=20575
23869         No localization in WebKitGtk
23870
23871         * platform/gtk/FileChooserGtk.cpp: Remove usage of glib/gi18n.h,
23872         since there are not translatable strings.
23873         * platform/gtk/LocalizedStringsGtk.cpp: Use the glib i18n header
23874         that is specific for libraries.
23875
23876 2009-04-06  Mike Belshe  <mike@belshe.com>
23877
23878         Reviewed by Dimitri Glazkov.
23879
23880         https://bugs.webkit.org/show_bug.cgi?id=24978
23881         Use custom implementations of a few Node methods so that
23882         we don't over-aggressively create JS wrappers here.
23883
23884         * bindings/v8/custom/V8NodeCustom.cpp: Added custom implementations.
23885         * dom/Node.idl: Removed JSC-specifier, making impl custom for V8 as well.
23886
23887 2009-04-06  Dave Moore  <davemoore@google.com>
23888
23889         Reviewed by Dimitri Glazkov.
23890
23891         https://bugs.webkit.org/show_bug.cgi?id=25031
23892         Make the V8 element collections check for named properties *before*
23893         checking if there are any elements with the same name. Otherwise
23894         it is both incorrect and slow.
23895
23896         Test: fast/dom/HTMLSelectElement/length-not-overridden.html
23897
23898         Both of these interceptors were attempting to find an element in the
23899         collection that had a name or id of the property name before checking
23900         for a JS property with that name.
23901         * bindings/v8/V8Collection.h:
23902         (WebCore::collectionNamedPropertyGetter):
23903         (WebCore::nodeCollectionNamedPropertyGetter):
23904
23905 2009-04-06  Simon Fraser  <simon.fraser@apple.com>
23906
23907         Reviewed by Darin Adler
23908
23909         https://bugs.webkit.org/show_bug.cgi?id=25052
23910         
23911         Pull the call to updateGraphicsLayerGeometry() out of updateGraphicsLayers(),
23912         because we need to call it at the end of rebuildCompositingLayerTree() once
23913         we've determined which descendant layers are composited, otherwise
23914         calculateCompositedBounds() can give the wrong answer.
23915         
23916         Now that updateLayerCompositingState() doesn't end up calling updateGraphicsLayerGeometry(),
23917         call that explicitly from styleChanged(), if we know a layer update is not pending,
23918         and similarly from updateAfterLayout().
23919
23920         Test: compositing/overflow/overflow-positioning.html
23921
23922         * rendering/RenderLayer.cpp:
23923         (WebCore::RenderLayer::styleChanged):
23924         * rendering/RenderLayerBacking.cpp:
23925         (WebCore::RenderLayerBacking::updateAfterLayout):
23926         (WebCore::RenderLayerBacking::updateGraphicsLayers):
23927         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
23928         * rendering/RenderLayerCompositor.cpp:
23929         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
23930
23931 2009-04-06  Mike Belshe  <mike@belshe.com>
23932
23933         Reviewed by Alexey Proskuryakov.
23934
23935         Add accessors to AtomicString which take String/const char* arguments
23936         so that we don't accidentally thrash the AtomicString table.
23937
23938         https://bugs.webkit.org/show_bug.cgi?id=24979
23939
23940         * platform/text/AtomicString.h:
23941
23942 2009-04-03  Holger Hans Peter Freyther  <zecke@selfish.org>
23943
23944         Reviewed by Simon Hausmann.
23945
23946         Make col and row work in WebCore/manual-tests/cursor.html. The issue
23947         was spotted in the WebKit inspector.
23948
23949         * platform/gtk/CursorGtk.cpp:
23950         (WebCore::columnResizeCursor):
23951         (WebCore::rowResizeCursor):
23952
23953 2009-04-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
23954
23955         Reviewed by Simon Hausmann.
23956
23957         [Qt] Don't show and hide the platformPluginWidget, as it's our QWebView
23958
23959         * plugins/mac/PluginViewMac.cpp:
23960         (WebCore::PluginView::show):
23961         (WebCore::PluginView::hide):
23962         (WebCore::PluginView::setParentVisible):
23963
23964 2009-04-06  Simon Hausmann  <simon.hausmann@nokia.com>
23965
23966         Reviewed by Tor Arne Vestbø.
23967
23968         Add new files to the Qt build.
23969         Export helper function from the Qt JSC binding, needed in WebKit/qt.
23970
23971         * WebCore.pro: Add new files.
23972         * bridge/qt/qt_runtime.h: Declare convertQVariantToValue.
23973
23974 2009-04-06  Simon Hausmann  <simon.hausmann@nokia.com>
23975
23976         Reviewed by Tor Arne Vestbø.
23977
23978         Changed ScriptFunctionCall's last argument from a const char* as the function name to a String.
23979
23980         Internally the function name is stored as a WebCore::String and the Qt port wants to use this
23981         constructor programmatically where the function name is also a WebCore::String.
23982
23983         * bindings/js/ScriptFunctionCall.cpp:
23984         (WebCore::ScriptFunctionCall::ScriptFunctionCall):
23985         * bindings/js/ScriptFunctionCall.h:
23986
23987 2009-04-06  Mike Belshe <mike@belshe.com>
23988
23989         Reviewed by Eric Seidel.
23990
23991         HTMLCanvasElement crash when ImageBuffer creation fails.
23992         https://bugs.webkit.org/show_bug.cgi?id=23212
23993
23994         Check for NULL before using the ImageBuffer as we might
23995         be low on memory and creation may have failed.
23996
23997         Test case creation blocked by:
23998         https://bugs.webkit.org/show_bug.cgi?id=25055
23999
24000         * html/HTMLCanvasElement.cpp:
24001         (WebCore::HTMLCanvasElement::createImageBuffer):
24002
24003 2009-04-05  Geoffrey Garen  <ggaren@apple.com>
24004
24005         [Originally] Reviewed by Sam Weinig.
24006
24007         Rolled back in r42214 with crashes fixed.
24008
24009         [Removed irrelevant ExecState* parameter from event handler registration code.]
24010         
24011         [No change in behavior.]
24012
24013         * bindings/js/JSDOMApplicationCacheCustom.cpp:
24014         (WebCore::JSDOMApplicationCache::addEventListener):
24015         (WebCore::JSDOMApplicationCache::removeEventListener):
24016         * bindings/js/JSDOMGlobalObject.cpp:
24017         (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
24018         (WebCore::JSDOMGlobalObject::findJSEventListener):
24019         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
24020         * bindings/js/JSDOMGlobalObject.h:
24021         * bindings/js/JSDOMWindowCustom.cpp:
24022         (WebCore::JSDOMWindow::addEventListener):
24023         * bindings/js/JSMessagePortCustom.cpp:
24024         (WebCore::JSMessagePort::addEventListener):
24025         (WebCore::JSMessagePort::removeEventListener):
24026         * bindings/js/JSNodeCustom.cpp:
24027         (WebCore::JSNode::addEventListener):
24028         * bindings/js/JSSVGElementInstanceCustom.cpp:
24029         (WebCore::JSSVGElementInstance::addEventListener):
24030         * bindings/js/JSWorkerContextCustom.cpp:
24031         (WebCore::JSWorkerContext::addEventListener):
24032         (WebCore::JSWorkerContext::removeEventListener):
24033         * bindings/js/JSWorkerCustom.cpp:
24034         (WebCore::JSWorker::addEventListener):
24035         (WebCore::JSWorker::removeEventListener):
24036         * bindings/js/JSXMLHttpRequestCustom.cpp:
24037         (WebCore::JSXMLHttpRequest::addEventListener):
24038         (WebCore::JSXMLHttpRequest::removeEventListener):
24039         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
24040         (WebCore::JSXMLHttpRequestUpload::addEventListener):
24041         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
24042         * bindings/scripts/CodeGeneratorJS.pm:
24043
24044 2009-04-05  Erik L. Bunce  <elbunce@xendom.com>
24045
24046         Reviewed by Simon Hausmann.
24047
24048         https://bugs.webkit.org/show_bug.cgi?id=25050
24049
24050         Fix an assert failure when dropping an 'empty' text/uri-list on a QWebView. 
24051
24052         * platform/qt/DragDataQt.cpp:
24053         (WebCore::DragData::asURL):
24054
24055 2009-04-05  Simon Hausmann  <hausmann@webkit.org>
24056
24057         Fix the Qt build.
24058
24059         * bridge/qt/qt_runtime.h:
24060         (JSC::Bindings::QtRuntimeMethod::createPrototype): Take the JSGlobalObject
24061         as second argument.
24062
24063 2009-04-04  Kevin Ollivier  <kevino@theolliviers.com>
24064
24065         Build fixes for wxMac/Tiger.
24066
24067         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
24068         (wxFontProperties::wxFontProperties):
24069         * rendering/break_lines.cpp:
24070         (WebCore::nextBreakablePosition):
24071         * webcore-wx.bkl:
24072
24073 2009-04-04  Simon Fraser  <simon.fraser@apple.com>
24074
24075         Reviewed by Cameron Zwarich
24076
24077         https://bugs.webkit.org/show_bug.cgi?id=24648
24078         
24079         Ensure that mapPoint(const IntPoint&) calls the FloatPoint
24080         version to avoid infinite recursion.
24081         
24082         No test because mapPoint(const IntPoint&) isn't ever called
24083         on Mac, so I can't reproduce.
24084         
24085         * platform/graphics/transforms/TransformationMatrix.h:
24086         (WebCore::TransformationMatrix::mapPoint):
24087
24088 2009-04-04  Dan Bernstein  <mitz@apple.com>
24089
24090         Reviewed by Mark Rowe.
24091
24092         - fix <rdar://problem/6757862> REGRESSION: Cannot use the mouse to place
24093           the insertion point inside a Thai character
24094
24095         Test: fast/text/international/thai-offsetForPosition-inside-character.html
24096
24097         * platform/graphics/mac/CoreTextController.cpp:
24098         (WebCore::CoreTextController::offsetForPosition): Changed to use
24099         cursorMovementIterator instead of characterBreakIterator, allowing this
24100         function to return a valid cursor position even if it is not at
24101         a character boundary.
24102
24103 2009-04-04  Dan Bernstein  <mitz@apple.com>
24104
24105         Reviewed by Mark Rowe.
24106
24107         - fix an assertion failure when clicking at the beginning of a
24108           glyph cluster at the beginning of a text run
24109
24110         Test: fast/text/offsetForPosition-cluster-at-zero.html
24111
24112         * platform/graphics/mac/CoreTextController.cpp:
24113         (WebCore::CoreTextController::offsetForPosition): Corrected the bound
24114         check on firstGlyphBeforeCluster, letting it be 0 or -1, but not less
24115         than -1.
24116
24117 2009-04-03  Brian Weinstein  <bweinstein@gmail.com>
24118
24119         Allows 16 HTML/CSS standard colors to be shown as swatch backgrounds
24120         when the names are given.
24121
24122         https://bugs.webkit.org/show_bug.cgi?id=25044
24123
24124         Reviewed by Timothy Hatcher.
24125
24126         * inspector/front-end/StylesSidebarPane.js:
24127         (WebInspector.StylePropertyTreeElement.prototype.updateTitle):
24128
24129 2009-04-03  Sam Weinig  <sam@webkit.org>
24130
24131         Reviewed by Darin Adler.
24132
24133         <rdar://problem/6330929>
24134         https://bugs.webkit.org/show_bug.cgi?id=21456
24135
24136         Don't update the document pointer for all inactive windows on navigations.
24137         This change causes us to differ slightly from Firefox when accessing the
24138         document from within a closure tied to a navigated context, but as all
24139         browsers differ on this edge case, I don't foresee compatibility issues.
24140
24141         Test: http/tests/security/cross-frame-access-document-direct.html
24142
24143         * bindings/js/JSDOMWindowBase.cpp:
24144         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
24145         * bindings/js/ScriptController.cpp:
24146         (WebCore::ScriptController::clearWindowShell):
24147         (WebCore::ScriptController::initScript):
24148         (WebCore::ScriptController::updateDocument):
24149         * bindings/js/ScriptController.h:
24150
24151 2009-04-03  Chris Marrin  <cmarrin@apple.com>
24152
24153         Reviewed by Simon Fraser.
24154
24155         Test: transitions/bad-transition-shorthand-crash.html
24156
24157         Fixed https://bugs.webkit.org/show_bug.cgi?id=24787.
24158
24159         We were starting transitions with 0 duration and delay, which is 
24160         useless. With accelerated compositing on, this went through a code
24161         path that tried to use m_toStyle, which never got set because the 
24162         transitions was short circuited before it had a chance to. So I
24163         both protect against using that null pointer and avoid starting
24164         the transition in the first place.
24165
24166         * page/animation/CompositeAnimation.cpp:
24167         (WebCore::CompositeAnimationPrivate::updateTransitions):
24168         * page/animation/ImplicitAnimation.cpp:
24169         (WebCore::ImplicitAnimation::blendPropertyValueInStyle):
24170
24171 2009-04-03  Timothy Hatcher  <timothy@apple.com>
24172
24173         Fixes a bug where you could not type any more in the Web Inspector's
24174         search field after the first match is selected in the Resources panel.
24175
24176         https://bugs.webkit.org/show_bug.cgi?id=23982
24177         rdar://problem/6592367
24178
24179         Reviewed by Darin Adler.
24180
24181         * inspector/front-end/SourceView.js:
24182         (WebInspector.SourceView.prototype._jumpToSearchResult): Use the
24183         window object of the frame to set the selection, not the main window.
24184
24185 2009-04-03  Sam Weinig  <sam@webkit.org>
24186
24187         Reviewed by Anders Carlsson.
24188
24189         Fix for https://bugs.webkit.org/show_bug.cgi?id=22081
24190         <rdar://problem/6346030>
24191         Don't allow overriding the return value of window.location.
24192
24193         Tests: fast/dom/Window/Location/location-override-toString-on-proto-using-defineGetter.html
24194                fast/dom/Window/Location/location-override-toString-on-proto-using-with.html
24195                fast/dom/Window/Location/location-override-toString-on-proto.html
24196                fast/dom/Window/Location/location-override-toString-using-defineGetter.html
24197                fast/dom/Window/Location/location-override-toString-using-with.html
24198                fast/dom/Window/Location/location-override-toString.html
24199                fast/dom/Window/Location/location-override-valueOf-on-proto-using-defineGetter.html
24200                fast/dom/Window/Location/location-override-valueOf-on-proto-using-with.html
24201                fast/dom/Window/Location/location-override-valueOf-on-proto.html
24202                fast/dom/Window/Location/location-override-valueOf-using-defineGetter.html
24203                fast/dom/Window/Location/location-override-valueOf-using-with.html
24204                fast/dom/Window/Location/location-override-valueOf.html
24205                fast/dom/Window/Location/window-override-location-using-defineGetter.html
24206                fast/dom/Window/Location/window-override-window-using-defineGetter.html
24207                fast/dom/Window/Location/window-shadow-location-using-js-object-with-toString.html
24208                fast/dom/Window/Location/window-shadow-location-using-string.html
24209                fast/dom/Window/Location/window-shadow-window-using-js-object-with-location-field.html
24210
24211         * bindings/js/JSDOMWindowCustom.cpp:
24212         (WebCore::JSDOMWindow::defineGetter):
24213         * bindings/js/JSLocationCustom.cpp:
24214         (WebCore::JSLocation::customPut):
24215         (WebCore::JSLocation::defineGetter):
24216         (WebCore::JSLocationPrototype::customPut):
24217         (WebCore::JSLocationPrototype::defineGetter):
24218         * bindings/scripts/CodeGeneratorJS.pm:
24219         * page/Location.idl:
24220
24221 2009-04-03  Geoffrey Garen  <ggaren@apple.com>
24222
24223         Rolled out r42214 since it seems to have caused crashes on the buildbot.
24224
24225         * bindings/js/JSDOMApplicationCacheCustom.cpp:
24226         (WebCore::JSDOMApplicationCache::addEventListener):
24227         (WebCore::JSDOMApplicationCache::removeEventListener):
24228         * bindings/js/JSDOMGlobalObject.cpp:
24229         (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
24230         (WebCore::JSDOMGlobalObject::findJSEventListener):
24231         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
24232         * bindings/js/JSDOMGlobalObject.h:
24233         * bindings/js/JSDOMWindowCustom.cpp:
24234         (WebCore::JSDOMWindow::addEventListener):
24235         * bindings/js/JSMessagePortCustom.cpp:
24236         (WebCore::JSMessagePort::addEventListener):
24237         (WebCore::JSMessagePort::removeEventListener):
24238         * bindings/js/JSNodeCustom.cpp:
24239         (WebCore::JSNode::addEventListener):
24240         (WebCore::JSNode::removeEventListener):
24241         * bindings/js/JSSVGElementInstanceCustom.cpp:
24242         (WebCore::JSSVGElementInstance::addEventListener):
24243         * bindings/js/JSWorkerContextCustom.cpp:
24244         (WebCore::JSWorkerContext::addEventListener):
24245         (WebCore::JSWorkerContext::removeEventListener):
24246         * bindings/js/JSWorkerCustom.cpp:
24247         (WebCore::JSWorker::addEventListener):
24248         (WebCore::JSWorker::removeEventListener):
24249         * bindings/js/JSXMLHttpRequestCustom.cpp:
24250         (WebCore::JSXMLHttpRequest::addEventListener):
24251         (WebCore::JSXMLHttpRequest::removeEventListener):
24252         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
24253         (WebCore::JSXMLHttpRequestUpload::addEventListener):
24254         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
24255         * bindings/scripts/CodeGeneratorJS.pm:
24256
24257 2009-04-03  Sam Weinig  <sam@webkit.org>
24258
24259         Reviewed by Oliver Hunt.
24260
24261         Fix for <rdar://problem/6476356>
24262         https://bugs.webkit.org/show_bug.cgi?id=23148
24263
24264         - Use the window object the Location and History objects are directly associated with
24265           instead of the lexical global object to pick the object prototype to serve as the
24266           base of the their respective prototype chains.
24267         - Re-factor as necessary to allow passing the correct global object to the createPrototype
24268           functions.
24269
24270         Tests: http/tests/security/cross-frame-access-history-prototype.html
24271                http/tests/security/cross-frame-access-location-prototype.html
24272
24273         * bindings/js/JSAudioConstructor.cpp:
24274         (WebCore::JSAudioConstructor::JSAudioConstructor):
24275         * bindings/js/JSDOMBinding.cpp:
24276         (WebCore::getCachedDOMStructure):
24277         (WebCore::cacheDOMStructure):
24278         * bindings/js/JSDOMBinding.h:
24279         (WebCore::getDOMStructure):
24280         (WebCore::getDOMPrototype):
24281         * bindings/js/JSDOMWindowCustom.cpp:
24282         (WebCore::JSDOMWindow::history):
24283         (WebCore::JSDOMWindow::location):
24284         * bindings/js/JSDocumentCustom.cpp:
24285         (WebCore::JSDocument::location):
24286         * bindings/js/JSImageConstructor.cpp:
24287         (WebCore::JSImageConstructor::JSImageConstructor):
24288         * bindings/js/JSMessageChannelConstructor.cpp:
24289         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
24290         * bindings/js/JSNamedNodesCollection.h:
24291         (WebCore::JSNamedNodesCollection::createPrototype):
24292         * bindings/js/JSOptionConstructor.cpp:
24293         (WebCore::JSOptionConstructor::JSOptionConstructor):
24294         * bindings/js/JSRGBColor.h:
24295         (WebCore::JSRGBColor::createPrototype):
24296         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
24297         (WebCore::JSWebKitCSSMatrixConstructor::JSWebKitCSSMatrixConstructor):
24298         * bindings/js/JSWebKitPointConstructor.cpp:
24299         (WebCore::JSWebKitPointConstructor::JSWebKitPointConstructor):
24300         * bindings/js/JSWorkerConstructor.cpp:
24301         (WebCore::JSWorkerConstructor::JSWorkerConstructor):
24302         * bindings/js/JSXMLHttpRequestConstructor.cpp:
24303         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
24304         * bindings/js/JSXSLTProcessorConstructor.cpp:
24305         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
24306         * bindings/scripts/CodeGeneratorJS.pm:
24307         * bridge/objc/objc_runtime.h:
24308         (JSC::Bindings::ObjcFallbackObjectImp::createPrototype):
24309         * bridge/runtime_array.h:
24310         (JSC::RuntimeArray::createPrototype):
24311         * bridge/runtime_method.h:
24312         (JSC::RuntimeMethod::createPrototype):
24313         * bridge/runtime_object.h:
24314         (JSC::RuntimeObjectImp::createPrototype):
24315         * page/DOMWindow.idl:
24316
24317 2009-04-03  Jian Li  <jianli@chromium.org>
24318
24319         Reviewed by Darin Fisher.
24320
24321         https://bugs.webkit.org/show_bug.cgi?id=25009
24322         Upstream changes to WorkerContextExecutionProxy for V8 bindings in order to use V8EventListenerList as container.
24323
24324         * bindings/v8/WorkerContextExecutionProxy.cpp:
24325         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
24326         (WebCore::WorkerContextExecutionProxy::dispose):
24327         (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener):
24328         (WebCore::WorkerContextExecutionProxy::RemoveEventListener):
24329         * bindings/v8/WorkerContextExecutionProxy.h:
24330
24331 2009-04-03  Geoffrey Garen  <ggaren@apple.com>
24332
24333         Reviewed by Sam Weinig.
24334
24335         Removed irrelevant ExecState* parameter from event handler registration code.
24336         
24337         No change in behavior.
24338
24339         * bindings/js/JSDOMApplicationCacheCustom.cpp:
24340         (WebCore::JSDOMApplicationCache::addEventListener):
24341         (WebCore::JSDOMApplicationCache::removeEventListener):
24342         * bindings/js/JSDOMGlobalObject.cpp:
24343         (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
24344         (WebCore::JSDOMGlobalObject::findJSEventListener):
24345         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
24346         * bindings/js/JSDOMGlobalObject.h:
24347         * bindings/js/JSDOMWindowCustom.cpp:
24348         (WebCore::JSDOMWindow::addEventListener):
24349         * bindings/js/JSMessagePortCustom.cpp:
24350         (WebCore::JSMessagePort::addEventListener):
24351         (WebCore::JSMessagePort::removeEventListener):
24352         * bindings/js/JSNodeCustom.cpp:
24353         (WebCore::JSNode::addEventListener):
24354         (WebCore::JSNode::removeEventListener):
24355         * bindings/js/JSSVGElementInstanceCustom.cpp:
24356         (WebCore::JSSVGElementInstance::addEventListener):
24357         * bindings/js/JSWorkerContextCustom.cpp:
24358         (WebCore::JSWorkerContext::addEventListener):
24359         (WebCore::JSWorkerContext::removeEventListener):
24360         * bindings/js/JSWorkerCustom.cpp:
24361         (WebCore::JSWorker::addEventListener):
24362         (WebCore::JSWorker::removeEventListener):
24363         * bindings/js/JSXMLHttpRequestCustom.cpp:
24364         (WebCore::JSXMLHttpRequest::addEventListener):
24365         (WebCore::JSXMLHttpRequest::removeEventListener):
24366         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
24367         (WebCore::JSXMLHttpRequestUpload::addEventListener):
24368         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
24369         * bindings/scripts/CodeGeneratorJS.pm:
24370
24371 2009-04-03  Dan Bernstein  <mitz@apple.com>
24372
24373         Reviewed by Simon Fraser.
24374
24375         - fix <rdar://problem/6634771> Under full-page zoom, cannot scroll
24376           MobileMe contact list
24377
24378         Test: fast/css/zoom-in-length-round-trip.html
24379
24380         * dom/Element.cpp:
24381         (WebCore::adjustForLocalZoom): For zoom factors greater than 1, ensure
24382         that the returned value is equal to the original unscaled value.
24383         (WebCore::adjustForAbsoluteZoom): Ditto.
24384
24385 2009-04-03  Chris Marrin  <cmarrin@apple.com>
24386
24387         Reviewed by David Hyatt.
24388
24389         Fixed https://bugs.webkit.org/show_bug.cgi?id=24941
24390
24391         This fix essentially does a -viewWillDraw call for layout. It adds 
24392         a CFRunLoopObserver which performs layout just before drawing on the 
24393         Mac platform. This makes sure layout is complete before rendering and 
24394         avoids a flash.
24395
24396         * page/ChromeClient.h:
24397         (WebCore::ChromeClient::scheduleViewUpdate):
24398         * rendering/RenderLayerCompositor.cpp:
24399         (WebCore::RenderLayerCompositor::setCompositingLayersNeedUpdate):
24400         (WebCore::RenderLayerCompositor::scheduleViewUpdate):
24401         * rendering/RenderLayerCompositor.h:
24402
24403 2009-04-02  Simon Fraser  <simon.fraser@apple.com>
24404
24405         Reviewed by Dan Bernstein
24406
24407         https://bugs.webkit.org/show_bug.cgi?id=24648
24408
24409         Optimize mapPoint(), mapRect() and mapQuad() for identity matrix and translations.
24410         
24411         * platform/graphics/transforms/TransformationMatrix.cpp:
24412         (WebCore::TransformationMatrix::mapPoint):
24413         (WebCore::TransformationMatrix::mapRect):
24414         (WebCore::TransformationMatrix::mapQuad):
24415         * platform/graphics/transforms/TransformationMatrix.h:
24416         (WebCore::TransformationMatrix::mapPoint):
24417
24418 2009-04-02  Simon Fraser  <simon.fraser@apple.com>
24419
24420         Reviewed by Dan Bernstein
24421
24422         https://bugs.webkit.org/show_bug.cgi?id=25018
24423         
24424         Add containsPoint() and containsQuad() methods to FloatQuad.
24425
24426         * platform/graphics/FloatQuad.cpp:
24427         (WebCore::dot):
24428         (WebCore::isPointInTriangle):
24429         (WebCore::FloatQuad::containsPoint):
24430         (WebCore::FloatQuad::containsQuad):
24431         * platform/graphics/FloatQuad.h:
24432
24433 2009-04-03  Kevin Decker  <kdecker@apple.com>
24434
24435         Reviewed by Darin.
24436
24437         *  loader/ProgressTracker.cpp: Included DocumentLoader.h
24438         (WebCore::ProgressTracker::incrementProgress): Limit the 50%-clamp rule to 
24439         documents that use WebCore's layout system.
24440
24441 2009-04-03  Eric Carlson  <eric.carlson@apple.com>
24442
24443         Reviewed by Simon Fraser.
24444
24445         https://bugs.webkit.org/show_bug.cgi?id=25029
24446         <rdar://problem/6336092> REGRESSION: movie does not resize correctly
24447
24448         Test: media/video-size-intrinsic-scale.html
24449
24450         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
24451         (WebCore::MediaPlayerPrivate::naturalSize): Use QTMovieCurrentSizeAttribute instead 
24452         of QTMovieNaturalSizeAttribute so we return the correct size for movies saved
24453         with a non-default matrix.
24454         (WebCore::MediaPlayerPrivate::setSize): Don't resize the QTMovieView
24455         because [QTMovieView setFrame] also resizes the movie itself, and as
24456         the renderer calls setSize immediately when a movie reports a size change
24457         (QTMovieSizeDidChangeNotification) we can get into a feedback loop
24458         observing the size change and resetting the size, and this can cause
24459         QuickTime to miss correctly setting a movie's size when the media size
24460         changes after opening (as happens with an rtsp movie once the server sends
24461         the track sizes). Instead, remember the size passed to paint() and 
24462         resize the view when it changes.
24463         (WebCore::MediaPlayerPrivate::paint): Resize the view when passed a new size.
24464
24465         * platform/graphics/win/QTMovieWin.cpp:
24466         (QTMovieWin::getNaturalSize): Use GetMovieBox instead of GetMovieNaturalBoundsRect
24467         so we return the correct size for movies saved with non-default matrix.
24468
24469 2009-04-03  Darin Fisher  <darin@chromium.org>
24470
24471         Reviewed by Darin Adler.
24472
24473         Restore FrameLoader::policyDocumentLoader to fix the Chromium build.
24474         https://bugs.webkit.org/show_bug.cgi?id=25028
24475
24476         * loader/FrameLoader.h:
24477         (WebCore::FrameLoader::policyDocumentLoader):
24478
24479 2009-04-02  Michael Nordman  <michaeln@google.com>
24480
24481         Reviewed by Alexey Proskuryakov.
24482
24483         Use long long, not int64, when working in webcore (sorry).
24484         https://bugs.webkit.org/show_bug.cgi?id=25011
24485
24486         No change in functionality, so no tests.
24487
24488         * platform/network/chromium/ResourceResponse.h:
24489         (WebCore::ResourceResponse::getAppCacheID):
24490         (WebCore::ResourceResponse::setAppCacheID):
24491
24492 2009-04-03  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
24493
24494         Reviewed by Holger Freyther.
24495
24496         Remove pre-processor checks for GTK+ >= 2.10, since we now require
24497         at least that version.
24498
24499         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
24500         (WebCore::FontPlatformData::FontPlatformData):
24501         * platform/gtk/ContextMenuItemGtk.cpp:
24502         (WebCore::gtkStockIDFromContextMenuAction):
24503         * platform/gtk/KeyEventGtk.cpp:
24504         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
24505         * platform/gtk/LocalizedStringsGtk.cpp:
24506         (WebCore::contextMenuItemTagSelectAll):
24507         * platform/gtk/MouseEventGtk.cpp:
24508         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
24509         * platform/gtk/PasteboardGtk.cpp:
24510         (WebCore::Pasteboard::writeSelection):
24511         (WebCore::Pasteboard::documentFragment):
24512         * platform/gtk/WheelEventGtk.cpp:
24513         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
24514
24515 2009-04-02  Simon Fraser  <simon.fraser@apple.com>
24516
24517         Reviewed by Dan Bernstein
24518         
24519         https://bugs.webkit.org/show_bug.cgi?id=25021
24520         
24521         Fix repainting an element with a reflection and transform after layout.
24522         Telling the reflection to repaint directly is wrong, because, with
24523         LayoutState enabled, it only takes the reflection's transform into account,
24524         not that of the element. We can fix this, and keep the benefits of LayoutState,
24525         by computing the reflected repaint rect, and repainting that using the original
24526         renderer.
24527
24528         Test: fast/repaint/reflection-repaint-test.html
24529
24530         * rendering/RenderBlock.cpp:
24531         (WebCore::RenderBlock::layoutBlock):
24532
24533 2009-04-02  Simon Fraser  <simon.fraser@apple.com>
24534
24535         Reviewed by Dan Bernstein
24536         
24537         https://bugs.webkit.org/show_bug.cgi?id=23307
24538         
24539         When repainting during layout (when LayoutState is enabled), we need
24540         to apply the transform to the dirty rect, before applying x(), y() and
24541         the offset storted in the LayoutState.
24542         
24543         Also bypass LayoutState in mapLocalToContainer() if we have a repaintContainer,
24544         since LayoutState is always root-relative.
24545
24546         Test: fast/repaint/transform-layout-repaint.html
24547
24548         * rendering/RenderBox.cpp:
24549         (WebCore::RenderBox::mapLocalToContainer):
24550         (WebCore::RenderBox::computeRectForRepaint):
24551
24552 2009-04-02  Mark Rowe  <mrowe@apple.com>
24553
24554         Fix the Mac build after r42191.
24555
24556         * WebCore.base.exp:
24557
24558 2009-04-02  Mark Rowe  <mrowe@apple.com>
24559
24560         Fix Windows build after r42190.
24561
24562         * page/EventHandler.cpp:
24563         (WebCore::EventHandler::keyEvent):  Update to use the new name of the constant.
24564
24565 2009-04-02  Darin Adler  <darin@apple.com>
24566
24567         Reviewed by Brady Eidson.
24568
24569         <rdar://problem/6625840> Previous Page isn't loaded after hitting back button at http://www.breakingnews.ie/
24570
24571         Test: http/tests/navigation/onload-navigation-iframe-2.html
24572
24573         * html/HTMLFrameElement.cpp:
24574         (WebCore::HTMLFrameElement::HTMLFrameElement): Removed unneeded createdByParser flag.
24575         * html/HTMLFrameElement.h: Ditto.
24576         * html/HTMLFrameElementBase.cpp:
24577         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase): Ditto.
24578         * html/HTMLFrameElementBase.h: Ditto.
24579         * html/HTMLFrameOwnerElement.cpp:
24580         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Ditto.
24581         * html/HTMLFrameOwnerElement.h: Ditto.
24582         * html/HTMLIFrameElement.cpp:
24583         (WebCore::HTMLIFrameElement::HTMLIFrameElement): Ditto.
24584         * html/HTMLIFrameElement.h: Ditto.
24585         * html/HTMLPlugInElement.cpp:
24586         (WebCore::HTMLPlugInElement::HTMLPlugInElement): Ditto.
24587
24588         * loader/FrameLoader.cpp:
24589         (WebCore::FrameLoader::submitForm): Removed unneeded check of the createdByParser flag.
24590         The original change that introduced this, http://trac.webkit.org/changeset/25410, does
24591         not make it clear why this check was needed. And it seems it is not needed.
24592
24593 2009-04-02  Adele Peterson  <adele@apple.com>
24594
24595         Reviewed by Darin Adler.
24596
24597         Add a way to get a list of focusable nodes.
24598
24599         * dom/Document.cpp:
24600         (WebCore::Document::setFocusedNode):
24601         (WebCore::Document::getFocusableNodes):
24602         * dom/Document.h:
24603
24604 2009-04-02  Darin Adler  <darin@apple.com>
24605
24606         Reviewed by Sam Weinig.
24607
24608         <rdar://problem/6654255> crash due to null FrameView in EventHandler
24609
24610         Lots of code was added to EventHandler that used view() and page() without
24611         null checking, but both of those can become null due to the frame lifetime.
24612
24613         * page/EventHandler.cpp:
24614         (WebCore::EventHandler::handleMousePressEventSingleClick):
24615         (WebCore::EventHandler::eventMayStartDrag):
24616         (WebCore::EventHandler::handleAutoscroll):
24617         (WebCore::EventHandler::autoscrollTimerFired):
24618         (WebCore::EventHandler::setPanScrollCursor):
24619         (WebCore::EventHandler::allowDHTMLDrag):
24620         (WebCore::EventHandler::hitTestResultAtPoint):
24621         (WebCore::EventHandler::stopAutoscrollTimer):
24622         (WebCore::EventHandler::selectCursor):
24623         (WebCore::EventHandler::handleMousePressEvent):
24624         (WebCore::EventHandler::handleMouseMoveEvent):
24625         (WebCore::EventHandler::dispatchDragEvent):
24626         (WebCore::EventHandler::prepareMouseEvent):
24627         (WebCore::EventHandler::dispatchMouseEvent):
24628         (WebCore::EventHandler::handleWheelEvent):
24629         (WebCore::EventHandler::hoverTimerFired):
24630         (WebCore::EventHandler::keyEvent):
24631         (WebCore::EventHandler::dragHysteresisExceeded):
24632         (WebCore::EventHandler::shouldDragAutoNode):
24633         (WebCore::EventHandler::handleDrag):
24634         (WebCore::EventHandler::handleTextInputEvent):
24635         (WebCore::EventHandler::addPendingFrameUnloadEventCount):
24636         (WebCore::EventHandler::removePendingFrameUnloadEventCount):
24637         (WebCore::EventHandler::clearPendingFrameUnloadEventCount):
24638         (WebCore::EventHandler::addPendingFrameBeforeUnloadEventCount):
24639         (WebCore::EventHandler::removePendingFrameBeforeUnloadEventCount):
24640         (WebCore::EventHandler::clearPendingFrameBeforeUnloadEventCount):
24641         Added null checks for view() and page(). Made minor code cleanups.
24642
24643 2009-04-02  David Hyatt  <hyatt@apple.com>
24644
24645         Reviewed by Oliver Hunt.
24646
24647         Fix regression in <object> layout test.  Make sure that even though a 404 image loads, that <object>
24648         still considers it an error for the purposes of firing onerror.
24649
24650         * html/HTMLImageLoader.cpp:
24651         (WebCore::HTMLImageLoader::dispatchLoadEvent):
24652
24653 2009-04-02  Dimitri Glazkov  <dglazkov@chromium.org>
24654
24655         Reviewed by Timothy Hatcher.
24656
24657         https://bugs.webkit.org/show_bug.cgi?id=25010
24658         Refactor InspectorController to replace all JS function invocations with
24659         ScriptFunctionCall.
24660
24661         * bindings/js/ScriptFunctionCall.cpp:
24662         (WebCore::ScriptFunctionCall::appendArgument): Added int, UString,
24663             and JSValuePtr methods.
24664         (WebCore::ScriptFunctionCall::call): Added simplified, exception-eating
24665             method.
24666         * bindings/js/ScriptFunctionCall.h: Decls for above.
24667         * bindings/js/ScriptObjectQuarantine.cpp: Added helper for Node and DOMWindow.
24668         (WebCore::getQuarantinedScriptObject):
24669         * bindings/js/ScriptObjectQuarantine.h: Decls for above.
24670         * inspector/InspectorController.cpp:
24671         (WebCore::callSimpleFunction): Made into a static.
24672         (WebCore::InspectorController::focusNode): Refactored to use ScriptFunctionCall.
24673         (WebCore::InspectorController::toggleRecordButton): Ditto.
24674         (WebCore::InspectorController::startGroup): Ditto.
24675         (WebCore::InspectorController::setAttachedWindow): Ditto.
24676         (WebCore::InspectorController::inspectedWindowScriptObjectCleared): Ditto.
24677         (WebCore::InspectorController::addScriptProfile): Ditto.
24678         (WebCore::InspectorController::didParseSource): Ditto.
24679         (WebCore::InspectorController::failedToParseSource): Ditto.
24680         (WebCore::InspectorController::didPause): Ditto.
24681         * inspector/InspectorController.h: Removed callFunction and callSimpleFunction
24682             decls.
24683
24684 2009-04-02  Jian Li  <jianli@chromium.org>
24685
24686         Reviewed by Darin Fisher.
24687
24688         Upstream changes to V8WorkerContextEventListener for V8 bindings.
24689         https://bugs.webkit.org/show_bug.cgi?id=25007
24690
24691         * bindings/v8/V8ObjectEventListener.h:
24692         * bindings/v8/V8WorkerContextEventListener.cpp:
24693
24694 2009-04-02  Jian Li  <jianli@chromium.org>
24695
24696         Reviewed by Darin Fisher.
24697
24698         Upstream V8WorkerContextObjectEventListener for V8 bindings.
24699         https://bugs.webkit.org/show_bug.cgi?id=25005
24700
24701         * bindings/v8/V8WorkerContextObjectEventListener.cpp: Added.
24702         * bindings/v8/V8WorkerContextObjectEventListener.h: Added.
24703
24704 2009-04-02  Jian Li  <jianli@chromium.org>
24705
24706         Reviewed by Darin Fisher.
24707
24708         Upstream V8EventListenerList for V8 bindings.
24709         https://bugs.webkit.org/show_bug.cgi?id=25004
24710
24711         * bindings/v8/V8EventListenerList.cpp: Added.
24712         * bindings/v8/V8EventListenerList.h: Added.
24713
24714 2009-04-02  Michael Nordman  <michaeln@google.com>
24715
24716         Reviewed by Darin Fisher.
24717
24718         Chromium's ResourceRequest and ResourceResponse structs need some new data members.
24719         https://bugs.webkit.org/show_bug.cgi?id=24897
24720
24721         These fields are needed to facilitate Chromium's implementation of the HTML5
24722         ApplicationCache feature. We need to know what frame (or context) is doing the
24723         requesting, and from what cache the resulting resource was retrieved.
24724
24725         No change in functionality, so no tests.
24726
24727         * platform/network/chromium/ResourceRequest.h:
24728         (WebCore::ResourceRequest::ResourceRequest):
24729         (WebCore::ResourceRequest::appCacheContextID):
24730         (WebCore::ResourceRequest::setAppCacheContextID):
24731         * platform/network/chromium/ResourceResponse.h:
24732         (WebCore::ResourceResponse::ResourceResponse):
24733         (WebCore::ResourceResponse::getAppCacheID):
24734         (WebCore::ResourceResponse::setAppCacheID):
24735
24736 2009-04-02  David Hyatt  <hyatt@apple.com>
24737
24738         Reviewed by Darin Adler
24739
24740         Fix for https://bugs.webkit.org/show_bug.cgi?id=24643.
24741         
24742         Make sure images just ignore HTTP error codes and keep loading anyway.  Only <object> checks http error codes and falls back.  Everyone
24743         else just ignores it and displays the image anyway.
24744
24745         Added http/tests/misc/image-error.html
24746
24747         * html/HTMLImageLoader.cpp:
24748         (WebCore::HTMLImageLoader::notifyFinished):
24749         * loader/CachedImage.cpp:
24750         (WebCore::CachedImage::CachedImage):
24751         * loader/CachedImage.h:
24752         (WebCore::CachedImage::httpStatusCodeError):
24753         (WebCore::CachedImage::httpStatusCodeErrorOccurred):
24754         * loader/CachedResource.h:
24755         (WebCore::CachedResource::httpStatusCodeError):
24756         * loader/loader.cpp:
24757         (WebCore::Loader::Host::didReceiveData):
24758
24759 2009-04-02  Jian Li  <jianli@chromium.org>
24760
24761         Reviewed by Dimitri Glazkov.
24762
24763         Add XHR constructor in WorkerContext.idl for V8 bindings.
24764         https://bugs.webkit.org/show_bug.cgi?id=24962
24765
24766         * workers/WorkerContext.idl:
24767
24768 2009-04-02  Ben Murdoch  <benm@google.com>
24769
24770         Fix Bug 19743: Release build fails on 32-bit Windows
24771
24772         <https://bugs.webkit.org/show_bug.cgi?id=19743>
24773
24774         Combines all the HTML element cpp files into one to help reduce the
24775         size of WebCore.lib so we can build in release mode on 32bit Windows.
24776
24777         Reviewed by Adam Roben.
24778
24779         * WebCore.vcproj/WebCore.vcproj: Excluded all the separate
24780         HTML*Element.cpp files from the build. Added HTMLElementsAllInOne.cpp
24781         to the build.
24782         * html/HTMLElementsAllInOne.cpp: Added.
24783
24784 2009-04-02  Simon Fraser  <simon.fraser@apple.com>
24785
24786         Reviewed by Darin Adler
24787
24788         https://bugs.webkit.org/show_bug.cgi?id=24999
24789         
24790         Optimize hit testing with transforms.
24791
24792         * rendering/RenderBox.cpp:
24793         (WebCore::RenderBox::mapLocalToContainer):
24794         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
24795         getTransformFromContainer() change to return the matrix by reference.
24796
24797         * rendering/RenderLayer.cpp:
24798         (WebCore::RenderLayer::update3DTransformedDescendantStatus):
24799         The method failed to set m_3DTransformedDescendantStatusDirty to false,
24800         so did the work every time.
24801
24802         (WebCore::RenderLayer::createLocalTransformState):
24803         Only call the expensive getTransformFromContainer() if there is a transform,
24804         otherwise we just have a translation.
24805
24806         * rendering/RenderObject.cpp:
24807         (WebCore::RenderObject::getTransformFromContainer):
24808         * rendering/RenderObject.h:
24809         Change transformFromContainer() to getTransformFromContainer(), and return
24810         the matrix by reference to reduce copying.
24811         New enum values for arguments for readability.
24812
24813         * rendering/TransformState.cpp:
24814         (WebCore::TransformState::move):
24815         (WebCore::TransformState::applyTransform):
24816         (WebCore::HitTestingTransformState::translate):
24817         New method that adds a translation to the accumulated matrix, optionally
24818         without flattening. Cheaper than applyTransform().
24819
24820         (WebCore::HitTestingTransformState::applyTransform):
24821         (WebCore::HitTestingTransformState::flatten):
24822         (WebCore::HitTestingTransformState::flattenWithTransform):
24823         Add flattenWithTransform(), which is a helper that allows us to
24824         avoid doing the inverse() twice.
24825
24826         * rendering/TransformState.h:
24827         (WebCore::TransformState::):
24828         (WebCore::TransformState::move):
24829         (WebCore::HitTestingTransformState::):
24830         New method on HitTestingTransformState that adds a translation to the
24831         accumulated matrix, optionally without flattening. Cheaper than applyTransform().
24832         New enum values for arguments for readability.
24833
24834 2009-04-02  Simon Fraser  <simon.fraser@apple.com>
24835
24836         Reviewed by Dan Bernstein
24837         
24838         https://bugs.webkit.org/show_bug.cgi?id=24648
24839         
24840         Optimize common code paths in TransformationMatrix.
24841
24842         * platform/graphics/transforms/TransformationMatrix.cpp:
24843         (WebCore::TransformationMatrix::translate):
24844         (WebCore::TransformationMatrix::translate3d):
24845         Optimize to avoid matrix copy.
24846         
24847         (WebCore::TransformationMatrix::isInvertible):
24848         Test for identity and translation matrices before computing
24849         the determinant.
24850         
24851         (WebCore::TransformationMatrix::inverse):
24852         Optimize for identity matrix and translations.
24853         
24854         * platform/graphics/transforms/TransformationMatrix.h:
24855         (WebCore::TransformationMatrix::isIdentityOrTranslation):
24856         Utility method.
24857
24858 2009-04-02  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
24859
24860         Reviewed by Alexey Proskuryakov.
24861
24862         https://bugs.webkit.org/show_bug.cgi?id=24930
24863         [Gtk] ISO files content is displayed inside the webview instead of being downloaded
24864
24865         Also sniff content of types declared as text/plain. This is
24866         justified by the fact that it is common to have Apache HTTP
24867         servers configured to send text/plain as Content-Type by default.
24868
24869         * platform/network/soup/ResourceHandleSoup.cpp:
24870         (WebCore::gotHeadersCallback):
24871
24872 2009-04-02  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
24873
24874         Reviewed by Alexey Proskuryakov.
24875
24876         Protect the handle when notifying the client that the response was
24877         received also in gotChunkCallback, or we crash in didReceiveData
24878         when the load is cancelled in didReceiveResponse.
24879
24880         * platform/network/soup/ResourceHandleSoup.cpp:
24881         (WebCore::gotChunkCallback):
24882
24883 2009-04-02  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
24884
24885         Reviewed by Alexey Proskuryakov.
24886
24887         https://bugs.webkit.org/show_bug.cgi?id=25001
24888         Crash when content type parameters have no value
24889
24890         Handle the case where a Content-Type header parameter has no
24891         value (i.e. no = character), to work-around a bug in libsoup.
24892
24893         * platform/network/soup/ResourceHandleSoup.cpp:
24894         (WebCore::fillResponseFromMessage):
24895
24896 2009-04-02  Yael Aharon  <yael.aharon@nokia.com>
24897
24898         Reviewed by Simon Hausmann.
24899
24900         https://bugs.webkit.org/show_bug.cgi?id=24490
24901
24902         Enable web workers in Qt.
24903
24904         * WebCore.pro:
24905
24906 2009-04-01  Alexey Proskuryakov  <ap@webkit.org>
24907
24908         Reviewed by Darin Adler. Based on work of Julien Chaffraix.
24909
24910         https://bugs.webkit.org/show_bug.cgi?id=22475
24911         REGRESSION: Async XMLHttpRequest never finishes on nonexistent files anymore
24912
24913         https://bugs.webkit.org/show_bug.cgi?id=24886
24914         XHR requests opened when offline never return
24915
24916         Tests: fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html
24917                http/tests/xmlhttprequest/state-after-network-error.html
24918
24919         * xml/XMLHttpRequest.cpp:
24920         (WebCore::XMLHttpRequest::callReadyStateChangeListener): Only dispatch load event if this
24921         wasn't an error.
24922         (WebCore::XMLHttpRequest::abort): Fixed formatting.
24923         (WebCore::XMLHttpRequest::genericError): Change state to DONE and dispatch readystatechange.
24924         The comment saying that this doesn't match Firefox was added in r33559 without explanation
24925         or tests, and I don't think that it's accurate. Also, Firefox and Safari 3 both change state
24926         to HEADERS_RECEIVED before DONE on error - this doesn't match the spec, and I doubt
24927         that any code depends on this, so I went with the spec here.
24928
24929 2009-04-01  Steve Falkenburg  <sfalken@apple.com>
24930
24931         https://bugs.webkit.org/show_bug.cgi?id=24997
24932         Race conditions in icon database threading code
24933         
24934         m_syncThreadRunning set was mistakenly eliminated in r27717.
24935         This reintroduces it.
24936
24937         Reviewed by Oliver Hunt.
24938
24939         * loader/icon/IconDatabase.cpp:
24940         (WebCore::IconDatabase::open): Set m_syncThreadRunning.
24941
24942 2009-04-01  Antti Koivisto  <antti@apple.com>
24943
24944         Reviewed by Darin Adler.
24945
24946         <rdar://problem/6748609> Use ActiveDOMObject to suspend marquees
24947         
24948         Make marquees ActiveDOMObjects, get rid of the special suspension code.
24949
24950         * html/HTMLMarqueeElement.cpp:
24951         (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
24952         (WebCore::HTMLMarqueeElement::canSuspend):
24953         (WebCore::HTMLMarqueeElement::suspend):
24954         (WebCore::HTMLMarqueeElement::resume):
24955         * html/HTMLMarqueeElement.h:
24956         * page/Frame.cpp:
24957         (WebCore::Frame::clearTimers):
24958         * rendering/RenderLayer.cpp:
24959         * rendering/RenderLayer.h:
24960         (WebCore::RenderLayer::marquee):
24961
24962 2009-04-01  Dean Jackson  <dino@apple.com>
24963
24964         Reviewed by Darin Adler
24965
24966         Make constant values static in previous commit, as suggested
24967         by Darin.
24968
24969         * rendering/RenderVideo.cpp:
24970
24971 2009-04-01  Dean Jackson  <dino@apple.com>
24972
24973         Reviewed by Simon Fraser
24974
24975         https://bugs.webkit.org/show_bug.cgi?id=24993
24976
24977         Standalone media should have a smaller instrinsic
24978         height.
24979
24980         * rendering/RenderVideo.cpp:
24981         (WebCore::RenderVideo::RenderVideo):
24982
24983 2009-04-01  Darin Adler  <darin@apple.com>
24984
24985         Reviewed by Geoff Garen.
24986
24987         Bug 22378: Crash submitting a form when parsing an XHTML document
24988         https://bugs.webkit.org/show_bug.cgi?id=22378
24989         rdar://problem/6388377
24990
24991         Tests: fast/loader/submit-form-while-parsing-1.xhtml
24992                fast/loader/submit-form-while-parsing-2.html
24993
24994         * WebCore.base.exp: Updated.
24995
24996         * history/HistoryItem.cpp:
24997         (WebCore::HistoryItem::HistoryItem): Renamed m_subItems to m_children.
24998         Used uncheckedAppend because we reserveInitialCapacity.
24999         (WebCore::HistoryItem::addChildItem): Renamed m_subItems to m_children.
25000         Added an assertion that this is only used to add items that don't have
25001         duplicate frame names.
25002         (WebCore::HistoryItem::setChildItem): Added. Replaces an existing item
25003         if any, preserving the isTargetItem flag.
25004         (WebCore::HistoryItem::childItemWithTarget): Renamed from childItemWithName
25005         for consistency with the other functions here that all call the frame name the
25006         "target". Also updated for rename of m_subItems to m_children.
25007         (WebCore::HistoryItem::findTargetItem): Renamed from recurseToFindTargetItem.
25008         Removed unneeded size check.
25009         (WebCore::HistoryItem::targetItem): Changed to always return the top item
25010         if no item has the isTargetItem flag set. The old version would instead return
25011         0 in some cases, but return the top item if it had no children.
25012         (WebCore::HistoryItem::children): Renamed m_subItems to m_children.
25013         (WebCore::HistoryItem::hasChildren): Ditto.
25014         (WebCore::HistoryItem::showTreeWithIndent): Ditto.
25015
25016         * history/HistoryItem.h: Name changes.
25017
25018         * html/HTMLFormElement.cpp:
25019         (WebCore::HTMLFormElement::submit): Create and pass a FormState instead of
25020         attaching "recorded form values" and "form about to be submitted" to the frame
25021         loader. Parameter work fine for this; there's no need to store state on the
25022         FrameLoader.
25023
25024         * loader/FormState.cpp:
25025         (WebCore::FormState::FormState): Adopt a vector instead of copying a hash map.
25026         (WebCore::FormState::create): Ditto.
25027         * loader/FormState.h: Update to use a vector that we adopt instead of hash map
25028         that we copy for auto-fill text field values.
25029
25030         * loader/FrameLoader.cpp:
25031         (WebCore::ScheduledRedirection::ScheduledRedirection): Added a new case for
25032         form submissions and turned the "wasDuringLoad" state into a separate boolean
25033         instead of using a special redirection type to track it.
25034         (WebCore::FrameLoader::createWindow): Updated for name and argument change of
25035         loadFrameRequest.
25036         (WebCore::FrameLoader::urlSelected): Ditto.
25037         (WebCore::FrameLoader::submitForm): Removed the "deferred form submission"
25038         machinery, replacing it with the "scheduled redirection" mechanism, shared
25039         with other kinds of redirection and navigation. Moved frame targeting here
25040         so we can schedule the redirection on the right frame. Moved the multiple
25041         form submission protection here. Moved the code to implement the rule that
25042         m_navigationDuringLoad was used for here too.
25043         (WebCore::FrameLoader::didOpenURL): Use the new wasDuringLoad flag instead
25044         of the locationChangeDuringLoad type to detect location change during a load.
25045         (WebCore::FrameLoader::executeScript): Removed call to now-obsolete function,
25046         submitFormAgain.
25047         (WebCore::FrameLoader::scheduleLocationChange): Moved the code to stop loading
25048         out of this function into scheduleRedirection, so it can be shared with the
25049         new scheduleFormSubmission function.
25050         (WebCore::FrameLoader::scheduleFormSubmission): Added. Almost the same as
25051         scheduleLocationChange, but with the arguments for a form submission.
25052         (WebCore::FrameLoader::scheduleRefresh): Updated for the change to the
25053         duringLoad flag.
25054         (WebCore::FrameLoader::isLocationChange): Added case for formSubmission
25055         and removed case for locationChangeDuringLoad.
25056         (WebCore::FrameLoader::redirectionTimerFired): Ditto. Also removed unneeded
25057         completeURL call and just use KURL constructor to match the other cases.
25058         (WebCore::FrameLoader::provisionalLoadStarted): Removed the code to set up
25059         the m_navigationDuringLoad, which is no longer needed. The new version of
25060         this is in the submitForm function and sets the lockHistory boolean.
25061         (WebCore::FrameLoader::scheduleRedirection): Moved the code to stop a load
25062         in here that used to be in scheduleLocationChange.
25063         (WebCore::FrameLoader::startRedirectionTimer): Added case for formSubmission
25064         and removed case for locationChangeDuringLoad.
25065         (WebCore::FrameLoader::stopRedirectionTimer): Ditto.
25066         (WebCore::FrameLoader::completed): Removed call to now-obsolete function,
25067         submitFormAgain.
25068         (WebCore::FrameLoader::loadFrameRequest): Renamed from
25069         loadFrameRequestWithFormAndValues. Replaced form element and form values
25070         argument with a single FormState argument. Changed frame targeting code
25071         to use the source frame in the case of a form submission to better match
25072         the actual target frame.
25073         (WebCore::FrameLoader::loadURL): Don't search for existing frames in the
25074         form submission case since we already did that in the submitForm function.
25075         (WebCore::FrameLoader::clientRedirected): Changed to work with the
25076         m_isExecutingJavaScriptFormAction data member directly instead of taking
25077         it as a function parameter.
25078         (WebCore::FrameLoader::loadPostRequest): Don't search for existing frames
25079         in the form submission case since we already did that in the submitForm
25080         function.
25081         (WebCore::FrameLoader::addBackForwardItemClippedAtTarget): Moved comment
25082         in here that was misplaced elsewhere in the file.
25083         (WebCore::FrameLoader::findFrameForNavigation): Changed to use the early
25084         return idiom.
25085         (WebCore::FrameLoader::recursiveGoToItem): Updated for HistoryItem changes.
25086         (WebCore::FrameLoader::childFramesMatchItem): Ditto.
25087         (WebCore::FrameLoader::updateHistoryForStandardLoad): Removed the
25088         m_navigationDuringLoad logic; that's now handled by setting lockHistory
25089         to true in the submitForm function.
25090         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedBackForwardList):
25091         Use the new setChildItem function so we don't get multiple items for the
25092         same frame name in the history item tree in the back/forward list.
25093
25094         * loader/FrameLoader.h: Renamed loadFrameRequestWithFormAndValues to
25095         loadFrameRequest and made it take a form state object instead of the
25096         form element and form values. Removed the unused functions
25097         loadEmptyDocumentSynchronously, provisionalDocumentLoader,
25098         notifyIconChnaged, and updateBaseURLForEmptyDocument. Changed the
25099         submitForm function to take a form state argument. Eliminated the
25100         clearRecordedFormValues, setFormAboutToBeSubmitted, and recordFormValue
25101         functions, which are replaced by the form state arguments to submitForm
25102         and loadFrameRequest. Removed the isJavaScriptFormAction argument from
25103         the clientRedirected function; instead it looks at a data member directly.
25104         Eliminated the submitFormAgain and overload of the submitForm function;
25105         these are now subsumed into the remaining submitForm function and the
25106         scheduleFormSubmission function. Removed unused and obsolete data
25107         members m_navigationDuringLoad, m_deferredFormSubmission,
25108         m_formAboutToBeSubmitted and m_formValuesAboutToBeSubmitted.
25109
25110         * page/ContextMenuController.cpp:
25111         (WebCore::ContextMenuController::contextMenuItemSelected):
25112         Updated for name and argument change of loadFrameRequest.
25113
25114         * page/Frame.cpp:
25115         (WebCore::Frame::~Frame): Removed call to the now-unneeded
25116         clearRecordedFormValues function.
25117
25118 2009-04-01  Dimitri Glazkov  <dglazkov@chromium.org>
25119
25120         Unreviewed, fixing previous commit.
25121
25122         https://bugs.webkit.org/show_bug.cgi?id=24994
25123         Revert V8DOMMap.cpp change which accidentally snuck into the previous
25124         commit.
25125
25126         * bindings/v8/V8DOMMap.cpp: Revert change in previous commit.
25127
25128 2009-04-01  Dimitri Glazkov  <dglazkov@chromium.org>
25129
25130         Reviewed by Darin Fisher.
25131
25132         https://bugs.webkit.org/show_bug.cgi?id=24994
25133         Fix miscellaneous merge/upstreaming divergencies in Chromium port.
25134
25135         * bindings/v8/V8Collection.h: Added an include.
25136         * platform/KURLGoogle.cpp:
25137         (WebCore::KURL::baseAsString): Added to match KURL.cpp.
25138         * platform/chromium/ClipboardChromium.cpp: Added an include.
25139
25140 2009-04-01  Dimitri Glazkov  <dglazkov@chromium.org>
25141
25142         Reviewed by Timothy Hatcher.
25143
25144         https://bugs.webkit.org/show_bug.cgi?id=24989
25145         Refactor InspectorResource to use ScriptObject/FunctionCall.
25146
25147         * bindings/js/JSInspectorControllerCustom.cpp:
25148         (WebCore::JSInspectorController::addResourceSourceToFrame): Tweaked to use
25149             a more appropriate type conversion.
25150         (WebCore::JSInspectorController::getResourceDocumentNode): Tweaked to
25151             accommodate for InspectorResource refactoring.
25152         * bindings/js/ScriptFunctionCall.cpp:
25153         (WebCore::ScriptFunctionCall::appendArgument): Added long long type to match
25154             existing jsNumber call signature.
25155         * bindings/js/ScriptFunctionCall.h: Declaration for above.
25156         * bindings/js/ScriptObject.cpp:
25157         (WebCore::createEmptyObject): Added.
25158         (WebCore::ScriptObject::ScriptObject):
25159         (WebCore::ScriptObject::set): Added a bunch of property setters.
25160         * bindings/js/ScriptObject.h: Declarations for above.
25161         * inspector/InspectorController.cpp: Moved all InspectorResource-managing code
25162             to InspectorResource.cpp
25163         (WebCore::InspectorController::populateScriptObjects): Changed to use
25164             refactored InspectorResource.
25165         (WebCore::InspectorController::resetScriptObjects): Ditto.
25166         (WebCore::InspectorController::pruneResources): Ditto.
25167         (WebCore::InspectorController::didCommitLoad): Ditto.
25168         (WebCore::InspectorController::addResource): Ditto.
25169         (WebCore::InspectorController::removeResource): Ditto.
25170         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Ditto.
25171         (WebCore::InspectorController::identifierForInitialRequest): Ditto.
25172         (WebCore::InspectorController::willSendRequest): Ditto.
25173         (WebCore::InspectorController::didReceiveResponse): Ditto.
25174         (WebCore::InspectorController::didReceiveContentLength): Ditto.
25175         (WebCore::InspectorController::didFinishLoading): Ditto.
25176         (WebCore::InspectorController::didFailLoading): Ditto,
25177         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest): Ditto.
25178         (WebCore::InspectorController::scriptImported): Ditto.
25179         * inspector/InspectorController.h: Removed InspectorResource-managing code decls
25180             and tweaked some signatures to use ScriptString and long long for identifier.
25181         * inspector/InspectorController.idl: Changed to use long long for identifier.
25182         * inspector/InspectorResource.cpp: Refactored to use ScriptObject/FunctionCall.
25183         (WebCore::InspectorResource::InspectorResource): Ditto.
25184         (WebCore::InspectorResource::~InspectorResource): Ditto.
25185         (WebCore::InspectorResource::createCached): Added.
25186         (WebCore::InspectorResource::updateRequest): Added.
25187         (WebCore::InspectorResource::updateResponse): Added.
25188         (WebCore::createHeadersObject): Added.
25189         (WebCore::InspectorResource::createScriptObject): Added.
25190         (WebCore::InspectorResource::updateScriptObject): Added.
25191         (WebCore::InspectorResource::releaseScriptObject): Added.
25192         (WebCore::InspectorResource::type): Tweaked to use ScriptString.
25193         (WebCore::InspectorResource::setXMLHttpResponseText): Added.
25194         (WebCore::InspectorResource::sourceString): Tweaked to use ScriptString.
25195         (WebCore::InspectorResource::startTiming): Added.
25196         (WebCore::InspectorResource::markResponseReceivedTime): Added.
25197         (WebCore::InspectorResource::endTiming): Added.
25198         (WebCore::InspectorResource::markFailed): Added.
25199         (WebCore::InspectorResource::addLength): Added.
25200         * inspector/InspectorResource.h: Added decls for newly refactored-in methods.
25201         (WebCore::InspectorResource::create): Added.
25202         (WebCore::InspectorResource::isSameLoader): Added.
25203         (WebCore::InspectorResource::markMainResource): Added.
25204         (WebCore::InspectorResource::identifier): Added.
25205         (WebCore::InspectorResource::requestURL): Added.
25206         (WebCore::InspectorResource::frame): Added.
25207         (WebCore::InspectorResource::mimeType): Added.
25208         (WebCore::InspectorResource::Changes::Changes): Added new class to track
25209             resource changes.
25210         (WebCore::InspectorResource::Changes::hasChange): Added.
25211         (WebCore::InspectorResource::Changes::set): Added.
25212         (WebCore::InspectorResource::Changes::clear): Added.
25213         (WebCore::InspectorResource::Changes::setAll): Added.
25214         (WebCore::InspectorResource::Changes::clearAll): Added.
25215
25216 2009-04-01  Tony Chang  <tony@chromium.org>
25217
25218         Reviewed by Darin Fisher.
25219
25220         Ensure the right click doesn't deselect text under it.  This was
25221         happening in the Chromium and GTK+ ports because they don't select
25222         the text under the cursor on right click.
25223         
25224         This was regressed in r41715, https://bugs.webkit.org/show_bug.cgi?id=19737
25225         
25226         https://bugs.webkit.org/show_bug.cgi?id=24946
25227
25228         Test: fast/events/context-no-deselect.html
25229
25230         * page/EventHandler.cpp:
25231         (WebCore::EventHandler::handleMouseReleaseEvent):
25232
25233 2009-04-01  Simon Fraser  <simon.fraser@apple.com>
25234
25235         Reviewed by Dave Hyatt
25236
25237         https://bugs.webkit.org/show_bug.cgi?id=24991
25238         
25239         Need to use toRenderBoxModelObject(), not toRenderBox(), to test for layer()
25240         when getting the transform.
25241         
25242         * rendering/RenderObject.cpp:
25243         (WebCore::RenderObject::transformFromContainer):
25244
25245 2009-03-31  Darin Adler  <darin@apple.com>
25246
25247         Rolled out that last change until I can investigate the regression test failures it seems
25248         to have caused.
25249
25250         * dom/PositionIterator.cpp:
25251         (WebCore::PositionIterator::decrement):
25252         * dom/PositionIterator.h:
25253         (WebCore::PositionIterator::PositionIterator):
25254
25255 2009-03-31  Darin Adler  <darin@apple.com>
25256
25257         Reviewed by Eric Seidel.
25258
25259         Bug 24621: PositionIterator doesn't iterate "after last child" positions when going backwards
25260         https://bugs.webkit.org/show_bug.cgi?id=24621
25261
25262         * dom/PositionIterator.cpp:
25263         (WebCore::PositionIterator::decrement): Make sure that when the parent has no children, we
25264         don't ever use Position::uncheckedPreviousOffset. This is consistent with the forward
25265         iterator, but also should never arise because of the fix below.
25266         * dom/PositionIterator.h:
25267         (WebCore::PositionIterator::PositionIterator): Fixed so m_offset will always be 0 when
25268         the passed-in node has no children. Like the change above, this is consistent with the rest
25269         of the class, although in the long run I think it's a bit strange to treat a <p> element
25270         with no children differently than a <p> element with children.
25271
25272 2009-03-31  Eric Carlson  <eric.carlson@apple.com>
25273
25274         Reviewed by Simon Fraser.
25275
25276         https://bugs.webkit.org/show_bug.cgi?id=24965
25277         Bug 24965: HTMLMediaElement: network state changes can be missed
25278         
25279         * html/HTMLMediaElement.cpp:
25280         (WebCore::HTMLMediaElement::setNetworkState): Always update m_networkState when the
25281         state changes, even when no event needs to be fired.
25282
25283 2009-03-31  Eric Carlson  <eric.carlson@apple.com>
25284
25285         Reviewed by Darin Adler.
25286         
25287         https://bugs.webkit.org/show_bug.cgi?id=24964
25288         Bug 24964: HTMLMediaElement: 'waiting' event may fire twice
25289
25290         * html/HTMLMediaElement.cpp:
25291         (WebCore::HTMLMediaElement::setReadyState): Only fire 'waiting' event once when ready state
25292         drops below HAVE_FUTURE_DATA.
25293
25294 2009-03-31  Eric Carlson  <eric.carlson@apple.com>
25295
25296         Reviewed by Darin Adler.
25297
25298         https://bugs.webkit.org/show_bug.cgi?id=24846
25299         Bug 24846: HTMLMediaElement should implement 'autobuffer' attribute
25300
25301         Add 'autobuffer' attrubute to media element. 'autobuffer' is a hint that
25302         the author recommends downloading the entire resource optimistically, so the
25303         attribute is made available to the media engine to use if it is able.
25304
25305         Test: media/video-dom-autobuffer.html
25306
25307         * html/HTMLAttributeNames.in: Add autobuffer.
25308
25309         * html/HTMLMediaElement.cpp:
25310         (WebCore::HTMLMediaElement::parseMappedAttribute): New.
25311         (WebCore::HTMLMediaElement::autobuffer): Ditto.
25312         (WebCore::HTMLMediaElement::setAutobuffer): Ditto.
25313
25314         * html/HTMLMediaElement.h: Declare autobuffer and setAutobuffer.
25315
25316         * html/HTMLMediaElement.idl: Add autobuffer.
25317
25318         * platform/graphics/MediaPlayer.cpp:
25319         (WebCore::MediaPlayer::MediaPlayer): Initialize m_autobuffer.
25320         (WebCore::MediaPlayer::autobuffer): New.
25321         (WebCore::MediaPlayer::setAutobuffer): Ditto.
25322         * platform/graphics/MediaPlayer.h: Declare m_autobuffer, autobuffer and setAutobuffer
25323
25324         * platform/graphics/MediaPlayerPrivate.h:
25325         (WebCore::MediaPlayerPrivateInterface::setAutobuffer): Declare setAutobuffer.
25326
25327 2009-03-31  Craig Schlenter  <craig.schlenter@gmail.com>
25328
25329         Reviewed by Dimitri Glazkov.
25330
25331         https://bugs.webkit.org/show_bug.cgi?id=24550
25332         Check return value of vasprintf. This should keep gcc 4.3.3
25333         happy rather than have it complain about attribute warn_unused_result.
25334
25335         * dom/XMLTokenizerLibxml2.cpp:
25336         (WebCore::XMLTokenizer::error):
25337
25338 2009-03-31  Dean Jackson  <dino@apple.com>
25339
25340         Style guide violation!
25341
25342         * loader/MediaDocument.cpp:
25343         (WebCore::MediaDocument::defaultEventHandler):
25344
25345 2009-03-31  Dean Jackson  <dino@apple.com>
25346
25347         Fix Tiger build.
25348
25349         * loader/MediaDocument.cpp:
25350         (WebCore::MediaDocument::defaultEventHandler):
25351
25352 2009-03-31  Jian Li  <jianli@chromium.org>
25353
25354         Reviewed by Darin Fisher.
25355
25356         Upstream V8DOMMap for v8 bindings.
25357         https://bugs.webkit.org/show_bug.cgi?id=24951
25358
25359         * bindings/v8/V8DOMMap.cpp: Added.
25360         * bindings/v8/V8DOMMap.h: Added.
25361
25362 2009-03-31  Dean Jackson  <dino@apple.com>
25363
25364         Reviewed by Simon Fraser.
25365
25366         https://bugs.webkit.org/show_bug.cgi?id=24955
25367
25368         Spacebar didn't play/pause in standalone MediaDocument
25369
25370         * loader/MediaDocument.cpp:
25371         (WebCore::MediaDocument::defaultEventHandler):
25372
25373 2009-03-31  Alpha Lam  <hclam@chromium.org>
25374
25375         Reviewed by Eric Seidel.
25376
25377         https://bugs.webkit.org/show_bug.cgi?id=24901
25378         Added the following methods to MediaPlayerPrivate for Chromium port.
25379         void sizeChanged();
25380         void rateChanged();
25381         void durationChanged();
25382
25383         The above changes are to reflect changes in MediaPlayer.cpp.
25384         More details can be found in the original changeset.
25385         http://trac.webkit.org/changeset/41907
25386
25387         * platform/graphics/chromium/MediaPlayerPrivateChromium.h:
25388
25389 2009-03-31  Rafael Weinstein  <rafaelw@chromium.org>
25390
25391         Reviewed by Eric Seidel.
25392
25393         https://bugs.webkit.org/show_bug.cgi?id=24947
25394
25395         Special-case drawing text-shadow on win32, to let GDI draw in cases
25396         when both fill & shadow color are opaque and the shadow has no blur.
25397
25398         * platform/graphics/chromium/FontChromiumWin.cpp:
25399         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
25400         (WebCore::Font::drawComplexText):
25401         * platform/graphics/skia/SkiaFontWin.cpp:
25402         (WebCore::windowsCanHandleDrawTextShadow):
25403         (WebCore::windowsCanHandleTextDrawing):
25404         * platform/graphics/skia/SkiaFontWin.h:
25405
25406 2009-03-31  Jeremy Moskovich  <jeremy@chromium.org>
25407
25408         Reviewed by Darin Fisher.
25409
25410         r42055 removed some functions in FrameLoader used by Chrome,
25411         this CL backs out some of those changes to unbreak the Chrome build.
25412
25413         https://bugs.webkit.org/show_bug.cgi?id=24949
25414
25415         * WebCore.base.exp:
25416         * loader/FrameLoader.cpp:
25417         * loader/FrameLoader.h:
25418
25419 2009-03-31  Jeremy Moskovich  <jeremy@chromium.org>
25420
25421         Reviewed by Darin Adler.
25422
25423         Build fixes for Chromium.
25424
25425         https://bugs.webkit.org/show_bug.cgi?id=24945
25426
25427         * dom/Document.h:
25428         * platform/chromium/ClipboardChromium.cpp:
25429         (WebCore::imageToMarkup):
25430
25431 2009-03-31  Simon Hausmann  <simon.hausmann@nokia.com>
25432
25433         Fix the Qt build.
25434
25435         * dom/XMLTokenizerQt.cpp:
25436         (WebCore::XMLTokenizer::XMLTokenizer): Use NamedNodeMap instead of NamedAttrMap.
25437
25438 2009-03-30  Steve Falkenburg  <sfalken@apple.com>
25439
25440         Don't create CFDataRef with a fixed size.
25441         Fixes synchronous XMLHTTPRequests on Windows.
25442         
25443         Reviewed by Ada Chan.
25444
25445         * platform/network/cf/ResourceHandleCFNet.cpp:
25446         (WebCore::WebCoreSynchronousLoader::didReceiveData):
25447
25448 2009-03-30  Darin Adler  <darin@apple.com>
25449
25450         Reviewed by Sam Weinig.
25451
25452         Bug 24594: PolicyDelegate NavigationAction is WebNavigationTypeOther instead of WebNavigationTypeReload
25453         https://bugs.webkit.org/show_bug.cgi?id=24594
25454         rdar://problem/6682110
25455
25456         Test: fast/loader/reload-policy-delegate.html
25457
25458         * loader/FrameLoader.cpp:
25459         (WebCore::FrameLoader::loadWithDocumentLoader): Set the triggering action here where we know it's
25460         the policy loader and can use m_policyLoadType rather than letting it get set inside
25461         checkNavigationPolicy.
25462
25463 2009-03-30  Timothy Hatcher  <timothy@apple.com>
25464
25465         <rdar://problem/5838871> CrashTracer: 1483 crashes Quicklooking
25466         in Finder (painting without up to date layout)
25467
25468         Reviewed by Dan Bernstein.
25469
25470         * page/FrameView.cpp:
25471         (WebCore::FrameView::paintContents): Add an early return when
25472         painting is attempted when layout is needed.
25473
25474 2009-03-30  Greg Bolsinga  <bolsinga@apple.com>
25475
25476         Reviewed by Simon Fraser.
25477
25478         https://bugs.webkit.org/show_bug.cgi?id=24938
25479         
25480         Sort alphabetically.
25481
25482         * css/CSSComputedStyleDeclaration.cpp:
25483         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
25484
25485 2009-03-30  Greg Bolsinga  <bolsinga@apple.com>
25486
25487         Reviewed by Simon Fraser.
25488
25489         https://bugs.webkit.org/show_bug.cgi?id=24938
25490         
25491         Build fixes for building --3d-rendering and --no-svg
25492
25493         * rendering/RenderLayerBacking.cpp:
25494
25495 2009-03-30  Greg Bolsinga  <bolsinga@apple.com>
25496
25497         Reviewed by Simon Fraser.
25498         
25499         https://bugs.webkit.org/show_bug.cgi?id=24938
25500
25501         Build fixes when building --no-svg
25502         
25503         * css/CSSComputedStyleDeclaration.cpp:
25504         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add missing CSS properties
25505         * css/CSSCursorImageValue.cpp:
25506         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Handle unused param
25507         * css/CSSParser.cpp:
25508         (WebCore::CSSParser::parseValue): Add missing CSS properties
25509         * css/CSSStyleSelector.cpp:
25510         (WebCore::CSSStyleSelector::applyProperty): Add missing CSS properties
25511         * dom/Node.cpp:
25512         (WebCore::updateSVGElementInstancesAfterEventListenerChange): Handle unused param
25513         * platform/graphics/Font.cpp:
25514         (WebCore::Font::floatWidth): Handle unused param
25515         * platform/graphics/SimpleFontData.cpp:
25516         (WebCore::SimpleFontData::SimpleFontData): Handle unused param
25517
25518 2009-03-30  Darin Adler  <darin@apple.com>
25519
25520         Reviewed by Adam Roben.
25521
25522         Bug 24916: REGRESSION: NavigationAction policy dispatch broken
25523         https://bugs.webkit.org/show_bug.cgi?id=24916
25524
25525         * loader/FrameLoader.cpp:
25526         (WebCore::FrameLoader::loadURL): Rearrange the code so that the "event" PassRefPtr
25527         is not used twice. This also optimizes the case where a frame name is specified,
25528         but it's the name of the frame being loaded. Also called release in all the final
25529         uses of FormState.
25530
25531 2009-03-30  Darin Adler  <darin@apple.com>
25532
25533         Reviewed by Adam Roben.
25534
25535         Bug 24937: NamedNodeMap and NamedAttrMap should not be separate classes
25536         https://bugs.webkit.org/show_bug.cgi?id=24937
25537
25538         Also should fix the Windows COM bindings build.
25539
25540         * bindings/scripts/CodeGeneratorJS.pm: Removed special case for NamedNodeMap.
25541         * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
25542
25543         * dom/NamedAttrMap.h: Renamed class from NamedAttrMap to
25544         NamedNodeMap and removed NamedNodeMap base class. Made the NamedNodeMap
25545         functions all public and non-virtual. Removed virtualLength.
25546
25547         * dom/NamedNodeMap.h: Replaced file with just an include
25548         of NamedAttrMap.h. As a follow up we will rename the NamedAttrMap
25549         files and remove this file.
25550
25551         * bindings/js/JSNamedNodesCollection.cpp: Renamed from NamedAttrMap to NamedNodeMap.
25552         * dom/Attr.h: Ditto.
25553         * dom/Attribute.h: Ditto.
25554         * dom/Document.cpp:
25555         (WebCore::Document::importNode): Ditto.
25556         * dom/Element.cpp:
25557         (WebCore::Element::attributes): Ditto.
25558         (WebCore::Element::setAttributeMap): Ditto.
25559         (WebCore::Element::createAttributeMap): Ditto.
25560         (WebCore::Element::insertedIntoDocument): Ditto.
25561         (WebCore::Element::removedFromDocument): Ditto.
25562         (WebCore::Element::openTagStartToString): Ditto.
25563         (WebCore::Element::removeAttributeNode): Ditto.
25564         (WebCore::Element::getAttributeNode): Ditto.
25565         (WebCore::Element::getAttributeNodeNS): Ditto.
25566         (WebCore::Element::hasAttribute): Ditto.
25567         (WebCore::Element::hasAttributeNS): Ditto.
25568         (WebCore::Element::normalizeAttributes): Ditto.
25569         * dom/Element.h: Ditto.
25570         * dom/NamedAttrMap.cpp:
25571         (WebCore::NamedNodeMap::detachAttributesFromElement): Ditto.
25572         (WebCore::NamedNodeMap::~NamedNodeMap): Ditto.
25573         (WebCore::NamedNodeMap::isMappedAttributeMap): Ditto.
25574         (WebCore::NamedNodeMap::getNamedItem): Ditto.
25575         (WebCore::NamedNodeMap::getNamedItemNS): Ditto.
25576         (WebCore::NamedNodeMap::removeNamedItem): Ditto.
25577         (WebCore::NamedNodeMap::removeNamedItemNS): Ditto.
25578         (WebCore::NamedNodeMap::setNamedItem): Ditto.
25579         (WebCore::NamedNodeMap::item): Ditto.
25580         (WebCore::NamedNodeMap::getAttributeItem): Ditto.
25581         (WebCore::NamedNodeMap::clearAttributes): Ditto.
25582         (WebCore::NamedNodeMap::detachFromElement): Ditto.
25583         (WebCore::NamedNodeMap::setAttributes): Ditto.
25584         (WebCore::NamedNodeMap::addAttribute): Ditto.
25585         (WebCore::NamedNodeMap::removeAttribute): Ditto.
25586         (WebCore::NamedNodeMap::mapsEquivalent): Ditto.
25587         * dom/NamedMappedAttrMap.cpp:
25588         (WebCore::NamedMappedAttrMap::clearAttributes): Ditto.
25589         * dom/NamedMappedAttrMap.h:
25590         (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Ditto.
25591         * dom/Node.cpp:
25592         (WebCore::Node::dumpStatistics): Ditto.
25593         (WebCore::Node::isEqualNode): Ditto.
25594         (WebCore::Node::isDefaultNamespace): Ditto.
25595         (WebCore::Node::lookupNamespaceURI): Ditto.
25596         (WebCore::Node::lookupNamespacePrefix): Ditto.
25597         (WebCore::Node::compareDocumentPosition): Ditto.
25598         * dom/Node.h: Ditto.
25599         * dom/XMLTokenizerLibxml2.cpp:
25600         (WebCore::XMLTokenizer::XMLTokenizer): Ditto.
25601         * editing/ApplyStyleCommand.cpp:
25602         (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): Ditto.
25603         (WebCore::isEmptyFontTag): Ditto.
25604         (WebCore::areIdenticalElements): Ditto.
25605         * editing/markup.cpp:
25606         (WebCore::appendStartMarkup): Ditto.
25607         (WebCore::completeURLs): Ditto.
25608         * html/HTMLParser.cpp:
25609         (WebCore::HTMLParser::handleError): Ditto.
25610         * rendering/RenderPartObject.cpp:
25611         (WebCore::RenderPartObject::updateWidget): Ditto.
25612         * svg/SVGAnimatedProperty.h:
25613         (WebCore::synchronizeProperty): Ditto.
25614         * xml/XPathFunctions.cpp:
25615         (WebCore::XPath::FunLang::evaluate): Ditto.
25616         * xml/XPathStep.cpp:
25617         (WebCore::XPath::Step::nodesInAxis): Ditto.
25618
25619 2009-03-30  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
25620
25621         Reviewed by Holger Freyther.
25622
25623         https://bugs.webkit.org/show_bug.cgi?id=24750
25624         [GTK] requests download instead of displaying page
25625
25626         Use soup facilities to append parameters to the content type, to
25627         make that more robust;
25628
25629         * platform/network/soup/ResourceHandleSoup.cpp:
25630         (WebCore::fillResponseFromMessage):
25631
25632 2009-03-30  David Kilzer  <ddkilzer@apple.com>
25633
25634         <rdar://problem/6735683> Move SECTORDER_FLAGS from Xcode project to WebCore.xcconfig
25635
25636         Reviewed by Timothy Hatcher, Mark Rowe and Darin Adler.
25637
25638         * Configurations/Base.xcconfig: Moved Production definition of
25639         SECTORDER_FLAGS to here from Xcode project file.
25640         * Configurations/DebugRelease.xcconfig: Override SECTORDER_FLAGS
25641         in Base.xcconfig to the empty string since it is not used for
25642         Debug and Release configurations.
25643         * WebCore.xcodeproj/project.pbxproj: Removed SECTORDER_FLAGS.
25644
25645 2009-03-30  Adam Roben  <aroben@apple.com>
25646
25647         Windows build fix after recent Node.idl changes
25648
25649         * bindings/scripts/CodeGeneratorCOM.pm: Touched this to force sources
25650         of classes that derive from Node to rebuild.
25651
25652 2009-03-30  Adam Roben  <aroben@apple.com>
25653
25654         Windows build fix
25655
25656         * svg/graphics/SVGImage.cpp: Added a missing #include.
25657
25658 2009-03-30  Mads Ager  <ager@chromium.org>
25659
25660         Reviewed by Darin Adler.
25661
25662         https://bugs.webkit.org/show_bug.cgi?id=24879
25663         Add frame accessor to Screen, Console, and BarInfo objects. Add type 
25664         accessor to BarInfo objects.
25665
25666         In the V8 JavaScript bindings, we need access to the frame and
25667         type for already created Screen, Console, and BarInfo objects in
25668         order to keep their wrappers alive across GCs.
25669
25670         * page/BarInfo.cpp:
25671         (WebCore::BarInfo::frame): Added.
25672         (WebCore::BarInfo::type): Added.
25673         * page/BarInfo.h:
25674         * page/Console.cpp:
25675         (WebCore::Console::frame): Added.
25676         * page/Console.h:
25677         * page/Screen.cpp:
25678         (WebCore::Screen::frame): Added.
25679         * page/Screen.h:
25680
25681 2009-03-29  Darin Adler  <darin@apple.com>
25682
25683         Requested by Antti Koivisto.
25684
25685         * loader/DocumentLoader.cpp:
25686         (WebCore::DocumentLoader::subresource): Tweaked code to be a little clearer and added
25687         a better comment.
25688
25689 2009-03-29  Darin Adler  <darin@apple.com>
25690
25691         Reviewed by Dan Bernstein.
25692
25693         Bug 23445: Copying certain hidden text causes a crash
25694         https://bugs.webkit.org/show_bug.cgi?id=23445
25695         rdar://problem/6512520
25696
25697         Test: editing/pasteboard/copy-display-none.html
25698
25699         * editing/markup.cpp:
25700         (WebCore::createMarkup): Added a check for the case where adjusting the start node moves
25701         the start of the selection past the end of the range entirely. If we try to iterate we'll
25702         never hit the end of the range and will probably crash iterating the rest of the document.
25703
25704 2009-03-29  Darin Adler  <darin@apple.com>
25705
25706         Reviewed by Dan Bernstein.
25707
25708         Bug 24672: ASSERTION FAILURE: !m_purgeableData in WebCore::CachedResource::data() saving a WebArchive
25709         https://bugs.webkit.org/show_bug.cgi?id=24672
25710         rdar://problem/6574263
25711
25712         I couldn't create a test case for this. In fact, the case in the bug doesn't exist any more,
25713         but there is an Apple-internal website I was able to use to reproduce and fix.
25714
25715         * loader/CachedResource.h: Made makePurgeable public.
25716         * loader/DocumentLoader.cpp:
25717         (WebCore::DocumentLoader::subresource): Call makePurgeable to make the resource non-purgeable
25718         so we can get its data if it hasn't yet been purged.
25719
25720 2009-03-29  Darin Adler  <darin@apple.com>
25721
25722         Fix build again.
25723
25724         * loader/EmptyClients.h: Fix typo in name of FormState.h.
25725
25726 2009-03-29  Darin Adler  <darin@apple.com>
25727
25728         Try to fix the release build.
25729
25730         * history/CachedPage.cpp: Make include unconditional, not debug-only.
25731
25732 2009-03-29  Greg Bolsinga  <bolsinga@apple.com>
25733
25734         Undo that last build fix, since it turned out the file wasn't deleted.
25735
25736         * WebCore.xcodeproj/project.pbxproj:
25737
25738 2009-03-29  Greg Bolsinga  <bolsinga@apple.com>
25739
25740         Fix build break by removing references to deleted header files.
25741
25742         * WebCore.xcodeproj/project.pbxproj:
25743
25744 2009-03-29  Darin Adler  <darin@apple.com>
25745
25746         Try to fix the Windows build.
25747
25748         * loader/EmptyClients.h: Added include of FormState.h.
25749         * loader/MainResourceLoader.cpp: Ditto.
25750
25751 2009-03-29  Dmitry Titov  <dimich@chromium.org>
25752
25753         Reviewed by Darin Adler.
25754
25755         https://bugs.webkit.org/show_bug.cgi?id=24926
25756         Fix Chromium build break.
25757
25758         * bindings/v8/custom/V8DOMWindowCustom.cpp:
25759         (WebCore::CALLBACK_FUNC_DECL(DOMWindowShowModalDialog)): renamed 'features' into 'windowFeatures'.
25760
25761 2009-03-29  Darin Adler  <darin@apple.com>
25762
25763         Another attempt to fix the Qt build.
25764
25765         * WebCore.pro: Added CheckedRadioButtons.cpp.
25766
25767 2009-03-29  Darin Adler  <darin@apple.com>
25768
25769         Reviewed by Cameron Zwarich.
25770
25771         Bug 24921: remove include of HTMLFormElement.h from Document.h
25772         https://bugs.webkit.org/show_bug.cgi?id=24921
25773
25774         * GNUmakefile.am: Added CheckedRadioButtons source files.
25775         * WebCore.scons: Ditto.
25776         * WebCore.vcproj/WebCore.vcproj: Ditto.
25777         * WebCore.xcodeproj/project.pbxproj: Ditto.
25778         * WebCoreSources.bkl: Ditto.
25779
25780         * bindings/objc/PublicDOMInterfaces.h: Changed type of parentElement to Element.
25781
25782         * dom/CheckedRadioButtons.cpp: Copied from WebCore/html/HTMLFormElement.cpp.
25783         Removed all the code except for CheckedRadioButtons, and moved that out to be
25784         a namespace-level class instead of a member of HTMLFormElement.
25785
25786         * dom/CheckedRadioButtons.h: Copied from WebCore/html/HTMLFormElement.h.
25787         Removed all the code except for CheckedRadioButtons, and moved that out to be
25788         a namespace-level class instead of a member of HTMLFormElement.
25789
25790         * dom/Document.h: Removed unneeded includes, including HTMLFormElement.h.
25791         Added include of CheckedRadioButtons.h. Changed uses of CheckedRadioButtons
25792         class to use a namespace-level class instead of a member of HTMLFormElement.
25793
25794         * dom/Node.idl: Changed the type of parentElement from Node to Element for
25795         two reasons. 1) Node was incorrect, since parentElement returns an Element.
25796         2) The bindings won't compile any more unless they know parentElement's
25797         return value is an Element due to include changes.
25798
25799         * html/HTMLFormElement.cpp: Moved definitions of the functions in the
25800         CheckedRadioButtons class to the new CheckedRadioButtons.cpp.
25801
25802         * html/HTMLFormElement.h: Moved definition of the CheckedRadioButtons
25803         class to the new CheckedRadioButtons.h.
25804
25805         * html/HTMLInputElement.cpp:
25806         (WebCore::checkedRadioButtons): Changed use of CheckedRadioButtons
25807         class to use a namespace-level class instead of a member of HTMLFormElement.
25808
25809         * page/Chrome.cpp:
25810         (WebCore::Chrome::createWindow): Tweaked formatting.
25811
25812         * css/CSSGrammar.y: Added newly-needed include.
25813         * dom/Range.cpp: Ditto.
25814         * editing/BreakBlockquoteCommand.cpp: Ditto.
25815         * editing/CompositeEditCommand.cpp: Ditto.
25816         * editing/InsertLineBreakCommand.cpp: Ditto.
25817         * editing/ModifySelectionListLevel.cpp: Ditto.
25818         * editing/RemoveFormatCommand.cpp: Ditto.
25819         * editing/TextIterator.cpp: Ditto.
25820         * editing/VisiblePosition.cpp: Ditto.
25821         * loader/DocLoader.cpp: Ditto.
25822         * page/AccessibilityRenderObject.cpp: Ditto.
25823         * page/Page.cpp: Ditto.
25824         * rendering/RenderBlock.cpp: Ditto.
25825         * rendering/RenderLayer.cpp: Ditto.
25826         * rendering/RenderObject.h: Ditto.
25827         * storage/LocalStorageArea.cpp: Ditto.
25828         * storage/SessionStorageArea.cpp: Ditto.
25829
25830 2009-03-29  Darin Adler  <darin@apple.com>
25831
25832         Reviewed by Dan Bernstein.
25833
25834         <rdar://problem/6015407> attr parsing should allow only identifiers
25835
25836         Test: fast/css/attr-parsing.html
25837
25838         * css/CSSParser.cpp:
25839         (WebCore::CSSParser::parseContent): Allow only CSS_IDENT, and filter out
25840         identifiers that start with "-".
25841         * css/CSSPrimitiveValue.cpp:
25842         (WebCore::CSSPrimitiveValue::cssText): Added a case for CSS_ATTR so the test
25843         case works. This has the pleasant side effect of fixing a bug too.
25844
25845 2009-03-29  Alexey Proskuryakov  <ap@webkit.org>
25846
25847         <rdar://problem/6492712> Cross-origin redirects are not handled correctly.
25848
25849         Forgot to save the file after applying changes for review comments.
25850
25851         * platform/network/cf/ResourceHandleCFNet.cpp:
25852         (WebCore::willSendRequest):
25853         (WebCore::didReceiveResponse):
25854         (WebCore::didReceiveData):
25855         (WebCore::didSendBodyData):
25856         (WebCore::didFinishLoading):
25857         (WebCore::didFail):
25858         (WebCore::willCacheResponse):
25859         (WebCore::didReceiveChallenge):
25860         (WebCore::WebCoreSynchronousLoader::willSendRequest):
25861         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
25862         (WebCore::WebCoreSynchronousLoader::didReceiveData):
25863         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
25864         (WebCore::WebCoreSynchronousLoader::didFail):
25865         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
25866
25867 2009-03-28  Alexey Proskuryakov  <ap@webkit.org>
25868
25869         Reviewed by Darin Adler.
25870
25871         <rdar://problem/6492712> Cross-origin redirects are not handled correctly.
25872
25873         Test: http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html
25874
25875         * platform/network/cf/ResourceHandleCFNet.cpp:
25876         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
25877         (WebCore::ResourceHandle::loadResourceSynchronously):
25878         (WebCore::WebCoreSynchronousLoader::willSendRequest):
25879         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
25880         (WebCore::WebCoreSynchronousLoader::didReceiveData):
25881         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
25882         (WebCore::WebCoreSynchronousLoader::didFail):
25883         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
25884         (WebCore::WebCoreSynchronousLoader::load):
25885         Match Mac behavior more closely - we shouldn't rely on underlying library handling of
25886         synchronous requests.
25887
25888         * loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::willSendRequest):
25889         -[NSURLConnection cancel] doesn't fully cancel the connection if called from willSendRequest
25890         delegate method for a redirect.
25891
25892         * platform/network/mac/ResourceHandleMac.mm:
25893         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]):
25894         Match async behavior more closely.
25895
25896 2009-03-28  Darin Adler  <darin@apple.com>
25897
25898         Reviewed by Mark Rowe.
25899
25900         Bug 24914: empty-string assertion crash when running storage tests
25901         https://bugs.webkit.org/show_bug.cgi?id=24914
25902
25903         * storage/Database.cpp:
25904         (WebCore::Database::performOpenAndVerify): Don't store empty version strings
25905         in the map, since empty strings are per-thread.
25906
25907 2009-03-28  Dmitry Titov  <dimich@chromium.org>
25908
25909         Reviewed by Dimitri Glazkov.
25910
25911         https://bugs.webkit.org/show_bug.cgi?id=24910
25912         Fixes for Chromium build.
25913
25914         * bindings/v8/V8LazyEventListener.h: renamed IsInline() into virtualIsInline()
25915         * bindings/v8/custom/V8CustomEventListener.h: ditto.
25916         * dom/EventListener.h: used #if USE(JSC) to fix the build on non-JSC platform.
25917
25918 2009-03-28  Dimitri Glazkov  <dglazkov@chromium.org>
25919
25920         Not reviewed, correcting landing error.
25921
25922         https://bugs.webkit.org/show_bug.cgi?id=24812
25923         Custom bindings should be in v8/custom, not v8.
25924
25925         * bindings/v8/V8HTMLDocumentCustom.cpp: Removed.
25926         * bindings/v8/custom/V8HTMLDocumentCustom.cpp: Moved from parent dir.
25927
25928 2009-03-28  Mike Belshe  <mike@belshe.com>
25929
25930         Reviewed by Dimitri Glazkov.
25931
25932         https://bugs.webkit.org/show_bug.cgi?id=24616
25933         Add V8 custom bindings for DOMWindow.
25934
25935         * bindings/v8/custom/V8DOMWindowCustom.cpp: Added.
25936
25937 2009-03-28  Mike Belshe  <mike@belshe.com>
25938
25939         Reviewed by Dimitri Glazkov.
25940
25941         https://bugs.webkit.org/show_bug.cgi?id=24812
25942         Add V8 custom bindings for HTMLDocument.
25943
25944         * bindings/v8/V8HTMLDocumentCustom.cpp: Added.
25945
25946 2009-03-27  Mark Rowe  <mrowe@apple.com>
25947
25948         Reviewed by Sam Weinig.
25949
25950         Fix two SVG test failures in 64-bit.
25951
25952         getSubStringLength's arguments were declared as unsigned in the IDL and as signed long in the implementation.
25953         This led to a value of -1 in JavaScript being converted to MAX_UINT in the bindings.  In 32-bit this was
25954         identical to -1 when interpeted as signed long, but in 64-bit it was still equal to MAX_UINT.
25955
25956         The solution for this is to use the IsIndex attribute on arguments that the SVG spec declares as "unsigned long"
25957         but requires an exception be thrown when a negative value is passed.  This results in the JS bindings handling the
25958         check for a negative value and lets the implementation treat the arguments purely as unsigned values.
25959
25960         * svg/SVGTextContentElement.cpp:
25961         (WebCore::SVGTextContentElement::getNumberOfChars):
25962         (WebCore::SVGTextContentElement::getSubStringLength):
25963         (WebCore::SVGTextContentElement::getStartPositionOfChar):
25964         (WebCore::SVGTextContentElement::getEndPositionOfChar):
25965         (WebCore::SVGTextContentElement::getExtentOfChar):
25966         (WebCore::SVGTextContentElement::getRotationOfChar):
25967         (WebCore::SVGTextContentElement::getCharNumAtPosition):
25968         (WebCore::SVGTextContentElement::selectSubString):
25969         * svg/SVGTextContentElement.h:
25970         * svg/SVGTextContentElement.idl:
25971
25972 2009-03-27  Darin Adler  <darin@apple.com>
25973
25974         Reviewed by Sam Weinig.
25975
25976         Get mailto code out of FrameLoader.
25977
25978         * html/HTMLFormElement.cpp:
25979         (WebCore::transferMailtoPostFormDataToURL): Added. Factored out the mailto
25980         logic so HTMLFormElement::submit isn't full of ugly bits. This includes the
25981         part of the logic that involves transformeing the URL that was previously
25982         inside FrameLoader.
25983         (WebCore::HTMLFormElement::submit): Call transferMailtoPostFormDataToURL and
25984         also release the data for slightly less refcount churn.
25985
25986         * loader/FrameLoader.cpp:
25987         (WebCore::FrameLoader::submitForm): Removed all the special casing for mailto,
25988         since HTMLFormElement now properly prepares both the URL and the form data.
25989
25990 2009-03-27  Dan Bernstein  <mitz@apple.com>
25991
25992         Reviewed by Mark Rowe.
25993
25994         - fix <rdar://problem/6724514> A bit of OpenTypeUtilities cleanup
25995
25996         * platform/graphics/chromium/FontCustomPlatformData.cpp:
25997         (WebCore::EOTStream::EOTStream): Changed to use EOTHeader.
25998         (WebCore::createFontCustomPlatformData): Ditto.
25999         * platform/graphics/opentype/OpenTypeUtilities.cpp:
26000         (WebCore::EOTHeader::EOTHeader): Added. Initializes the buffer size to
26001         the size of an EOTPrefix.
26002         (WebCore::EOTHeader::updateEOTSize): Added. Updates the size field in
26003         the prefix.
26004         (WebCore::EOTHeader::appendBigEndianString): Changed the static
26005         appendBigEndianStringToEOTHeader() into this member function.
26006         (WebCore::EOTHeader::appendPaddingShort): Added.
26007         (WebCore::getEOTHeader): Changed to use EOTHeader.
26008         * platform/graphics/opentype/OpenTypeUtilities.h:
26009         (WebCore::EOTHeader::size):
26010         (WebCore::EOTHeader::data):
26011         (WebCore::EOTHeader::prefix):
26012         * platform/graphics/win/FontCustomPlatformData.cpp:
26013         (WebCore::EOTStream::EOTStream): Changed to use EOTHeader.
26014         (WebCore::createFontCustomPlatformData): Ditto.
26015
26016 2009-03-27  Darin Adler  <darin@apple.com>
26017
26018         Reviewed by Sam Weinig.
26019
26020         To prepare for work on a form loading fix, remove some unused functions,
26021         consolidate some functions, and make many more functions private in
26022         FrameLoader.
26023
26024         * WebCore.base.exp: Remove some unused entry points, update another.
26025
26026         * dom/Document.cpp:
26027         (WebCore::Document::detach): Clear m_frame directly instead of using
26028         clearFramePointer.
26029         * dom/Document.h: Ditto.
26030
26031         * loader/FrameLoader.cpp:
26032         (WebCore::FrameLoader::urlSelected): Consolidate the two functions
26033         of this name into a single function. Also changed the event argument
26034         to be PassRefPtr<Event>.
26035         (WebCore::FrameLoader::submitForm): Changed the event argument to
26036         be PassRefPtr<Event>.
26037         (WebCore::FrameLoader::scheduleLocationChange): Call completeURL
26038         explicitly so we can remove the version of changeLocation that does
26039         completeURL for us.
26040         (WebCore::FrameLoader::redirectionTimerFired): Ditto.
26041         (WebCore::FrameLoader::loadURLIntoChildFrame): Set m_provisionalHistoryItem
26042         directly so we don't need a setProvisionalHistoryItem function.
26043         (WebCore::FrameLoader::canCachePageContainingThisFrame): Get at
26044         m_quickRedirectComing directly so we don't need a isQuickRedirectComing
26045         function.
26046         (WebCore::FrameLoader::logCanCacheFrameDecision): Ditto.
26047         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues): Changed the
26048         event argument to be PassRefPtr<Event>.
26049         (WebCore::FrameLoader::loadURL): Move the logic of the continueLoadWithData
26050         function here because this is the only caller. If we want to make the
26051         resulting function smaller we should refactor some other way. Also
26052         streamlined the user-chosen encoding logic, but did not change what it does.
26053         (WebCore::FrameLoader::finishedLoadingDocument): Changed the event argument
26054         to be PassRefPtr<Event>.
26055         (WebCore::FrameLoader::loadPostRequest): Ditto.
26056         (WebCore::FrameLoader::receivedMainResourceError): Moved the logic from
26057         the didNotOpenURL function here, since this was the only caller.
26058
26059         * loader/FrameLoader.h: Removed include of FormState.h and used a forward
26060         declaration instead. Removed unneeded forward declation of Element.
26061         Moved many functions into the private section, and removed some other
26062         unused or uneeded functions.
26063
26064 2009-03-27  Xiaomei Ji  <xji@chromium.org>
26065
26066         Reviewed by Dan Bernstein.
26067
26068         Fix https://bugs.webkit.org/show_bug.cgi?id=24303
26069         Using keyboard select RTL text, Highlights goes to opposite direction from Firefox and IE.
26070
26071         Test: editing/selection/extend-selection.html
26072
26073         * editing/SelectionController.cpp:
26074         (WebCore::SelectionController::directionOfEnclosingBlock): Added
26075         (WebCore::SelectionController::modifyExtendingRight): Added. Currenctly 
26076         implemented for character and word granularity, all other granularities
26077         are treated as "forward".
26078         (WebCore::SelectionController::modifyExtendingForward): Renamed 
26079         modifyExtendingRightForward() to this.
26080         (WebCore::SelectionController::modifyExtendingLeft): Added. Currenctly
26081         implemented for character and word granularity, all other granularities
26082         are treated as "backward".
26083         (WebCore::SelectionController::modifyExtendingBackward): Renamed
26084         modifyExtendingLeftBackward() to this.
26085         (WebCore::SelectionController::modify): Change to call either the 
26086         left/right or backward/forward methods depending on the 'dir' argument
26087         for extends.
26088         * editing/SelectionController.h:
26089
26090 2009-03-27  John Abd-El-Malek  <jam@google.com>
26091
26092         Reviewed by Eric Seidel.
26093
26094         https://bugs.webkit.org/show_bug.cgi?id=24836
26095         Fix navigator.plugins.refresh(false) in Chromium.
26096
26097         * plugins/chromium/PluginDataChromium.cpp:
26098         (WebCore::PluginData::refresh):
26099
26100 2009-03-27  Timothy Hatcher  <timothy@apple.com>
26101
26102         Make scrollLeft, scrollTop, scrollWidth, and scrollHeight
26103         virtual to fix the broken layout tests from my last commit.
26104
26105         Reviewed by Mark Rowe.
26106
26107         * dom/Element.cpp:
26108         (WebCore::Element::scrollLeft):
26109         (WebCore::Element::scrollTop):
26110         (WebCore::Element::scrollWidth):
26111         (WebCore::Element::scrollHeight):
26112         * dom/Element.h:
26113         * html/HTMLBodyElement.h:
26114
26115 2009-03-27  Mark Rowe  <mrowe@apple.com>
26116
26117         Reviewed by Sam Weinig.
26118
26119         Fix <https://bugs.webkit.org/show_bug.cgi?id=24876>.
26120         Bug 24876: fast/forms/select-max-length.html times out in debug builds due to HTMLSelectElement::setLength being O(N^2)
26121
26122         * html/HTMLSelectElement.cpp:
26123         (WebCore::HTMLSelectElement::setLength): Repeatedly calling remove to remove elements causes us to recalculate the list
26124         items after each node is removed, leading to O(N^2) behaviour.  By inlining the batch removal in to setLength we can avoid
26125         this gratuitous recalcuation.
26126
26127 2009-03-27  Dirk Schulze  <krit@webkit.org>
26128
26129         Reviewed by Eric Seidel.
26130
26131         We don't support images for GtkCursors yet. We need a  placeholder to avoid crashes.
26132         I took crosshair to have a common behavior with firefox.
26133
26134         [GTK] SVG - Crash on setting the cursor icon
26135         https://bugs.webkit.org/show_bug.cgi?id=24565
26136
26137         * platform/gtk/CursorGtk.cpp:
26138         (WebCore::Cursor::Cursor):
26139
26140 2009-03-27  Timothy Hatcher  <timothy@apple.com>
26141
26142         Remove redundant attributes and functions from IDL files that have the
26143         same attributes and functions defined in the super class.
26144
26145         Reviewed by Simon Fraser.
26146
26147         * WebCore.xcodeproj/project.pbxproj: Remove DOMHTMLBodyElementPrivate.h.
26148         * bindings/objc/PublicDOMInterfaces.h: Remove focus and blur from DOMHTMLElement.
26149         * html/HTMLBodyElement.idl: Remove scrollLeft, scrollTop, scrollWidth
26150         and scrollHeight.
26151         * html/HTMLElement.idl: Remove blur and focus.
26152
26153 2009-03-27  Adam Roben  <aroben@apple.com>
26154
26155         Don't include substitute data URLs in global history redirect chains
26156
26157         <rdar://6690169>
26158
26159         Reviewed by Darin Adler.
26160
26161         This might be testable if:
26162           - support were added to DRT for providing substitute data on failed
26163             loads
26164           - support were added to DRT for dumping redirect chains
26165
26166         I tried doing the above and was still unable to make a test.
26167
26168         * loader/FrameLoader.cpp:
26169         (WebCore::FrameLoader::updateHistoryForStandardLoad):
26170         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedBackForwardList):
26171         Call updateGlobalHistoryRedirectLinks only if the load succeeded
26172         (i.e., there is no unreachableURL). Previous the FrameLoaderClient
26173         implementations were unconditionally calling
26174         updateGlobalHistoryRedirectLinks from within updateGlobalHistory.
26175
26176 2009-03-27  Peter Kasting  <pkasting@google.com>
26177
26178         Reviewed by Eric Seidel.
26179
26180         https://bugs.webkit.org/show_bug.cgi?id=24861
26181         Chromium port did not render decorations for <input type="search">.
26182         This copies RenderThemeWin.*.
26183
26184         * css/themeChromiumWin.css: Removed.
26185         * rendering/RenderThemeChromiumLinux.cpp:
26186         (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
26187         (WebCore::RenderThemeChromiumLinux::adjustSearchFieldCancelButtonStyle):
26188         (WebCore::RenderThemeChromiumLinux::paintSearchFieldCancelButton):
26189         (WebCore::RenderThemeChromiumLinux::adjustSearchFieldDecorationStyle):
26190         (WebCore::RenderThemeChromiumLinux::adjustSearchFieldResultsDecorationStyle):
26191         (WebCore::RenderThemeChromiumLinux::paintSearchFieldResultsDecoration):
26192         (WebCore::RenderThemeChromiumLinux::adjustSearchFieldResultsButtonStyle):
26193         (WebCore::RenderThemeChromiumLinux::paintSearchFieldResultsButton):
26194         * rendering/RenderThemeChromiumLinux.h:
26195         (WebCore::RenderThemeChromiumLinux::paintSearchField):
26196         * rendering/RenderThemeChromiumWin.cpp:
26197         (WebCore::):
26198         (WebCore::RenderThemeChromiumWin::extraDefaultStyleSheet):
26199         (WebCore::RenderThemeChromiumWin::adjustSearchFieldCancelButtonStyle):
26200         (WebCore::RenderThemeChromiumWin::paintSearchFieldCancelButton):
26201         (WebCore::RenderThemeChromiumWin::adjustSearchFieldDecorationStyle):
26202         (WebCore::RenderThemeChromiumWin::adjustSearchFieldResultsDecorationStyle):
26203         (WebCore::RenderThemeChromiumWin::paintSearchFieldResultsDecoration):
26204         (WebCore::RenderThemeChromiumWin::adjustSearchFieldResultsButtonStyle):
26205         (WebCore::RenderThemeChromiumWin::paintSearchFieldResultsButton):
26206         * rendering/RenderThemeChromiumWin.h:
26207         (WebCore::RenderThemeChromiumWin::paintSearchField):
26208
26209 2009-03-27  David Hyatt  <hyatt@apple.com>
26210
26211         Reviewed by Simon Fraser
26212
26213         If an object has a self-painting layer, don't count it as part of a block's visual overflow.
26214         This fix has only been made for block-level children.   The inline-level case is still broken
26215         (and covered by an existing bug).
26216
26217         Added fast/block/positioning/negative-rel-position.html
26218
26219         * rendering/InlineFlowBox.cpp:
26220         (WebCore::InlineFlowBox::placeBoxesVertically):
26221         * rendering/RenderBlock.cpp:
26222         (WebCore::RenderBlock::layoutBlockChildren):
26223         (WebCore::RenderBlock::lowestPosition):
26224         (WebCore::RenderBlock::rightmostPosition):
26225         (WebCore::RenderBlock::leftmostPosition):
26226
26227 2009-03-27  Anders Carlsson  <andersca@apple.com>
26228
26229         Reviewed by Darin Adler.
26230
26231         <rdar://problem/6642221>
26232         REGRESSION: With the Movie widget, movie trailer fails to load if movie had been previously viewed
26233         
26234         Add a dashboard specific workaround so that we always create renderers for object elements, even if display:none is set.
26235         
26236         I've filed <rdar://problem/6731022> against the Movies widget.
26237         
26238         * html/HTMLObjectElement.cpp:
26239         (WebCore::HTMLObjectElement::rendererIsNeeded):
26240
26241 2009-03-25  Timothy Hatcher  <timothy@apple.com>
26242
26243         Expose new DOM methods as public Objective-C API.
26244
26245         <rdar://problem/5837350> Expose new DOM classes and methods
26246         as public API (match the additions to the JavaScript DOM)
26247
26248         Reviewed by Mark Rowe and Darin Adler.
26249
26250         * WebCore.xcodeproj/project.pbxproj:
26251         * bindings/objc/DOMHTML.h:
26252         * bindings/objc/DOMPrivate.h:
26253         * bindings/objc/PublicDOMInterfaces.h:
26254
26255 2009-03-27  Zack Rusin <zack@kde.org>
26256
26257         Reviewed by Simon Hausmann.
26258
26259         https://bugs.webkit.org/show_bug.cgi?id=24280
26260
26261         Fix propagation of fill rules when rendering paths in the Qt build.
26262
26263         * platform/graphics/qt/GraphicsContextQt.cpp:
26264         (WebCore::toQtFillRule):
26265         (WebCore::GraphicsContext::fillPath):
26266         (WebCore::GraphicsContext::strokePath):
26267
26268 2009-03-27  Zack Rusin <zack@kde.org>
26269
26270         Reviewed by Tor Arne Vestbø.
26271
26272         https://bugs.webkit.org/show_bug.cgi?id=24275
26273
26274         Fix text field theming in the Qt build with the KDE 4 Oxygen
26275         style by adjusting the size vertically and horizontally to
26276         set padding on the element equal to the width of the style painted border.
26277
26278         * platform/qt/RenderThemeQt.cpp:
26279         (WebCore::RenderThemeQt::RenderThemeQt):
26280         (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
26281         (WebCore::RenderThemeQt::adjustTextFieldStyle):
26282         (WebCore::RenderThemeQt::paintTextField):
26283         * platform/qt/RenderThemeQt.h:
26284
26285 2009-03-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
26286
26287         Reviewed by Simon Hausmann.
26288
26289         https://bugs.webkit.org/show_bug.cgi?id=24852
26290         Build fix for GNU mode RVCT compilation
26291
26292         * html/PreloadScanner.cpp:
26293
26294 2009-03-27  Erik L. Bunce  <elbunce@xendom.com>
26295
26296         Reviewed by Simon Hausmann.
26297
26298         https://bugs.webkit.org/show_bug.cgi?id=24868
26299
26300         Make text of the writing direction items more user friendly.
26301
26302         * platform/qt/Localizations.cpp:
26303         (WebCore::contextMenuItemTagLeftToRight):
26304         (WebCore::contextMenuItemTagRightToLeft):
26305
26306 2009-03-27  Erik L. Bunce  <elbunce@xendom.com>
26307
26308         Reviewed by Simon Hausmann.
26309
26310         https://bugs.webkit.org/show_bug.cgi?id=24274
26311
26312         Fixed the Qt 4.4 Mac build with netscape plugins enabled.
26313
26314         * plugins/mac/PluginViewMac.cpp:
26315
26316 2009-03-26  Mark Rowe  <mrowe@apple.com>
26317
26318         Try and fix the Qt build.
26319
26320         * platform/text/TextEncodingDetectorNone.cpp:
26321         (WebCore::detectTextEncoding):
26322
26323 2009-03-26  Eric Carlson  <eric.carlson@apple.com>
26324
26325         Reviewed by Simon Fraser.
26326
26327         https://bugs.webkit.org/show_bug.cgi?id=24874
26328         24874: HTMLMediaElement: 'duration' defaults to NaN, deal with it
26329         
26330         The 'duration' attribute is NaN when no media is available, so the
26331         media element should take care when comparing with duration().
26332
26333         * html/HTMLMediaElement.cpp:
26334         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Don't compare with duration when
26335         it is NaN.
26336         (WebCore::HTMLMediaElement::endedPlayback): Ditto.
26337
26338 2009-03-26  Mark Rowe  <mrowe@apple.com>
26339
26340         Fix the build.
26341
26342         * platform/text/TextEncodingDetectorICU.cpp:
26343         * platform/text/TextEncodingDetectorNone.cpp:
26344
26345 2009-03-26  Jungshik Shin  <jshin@chromium.org>
26346
26347         Reviewed by Cameron Zwarich.
26348
26349         1. Fix the crash in setHintEncoding
26350         2. Fix build failures on Tiger and Qt.
26351         UnusedParam.h was not included by TextEncodingDetector{None,ICU}.cpp
26352         in the patch landed in r42023
26353         for http://bugs.webkit.org/show_bug.cgi?id=16482
26354
26355         * loader/TextResourceDecoder.h:
26356         (WebCore::TextResourceDecoder::setHintEncoding):
26357         * platform/text/TextEncodingDetectorICU.cpp:
26358         * platform/text/TextEncodingDetectorNone.cpp:
26359
26360 2009-03-26  Simon Fraser  <simon.fraser@apple.com>
26361
26362         Build fix when ACCELERATED_COMPOSITING is turned on.
26363
26364         * rendering/RenderLayerBacking.cpp:
26365         (WebCore::RenderLayerBacking::canUseDirectCompositing):
26366
26367 2009-03-26  Eric Seidel  <eric@webkit.org>
26368
26369         No additional review, committing previously reviewed files for build fix only.
26370
26371         Add files I missed when commiting Jungshik's patch in r42022.
26372         https://bugs.webkit.org/show_bug.cgi?id=16482
26373
26374         * icu/unicode/ucsdet.h: Added.
26375         * platform/text/TextEncodingDetector.h: Added.
26376         * platform/text/TextEncodingDetectorICU.cpp: Added.
26377         (WebCore::detectTextEncoding):
26378         * platform/text/TextEncodingDetectorNone.cpp: Added.
26379         (WebCore::detectTextEncoding):
26380
26381 2009-03-26  Jungshik Shin  <jshin@chromium.org>
26382
26383         Reviewed by Alexey Proskuryakov.
26384
26385         Add an encoding detector 'hook' to TextResourceDecoder.
26386          - add |usesEncodingDetector| to Settings. It's off by default.
26387          - add a new encoding source type |EncodingFromParent| 
26388            to distinguish cases when the encoding is inherited from
26389            the parent frame from cases when it's actually auto-detected.
26390          - add TextEncodingDetector* to platform/text. Currently,
26391            the only implementation uses ICU. Stub is added for 
26392            ports that do not use ICU and a build on Tiger. Mac OS 
26393            Tiger comes with ICU 3.2 that does not support encoding detector.
26394          - add ucsdet.h to icu/unicode for ports using ICU.
26395
26396         Layout tests will be added once bug 20534 is fixed and a WebPreference
26397         can be controlled in test_shell. With UsesEncodingDetector off, there
26398         is no change to test. 
26399
26400         http://bugs.webkit.org/show_bug.cgi?id=16482
26401
26402         * WebCore.vcproj/WebCore.vcproj:
26403         * WebCore.xcodeproj/project.pbxproj:
26404         * WebCore/GNUmakefile.am
26405         * WebCore/WebCore.pro
26406         * WebCore/WebCore.scons
26407         * WebCore/WebCoreSources.bkl
26408         * WebCore.base.exp
26409         * icu/unicode/ucsdet.h
26410         * loader/FrameLoader.cpp:
26411         (WebCore::FrameLoader::write): turn on/off encoding detector depending on Settings and set hintEncoding of TextResourceDecoder to the parent frame encoding if necessary and the security policy allows refering to the parent frame encoding.
26412         * loader/TextResourceDecoder.cpp:
26413         (WebCore::TextResourceDecoder::TextResourceDecoder):
26414         (WebCore::TextResourceDecoder::checkForCSSCharset): add check for EncodingFromParentFrame
26415         (WebCore::TextResourceDecoder::checkForHeadCharset): ditto
26416         (WebCore::TextResourceDecoder::shouldAutoDetect):
26417         (WebCore::TextResourceDecoder::decode): call encoding detector if shouldAutoDetect returns true.
26418         (WebCore::TextResourceDecoder::flush): if encoding is not determined by now, call encoding detector if shouldAutoDetect returns true.
26419         * loader/TextResourceDecoder.h:
26420         (WebCore::TextResourceDecoder::):
26421         (WebCore::TextResourceDecoder::create):
26422         (WebCore::TextResourceDecoder::setHintEncoding):
26423         (WebCore::TextResourceDecoder::source):
26424         * page/Settings.cpp: add m_usesEncodingDetector
26425         (WebCore::Settings::Settings):
26426         (WebCore::Settings::setUsesEncodingDetector):
26427         * page/Settings.h:
26428         (WebCore::Settings::usesEncodingDetector):
26429         * platform/text/TextEncodingDetector.h: Added.
26430         * platform/text/TextEncodingDetectorICU.cpp: Added.
26431         (WebCore::detectTextEncoding):
26432         * platform/text/TextEncodingDetectorNone.cpp: Added.
26433         (WebCore::detectTextEncoding):
26434
26435 2009-03-26  Darin Adler  <darin@apple.com>
26436
26437         Reviewed by Geoff Garen.
26438
26439         Removed code that casts EventListener down to derived classes
26440         without type checking. A crash could happen if you added event
26441         listeners with Objective-C and then manipulated the class with
26442         JavaScript.
26443
26444         * bindings/js/JSDOMApplicationCacheCustom.cpp:
26445         (WebCore::JSDOMApplicationCache::mark): Removed all the casts
26446         and used the markIfNotNull function and mark functions on
26447         EventListener instead.
26448         * bindings/js/JSMessagePortCustom.cpp:
26449         (WebCore::JSMessagePort::mark): Ditto.
26450         * bindings/js/JSWorkerContextCustom.cpp:
26451         (WebCore::JSWorkerContext::mark): Ditto.
26452         * bindings/js/JSWorkerCustom.cpp:
26453         (WebCore::JSWorker::mark): Ditto.
26454         * bindings/js/JSXMLHttpRequestCustom.cpp:
26455         (WebCore::JSXMLHttpRequest::mark): Ditto.
26456         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
26457         (WebCore::JSXMLHttpRequestUpload::mark): Ditto.
26458
26459         * bindings/js/JSEventListener.cpp:
26460         (WebCore::JSAbstractEventListener::handleEvent): Used function,
26461         the new name for what used to be called listenerObj.
26462         (WebCore::JSAbstractEventListener::virtualIsInline): Renamed since
26463         this doesn't need to be virtual for callers who have a pointer to
26464         this class, not the base class.
26465         (WebCore::JSEventListener::function): Renamed from listenerObj.
26466         (WebCore::JSProtectedEventListener::function): Ditto.
26467
26468         * bindings/js/JSEventListener.h: Removed unneeded forward class
26469         declarations. Made all virtual functions private since there's no
26470         need to call any of them on a particular derived class, only on
26471         EventListener. Explicitly declare JSEventListener::mark as virtual
26472         since it's now overriding a function in the EventListener base class.
26473         Made JSProtectedEventListener::m_globalObject protected so the
26474         JSLazyEventListener derived class can use it directly instead of using
26475         a virtual function to get the pointer.
26476
26477         * bindings/js/JSLazyEventListener.cpp:
26478         (WebCore::JSLazyEventListener::parseCode): Use m_globalObject instead
26479         of globalObject since the latter is a virtual function and there's no
26480         need to pay virtual function overhead.
26481         (WebCore::JSLazyEventListener::function): Renamed from listenerObj.
26482
26483         * bindings/js/JSLazyEventListener.h: Moved forward declaration of the
26484         Node class here from JSEventListener.h.
26485
26486         * bindings/scripts/CodeGeneratorJS.pm: Removed now-unneeded cast to
26487         JSEventListener when getting the script object from a listener.
26488
26489         * dom/EventListener.h: Added virtual function and mark functions
26490         so we can extract the JavaScript function object or mark a JavaScript
26491         event listener in a type safe manner.
26492
26493 2009-03-26  Peter Kasting  <pkasting@google.com>
26494
26495         Reviewed by Adele Peterson.
26496
26497         https://bugs.webkit.org/show_bug.cgi?id=24859
26498         Use CSS file instead of code to adjust search field styling.
26499
26500         * css/themeWin.css:
26501         * rendering/RenderThemeWin.cpp:
26502         * rendering/RenderThemeWin.h:
26503
26504 2009-03-26  Darin Adler  <darin@apple.com>
26505
26506         Reviewed by Geoff Garen.
26507
26508         Split JSLazyEventListener out into its own separate source file.
26509         We'll be removing JSAbstractEventListener and JSProtectedEventListener soon,
26510         so leave those in the same file with JSEventListener.
26511
26512         * GNUmakefile.am: Added JSLazyEventListener.
26513         * WebCore.pro: Ditto.
26514         * WebCore.scons: Ditto.
26515         * WebCore.vcproj/WebCore.vcproj: Ditto.
26516         * WebCore.xcodeproj/project.pbxproj: Ditto.
26517         * WebCoreSources.bkl: Ditto.
26518
26519         * bindings/js/JSEventListener.cpp: Removed the JSLazyEventListener part.
26520         Removed unneeded includes. Removed incorrect ASSERT_CLASS_FITS_IN_CELL, since
26521         JSAbstractEventListener is not derived from JSCell.
26522
26523         * bindings/js/JSEventListener.h: Removed the JSLazyEventListener part
26524         and the now-unneeded include of PlatformString.h.
26525
26526         * bindings/js/JSLazyEventListener.cpp: Copied from bindings/js/JSEventListener.cpp.
26527         Kept only the JSLazyEventListener part.
26528         (WebCore::eventParameterName): Made this have internal linkage by adding "static".
26529         Also moved the default case out of the switch statement so we will get a warning
26530         if we omit any cases in the future.
26531
26532         * bindings/js/JSLazyEventListener.h: Copied from bindings/js/JSEventListener.h.
26533         Kept only the JSLazyEventListener part.
26534
26535         * bindings/js/ScriptController.cpp: Removed unneeded includes and sorted the
26536         remanining ones. Include JSLazyEventListener.h instead of JSEventListener.h.
26537
26538 2009-03-26  Darin Adler  <darin@apple.com>
26539
26540         Reviewed by Geoff Garen.
26541
26542         Renamed JSUnprotectedEventListener to JSEventListener.
26543         And related renames.
26544
26545         Soon Geoff will make all JavaScript event listeners use mark instead
26546         of protect, so there's no need to emphasize "unprotected".
26547
26548         * bindings/js/JSDOMApplicationCacheCustom.cpp:
26549         (WebCore::JSDOMApplicationCache::mark):
26550         (WebCore::JSDOMApplicationCache::addEventListener):
26551         (WebCore::JSDOMApplicationCache::removeEventListener):
26552         * bindings/js/JSDOMGlobalObject.cpp:
26553         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
26554         (WebCore::JSDOMGlobalObject::findJSEventListener):
26555         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
26556         (WebCore::JSDOMGlobalObject::jsEventListeners):
26557         (WebCore::JSDOMGlobalObject::jsInlineEventListeners):
26558         * bindings/js/JSDOMGlobalObject.h:
26559         * bindings/js/JSDOMWindowBase.h:
26560         * bindings/js/JSEventListener.cpp:
26561         (WebCore::JSEventListener::JSEventListener):
26562         (WebCore::JSEventListener::~JSEventListener):
26563         (WebCore::JSEventListener::listenerObj):
26564         (WebCore::JSEventListener::globalObject):
26565         (WebCore::JSEventListener::clearGlobalObject):
26566         (WebCore::JSEventListener::mark):
26567         * bindings/js/JSEventListener.h:
26568         (WebCore::JSEventListener::create):
26569         * bindings/js/JSMessagePortCustom.cpp:
26570         (WebCore::JSMessagePort::mark):
26571         (WebCore::JSMessagePort::addEventListener):
26572         (WebCore::JSMessagePort::removeEventListener):
26573         * bindings/js/JSWorkerContextCustom.cpp:
26574         (WebCore::JSWorkerContext::mark):
26575         (WebCore::JSWorkerContext::addEventListener):
26576         (WebCore::JSWorkerContext::removeEventListener):
26577         * bindings/js/JSWorkerCustom.cpp:
26578         (WebCore::JSWorker::mark):
26579         (WebCore::JSWorker::addEventListener):
26580         (WebCore::JSWorker::removeEventListener):
26581         * bindings/js/JSXMLHttpRequestCustom.cpp:
26582         (WebCore::JSXMLHttpRequest::mark):
26583         (WebCore::JSXMLHttpRequest::addEventListener):
26584         (WebCore::JSXMLHttpRequest::removeEventListener):
26585         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
26586         (WebCore::JSXMLHttpRequestUpload::mark):
26587         (WebCore::JSXMLHttpRequestUpload::addEventListener):
26588         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
26589         * bindings/scripts/CodeGeneratorJS.pm:
26590         All just renaming.
26591
26592 2009-03-26  Darin Adler  <darin@apple.com>
26593
26594         Reviewed by Geoff Garen.
26595
26596         Renamed JSEventListener to JSProtectedEventListener.
26597         And related renames.
26598
26599         Soon Geoff will make all JavaScript event listeners use mark instead
26600         of protect, and so this class will be be obsolete. We will rename
26601         JSUnrpotectedEventListener to JSEventListener in the next check-in,
26602         since that one will remain.
26603
26604         * bindings/js/JSDOMGlobalObject.cpp:
26605         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
26606         (WebCore::JSDOMGlobalObject::findJSProtectedEventListener):
26607         (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
26608         (WebCore::JSDOMGlobalObject::jsProtectedEventListeners):
26609         (WebCore::JSDOMGlobalObject::jsProtectedInlineEventListeners):
26610         * bindings/js/JSDOMGlobalObject.h:
26611         * bindings/js/JSDOMWindowBase.h:
26612         * bindings/js/JSDOMWindowCustom.cpp:
26613         (WebCore::JSDOMWindow::addEventListener):
26614         (WebCore::JSDOMWindow::removeEventListener):
26615         * bindings/js/JSEventListener.cpp:
26616         (WebCore::JSProtectedEventListener::JSProtectedEventListener):
26617         (WebCore::JSProtectedEventListener::~JSProtectedEventListener):
26618         (WebCore::JSProtectedEventListener::listenerObj):
26619         (WebCore::JSProtectedEventListener::globalObject):
26620         (WebCore::JSProtectedEventListener::clearGlobalObject):
26621         (WebCore::JSLazyEventListener::JSLazyEventListener):
26622         (WebCore::JSLazyEventListener::parseCode):
26623         * bindings/js/JSEventListener.h:
26624         (WebCore::JSProtectedEventListener::create):
26625         * bindings/js/JSNodeCustom.cpp:
26626         (WebCore::JSNode::addEventListener):
26627         (WebCore::JSNode::removeEventListener):
26628         * bindings/js/JSSVGElementInstanceCustom.cpp:
26629         (WebCore::JSSVGElementInstance::addEventListener):
26630         (WebCore::JSSVGElementInstance::removeEventListener):
26631         * bindings/scripts/CodeGeneratorJS.pm:
26632         All just renaming.
26633
26634 2009-03-26  Dan Bernstein  <mitz@apple.com>
26635
26636         Reviewed by Anders Carlsson.
26637
26638         - fix <rdar://problem/6725042> BidiResolver::createBidiRunsForLine can
26639           create runs extending beyond the end
26640
26641         No test because Safari does not use this version of
26642         createBidiRunsForLine() with the end iterator not pointing to the end
26643         of the text run.
26644
26645         * platform/text/BidiResolver.h:
26646         (WebCore::BidiResolver::appendRun): Cap the end of the run at the end
26647         of the line and set the reachedEndOfLine flag. This mirrors the logic
26648         in the specialized version of appendRun() in bidi.cpp, which is why the
26649         problem did not show up in HTML. Also avoid creating empty runs.
26650
26651 2009-03-26  Simon Fraser  <simon.fraser@apple.com>
26652
26653         Reviewed by Dave Hyatt
26654         
26655         https://bugs.webkit.org/show_bug.cgi?id=24864
26656
26657         Change the terminology from "inner content layer" to "direct compositing"
26658         for cases where we can push an image directly over to the compositing system,
26659         without having to draw it.
26660         
26661         Clean up much of the code which looks at style to determine if this is possible,
26662         and fix some bugs when backgrounds change dynamically.
26663         
26664         * rendering/RenderLayerBacking.cpp:
26665         (WebCore::hasBorderOutlineOrShadow):
26666         (WebCore::hasBoxDecorations):
26667         (WebCore::hasBoxDecorationsWithBackgroundImage):
26668         (WebCore::RenderLayerBacking::canBeSimpleContainerCompositingLayer):
26669         (WebCore::RenderLayerBacking::canUseDirectCompositing):
26670         (WebCore::RenderLayerBacking::detectDrawingOptimizations):
26671         (WebCore::RenderLayerBacking::rendererContentChanged):
26672         (WebCore::RenderLayerBacking::updateImageContents):
26673         * rendering/RenderLayerBacking.h:
26674
26675 2009-03-26  Simon Fraser  <simon.fraser@apple.com>
26676
26677         Reviewed by Dave Hyatt
26678         
26679         https://bugs.webkit.org/show_bug.cgi?id=23914
26680
26681         Tests: compositing/overflow/ancestor-overflow.html
26682                compositing/overflow/parent-overflow.html
26683
26684         * rendering/RenderLayer.cpp:
26685         (WebCore::RenderLayer::calculateClipRects):
26686         * rendering/RenderLayer.h:
26687         (WebCore::ClipRects::infiniteRect):
26688         New static method that returns a large rect that is used by the clipping
26689         logic.
26690         
26691         * rendering/RenderLayerBacking.cpp:
26692         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
26693         Use parentClipRects(), rather than calculateRects(), to compute the overflow
26694         rect that we'll use to create a masking layer for composited clipping.
26695         
26696         * rendering/RenderLayerCompositor.cpp:
26697         (WebCore::RenderLayerCompositor::clippedByAncestor):
26698         Use parentClipRects() to see whether there's a layer between us and our
26699         compositing ancestor which applies clipping.
26700         
26701         (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
26702         A layer which imposes clipping to its children doesn't have to be a stacking
26703         context; it might be a normal flow layer; in either case, we can rely on the
26704         hasCompositingDescendant() bit.
26705
26706 2009-03-26  Steve Falkenburg  <sfalken@apple.com>
26707
26708         https://bugs.webkit.org/show_bug.cgi?id=24837
26709         Escape key should dismiss select menu
26710
26711         Reviewed by Adam Roben.
26712
26713         * platform/win/PopupMenuWin.cpp:
26714         (WebCore::PopupWndProc):
26715
26716 2009-03-26  Kevin Ollivier  <kevino@theolliviers.com>
26717
26718         Reviewed by Alexey Proskuryakov.
26719
26720         Make sure the script uses LF line endings even on Windows.
26721         
26722         https://bugs.webkit.org/show_bug.cgi?id=24805
26723
26724         * WebCore/make-generated-sources.sh: Change svn:eol-style to LF
26725
26726 2009-03-26  Eli Fidler  <eli.fidler@torchmobile.com>
26727
26728         Reviewed by George Staikos.
26729
26730         Remove warnings all over the place by making operator precedence
26731         explicit in cases like x && y || z.  No functional change.
26732
26733         * css/CSSFontSelector.cpp:
26734         (WebCore::CSSFontSelector::addFontFaceRule):
26735         * css/CSSParser.cpp:
26736         (WebCore::CSSParser::parseValue):
26737         (WebCore::CSSParser::parseShadow):
26738         * dom/Document.cpp:
26739         (WebCore::Document::shouldScheduleLayout):
26740         * dom/Node.cpp:
26741         (WebCore::Node::isBlockFlowOrBlockTable):
26742         * dom/Node.h:
26743         (WebCore::Node::document):
26744         * dom/Position.cpp:
26745         (WebCore::Position::next):
26746         (WebCore::Position::upstream):
26747         (WebCore::Position::downstream):
26748         (WebCore::Position::getInlineBoxAndOffset):
26749         * dom/PositionIterator.cpp:
26750         (WebCore::PositionIterator::atStart):
26751         * dom/Range.cpp:
26752         (WebCore::Range::intersectsNode):
26753         * editing/Editor.cpp:
26754         (WebCore::Editor::setBaseWritingDirection):
26755         * editing/InsertParagraphSeparatorCommand.cpp:
26756         (WebCore::InsertParagraphSeparatorCommand::doApply):
26757         * editing/ReplaceSelectionCommand.cpp:
26758         (WebCore::ReplaceSelectionCommand::doApply):
26759         * editing/TextIterator.cpp:
26760         (WebCore::TextIterator::advance):
26761         (WebCore::SimplifiedBackwardsTextIterator::advance):
26762         * editing/VisiblePosition.cpp:
26763         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
26764         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
26765         (WebCore::VisiblePosition::canonicalPosition):
26766         * editing/htmlediting.cpp:
26767         (WebCore::isMailBlockquote):
26768         (WebCore::lineBreakExistsAtPosition):
26769         * html/HTMLSelectElement.cpp:
26770         (WebCore::HTMLSelectElement::parseMappedAttribute):
26771         * loader/FTPDirectoryDocument.cpp:
26772         (WebCore::processFileDateString):
26773         * loader/ImageLoader.cpp:
26774         (WebCore::ImageLoader::updateFromElement):
26775         * loader/TextResourceDecoder.cpp:
26776         (WebCore::TextResourceDecoder::checkForHeadCharset):
26777         * page/AccessibilityObject.cpp:
26778         (WebCore::updateAXLineStartForVisiblePosition):
26779         * page/EventHandler.cpp:
26780         (WebCore::EventHandler::sendContextMenuEvent):
26781         * page/animation/AnimationBase.cpp:
26782         (WebCore::PropertyWrapperGetter::equals):
26783         (WebCore::PropertyWrapperShadow::equals):
26784         * platform/ContextMenu.cpp:
26785         (WebCore::ContextMenu::populate):
26786         * platform/ScrollView.cpp:
26787         (WebCore::ScrollView::adjustScrollbarsAvoidingResizerCount):
26788         * platform/text/Base64.cpp:
26789         (WebCore::base64Encode):
26790         * platform/text/BidiResolver.h:
26791         (WebCore::::raiseExplicitEmbeddingLevel):
26792         (WebCore::::createBidiRunsForLine):
26793         * rendering/InlineTextBox.cpp:
26794         (WebCore::InlineTextBox::placeEllipsisBox):
26795         * rendering/RenderBlock.cpp:
26796         (WebCore::RenderBlock::addChild):
26797         (WebCore::RenderBlock::repaintOverhangingFloats):
26798         (WebCore::RenderBlock::fillInlineSelectionGaps):
26799         (WebCore::RenderBlock::positionForPoint):
26800         (WebCore::RenderBlock::calcInlinePrefWidths):
26801         (WebCore::RenderBlock::hasLineIfEmpty):
26802         * rendering/RenderBox.cpp:
26803         (WebCore::RenderBox::imageChanged):
26804         (WebCore::RenderBox::localCaretRect):
26805         (WebCore::RenderBox::positionForPoint):
26806         (WebCore::RenderBox::shrinkToAvoidFloats):
26807         * rendering/RenderObject.h:
26808         (WebCore::objectIsRelayoutBoundary):
26809         * rendering/RenderTableCell.cpp:
26810         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
26811         * rendering/RenderText.cpp:
26812         (WebCore::RenderText::calcPrefWidths):
26813         * rendering/bidi.cpp:
26814         (WebCore::RenderBlock::determineStartPosition):
26815         (WebCore::textWidth):
26816         * rendering/style/RenderStyle.cpp:
26817         (WebCore::RenderStyle::diff):
26818         * rendering/style/StyleInheritedData.cpp:
26819         (WebCore::cursorDataEquivalent):
26820         * rendering/style/StyleRareInheritedData.cpp:
26821         (WebCore::StyleRareInheritedData::shadowDataEquivalent):
26822         * rendering/style/StyleRareNonInheritedData.cpp:
26823         (WebCore::StyleRareNonInheritedData::shadowDataEquivalent):
26824         (WebCore::StyleRareNonInheritedData::animationDataEquivalent):
26825         (WebCore::StyleRareNonInheritedData::transitionDataEquivalent):
26826
26827 2009-03-26  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
26828
26829         Reviewed by Holger Freyther.
26830
26831         https://bugs.webkit.org/show_bug.cgi?id=24804
26832         [GTK] 401 responses cause rogue content to be loaded
26833
26834         Our soup code handles 401 responses itself, so we should not feed
26835         the headers and data of those responses to the loader.
26836
26837         * platform/network/soup/ResourceHandleSoup.cpp:
26838         (WebCore::gotHeadersCallback):
26839         (WebCore::gotChunkCallback):
26840
26841 2009-03-25  Geoffrey Garen  <ggaren@apple.com>
26842
26843         Reviewed by Oliver Hunt and Darin Adler.
26844         
26845         Fixed <rdar://problem/6603167> Crash in WebKit!JSC::JSGlobalObject::resetPrototype
26846         during Stress test (#3 & #7 WER crashes for Safari 4 Beta)
26847         
26848         The problem was that allocation of the global object would, for just a
26849         moment, leave the global object's prototype unprotected from GC. This
26850         bug doesn't apply to non-global DOM objects because their prototypes are
26851         cached and marked by the global object.
26852
26853         No test case because the crashing condition is hard to deterministically
26854         produce in a normal build, and in a Windows Release build with
26855         COLLECT_ON_EVERY_ALLOCATION set to 1, existing tests crash/hang.
26856
26857         * bindings/js/JSDOMWindowShell.cpp:
26858         (WebCore::JSDOMWindowShell::setWindow):
26859         * bindings/js/WorkerScriptController.cpp:
26860         (WebCore::WorkerScriptController::initScript): Protect the global object's
26861         prototype from GC during construction, since the global object does not
26862         yet point to it, and therefore won't mark it.
26863
26864 2009-03-25  Dean Jackson  <dino@apple.com>
26865
26866         Reviewed by Simon Fraser
26867
26868         https://bugs.webkit.org/show_bug.cgi?id=23361
26869
26870         When using hardware compositing, some images can be directly
26871         rendered by the hardware - no need to draw them into a separate
26872         context, therefore saving memory.
26873         Only images with certain style properties can be directly
26874         composited - basically anything that is not a simple image requires
26875         the usual rendering path (eg. if the image has borders).
26876
26877         Test: compositing/direct-image-compositing.html
26878
26879         * manual-tests/resources/simple_image.png: Added.
26880         * manual-tests/simple-image-compositing.html: Added.
26881         * platform/graphics/Image.h:
26882         (WebCore::Image::startAnimation):
26883             - move this to public
26884         * rendering/RenderImage.cpp:
26885         (WebCore::RenderImage::imageChanged):
26886             - poke compositing layer if image has changed
26887         (WebCore::RenderImage::notifyFinished):
26888             - let the compositing layer know that it can render the image
26889         * rendering/RenderImage.h:
26890         * rendering/RenderLayer.cpp:
26891         (WebCore::RenderLayer::rendererContentChanged):
26892         * rendering/RenderLayer.h:
26893         * rendering/RenderLayerBacking.cpp:
26894         (WebCore::RenderLayerBacking::canUseInnerContentLayer):
26895         (WebCore::RenderLayerBacking::detectDrawingOptimizations):
26896         (WebCore::RenderLayerBacking::rendererContentChanged):
26897         * rendering/RenderLayerBacking.h:
26898             - code to hook up direct compositing of images where
26899               possible
26900
26901 2009-03-25  David Levin  <levin@chromium.org>
26902
26903         Reviewed by Dimitri Glazkov.
26904
26905         Chromium build fix. Fix #include in V8NodeFilterCondition.cpp due to the
26906         rename of V8NodeFilter to V8NodeFilterCondition.
26907
26908         * bindings/v8/V8NodeFilterCondition.cpp:
26909
26910 2009-03-25  Simon Fraser  <simon.fraser@apple.com>
26911
26912         Reviewed by Darin Adler
26913         
26914         https://bugs.webkit.org/show_bug.cgi?id=24817
26915         
26916         When the slider range is zero, avoid a divide by zero, which caused the
26917         thumb to be positioned off in the weeds, which broke painting.
26918
26919         Test: media/video-empty-source.html
26920
26921         * rendering/RenderSlider.cpp:
26922         (WebCore::SliderRange::proportionFromValue):
26923         (WebCore::SliderRange::valueFromProportion):
26924         (WebCore::sliderPosition):
26925         (WebCore::RenderSlider::setValueForPosition):
26926
26927 2009-03-24  Eric Seidel  <eric@webkit.org>
26928
26929         Reviewed by Darin Adler.
26930
26931         Remove dead code and style cleanup
26932         https://bugs.webkit.org/show_bug.cgi?id=24684
26933
26934         * html/CanvasStyle.cpp:
26935         (WebCore::CanvasStyle::CanvasStyle):
26936           Coverty was annoyed that we didn't initialize all of our members.  I agree, but I didn't
26937           want to paste all 8 members each time, so I just cleaned up the existing constructors and left them.
26938         * page/FocusController.cpp:
26939         (WebCore::FocusController::setFocusedNode):
26940           "node" was checked just above and is already known to be non-null
26941         * rendering/RenderLayer.cpp:
26942         (WebCore::RenderLayer::insertOnlyThisLayer):
26943           We were already using parentLayer w/o a NULL check above, so just add an explicit ASSERT and use it w/o NULL check
26944         (WebCore::RenderLayer::resize):
26945           element is already ASSERTed above, no need to null check it here
26946         * rendering/RenderTableSection.cpp:
26947         (WebCore::RenderTableSection::addCell):
26948           currentCell.cell was just assigned to the value "cell" which is known to be non-null, no need to null check again.
26949
26950 2009-03-24  Eric Seidel  <eric@webkit.org>
26951
26952         Reviewed by Darin Adler.
26953
26954         Move ASSERT(foo) to before where foo-> is used
26955         https://bugs.webkit.org/show_bug.cgi?id=24684
26956
26957         * platform/chromium/PasteboardChromium.cpp:
26958         (WebCore::Pasteboard::writeImage):
26959           Move ASSERTs to the top of the function, code was using "node" before ASSERT(node), once I moved
26960           ASSERT(node) to the top of the function it made sense to move the rest of them there too.
26961         * rendering/SVGRenderSupport.cpp:
26962         (WebCore::prepareToRenderSVGContent):
26963           move ASSERT(object) to *before* we use "object" :)
26964
26965 2009-03-24  Eric Seidel  <eric@webkit.org>
26966
26967         Reviewed by Simon Fraser.
26968
26969         Make TextTokenizer ASSERT that the buffer was freed
26970         https://bugs.webkit.org/show_bug.cgi?id=24684
26971
26972         * loader/TextDocument.cpp:
26973         (WebCore::TextTokenizer::TextTokenizer):
26974         (WebCore::TextTokenizer::~TextTokenizer):
26975         (WebCore::TextTokenizer::finish):
26976           Make it clear by adding a ~TextTokenizer that finish() will always be called and the memory never leaked.
26977
26978 2009-03-24  Eric Seidel  <eric@webkit.org>
26979
26980         Reviewed by Darin Adler.
26981
26982         Fix case where lBreak.obj->isBR() when lBreak.obj was NULL
26983         https://bugs.webkit.org/show_bug.cgi?id=24684
26984
26985         I don't have a test case where we were taking the wrong path here
26986         However, adding an ASSERT(lBreak.obj) before this usage caused
26987         multiple bidi tests to fail, so lBreak.obj can be null here.
26988
26989         * rendering/bidi.cpp:
26990         (WebCore::RenderBlock::findNextLineBreak):
26991           lBreak.obj can be null, so we can't call ->isBR() on it unconditionally.
26992
26993 2009-03-24  Eric Seidel  <eric@webkit.org>
26994
26995         Reviewed by Simon Fraser.
26996
26997         Style cleanup and dead code removal in dom, editing
26998         https://bugs.webkit.org/show_bug.cgi?id=24684
26999
27000         * dom/ContainerNode.cpp:
27001         (WebCore::ContainerNode::getUpperLeftCorner):
27002         (WebCore::ContainerNode::getLowerRightCorner):
27003         (WebCore::ContainerNode::getRect):
27004           Coverty was (rightly) confused as to what the hell "o" was being used for
27005           and whether or not it would ever be NULL.  I added some ASSERTS so that people (and machines)
27006           would be less confused about the logic in getUpperLeftCorner/getLowerRightCorner
27007         * dom/Document.cpp:
27008         (WebCore::Document::recalcStyle):
27009           Remove dead code, this block already checked that change == Force
27010         * editing/ApplyStyleCommand.cpp:
27011         (WebCore::ApplyStyleCommand::removeInlineStyle):
27012           Coverty correctly identified that traversePreviousNodePostOrder can return NULL, thus
27013           prev will be null, and we don't really explicitly handle it (like we probably should)
27014           It's OK though, because we end up creating a null position object, which may not have
27015           been what we intended, but we certainly don't crash.
27016         * editing/InsertParagraphSeparatorCommand.cpp:
27017         (WebCore::InsertParagraphSeparatorCommand::doApply):
27018           Remove dead code, insertionPosition.node() is already checked to be non-null above.
27019         * editing/markup.cpp:
27020         (WebCore::appendStartMarkup):
27021           removed dead code, annotate is already known to be true at this point in the file
27022           !annotate was checked above, and break; was called.
27023
27024 2009-03-24  Eric Seidel  <eric@webkit.org>
27025
27026         Reviewed by Simon Fraser.
27027
27028         CSS dead code removal and cleanup from Coverty errors
27029         https://bugs.webkit.org/show_bug.cgi?id=24684
27030
27031         * css/CSSStyleSelector.cpp:
27032         (WebCore::CSSStyleSelector::applyProperty):
27033           Every other place in the code we check settings() for NULL, so I made these places
27034           check too, even though we should never be resolving style against a document which has
27035           no frame (which I believe is the only time settings() can be null)
27036         * css/CSSStyleSheet.cpp:
27037         (WebCore::CSSStyleSheet::styleSheetChanged):
27038           Removing dead code, "root" can never be null here.
27039         * css/SVGCSSStyleSelector.cpp:
27040         (WebCore::colorFromSVGColorCSSValue):
27041         (WebCore::CSSStyleSelector::applySVGProperty):
27042           Extra returns in the old macros caused dead code.  Removing the old macros and use modern
27043           ones instead. :)
27044           Extra null checks to value were not needed.  Added an ASSERT at the top of the function
27045           to make it clear that value will never be NULL.
27046           Added colorFromSVGColorCSSValue to clean up the code a little.
27047
27048 2009-03-24  Eric Seidel  <eric@webkit.org>
27049
27050         Reviewed by Simon Fraser.
27051
27052         Font fallback cleanup and added ASSERT for GlyphPageTreeNode
27053         https://bugs.webkit.org/show_bug.cgi?id=24684
27054
27055         * css/CSSFontSelector.cpp:
27056         (WebCore::compareFontFaces):
27057           Coverty was concerned that it was possible to index off the end of weightFallbackRuleSets
27058           I can't read the code well enough to tell, so I tried to make the code clearer
27059           and added an ASSERT.        
27060         * platform/graphics/GlyphPageTreeNode.cpp:
27061         (WebCore::GlyphPageTreeNode::initializePage):
27062           Coverty believes we can crash here due to j being larger than GlyphPage::size.  I think to is already
27063           known to be < GlyphPage::size due to the min() statement above, but not being sure I added an ASSERT.
27064
27065 2009-03-24  Eric Seidel  <eric@webkit.org>
27066
27067         Reviewed by Simon Fraser.
27068
27069         Coverty inspired fixes in Animations/Transforms
27070         https://bugs.webkit.org/show_bug.cgi?id=24684
27071
27072         * page/animation/AnimationBase.h:
27073           Fix animate() signatures to match so that the virtual methods actually override one another. :)
27074         * page/animation/AnimationController.cpp:
27075         (WebCore::AnimationControllerPrivate::removeFromStartTimeResponseWaitList):
27076           Attempt to fix this method, prevAnimation was never set to anything but NULL,
27077           as far as I can tell the author originally intended to update it at the end
27078           of the loop, which is what I changed this code to do.
27079         * page/animation/ImplicitAnimation.cpp:
27080         (WebCore::ImplicitAnimation::animate):
27081           Make method signature match AnimationBase::animate
27082         * page/animation/ImplicitAnimation.h:
27083         * page/animation/KeyframeAnimation.cpp:
27084         (WebCore::KeyframeAnimation::animate):
27085           Make method signature match AnimationBase::animate
27086         * page/animation/KeyframeAnimation.h:
27087         * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
27088         (WebCore::PerspectiveTransformOperation::blend):
27089           if (blendToIdentity) already returned above.
27090         * platform/graphics/transforms/RotateTransformOperation.cpp:
27091         (WebCore::RotateTransformOperation::blend):
27092           if (blendToIdentity) already returned above.
27093
27094 2009-03-25  Eli Fidler  <eli.fidler@torchmobile.com>
27095
27096         Reviewed by George Staikos.
27097
27098         Fix compiler warnings regarding assignments in if statements.
27099
27100         * html/HTMLFormElement.cpp:
27101         (WebCore::HTMLFormElement::createFormData):
27102         * plugins/PluginPackage.cpp:
27103         (WebCore::PluginPackage::compare):
27104
27105 2009-03-25  Dan Bernstein  <mitz@apple.com>
27106
27107         Reviewed by Dave Hyatt.
27108
27109         - fix <rdar://problem/6472150> repro crash in
27110           RenderBlock::rightmostPosition(bool, bool) const at mercotte.fr using
27111           menus
27112
27113         Test: fast/inline/continuation-positioned-reparenting.html
27114
27115         * rendering/RenderInline.cpp:
27116         (WebCore::RenderInline::splitFlow): When repurposing the existing
27117         container as the "pre" block, clear its positioned objects list, because
27118         positioned descendants may end up in a different block after the split.
27119
27120 2009-03-24  Simon Fraser  <simon.fraser@apple.com>
27121
27122         Reviewed by Dave Hyatt
27123         
27124         https://bugs.webkit.org/show_bug.cgi?id=24784
27125         
27126         Length values in transform operations need to take zoom into account.
27127
27128         Test: fast/transforms/transforms-with-zoom.html
27129
27130         * css/CSSStyleSelector.cpp:
27131         (WebCore::CSSStyleSelector::createTransformOperations):
27132
27133 2009-03-25  David Hyatt  <hyatt@apple.com>
27134
27135         Reviewed by Simon Fraser.
27136
27137         https://bugs.webkit.org/show_bug.cgi?id=24809, background-clip/origin don't use the correct
27138         values.  Add support for the new values (while preserving the old values for backwards
27139         compatibility).
27140
27141         Changed some existing test cases to use the new values.
27142
27143         * css/CSSParser.cpp:
27144         (WebCore::CSSParser::parseFillProperty):
27145         * css/CSSPrimitiveValueMappings.h:
27146         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
27147         (WebCore::CSSPrimitiveValue::operator EFillBox):
27148         * css/CSSValueKeywords.in:
27149
27150 2009-03-25  Brett Wilson  <brettw@dhcp-172-22-71-191.mtv.corp.google.com>
27151
27152         Reviewed by Dimitri Glazkov.
27153
27154         Fix complex text opacity on the Chromium Windows port.
27155         https://bugs.webkit.org/show_bug.cgi?id=24757
27156
27157         Test: fast/text/complex-text-opacity.html
27158
27159         * platform/graphics/chromium/FontChromiumWin.cpp:
27160         (WebCore::):
27161         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::TransparencyAwareFontPainter):
27162         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::init):
27163         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
27164         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
27165         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::TransparencyAwareGlyphPainter):
27166         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::~TransparencyAwareGlyphPainter):
27167         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds):
27168         (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
27169         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::hdc):
27170         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::TransparencyAwareUniscribePainter):
27171         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::~TransparencyAwareUniscribePainter):
27172         (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds):
27173         (WebCore::Font::drawGlyphs):
27174         (WebCore::Font::drawComplexText):
27175
27176 2009-03-25  David Hyatt  <hyatt@apple.com>
27177
27178         Reviewed by Eric Seidel
27179
27180         Fix for bug 23198, border images should not clip to border radii.  The border-image should just ignore
27181         the border-radius, since the assumption is that any desired rounding will be built into the border-image
27182         itself.
27183
27184         Note that I do not agree with this change, but I am matching the spec.
27185
27186         Added fast/borders/border-image-border-radius.html
27187
27188         * rendering/RenderBoxModelObject.cpp:
27189         (WebCore::RenderBoxModelObject::paintNinePieceImage):
27190
27191 2009-03-25  Gustavo Noronha Silva  <gns@gnome.org>
27192
27193         Reviewed by Holger Freyther.
27194
27195         https://bugs.webkit.org/show_bug.cgi?id=24750
27196         [GTK] requests download instead of displaying page
27197
27198         Fix the Content-Type headers we get from soup, so that we set a
27199         proper media type on the ResourceResponse.
27200
27201         * platform/network/soup/ResourceHandleSoup.cpp:
27202         (WebCore::fillResponseFromMessage):
27203
27204 2009-03-25  Gustavo Noronha Silva  <gns@gnome.org>
27205
27206         Reviewed by Holger Freyther.
27207
27208         https://bugs.webkit.org/show_bug.cgi?id=24600
27209         [GTK] responses with status code >= 400 should not be given special treatment
27210
27211         Do not special case requests that have HTTP responses >=
27212         400. Redirects are handled automatically by libsoup, but the rest
27213         of the responses should be treated like any other.
27214
27215         * platform/network/soup/ResourceHandleSoup.cpp:
27216         (WebCore::):
27217         (WebCore::gotHeadersCallback):
27218         (WebCore::gotChunkCallback):
27219         (WebCore::finishedCallback):
27220
27221 2009-03-25  Darin Adler  <darin@apple.com>
27222
27223         Reviewed by John Sullivan.
27224
27225         Tidy up LegacyWebArchive a bit. And don't include favicons in web archives when
27226         they are being used only for selections, not an entire document.
27227
27228         * WebCore.base.exp: Remove exported function that's not used in WebKit.
27229
27230         * loader/archive/cf/LegacyWebArchive.cpp:
27231         (WebCore::LegacyWebArchive::createPropertyListRepresentation): Made a static member
27232         function so it can share private things with other member functions. Added some FIXME
27233         comments to a branch of code I think is dead. Changed boolean argument into a named
27234         one. Renamed to match other similar functions.
27235         (WebCore::LegacyWebArchive::createResourceResponseFromPropertyListData): Ditto.
27236         (WebCore::LegacyWebArchive::createResource): Ditto.
27237         (WebCore::LegacyWebArchive::create): Merged the create and init functions.
27238         (WebCore::LegacyWebArchive::rawDataRepresentation): Added some assertions because
27239         we should never fail to write (we can fail to read).
27240         (WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Made a static
27241         member function as above.
27242         (WebCore::LegacyWebArchive::createFromSelection): Ditto.
27243         (WebCore::LegacyWebArchive::create): Iterate the vector with indices rather than
27244         iterators. Only include the favicon if the first node is the document since we don't
27245         want to include the favicon when copying and pasting.
27246
27247         * loader/archive/cf/LegacyWebArchive.h: Made one of the create functions private.
27248         Made the Mac-specific functions be static member functions. Made other helpers be
27249         static member functions. Removed the nit function.
27250
27251         * loader/archive/cf/LegacyWebArchiveMac.mm:
27252         (WebCore::LegacyWebArchive::createResourceResponseFromMacArchivedData): Updated
27253         comment and made this a static member function.
27254         (WebCore::LegacyWebArchive::createPropertyListRepresentation): Ditto. Also made
27255         it so we only type cast in one place.
27256
27257 2009-03-25  Darin Adler  <darin@apple.com>
27258
27259         Reviewed by David Hyatt.
27260
27261         Bug 24740: crash in RenderSlider::setPositionFromValue when calling pause() after setting <video> to display: none
27262         https://bugs.webkit.org/show_bug.cgi?id=24740
27263         rdar://problem/6679873
27264
27265         Bug 12104: Native Slider: When the thumb's height is specified as a percentage, it is not centered properly
27266         https://bugs.webkit.org/show_bug.cgi?id=12104
27267
27268         Test: media/video-display-none-crash.html
27269
27270         The problem here was that RenderSlider was trying to position its thumb in a way that
27271         requires it to call updateLayout inside rendering code. The right way to position a
27272         child renderer is to do layout, so I had to write a layout function. And then fix a few
27273         other small problems shown by the same test case.
27274
27275         * rendering/RenderSlider.cpp: Made defaultTrackLength have internal linkage.
27276         Renamed HTMLSliderThumbElement to SliderThumbElement because we only use the HTML
27277         prefix for public DOM classes, not elements used as implementation details.
27278         Made SliderThumbElement function members private and got rid of unneeded default
27279         argument value for shadowParent.
27280         (WebCore::SliderRange::SliderRange): Added. Parses precision, max, and min attributes.
27281         (WebCore::SliderRange::clampValue): Added. Does standard clamping based on the above.
27282         (WebCore::SliderRange::valueFromElement): Added. Reads the value from the element in
27283         a way that clamps to the range.
27284         (WebCore::sliderPosition): Added. Computes the slider position: a double.
27285         (WebCore::SliderThumbElement::SliderThumbElement): Removed unneeded explicit
27286         initialization of m_initialClickPoint.
27287         (WebCore::SliderThumbElement::defaultEventHandler): Call setValueForPosition instead
27288         of calling setCurrentPosition and valueChanged.
27289         (WebCore::RenderSlider::RenderSlider): Remove unneeded explicit initialization of m_thumb.
27290         (WebCore::RenderSlider::styleDidChange): Remove unneeded second argument to createThumbStyle.
27291         (WebCore::RenderSlider::createThumbStyle): Remove unneeded second argument. Get rid of code
27292         setting the position to relative and setting the left and top. We now handle positioning
27293         in a custom layout function.
27294         (WebCore::RenderSlider::layout): Rewrote to handle positioning of the thumb as layout.
27295         (WebCore::RenderSlider::updateFromElement): Added code to immediately update the value
27296         in the element if it's out of range. This clamping used to be done as a side effect of
27297         setPositionFromValue. Also, this has nothing to do with the renderer, so at some point
27298         it could be moved into HTMLInputElement. Removed call to setPositionFromValue
27299         and instead just rely on the call to setNeedsLayout. Fix the setNeedsLayout call to be
27300         a normal setNeedsLayout(true), not a setNeedsLayout(true, false), because we do want
27301         this to be propagated to the parent -- it's not called during layout.
27302         (WebCore::RenderSlider::setValueForPosition): Refactor to use the new SliderRange
27303         class. Also don't call setCurrentPosition; instead just call setNeedsLayout.
27304         (WebCore::RenderSlider::currentPosition): Use the actual position of the renderer rather
27305         than the style to find the position; that means this needs to be done after layout is done.
27306         Also removed unneeded runtime checks and replaced them with assertions, after checking
27307         all callers to see they already guarantee this.
27308         (WebCore::RenderSlider::trackSize): Removed unneeded runtime checks and replaced them
27309         with assertions, after checking all callers to see they already guarantee this.
27310         (WebCore::RenderSlider::inDragMode): Added a null check for m_thumb so this won't
27311         crash if called early on a brand new RenderSlider.
27312
27313         * rendering/RenderSlider.h: Made all functions private except for forwardEvent and inDragMode.
27314         Renamed HTMLSliderThumbElement to SliderThumbElement because we only use the HTML
27315         prefix for public DOM classes, not elements used as implementation details. Made the
27316         mouseEventIsInThumb function non-virtual. Removed the return value and argument from
27317         setPositionFromValue. Removed valueChanged and setCurrentPosition. Removed the oldStyle
27318         argument to createThumbStyle (see above). Made SliderThumbElement a friend so it can use some
27319         private member functions.
27320
27321 2009-03-25  Eli Fidler  <eli.fidler@torchmobile.com>
27322
27323         Reviewed by George Staikos.
27324
27325         Fix ambiguous else cases by adding braces to nested if()s with elses.
27326
27327         * loader/MainResourceLoader.cpp:
27328         (WebCore::MainResourceLoader::continueAfterContentPolicy):
27329         * page/EventHandler.cpp:
27330         (WebCore::EventHandler::updateDragAndDrop):
27331         * rendering/RenderListMarker.cpp:
27332         (WebCore::toArmenianUnder10000):
27333         * rendering/TextControlInnerElements.cpp:
27334         (WebCore::TextControlInnerTextElement::defaultEventHandler):
27335
27336 2009-03-24  Eli Fidler  <eli.fidler@torchmobile.com>
27337
27338         Reviewed by George Staikos.
27339
27340         Move variable into proper platform block to quiet warning.
27341
27342         * html/CanvasRenderingContext2D.cpp:
27343         (WebCore::CanvasRenderingContext2D::drawTextInternal):
27344
27345 2009-03-24  Eric Carlson  <eric.carlson@apple.com>
27346
27347         Reviewed by Antti Koivisto.
27348
27349         Fix for <rdar://problem/6719375> Deal with QTKit loadstate changes when playing streaming movies
27350
27351         *  WebCore/html/HTMLMediaElement.cpp:
27352         (WebCore::HTMLMediaElement::setNetworkState): Deal with media engine reviving after having
27353         network state of NETWORK_NO_SOURCE.
27354
27355         *  WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
27356         (WebCore::MediaPlayerPrivate::updateStates): Reset m_readyState at each state change since
27357         some types of movies currently cause QTKit's load state to bounce around. QTMovieLoadStatePlaythroughOK
27358         corresponds to HaveFutureData, not HaveEnoughData.
27359
27360 2009-03-24  Adele Peterson  <adele@apple.com>
27361
27362         Reviewed by Darin Adler.
27363
27364         Fix for https://bugs.webkit.org/show_bug.cgi?id=24707
27365         <rdar://problem/6593021> Deleting with a caret in a blank, quoted line decreases the quoting, but does not delete the line
27366
27367         * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed):
27368         After breaking out of an empty mail blockquote, we still want continue with the deletion
27369         so actual content will get deleted, and not just the quote style.
27370
27371 2009-03-24  Darin Adler  <darin@apple.com>
27372
27373         Reviewed by Brady Eidson.
27374
27375         <rdar://problem/6624662> REGRESSION (r39904): can't save certain web pages as web archive (ones without favicons!)
27376
27377         * loader/archive/cf/LegacyWebArchive.cpp:
27378         (WebCore::LegacyWebArchive::create): Added a null check.
27379
27380 2009-03-24  Adam Langley  <agl@google.com>
27381
27382         Reviewed by Darin Fisher.
27383
27384         https://bugs.webkit.org/show_bug.cgi?id=24685
27385
27386         The Skia drawLine function takes subpixel values and attempts to draw
27387         a line with subpixel precision. This is complex and slow for drawing
27388         scrollbars which use only vertical and horizontal lines.
27389
27390         This changes the Chromium Linux scrollbar code to use drawIRect.
27391
27392         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
27393         (WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit):
27394         (WebCore::drawVertLine):
27395         (WebCore::drawHorizLine):
27396         (WebCore::drawBox):
27397         (WebCore::ScrollbarThemeChromium::paintTrackPiece):
27398         (WebCore::ScrollbarThemeChromium::paintThumb):
27399
27400 2009-03-24  David Kilzer  <ddkilzer@apple.com>
27401
27402         Bug 23310: Setting an absolute path (/abs) on an <iframe> with no src doesn't resolve the URL properly
27403
27404         <https://bugs.webkit.org/show_bug.cgi?id=23310>
27405
27406         Reviewed by Darin Adler.
27407
27408         Test: fast/frames/iframe-no-src-set-location.html
27409
27410         * dom/Document.cpp:
27411         (WebCore::Document::completeURL): If m_baseURL is empty or is
27412         about:blank and we have a parent document, use the parent
27413         document's URL for the base when completing a new URL.
27414
27415 2009-03-24  Simon Fraser  <simon.fraser@apple.com>
27416
27417         Reviewed by Dave Hyatt
27418         
27419         https://bugs.webkit.org/show_bug.cgi?id=24659
27420         
27421         When hit-testing 3d-transformed layers, it doesn't make sense to project the hitTestRect
27422         into the coordinate space of the layer, and doing so can result in pathalogical quads
27423         that break hit testing. In that case, simply use the same bounds as used for painting,
27424         which are the composited bounds for this layer.
27425
27426         Test: transforms/3d/hit-testing/rotated-hit-test.html
27427
27428         * rendering/RenderLayer.cpp:
27429         (WebCore::RenderLayer::hitTestLayer):
27430
27431 2009-03-24  Simon Fraser  <simon.fraser@apple.com>
27432
27433         Reviewed by Dave Hyatt
27434
27435         https://bugs.webkit.org/show_bug.cgi?id=24436
27436         
27437         When compositing is enabled, painting and hit testing end up using different
27438         clipping roots, because, for painting, every composited layer is a clipping root,
27439         but for hit testing only layers with transforms are. To fix this, we use
27440         temporary clip rects for hit testing, if the page is in compositing mode.
27441
27442         * rendering/RenderLayer.cpp:
27443         (WebCore::RenderLayer::paintLayer):
27444         (WebCore::RenderLayer::hitTestLayer):
27445         (WebCore::RenderLayer::parentClipRects):
27446         (WebCore::RenderLayer::calculateRects):
27447         * rendering/RenderLayer.h:
27448
27449 2009-03-24  Simon Fraser  <simon.fraser@apple.com>
27450
27451         Reviewed by Dan Bernstein
27452         
27453         https://bugs.webkit.org/show_bug.cgi?id=24782
27454
27455         Fix regression with CSS clip rects with non-length values, by reverting to
27456         the original code, but passing the zoom multiplier through convertToLength().
27457         
27458         Also make stylistic change in createTransformOperations(), renaming 'inStyle'
27459         to 'style.
27460         
27461         Tested by existing tests.
27462
27463         * css/CSSStyleSelector.cpp:
27464         (WebCore::convertToLength):
27465         (WebCore::CSSStyleSelector::applyProperty):
27466         (WebCore::CSSStyleSelector::createTransformOperations):
27467
27468 2009-03-24  David Hyatt  <hyatt@apple.com>
27469
27470         Reviewed by Simon Fraser
27471
27472         https://bugs.webkit.org/show_bug.cgi?id=21789, overflow:hidden elements should clip their foreground contents
27473         to a border-radius.
27474
27475         This patch makes non-self-painting overflow layers and control clips work with border-radius.  RenderLayers
27476         that should be clipped by overflow ancestors with border-radius are still broken.
27477
27478         Added fast/clip/overflow-border-radius-clip.html
27479
27480         * rendering/RenderBox.cpp:
27481         (WebCore::RenderBox::pushContentsClip):
27482
27483 2009-03-24  David Hyatt  <hyatt@apple.com>
27484
27485         Reviewed by Simon Fraser
27486
27487         https://bugs.webkit.org/show_bug.cgi?id=21789, overflow:hidden elements should clip their foreground contents.
27488         
27489         This first patch makes overflow:hidden properly clip the foreground contents of overflow:hidden replaced elements.  Common
27490         replaced elements now default to overflow:hidden in the UA stylesheet (this is what the spec specifically recommends be
27491         done).
27492     
27493         Added fast/replaced/border-radius-clip.html
27494
27495         * css/html4.css:
27496         * rendering/RenderReplaced.cpp:
27497         (WebCore::RenderReplaced::paint):
27498         * rendering/RenderWidget.cpp:
27499         (WebCore::RenderWidget::paint):
27500
27501 2009-03-24  Adele Peterson  <adele@apple.com>
27502
27503         RS by Mark Rowe.
27504
27505         Only build these Mail quirks checks in on the Mac.
27506
27507         * dom/Document.cpp: (WebCore::disableRangeMutation):
27508         * html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList):
27509
27510 2009-03-24  Brent Fulgham  <bfulgham@webkit.org>
27511
27512         Build fix, no review.
27513
27514         Remove ResourceLoaderCFNet.cpp from build list for Cairo Releas
27515         and Debug targets.
27516
27517         * WebCore.vcproj/WebCore.vcproj:
27518
27519 2009-03-24  Eric Carlson  <eric.carlson@apple.com>
27520
27521         Fix layout tests broken by r41907.
27522
27523         * html/HTMLMediaElement.cpp:
27524         (WebCore::HTMLMediaElement::setReadyState): Don't set "was playing" based on the new ready state
27525
27526 2009-03-24  Dmitry Titov  <dimich@chromium.org>
27527
27528         Reviewed by Dimitri Glazkov.
27529
27530         https://bugs.webkit.org/show_bug.cgi?id=24689
27531         Fix Chromium compilation errors.
27532
27533         * bindings/v8/WorkerContextExecutionProxy.cpp:
27534         (WebCore::WorkerContextExecutionProxy::FindOrCreateEventListener):
27535         (WebCore::WorkerContextExecutionProxy::RemoveEventListener):
27536
27537 2009-03-24  Yury Semikhatsky  <yurys@chromium.org>
27538
27539         Reviewed by Darin Adler.
27540
27541         https://bugs.webkit.org/show_bug.cgi?id=24759
27542         Add missing methods Element.prototype.removeMatchingStyleClasses and
27543         Node.prototype.enclosingNodeOrSelfWithNodeNameInArray to SourceFrame content
27544         iframe. These methods are called by Element.prototype.removeStyleClass and
27545         Node.prototype.enclosingNodeOrSelfWithNodeName.
27546
27547         * inspector/front-end/SourceFrame.js:
27548         (WebInspector.SourceFrame.prototype._loaded):
27549
27550 2009-03-24  Mark Mentovai  <mark@chromium.org>
27551
27552         Reviewed by Mark Rowe.
27553
27554         https://bugs.webkit.org/show_bug.cgi?id=24653
27555         WebKit should be buildable without prefix header injection.
27556         Adds missing #includes and forward declarations as needed.
27557
27558         * editing/SmartReplaceCF.cpp:
27559         * platform/graphics/mac/ColorMac.mm:
27560         * platform/graphics/mac/FontCacheMac.mm:
27561         * platform/graphics/mac/FontCustomPlatformData.h:
27562         * platform/graphics/mac/FontMac.mm:
27563         * platform/graphics/mac/FontMacATSUI.mm:
27564         * platform/graphics/mac/FontPlatformData.h:
27565         * platform/graphics/mac/FontPlatformDataMac.mm:
27566         * platform/graphics/mac/GraphicsContextMac.mm:
27567         * platform/graphics/mac/SimpleFontDataMac.mm:
27568         * platform/mac/FoundationExtras.h:
27569         * platform/mac/LocalCurrentGraphicsContext.h:
27570         * platform/mac/WebCoreSystemInterface.h:
27571         * platform/mac/WebCoreSystemInterface.mm:
27572         * platform/mac/WebCoreTextRenderer.h:
27573         * platform/mac/WebCoreTextRenderer.mm:
27574         * platform/mac/WebFontCache.h:
27575         * platform/mac/WebFontCache.mm:
27576         * platform/text/PlatformString.h:
27577         * platform/text/mac/ShapeArabic.c:
27578         * platform/text/mac/StringMac.mm:
27579         * rendering/RenderThemeChromiumMac.h:
27580
27581 2009-03-24  Dan Bernstein  <mitz@apple.com>
27582
27583         Reviewed by Darin Adler.
27584
27585         - fix <rdar://problem/6107874> by capping the nesting depth of
27586           "block-level" elements generated by the parser
27587
27588         Test: fast/parser/block-nesting-cap.html
27589
27590         * html/HTMLParser.cpp:
27591         (WebCore::HTMLParser::HTMLParser):
27592         (WebCore::HTMLParser::insertNode):
27593         (WebCore::HTMLParser::pushBlock):
27594         (WebCore::HTMLParser::popOneBlockCommon):
27595         (WebCore::HTMLParser::freeBlock):
27596         * html/HTMLParser.h:
27597
27598 2009-03-23  Greg Bolsinga  <bolsinga@apple.com>
27599
27600         Reviewed by David Kilzer.
27601
27602         https://bugs.webkit.org/show_bug.cgi?id=24771
27603         
27604         DOMTimeStamps are based upon 1970.
27605
27606         * platform/mac/GeolocationServiceMac.mm:
27607         (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
27608
27609 2009-03-23  Eric Seidel  <eric@webkit.org>
27610
27611         Build fix, no review.
27612
27613         * rendering/RenderObject.cpp:
27614         (WebCore::RenderObject::createVisiblePosition): change .container to .isNotNull()
27615
27616 2009-03-23  Eric Seidel  <eric@webkit.org>
27617
27618         Reviewed by Darin Adler.
27619
27620         Rename Position::container to m_anchorNode and make it private
27621         https://bugs.webkit.org/show_bug.cgi?id=24760
27622
27623         More code cleanup for Position.
27624
27625         Change all uses of m_container to node()
27626         Eventually most uses of node() should change to anchorNode() to designate
27627         that it's the node the Position is anchored to, but not necessarily the
27628         container of the position (it could be the before/after neighbor).
27629
27630         Remove any code which sets m_container, and change it to use a new
27631         Position::moveToPosition function which takes a node and offset.
27632         It never makes sense to change the node and leave the offset.
27633
27634         * dom/Position.h:
27635         (WebCore::Position::Position):
27636         (WebCore::Position::clear):
27637         (WebCore::Position::anchorNode):
27638         (WebCore::Position::node):
27639         (WebCore::Position::moveToPosition):
27640         (WebCore::Position::moveToOffset):
27641         (WebCore::Position::isNull):
27642         (WebCore::Position::isNotNull):
27643         (WebCore::operator==):
27644         * dom/Range.cpp:
27645         (WebCore::Range::create):
27646         (WebCore::Range::compareBoundaryPoints):
27647         * dom/RangeBoundaryPoint.h:
27648         (WebCore::RangeBoundaryPoint::container):
27649         (WebCore::RangeBoundaryPoint::set):
27650         (WebCore::RangeBoundaryPoint::setOffset):
27651         (WebCore::RangeBoundaryPoint::setToChild):
27652         (WebCore::RangeBoundaryPoint::setToStart):
27653         (WebCore::RangeBoundaryPoint::setToEnd):
27654
27655 2009-03-17  Eric Seidel  <eric@webkit.org>
27656
27657         Reviewed by David Hyatt.
27658
27659         document.write() should be able to make a document strict mode
27660         https://bugs.webkit.org/show_bug.cgi?id=24336
27661
27662         Remove an implicit write of "<html>" on the first document.write call
27663         this was added as part of a KDE import http://trac.webkit.org/changeset/798
27664         with no layout test or explanation.  I can't think of any reason why
27665         an implicit <html> write is necessary (or correct), so I'm removing it and
27666         adding a test for the correct behavior.  The parser will add any necessary
27667         HTMLHTMLElements during the write() anyway.
27668
27669         Our behavior is now tested by fast/dom/Document/document-write-doctype
27670         and matches IE, FF fails this new test.  Mozilla bug filed:
27671         https://bugzilla.mozilla.org/show_bug.cgi?id=483908
27672
27673         * dom/Document.cpp:
27674         (WebCore::Document::write):
27675
27676 2009-03-23  Sam Weinig  <sam@webkit.org>
27677
27678         Reviewed by Dan Bernstein.
27679
27680         Fix for <rdar://problem/6140966>
27681         Empty Caches does not clear the Cross-site XMLHttpRequest preflight cache
27682
27683         * WebCore.base.exp:
27684         * WebCore.xcodeproj/project.pbxproj:
27685         * loader/CrossOriginPreflightResultCache.cpp:
27686         (WebCore::CrossOriginPreflightResultCache::empty):
27687         * loader/CrossOriginPreflightResultCache.h:
27688
27689 2009-03-23  Darin Adler  <darin@apple.com>
27690
27691         Reviewed by Adele Peterson.
27692
27693         Bug 24726: hit testing doesn't work right when the click is on anonymous content
27694         https://bugs.webkit.org/show_bug.cgi?id=24726
27695         rdar://problem/6696992
27696
27697         Test: editing/selection/hit-test-anonymous.html
27698
27699         * rendering/RenderBR.cpp:
27700         (WebCore::RenderBR::positionForPoint): Call createVisiblePosition instead of
27701         creating a VisiblePosition directly. It will handle finding non-anonymous
27702         content nearby if node() is 0.
27703         * rendering/RenderBlock.cpp:
27704         (WebCore::positionForPointRespectingEditingBoundaries): Ditto.
27705         (WebCore::positionForPointWithInlineChildren): Ditto.
27706         (WebCore::RenderBlock::positionForPoint): Ditto.
27707         * rendering/RenderBox.cpp:
27708         (WebCore::RenderBox::positionForPoint): Ditto.
27709         * rendering/RenderObject.cpp:
27710         (WebCore::RenderObject::positionForPoint): Ditto.
27711         (WebCore::RenderObject::createVisiblePosition): Added.
27712         * rendering/RenderObject.h: Added createVisiblePosition.
27713         * rendering/RenderReplaced.cpp:
27714         (WebCore::RenderReplaced::positionForPoint): Call createVisiblePosition.
27715         * rendering/RenderSVGInlineText.cpp:
27716         (WebCore::RenderSVGInlineText::positionForPoint): Ditto.
27717         * rendering/RenderText.cpp:
27718         (WebCore::RenderText::positionForPoint): Ditto.
27719
27720 2009-03-23  Adele Peterson  <adele@apple.com>
27721
27722         Reviewed by Darin Adler & Dave Hyatt.
27723
27724         Fix for <rdar://problem/6621310> REGRESSION(35185): Apple Travel HTML emails missing some style after Safari 4 upgrade
27725
27726         Leopard Mail doesn't expect <style> to be in the body.  This change reverts back to the old behavior of
27727         moving <style> to <head> for that version of Mail.
27728
27729         * html/HTMLElement.cpp: (WebCore::HTMLElement::inEitherTagList):
27730
27731 2009-03-23  Adele Peterson  <adele@apple.com>
27732
27733         Reviewed by Mark Rowe & Dave Hyatt.
27734
27735         Merge some of the individual Mail quirks into two settings that we can check for future quirks.
27736
27737         * WebCore.base.exp:
27738         * dom/Document.cpp:
27739         (WebCore::disableRangeMutation):
27740         (WebCore::Document::nodeChildrenChanged):
27741         (WebCore::Document::nodeWillBeRemoved):
27742         (WebCore::Document::textInserted):
27743         (WebCore::Document::textRemoved):
27744         (WebCore::Document::textNodesMerged):
27745         (WebCore::Document::textNodeSplit):
27746         * page/Settings.cpp:
27747         (WebCore::Settings::Settings):
27748         (WebCore::Settings::setNeedsLeopardMailQuirks):
27749         (WebCore::Settings::setNeedsTigerMailQuirks):
27750         * page/Settings.h:
27751         (WebCore::Settings::needsLeopardMailQuirks):
27752         (WebCore::Settings::needsTigerMailQuirks):
27753
27754 2009-03-23  Ada Chan  <adachan@apple.com>
27755
27756         https://bugs.webkit.org/show_bug.cgi?id=24762
27757         Support text-indent in <option> elements on windows platform.
27758
27759         Reviewed by Adele Peterson.
27760
27761         * css/themeWin.css:
27762         * platform/PopupMenuStyle.h: We don't honor font specified on <option> elements right now.  Make this
27763         explicit via windows themed default stylesheet.
27764         (WebCore::PopupMenuStyle::PopupMenuStyle): Also store text-indent and text-direction.
27765         (WebCore::PopupMenuStyle::textIndent):
27766         (WebCore::PopupMenuStyle::textDirection):
27767         * platform/win/PopupMenuWin.cpp:
27768         (WebCore::PopupMenu::paint): Adjust the text's x-coordinate if text-indent is supported for options and 
27769         text-indent is specified with LTR direction.
27770         * rendering/RenderMenuList.cpp:
27771         (WebCore::RenderMenuList::updateOptionsWidth): Take text-indent into account if theme supports text-indent for options.
27772         (WebCore::RenderMenuList::itemStyle): Use new PopupMenuStyle constructor on windows.
27773         (WebCore::RenderMenuList::menuStyle): Ditto.
27774         * rendering/RenderTextControlSingleLine.cpp:
27775         (WebCore::RenderTextControlSingleLine::menuStyle): Ditto.
27776         * rendering/RenderTheme.h:
27777         (WebCore::RenderTheme::popupOptionSupportsTextIndent): Added.  Default is false since we are only supporting it in windows for now.
27778         * rendering/RenderThemeWin.h:
27779         (WebCore::RenderThemeWin::popupOptionSupportsTextIndent): Returns true for windows.
27780
27781 2009-03-23  Sam Weinig  <sam@webkit.org>
27782
27783         Reviewed by Anders Carlsson.
27784
27785         Fix for https://bugs.webkit.org/show_bug.cgi?id=24699
27786         REGRESSION: Java Applets broken
27787         <rdar://problem/6707494>
27788
27789         Fix loading Java applets without a codeBase. Only pass the base (up to the
27790         the last path component) of the baseURL to the plug-in.
27791
27792         * html/HTMLAppletElement.cpp:
27793         (WebCore::HTMLAppletElement::createRenderer):
27794         * platform/KURL.cpp:
27795         (WebCore::KURL::baseAsString):
27796         * platform/KURL.h:
27797
27798 2009-03-23  Darin Adler  <darin@apple.com>
27799
27800         Reviewed by Sam Weinig.
27801
27802         * platform/KURL.h: Removed now-incorrect comments.
27803         None of the parts include the separator characters any more, now that
27804         query doesn't include the "?", so the comments explaining which do and do
27805         not are no-longer helpful.
27806
27807 2009-03-23  David Levin  <levin@chromium.org>
27808
27809         Reviewed by Dimitri Glazkov.
27810
27811         https://bugs.webkit.org/show_bug.cgi?id=24764
27812
27813         Renamed files V8NodeFilter -> V8NodeFilterCondition to reflect
27814         class names.  Also fixed some headers that got mangled in search/replace
27815         operations.
27816
27817         No change in behavior, so no test.
27818
27819         * bindings/v8/V8NodeFilter.h: Removed.
27820         * bindings/v8/V8NodeFilterCondition.cpp: Renamed from WebCore/bindings/v8/V8NodeFilter.cpp.
27821         * bindings/v8/V8NodeFilterCondition.h: Added.
27822         * bindings/v8/custom/V8ClipboardCustom.cpp:
27823         * bindings/v8/custom/V8DocumentCustom.cpp:
27824         * bindings/v8/custom/V8ElementCustom.cpp:
27825         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
27826         * bindings/v8/custom/V8NavigatorCustom.cpp:
27827
27828 2009-03-23  Darin Fisher  <darin@chromium.org>
27829
27830         Reviewed by Antti Koivisto.
27831
27832         https://bugs.webkit.org/show_bug.cgi?id=24741
27833
27834         Adds a unique across-browser-sessions identifier to FormData, which may
27835         be used by ResourceHandle as a secondary cache key to enable cached
27836         form submissions.
27837
27838         At issue: two otherwise identical form submissions may result in
27839         completely independent responses, which may each be appropriate to
27840         store and reuse from cache.
27841
27842         * html/HTMLFormElement.cpp: Added call to FormData::setIdentifier so that
27843         we only enable cached form submissions for those generated by HTML.  This
27844         way we do not bother with POSTs generated by XMLHttpRequest.
27845         (WebCore::generateFormDataIdentifier):
27846         (WebCore::HTMLFormElement::createFormData):
27847         * platform/network/FormData.cpp: Initialize m_identifier to 0, which means
27848         the unspecified identifier.  So by default there is no identifier and
27849         nothing changes.
27850         (WebCore::FormData::FormData):
27851         * platform/network/FormData.h: Added m_identifier with setter and getter.
27852         (WebCore::FormData::setIdentifier):
27853         (WebCore::FormData::identifier):
27854
27855 2009-03-23  Simon Fraser  <simon.fraser@apple.com>
27856
27857         Reviewed by Antti Koivisto
27858         
27859         https://bugs.webkit.org/show_bug.cgi?id=24733
27860         
27861         Fix media controller with full-page zoom. Previously, the media controller
27862         shadow nodes never saw style changes on the RenderMedia, so did not respond
27863         to zooming at all. Now, we update the style on the shadow renderers
27864         whenever RenderMedia gets a style change. Also fix the video thumb in
27865         the theme to be scaled properly.
27866
27867         Test: media/video-controls-zoomed.html
27868
27869         * rendering/MediaControlElements.cpp:
27870         (WebCore::MediaControlShadowRootElement::updateStyle):
27871         (WebCore::MediaTextDisplayElement::MediaTextDisplayElement):
27872         (WebCore::MediaTextDisplayElement::updateStyle):
27873         (WebCore::MediaControlInputElement::MediaControlInputElement):
27874         (WebCore::MediaControlInputElement::updateStyle):
27875         * rendering/MediaControlElements.h:
27876         * rendering/RenderMedia.cpp:
27877         (WebCore::RenderMedia::styleDidChange):
27878         * rendering/RenderMedia.h:
27879         * rendering/RenderThemeMac.mm:
27880         (WebCore::RenderThemeMac::adjustSliderThumbSize):
27881
27882 2009-03-23  Mike Belshe  <mike@belshe.com>
27883
27884         Reviewed by Darin Adler.
27885
27886         https://bugs.webkit.org/show_bug.cgi?id=24739
27887
27888         Rework StringImpl::create methods to try to allocate a single buffer
27889         rather than allocating both the StringImpl class and a separate data
27890         buffer.
27891
27892         * platform/text/StringImpl.cpp:
27893         * platform/text/StringImpl.h:
27894
27895 2009-03-23  Darin Adler  <darin@apple.com>
27896
27897         Reviewed by Antti Koivisto.
27898
27899         Based on a patch by Nico Weber <nicolasweber@gmx.de>
27900
27901         Bug 24755: LayoutTests/http/tests/misc/url-in-utf16le.html regression
27902         https://bugs.webkit.org/show_bug.cgi?id=24755
27903
27904         * platform/text/TextEncoding.cpp:
27905         (WebCore::TextEncoding::isUTF7Encoding): Added. Checks if the current encoding
27906         is UTF7 without loading extended codecs.
27907         (WebCore::TextEncoding::encodingForFormSubmission): Use isUTF7Encoding() instead
27908         of comparing with UTF7Encoding(). Eliminate the explicit check of
27909         noExtendedTextEncodingNameUsed() because that's now handled by the functions
27910         that this function calls instead.
27911
27912         * platform/text/TextEncoding.h: Added isUTF7Encoding function.
27913         Also tweaked formatting a bit.
27914
27915 2009-03-20  Peter Kasting  <pkasting@google.com>
27916
27917         Reviewed by Darin Fisher.
27918
27919         https://bugs.webkit.org/show_bug.cgi?id=24720
27920         RenderThemeChromium should draw something for Slider parts instead of
27921         dropping them on the floor.
27922
27923         * platform/chromium/ChromiumBridge.h:
27924         * rendering/RenderThemeChromiumWin.cpp:
27925         (WebCore::RenderThemeChromiumWin::adjustSliderThumbSize):
27926         (WebCore::RenderThemeChromiumWin::paintSliderTrack):
27927         (WebCore::RenderThemeChromiumWin::determineSliderThumbState):
27928         (WebCore::RenderThemeChromiumWin::getThemeData):
27929         * rendering/RenderThemeChromiumWin.h:
27930         (WebCore::RenderThemeChromiumWin::paintSliderThumb):
27931
27932 2009-03-23  Glen Murphy  <glen@chromium.org>
27933
27934         Reviewed by Darin Fisher.
27935
27936         https://bugs.webkit.org/show_bug.cgi?id=24657
27937
27938         Fix Skia drawing of highly scaled bitmaps; the conversion to
27939         IntRect produced visible layout test failures in highly scaled 
27940         coordinate systems.
27941
27942         Test: svg/custom/image-small-width-height.svg
27943
27944         * WebCore\platform\graphics\skia\ImageSkia.cpp:
27945
27946 2009-03-23  David Kilzer  <ddkilzer@apple.com>
27947
27948         Provide JavaScript exception information after slow script timeout
27949
27950         Reviewed by Oliver Hunt.
27951
27952         * bindings/js/ScriptController.cpp:
27953         (WebCore::ScriptController::evaluate): Changed to report
27954         exceptions for the Interrupted completion type as well.
27955
27956 2009-03-23  Simon Fraser  <simon.fraser@apple.com>
27957
27958         Reviewed by Darin Adler
27959
27960         https://bugs.webkit.org/show_bug.cgi?id=24736
27961         
27962         Fix three mostly-unrelated problems with full-page zoom:
27963         
27964         * dom/Document.cpp:
27965         (WebCore::Document::elementFromPoint):
27966         Document::elementFromPoint() needs to take full-page zoom into account.
27967         
27968         * dom/MouseRelatedEvent.cpp:
27969         (WebCore::MouseRelatedEvent::receivedTarget):
27970         Take full-page zoom into account when computing offsetX/offsetY.
27971         
27972         * html/HTMLSelectElement.cpp:
27973         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
27974         Don't use offsetX/offsetY when hit testing list boxes; offsets were broken
27975         with full-page zoom, and using pageX/pageY is easier because we don't
27976         have to worry about the event target, and we already have a point in
27977         absolute coordinates.
27978
27979         Tests: fast/forms/listbox-hit-test-zoomed.html
27980                fast/forms/search-zoomed.html
27981                fast/forms/slider-zoomed.html
27982
27983 2009-03-23  Simon Fraser  <simon.fraser@apple.com>
27984
27985         Reviewed by Dan Bernstein
27986
27987         https://bugs.webkit.org/show_bug.cgi?id=24753
27988         
27989         The rect for CSS 'clip' needs to have zooming applied to it.
27990
27991         Test: fast/css/clip-zooming.html
27992
27993         * css/CSSStyleSelector.cpp:
27994         (WebCore::CSSStyleSelector::applyProperty):
27995
27996 2009-03-23  Eric Carlson  <eric.carlson@apple.com>
27997
27998         Reviewed by Adam Roben.
27999
28000         <rdar://problem/6704282>
28001         https://bugs.webkit.org/show_bug.cgi?id=24719
28002         QTMovieWinTimer logic inversion
28003
28004         Fix logic inversion in the Win32 timer used by QTMovieWin that caused it to always
28005         use SetTimer, even when the intervals was below USER_TIMER_MINIMUM. A side effect of
28006         this was that a movie timer would sometimes be blocked for significant amounts of time 
28007         because WM_TIMER messages are not processed when the thread's message queue has any
28008         higher priority messages, and WebCore/Win's timer uses PostMessage for low interval
28009         timers. Also change SetTimer call to use HWND and custom message instead of 
28010         timer function since the timer already has an HWND for processing PostMessage.
28011
28012         Not possible to make a test for this because it is so timing dependant.
28013
28014         * platform/graphics/win/QTMovieWinTimer.cpp:
28015         (TimerWindowWndProc):
28016         (setSharedTimerFireDelay):
28017
28018 2009-03-23  Eric Carlson  <eric.carlson@apple.com>
28019
28020         Reviewed by Adele Peterson.
28021
28022         https://bugs.webkit.org/show_bug.cgi?id=24588
28023         
28024         Update media element implementation to current HTML5 spec
28025
28026         New tests: 
28027                media/media-constants.html
28028                media/video-seek-no-src-exception.html
28029                media/video-source-add-src.html
28030                media/video-src-invalid-remove.html
28031                media/video-src-plus-source.html
28032                media/video-timeupdate-during-playback.html
28033
28034         * dom/EventNames.h: Remove obsolute events, add new ones.
28035         * html/HTMLMediaElement.cpp:
28036         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize new member vars.
28037         (WebCore::HTMLMediaElement::attributeChanged): Trigger load() only when we don't
28038         have a source.
28039         (WebCore::HTMLMediaElement::removedFromDocument): Deal with state name changes.
28040         (WebCore::HTMLMediaElement::scheduleProgressEvent): New, create a progress event and 
28041         add it to the event queue to be dispatch when the timer fires.
28042         (WebCore::HTMLMediaElement::scheduleEvent): New, create a generic event and add
28043         it to the event queue to be dispatch when the timer fires.
28044         (WebCore::HTMLMediaElement::enqueueEvent): Add an event to the queue and ticke the 
28045         asynch event timer.
28046         (WebCore::HTMLMediaElement::asyncEventTimerFired): Dispatch all pending events.
28047         (WebCore::HTMLMediaElement::loadTimerFired): Either trigger the initial load or
28048         try to load the next <source> url.
28049         (WebCore::HTMLMediaElement::load): Minor style change.
28050         (WebCore::HTMLMediaElement::loadInternal): The first part of the spec load algorithm, cleanup
28051         the current load (if any) and set up state for a new load.
28052         (WebCore::HTMLMediaElement::selectMediaResource): Deal with no 'src' or <source>, post 'loadstart'
28053         event, and initiate load from 'src' if present.
28054         (WebCore::HTMLMediaElement::loadNextSourceChild): Initiate load from next <source> url, or trigger
28055         noneSupported() if no more to consider.
28056         (WebCore::HTMLMediaElement::loadResource): Instantiate a new MediaPlayer and ask it to load a url.
28057         (WebCore::HTMLMediaElement::startProgressEventTimer): Start the repeating progress event timer.
28058         (WebCore::HTMLMediaElement::noneSupported): Post error event and set up state when no valid 
28059         media url was found.
28060         (WebCore::HTMLMediaElement::mediaEngineError): Post error event and set up state when no valid 
28061         media engine failed with a decode error or a network error.
28062         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
28063         (WebCore::HTMLMediaElement::setNetworkState): Updated for new spec network states.
28064         (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged):
28065         (WebCore::HTMLMediaElement::setReadyState): Updated for new spec ready state.
28066         (WebCore::HTMLMediaElement::progressEventTimerFired): Bail if the network is not active.
28067         (WebCore::HTMLMediaElement::seek): Return INVALID_STATE_ERR exception if state is too low or
28068         if player hasn't been set up yet. This is necessary becase load() is async. Clear the flag
28069         we use to guard against sending 'ended' more than once.
28070         (WebCore::HTMLMediaElement::duration): Don't bother calling media engine before it has metadata.
28071         (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Remove exception param, 0 is no longer an
28072         invalid rate. 
28073         (WebCore::HTMLMediaElement::setPlaybackRate): Remove exception param, 0 is no longer an
28074         invalid rate. Cache rate being set so we can use it later if media engine isn't ready now.
28075         (WebCore::HTMLMediaElement::play): Remove exception param, play() before load() now just
28076         starts loading asynchronously.
28077         (WebCore::HTMLMediaElement::playInternal): Remove exception param. Fire 'waiting' or 'playing'
28078         event depending on current state.
28079         (WebCore::HTMLMediaElement::pause): Remove exception param, pause() before load() now just
28080         starts loading asynchronously.
28081         (WebCore::HTMLMediaElement::pauseInternal): Remove exception param.
28082         (WebCore::HTMLMediaElement::setVolume): dispatchEventAsync -> scheduleEvent
28083         (WebCore::HTMLMediaElement::setMuted): dispatchEventAsync -> scheduleEvent
28084         (WebCore::HTMLMediaElement::togglePlayState): Remove exception param.
28085         (WebCore::HTMLMediaElement::beginScrubbing): pause() doesn't take an exception param.
28086         (WebCore::HTMLMediaElement::startPlaybackProgressTimer): New, starts timer that fires 4 times per
28087         second when the movie is playing to timeupdate so we can post 'timeupdate' events.
28088         (WebCore::HTMLMediaElement::playbackProgressTimerFired): Timer proc.
28089         (WebCore::HTMLMediaElement::scheduleTimeupdateEvent): Bottleneck around scheduling a 'timeupdate'
28090         event because we both fire them them when the spec says we should and when the media engine
28091         says that time has jumped, but we don't want to fire more than one at a given movie time. We also
28092         use this bottleneck to keep track of the last time one was posted so we won't fire too often
28093         during playback.
28094         (WebCore::HTMLMediaElement::canPlay): readyState now tracks whether or not we have metadata.
28095         (WebCore::HTMLMediaElement::havePotentialSourceChild): New, checks to see if there are a <source>
28096         element with a 'src' attribute that we have not tried to load yet.
28097         (WebCore::HTMLMediaElement::nextSourceChild): New, returns the url and content type of the next
28098         <source> element that we haven't tried to load.
28099         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Schedule 'seeked' event when seeking completes.
28100         Set a flag when we post the 'ended' event, clear it when time changed and we aren't at the end since
28101         some media engines call this proc more than once when playback reaches the end and stops, but we
28102         don't want to post 'ended' more than once.
28103         (WebCore::HTMLMediaElement::mediaPlayerDurationChanged): New, added so media engine can inform
28104         when the movie duration changes and we can post 'durationchanged' event.
28105         (WebCore::HTMLMediaElement::mediaPlayerRateChanged): New, added so media engine can inform when
28106         the rate changed and we can updated our cached rate. This is useful because we only want to know
28107         post periodic 'timeupdate' events when the movie is actually playing, and because we want to know
28108         the actual playback rate when it differs from what we tried to set.
28109         (WebCore::HTMLMediaElement::mediaPlayerSizeChanged): New, added so media engine can inform when
28110         a movie's intrinsic size changes and we can inform the renderer.
28111         (WebCore::HTMLMediaElement::potentiallyPlaying): Renamed from activelyPlaying since the spec now
28112         uses "actively playing" for this concept. Update logic for new state names and un-comment calls
28113         to stoppedDueToErrors() and pausedForUserInteraction() since the spec says those condiditons
28114         are part of the answer.
28115         (WebCore::HTMLMediaElement::endedPlayback): Update logic for new state names. 
28116         (WebCore::HTMLMediaElement::stoppedDueToErrors): New, spec says this logic should be part of
28117         the determination of "potentially playing".
28118         (WebCore::HTMLMediaElement::pausedForUserInteraction): New, placeholder for when (if) user
28119         agent supports this spec concept.
28120         (WebCore::HTMLMediaElement::updatePlayState): Stop timer used to fire periodic 'timeupdate' 
28121         events when we pauses the movie. Set the media engine rate before calling play() in case it
28122         wasn't set up when the rate was changed.
28123         (WebCore::HTMLMediaElement::stopPeriodicTimers): New, stop the progress event and 'timeupate'
28124         event timers.
28125         (WebCore::HTMLMediaElement::userCancelledLoad): New, logic pulled out of documentWillBecomeInactive
28126         and updated for the current spec.
28127         (WebCore::HTMLMediaElement::documentWillBecomeInactive): Moved some logic to userCancelledLoad.
28128         (WebCore::HTMLMediaElement::documentDidBecomeActive): Update comments.
28129         (WebCore::HTMLMediaElement::initialURL): Update for refactoring of code that determines the 
28130         initial url.
28131         * html/HTMLMediaElement.h: Change ReadyState and NetworkState enums to match names in the spec,
28132         update for changes in .cpp.
28133         (WebCore::HTMLMediaElement::):
28134
28135         * html/HTMLMediaElement.idl: Update ready state and network state constants for spec changes.
28136         defaultPlaybackRate, playbackRate, play(), and pause() no longer raise exceptions.
28137
28138         * html/HTMLSourceElement.cpp:
28139         (WebCore::HTMLSourceElement::insertedIntoDocument): Update for network state name changes.
28140
28141         * html/HTMLVideoElement.cpp:
28142         (WebCore::HTMLVideoElement::updatePosterImage): Update for ready state name changes.
28143
28144         * html/MediaError.h:
28145         (WebCore::MediaError::): add MEDIA_ERR_NONE_SUPPORTED.
28146
28147         * html/MediaError.idl: add MEDIA_ERR_NONE_SUPPORTED.
28148
28149         * loader/MediaDocument.cpp:
28150         (WebCore::MediaDocument::defaultEventHandler): play() and pause() don't take an exception.
28151
28152         * platform/graphics/MediaPlayer.cpp:
28153         (WebCore::NullMediaPlayerPrivate::readyState): Update for newtork state name changes.
28154         (WebCore::MediaPlayer::sizeChanged): New, so engine can report intrinsic size changes.
28155         (WebCore::MediaPlayer::rateChanged): New, so engine can report rate changes.
28156         (WebCore::MediaPlayer::durationChanged): New, so engine can report duration changes.
28157         * platform/graphics/MediaPlayer.h: Update NetworkState and ReadyState enum names to match spec
28158         states.
28159         (WebCore::MediaPlayerClient::mediaPlayerDurationChanged): New.
28160         (WebCore::MediaPlayerClient::mediaPlayerRateChanged): New.
28161         (WebCore::MediaPlayerClient::mediaPlayerSizeChanged): New.
28162         (WebCore::MediaPlayer::):
28163
28164         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
28165         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes.
28166         (WebCore::MediaPlayerPrivate::load): Ditto.
28167         (WebCore::MediaPlayerPrivate::updateStates): Ditto.
28168         (WebCore::MediaPlayerPrivate::loadingFailed): Ditto.
28169
28170         * platform/graphics/mac/MediaPlayerPrivateQTKit.h: Update for network/ready state name changes.
28171         Remove endPointTimer, it is no longer necessary. Add m_enabledTrackCount and m_duration.
28172         (WebCore::MediaPlayerPrivate::metaDataAvailable):
28173         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
28174         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer or m_endTime. Initialize
28175         m_enabledTrackCount and m_duration. Update for network/ready state name changes.
28176         (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes.
28177         (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer.
28178         (WebCore::MediaPlayerPrivate::pause): Ditto.
28179         (WebCore::MediaPlayerPrivate::currentTime): No more m_endTime.
28180         (WebCore::MediaPlayerPrivate::seek): Ditto.
28181         (WebCore::MediaPlayerPrivate::doSeek): Ditto, plus don't call setRate(0) when the rate is
28182         already zero.
28183         (WebCore::MediaPlayerPrivate::setEndTime): No more m_endTime.
28184         (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes. Return
28185         different errors depending on what causes a failure. Watch for and report duration changes.
28186         (WebCore::MediaPlayerPrivate::rateChanged): Report rate changes.
28187         (WebCore::MediaPlayerPrivate::sizeChanged): Report size changes.
28188         (WebCore::MediaPlayerPrivate::didEnd): No more endpoint timer.
28189         (WebCore::MediaPlayerPrivate::setVisible): Update for network/ready state name changes.
28190         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): Don't return number of unsupported
28191         tracks, store in m_enabledTrackCount so we can use it to help determine causes of failure.
28192
28193         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
28194         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Update for network/ready state name changes.
28195         (WebCore::MediaPlayerPrivate::load): Ditto.
28196         (WebCore::MediaPlayerPrivate::duration): Ditto.
28197         (WebCore::MediaPlayerPrivate::updateStates): Ditto.
28198         (WebCore::MediaPlayerPrivate::naturalSize): Ditto.
28199
28200         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
28201         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): No more m_endPointTimer. Update for 
28202         network/ready state name changes.
28203         (WebCore::MediaPlayerPrivate::load): Update for network/ready state name changes. No more
28204         m_endPointTimer.
28205         (WebCore::MediaPlayerPrivate::play): No more m_endPointTimer.
28206         (WebCore::MediaPlayerPrivate::pause): Ditto. 
28207         (WebCore::MediaPlayerPrivate::setEndTime): Ditto.
28208         (WebCore::MediaPlayerPrivate::updateStates): Update for network/ready state name changes.
28209         (WebCore::MediaPlayerPrivate::didEnd): No more m_endPointTimer.
28210         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
28211
28212         * rendering/MediaControlElements.cpp:
28213         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Update for network/ready state 
28214         name changes.
28215         (WebCore::MediaControlSeekButtonElement::defaultEventHandler): Ditto.
28216
28217 2009-03-22  Kevin Ollivier  <kevino@theolliviers.com>
28218
28219         wxGTK build fix. Add missing header.
28220
28221         * platform/wx/wxcode/gtk/non-kerned-drawing.cpp:
28222
28223 2009-03-22  Simon Fraser  <simon.fraser@apple.com>
28224
28225         Reviewed by Dan Bernstein
28226         
28227         https://bugs.webkit.org/show_bug.cgi?id=24665
28228         
28229         Image-map code in RenderImage could result in RenderImage::nodeAtPoint()
28230         setting HitTestResult::innerNode(), but returning false, which violates
28231         hit testing rules. Use a temporary HitTestResult so that we only fill in
28232         result when we know we've hit.
28233
28234         * rendering/RenderImage.cpp:
28235         (WebCore::RenderImage::nodeAtPoint):
28236
28237 2009-03-22  Simon Fraser  <simon.fraser@apple.com>
28238
28239         Reviewed by Dan Bernstein
28240         
28241         https://bugs.webkit.org/show_bug.cgi?id=24743
28242         
28243         Fix hit testing regression from r41840. We need to pass the temporary
28244         HitTestResult when testing sublayers, then only copy to 'result' when
28245         the layer is known to have been hit.
28246
28247         Test: fast/layers/zindex-hit-test.html
28248
28249         * rendering/RenderLayer.cpp:
28250         (WebCore::RenderLayer::hitTestLayer):
28251
28252 2009-03-20  Simon Fraser  <simon.fraser@apple.com>
28253
28254         Reviewed by Darin Adler
28255
28256         https://bugs.webkit.org/show_bug.cgi?id=24733
28257         
28258         Fix hit testing on video controls after full page zoom by fixing wider issue
28259         with event->pageX(), pageY() with zooming. pageX and pageY are "fixed" to be
28260         invariant under zooming (for JavaScript), so we keep an actual page point around
28261         in MouseEvent::absoluteLocation() to avoid the need to factor in zooming everywhere.
28262
28263         * dom/MouseRelatedEvent.cpp:
28264         (WebCore::MouseRelatedEvent::initCoordinates):
28265         (WebCore::MouseRelatedEvent::computePageLocation):
28266         * dom/MouseRelatedEvent.h:
28267         (WebCore::MouseRelatedEvent::absoluteLocation):
28268         (WebCore::MouseRelatedEvent::setAbsoluteLocation):
28269         Member var, and getter and setter for absoluteLocation.
28270         New method, computePageLocation(), to compute the actual page point,
28271         and call it when creating and initting mouse-related events.
28272
28273         * dom/Node.cpp:
28274         (WebCore::Node::dispatchMouseEvent):
28275         (WebCore::Node::dispatchWheelEvent):
28276         Keep non-adjusted pageX and pageY around, and call setAbsoluteLocation()
28277         on the event to replace a potentially rounded point.
28278         
28279         * html/HTMLInputElement.cpp:
28280         (WebCore::HTMLInputElement::defaultEventHandler):
28281         Clean up slider handling code.
28282         
28283         * html/HTMLSelectElement.cpp:
28284         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
28285         Add FIXME comment for use of offsetX/offsetY.
28286         
28287         * page/ContextMenuController.cpp:
28288         (WebCore::ContextMenuController::handleContextMenuEvent):
28289         Use absoluteLocation() when hit testing for context menus.
28290         
28291         * rendering/RenderFrameSet.cpp:
28292         (WebCore::RenderFrameSet::userResize):
28293         Use absoluteLocation() when resizing frames.
28294         
28295         * rendering/RenderMedia.cpp:
28296         (WebCore::RenderMedia::forwardEvent):
28297         Use absoluteLocation() when hit testing media controls.
28298
28299         * rendering/RenderSlider.cpp:
28300         (WebCore::HTMLSliderThumbElement::defaultEventHandler):
28301         (WebCore::RenderSlider::mouseEventIsInThumb):
28302         Use absoluteLocation() when handling slider events.
28303
28304         (WebCore::RenderSlider::forwardEvent):
28305         Factor some code out of HTMLInputElement::defaultEventHandler().
28306         
28307         * rendering/RenderTextControlSingleLine.cpp:
28308         (WebCore::RenderTextControlSingleLine::forwardEvent):
28309         Use absoluteLocation() when hit testing search field buttons, which fixees
28310         bugs in the search field with zooming.
28311
28312 2009-03-21  David Levin  <levin@chromium.org>
28313
28314         Reviewed by Dimitri Glazkov.
28315
28316         https://bugs.webkit.org/show_bug.cgi?id=24727
28317         Add V8XMLHttpRequest*.
28318
28319         * bindings/v8/V8XMLHttpRequestUtilities.cpp: Added.
28320         * bindings/v8/V8XMLHttpRequestUtilities.h: Added.
28321         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp: Added.
28322         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: Added.
28323         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp: Added.
28324
28325 2009-03-21  David Levin  <levin@chromium.org>
28326
28327         Reviewed by Dimitri Glazkov.
28328
28329         https://bugs.webkit.org/show_bug.cgi?id=24725
28330         Add V8NodeFilter.
28331
28332         * bindings/v8/V8NodeFilter.cpp: Added.
28333         * bindings/v8/V8NodeFilter.h: Added.
28334
28335 2009-03-21  Dan Bernstein  <mitz@apple.com>
28336
28337         Rubber-stamped by Kevin Decker
28338
28339         - remove some redundant #include statements
28340
28341         * bindings/js/JSDOMWindowBase.cpp:
28342
28343 2009-03-20  Dan Bernstein  <mitz@apple.com>
28344
28345         Reviewed by Mark Rowe.
28346
28347         - fix <rdar://problem/6574185> REGRESSION (3.2.2-TOT): hang in text drawing code
28348
28349         * platform/graphics/win/FontCGWin.cpp:
28350         (WebCore::drawGDIGlyphs): Changed glyph stroking to fill and stroke each
28351         glyph as a separate path, instead of all glyphs as a single path. This
28352         matches what CGContextShowGlyphsWithAdvances() does, and has comparable
28353         performance.
28354
28355 2009-03-20  Dean Jackson  <dino@apple.com>
28356
28357         Reviewed by Simon Fraser
28358
28359         Build fix for ENABLE(3D_RENDERING)
28360
28361         * rendering/RenderObject.h:
28362         (WebCore::makeMatrixRenderable):
28363
28364 2009-03-20  Dave Moore  <davemoore@google.com>
28365
28366         Reviewed by Dimitri Glazkov.
28367
28368         https://bugs.webkit.org/show_bug.cgi?id=24705
28369
28370         A bug in the V8 bindings is preventing chromium from setting the href on the
28371         location object...any attempt throws a security error, not just for javascript
28372         protocol
28373
28374         * page/Location.idl:
28375
28376 2009-03-20  Craig Schlenter  <craig.schlenter@gmail.com>
28377
28378         Reviewed by Dimitri Glazkov.
28379
28380         https://bugs.webkit.org/show_bug.cgi?id=24608
28381
28382         Include stdio.h needed for printf on gcc 4.4.0
28383
28384         * platform/KURLGoogle.cpp:
28385
28386 2009-03-20  Mike Belshe <mike@belshe.com>
28387
28388         Reviewed by Darin Fisher.
28389
28390         https://bugs.webkit.org/show_bug.cgi?id=24577
28391
28392         Don't let comments at the end of an event handler
28393         break the event handler.
28394
28395         No change in behavior, so no test.
28396
28397         * bindings/v8/V8LazyEventListener.cpp:
28398         (WebCore::V8LazyEventListener::getWrappedListenerFunction):
28399
28400 2009-03-20  Norbert Leser  <norbert.leser@nokia.com>
28401
28402         Reviewed by Darin Adler.
28403
28404         https://bugs.webkit.org/show_bug.cgi?id=24535
28405
28406         Fixes missing line terminator character (;) after macro call.
28407         It is common practice to add the trailing ";" where macros are substituted
28408         and not where they are defined with #define.
28409         This change is consistent with other macro declarations across webkit,
28410         and it also solves compilation failure with symbian compilers. 
28411  
28412         No change in behavior, so no test.
28413
28414         * bindings/js/JSDOMWindowShell.cpp:
28415         * bindings/js/JSEventListener.cpp:
28416         * bindings/js/JSImageConstructor.cpp:
28417         * bindings/js/JSInspectedObjectWrapper.cpp:
28418         * bindings/js/JSInspectorCallbackWrapper.cpp:
28419         * bindings/js/JSNamedNodesCollection.cpp:
28420         * bindings/js/JSNodeFilterCondition.cpp:
28421         * bindings/js/JSOptionConstructor.cpp:
28422         * bindings/js/JSQuarantinedObjectWrapper.cpp:
28423         * bindings/js/JSRGBColor.cpp:
28424         * bindings/js/JSWorkerContextBase.cpp:
28425         * bindings/js/JSXMLHttpRequestConstructor.cpp:
28426         * bindings/js/JSXSLTProcessorConstructor.cpp:
28427         * bindings/scripts/CodeGeneratorJS.pm:
28428
28429 2009-03-20  Mike Belshe  <mike@belshe.com>
28430
28431         Reviewed by Dimitri Glazkov and Dave Hyatt.
28432
28433         https://bugs.webkit.org/show_bug.cgi?id=24324
28434
28435         Make the minimum timer configurable for different platforms.
28436
28437         * page/DOMTimer.cpp:
28438         (WebCore::DOMTimer::DOMTimer):
28439         (WebCore::DOMTimer::fired):
28440         * page/DOMTimer.h:
28441         (WebCore::DOMTimer::minTimerInterval):
28442         (WebCore::DOMTimer::setMinTimerInterval):
28443
28444 2009-03-20  Dean McNamee  <deanm@chromium.org>
28445
28446         Reviewed by Darin Adler.
28447
28448         https://bugs.webkit.org/show_bug.cgi?id=22834
28449
28450         Make sure to consistently match new/delete and fastMalloc/fastFree.
28451
28452         * css/CSSSelectorList.cpp:
28453         (WebCore::CSSSelectorList::adoptSelectorVector):
28454         (WebCore::CSSSelectorList::deleteSelectors):
28455
28456 2009-03-20  Dan Bernstein  <mitz@apple.com>
28457
28458         Reviewed by Dave Hyatt.
28459
28460         - fix https://bugs.webkit.org/show_bug.cgi?id=23739
28461           <rdar://problem/6556371> REGRESSION (r36513): iframe isn't sized properly upon load
28462
28463         * rendering/RenderBlock.cpp:
28464         (WebCore::RenderBlock::percentHeightDescendants): Added this accessor.
28465         * rendering/RenderBlock.h:
28466         * rendering/RenderTableSection.cpp:
28467         (WebCore::RenderTableSection::layoutRows): Extended the check for
28468         children that flex to include other descendants with percent height
28469         which is relative to the cell.
28470
28471 2009-03-20  Dmitry Titov  <dimich@chromium.org>
28472
28473         Reviewed by Alexey Proskuryakov.
28474
28475         https://bugs.webkit.org/show_bug.cgi?id=24706
28476         Remove ScriptExecutionContext::encoding() since Workers do not need it.
28477         WorkerContext::encoding() is simply removed, while Document::encoding()
28478         made non-virtual and private. Workers use UTF-8 now except when instructed
28479         otherwise by http header. Also updated test.
28480
28481         * dom/Document.h: Made encoding() non-virtual and private.
28482         * dom/ScriptExecutionContext.h: removed encoding().
28483
28484         * workers/Worker.cpp:
28485         (WebCore::Worker::Worker):
28486         (WebCore::Worker::notifyFinished):
28487         * workers/WorkerContext.cpp: removed encoding() implementation.
28488         (WebCore::WorkerContext::WorkerContext):
28489         (WebCore::WorkerContext::completeURL):
28490         * workers/WorkerContext.h: removed encoding()
28491         (WebCore::WorkerContext::create):
28492         * workers/WorkerContextProxy.h:
28493         * workers/WorkerImportScriptsClient.cpp:
28494         (WebCore::WorkerImportScriptsClient::didReceiveData):
28495         * workers/WorkerMessagingProxy.cpp:
28496         (WebCore::WorkerMessagingProxy::startWorkerContext):
28497         * workers/WorkerMessagingProxy.h:
28498         * workers/WorkerThread.cpp:
28499         (WebCore::WorkerThreadStartupData::create):
28500         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
28501         (WebCore::WorkerThread::create):
28502         (WebCore::WorkerThread::WorkerThread):
28503         (WebCore::WorkerThread::workerThread):
28504         * workers/WorkerThread.h:
28505         In all these, removed storing encoding and 'inheriting' it from the parent.
28506         Instead, they are all using UTF-8 now.
28507
28508 2009-03-20  Timothy Hatcher  <timothy@apple.com>
28509
28510         Change how threading exceptions are checked so they are reported
28511         by what round they were added. That way WebKit can decided the
28512         behavior per-round based on linked-on-or-after checks.
28513
28514         <rdar://problem/6626741&6648478&6635474&6674079>
28515
28516         Reviewed by Darin Adler.
28517
28518         * WebCore.base.exp: Export the new symbols.
28519         * bindings/objc/DOMAbstractView.mm: Use the new WebCoreThreadViolationCheckRoundOne macro.
28520         * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
28521         * platform/ThreadCheck.h:
28522         * platform/mac/ThreadCheck.mm:
28523         (WebCore::readThreadViolationBehaviorFromUserDefaults): Refactor how the default is read.
28524         (WebCore::setDefaultThreadViolationBehavior): Take a round argument.
28525         (WebCore::reportThreadViolation): Ditto.
28526         (WebCoreReportThreadViolation): Ditto.
28527
28528 2009-03-20  Geoffrey Garen  <ggaren@apple.com>
28529
28530         Reviewed by Sam Weinig.
28531
28532         Fixed up an out-of-date comment.
28533
28534         * bindings/js/JSDOMWindowCustom.h:
28535         (WebCore::JSDOMWindow::customPut):
28536
28537 2009-03-20  Beth Dakin  <bdakin@apple.com>
28538
28539         Reviewed by Dave Hyatt.
28540
28541         Fix for https://bugs.webkit.org/show_bug.cgi?id=20909 REGRESSION 
28542         (r35318): A press release at pfizer.com does not display correctly
28543         - and corresponding -
28544         <rdar://problem/6680073>
28545
28546         * rendering/RenderObject.cpp:
28547         (WebCore::RenderObject::invalidateContainerPrefWidths):
28548         * rendering/RenderObject.h:
28549         (WebCore::RenderObject::markContainingBlocksForLayout):
28550
28551 2009-03-20  Eric Seidel  <eric@webkit.org>
28552
28553         Reviewed by Justin Garcia.
28554
28555         maxDeepOffset is confusing and should be removed
28556         https://bugs.webkit.org/show_bug.cgi?id=24586
28557
28558         Abstract some hard-to-read (but shared) logic into a new renderedAsNonInlineTableOrHR function.
28559         Add first/lastDeepEditingPositionForNode Position creation functions
28560         and deploy them to places we used to call maxDeepOffset.
28561
28562         Rename Position::atStart and atEnd to atStartOfTree atEndOfTree
28563         Add a new Position::atFirst/atLastEditingPositionForNode() and use these
28564         to replace a few more callers for maxDeepOffset()
28565         
28566         Rename maxDeepOffset to lastEditingOffsetForNode (so that we mere mortals have some clue what it does)
28567
28568         "Editing positions" are confusing because they have one
28569         of two behaviors, depending on if the container node is ignored
28570         by editing (if editingIgnoresContent(node) returns true) or not.
28571         Positions referring to nodes ignored by editing are
28572         neighbor-relative (they are before or after the node) where as
28573         positions reffering to other nodes are container-relative
28574         (they are between two child nodes of the container, identified
28575         by the offset() member).  I will be fixing this confusion in
28576         future patches.  These renames hopefully make the current behavior clearer.
28577
28578         * dom/Position.cpp:
28579         (WebCore::Position::previous):
28580         (WebCore::Position::next):
28581         (WebCore::Position::atFirstEditingPositionForNode):
28582         (WebCore::Position::atLastEditingPositionForNode):
28583         (WebCore::Position::atStartOfTree):
28584         (WebCore::Position::atEndOfTree):
28585         (WebCore::Position::previousCharacterPosition):
28586         (WebCore::Position::nextCharacterPosition):
28587         (WebCore::Position::upstream):
28588         (WebCore::Position::isCandidate):
28589         (WebCore::firstDeepEditingPositionForNode):
28590         (WebCore::lastDeepEditingPositionForNode):
28591         * dom/Position.h:
28592         * dom/PositionIterator.cpp:
28593         (WebCore::PositionIterator::operator Position):
28594         (WebCore::PositionIterator::increment):
28595         (WebCore::PositionIterator::decrement):
28596         (WebCore::PositionIterator::atEnd):
28597         (WebCore::PositionIterator::atEndOfNode):
28598         * editing/CompositeEditCommand.cpp:
28599         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
28600         * editing/DeleteSelectionCommand.cpp:
28601         (WebCore::isTableCellEmpty):
28602         (WebCore::DeleteSelectionCommand::removeNode):
28603         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
28604         * editing/Editor.cpp:
28605         (WebCore::Editor::advanceToNextMisspelling):
28606         * editing/InsertLineBreakCommand.cpp:
28607         (WebCore::InsertLineBreakCommand::doApply):
28608         * editing/InsertListCommand.cpp:
28609         (WebCore::InsertListCommand::doApply):
28610         * editing/ReplaceSelectionCommand.cpp:
28611         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent):
28612         * editing/TypingCommand.cpp:
28613         (WebCore::TypingCommand::forwardDeleteKeyPressed):
28614         * editing/VisiblePosition.cpp:
28615         (WebCore::VisiblePosition::previous):
28616         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
28617         (WebCore::VisiblePosition::left):
28618         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
28619         (WebCore::VisiblePosition::right):
28620         * editing/VisibleSelection.cpp:
28621         (WebCore::VisibleSelection::selectionFromContentsOfNode):
28622         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
28623         * editing/htmlediting.cpp:
28624         (WebCore::nextVisuallyDistinctCandidate):
28625         (WebCore::previousVisuallyDistinctCandidate):
28626         (WebCore::firstEditablePositionAfterPositionInRoot):
28627         (WebCore::lastEditablePositionBeforePositionInRoot):
28628         (WebCore::lastOffsetForEditing):
28629         (WebCore::isFirstPositionAfterTable):
28630         (WebCore::isLastPositionBeforeTable):
28631         (WebCore::positionBeforeNode):
28632         (WebCore::positionAfterNode):
28633         (WebCore::enclosingEmptyListItem):
28634         (WebCore::caretMaxOffset):
28635         * editing/htmlediting.h:
28636         * editing/visible_units.cpp:
28637         (WebCore::renderedAsNonInlineTableOrHR):
28638         (WebCore::startOfParagraph):
28639         (WebCore::endOfParagraph):
28640         (WebCore::startOfEditableContent):
28641         (WebCore::endOfEditableContent):
28642         * page/AccessibilityObject.cpp:
28643         (WebCore::endOfStyleRange):
28644         * page/AccessibilityRenderObject.cpp:
28645         (WebCore::AccessibilityRenderObject::visiblePositionRange):
28646         * rendering/RenderBox.cpp:
28647         (WebCore::RenderBox::positionForPoint):
28648
28649 2009-03-20  Dmitry Titov  <dimich@chromium.org>
28650
28651         Reviewed by Dimitri Glazkov.
28652
28653         https://bugs.webkit.org/show_bug.cgi?id=24689
28654         Add (upstream) V8 bindings for Workers. Mostly style cleaning.
28655
28656         * bindings/v8/WorkerContextExecutionProxy.cpp: Added.
28657         * bindings/v8/WorkerContextExecutionProxy.h: Added.
28658         * bindings/v8/WorkerScriptController.cpp: Added.
28659         * bindings/v8/WorkerScriptController.h: Added.
28660         * bindings/v8/V8Index.h: Added. This is just a wrapper for v8_index.h, like V8Proxy.h
28661         * bindings/v8/V8Proxy.h: Added domObjectMap() function that wraps GetDOMObjectMap().
28662         * bindings/v8/V8WorkerContextEventListener.cpp:
28663         (WebCore::V8WorkerContextEventListener::callListenerFunction): TrackEvent() renamed trackEvent()
28664
28665 2009-03-20  Stephen White  <senorblanco@chromium.org>
28666
28667         Reviewed by Eric Seidel.
28668
28669         Fix for LayoutTests/fast/canvas/canvas-text-alignment.html
28670         on chromium/skia.  The problem was that the gradient matrix
28671         for text was being applied twice.  Fixed by reverting some of
28672         https://bugs.webkit.org/show_bug.cgi?id=23957, so that skiaDrawText
28673         is no longer responsible for measuring the text and scaling up
28674         the gradient matrix.  Instead, the text bounding box is passed
28675         in from SVGPaintServerGradient.  I didn't make this change for CG,
28676         since it uses a different method (the gradient is drawn using the
28677         text as a pre-rendered mask).
28678         https://bugs.webkit.org/show_bug.cgi?id=24687
28679
28680         * platform/graphics/skia/SkiaFontWin.cpp:
28681         (WebCore::skiaDrawText):
28682         * svg/graphics/SVGPaintServerGradient.cpp:
28683         (WebCore::SVGPaintServerGradient::setup):
28684
28685 2009-03-20  Xan Lopez  <xlopez@igalia.com>
28686
28687         Rubber-stamped by Holger Freyther.
28688
28689         There seems to be some rounding error in cairo (or in how we use
28690         cairo) with some fonts, like DejaVu Sans Mono, which makes cairo
28691         report a height smaller than ascent + descent, which is wrong and
28692         confuses WebCore's layout system. Workaround this while we figure
28693         out what's going on.
28694
28695         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
28696         (WebCore::SimpleFontData::platformInit):
28697         * platform/graphics/gtk/SimpleFontDataPango.cpp:
28698         (WebCore::SimpleFontData::platformInit):
28699
28700 2009-03-19  Alexey Proskuryakov  <ap@webkit.org>
28701
28702         Reviewed by Darin Adler.
28703
28704         https://bugs.webkit.org/show_bug.cgi?id=24122
28705         <rdar://problem/6674179>
28706         REGRESSION: DOM Range extractContents/deleteContents failures seen on Moxiecode tests
28707
28708         Test: fast/dom/Range/deleted-range-endpoints.html
28709
28710         * dom/Range.cpp: (WebCore::Range::processContents): Set the final range in accordance
28711         to the specification.
28712
28713 2009-03-19  Anders Carlsson  <andersca@apple.com>
28714
28715         Reviewed by Dan Bernstein.
28716
28717         <rdar://problem/6682554> Flash content not being rendered (Shockwave Flash 10.0 r22)
28718         
28719         If calling updateWidget for some reason resulted in another widget being added to m_widgetUpdateSet, then
28720         that object would never be updated.
28721         
28722         * page/FrameView.cpp:
28723         (WebCore::FrameView::updateWidgets):
28724         Factor the widget updating code out into this method. Return true if the update set is empty.
28725         
28726         (WebCore::FrameView::performPostLayoutTasks):
28727         Loop over the update set multiple times until all widgets have been updated or until we reach the cap.
28728         
28729         * page/FrameView.h:
28730
28731 2009-03-18  Timothy Hatcher  <timothy@apple.com>
28732
28733         Make the defered data loading timer honor the Page's scheduled runloop pairs.
28734         Introduces a new RunLoopTimer class that has an API mimicking Timer but
28735         allows it to be scheduled with one or more SchedulePairs.
28736
28737         <rdar://problem/6687342> -[WebView scheduleInRunLoop:forMode:] has no affect on timers
28738
28739         Reviewed by Darin Adler.
28740
28741         * WebCore.xcodeproj/project.pbxproj: Adds the new RunLoopTimer.{cpp,h} files.
28742         * loader/MainResourceLoader.cpp:
28743         (WebCore::MainResourceLoader::handleDataLoadNow): Use the MainResourceLoaderTimer typedef.
28744         (WebCore::MainResourceLoader::startDataLoadTimer): Added. Start the timer and on
28745         Mac platforms also schedule with the Page's SchedulePairs.
28746         (WebCore::MainResourceLoader::handleDataLoadSoon): Call startDataLoadTimer().
28747         (WebCore::MainResourceLoader::setDefersLoading): Ditto.
28748         * loader/MainResourceLoader.h:
28749         * platform/cf/RunLoopTimerCF.cpp: Added.
28750         (WebCore::RunLoopTimerBase::~RunLoopTimerBase):
28751         (WebCore::timerFired):
28752         (WebCore::RunLoopTimerBase::start):
28753         (WebCore::RunLoopTimerBase::schedule):
28754         (WebCore::RunLoopTimerBase::stop):
28755         (WebCore::RunLoopTimerBase::isActive):
28756         * platform/RunLoopTimer.h: Added.
28757         (WebCore::RunLoopTimerBase::RunLoopTimerBase):
28758         (WebCore::RunLoopTimerBase::startRepeating):
28759         (WebCore::RunLoopTimerBase::startOneShot):
28760         (WebCore::RunLoopTimer::RunLoopTimer):
28761         (WebCore::RunLoopTimer::fired):
28762
28763 2009-03-19  Dimitri Glazkov  <dglazkov@chromium.org>
28764
28765         Reviewed by Darin Fisher.
28766
28767         https://bugs.webkit.org/show_bug.cgi?id=24702
28768         Upstream miscellaneous bindings changes.
28769
28770         * bindings/v8/ScheduledAction.cpp:
28771         (WebCore::ScheduledAction::execute): Changed to call lower-case evaluate.
28772         * bindings/v8/ScriptCallStack.h: Added an extra include.
28773
28774 2009-03-19  Simon Fraser  <simon.fraser@apple.com>
28775
28776         Reviewed by Dave Hyatt
28777
28778         https://bugs.webkit.org/show_bug.cgi?id=24686
28779         
28780         When hit testing a RenderLayer whose parent lives in a preserves-3D hierarchy,
28781         we need to compare the computed z-offset with the depth-test z-offset before
28782         deciding that such a RenderLayer was hit. This fixes an issue, tested by the
28783         3d-point-mapping-overlapping.html test, where the child of a transformed element
28784         is found by hit testing, even when some other element with greater Z overlaps
28785         them both.
28786         
28787         Improved the code by adding a utility method, isHitCandidate(), which computes and tests
28788         z-depth when necessary.
28789
28790         Tests: transforms/3d/point-mapping/3d-point-mapping-coplanar.html
28791                transforms/3d/point-mapping/3d-point-mapping-overlapping.html
28792
28793         * rendering/RenderLayer.cpp:
28794         (WebCore::isHitCandidate):
28795         (WebCore::RenderLayer::hitTestLayer):
28796
28797 2009-03-19  Jeremy Moskovich  <jeremy@chromium.org>
28798
28799         Reviewed by Dimitri Glazkov.
28800
28801         https://bugs.webkit.org/show_bug.cgi?id=24456
28802         Split ColorChromium.cpp into Mac & Windows variants.
28803         Remove Chromium Dependency on platform/graphics/mac/ColorMac.mm since we
28804         ultimately need to take a different approach.  For now, createCGColor()
28805         is copied from ColorMac.mm.
28806
28807         No observable change in behavior, so no test.
28808
28809         * platform/graphics/chromium/ColorChromium.cpp:
28810         (WebCore::focusRingColor):
28811         * platform/graphics/chromium/ColorChromiumMac.mm: Added.
28812
28813 2009-03-19  Pavel Feldman  <pfeldman@chromium.org>
28814
28815         Reviewed by Dimitri Glazkov.
28816
28817         https://bugs.webkit.org/show_bug.cgi?id=24675
28818         Unforking frontend: add custom InspectorController methods
28819         implementation.
28820
28821         * bindings/v8/custom/V8InspectorControllerCustom.cpp: Added.
28822
28823 2009-03-19  Jay Campan  <jcampan@google.com>
28824
28825         Reviewed by Dimitri Glazkov.
28826
28827         https://bugs.webkit.org/show_bug.cgi?id=24625
28828         Adding an accessor to the currently selected index in the PopupMenuChromium.
28829         This is required for implementing the deletion of an autocomplete entry in Chromium.
28830
28831         * platform/chromium/PopupMenuChromium.cpp:
28832         (WebCore::PopupContainer::selectedIndex):
28833         * platform/chromium/PopupMenuChromium.h:
28834
28835 2009-03-19  Evan Stade  <estade@chromium.org>
28836
28837         Reviewed by Dimitri Glazkov.
28838
28839         https://bugs.webkit.org/show_bug.cgi?id=24526
28840         Improve windows skia text stroking.
28841
28842         Test: LayoutTests/svg/custom/struct-use-09-b.svg
28843
28844         * platform/graphics/skia/SkiaFontWin.cpp: Close the path representing
28845         each font glyph polygon, rather than only closing the path once per
28846         letter. This fixes stroking for letters with multiple polygons, such
28847         as 'A' or 'D'.
28848         (WebCore::getPathForGlyph):
28849         (WebCore::skiaDrawText):
28850
28851 2009-03-19  Simon Hausmann  <simon.hausmann@nokia.com>
28852
28853         Reviewed by Tor Arne Vestbø.
28854
28855         Fixed support for doing calls from JavaScript into NPAPI Plugins for the Qt port on Windows.
28856
28857         Removed dead code for distinguishing between Widget and PluginView in the Qt port.
28858
28859         * bindings/js/ScriptControllerQt.cpp:
28860         (WebCore::ScriptController::createScriptInstanceForWidget): Removed incorrect isNPAPI check.
28861         * plugins/PluginView.cpp:
28862         (WebCore::PluginView::PluginView): Removed m_isNPAPIPlugin variable.
28863         * plugins/PluginView.h: Removed setter/getter.
28864         * plugins/mac/PluginViewMac.cpp:
28865         (WebCore::PluginView::init): Removed call to setIsNPAPIPlugin.
28866         * plugins/qt/PluginViewQt.cpp:
28867         (WebCore::PluginView::init): Ditto.
28868
28869 2009-03-19  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
28870
28871         Reviewed by Oliver Hunt.
28872
28873         Bug 24596: ASSERT in JSC::PropertySlot::slotBase @ iGoogle homepage
28874         <https://bugs.webkit.org/show_bug.cgi?id=24596>
28875         <rdar://problem/6686493>
28876
28877         JSDOMWindow::customGetOwnPropertySlot() does an access check after calling
28878         JSGlobalObject::getOwnPropertySlot(). This causes the PropertySlot to be
28879         set twice, once to the value that is illegal to access, and then to undefined
28880         This causes an assertion failure in property access caching code.
28881
28882         The fix is to do the access check before calling JSGlobalObject::getOwnPropertySlot().
28883
28884         * bindings/js/JSDOMWindowCustom.h:
28885         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
28886
28887 2009-03-18  Alexey Proskuryakov  <ap@webkit.org>
28888
28889         Reviewed by Sam Weinig.
28890
28891         https://bugs.webkit.org/show_bug.cgi?id=24676
28892         Simple cross-origin requests shouldn't dispatch upload progress events
28893
28894         Test: http/tests/xmlhttprequest/simple-cross-origin-progress-events.html
28895
28896         * loader/CrossOriginAccessControl.cpp: (WebCore::passesAccessControlCheck): Added a comment
28897         explaining the somewhat unexpected behavior of this function.
28898
28899         * xml/XMLHttpRequestUpload.cpp: (WebCore::XMLHttpRequestUpload::hasListeners):
28900         * xml/XMLHttpRequestUpload.h:
28901         Report whether there are any event listeners registered.
28902
28903         * xml/XMLHttpRequest.h: Added m_uploadEventsAllowed.
28904
28905         * xml/XMLHttpRequest.cpp:
28906         (WebCore::XMLHttpRequest::createRequest): Set m_uploadEventsAllowed flag.
28907         (WebCore::XMLHttpRequest::makeSameOriginRequest): Ditto.
28908         (WebCore::XMLHttpRequest::makeCrossOriginAccessRequest): Ditto.
28909         (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest): Set request body - it can be
28910         non-empty for POST requests.
28911         (WebCore::XMLHttpRequest::makeCrossOriginAccessRequestWithPreflight): Set m_uploadEventsAllowed flag.
28912         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult): Ditto.
28913         (WebCore::XMLHttpRequest::abort): Only dispatch upload progress events if allowed.
28914         (WebCore::XMLHttpRequest::networkError): Ditto.
28915         (WebCore::XMLHttpRequest::abortError): Ditto.
28916         (WebCore::XMLHttpRequest::didSendData): Ditto.
28917
28918 2009-03-18  Marc-Antoine Ruel  <maruel@chromium.org>
28919
28920         Reviewed by Darin Fisher.
28921
28922         https://bugs.webkit.org/show_bug.cgi?id=24398
28923         Fix a crash when loading a svg file in Chromium's test_shell and
28924         then reloading the page.
28925
28926         * history/BackForwardListChromium.cpp:
28927         (WebCore::BackForwardList::BackForwardList):
28928         (WebCore::BackForwardList::close):
28929
28930 2009-03-18  Eric Carlson  <eric.carlson@apple.com>
28931
28932         Reviewed by Simon Fraser.
28933
28934         Fix for <rdar://problem/6685235>
28935         <video> element poster cannot be set dynamically if not originally set up in HTML
28936         
28937         Allocate the media engine immediately so the plug-in proxy is available for
28938         scripting right away.
28939
28940         * platform/graphics/MediaPlayer.cpp:
28941         (WebCore::MediaPlayer::MediaPlayer):
28942
28943 2009-03-18  Beth Dakin  <bdakin@apple.com>
28944
28945         Reviewed by Dave Hyatt.
28946
28947         Fix for <rdar://problem/6636747> REGRESSION (Safari 4 PB-r41326): 
28948         Popup menu appears at the wrong location on page at http://
28949         www.signonsandiego.com/
28950
28951         This was a regression from http://trac.webkit.org/changeset/40769, 
28952         which changed the base class of RenderInline to 
28953         RenderBoxModelObject rather than RenderBox.
28954
28955         * rendering/RenderObject.cpp:
28956         (WebCore::RenderObject::offsetParent): offsetParent should return a 
28957         RenderBoxModelObject rather than just a RenderBox, which is more 
28958         restrictive. 
28959
28960 2009-03-18  Anders Carlsson  <andersca@apple.com>
28961
28962         Reviewed by Darin Adler.
28963
28964         <rdar://problem/6504776> 
28965         CrashTracer: [USER] 188 crashes in Safari at com.apple.WebCore • WTF::HashTableIterator<WTF::RefPtr<WebCore::ResourceLoader>, ...
28966
28967         Return early in case calling the client ends up spinning the run loop and completing/cancelling the load.
28968         
28969         * loader/NetscapePlugInStreamLoader.cpp:
28970         (WebCore::NetscapePlugInStreamLoader::didCancel):
28971
28972 2009-03-18  David Levin  <levin@chromium.org>
28973
28974         Reviewed by Dimitri Glazkov.
28975
28976         https://bugs.webkit.org/show_bug.cgi?id=24664
28977         Upstreaming v8 collection.h
28978
28979         No change in behavior, so no test.
28980
28981         * bindings/v8/V8Collection.h: Added.
28982
28983 2009-03-18  Sam Weinig  <sam@webkit.org>
28984
28985         Reviewed by Simon Fraser.
28986
28987         Fix for https://bugs.webkit.org/show_bug.cgi?id=23966
28988         REGRESSION: Custom arrow navigation functionality doesn't work at dropular.net
28989         <rdar://problem/6589657>
28990
28991         Match the CSSOM spec for getClientRects and getBoundingClientRect by
28992         returning a 0x0 rect at the correct top/left position for empty inline
28993         boxes.
28994
28995         * rendering/RenderInline.cpp:
28996         (WebCore::RenderInline::absoluteRects):
28997         (WebCore::RenderInline::absoluteQuads):
28998
28999 2009-03-18  David Levin  <levin@chromium.org>
29000
29001         Reviewed by Eric Seidel.
29002
29003         Match the changes done for windows in the bug
29004         https://bugs.webkit.org/show_bug.cgi?id=24530.
29005
29006         No change in behavior, so no test.
29007
29008         * rendering/RenderThemeChromiumLinux.cpp:
29009         (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
29010
29011 2009-03-18  Dirk Schulze  <krit@webkit.org>
29012
29013         Reviewed by Holger Freyther.
29014
29015         Added support for SVG's stroked texts to Qt.
29016
29017         [Qt] SVGs stroked text support missing
29018         https://bugs.webkit.org/show_bug.cgi?id=24262
29019
29020         * platform/graphics/qt/FontQt.cpp:
29021         (WebCore::Font::drawComplexText):
29022
29023 2009-03-18  Mark Rowe  <mrowe@apple.com>
29024
29025         Reviewed by Alexey Proskuryakov.
29026
29027         Fix fast/encoding/char-decoding.html with recent ICU.
29028
29029         * platform/text/TextCodecICU.cpp:
29030         (WebCore::TextCodecICU::decode): Look for gb18030 case-insensitively,
29031         as newer versions of ICU use GB18030 as the canonical name.
29032
29033 2009-03-17  David Levin  <levin@chromium.org>
29034
29035         Reviewed by Dimitri Glazkov.
29036
29037         https://bugs.webkit.org/show_bug.cgi?id=24662
29038         Chromium build fixes.
29039
29040         Bug https://bugs.webkit.org/show_bug.cgi?id=24663 tracks
29041         the invalid implementation of ScriptCallStack.
29042
29043         No change in behavior, so no test.
29044
29045         * bindings/v8/ScriptCallStack.h:
29046         (WebCore::ScriptCallStack::state):
29047         * platform/graphics/skia/PlatformContextSkia.cpp:
29048         (PlatformContextSkia::drawRect):
29049
29050 2009-03-17  David Carson  <dacarson@apple.com>
29051
29052         Reviewed by David Hyatt.
29053
29054         Add anchor elements to the simple style sheet so that applications that 
29055         are using WebKit just for simple text and links will also take advantage
29056         of the fast path.
29057
29058         * css/CSSStyleSelector.cpp:
29059         (WebCore::elementCanUseSimpleDefaultStyle):
29060
29061 2009-03-17  Darin Adler  <darin@apple.com>
29062
29063         Reviewed by Adele Peterson.
29064
29065         <rdar://problem/6687005> Need support for new move-left/right selectors.
29066
29067         * editing/EditorCommand.cpp:
29068         (WebCore::executeMoveToLeftEndOfLine): Added.
29069         (WebCore::executeMoveToLeftEndOfLineAndModifySelection): Added.
29070         (WebCore::executeMoveToRightEndOfLine): Added.
29071         (WebCore::executeMoveToRightEndOfLineAndModifySelection): Added.
29072         Added command entries for the functions above.
29073
29074 2009-03-17  Ojan Vafai  <ojan@chromium.org>
29075
29076         Reviewed by Adele Peterson.
29077
29078         Put the padding inside scrollbars on textareas.
29079         https://bugs.webkit.org/show_bug.cgi?id=24370
29080         
29081         Put the padding inside the scrollbars on textareas. This is done by moving the
29082         overflow from the shadowNode to the RenderTextControlMultiline. As a result,
29083         all of the scroll handing methods that RenderTextControl overrides can be moved
29084         down into RenderTextControlSingleLine since RenderTextControlMultiline can now
29085         just use RenderBlock's versions. This also allows RenderTextControlMultiLine to
29086         no longer need a custom layout method since the shadowNode can now just size
29087         like a regular DIV.
29088
29089         * css/CSSStyleSelector.cpp:
29090         (WebCore::CSSStyleSelector::adjustRenderStyle):
29091         * rendering/RenderTextControl.cpp:
29092         (WebCore::RenderTextControl::styleDidChange):
29093         (WebCore::RenderTextControl::selection):
29094         (WebCore::RenderTextControl::calcHeight):
29095         (WebCore::RenderTextControl::hitInnerTextElement):
29096         * rendering/RenderTextControl.h:
29097         * rendering/RenderTextControlMultiLine.cpp:
29098         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
29099         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
29100         * rendering/RenderTextControlMultiLine.h:
29101         * rendering/RenderTextControlSingleLine.cpp:
29102         (WebCore::RenderTextControlSingleLine::styleDidChange):
29103         (WebCore::RenderTextControlSingleLine::autoscroll):
29104         (WebCore::RenderTextControlSingleLine::scrollWidth):
29105         (WebCore::RenderTextControlSingleLine::scrollHeight):
29106         (WebCore::RenderTextControlSingleLine::scrollLeft):
29107         (WebCore::RenderTextControlSingleLine::scrollTop):
29108         (WebCore::RenderTextControlSingleLine::setScrollLeft):
29109         (WebCore::RenderTextControlSingleLine::setScrollTop):
29110         (WebCore::RenderTextControlSingleLine::scroll):
29111         * rendering/RenderTextControlSingleLine.h:
29112         * rendering/TextControlInnerElements.cpp:
29113         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock):
29114         (WebCore::RenderTextControlInnerBlock::positionForPoint):
29115         (WebCore::TextControlInnerTextElement::createRenderer):
29116
29117 2009-03-17  Darin Adler  <darin@apple.com>
29118
29119         Reviewed by David Hyatt.
29120
29121         Bug 24517: REGRESSION (r41552): innerHTML does an updateLayout -- unneeded and can be slow
29122         https://bugs.webkit.org/show_bug.cgi?id=24517
29123
29124         * editing/DeleteButtonController.cpp:
29125         (WebCore::DeleteButtonController::enable): Added a call to updateRendering, since
29126         determining whether to display the delete button involves style and updateRendering
29127         also updates style (should probably be named updateStyle, in fact). Not needed to fix
29128         this bug, but would have prevented the crash that led to this bug in the first place.
29129
29130         * editing/EditCommand.cpp:
29131         (WebCore::EditCommand::EditCommand): Get rid of unneeded null check. All frames have
29132         delete button controllers.
29133         * editing/Editor.cpp:
29134         (WebCore::Editor::rangeForPoint): Ditto.
29135
29136         * editing/markup.cpp:
29137         (WebCore::appendStartMarkup): Changed a "&" to a "&&" so that generating markup
29138         doesn't depend on renderers at all when the convertBlocksToInlines boolean is false.
29139         This allows us to omit the call to updateLayoutIgnorePendingStylesheets in the
29140         createMarkup function that's called by innerHTML.
29141         (WebCore::MarkupAccumulator::appendMarkup): Turned this into a class with a member
29142         function. Added a feature where the accumulator will skip a node. Moved arguments
29143         that don't change during recursion into an object. This function still is a bit
29144         inefficient, since it creates a new HashMap at every level as it recurses, but for now
29145         I did not tackle that. Also replaced the onlyIncludeChildren boolean with EChildrenOnly
29146         for consistency and clarity.
29147         (WebCore::createMarkup): Removed the call to updateLayoutIgnorePendingStylesheets.
29148         Instead of calling disable/enable on the delete button controller's container element,
29149         pass it in to the markup accumulator as a node to skip.
29150
29151 2009-03-17  Scott Violet  <sky@google.com>
29152
29153         Reviewed by Eric Seidel.
29154
29155         https://bugs.webkit.org/show_bug.cgi?id=24651
29156         Skia does not always render text fill/stroke pattern/gradient/color correctly
29157
29158         Changes Skia's font rendering to only render gradient/pattern if current
29159         color space indicates the gradient/pattern should be used.
29160         This is covered by LayoutTests/fast/canvas/canvas-text-alignment.html .
29161     
29162         * platform/graphics/GraphicsContext.cpp:
29163         (WebCore::GraphicsContext::strokeColorSpace):
29164         (WebCore::GraphicsContext::fillColorSpace):
29165         * platform/graphics/GraphicsContext.h:
29166         (WebCore::):
29167         * platform/graphics/GraphicsContextPrivate.h:
29168         * platform/graphics/skia/SkiaFontWin.cpp:
29169         (WebCore::paintSkiaText):
29170
29171 2009-03-17  Adele Peterson  <adele@apple.com>
29172
29173         Reviewed by Darin Adler.
29174
29175         Fix for https://bugs.webkit.org/show_bug.cgi?id=24655
29176         <rdar://problem/6633727> Hitting return at the end of a line with an anchor jumps me to the bottom of the message
29177
29178         Test: editing/inserting/6633727.html
29179
29180         This changes does a few things:
29181         1) Renames pos to insertionPosition.
29182         2) Eliminates "startNode".  It doesn't work well to consider the node separately from the insertionPosition.  
29183            The insertionPosition gets updated at various times, and it seems likely that startNode can get out of sync.
29184         3) Before building up a list of ancestors to move around when we insert the new block, make sure to use the deepest
29185            representation of the insertionPosition, so all ancestor nodes are correctly included.
29186
29187         * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply):
29188
29189 2009-03-17  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
29190
29191         Reviewed by Kevin Ollivier.
29192
29193         https://bugs.webkit.org/show_bug.cgi?id=24115
29194         Introduce platform independent stubs for plugins.
29195
29196         * plugins/PluginDataNone.cpp: Copied from WebCore/plugins/wx/PluginDataWx.cpp.
29197         * plugins/PluginPackageNone.cpp: Copied from WebCore/plugins/wx/PluginPackageWx.cpp.
29198         * plugins/PluginViewNone.cpp: Copied from WebCore/plugins/wx/PluginViewWx.cpp.
29199         * plugins/wx/PluginDataWx.cpp: Removed.
29200         * plugins/wx/PluginPackageWx.cpp: Removed.
29201         * plugins/wx/PluginViewWx.cpp: Removed.
29202         * webcore-wx.bkl:
29203
29204 2009-03-17  Darin Adler  <darin@apple.com>
29205
29206         Earlier version reviewed by Adele Peterson.
29207
29208         Bug 24304: REGRESSION (r39864): Hitting the space bar to select an <input type=radio>
29209         or push an <input type=button> or <button> causes the page to scroll down.
29210
29211         Would be best to add a regression test for Windows eventually; tested that this has
29212         no effect on the Mac OS X platform.
29213
29214         * html/HTMLInputElement.cpp:
29215         (WebCore::HTMLInputElement::defaultEventHandler): Added FIXMEs and tweaked formatting.
29216         Use the code that calls the base class's defaultEventHandler early only in the cases
29217         where it's needed: keydown and keypress events in text fields. In other cases, do the
29218         more typical thing and call the default handler only at the end of the function.
29219         This function already had code to make sure the keypress event for space never gets
29220         through, but it was running too late since the scrolling code was moved into the
29221         base class default event handler.
29222
29223 2009-03-17  Simon Fraser  <simon.fraser@apple.com>
29224
29225         Reviewed by Dave Hyatt
29226
29227         https://bugs.webkit.org/show_bug.cgi?id=24632
29228
29229         Fix repaint issues when composited layers come and go (only applies
29230         when ACCELERATED_COMPOSITING is turned on).
29231         
29232         * rendering/RenderLayer.cpp:
29233         (WebCore::RenderLayer::RenderLayer):
29234         * rendering/RenderLayer.h:
29235         (WebCore::RenderLayer::mustOverlayCompositedLayers):
29236         (WebCore::RenderLayer::setMustOverlayCompositedLayers):
29237         * rendering/RenderLayerBacking.cpp:
29238         (WebCore::RenderLayerBacking::RenderLayerBacking):
29239         * rendering/RenderLayerBacking.h:
29240
29241         Move what used to be the 'forceCompositingLayer' flag from RenderLayerBacking
29242         to RenderLayer, because we don't want the side-effects of creating RenderLayerBacking
29243         when setting this flag.
29244         
29245         * rendering/RenderLayerCompositor.cpp:
29246         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
29247         When a RenderLayer flips into or out of compositing mode, compute a repaint
29248         rect relative to the containerForRepaint, and repaint it.
29249         
29250         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
29251         Call layer->setMustOverlayCompositedLayers() rather than setForcedCompositingLayer().
29252         
29253         (WebCore::RenderLayerCompositor::needsToBeComposited):
29254         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
29255         (WebCore::RenderLayerCompositor::requiresCompositingForTransform):
29256         (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
29257         * rendering/RenderLayerCompositor.h:
29258         
29259         Rename requiresCompositingLayerForTransform() to requiresCompositingForTransform()
29260         and make it a class static method to match requiresCompositingForAnimation(). Both
29261         now take RenderObjects, rathern than RenderLayers.
29262         
29263         * rendering/style/RenderStyle.h:
29264         (WebCore::InheritedFlags::hasTransformRelatedProperty):
29265         Minor tidyup using convenience methods added in an earlier commit.
29266
29267 2009-03-17  Simon Fraser  <simon.fraser@apple.com>
29268
29269         Reviewed by Darin Adler
29270
29271         https://bugs.webkit.org/show_bug.cgi?id=24396
29272
29273         * config.h:
29274         Add WTF_USE_ACCELERATED_COMPOSITING, defined to 0 for now, and add some
29275         comments to make the #ifdefs more readable.
29276
29277         * css/CSSComputedStyleDeclaration.cpp:
29278         (WebCore::computedTransform):
29279         Add a comment to mention that we don't flatten the matrix.
29280         
29281         * css/MediaQueryEvaluator.cpp:
29282         (WebCore::transform_3dMediaFeatureEval):
29283         Have the 'transform-3d' media query evaluate to 'true' if 3d-rendering
29284         is supported.
29285         
29286         * platform/graphics/mac/GraphicsLayerCA.mm:
29287         (WebCore::GraphicsLayerCA::animateTransform):
29288         No need for the #ifdef here. If we don't support 3d, we will have already flattened
29289         the matrix.
29290         
29291         * platform/graphics/transforms/TransformationMatrix.cpp:
29292         (WebCore::TransformationMatrix::makeAffine):
29293         * platform/graphics/transforms/TransformationMatrix.h:
29294         New method to convert the matrix to an affine matrix by throwing a way the non-affine
29295         parts.
29296         
29297         * rendering/RenderLayer.cpp:
29298         (WebCore::RenderLayer::updateTransform):
29299         (WebCore::RenderLayer::currentTransform):
29300         * rendering/RenderLayerBacking.cpp:
29301         (WebCore::RenderLayerBacking::updateLayerTransform):
29302         If 3d rendering is not supported, convert the matrix to an affine matrix
29303         which can be rendered, and used for hit testing.
29304         
29305         * rendering/RenderLayerCompositor.cpp:
29306         Change the name of the exported symbol that webkitdirs.pm uses to know if
29307         3d rendering is supported. There is no other 3d-rendering-specific symbol we can sniff.
29308         
29309         * rendering/RenderObject.cpp:
29310         (WebCore::RenderObject::transformFromContainer):
29311         Only take perspective into account if 3d rendering is supported.
29312
29313         * rendering/RenderObject.h:
29314         (WebCore::makeMatrixRenderable):
29315         Utility method that flattens a matrix if 3d rendering is not supported.
29316
29317 2009-03-17  Kevin Ollivier  <kevino@theolliviers.com>
29318
29319         wx build fix. Fix typo after mouse wheel changes.
29320
29321         * platform/wx/MouseWheelEventWx.cpp:
29322         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
29323
29324 2009-03-17  Darin Adler  <darin@apple.com>
29325
29326         * inspector/ConsoleMessage.cpp:
29327         (WebCore::ConsoleMessage::isEqual): Fix build, remove stray parenthesis.
29328
29329 2009-03-17  Darin Adler  <darin@apple.com>
29330
29331         Fix crash seen right away when running run-webkit-tests.
29332
29333         * inspector/ConsoleMessage.cpp:
29334         (WebCore::ConsoleMessage::isEqual): Restore assertion to its behavior pre-refactoring.
29335         Also tweaked formatting a bit.
29336
29337 2009-03-17  Alexey Proskuryakov  <ap@webkit.org>
29338
29339         Reviewed by Darin Adler.
29340
29341         HTMLSelectElement::add() doesn't look at exception code returned from insertBefore(), so 
29342         it doesn't need to zero it out before calling.
29343
29344         * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::add): Removed "ec = 0" line.
29345
29346 2009-03-17  Dan Bernstein  <mitz@apple.com>
29347
29348         Reviewed by Adam Roben.
29349
29350         - WebCore part of adding a mechanism for controlling the caching of
29351           responses through WebFrameLoaderClient
29352
29353         Mac already has such a mechanism, and this adds one for CFNetwork ports.
29354
29355         * WebCore.vcproj/WebCore.vcproj: Added EmptyClients.h
29356         and ResourceLoaderCFNet.cpp.
29357
29358         * loader/EmptyClients.h:
29359         (WebCore::EmptyFrameLoaderClient::shouldCacheResponse): Added an
29360         implementation that always returns true.
29361
29362         * loader/FrameLoaderClient.h: Declared shouldCacheResponse().
29363
29364         * loader/ResourceLoader.h: Ditto.
29365
29366         * loader/cf/ResourceLoaderCFNet.cpp: Added.
29367         (WebCore::ResourceLoader::shouldCacheResponse): Added. Calls through to
29368         FrameLoaderClient::shouldCacheResponse().
29369
29370         * platform/network/ResourceHandleClient.h:
29371         (WebCore::ResourceHandleClient::shouldCacheResponse): Added an
29372         implementation that always returns true.
29373
29374         * platform/network/cf/ResourceHandleCFNet.cpp:
29375         (WebCore::willCacheResponse): Added a call to
29376         ResourceHandleClient::shouldCacheResponse(). If the client returns
29377         false, return 0, which will prevent CFNetwork from caching the response.
29378
29379 2009-03-17  Alexey Proskuryakov  <ap@webkit.org>
29380
29381         Reviewed by Darin Adler.
29382
29383         https://bugs.webkit.org/show_bug.cgi?id=13287
29384         Cannot change SELECT to a dynamically created option
29385
29386         Tests: fast/forms/add-and-remove-option.html
29387                fast/forms/add-remove-option-modification-event.html
29388                fast/forms/add-selected-option.html
29389                fast/forms/select-cache-desynchronization.html
29390
29391         * dom/ContainerNode.cpp:
29392         (WebCore::dispatchChildInsertionEvents): Increment DOM tree version. This will happen when
29393         dispatching DOMSubtreeModified again, but the version should be incremented for event
29394         listeners to have an up to date view of the DOM.
29395         (WebCore::dispatchChildRemovalEvents): Ditto.
29396
29397         * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::insertedIntoTree):
29398         Make sure that the select element knows about its new selected option.
29399
29400         * html/HTMLOptionElement.h: Use insertedIntoTree() instead of insertedIntoDocument(),
29401         because DOM also needs to be updated for forms that are not in document yet. Similar
29402         problems exist for node removing, but removedFromTree() is called at a wrong time, so
29403         those problems cannot be fixed without deeper refactoring.
29404
29405         * html/HTMLSelectElement.cpp:
29406         (WebCore::HTMLSelectElement::setRecalcListItems): Reset m_activeSelectionAnchorIndex - it
29407         doesn't make sense to keep the anchor after programmatically changing the selection, and
29408         keeping it was causing a failure in fast/forms/listbox-selection.html.
29409
29410         * html/HTMLSelectElement.h: Removed overrides for ContainerNode methods that only called
29411         base class versions.
29412
29413 2009-03-17  Steve Falkenburg  <sfalken@apple.com>
29414
29415         <rdar://problem/6690324> Accessing FTP sites reads unallocated memory, can result in garbled entries or crashes
29416         
29417         Reviewed by Darin Adler.
29418
29419         * loader/FTPDirectoryDocument.cpp:
29420         (WebCore::FTPDirectoryTokenizer::parseAndAppendOneLine): Assign CString to a local while we hold pointers into it.
29421
29422 2009-03-16  David Hyatt  <hyatt@apple.com>
29423
29424         <rdar://problem/6648411> REGRESSION: Layout of page is wrong at http://www.popcap.com/
29425
29426         Make sure that the initial shouldPaint check that looks at enclosingLayers properly skips over
29427         layers that don't paint themselves.  This is done by adding a new enclosingSelfPaintingLayer method
29428         so that RenderObjects can walk up the enclosing layer chain and skip any layers that don't paint
29429         themselves.
29430
29431         Reviewed by Darin Adler.
29432
29433         Added fast/block/float/overlapping-floats-with-overflow-hidden.html
29434
29435         * WebCore.base.exp:
29436         * rendering/RenderBlock.cpp:
29437         (WebCore::RenderBlock::addOverhangingFloats):
29438         * rendering/RenderObject.cpp:
29439         (WebCore::RenderObject::enclosingSelfPaintingLayer):
29440         * rendering/RenderObject.h:
29441
29442 2009-03-17  Xan Lopez  <xlopez@igalia.com>
29443
29444         Reviewed by Holger Freyther.
29445
29446         https://bugs.webkit.org/show_bug.cgi?id=24592
29447         [GTK] Crash in FcPatternHash
29448
29449         Style fixes.
29450
29451         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
29452         (WebCore::FontPlatformData::operator=):
29453         * platform/graphics/gtk/FontPlatformDataPango.cpp:
29454
29455 2009-03-17  Xan Lopez  <xlopez@igalia.com>
29456
29457         Reviewed by Holger Freyther.
29458
29459         https://bugs.webkit.org/show_bug.cgi?id=24592
29460         [GTK] Crash in FcPatternHash
29461
29462         Sanitize memory management in pango fonts.
29463
29464         Release memory allocated by FontPlatformDataPango in its own
29465         destructor instead of doing it from other classes, and add copy
29466         constructor and '=' operator to be able to track referenced
29467         objects properly.
29468
29469         * platform/graphics/gtk/FontPlatformDataPango.cpp:
29470         (WebCore::FontPlatformData::~FontPlatformData):
29471         (WebCore::FontPlatformData::operator=):
29472         (WebCore::FontPlatformData::FontPlatformData):
29473         * platform/graphics/gtk/SimpleFontDataPango.cpp:
29474
29475 2009-03-17  Darin Adler  <darin@apple.com>
29476
29477         Reviewed by Alexey Proskuryakov.
29478
29479         Bug 24624: Crash in imageLoadEventTimerFired after adoptNode used on <img>,
29480         seen with inspector, which uses adoptNode
29481         https://bugs.webkit.org/show_bug.cgi?id=24624
29482         rdar://problem/6422850
29483
29484         Test: fast/dom/HTMLImageElement/image-load-cross-document.html
29485
29486         * dom/Document.cpp:
29487         (WebCore::Document::Document): Removed m_imageLoadEventTimer.
29488         (WebCore::Document::detach): Removed m_imageLoadEventDispatchSoonList and
29489         m_imageLoadEventDispatchingList.
29490         (WebCore::Document::implicitClose): Called ImageLoader::dispatchPendingLoadEvents
29491         instead of dispatchImageLoadEventsNow.
29492
29493         * dom/Document.h: Removed ImageLoader, dispatchImageLoadEventSoon,
29494         dispatchImageLoadEventsNow, removeImage, m_imageLoadEventDispatchSoonList,
29495         m_imageLoadEventDispatchingList, m_imageLoadEventTimer, and imageLoadEventTimerFired.
29496
29497         * loader/ImageLoader.cpp:
29498         (WebCore::loadEventSender): Added. Returns the single global ImageLoadEventSender
29499         object used privately as the target of the load event timer.
29500         (WebCore::ImageLoader::~ImageLoader): Call ImageLoadEventSender::cancelLoadEvent
29501         rather than Document::removeImage.
29502         (WebCore::ImageLoader::setImage): Use m_element directly, not element().
29503         (WebCore::ImageLoader::updateFromElement): Ditto. Also name the local variable
29504         document instead of doc.
29505         (WebCore::ImageLoader::notifyFinished): Call ImageLoadEventSender::dispatchLoadEventSoon
29506         rather than Document::dispatchImageLoadEventSoon.
29507         (WebCore::ImageLoader::dispatchPendingLoadEvent): Added. Handles the common logic
29508         about when load events can be dispatched so that dispatchLoadEvent only has to
29509         have the specific part for each derived class. This includes a check that the
29510         document is attached, which used to be handled by having documents empty out the
29511         image load event vectors in the detach function.
29512         (WebCore::ImageLoader::dispatchPendingLoadEvents): Added. Calls the appropriate
29513         function on the ImageLoadEventSender, which avoids the need to have that class be
29514         public in the ImageLoader header.
29515         (WebCore::ImageLoadEventSender::ImageLoadEventSender): Added. Has the code that
29516         was previously in the Document constructor.
29517         (WebCore::ImageLoadEventSender::dispatchLoadEventSoon): Added. Has the code that
29518         was previously in Document::dispatchImageLoadEventSoon.
29519         (WebCore::ImageLoadEventSender::cancelLoadEvent): Added. Has the code that was
29520         previously in Document::removeImage.
29521         (WebCore::ImageLoadEventSender::dispatchPendingLoadEvents): Added. Has the code
29522         that was previously in Document::dispatchImageLoadEventsNow.
29523         (WebCore::ImageLoadEventSender::timerFired): Added. Calls dispatchPendingLoadEvents.
29524
29525         * loader/ImageLoader.h: Improved comments. Made the virtual functions private
29526         or protected rather than public. Added static dispatchPendingLoadEvents function
29527         for use by Document and private dispatchPendingLoadEvent function for use by
29528         ImageLoadEventSender. Made setLoadingImage private and eliminated
29529         setHaveFiredLoadEvent since that can all be done inside the class without any
29530         member functions.
29531
29532         * html/HTMLImageLoader.cpp:
29533         (WebCore::HTMLImageLoader::dispatchLoadEvent): Removed logic to check whether a
29534         load event already fired and whether image() is 0. These are now both base class
29535         responsibilities.
29536         * svg/SVGImageLoader.cpp:
29537         (WebCore::SVGImageLoader::dispatchLoadEvent): Ditto.
29538         * wml/WMLImageLoader.cpp:
29539         (WebCore::WMLImageLoader::dispatchLoadEvent): Ditto.
29540
29541 2009-03-17  Dimitri Glazkov  <dglazkov@chromium.org>
29542
29543         Reviewed by Timothy Hatcher.
29544
29545         https://bugs.webkit.org/show_bug.cgi?id=24623
29546         Refactor ConsoleMessage to use ScriptFuncitonCall and eliminate JSC
29547         dependencies.
29548
29549         * bindings/js/ScriptFunctionCall.cpp:
29550         (WebCore::ScriptFunctionCall::appendArgument): Added uint and ScriptString-taking methods.
29551         * bindings/js/ScriptFunctionCall.h:
29552         * bindings/js/ScriptObjectQuarantine.cpp:
29553         (WebCore::quarantineValue): Added generic ScriptValue quarantine helper.
29554         * bindings/js/ScriptObjectQuarantine.h:
29555         * bindings/js/ScriptValue.cpp:
29556         (WebCore::ScriptValue::isEqual): Added.
29557         * bindings/js/ScriptValue.h:
29558         * inspector/ConsoleMessage.cpp:
29559         (WebCore::ConsoleMessage::ConsoleMessage):
29560         (WebCore::ConsoleMessage::addToConsole): Added.
29561         (WebCore::ConsoleMessage::isEqual): Changed to use ScriptValue::isEqual.
29562         * inspector/ConsoleMessage.h:
29563         (WebCore::ConsoleMessage::incrementCount): Added.
29564         * inspector/InspectorController.cpp:
29565         (WebCore::InspectorController::addConsoleMessage): Changed to use ConsoleMessage::addToConsole.
29566         (WebCore::InspectorController::populateScriptObjects): Ditto.
29567         * inspector/InspectorController.h:
29568
29569 2009-03-17  Kevin Ollivier  <kevino@theolliviers.com>
29570
29571         Reviewed by Mark Rowe.
29572
29573         Get BUILDING_ON_* defines from Platform.h.
29574         
29575         https://bugs.webkit.org/show_bug.cgi?id=24630
29576
29577         * WebCorePrefix.h:
29578
29579 2009-03-16  Xan Lopez  <xlopez@igalia.com>
29580
29581         Reviewed by Holger Freyther.
29582
29583         https://bugs.webkit.org/show_bug.cgi?id=24592
29584         [GTK] Crash in FcPatternHash
29585
29586         Sanitize memory management in gtk fonts.
29587
29588         Release memory allocated by FontPlatformDataGtk in its own
29589         destructor instead of doing it from other classes, and add copy
29590         constructor and '=' operator to be able to track referenced
29591         objects properly.
29592
29593         * platform/graphics/gtk/FontPlatformData.h:
29594         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
29595         (WebCore::FontPlatformData::operator=):
29596         (WebCore::FontPlatformData::FontPlatformData):
29597         (WebCore::FontPlatformData::~FontPlatformData):
29598         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
29599         (WebCore::SimpleFontData::platformDestroy):
29600
29601 2009-03-17  Ariya Hidayat  <ariya.hidayat@nokia.com>
29602
29603         Build fix for Qt < 4.5.
29604
29605         As reported by Yael Aharon  <yael.aharon@nokia.com>
29606
29607         * platform/graphics/qt/GraphicsContextQt.cpp:
29608         (WebCore::GraphicsContext::drawLine):
29609
29610 2009-03-17  Alexey Proskuryakov  <ap@webkit.org>
29611
29612         Reviewed by Sam Weinig.
29613
29614         https://bugs.webkit.org/show_bug.cgi?id=24614
29615         Access control checks are different in cached and uncached cases
29616
29617         Test: http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached.html
29618
29619         * loader/CrossOriginAccessControl.cpp:
29620         (WebCore::isOnAccessControlSimpleRequestMethodWhitelist): Factored out simple method
29621         check for use in both cached and uncached cases. In cached case, an old definition that
29622         omitted HEAD was still used.
29623         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Check that content type has an
29624         allowed value. This is needed in all call sites. Also changed to compare MIME type, not
29625         content type.
29626         (WebCore::isSimpleCrossOriginAccessRequest): Use the above methods.
29627
29628         * loader/CrossOriginAccessControl.h: Expose isOnAccessControlSimpleRequestMethodWhitelist.
29629
29630         * loader/CrossOriginPreflightResultCache.cpp:
29631         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod):
29632         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
29633         Use the new checks for simple method and header.
29634
29635 2009-03-16  Gustavo Noronha Silva  <gns@gnome.org> and Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
29636
29637         Reviewed by Mark Rowe.
29638
29639         https://bugs.webkit.org/show_bug.cgi?id=24638
29640         [GTK] HTML5 media tags do not work
29641
29642         Add a repaint-requested signal to the video sink, and use it to
29643         call MediaPlayerPrivate::repaint, so that the video actually
29644         plays.
29645
29646         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
29647         (WebCore::mediaPlayerPrivateRepaintCallback):
29648         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
29649         * platform/graphics/gtk/VideoSinkGStreamer.cpp:
29650         (webkit_video_sink_idle_func):
29651         (webkit_video_sink_render):
29652         (webkit_video_sink_class_init):
29653
29654 2009-03-16  Gustavo Noronha Silva  <gns@gnome.org> and Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
29655
29656         Reviewed by Holger Freyther.
29657
29658         https://bugs.webkit.org/show_bug.cgi?id=24638
29659         [GTK] HTML5 media tags do not work
29660
29661         Work-around the fact that gst_element_query_duration returns true even
29662         though it is unable to figure out the duration when in stream (push)
29663         mode.
29664
29665         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
29666         (WebCore::MediaPlayerPrivate::duration):
29667
29668 2009-03-16  Darin Adler  <darin@apple.com>
29669
29670         Reviewed by Kevin Decker.
29671
29672         <rdar://problem/6642742> Top Sites malfunction when switching text zoom mode
29673
29674         * page/Frame.cpp:
29675         (WebCore::Frame::setNeedsReapplyStyles): Don’t do anything if the frame is
29676         currently showing a non-HTML view.
29677
29678 2009-03-16  Darin Adler  <darin@apple.com>
29679
29680         Reviewed by Adele Peterson.
29681
29682         Bug 24629: moving forward or backward a paragraph fails at edge of document
29683         https://bugs.webkit.org/show_bug.cgi?id=24629
29684         rdar://problem/6544413
29685
29686         Test: editing/selection/move-paragraph-document-edges.html
29687
29688         * editing/visible_units.cpp:
29689         (WebCore::previousParagraphPosition): Use the last result from
29690         previousLinePosition rather than going all the way back to what was originally
29691         passed in when we hit exception cases like null or not moving. This correctly
29692         inherits the behavior of previousLinePosition when we are in a paragraph at the
29693         edge of a document.
29694         (WebCore::nextParagraphPosition): Ditto.
29695
29696 2009-03-16  Darin Adler  <darin@apple.com>
29697
29698         Reviewed by Adele Peterson.
29699
29700         Bug 24619: RenderObject::selectionStartEnd does not need to be a virtual function
29701         https://bugs.webkit.org/show_bug.cgi?id=24619
29702
29703         * rendering/RenderObject.h: Remove virtual keyword from selectionStartEnd declaration.
29704         * rendering/RenderView.h: Ditto.
29705
29706 2009-03-16  Peter Kasting  <pkasting@google.com>
29707
29708         Reviewed by David Hyatt.
29709
29710         https://bugs.webkit.org/show_bug.cgi?id=24368
29711         DOM scroll events should be based off the actual number of wheel
29712         ticks, not off the number of lines scrolled.  This matches IE.
29713
29714         * dom/Node.cpp:
29715         (WebCore::Node::dispatchWheelEvent):
29716         * dom/WheelEvent.cpp:
29717         (WebCore::WheelEvent::WheelEvent):
29718         * dom/WheelEvent.h:
29719         (WebCore::WheelEvent::create):
29720         * platform/PlatformWheelEvent.h:
29721         (WebCore::PlatformWheelEvent::wheelTicksX):
29722         (WebCore::PlatformWheelEvent::wheelTicksY):
29723         * platform/gtk/WheelEventGtk.cpp:
29724         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
29725         * platform/mac/WheelEventMac.mm:
29726         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
29727         * platform/qt/WheelEventQt.cpp:
29728         * platform/win/WheelEventWin.cpp:
29729         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
29730         * platform/wx/MouseWheelEventWx.cpp:
29731         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
29732
29733 2009-03-16  Simon Fraser  <simon.fraser@apple.com>
29734
29735         Reviewed by Eric Seidel
29736         
29737         Clean up a few issues in the Animation code:
29738
29739         * page/animation/AnimationBase.cpp:
29740         (WebCore::AnimationBase::updateStateMachine):
29741         Whitespace
29742         
29743         (WebCore::AnimationBase::willNeedService):
29744         Don't round to float, use std::max
29745
29746         * page/animation/AnimationController.cpp:
29747         (WebCore::AnimationControllerPrivate::startTimeResponse):
29748         Fix erroneously copied line to null out m_lastResponseWaiter.
29749
29750 2009-03-12  David Hyatt  <hyatt@apple.com>
29751
29752         Reviewed by Eric Seidel
29753
29754         https://bugs.webkit.org/show_bug.cgi?id=13632
29755
29756         Overflow scrolling needs to account for the bottom/right padding on the object itself as well
29757         as for bottom/right margins on children.
29758
29759         Existing tests cover this.
29760
29761         * rendering/RenderBlock.cpp:
29762         (WebCore::RenderBlock::lowestPosition):
29763         (WebCore::RenderBlock::rightmostPosition):
29764
29765 2009-03-16  Sam Weinig  <sam@webkit.org>
29766
29767         Reviewed by Anders Carlsson.
29768
29769         Fix for <rdar://problem/6320555>
29770         Add an upper limit for setting HTMLSelectElement.length.
29771
29772         Test: fast/forms/select-max-length.html
29773
29774         * html/HTMLSelectElement.cpp:
29775         (WebCore::HTMLSelectElement::setOption):
29776         (WebCore::HTMLSelectElement::setLength):
29777
29778 2009-03-16  Eric Carlson  <eric.carlson@apple.com>
29779
29780         Reviewed by Simon Fraser.
29781
29782         <rdar://problem/6686721> Media document crash in 64-bit WebKit
29783
29784         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
29785         (WebCore::MediaPlayerPrivate::createQTMovieView): QTMovieContentViewClass is only used when
29786         rendering inline with old versions of QuickTime, so don't look for it when we are in a 
29787         media document.
29788
29789 2009-03-16  Dimitri Glazkov  <dglazkov@chromium.org>
29790
29791         Reviewed by Timothy Hatcher.
29792
29793         https://bugs.webkit.org/show_bug.cgi?id=24590
29794         Refactor InspectorDOMStorageResource to use ScriptFunctionCall.
29795
29796         * bindings/js/ScriptFunctionCall.cpp:
29797         (WebCore::ScriptFunctionCall::appendArgument): Added method for bool argument.
29798         * bindings/js/ScriptFunctionCall.h: Ditto, also cleaned up.
29799         * bindings/js/ScriptObjectQuarantine.cpp:
29800         (WebCore::getQuarantinedScriptObject): Added Storage helper.
29801         * bindings/js/ScriptObjectQuarantine.h: Ditto.
29802         * inspector/InspectorController.cpp:
29803         (WebCore::InspectorController::populateScriptObjects): Changed to use bind method.
29804         (WebCore::InspectorController::resetScriptObjects): Changed to use unbind method.
29805         (WebCore::InspectorController::didUseDOMStorage): Changed to use isSameHostAndType and bind methods.
29806         * inspector/InspectorController.h: Removed add/remove methods for DOM storage.
29807         * inspector/InspectorDOMStorageResource.cpp:
29808         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
29809         (WebCore::InspectorDOMStorageResource::isSameHostAndType): Added.
29810         (WebCore::InspectorDOMStorageResource::bind): Added.
29811         (WebCore::InspectorDOMStorageResource::unbind): Added.
29812         * inspector/InspectorDOMStorageResource.h:
29813
29814 2009-03-16   Mike Belshe  <mike@belse.com>
29815
29816         Reviewed by Dimitri Glazkov.
29817
29818         https://bugs.webkit.org/show_bug.cgi?id=24580
29819         Fix query() to match KURL behavior, this time with the code that
29820         compiles.
29821
29822         * platform/KURLGoogle.cpp:
29823         (WebCore::KURL::query): Fix copy/paste mistake.
29824
29825 2009-03-16  Alexey Proskuryakov  <ap@webkit.org>
29826
29827         Reviewed by Darin Adler.
29828
29829         https://bugs.webkit.org/show_bug.cgi?id=21752
29830         REGRESSION: referencing XHR constructor for a not yet loaded frame permanently breaks it
29831
29832         Test: fast/dom/Window/window-early-properties-xhr.html
29833
29834         For some transitions, the Window object is not replaced, but Document is. When this happened,
29835         window.document property was updated, but references to Document kept in cached constructors
29836         were not.
29837
29838         * bindings/js/JSAudioConstructor.cpp:
29839         (WebCore::JSAudioConstructor::JSAudioConstructor):
29840         (WebCore::JSAudioConstructor::document):
29841         (WebCore::JSAudioConstructor::mark):
29842         * bindings/js/JSAudioConstructor.h:
29843         * bindings/js/JSImageConstructor.cpp:
29844         (WebCore::JSImageConstructor::JSImageConstructor):
29845         (WebCore::JSImageConstructor::document):
29846         (WebCore::JSImageConstructor::mark):
29847         * bindings/js/JSImageConstructor.h:
29848         * bindings/js/JSMessageChannelConstructor.cpp:
29849         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
29850         (WebCore::JSMessageChannelConstructor::scriptExecutionContext):
29851         (WebCore::JSMessageChannelConstructor::mark):
29852         * bindings/js/JSMessageChannelConstructor.h:
29853         * bindings/js/JSOptionConstructor.cpp:
29854         (WebCore::JSOptionConstructor::JSOptionConstructor):
29855         (WebCore::JSOptionConstructor::document):
29856         (WebCore::JSOptionConstructor::mark):
29857         * bindings/js/JSOptionConstructor.h:
29858         * bindings/js/JSXMLHttpRequestConstructor.cpp:
29859         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
29860         (WebCore::JSXMLHttpRequestConstructor::scriptExecutionContext):
29861         (WebCore::JSXMLHttpRequestConstructor::mark):
29862         * bindings/js/JSXMLHttpRequestConstructor.h:
29863         Changed cached constructors to keep a reference to Window, not Document.
29864
29865 2009-03-15  Alexey Proskuryakov  <ap@webkit.org>
29866
29867         Reviewed by Darin Adler.
29868
29869         https://bugs.webkit.org/show_bug.cgi?id=24549
29870         Impose a limit on Access-Control-Max-Age value
29871
29872         * loader/CrossOriginPreflightResultCache.cpp:
29873         (WebCore::CrossOriginPreflightResultCacheItem::parse):
29874
29875 2009-03-15  Greg Bolsinga  <bolsinga@apple.com>
29876
29877         Reviewed by David Kilzer.
29878
29879         <rdar://problem/6668875> Normalize Geolocation results
29880
29881         * platform/mac/GeolocationServiceMac.mm:
29882         (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
29883
29884 2009-03-15  Greg Bolsinga  <bolsinga@apple.com>
29885
29886         Reviewed by David Kilzer.
29887
29888         Update ::toString format as suggested by Darin Adler.
29889
29890         * page/Geoposition.cpp:
29891         (WebCore::Geoposition::toString):
29892
29893 2009-03-15  David Kilzer  <ddkilzer@apple.com>
29894
29895         <rdar://problem/6668238> WebCore is registering text encodings needlessly from KURL constructor.
29896
29897         Reviewed by Darin Adler.
29898
29899         Yet another case where we would trigger extended encoding loading needlessly.
29900
29901         * platform/text/TextEncoding.cpp:
29902         (WebCore::TextEncoding::encodingForFormSubmission):
29903
29904 2009-03-15  Simon Fraser  <simon.fraser@apple.com>
29905
29906         Build fix: no review.
29907
29908         * rendering/style/ContentData.h:
29909
29910 2009-03-15  David Kilzer  <ddkilzer@apple.com>
29911
29912         Bug 24542: Improve ContentData encapsulation
29913
29914         <https://bugs.webkit.org/show_bug.cgi?id=24542>
29915
29916         Reviewed by Simon Fraser.
29917
29918         No tests since there is no change in behavior.
29919
29920         * rendering/RenderObject.cpp:
29921         (WebCore::RenderObject::createObject): Used getter methods
29922         instead of data members on ContentData class.  Used isImage()
29923         convenience method.
29924         * rendering/RenderObjectChildList.cpp:
29925         (WebCore::RenderObjectChildList::updateBeforeAfterContent): Ditto.
29926
29927         * rendering/style/ContentData.cpp:
29928         (WebCore::ContentData::clear): Extracted code into
29929         deleteContent() method.
29930         (WebCore::ContentData::dataEquivalent): Added.  Extracted code
29931         from StyleRareNonInheritedData::contentDataEquivalent().
29932         (WebCore::ContentData::deleteContent): Added.  Used by setter
29933         methods.
29934         * rendering/style/ContentData.h: Made m_type, m_content and
29935         m_next private.
29936         (WebCore::ContentData::isCounter): Added.
29937         (WebCore::ContentData::isImage): Added.
29938         (WebCore::ContentData::isNone): Added.
29939         (WebCore::ContentData::isText): Added.
29940         (WebCore::ContentData::type): Added.
29941         (WebCore::ContentData::dataEquivalent): Added.
29942         (WebCore::ContentData::image): Added.
29943         (WebCore::ContentData::setImage): Added.
29944         (WebCore::ContentData::text): Added.
29945         (WebCore::ContentData::setText): Added.
29946         (WebCore::ContentData::counter): Added.
29947         (WebCore::ContentData::setCounter): Added.
29948         (WebCore::ContentData::next): Added.
29949         (WebCore::ContentData::setNext): Added.
29950
29951         * rendering/style/CounterContent.h:
29952         (WebCore::operator!=): Removed.
29953         (WebCore::operator==): Renamed operator!=() and reversed its
29954         logic after extracting code from
29955         StyleRareNonInheritedData::contentDataEquivalent() to create
29956         ContentData::dataEquivalent().
29957
29958         * rendering/style/RenderStyle.cpp:
29959         (WebCore::RenderStyle::setContent): Used new getters and setters
29960         on ContentData class.  Changed first argument from a StringImpl*
29961         to a PassRefPtr<StrimgImpl>.  Used isText() convenience method.
29962         * rendering/style/RenderStyle.h:
29963         (WebCore::RenderStyle::setContent): Updated declaration.
29964         * rendering/style/StyleRareNonInheritedData.cpp:
29965         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
29966         Extracted most logic in while() loop into
29967         ContentData::dataEquivalent().
29968
29969 2009-03-15  Gustavo Noronha Silva  <gns@gnome.org>
29970
29971         Reviewed by Anders Carlsson.
29972
29973         https://bugs.webkit.org/show_bug.cgi?id=24602
29974         [Gtk] Searching in thepiratebay.org doesn't work with more than 1 word
29975
29976         Reintroduce the URI into the soup message after having set it in
29977         the KURL, on redirects, to make sure it is properly encoded. This
29978         fixes bad request problems when servers give bad URIs on their
29979         response's Location header.
29980
29981         * platform/network/soup/ResourceHandleSoup.cpp:
29982         (WebCore::restartedCallback):
29983
29984 2009-03-15  Alexey Proskuryakov  <ap@webkit.org>
29985
29986         Reviewed by Darin Adler.
29987
29988         https://bugs.webkit.org/show_bug.cgi?id=19737
29989         No cursor and paste not enabled right clicking text field/area
29990
29991         Test: fast/events/right-click-focus.html
29992
29993         * page/EventHandler.cpp:
29994         (WebCore::EventHandler::handleMousePressEventSingleClick):
29995         (WebCore::EventHandler::handleMousePressEvent):
29996         Take normal code path for right clicks (we were taking it for Ctrl-clicks anyway).
29997
29998 2009-03-15  Alexey Proskuryakov  <ap@webkit.org>
29999
30000         Reviewed by Adele Peterson.
30001
30002         https://bugs.webkit.org/show_bug.cgi?id=23949
30003         HTMLSelectElement is in inconsistent state when handling mutation events
30004
30005         Test: fast/forms/mutation-event-recalc.html
30006
30007         * dom/ContainerNode.cpp:
30008         (WebCore::ContainerNode::insertBefore):
30009         (WebCore::ContainerNode::appendChild):
30010         Call childrenChanged() before dispatching modification events, not after.
30011
30012         * html/HTMLOptGroupElement.cpp:
30013         (WebCore::HTMLOptGroupElement::insertBefore):
30014         (WebCore::HTMLOptGroupElement::replaceChild):
30015         (WebCore::HTMLOptGroupElement::removeChild):
30016         (WebCore::HTMLOptGroupElement::appendChild):
30017         (WebCore::HTMLOptGroupElement::removeChildren):
30018         * html/HTMLSelectElement.cpp:
30019         (WebCore::HTMLSelectElement::add):
30020         (WebCore::HTMLSelectElement::remove):
30021         (WebCore::HTMLSelectElement::insertBefore):
30022         (WebCore::HTMLSelectElement::replaceChild):
30023         (WebCore::HTMLSelectElement::removeChild):
30024         (WebCore::HTMLSelectElement::appendChild):
30025         (WebCore::HTMLSelectElement::removeChildren):
30026         Remove calls to recalcSelectOptions(). It is too late to recalc now, after mutation events
30027         were already dispatched.
30028
30029 2009-03-14  Greg Bolsinga  <bolsinga@apple.com>
30030
30031         <rdar://problem/6683465>
30032
30033         Geolocation has to be able to handle NULL Frames.
30034
30035         Reviewed by Mark Rowe
30036     
30037 2009-03-14  Greg Bolsinga  <bolsinga@apple.com>
30038
30039         Reviewed by David Kilzer.
30040
30041         Geoposition::toString was missing the Coordinates after the update.
30042
30043         * page/Geoposition.cpp:
30044         (WebCore::Geoposition::toString):
30045
30046 2009-03-14  Jan Michael Alonzo  <jmalonzo@webkit.org>
30047
30048         Reviewed by Mark Rowe.
30049
30050         [Gtk] Build fix - pass a Coordinate to Geoposition::create
30051         https://bugs.webkit.org/show_bug.cgi?id=24603
30052
30053         Gtk build fix per r41650
30054         https://bugs.webkit.org/show_bug.cgi?id=24506
30055         Geolocation in Safari differs from the spec, no Coordinates attribute on Position
30056
30057         Pass a Coordinate to Geoposition::create.
30058
30059         * platform/gtk/GeolocationServiceGtk.cpp:
30060         (WebCore::GeolocationServiceGtk::updatePosition):
30061
30062 2009-03-14  Alexey Proskuryakov  <ap@webkit.org>
30063
30064         Reviewed by Darin Adler.
30065
30066         https://bugs.webkit.org/show_bug.cgi?id=24545
30067         Make cross-site XHR simple request definition match current spec draft
30068
30069         Tests: http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type.html
30070                http/tests/xmlhttprequest/access-control-basic-whitelist-request-headers.html
30071
30072         * loader/CrossOriginAccessControl.cpp:
30073         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist): Added Content-Language.
30074         (WebCore::isSimpleCrossOriginAccessRequest): Added HEAD. Restricted content types to those
30075         that could be sent via form submission.
30076
30077 2009-03-14  Alexey Proskuryakov  <ap@webkit.org>
30078
30079         Reviewed by Darin Adler.
30080
30081         https://bugs.webkit.org/show_bug.cgi?id=15172
30082         object fallback - empty string for first argument of setAttributeNS does not work like null
30083
30084         https://bugs.webkit.org/show_bug.cgi?id=24548
30085         createElementNS("", name) should create an element in null namespace
30086
30087         Tests: fast/dom/createElementNS-empty-namespace.html
30088                fast/dom/setAttributeNS-empty-namespace.html
30089
30090         * dom/QualifiedName.h: (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
30091         Convert empty namespaces to null.
30092
30093 2009-03-13  Mark Rowe  <mrowe@apple.com>
30094
30095         Rubber-stamped by Dan Bernstein.
30096
30097         Take advantage of the ability of recent versions of Xcode to easily switch the active
30098         architecture.
30099
30100         * Configurations/DebugRelease.xcconfig:
30101
30102 2009-03-13  John Abd-El-Malek  <jam@google.com>
30103
30104         Reviewed by Darin Fisher.
30105
30106         https://bugs.webkit.org/show_bug.cgi?id=24593
30107         Added requestorID so we can track the request to its WebView without using frame (which was removed).
30108
30109         * platform/network/chromium/ResourceRequest.h:
30110         (WebCore::ResourceRequest::ResourceRequest):
30111         (WebCore::ResourceRequest::requestorID):
30112         (WebCore::ResourceRequest::setRequestorID):
30113         (WebCore::ResourceRequest::setTargetType):
30114         (WebCore::ResourceRequest::policyURL):
30115         (WebCore::ResourceRequest::setPolicyURL):
30116         (WebCore::ResourceRequest::requestorPid):
30117         (WebCore::ResourceRequest::setRequestorPid):
30118
30119 2009-03-13  Mike Belshe  <mike@belshe.com>
30120
30121         Reviewed by Dimitri Glazkov.
30122
30123         https://bugs.webkit.org/show_bug.cgi?id=24561
30124         Add custom V8 bindings for HTMLElementCanvas, Location.
30125
30126         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: Added.
30127         * bindings/v8/custom/V8LocationCustom.cpp: Added.
30128
30129 2009-03-13  Stephen White  <senorblanco@chromium.org>
30130
30131         Reviewed by Eric Seidel.
30132
30133         https://bugs.webkit.org/show_bug.cgi?id=24584
30134
30135         Fix transparent text rendering on Chromium.  FontChromiumWin
30136         was calling beginTransparencyLayer()/endTransparencyLayer(), with
30137         a TransparencyWin inside to do GDI ClearType rendering over an
30138         opaque background.  TransparencyWin does its special sauce
30139         in the destructor, but it was being called too late to be used
30140         correctly in the layer.  Put the special sauce into a new function,
30141         composite(), and call that explicitly instead.
30142
30143         * platform/graphics/chromium/FontChromiumWin.cpp:
30144         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
30145         * platform/graphics/chromium/TransparencyWin.cpp:
30146         (WebCore::TransparencyWin::~TransparencyWin):
30147         (WebCore::TransparencyWin::composite):
30148         (WebCore::TransparencyWin::init):
30149         * platform/graphics/chromium/TransparencyWin.h:
30150         * rendering/RenderThemeChromiumWin.cpp:
30151         (WebCore::):
30152
30153 2009-03-13  Mike Belshe  <mike@belshe.com>
30154
30155         Reviewed by Dimitri Glazkov.
30156
30157         https://bugs.webkit.org/show_bug.cgi?id=24562
30158         Add custom implementation for getCSSCanvasContext to V8 bindings.
30159
30160         * bindings/v8/custom/V8DocumentCustom.cpp: Added new method.
30161
30162 2009-03-13  Mike Belshe  <mike@belse.com>
30163
30164         Reviewed by Dimitri Glazkov.
30165
30166         https://bugs.webkit.org/show_bug.cgi?id=24580
30167         Fix query() to match KURL behavior.
30168
30169         * platform/KURLGoogle.cpp:
30170         (WebCore::KURL::query): remove extra logic around question mark.
30171
30172 2009-03-13  Chris Fleizach  <cfleizach@apple.com>
30173
30174         Reviewed by Beth Dakin.
30175
30176         Bug 24474: AX: in multi-body tables, asking for a cell at a specific coordinate can return nil
30177         https://bugs.webkit.org/show_bug.cgi?id=24474
30178
30179         Test: platform/mac-snowleopard/accessibility/table-multi-bodies.html
30180
30181         * page/AccessibilityTable.cpp:
30182         (WebCore::AccessibilityTable::cellForColumnAndRow):
30183
30184 2009-03-13  Jian Li  <jianli@chromium.org>
30185
30186         Reviewed by Dimitri Glazkov.
30187
30188         https://bugs.webkit.org/show_bug.cgi?id=24589
30189         Upstream changes to V8 event listeners (Chromium r11133) in order to
30190         fix worker functionality break in Chromium.
30191
30192         * bindings/v8/V8AbstractEventListener.cpp:
30193         (WebCore::V8AbstractEventListener::invokeEventHandler):
30194         (WebCore::V8AbstractEventListener::handleEvent):
30195         * bindings/v8/V8AbstractEventListener.h:
30196         * bindings/v8/V8WorkerContextEventListener.cpp:
30197         (WebCore::V8WorkerContextEventListener::handleEvent):
30198
30199 2009-03-13  Dimitri Glazkov  <dglazkov@chromium.org>
30200
30201         Reviewed by Timothy Hatcher.
30202
30203         https://bugs.webkit.org/show_bug.cgi?id=24524
30204         Introduce ScriptObject and ScriptFunctionCall abstractions.
30205
30206         * GNUmakefile.am: Added ScriptObject and ScriptFunctionCall to project.
30207         * WebCore.pro: Ditto.
30208         * WebCore.vcproj/WebCore.vcproj: Ditto.
30209         * WebCore.xcodeproj/project.pbxproj: Ditto.
30210         * WebCoreSources.bkl: Ditto.
30211         * bindings/js/ScriptFunctionCall.cpp: Added.
30212         * bindings/js/ScriptFunctionCall.h: Added.
30213         * bindings/js/ScriptObject.cpp: Added.
30214         * bindings/js/ScriptObject.h: Added.
30215         * bindings/js/ScriptObjectQuarantine.cpp: Added.
30216         * bindings/js/ScriptObjectQuarantine.h: Added.
30217         * inspector/InspectorController.cpp:
30218         (WebCore::InspectorController::populateScriptObjects): Changed to use InspectorDatabaseResource::bind.
30219         (WebCore::InspectorController::resetScriptObjects): Changed to use InspectorDatabaseResource::unbind.
30220         (WebCore::InspectorController::didOpenDatabase): Changed to use InspectorDatabaseResource::unbind.
30221         * inspector/InspectorController.h: Removed addScriptDatabaseResource and
30222         removeScriptDatabaseResource declarations.
30223         * inspector/InspectorDatabaseResource.cpp:
30224         (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
30225         (WebCore::InspectorDatabaseResource::bind): Added.
30226         (WebCore::InspectorDatabaseResource::unbind): Added.
30227         * inspector/InspectorDatabaseResource.h: Added bind and unbind declarations.
30228
30229 2009-03-13  Peter Kasting  <pkasting@google.com>
30230
30231         Reviewed by Eric Seidel.
30232
30233         https://bugs.webkit.org/show_bug.cgi?id=24467
30234         Make Skia drawRect() and stroke behavior match CG.
30235
30236         This makes drawRect() ignore the stroke width (like CG does), and
30237         adds a warning comment about that to the appropriate header.
30238
30239         It also eliminates some hacky code in Skia's stroke preparation,
30240         which tried to adjust odd-width strokes to fall on pixel boundaries.
30241         Not only did this not match CG, it wouldn't necessarily work right,
30242         because there could be other transforms (e.g. full-page zoom) that
30243         would affect the stroke before it reached the device pixel level.
30244
30245         * platform/graphics/GraphicsContext.h:
30246         * platform/graphics/skia/GraphicsContextSkia.cpp:
30247         (WebCore::GraphicsContext::drawRect):
30248         (WebCore::GraphicsContext::fillRect):
30249         * platform/graphics/skia/PlatformContextSkia.cpp:
30250         (PlatformContextSkia::drawRect):
30251         (PlatformContextSkia::setupPaintForStroking):
30252
30253 2009-03-13  Jian Li  <jianli@chromium.org>
30254
30255         Reviewed by Dimitri Glazkov.
30256
30257         https://bugs.webkit.org/show_bug.cgi?id=24583
30258         Need to change scope of constructor and destructor of V8ObjectEventListener from private
30259         to protected so that they could be used in its derived class V8WorkerContextEventListener.
30260
30261         * bindings/v8/V8ObjectEventListener.h:
30262
30263 2009-03-13  David Levin  <levin@chromium.org>
30264
30265         Reviewed by Dimitri Glazkov.
30266
30267         https://bugs.webkit.org/show_bug.cgi?id=24579
30268         Many V8*Event* files are misplaced.
30269
30270         This code is infrastructure for supporting the bindings and thus should
30271         be in the bindings/v8 directory.
30272
30273         * bindings/v8/V8AbstractEventListener.cpp: Renamed from WebCore/bindings/v8/custom/V8AbstractEventListener.cpp.
30274         * bindings/v8/V8AbstractEventListener.h: Renamed from WebCore/bindings/v8/custom/V8AbstractEventListener.h.
30275         * bindings/v8/V8LazyEventListener.cpp: Renamed from WebCore/bindings/v8/custom/V8LazyEventListener.cpp.
30276         * bindings/v8/V8LazyEventListener.h: Renamed from WebCore/bindings/v8/custom/V8LazyEventListener.h.
30277         * bindings/v8/V8ObjectEventListener.cpp: Renamed from WebCore/bindings/v8/custom/V8ObjectEventListener.cpp.
30278         * bindings/v8/V8ObjectEventListener.h: Renamed from WebCore/bindings/v8/custom/V8ObjectEventListener.h.
30279         * bindings/v8/V8WorkerContextEventListener.cpp: Renamed from WebCore/bindings/v8/custom/V8WorkerContextEventListener.cpp.
30280         * bindings/v8/V8WorkerContextEventListener.h: Renamed from WebCore/bindings/v8/custom/V8WorkerContextEventListener.h.
30281
30282 2009-03-13  Adele Peterson  <adele@apple.com>
30283
30284         Reviewed by Justin Garcia.
30285
30286         Fix for <rdar://problem/5089327> Color of quoted content is wrong when pasted inside other quoted content
30287
30288         Test: editing/pasteboard/5089327.html
30289
30290         Handle spans being pasted within a quoted region in the same way we handle "paste as quotation" content.
30291
30292         * editing/ReplaceSelectionCommand.cpp:
30293         (WebCore::handleStyleSpansBeforeInsertion):
30294         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
30295
30296 2009-03-13  Greg Bolsinga  <bolsinga@apple.com>
30297
30298         Reviewed by Simon Fraser.
30299
30300         Update Geolocation perimission dialogs to be asynchronous.
30301         https://bugs.webkit.org/show_bug.cgi?id=24505
30302
30303         Geolocation now requests permission from the Chrome asynchronously.
30304         The Chrome is passed the Geolocation object, and the Chrome sets the permission
30305         on the Geolocation. Geolocation also tracks if the Chrome should clear its cache
30306         of SecurityOrigins with geolocation permission. This is so that the GeolocationService
30307         can inform the Chrome of its request, and the Chrome is also free to implement its
30308         own policy.
30309         
30310         * WebCore.base.exp:
30311         * WebCore.xcodeproj/project.pbxproj:
30312         * page/Chrome.cpp:
30313         (WebCore::Chrome::requestGeolocationPermissionForFrame):
30314         * page/Chrome.h:
30315         * page/ChromeClient.h:
30316         (WebCore::ChromeClient::requestGeolocationPermissionForFrame):
30317         * page/Geolocation.cpp:
30318         (WebCore::Geolocation::Geolocation):
30319         (WebCore::Geolocation::getCurrentPosition):
30320         (WebCore::Geolocation::watchPosition):
30321         (WebCore::Geolocation::setIsAllowed):
30322         (WebCore::Geolocation::displayChallengeIfNecessary):
30323         (WebCore::Geolocation::geolocationServicePositionChanged):
30324         * page/Geolocation.h:
30325         (WebCore::Geolocation::isAllowed):
30326         (WebCore::Geolocation::setShouldClearCache):
30327         (WebCore::Geolocation::shouldClearCache):
30328         (WebCore::Geolocation::):
30329
30330 2009-03-13  Anders Carlsson  <andersca@apple.com>
30331
30332         Reviewed by Dan Bernstein.
30333
30334         <rdar://problem/6610666> Revise the Cocoa event model text API
30335         
30336         Add a NPCocoaEventTextInput event type. Remove the text input variables.
30337         
30338         * bridge/npapi.h:
30339         (_NPCocoaEvent::):
30340
30341 2009-03-13  Kevin Decker  <kdecker@apple.com>
30342
30343         Reviewed by Anders.
30344
30345         <rdar://problem/6630340> REGRESSION (39114-39115): Unity Web Player no longer works if Flip4Mac is also installed
30346         
30347         The code assumed if we have a plug-in that supports "application/x-oleobject" we should always prefer the object tag
30348         over of an embed tag. That assumption can cause the Mac platform to load the wrong plug-in, as Flip4Mac claims supports
30349         for x-oleobject.
30350         
30351         * rendering/RenderPartObject.cpp:
30352         (WebCore::shouldUseEmbedDescendant): Made the Mac platform always return true here. 
30353
30354 2009-03-13  Jian Li  <jianli@chromium.org>
30355
30356         Reviewed by Dimitri Glazkov.
30357
30358         https://bugs.webkit.org/show_bug.cgi?id=24559
30359         Need to port JSC fix (r41565) to V8 in order to fix layout test onload-single-line-comment.html.
30360
30361         * bindings/v8/custom/V8LazyEventListener.cpp:
30362         (WebCore::V8LazyEventListener::getListenerFunction):
30363         (WebCore::V8LazyEventListener::getWrappedListenerFunction):
30364
30365 2009-03-13  Jian Li  <jianli@chromium.org>
30366
30367         Reviewed by Dimitri Glazkov.
30368
30369         https://bugs.webkit.org/show_bug.cgi?id=24557
30370         This is to support running multiple workers in a single worker process in chromium.
30371
30372         * bindings/v8/custom/V8WorkerContextEventListener.cpp:
30373         (WebCore::V8WorkerContextEventListener::handleEvent):
30374         Add locker to v8 event listener of worker context.
30375
30376 2009-03-13  Alexey Proskuryakov  <ap@webkit.org>
30377
30378         Reviewed by Sam Weinig.
30379
30380         https://bugs.webkit.org/show_bug.cgi?id=24575
30381         XHR response is incorrect after a network error.
30382
30383         Tests: http/tests/xmlhttprequest/cross-site-denied-response-sync-2.html
30384                http/tests/xmlhttprequest/cross-site-denied-response-sync.html
30385                http/tests/xmlhttprequest/cross-site-denied-response.html
30386
30387         * xml/XMLHttpRequest.cpp:
30388         (WebCore::XMLHttpRequest::networkError): Call internalAbort() to fully reset the request.
30389         (WebCore::XMLHttpRequest::didFailRedirectCheck): No need to call internalAbort() here. Note
30390         that since internalAbort() can drop GC protection, it is not safe to use the object after
30391         this call.
30392         (WebCore::XMLHttpRequest::didReceiveData): Check that the request wasn't aborted, and
30393         return early if it was. This can happen during sync requests, as the loader does not know
30394         that it was aborted, and just synthesizes all callbacks.
30395
30396 2009-03-13  Adam Bergkvist <adam.bergkvist@ericsson.com>
30397
30398         Reviewed by Alexey Proskuryakov.
30399
30400         https://bugs.webkit.org/show_bug.cgi?id=3547
30401         XMLHttpRequest.statusText returns always "OK"
30402
30403         Covered by existing tests (which now pass on all platforms but Mac).
30404
30405         * xml/XMLHttpRequest.cpp:
30406         (WebCore::XMLHttpRequest::statusText): Return ResourceResponse status text. It is now up
30407         to each platform to correctly set the status text or set it to "OK" to retain current
30408         behavior.
30409
30410 2009-03-13  Adam Bergkvist <adam.bergkvist@ericsson.com>
30411
30412         Reviewed by Alexey Proskuryakov.
30413
30414         https://bugs.webkit.org/show_bug.cgi?id=24349
30415         [QT] HTTP status text is never set
30416
30417         Set HTTP status text to the reason phrase attribute of QNetworkReply.
30418
30419         * platform/network/qt/QNetworkReplyHandler.cpp:
30420         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
30421
30422 2009-03-12  Simon Fraser  <simon.fraser@apple.com>
30423
30424         Reviewed by Mark Rowe
30425
30426         <rdar://problem/6622300>: Reproducible crash on
30427         <http://www.editgrid.com/explore/tnc/dave/FusionChart%3A_Candlestick>
30428         
30429         Prevent CSSStyleSheet::checkLoaded() writing to freed memory when it gets
30430         deleted from under itself. The sheetLoaded() notification can allow scripts
30431         to run via HTMLTokenizer::executeScriptsWaitingForStylesheets(),
30432         which can cause the last ref to the CSSStyleSheet to be released.
30433
30434         * css/CSSStyleSheet.cpp:
30435         (WebCore::CSSStyleSheet::checkLoaded):
30436
30437 2009-03-12  Kevin Ollivier  <kevino@theolliviers.com>
30438
30439         wx build fix. Allow make-generated-sources.sh to pass args down to DerivedSources.make
30440
30441         * make-generated-sources.sh:
30442
30443 2009-03-12  Adam Treat  <adam.treat@torchmobile.com>
30444
30445         Reviewed by Oliver Hunt.
30446
30447         https://bugs.webkit.org/show_bug.cgi?id=24498
30448         Fix the Qt port to use the same algorithm for drawing dashed and dotted
30449         borders as the other ports.  This makes the Qt port pixel-for-pixel perfect
30450         compared to border drawing with Apple's canonical mac port and much closer
30451         to konqueror and firefox behavior.
30452
30453         * platform/graphics/qt/GraphicsContextQt.cpp:
30454         (WebCore::GraphicsContext::drawLine):
30455
30456 2009-02-26  Eric Seidel  <eric@webkit.org>
30457
30458         Reviewed by Justin Garcia.
30459
30460         Clean up DOMSelection to use some helper functions
30461         making the code smaller, and less error-prone.
30462         https://bugs.webkit.org/show_bug.cgi?id=19221
30463
30464         I tried moving DOMSelection off of rangeCompliantEquivalent
30465         but failed.  VisibleSelection holds positions like (table, 1) to mean
30466         "after the table".
30467
30468         * page/DOMSelection.cpp:
30469         (WebCore::DOMSelection::visibleSelection):
30470         (WebCore::anchorPosition):
30471         (WebCore::focusPosition):
30472         (WebCore::basePosition):
30473         (WebCore::extentPosition):
30474         (WebCore::DOMSelection::anchorNode):
30475         (WebCore::DOMSelection::anchorOffset):
30476         (WebCore::DOMSelection::focusNode):
30477         (WebCore::DOMSelection::focusOffset):
30478         (WebCore::DOMSelection::baseNode):
30479         (WebCore::DOMSelection::baseOffset):
30480         (WebCore::DOMSelection::extentNode):
30481         (WebCore::DOMSelection::extentOffset):
30482         * page/DOMSelection.h:
30483
30484 2009-03-12  Dmitry Titov  <dimich@chromium.org>
30485
30486         Reviewed by Dimitri Glazkov.
30487
30488         https://bugs.webkit.org/show_bug.cgi?id=24563
30489         Change ResourceRequest to be a struct rather then a class to match other declarations.
30490
30491         * platform/network/chromium/ResourceRequest.h:
30492
30493 2009-03-12  David Levin  <levin@chromium.org>
30494
30495         Reviewed by Darin Fisher.
30496
30497         Bug 24530: width100percent-searchfield.html should be fixed for chromium.
30498         <https://bugs.webkit.org/show_bug.cgi?id=24530>
30499
30500         Compensate for r39924 in chromium, which broke LayoutTests/fast/replaced/width100percent-searchfield.html
30501
30502         * css/themeChromiumWin.css: Added.
30503         Overrides the changes to start supporting input[type="search"] on Windows (since
30504         Chromium doesn't do anything special for this).
30505
30506         * rendering/RenderThemeChromiumWin.cpp:
30507         (WebCore::supportsFocus):
30508         (WebCore::RenderThemeChromiumWin::extraDefaultStyleSheet):
30509         (WebCore::RenderThemeChromiumWin::determineState):
30510         (WebCore::RenderThemeChromiumWin::getThemeData):
30511
30512 2009-03-12  Greg Bolsinga  <bolsinga@apple.com>
30513
30514         Reviewed by Antti Koivisto.
30515
30516         https://bugs.webkit.org/show_bug.cgi?id=24506
30517         Geolocation in Safari differs from the spec, no Coordinates attribute on Position
30518         
30519         Get up to date.
30520
30521         * DerivedSources.make:
30522         * GNUmakefile.am:
30523         * WebCore.pro:
30524         * WebCore.scons:
30525         * WebCore.vcproj/WebCore.vcproj:
30526         * WebCore.xcodeproj/project.pbxproj:
30527         * WebCoreSources.bkl:
30528         * bindings/js/JSGeolocationCustom.cpp:
30529         (WebCore::createPositionOptions):
30530         * page/Coordinates.cpp: Added.
30531         (WebCore::Coordinates::toString):
30532         * page/Coordinates.h: Added.
30533         (WebCore::Coordinates::create):
30534         (WebCore::Coordinates::latitude):
30535         (WebCore::Coordinates::longitude):
30536         (WebCore::Coordinates::altitude):
30537         (WebCore::Coordinates::accuracy):
30538         (WebCore::Coordinates::altitudeAccuracy):
30539         (WebCore::Coordinates::heading):
30540         (WebCore::Coordinates::speed):
30541         (WebCore::Coordinates::Coordinates):
30542         * page/Coordinates.idl: Added.
30543         * page/Geoposition.cpp:
30544         (WebCore::Geoposition::toString):
30545         * page/Geoposition.h:
30546         (WebCore::Geoposition::create):
30547         (WebCore::Geoposition::coords):
30548         (WebCore::Geoposition::Geoposition):
30549         * page/Geoposition.idl:
30550         * page/PositionOptions.h:
30551         (WebCore::PositionOptions::create):
30552         (WebCore::PositionOptions::maximumAge):
30553         (WebCore::PositionOptions::setMaximumAge):
30554         (WebCore::PositionOptions::PositionOptions):
30555         * platform/mac/GeolocationServiceMac.mm:
30556         (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
30557
30558 2009-03-12  Dimitri Glazkov  <dglazkov@chromium.org>
30559
30560         Reviewed by Darin Fisher.
30561
30562         https://bugs.webkit.org/show_bug.cgi?id=24496
30563         Fix console logging of non-string values by coercing the argument to
30564         a string, for V8 bindings.
30565
30566         Test: fast/js/console-non-string-values.html
30567
30568         * bindings/v8/ScriptValue.cpp: Added toString method.
30569         (WebCore::ScriptValue::toString):
30570         * bindings/v8/ScriptValue.h: Added PlatformString, ScriptState includes
30571             and toString declaration.
30572
30573 2009-03-12  Darin Fisher  <darin@chromium.org>
30574
30575         Reviewed by Dimitri Glazkov.
30576
30577         Eliminate ChromiumBridge::uiResourceProtocol
30578         https://bugs.webkit.org/show_bug.cgi?id=24558
30579
30580         * platform/chromium/ChromiumBridge.h:
30581
30582 2009-03-12  Greg Bolsinga  <bolsinga@apple.com>
30583
30584         Reviewed by Simon Fraser.
30585
30586         Missing breaks in switch statement
30587         https://bugs.webkit.org/show_bug.cgi?id=24556
30588
30589         * platform/mac/GeolocationServiceMac.mm:
30590         (-[WebCoreCoreLocationObserver locationManager:didFailWithError:]):
30591
30592 2009-03-12  Darin Fisher  <darin@chromium.org>
30593
30594         Reviewed by Dimitri Glazkov.
30595
30596         https://bugs.webkit.org/show_bug.cgi?id=24554
30597         Remove some unused functions from ChromiumBridge.
30598
30599         * platform/chromium/ChromiumBridge.h:
30600
30601 2009-03-02  Eric Seidel  <eric@webkit.org>
30602
30603         Reviewed by Darin Fisher and Justin Garcia.
30604
30605         Safari crashes during drag and drop in Google presentations
30606         due to mutation event handlers removing DOM content during insertNode
30607         https://bugs.webkit.org/show_bug.cgi?id=22634
30608
30609         Added a bunch of "null" checks to make sure nodes are still
30610         in the document before we operate on them.  This is an
30611         inelegant solution, but it's the best we have for now.
30612         
30613         Test: editing/selection/crash-on-drag-with-mutation-events.html
30614
30615         * editing/CompositeEditCommand.cpp:
30616         (WebCore::CompositeEditCommand::insertNodeAt):
30617         * editing/ReplaceSelectionCommand.cpp:
30618         (WebCore::ReplaceSelectionCommand::doApply):
30619
30620 2009-03-12  Dimitri Glazkov  <dglazkov@chromium.org>
30621
30622         Reviewed by Adam Treat.
30623
30624         https://bugs.webkit.org/show_bug.cgi?id=24525
30625         REGRESSION: Inspector window doesn't close when inspected page is
30626         destroyed. This is a revert of r41158, which became unnecessary when
30627         InspectorController became ref-counted in r41462.
30628
30629         * inspector/InspectorController.cpp:
30630         (WebCore::InspectorController::inspectedPageDestroyed): Reset m_inspectedPage
30631             after calling close().
30632         (WebCore::InspectorController::stopUserInitiatedProfiling): Remove
30633             m_inspectedPage check guard around profile logic.
30634
30635 2009-03-12  Peter Kasting  <pkasting@google.com>
30636
30637         Reviewed by Darin Fisher.
30638
30639         https://bugs.webkit.org/show_bug.cgi?id=24502
30640         Make horizontal scrolling on Windows always go the correct direction.
30641
30642         * platform/PlatformWheelEvent.h:
30643         * platform/win/WheelEventWin.cpp:
30644         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
30645
30646 2009-03-12  Dimitri Glazkov  <dglazkov@chromium.org>
30647
30648         Reviewed by Simon Fraser.
30649
30650         https://bugs.webkit.org/show_bug.cgi?id=24496
30651         Fix console logging of non-string values by coercing the argument to
30652         a string.
30653
30654         Test: fast/js/console-non-string-values.html
30655
30656         * bindings/js/ScriptValue.cpp: Removed PlatformString include.
30657         * bindings/js/ScriptValue.h: Added toString method.
30658         (WebCore::ScriptValue::toString):
30659         * page/Console.cpp:
30660         (WebCore::getFirstArgumentAsString): Changed firstArgumentAsString method to use
30661             ScriptValue::toString.
30662         (WebCore::Console::addMessage): added extra ScriptState argument to callsite.
30663         (WebCore::Console::count): Ditto.
30664
30665 2009-03-12  Simon Fraser  <simon.fraser@apple.com>
30666
30667         Reviewed by Adele Peterson.
30668         
30669         https://bugs.webkit.org/show_bug.cgi?id=24508
30670         
30671         Fix updating of text field with placeholder text when value is set
30672         by ensuring that updatePlaceholderVisibility() is called after
30673         the value has been updated, not before.
30674
30675         Test: fast/forms/placeholder-set-value.html
30676
30677         * html/HTMLInputElement.cpp:
30678         (WebCore::HTMLInputElement::setValue):
30679
30680 2009-03-12  Simon Fraser  <simon.fraser@apple.com>
30681
30682         Reviewed by Dave Hyatt
30683         
30684         https://bugs.webkit.org/show_bug.cgi?id=24552
30685         
30686         Hit testing involving normal flow, self-painting layers (e.g. reflections)
30687         was broken because it was not null-testing the result of hitTestLayer(),
30688         so bailing early with a nil hit layer.
30689
30690         Test: fast/layers/normal-flow-hit-test.html
30691
30692         * rendering/RenderLayer.cpp:
30693         (WebCore::RenderLayer::hitTestLayer):
30694
30695 2009-03-12  Dimitri Glazkov  <dglazkov@chromium.org>
30696
30697         Reviewed by Cameron Zwarich.
30698
30699         Removed zero-sized files, left over from improperly applied patch.
30700
30701         * platform/graphics/chromium/ThemeHelperChromiumWin.cpp: Removed.
30702         * platform/graphics/chromium/ThemeHelperChromiumWin.h: Removed.
30703
30704 2009-03-12  Adam Treat  <adam.treat@torchmobile.com>
30705
30706         Reviewed by George Staikos.
30707
30708         Do not ignore alpha color in optimization.  Hard to believe, but there
30709         are websites that fill the entire page with a tiled image consisting of
30710         nothing but a 100% transparent 1x1 image. <cough>orbitz.com</cough>
30711
30712         * platform/graphics/qt/ImageQt.cpp:
30713         (WebCore::BitmapImage::checkForSolidColor):
30714
30715 2009-03-12  Julien Chaffraix  <jchaffraix@webkit.org>
30716
30717         Reviewed by Darin Adler.
30718
30719         Bug 24110: cloneNode should call cloneElement and not the reverse
30720
30721         - Splitted the code from cloneNode into cloneElementWithChildren and cloneElementWithChildren.
30722           Now cloneNode calls one of the 2 previous methods.
30723
30724         - Renamed cloneElement to cloneElementWithoutChildren as it was the previous behaviour.
30725
30726         - Moved cloneNode to the Element private section so that WebCore callers cannot use it.
30727
30728         - Removed Element::cloneNode usage through WebCore.
30729
30730         * dom/Element.cpp:
30731         (WebCore::Element::cloneNode): Moved to Element's private section and it
30732         now calls the two next methods.
30733         (WebCore::Element::cloneElementWithChildren): Added.
30734         (WebCore::Element::cloneElementWithoutChildren): Renamed from cloneElement
30735         to avoid ambiguity.
30736         * dom/Element.h:
30737
30738         * editing/ApplyStyleCommand.cpp:
30739         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): Changed call to cloneElement
30740         to call to cloneElementWithoutChildren.
30741         * editing/BreakBlockquoteCommand.cpp:
30742         (WebCore::BreakBlockquoteCommand::doApply): Ditto.
30743         * editing/IndentOutdentCommand.cpp:
30744         (WebCore::IndentOutdentCommand::indentRegion): Ditto.
30745         * editing/InsertParagraphSeparatorCommand.cpp:
30746         (WebCore::InsertParagraphSeparatorCommand::doApply): Ditto.
30747         * editing/ModifySelectionListLevel.cpp:
30748         (WebCore::IncreaseSelectionListLevelCommand::doApply): Ditto.
30749         * editing/SplitElementCommand.cpp:
30750         (WebCore::SplitElementCommand::doApply): Ditto.
30751         * editing/markup.cpp:
30752         (WebCore::createFragmentFromText): Ditto.
30753         * svg/SVGUseElement.cpp:
30754         (WebCore::SVGUseElement::buildShadowTree): Ditto.
30755         (WebCore::SVGUseElement::expandUseElementsInShadowTree): Ditto.
30756
30757 2009-03-12  Dirk Schulze  <krit@webkit.org>
30758
30759         Reviewed by Oliver Hunt.
30760
30761         Fixed a crash on the 1x1 pixel check for background image in gtk.
30762         We need to load the image first and need to be sure that the image
30763         is not null before checking the type. 
30764
30765         * platform/graphics/cairo/ImageCairo.cpp:
30766         (WebCore::BitmapImage::checkForSolidColor):
30767
30768 2009-03-12  Xan Lopez  <xlopez@igalia.com>
30769
30770         Reviewed by Alexey Proskuryakov.
30771
30772         https://bugs.webkit.org/show_bug.cgi?id=24544
30773         Rename setUrl to setURL
30774
30775         Use proper case for setUrl method, rename it to setURL.
30776
30777         * platform/network/ResourceResponseBase.cpp:
30778         (WebCore::ResourceResponseBase::adopt):
30779         * platform/network/ResourceResponseBase.h:
30780         * platform/network/curl/ResourceHandleManager.cpp:
30781         (WebCore::writeCallback):
30782         (WebCore::headerCallback):
30783         * platform/network/soup/ResourceHandleSoup.cpp:
30784         (WebCore::fillResponseFromMessage):
30785         (WebCore::queryInfoCallback):
30786
30787 2009-03-12  Xan Lopez  <xlopez@igalia.com>
30788
30789         Reviewed by Alexey Proskuryakov.
30790
30791         https://bugs.webkit.org/show_bug.cgi?id=24519
30792         [GTK] Use two argument KURL ctor in ResourceHandleSoup
30793
30794         Use two argument KURL ctor, the single argument ctor expects its
30795         input to be the output of a previous KURL::parse call, which is
30796         not the case here.
30797
30798         * platform/network/soup/ResourceHandleSoup.cpp:
30799         (WebCore::fillResponseFromMessage):
30800         (WebCore::queryInfoCallback):
30801
30802 2009-03-11  Jon Honeycutt  <jhoneycutt@apple.com>
30803
30804         Fix for <rdar://6418681>
30805         https://bugs.webkit.org/show_bug.cgi?id=22644
30806
30807         Reviewed by Steve Falkenburg.
30808
30809         * plugins/win/PluginPackageWin.cpp:
30810         (WebCore::PluginPackage::isPluginBlacklisted): Add the Citrix ICA
30811         Client plug-in to the blacklist; it requires a Mozilla-based browser.
30812
30813 2009-03-12  Oliver Hunt  <oliver@apple.com>
30814
30815         Reviewed by NOBODY (build fix).
30816
30817         build fix.
30818
30819         * html/CanvasRenderingContext2D.h:
30820
30821 2009-03-11  Oliver Hunt  <oliver@apple.com>
30822
30823         Reviewed by Adele Peterson.
30824
30825         <rdar://problem/6673852> Widget "Simple World Clock" does not display with Safari 4
30826
30827         A number of dashboard widgets rely on canvas failing silently when given invalid
30828         colors for gradient stops, but both the spec and firefox throw exceptions here.
30829         So we work around this by creating a dashboard quirk that will only suppress the
30830         exception in dashboard compatibility mode.
30831
30832         Test: fast/canvas/canvas-gradient-addStop-error.html
30833
30834         * html/CanvasGradient.cpp:
30835         (WebCore::CanvasGradient::CanvasGradient):
30836         (WebCore::CanvasGradient::addColorStop):
30837         * html/CanvasGradient.h:
30838         (WebCore::CanvasGradient::setDashboardCompatibilityMode):
30839         * html/CanvasRenderingContext2D.cpp:
30840         (WebCore::CanvasRenderingContext2D::prepareGradientForDashboard):
30841         (WebCore::CanvasRenderingContext2D::createLinearGradient):
30842         (WebCore::CanvasRenderingContext2D::createRadialGradient):
30843         * html/CanvasRenderingContext2D.h:
30844
30845 2009-03-11  David Kilzer  <ddkilzer@apple.com>
30846
30847         Clarify comments regarding order of FEATURE_DEFINES
30848
30849         Rubber-stamped by Mark Rowe.
30850
30851         * Configurations/WebCore.xcconfig: Added warning about the
30852         consequences when FEATURE_DEFINES are not kept in sync.
30853
30854 2009-03-11  Gustavo Noronha Silva  <gns@gnome.org>
30855
30856         Reviewed by Holger Freyther.
30857
30858         https://bugs.webkit.org/show_bug.cgi?id=24515
30859         [GTK] soup backend should use GMappedFile instead of mmap directly
30860
30861         Rewrite mmap code used to upload files to use GMappedFile, so that
30862         it is platform-independent.
30863
30864         * platform/network/soup/ResourceHandleSoup.cpp:
30865         (WebCore::ResourceHandle::startHttp):
30866
30867 2009-03-11  Dan Bernstein  <mitz@apple.com>
30868
30869         Reviewed by Darin Adler.
30870
30871         - WebCore part of fixing <rdar://problem/3919124> Thai text selection
30872           in Safari is incorrect
30873
30874         Test: platform/mac/editing/selection/word-thai.html
30875
30876         Tested on Mac, but should work on all ICU platforms (or more precisely
30877         on all platforms that implement
30878         WTF::Unicode::hasLineBreakingPropertyComplexContext() correctly).
30879
30880         * editing/TextIterator.cpp:
30881         (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator):
30882         Added.
30883         (WebCore::BackwardsCharacterIterator::range): Added.
30884         (WebCore::BackwardsCharacterIterator::advance): Added.
30885
30886         * editing/TextIterator.h: Added BackwardsCharacterIterator with the
30887         minimal functionality required for this patch.
30888         (WebCore::BackwardsCharacterIterator::atEnd): Added.
30889
30890         * editing/visible_units.cpp:
30891         (WebCore::firstNonComplexContextLineBreak): Added this helper function
30892         that returns the index of the first character in the string whose
30893         Unicode line breaking property value is not SA ("Complex Context"), or
30894         the length of the string if there is no such character.
30895         (WebCore::lastNonComplexContextLineBreak): Added this helper function
30896         that returns the index of the last character in the string whose
30897         Unicode line breaking property value is not SA ("Complex Context"), or
30898         -1 if there is no such character.
30899         (WebCore::previousBoundary): Changed the signature of the search
30900         function to include an offset parameter. Renamed the 'exception' local
30901         variable to 'ec' and changed its type to ExceptionCode. Extend the
30902         string forwards until the first character with Unicode line breaking
30903         property value other than SA. This gives the boundary search function
30904         enough context in the forward direction. Changed to use a
30905         BackwardsCharacterIterator for translating the backwards offset into
30906         a position.
30907         (WebCore::nextBoundary): Changed the signature of the search
30908         function to include an offset parameter. Extend the string backwards
30909         until the first character with Unicode line breaking property value
30910         other than SA. This gives the boundary search function enough context in
30911         the backwards direction. Restricted the workaround for <rdar://5192593>
30912         only to the line break case, because it was causing an extra character
30913         to be selected following a word that ended with a combining mark.
30914         (WebCore::startWordBoundary): Added an offset parameter. Check that
30915         going backwards from the given offset, there is a character with Unicode
30916         line breaking property value other than SA, and otherwise return 0 to
30917         request more context.
30918         (WebCore::endWordBoundary): Similar, but in reverse.
30919         (WebCore::previousWordPositionBoundary): Similar.
30920         (WebCore::nextWordPositionBoundary): Similar.
30921         (WebCore::startSentenceBoundary): Updated for the new search function
30922         signature.
30923         (WebCore::endSentenceBoundary): Ditto.
30924         (WebCore::previousSentencePositionBoundary): Ditto.
30925         (WebCore::nextSentencePositionBoundary): Ditto.
30926
30927 2009-03-11  Darin Adler  <darin@apple.com>
30928
30929         Reviewed by Mark Rowe.
30930
30931         Don't use "::" in thread names because it is ugly!
30932
30933         * loader/icon/IconDatabase.cpp:
30934         (WebCore::IconDatabase::open): Use "WebCore: " instead of "WebCore::".
30935         * platform/network/cf/ResourceHandleCFNet.cpp:
30936         (WebCore::ResourceHandle::loaderRunLoop): Call this "WebCore: CFNetwork Loader" to make
30937         it clear this is a WebCore-created thread.
30938         * storage/DatabaseThread.cpp:
30939         (WebCore::DatabaseThread::start): Use "WebCore: " instead of "WebCore::".
30940         * storage/LocalStorageThread.cpp:
30941         (WebCore::LocalStorageThread::start): Use "WebCore: " instead of "WebCore::".
30942         * workers/WorkerThread.cpp:
30943         (WebCore::WorkerThread::start): Use "WebCore: " instead of "WebCore::".
30944
30945 2009-03-11  Mark Rowe  <mrowe@apple.com>
30946
30947         Rubber-stamped by Darin Adler.
30948
30949         <rdar://problem/6653286> WebCore's implementation of screenIsMonochrome is needlessly complex
30950
30951         * platform/mac/PlatformScreenMac.mm:
30952         (WebCore::screenIsMonochrome): Return false.
30953
30954 2009-03-11  Beth Dakin  <bdakin@apple.com>
30955
30956         Reviewed by Dan Bernstein.
30957
30958         Fix for https://bugs.webkit.org/show_bug.cgi?id=14749 percentage 
30959         top value on position:relative child not calculated correctly if 
30960         parent has percentage height
30961         - and corresponding -
30962         <rdar://problem/6172925>
30963
30964         * rendering/RenderBoxModelObject.cpp:
30965         (WebCore::RenderBoxModelObject::relativePositionOffsetY):
30966
30967 2009-03-11  Jian Li  <jianli@chromium.org>
30968
30969         Reviewed by Dimitri Glazkov.
30970
30971         Implement ScriptValue::hasNoValue for V8.
30972         https://bugs.webkit.org/show_bug.cgi?id=24507
30973
30974         * bindings/v8/ScriptValue.h:
30975         (WebCore::ScriptValue::hasNoValue):
30976
30977 2009-03-11  David Levin  <levin@chromium.org>
30978
30979         Reviewed by Dimitri Glazkov.
30980
30981         Bug 24459: Add v8 bindings for event.
30982         <https://bugs.webkit.org/show_bug.cgi?id=24459>
30983
30984         Adding custom event bindings.
30985
30986         * bindings/v8/custom/V8AbstractEventListener.cpp: Added.
30987         * bindings/v8/custom/V8AbstractEventListener.h: Added.
30988         * bindings/v8/custom/V8AttrCustom.cpp:
30989         Fixed messed up copyright header.
30990         * bindings/v8/custom/V8CustomEventListener.cpp: Added.
30991         * bindings/v8/custom/V8CustomEventListener.h:
30992         Replaced forwarding header with the real implementation.
30993         * bindings/v8/custom/V8ElementCustom.cpp:
30994         * bindings/v8/custom/V8LazyEventListener.cpp: Added.
30995         * bindings/v8/custom/V8LazyEventListener.h: Added.
30996         * bindings/v8/custom/V8ObjectEventListener.cpp: Added.
30997         * bindings/v8/custom/V8ObjectEventListener.h: Added.
30998         * bindings/v8/custom/V8WorkerContextEventListener.cpp: Added.
30999         * bindings/v8/custom/V8WorkerContextEventListener.h: Added.
31000
31001 2009-03-11  Darin Fisher  <darin@chromium.org>
31002
31003         Reviewed by Dimitri Glazkov.
31004
31005         https://bugs.webkit.org/show_bug.cgi?id=24521
31006         Add some missing includes for the non-JSC build.
31007
31008         * platform/text/PlatformString.h: added OwnPtr.h
31009         * xml/XMLHttpRequest.cpp: added SecurityOrigin.h
31010
31011 2009-03-11  Simon Fraser  <simon.fraser@apple.com>
31012
31013         Reviewed by Darin Adler
31014
31015         https://bugs.webkit.org/show_bug.cgi?id=24531
31016         
31017         Make sure that AnimationControllerPrivate::getAnimatedStyleForRenderer() never
31018         returns a null style if it has a valid renderer, which could happen if a
31019         CompositeAnimation existed, but wasn't running any animations or transitions.
31020
31021         * page/animation/AnimationController.cpp:
31022         (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
31023
31024 2009-03-11  Simon Fraser  <simon.fraser@apple.com>
31025
31026         Fix Scons build. Patch from Alexander Guy.
31027
31028         * WebCore.scons:
31029
31030 2009-03-11  Simon Fraser  <simon.fraser@apple.com>
31031
31032         Reviewed by Dan Bernstein
31033        
31034         https://bugs.webkit.org/show_bug.cgi?id=23093
31035         
31036         When the cancel button in the search field is shown or hidden,
31037         we need to explicitly setStyle() on the cancel button's renderer,
31038         to ensure that repaint happens. Changing the style without telling
31039         the renderer won't work.
31040
31041         Test: fast/repaint/search-field-cancel.html
31042
31043         * rendering/RenderTextControlSingleLine.cpp:
31044         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
31045         (WebCore::RenderTextControlSingleLine::updateFromElement):
31046         (WebCore::RenderTextControlSingleLine::createCancelButtonStyle):
31047         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
31048         (WebCore::RenderTextControlSingleLine::visibilityForCancelButton):
31049         * rendering/RenderTextControlSingleLine.h:
31050
31051 2009-03-11  Hironori Bono  <hbono@chromium.org>
31052
31053         Reviewed by Alexey Proskuryakov.
31054
31055         https://bugs.webkit.org/show_bug.cgi?id=15790
31056         Ligatures aren't accounted for when manipulating VisiblePositions
31057
31058         Changed cursorMovementIterator rules to prevent a cursor from moving in the middle of an
31059         Indic ligature which uses a virama sign.
31060         
31061         Test: editing/deleting/skip-virama-001.html
31062
31063         * platform/text/TextBreakIteratorICU.cpp:
31064         (WebCore::cursorMovementIterator):
31065
31066 2009-03-11  Alexey Proskuryakov  <ap@webkit.org>
31067
31068         Reviewed by George Staikos.
31069
31070         https://bugs.webkit.org/show_bug.cgi?id=24513
31071         REGRESSION: Cursor movement doesn't work on Tiger (ICU 3.2)
31072
31073         Fixes existing tests on Tiger.
31074
31075         * platform/text/TextBreakIteratorICU.cpp: (WebCore::cursorMovementIterator):
31076         Use characterBreakIterator on Tiger (like we used to do).
31077
31078 2009-03-11  Alexey Proskuryakov  <ap@webkit.org>
31079
31080         Reviewed by Oliver Hunt.
31081
31082         <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled
31083
31084         * platform/network/mac/ResourceRequestMac.mm:
31085         (WebCore::ResourceRequest::doUpdatePlatformRequest): Correct selector name
31086         in instancesRespondToSelector.
31087
31088 2009-03-11  Jan Michael Alonzo  <jmalonzo@webkit.org>
31089
31090         Reviewed by Holger Freyther.
31091
31092         [GTK]DumpRenderTree doesn't compile for non-X11 GTK ports anymore
31093         https://bugs.webkit.org/show_bug.cgi?id=2260
31094
31095         Add missing stdio.h include to get the build going
31096
31097         * plugins/gtk/PluginPackageGtk.cpp:
31098
31099 2009-03-10  Justin Garcia  <justin.garcia@apple.com>
31100
31101         Reviewed by Ken Kocienda.
31102
31103         * dom/Range.cpp:
31104         (WebCore::Range::addLineBoxRects): If the range ended at [div, 0], addLineBoxRects
31105         would include rects for the divs contents.  Set the correct RenderObject to stop at.
31106
31107 2009-03-10  Alexey Proskuryakov  <ap@webkit.org>
31108
31109         Reviewed by Sam Weinig.
31110
31111         <rdar://problem/6123770> Restrict access to document.cookie when making a cross-site XHR
31112
31113         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseXML): Removed an incorrect
31114         comment about cookie support. Firefox doesn't expose cookies on responseXML at all, and
31115         there are security concerns with exposing them for cross-origin requests, so it's not clear
31116         if we want to change anything here.
31117
31118 2009-03-10  Simon Fraser  <simon.fraser@apple.com>
31119
31120         Reviewed by Darin Adler
31121
31122         https://bugs.webkit.org/show_bug.cgi?id=24503
31123         
31124         Fix hit testing of absolutely positioned single line text controls by
31125         ensuring that we set result.innerNode() correctly. If the hit node is
31126         a descendant of the inner text element or if it is the <input> itself,
31127         then we say we hit the innerTextElement.
31128         
31129         Rename hitInnerTextBlock() to hitInnerTextElement() to match the
31130         'innerTextElement' terminology used elsewhere.
31131         
31132         Assert that if renderer()->hitTest() returns false, no-one set
31133         result.innerNode().
31134
31135         Test: fast/forms/search-abs-pos-cancel-button.html
31136
31137         * rendering/RenderLayer.cpp:
31138         (WebCore::RenderLayer::hitTestContents):
31139         * rendering/RenderTextControl.cpp:
31140         (WebCore::RenderTextControl::hitInnerTextElement):
31141         * rendering/RenderTextControl.h:
31142         * rendering/RenderTextControlMultiLine.cpp:
31143         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
31144         * rendering/RenderTextControlSingleLine.cpp:
31145         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
31146
31147 2009-03-10  Antti Koivisto  <antti@apple.com>
31148
31149         Reviewed by Mark Rowe.
31150
31151         <rdar://problem/6668238> WebCore is registering text encodings needlessly from KURL constructor.
31152         
31153         Another case where we would trigger extended encoding loading needlessly.
31154
31155         * platform/text/TextEncoding.cpp:
31156         (WebCore::TextEncoding::isNonByteBasedEncoding):
31157
31158 2009-03-10  Beth Dakin  <bdakin@apple.com>
31159
31160         Reviewed by Darin Adler.
31161
31162         Fix for <rdar://problem/6624769> REGRESSION (Safari 4 PB): No 
31163         scroll bar appears for long line of text with NOWRAP set
31164
31165         This is a regression from http://trac.webkit.org/changeset/32226
31166         I talked with Dan about the original change, and we decided that 
31167         the best fix was to remove his small potential-optimization that 
31168         only created a separate line box for whitespace under certain 
31169         circumstances. This new code will always create a separate line 
31170         box.
31171
31172         * rendering/bidi.cpp:
31173         (WebCore::RenderBlock::layoutInlineChildren):
31174
31175 2009-03-10  Sam Weinig  <sam@webkit.org>
31176
31177         Reviewed by Geoffrey Garen.
31178
31179         Fix for <rdar://problem/6166844>
31180         https://bugs.webkit.org/show_bug.cgi?id=24495
31181
31182         Use same rule for loading java applets as we do for images.
31183
31184         * html/HTMLAppletElement.cpp:
31185         (WebCore::HTMLAppletElement::createRenderer):
31186         * loader/FrameLoader.cpp:
31187         (WebCore::FrameLoader::createJavaAppletWidget):
31188
31189 2009-03-10  Justin Garcia  <justin.garcia@apple.com>
31190
31191         Reviewed by David Kilzer.
31192
31193         Get rid of revealCaret and use revealSelection instead.
31194
31195         * WebCore.base.exp:
31196         * editing/SelectionController.cpp:
31197         (WebCore::SelectionController::setSelection):
31198         * page/Frame.cpp:
31199         (WebCore::Frame::revealSelection):
31200         * page/Frame.h:
31201
31202 2009-03-10  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
31203
31204         Reviewed by Geoff Garen.
31205
31206         Bug 23736: WebKit Crashes on http://g-conquest.fr/~server2
31207         <https://bugs.webkit.org/show_bug.cgi?id=23736>
31208         <rdar://problem/6560278>
31209
31210         Before replacing the document, FrameLoader::executeIfJavaScriptURL()
31211         should call stopAllLoaders(), just like continueLoadAfterNavigationPolicy().
31212
31213         * loader/FrameLoader.cpp:
31214         (WebCore::FrameLoader::executeIfJavaScriptURL):
31215
31216 2009-03-10  Darin Adler  <darin@apple.com>
31217
31218         Reviewed by Alexey Proskuryakov.
31219
31220         Bug 24494: crash when deleting at end of document and merging paragraphs
31221         https://bugs.webkit.org/show_bug.cgi?id=24494
31222         rdar://problem/6571537
31223
31224         Test: editing/deleting/merge-at-end-of-document.html
31225
31226         * dom/Range.cpp:
31227         (WebCore::Range::compareBoundaryPoints): Split out assertion. It's better not to
31228         use && in assertions since we'd like to know which condition is failing.
31229
31230         * editing/ApplyStyleCommand.cpp:
31231         (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Added a null check before
31232         calling compareBoundaryPoints, since a 0 for the node is ambiguous and so the
31233         function doesn't know which value to return.
31234
31235 2009-03-10  Dirk Schulze  <krit@webkit.org>
31236
31237         Reviewed by Eric Seidel. Math checked by Oliver Hunt.
31238
31239         Implement the Cairo version of the checkForSolidColor() method. This halfes the
31240         time to draw on 1x1 px background images.
31241         I added two new calls to Color for the pixel manipulation on cairo_surface's.
31242         They are neede to premultiply/unpremultiply the colors of the surface.
31243
31244         [CAIRO] Introduce single-pixel image optimizations
31245         https://bugs.webkit.org/show_bug.cgi?id=17284
31246
31247         * platform/graphics/Color.cpp:
31248         (WebCore::colorFromPremultipliedARGB):
31249         (WebCore::premultipliedARGBFromColor):
31250         * platform/graphics/Color.h:
31251         * platform/graphics/cairo/ImageBufferCairo.cpp:
31252         (WebCore::ImageBuffer::getImageData):
31253         (WebCore::ImageBuffer::putImageData):
31254         * platform/graphics/cairo/ImageCairo.cpp:
31255         (WebCore::BitmapImage::checkForSolidColor):
31256
31257 2009-03-06  Darin Fisher  <darin@chromium.org>
31258
31259         Reviewed by Sam Weinig.
31260
31261         https://bugs.webkit.org/show_bug.cgi?id=24437
31262
31263         Add support for registering noAccess URL schemes:
31264         1-  Add FrameLoader::registerURLSchemeAsNoAccess, and have SecurityOrigin check
31265         that list upon construction (similar to how isLocal is implemented).
31266         2-  Make InspectorController call grantUniversalAccess on its Document's
31267         SecurityOrigin at the time when windowScriptObjectAvailable is called.
31268
31269         This enables content such as the inspector to be loaded from a custom (non-file)
31270         URL, which is how Chromium loads the inspector.  It also allows other URL schemes
31271         to be treated like data: URLs, which Chromium utilizes for its various HTML-based
31272         UI panels.
31273
31274         * inspector/InspectorController.cpp:
31275         (WebCore::InspectorController::windowScriptObjectAvailable):
31276         * loader/FrameLoader.cpp:
31277         (WebCore::localSchemes):
31278         (WebCore::noAccessSchemes):
31279         (WebCore::FrameLoader::loadItem):
31280         * loader/FrameLoader.h:
31281         * page/SecurityOrigin.cpp:
31282         (WebCore::SecurityOrigin::SecurityOrigin):
31283         (WebCore::SecurityOrigin::isLocal):
31284
31285 2009-03-10  Xan Lopez  <xlopez@igalia.com>
31286
31287         Build fix, no review
31288
31289         * page/mac/AccessibilityObjectWrapper.mm:
31290         (textMarkerForVisiblePosition):
31291         (visiblePositionForTextMarker):
31292
31293 2009-03-10  Xan Lopez  <xlopez@igalia.com>
31294
31295         Reviewed by Darin Adler.
31296
31297         https://bugs.webkit.org/show_bug.cgi?id=24491
31298         Rename posOffset to m_offset, get rid of accessor
31299
31300         As suggested in dom/Position.h, this patch gets rid of the
31301         'offset()' accessor and renames posOffset to m_offset. I've used
31302         m_offset instead of offset to follow the style guide lines, since
31303         Position is still a class and not a structure. If the long term
31304         plan is still to make it a structure it would be pretty easy to
31305         just s/m_offset/offset/ globally when that is achieved.
31306
31307         * dom/Position.cpp:
31308         (WebCore::Position::previous):
31309         (WebCore::Position::next):
31310         (WebCore::Position::atStart):
31311         (WebCore::Position::atEnd):
31312         (WebCore::Position::renderedOffset):
31313         (WebCore::Position::isCandidate):
31314         (WebCore::Position::inRenderedText):
31315         (WebCore::Position::isRenderedCharacter):
31316         (WebCore::Position::rendersInDifferentPosition):
31317         (WebCore::Position::leadingWhitespacePosition):
31318         (WebCore::Position::debugPosition):
31319         (WebCore::Position::formatForDebugger):
31320         * dom/Position.h:
31321         (WebCore::Position::Position):
31322         * dom/PositionIterator.h:
31323         (WebCore::PositionIterator::PositionIterator):
31324         * dom/Range.cpp:
31325         * dom/RangeBoundaryPoint.h:
31326         (WebCore::RangeBoundaryPoint::position):
31327         (WebCore::RangeBoundaryPoint::set):
31328         (WebCore::RangeBoundaryPoint::setOffset):
31329         (WebCore::RangeBoundaryPoint::setToChild):
31330         (WebCore::RangeBoundaryPoint::setToStart):
31331         (WebCore::RangeBoundaryPoint::setToEnd):
31332         (WebCore::RangeBoundaryPoint::childBeforeWillBeRemoved):
31333         * editing/ApplyStyleCommand.cpp:
31334         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
31335         (WebCore::ApplyStyleCommand::applyInlineStyleToRange):
31336         (WebCore::ApplyStyleCommand::removeInlineStyle):
31337         (WebCore::ApplyStyleCommand::nodeFullySelected):
31338         (WebCore::ApplyStyleCommand::nodeFullyUnselected):
31339         (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
31340         (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
31341         (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
31342         (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
31343         (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
31344         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
31345         (WebCore::ApplyStyleCommand::joinChildTextNodes):
31346         * editing/BreakBlockquoteCommand.cpp:
31347         (WebCore::BreakBlockquoteCommand::doApply):
31348         * editing/CompositeEditCommand.cpp:
31349         (WebCore::CompositeEditCommand::insertNodeAt):
31350         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
31351         (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
31352         (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
31353         (WebCore::CompositeEditCommand::deleteInsignificantText):
31354         (WebCore::CompositeEditCommand::removePlaceholderAt):
31355         (WebCore::CompositeEditCommand::moveParagraphs):
31356         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
31357         * editing/DeleteSelectionCommand.cpp:
31358         (WebCore::updatePositionForNodeRemoval):
31359         (WebCore::updatePositionForTextRemoval):
31360         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
31361         (WebCore::DeleteSelectionCommand::fixupWhitespace):
31362         * editing/Editor.cpp:
31363         (WebCore::Editor::setComposition):
31364         (WebCore::Editor::advanceToNextMisspelling):
31365         (WebCore::Editor::getCompositionSelection):
31366         * editing/InsertLineBreakCommand.cpp:
31367         (WebCore::InsertLineBreakCommand::doApply):
31368         * editing/InsertParagraphSeparatorCommand.cpp:
31369         (WebCore::InsertParagraphSeparatorCommand::doApply):
31370         * editing/InsertTextCommand.cpp:
31371         (WebCore::InsertTextCommand::performTrivialReplace):
31372         (WebCore::InsertTextCommand::input):
31373         (WebCore::InsertTextCommand::insertTab):
31374         * editing/MoveSelectionCommand.cpp:
31375         (WebCore::MoveSelectionCommand::doApply):
31376         * editing/ReplaceSelectionCommand.cpp:
31377         (WebCore::ReplaceSelectionCommand::doApply):
31378         * editing/SelectionController.cpp:
31379         (WebCore::SelectionController::debugRenderer):
31380         * editing/TextIterator.cpp:
31381         (WebCore::TextIterator::rangeFromLocationAndLength):
31382         * editing/TypingCommand.cpp:
31383         (WebCore::TypingCommand::deleteKeyPressed):
31384         (WebCore::TypingCommand::forwardDeleteKeyPressed):
31385         * editing/VisiblePosition.cpp:
31386         (WebCore::VisiblePosition::characterAfter):
31387         (WebCore::VisiblePosition::debugPosition):
31388         (WebCore::makeRange):
31389         (WebCore::setStart):
31390         (WebCore::setEnd):
31391         * editing/VisibleSelection.cpp:
31392         (WebCore::VisibleSelection::toNormalizedRange):
31393         (WebCore::makeSearchRange):
31394         (WebCore::VisibleSelection::debugPosition):
31395         (WebCore::VisibleSelection::showTreeForThis):
31396         * editing/htmlediting.cpp:
31397         (WebCore::comparePositions):
31398         (WebCore::rangeCompliantEquivalent):
31399         (WebCore::isFirstPositionAfterTable):
31400         (WebCore::isLastPositionBeforeTable):
31401         * editing/visible_units.cpp:
31402         (WebCore::previousBoundary):
31403         (WebCore::nextBoundary):
31404         (WebCore::startPositionForLine):
31405         (WebCore::startOfLine):
31406         (WebCore::endPositionForLine):
31407         (WebCore::nextLinePosition):
31408         (WebCore::startOfParagraph):
31409         (WebCore::endOfParagraph):
31410         * page/AccessibilityObject.cpp:
31411         (WebCore::updateAXLineStartForVisiblePosition):
31412         * page/AccessibilityRenderObject.cpp:
31413         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
31414         * page/DOMSelection.cpp:
31415         (WebCore::DOMSelection::anchorOffset):
31416         (WebCore::DOMSelection::baseOffset):
31417         (WebCore::DOMSelection::focusOffset):
31418         (WebCore::DOMSelection::extentOffset):
31419         * page/EventHandler.cpp:
31420         (WebCore::EventHandler::handleMousePressEventSingleClick):
31421         * page/Frame.cpp:
31422         (WebCore::Frame::selectionLayoutChanged):
31423         * rendering/RenderTextControl.cpp:
31424         (WebCore::RenderTextControl::indexForVisiblePosition):
31425         * rendering/RenderTreeAsText.cpp:
31426         (WebCore::writeSelection):
31427
31428 2009-03-10  Darin Adler  <darin@apple.com>
31429
31430         Reviewed by Dan Bernstein.
31431
31432         Bug 23564: REGRESSION (r39230-39286): crash loading page that changes <input> display type and then calls innerHTML
31433         https://bugs.webkit.org/show_bug.cgi?id=23564
31434         rdar://problem/6537238
31435
31436         Test: fast/dom/HTMLElement/innerHTML-selection-crash.html
31437
31438         * editing/markup.cpp: (WebCore::createMarkup): Added updateLayoutIgnorePendingStylesheets
31439         call to the one of the two overloads of this function that wasn't calling it. This fixes
31440         this crash and other possible crashes inside innerHTML.
31441
31442 2009-03-10  Alexey Proskuryakov  <ap@webkit.org>
31443
31444         Reviewed by Darin Adler.
31445
31446         https://bugs.webkit.org/show_bug.cgi?id=24285
31447         Text resource loading checks for BOM twice
31448
31449         This removes TextDecoder class, since its only purpose was to check for BOM, which is
31450         already done in TextResourceDecoder. Callers that use TextEncoding::decode() won't get
31451         BOM checked, but I didn't find any cases where it would significantly change behavior.
31452
31453         * GNUmakefile.am:
31454         * WebCore.pro:
31455         * WebCore.scons:
31456         * WebCore.vcproj/WebCore.vcproj:
31457         * WebCore.xcodeproj/project.pbxproj:
31458         * WebCoreSources.bkl:
31459         Remove TextDecoder.{h,cpp}.
31460
31461         * platform/text/TextDecoder.cpp: Removed.
31462         * platform/text/TextDecoder.h: Removed.
31463
31464         * loader/TextResourceDecoder.h: Instead of a TextDecoder object, keep TextEncoding and
31465         TextCodec separately.
31466
31467         * loader/TextResourceDecoder.cpp:
31468         (WebCore::TextResourceDecoder::TextResourceDecoder): Updated for m_encoding being a member.
31469         (WebCore::TextResourceDecoder::setEncoding): Ditto.
31470         (WebCore::TextResourceDecoder::checkForBOM): Removed a FIXME saying that a BOM could override
31471         even a user-chosen encoding - this is how it already worked due to TextDecoder checking for
31472         BOM again. Made this function return the detected BOM length.
31473         (WebCore::TextResourceDecoder::decode): Skip the BOM if it was found at the beginning of
31474         a text resource.
31475         (WebCore::TextResourceDecoder::flush): Reset m_checkedForBOM, so that re-decoding the same
31476         resource again (as frequently done by CachedResource subclasses) will skip the BOM correctly.
31477
31478         * platform/text/TextEncoding.cpp: (WebCore::TextEncoding::decode):
31479         Use TextCodec directly without a TextDecoder wrapper. This means that this method no longer
31480         checks for BOM, which was a counter-intuitive feature.
31481
31482         * loader/CachedScript.cpp:
31483         (WebCore::CachedScript::CachedScript):
31484         (WebCore::CachedScript::setEncoding):
31485         (WebCore::CachedScript::encoding):
31486         (WebCore::CachedScript::script):
31487         * loader/CachedScript.h:
31488         * loader/appcache/ManifestParser.cpp:
31489         (WebCore::parseManifest):
31490         Use TextResourceDecoder, as TextEncoding::decode() no longer checks for BOM.
31491         A side effect of this is that these resources will now be subject to encoding auto-detection.
31492
31493         * loader/CachedFont.cpp: (WebCore::CachedFont::ensureSVGFontData):
31494         * page/Page.cpp: (WebCore::Page::userStyleSheet):
31495         Be sure to flush TextResourceDecoder, pushing any remaining bytes out, and making the decoder
31496         re-usable (for repeated decoding of the same resource).
31497
31498         * platform/text/TextEncodingRegistry.h: Updated comments for newTextCodec().
31499
31500 2009-03-10  Alexey Proskuryakov  <ap@webkit.org>
31501
31502         Reviewed by Darin Adler.
31503
31504         https://bugs.webkit.org/show_bug.cgi?id=24488
31505         An assertion failure when updating an offline application cache after emptying caches
31506
31507         Emptying appcache cannot be performed automatically, so no test.
31508
31509         * loader/appcache/ApplicationCacheGroup.cpp:
31510         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Ensure that the cache is in disk
31511         storage, even if the application wasn't updated server side.
31512
31513 2009-03-10  Oliver Hunt  <oliver@apple.com>
31514
31515         Reviewed by Alexey Proskuryakov.
31516
31517         <rdar://problem/6425807> Implement WorkerUtils.importScripts()
31518         <https://bugs.webkit.org/show_bug.cgi?id=22721>
31519
31520         Implement importScripts, currently uses a series of synchronous loads
31521         to fetch the scripts, but this is simpler than a synchronous load of
31522         multiple loads in parallel.  In future we'll want to switch to parallel
31523         loading, but this will do for now.
31524         
31525         Test: http/tests/workers/worker-importScripts.html
31526
31527         * GNUmakefile.am:
31528         * WebCore.vcproj/WebCore.vcproj:
31529         * WebCore.xcodeproj/project.pbxproj:
31530         * bindings/js/JSWorkerContextCustom.cpp:
31531         (WebCore::JSWorkerContext::importScripts):
31532         * bindings/js/ScriptValue.h:
31533         (WebCore::ScriptValue::hasNoValue):
31534         * bindings/js/WorkerScriptController.cpp:
31535         (WebCore::WorkerScriptController::evaluate):
31536         (WebCore::WorkerScriptController::setException):
31537         * bindings/js/WorkerScriptController.h:
31538         * dom/Document.cpp:
31539         (WebCore::Document::scriptImported):
31540         * dom/Document.h:
31541         * dom/ScriptExecutionContext.h:
31542         * inspector/InspectorController.cpp:
31543         (WebCore::InspectorController::scriptImported):
31544         * inspector/InspectorController.h:
31545         * inspector/InspectorResource.cpp:
31546         (WebCore::InspectorResource::setScriptProperties):
31547         * inspector/InspectorResource.h:
31548         * workers/WorkerContext.cpp:
31549         (WebCore::WorkerContext::scriptImported):
31550         (WebCore::WorkerContext::importScripts):
31551         * workers/WorkerContext.h:
31552         * workers/WorkerContext.idl:
31553         * workers/WorkerImportScriptsClient.cpp: Added.
31554         (WebCore::WorkerImportScriptsClient::didReceiveResponse):
31555         (WebCore::WorkerImportScriptsClient::didReceiveData):
31556         (WebCore::WorkerImportScriptsClient::didFinishLoading):
31557         (WebCore::WorkerImportScriptsClient::didFail):
31558         (WebCore::WorkerImportScriptsClient::didFailRedirectCheck):
31559         (WebCore::WorkerImportScriptsClient::didReceiveAuthenticationCancellation):
31560         * workers/WorkerImportScriptsClient.h: Added.
31561         (WebCore::WorkerImportScriptsClient::WorkerImportScriptsClient):
31562         (WebCore::WorkerImportScriptsClient::script):
31563         (WebCore::WorkerImportScriptsClient::failed):
31564
31565 2009-03-10  Alexey Proskuryakov  <ap@webkit.org>
31566
31567         Reviewed by Darin Adler.
31568
31569         https://bugs.webkit.org/show_bug.cgi?id=24462
31570         Move cross-origin access control code out of XMLHttpRequest
31571
31572         Step 1: move preflight result cache and access control helper functions.
31573
31574         No change in behavior, so no test.
31575
31576         * GNUmakefile.am:
31577         * WebCore.pro:
31578         * WebCore.scons:
31579         * WebCore.vcproj/WebCore.vcproj:
31580         * WebCore.xcodeproj/project.pbxproj:
31581         * WebCoreSources.bkl:
31582         * loader/CrossOriginAccessControl.cpp: Added.
31583         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
31584         (WebCore::isSimpleCrossOriginAccessRequest):
31585         (WebCore::createAllowedCrossOriginResponseHeadersSet):
31586         (WebCore::isOnAccessControlResponseHeaderWhitelist):
31587         (WebCore::passesAccessControlCheck):
31588         * loader/CrossOriginAccessControl.h: Added.
31589         * loader/CrossOriginPreflightResultCache.cpp: Added.
31590         (WebCore::parseAccessControlMaxAge):
31591         (WebCore::addToAccessControlAllowList):
31592         (WebCore::parseAccessControlAllowList):
31593         (WebCore::CrossOriginPreflightResultCacheItem::parse):
31594         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod):
31595         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
31596         (WebCore::CrossOriginPreflightResultCacheItem::allowsRequest):
31597         (WebCore::CrossOriginPreflightResultCache::shared):
31598         (WebCore::CrossOriginPreflightResultCache::appendEntry):
31599         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
31600         * loader/CrossOriginPreflightResultCache.h: Added.
31601         (WebCore::CrossOriginPreflightResultCacheItem::CrossOriginPreflightResultCacheItem):
31602         (WebCore::CrossOriginPreflightResultCache::CrossOriginPreflightResultCache):
31603         * xml/XMLHttpRequest.cpp:
31604         (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):
31605         (WebCore::XMLHttpRequest::createRequest):
31606         (WebCore::XMLHttpRequest::makeCrossOriginAccessRequest):
31607         (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest):
31608         (WebCore::XMLHttpRequest::makeCrossOriginAccessRequestWithPreflight):
31609         (WebCore::XMLHttpRequest::didReceiveResponse):
31610         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
31611         * xml/XMLHttpRequest.h:
31612
31613 2009-03-10  Alexey Proskuryakov  <ap@webkit.org>
31614
31615         Reviewed by Darin Adler.
31616
31617         https://bugs.webkit.org/show_bug.cgi?id=19797
31618         Bring the list of forbidden headers in sync with XMLHttpRequest spec draft
31619
31620         Added new checks to http/tests/xmlhttprequest/set-dangerous-headers.html.
31621
31622         * xml/XMLHttpRequest.cpp:
31623         (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData): Added all headers from
31624         XMLHttpRequest 2 draft.
31625
31626 2009-03-10  Dan Bernstein  <mitz@apple.com>
31627
31628         Reviewed by Adele Peterson.
31629
31630         - fix https://bugs.webkit.org/show_bug.cgi?id=23975
31631           <rdar://problem/6593610> REGRESSION: Scrollbar arrow not repainted
31632
31633         * rendering/RenderLayer.cpp:
31634         (WebCore::RenderLayer::invalidateScrollbarRect): Corrected the vertical
31635         scrollbar rect calculation.
31636
31637 2009-03-09  Simon Fraser  <simon.fraser@apple.com>
31638
31639         Reviewed by Dan Bernstein, Oliver Hunt
31640
31641         https://bugs.webkit.org/show_bug.cgi?id=24475
31642         
31643         When repainting replaced elements, need to union the selection
31644         and overflow rects because either may extend outside the other.
31645         
31646         Test: fast/repaint/transform-replaced-shadows.html
31647
31648         * rendering/RenderReplaced.cpp:
31649         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
31650
31651 2009-03-09  Stephanie Lewis  <slewis@apple.com>
31652
31653         Fix build.
31654
31655         * editing/Editor.cpp:
31656         (WebCore::Editor::advanceToNextMisspelling):
31657         (WebCore::markAllMisspellingsAndBadGrammarInRanges):
31658
31659 2009-03-09  Kim Christensen  <kimworking@gmail.com>
31660
31661         Reviewed by Darin Fisher.
31662
31663         https://bugs.webkit.org/show_bug.cgi?id=24276
31664         Dropdown / select boxes do not consider the windows task bar in Chromium.
31665
31666         * platform/chromium/PopupMenuChromium.cpp:
31667         (WebCore::PopupContainer::showPopup):
31668
31669 2009-03-09  Dan Bernstein  <mitz@apple.com>
31670
31671         Reviewed by Adele Peterson and Dave Hyatt.
31672
31673         - fix <rdar://problem/6654344> REGRESSION (r41041): Zillow.com has
31674           misaligned edit fields
31675
31676         Test: fast/forms/legend-display-none.html
31677
31678         * css/CSSStyleSelector.cpp:
31679         (WebCore::CSSStyleSelector::adjustRenderStyle): Change the display
31680         property of legend elements to 'block' unless it is 'none'.
31681         * css/html4.css: Do not force the display property of legend elements to
31682         'block' using CSS, because that prevents style rules from setting it to
31683         'none'.
31684
31685 2009-03-09  Alpha Lam  <hclam@chromium.org>
31686
31687         Reviewed by Dave Hyatt.
31688
31689         https://bugs.webkit.org/show_bug.cgi?id=23024
31690
31691         Fix an incorrect criteria in the if statement that leaves references to
31692         deleted floating objects in RenderBlock.
31693
31694         Test: fast/block/float/crash-on-absolute-positioning.html
31695
31696         * rendering/RenderBlock.cpp:
31697         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
31698
31699 2009-03-09  Mike Belshe  <mike@belshe.com>
31700
31701         Reviewed by Eric Seidel.
31702
31703         Unify JSC/V8 idl file.
31704         https://bugs.webkit.org/show_bug.cgi?id=24424
31705
31706         * page/Location.idl:
31707
31708 2009-03-09  Mike Belshe  <mike@belshe.com>
31709
31710         Reviewed by Eric Seidel.
31711
31712         Unify JSC/V8 for History.idl.
31713
31714         * page/History.idl:
31715
31716 2009-03-09  Mike Belshe  <mike@belshe.com>
31717
31718         Reviewed by Eric Seidel.
31719
31720         Unify JSC/V8 implementations of DOMWindow.idl.
31721
31722         * page/DOMWindow.idl:
31723
31724 2009-03-09  Simon Fraser  <simon.fraser@apple.com>
31725
31726         Reviewed by Dave Hyatt
31727
31728         https://bugs.webkit.org/show_bug.cgi?id=24163
31729         
31730         Implement mapping of FloatQuads through 3D transforms.
31731         
31732         Removed the redundant localToContainerQuad() methods, which can now 
31733         shared code with the old mapLocalToAbsolutePoint(), which was
31734         renamed to mapLocalToContainer(). This can now convert a point,
31735         and optionally a FloatQuad, which are carried along in the TransformState.
31736         
31737         Optimized TransformState to reduce to simple FloatPoint.move()
31738         if there are no transforms, and to heap-allocate a transform only if
31739         necessary to accumulate transforms (when using preserve-3d).
31740         
31741         Tested by 3d point mapping tests, and the inspector highlight (which now shows
31742         the correct quads for 3d-transformed elements).
31743
31744         * platform/graphics/transforms/TransformationMatrix.cpp:
31745         (WebCore::TransformationMatrix::projectQuad):
31746         (WebCore::TransformationMatrix::translateRight):
31747         (WebCore::TransformationMatrix::translateRight3d):
31748         * platform/graphics/transforms/TransformationMatrix.h:
31749         * rendering/RenderBox.cpp:
31750         (WebCore::RenderBox::mapLocalToContainer):
31751         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
31752         * rendering/RenderBox.h:
31753         * rendering/RenderObject.cpp:
31754         (WebCore::RenderObject::localToAbsolute):
31755         (WebCore::RenderObject::absoluteToLocal):
31756         (WebCore::RenderObject::mapLocalToContainer):
31757         (WebCore::RenderObject::localToContainerQuad):
31758         * rendering/RenderObject.h:
31759         * rendering/RenderTableCell.cpp:
31760         (WebCore::RenderTableCell::mapLocalToContainer):
31761         * rendering/RenderTableCell.h:
31762         * rendering/RenderView.cpp:
31763         (WebCore::RenderView::mapLocalToContainer):
31764         * rendering/RenderView.h:
31765         * rendering/TransformState.cpp:
31766         (WebCore::TransformState::move):
31767         (WebCore::TransformState::applyTransform):
31768         (WebCore::TransformState::flatten):
31769         (WebCore::TransformState::mappedPoint):
31770         (WebCore::TransformState::mappedQuad):
31771         (WebCore::TransformState::flattenWithTransform):
31772         (WebCore::HitTestingTransformState::mappedQuad):
31773         * rendering/TransformState.h:
31774         (WebCore::TransformState::TransformState):
31775         (WebCore::TransformState::move):
31776         (WebCore::TransformState::lastPlanarPoint):
31777         (WebCore::TransformState::lastPlanarQuad):
31778         * rendering/style/RenderStyle.h:
31779         (WebCore::InheritedFlags::preserves3D):
31780
31781 2009-03-09  Simon Fraser  <simon.fraser@apple.com>
31782
31783         Reviewed by Dave Hyatt
31784
31785         https://bugs.webkit.org/show_bug.cgi?id=24433
31786         
31787         During hit testing with transforms, if a layer has backface-visibility: hidden,
31788         we need to check for it whether or not the layer has a transform, because it
31789         might be an ancestor that is transformed.
31790
31791         Test: transforms/3d/hit-testing/backface-no-transform-hit-test.html
31792
31793         * rendering/RenderLayer.cpp:
31794         (WebCore::RenderLayer::hitTestLayer):
31795
31796 2009-03-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
31797
31798         Reviewed by George Staikos.
31799
31800         https://bugs.webkit.org/show_bug.cgi?id=24353
31801         Allow to overrule default build options for Qt build.
31802
31803         * WebCore.pro: Allow to overrule ENABLE_VIDEO and ENABLE_NETSCAPE_PLUGIN_API
31804
31805 2009-03-09  Adam Treat  <adam.treat@torchmobile.com>
31806
31807         Reviewed by George Staikos.
31808
31809         https://bugs.webkit.org/show_bug.cgi?id=24463
31810         WebCore::qstring is detaching and copying twice for every single
31811         WebCore::TextRun that is processed and drawn.  This elevates this method
31812         to one of the top-ten most expensive methods in all of QtWebKit according
31813         to profiling.  This changes the method so that QString only detaches
31814         when absolutely necessary.
31815
31816         * platform/graphics/qt/FontQt.cpp:
31817         (WebCore::qstring):
31818         (WebCore::fixSpacing):
31819         (WebCore::Font::drawComplexText):
31820         (WebCore::Font::floatWidthForComplexText):
31821         (WebCore::Font::offsetForPositionForComplexText):
31822         (WebCore::Font::selectionRectForComplexText):
31823
31824 2009-03-08  Mark Rowe  <mrowe@apple.com>
31825
31826         Reviewed by Oliver Hunt.
31827
31828         Split ScrollAlignment and ScrollBehavior out of RenderLayer.h so that
31829         Frame.h no longer needs to include it.  This cuts the size of the symbols
31830         for a debug build by around 3%.
31831
31832         * dom/Element.cpp:
31833         (WebCore::Element::scrollIntoView):
31834         (WebCore::Element::scrollIntoViewIfNeeded):
31835         * editing/Editor.cpp:
31836         (WebCore::Editor::insertTextWithoutSendingTextEvent):
31837         (WebCore::Editor::revealSelectionAfterEditingOperation):
31838         * editing/SelectionController.cpp:
31839         (WebCore::SelectionController::setSelection):
31840         * loader/FrameLoader.cpp:
31841         (WebCore::FrameLoader::gotoAnchor):
31842         * page/ContextMenuController.cpp:
31843         (WebCore::ContextMenuController::contextMenuItemSelected):
31844         * page/Frame.cpp:
31845         (WebCore::Frame::revealSelection):
31846         (WebCore::Frame::revealCaret):
31847         * page/Frame.h:
31848         * rendering/RenderLayer.cpp:
31849         (WebCore::RenderLayer::getRectToExpose):
31850         (WebCore::RenderLayer::autoscroll):
31851         * rendering/RenderLayer.h:
31852         * rendering/ScrollBehavior.cpp: Added.
31853         (WebCore::):
31854         * rendering/ScrollBehavior.h: Added.
31855         (WebCore::):
31856         (WebCore::ScrollAlignment::getVisibleBehavior):
31857         (WebCore::ScrollAlignment::getPartialBehavior):
31858         (WebCore::ScrollAlignment::getHiddenBehavior):
31859
31860         Add the new files to the build systems:
31861         * GNUmakefile.am:
31862         * WebCore.base.exp:
31863         * WebCore.pro:
31864         * WebCore.scons:
31865         * WebCore.vcproj/WebCore.vcproj:
31866         * WebCore.xcodeproj/project.pbxproj:
31867         * WebCoreSources.bkl:
31868
31869         Add includes that were previously pulled in by way of RenderLayer.h from Frame.h:
31870         * dom/Clipboard.cpp:
31871         * editing/EditorCommand.cpp:
31872         * editing/InsertLineBreakCommand.cpp:
31873         * editing/TypingCommand.cpp:
31874         * html/HTMLFormControlElement.cpp:
31875         * loader/archive/cf/LegacyWebArchive.cpp:
31876         * loader/icon/IconLoader.cpp:
31877         * page/animation/AnimationController.cpp:
31878         * rendering/RenderSlider.cpp:
31879         * rendering/RenderTextControl.cpp:
31880
31881
31882 2009-03-08  Mark Rowe  <mrowe@apple.com>
31883
31884         Reviewed Dan Bernstein.
31885
31886         Push the include of Frame.h out of RenderView.h and down to those files
31887         that need it.  This cuts the size of symbols for RenderFoo object files
31888         by around 15% in a debug build.
31889
31890         * bindings/objc/DOM.mm:
31891         * rendering/RenderFileUploadControl.cpp:
31892         * rendering/RenderInline.cpp:
31893         * rendering/RenderObject.cpp:
31894         * rendering/RenderReplaced.cpp:
31895         * rendering/RenderText.cpp:
31896         * rendering/RenderView.cpp:
31897         (WebCore::RenderView::zoomFactor):
31898         * rendering/RenderView.h:
31899
31900 2009-03-08  Mark Rowe  <mrowe@apple.com>
31901
31902         Rubber-stamped by Dan Bernstein.
31903
31904         Remove some unnecessary or redundant includes from files related to the JS bindings.
31905         This cuts the size of the symbols for a debug build by around 3%.
31906
31907         * bindings/js/JSCustomPositionCallback.cpp:
31908         * bindings/js/JSCustomPositionErrorCallback.cpp:
31909         * bindings/js/JSCustomSQLStatementCallback.cpp:
31910         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
31911         * bindings/js/JSCustomSQLTransactionCallback.cpp:
31912         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
31913         * bindings/js/JSCustomVoidCallback.cpp:
31914         * bindings/js/JSCustomXPathNSResolver.cpp:
31915         * bindings/js/JSDocumentCustom.cpp:
31916         * bindings/js/JSPluginElementFunctions.cpp:
31917         * bindings/js/JSSVGPODTypeWrapper.h:
31918
31919 2009-03-08  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
31920
31921         Reviewed by Oliver Hunt.
31922
31923         Remove the unused methods previousHistoryItem(), setPreviousHistoryItem()
31924         and provisionalHistoryItem() from FrameLoader.
31925
31926         * WebCore.base.exp:
31927         * WebCore.order:
31928         * loader/FrameLoader.cpp:
31929         (WebCore::FrameLoader::frameLoadCompleted):
31930         (WebCore::FrameLoader::loadItem):
31931         * loader/FrameLoader.h:
31932
31933 2009-03-08  Gustavo Noronha Silva  <gns@gnome.org>
31934
31935         Reviewed by Holger Freyther.
31936
31937         Implement proper logging for the GTK+ port, inspired by the one in
31938         Qt. We use the WEBKIT_DEBUG environment variable which was already
31939         being used to decide whether to setup a logger for soup or not.
31940
31941         * platform/gtk/LoggingGtk.cpp:
31942         (WebCore::getChannelFromName):
31943         (WebCore::InitializeLoggingChannelsIfNecessary):
31944         * platform/network/soup/ResourceHandleSoup.cpp:
31945         (WebCore::ensureSessionIsInitialized):
31946
31947 2009-03-07  Dan Bernstein  <mitz@apple.com>
31948
31949         Reviewed by Mark Rowe.
31950
31951         - WebCore part of removing build-time and run-time support for legacy
31952           versions of CFNetwork and Core Graphics
31953
31954         * platform/graphics/win/FontCGWin.cpp:
31955         (WebCore::Font::drawGlyphs):
31956         * platform/graphics/win/FontCustomPlatformData.cpp:
31957         (WebCore::FontCustomPlatformData::fontPlatformData):
31958         * platform/graphics/win/FontPlatformDataCGWin.cpp:
31959         (WebCore::FontPlatformData::platformDataInit):
31960         * platform/network/cf/FormDataStreamCFNet.cpp:
31961         (WebCore::setHTTPBody):
31962         (WebCore::httpBodyFromRequest):
31963         * platform/network/cf/ResourceHandleCFNet.cpp:
31964         (WebCore::didSendBodyData):
31965         (WebCore::shouldUseCredentialStorageCallback):
31966         (WebCore::ResourceHandle::start):
31967         * platform/network/win/CookieJarCFNetWin.cpp:
31968         (WebCore::filterCookies):
31969
31970 2009-03-07  Adele Peterson  <adele@apple.com>
31971
31972         Reviewed by Dan Bernstein.
31973
31974         Fix for https://bugs.webkit.org/show_bug.cgi?id=24444
31975         No multiple JS property for <input type="file" multiple />
31976
31977         * html/HTMLInputElement.cpp:
31978         (WebCore::HTMLInputElement::multiple):
31979         (WebCore::HTMLInputElement::setMultiple):
31980         * html/HTMLInputElement.h:
31981         * html/HTMLInputElement.idl:
31982
31983 2009-03-07  Xan Lopez  <xan@gnome.org>
31984
31985         Reviewed by Holger Freyther.
31986
31987         https://bugs.webkit.org/show_bug.cgi?id=24358
31988         [GTK] Scrollbars not clipped correctly
31989
31990         ScrollView scrollbars in subframes are *not* native, so take that
31991         into account again.
31992
31993         * platform/gtk/ScrollbarGtk.cpp:
31994         (ScrollbarGtk::getLocationInParentWindow):
31995         (ScrollbarGtk::frameRectsChanged):
31996         (ScrollbarGtk::paint):
31997         * platform/gtk/ScrollbarGtk.h:
31998
31999 2009-03-06  Peter Kasting  <pkasting@google.com>
32000
32001         Reviewed by Darin Fisher.
32002
32003         https://bugs.webkit.org/show_bug.cgi?id=24405
32004         Horizontal scrolling on Windows was reversed from Mac (and intuition).
32005
32006         * platform/gtk/WheelEventGtk.cpp:
32007         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32008         * platform/win/WheelEventWin.cpp:
32009         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32010
32011 2009-03-06  Peter Kasting  <pkasting@google.com>
32012
32013         Reviewed by Sam Weinig.
32014
32015         Convert some C-style casts to static_cast<>()s.
32016
32017         * platform/gtk/WheelEventGtk.cpp:
32018         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32019         * platform/mac/WheelEventMac.mm:
32020         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32021         * platform/win/WheelEventWin.cpp:
32022         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32023         * platform/wx/MouseWheelEventWx.cpp:
32024         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32025
32026 2009-03-06  Adele Peterson  <adele@apple.com>
32027
32028         Reviewed by Oliver Hunt.
32029
32030         Fix for <rdar://problem/6607524> REGRESSION (Safari 3-4): I can't tab back to the URL field in an empty window (key loop is broken)
32031
32032         I haven't been able to make a test for this since the problem is not reproducible within an empty iframe.
32033
32034         * page/EventHandler.cpp: (WebCore::eventTargetNodeForDocument): We used to ensure that every html document had a body element.
32035           That is no longer true, so we should return the document element for a truly empty document.
32036
32037 2009-03-06  Jay Campan  <jcampan@google.com>
32038
32039         Reviewed by Darin Fisher.
32040
32041         https://bugs.webkit.org/show_bug.cgi?id=24306
32042
32043         Adding a flag to ResourceRequestBase to indicate whether or not upload
32044         progress notifications are needed for a resource. This is useful to
32045         avoid sending these notifications when there are no consumers
32046         (especially in the Chromium case where IPC is involved). 
32047
32048         * platform/network/ResourceRequestBase.h:
32049         (WebCore::ResourceRequestBase::reportUploadProgress):
32050         (WebCore::ResourceRequestBase::setReportUploadProgress):
32051         (WebCore::ResourceRequestBase::ResourceRequestBase):
32052         * xml/XMLHttpRequest.cpp:
32053         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
32054
32055 2009-03-06  Dmitry Titov  <dimich@chromium.org>
32056
32057         Reviewed by Alexey Proskuryakov.
32058
32059         https://bugs.webkit.org/show_bug.cgi?id=24150
32060         Add virtual ScriptExecutionContext::encoding()
32061
32062         Test: http/tests/workers/text-encoding.html
32063
32064         * dom/Document.cpp:
32065         (WebCore::Document::encoding):
32066         * dom/Document.h:
32067         (WebCore::Document::inputEncoding):
32068         (WebCore::Document::charset):
32069         (WebCore::Document::characterSet):
32070         Add new virtual method and route DOM synonym functions on Document through it.
32071
32072         * dom/ScriptExecutionContext.h:
32073         * workers/Worker.cpp:
32074         (WebCore::Worker::Worker):
32075         (WebCore::Worker::notifyFinished):
32076         * workers/WorkerContext.cpp:
32077         (WebCore::WorkerContext::WorkerContext):
32078         (WebCore::WorkerContext::encoding):
32079         (WebCore::WorkerContext::completeURL): Added comment on why this is different from Document::completeURL
32080         * workers/WorkerContext.h:
32081         (WebCore::WorkerContext::create):
32082         * workers/WorkerContextProxy.h:
32083         * workers/WorkerMessagingProxy.cpp:
32084         (WebCore::WorkerMessagingProxy::startWorkerContext):
32085         * workers/WorkerMessagingProxy.h:
32086         * workers/WorkerThread.cpp:
32087         (WebCore::WorkerThreadStartupData::create):
32088         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
32089         (WebCore::WorkerThread::create):
32090         (WebCore::WorkerThread::WorkerThread):
32091         (WebCore::WorkerThread::workerThread):
32092         * workers/WorkerThread.h:
32093         All of the above route the 'encoding' parameter of parent context to the new
32094         instance of WorkerContext - from Worker::notifyFinished() via WorkerMessagingProxy
32095         through WorkerThread through WorkerThreadStartupData and into constructor of WorkerContext.
32096
32097 2009-03-06  Peter Kasting  <pkasting@google.com>
32098
32099         Build bustage fix.
32100
32101         * dom/Node.cpp:
32102         (WebCore::Node::dispatchWheelEvent):
32103
32104 2009-03-06  Eric Carlson  <eric.carlson@apple.com>
32105
32106         Reviewed by Antti Koivisto.
32107
32108         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
32109         (WebCore::MediaPlayerPrivate::createQTMovieView):  Delay callback while setting up movieview.
32110
32111 2009-03-06  Douglas R. Davidson  <ddavidso@apple.com>
32112
32113         Reviewed by Justin Garcia.
32114         
32115         https://bugs.webkit.org/show_bug.cgi?id=24108
32116
32117         Update spelling and grammar checking to use the new combined text 
32118         checking (with automatic language identification) on Snow Leopard. 
32119         Tested manually in Mail and Safari; automated tests to come later. 
32120         
32121         * editing/Editor.cpp:
32122         (WebCore::findFirstMisspellingOrBadGrammarInRange):
32123         (WebCore::Editor::advanceToNextMisspelling):
32124         (WebCore::guessesForMisspelledOrUngrammaticalRange):
32125         (WebCore::Editor::guessesForMisspelledOrUngrammaticalSelection):
32126         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
32127         (WebCore::markAllMisspellingsAndBadGrammarInRanges):
32128         (WebCore::Editor::markMisspellingsAndBadGrammar):
32129         * editing/Editor.h:
32130         * loader/EmptyClients.h:
32131         (WebCore::EmptyEditorClient::checkSpellingAndGrammarOfParagraph):
32132         * page/EditorClient.h:
32133         * page/Frame.cpp:
32134         (WebCore::Frame::respondToChangedSelection):
32135         * platform/ContextMenu.cpp:
32136         (WebCore::ContextMenu::populate):
32137
32138 2009-03-06  Peter Kasting  <pkasting@google.com>
32139
32140         Reviewed by Darin Fisher.
32141
32142         https://bugs.webkit.org/show_bug.cgi?id=24407
32143         Windows scroll amount was too small, and wheel scroll distance
32144         conversion code was overly complex.
32145
32146         * page/EventHandler.cpp:
32147         (WebCore::scrollAndAcceptEvent):
32148         * platform/PlatformWheelEvent.h:
32149         (WebCore::):
32150         * platform/ScrollView.cpp:
32151         (WebCore::ScrollView::wheelEvent):
32152         * platform/Scrollbar.h:
32153         * platform/gtk/WheelEventGtk.cpp:
32154         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32155         * platform/mac/WheelEventMac.mm:
32156         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32157         * platform/qt/WheelEventQt.cpp:
32158         * platform/win/WheelEventWin.cpp:
32159         (WebCore::horizontalScrollChars):
32160         (WebCore::verticalScrollLines):
32161         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32162         * platform/wx/MouseWheelEventWx.cpp:
32163         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
32164
32165 2009-03-06  Dimitri Glazkov  <dglazkov@chromium.org>
32166
32167         Reviewed by Adam Roben.
32168
32169         Generate valid bindings with HTML5 database support disabled. 
32170
32171         * inspector/InspectorController.idl: Added feature guard around 
32172         databaseTableNames definition.
32173
32174 2009-03-04  Xan Lopez  <xan@gnome.org>
32175
32176         Reviewed by Holger Freyther.
32177
32178         https://bugs.webkit.org/show_bug.cgi?id=24358
32179         [GTK] Scrollbars not clipped correctly
32180
32181         Do not take into account the case of being a ScrollView scrollbar,
32182         since those are native in our case.
32183
32184         * platform/gtk/ScrollbarGtk.cpp:
32185         (ScrollbarGtk::frameRectsChanged):
32186
32187 2009-03-04  Xan Lopez  <xan@gnome.org>
32188
32189         Reviewed by Holger Freyther.
32190
32191         https://bugs.webkit.org/show_bug.cgi?id=24358
32192         [GTK] Scrollbars not clipped correctly
32193
32194         Move Widget::paint to ScrollbarGtk::paint, since it's scrollbar
32195         specific and it's our only Widget anyway.
32196
32197         * platform/gtk/ScrollbarGtk.cpp:
32198         (ScrollbarGtk::paint):
32199         * platform/gtk/ScrollbarGtk.h:
32200         * platform/gtk/WidgetGtk.cpp:
32201
32202 2009-03-04  Xan Lopez  <xan@gnome.org>
32203
32204         Reviewed by Holger Freyther.
32205
32206         https://bugs.webkit.org/show_bug.cgi?id=24358
32207         [GTK] Scrollbars not clipped correctly
32208
32209         Use correct clip rectangle and apply coordinate translation needed
32210         for non-ScrollView scrollbars.
32211
32212         We were ignoring the clip rectangle passed as parameter, which is
32213         wrong in the case of non coalesced expose events. This, in turn,
32214         uncovers the fact that we were not applying coordinate translation
32215         to our position.
32216
32217         * platform/gtk/WidgetGtk.cpp:
32218         (WebCore::Widget::paint):
32219
32220 2009-03-06  Eric Carlson  <eric.carlson@apple.com>
32221
32222         Build fix, no review
32223
32224         * platform/graphics/chromium/MediaPlayerPrivateChromium.h: fix setSize declaration
32225
32226 2009-03-06  Eric Carlson  <eric.carlson@apple.com>
32227
32228         Reviewed by Simon Fraser.
32229
32230         https://bugs.webkit.org/show_bug.cgi?id=22790
32231         Bug 22790: [Transforms] MediaPlayer::setRect() makes no sense with transforms
32232         Replace media engine setRect with setSize since they don't use about the 
32233         position anyway.
32234
32235         * platform/graphics/MediaPlayer.cpp:
32236         (WebCore::NullMediaPlayerPrivate::setSize): Changed from setRect.
32237         (WebCore::MediaPlayer::setSize): Ditto.
32238         * platform/graphics/MediaPlayer.h:
32239         (WebCore::MediaPlayer::size): Changed from rect().
32240
32241         * platform/graphics/MediaPlayerPrivate.h: Changed setRect to setSize.
32242
32243         * platform/graphics/chromium/MediaPlayerPrivateChromium.h: Ditto.
32244
32245         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: 
32246         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_size instead of m_rect
32247         (WebCore::MediaPlayerPrivate::setSize): Changed from setRect
32248         (WebCore::MediaPlayerPrivate::paint): update comment
32249         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h: m_rect -> m_size.
32250
32251         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:  m_rect
32252         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
32253         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_rect.
32254         (WebCore::MediaPlayerPrivate::createQTMovieView): setRect-> setSize.
32255         (WebCore::MediaPlayerPrivate::setSize): Changed from setRect
32256         (WebCore::MediaPlayerPrivate::paint): Call view:setFrame: when in a media document so 
32257         the movie is drawn in the correct location.
32258
32259         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
32260         (WebCore::MediaPlayerPrivate::setSize):  Changed from setRect
32261         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
32262
32263         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
32264         (WebCore::MediaPlayerPrivate::setSize):  Changed from setRect
32265         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
32266
32267         * rendering/RenderVideo.cpp:
32268         (WebCore::RenderVideo::updatePlayer): Call setSize instead of setRect.
32269
32270 2009-03-06  Darin Adler  <darin@apple.com>
32271
32272         Reviewed by Darin Fisher.
32273
32274         Bug 24422: REGRESSION: null-URL crash in FrameLoader setting location.hash on new window
32275         https://bugs.webkit.org/show_bug.cgi?id=24422
32276         rdar://problem/6402208
32277
32278         Test: fast/dom/location-new-window-no-crash.html
32279
32280         The issue here is empty (or null) URLs. I picked the "schedule navigation" bottleneck
32281         to add some checks for empty URLs. We could also put the empty URL checks at some
32282         other bottleneck level and add more assertions over time. I tried adding a few more
32283         assertions to functions like loadURL and hit them while running the regression tests,
32284         so it's probably going to be a bit tricky to clean this up throughout the loader.
32285
32286         * loader/FrameLoader.cpp:
32287         (WebCore::ScheduledRedirection::ScheduledRedirection): Explicitly marked this struct
32288         immutable by making all its members const. Added assertions about the arguments,
32289         including that the URL is not empty. Initialized one uninitialized member in one of
32290         the constructors.
32291         (WebCore::FrameLoader::scheduleHTTPRedirection): Added an early exit to make this
32292         a no-op if passed an empty URL.
32293         (WebCore::FrameLoader::scheduleLocationChange): Ditto.
32294         (WebCore::FrameLoader::scheduleRefresh): Ditto.
32295
32296 2009-03-06  Gustavo Noronha Silva  <gns@gnome.org>
32297
32298         Reviewed by Holger Freyther.
32299
32300         https://bugs.webkit.org/show_bug.cgi?id=24423
32301         Use new soup_message_body_set_accumulate API in soup backend
32302
32303         Disable accumulating chunks for request_body on file uploads,
32304         using the new soup API.
32305
32306         * platform/network/soup/ResourceHandleSoup.cpp:
32307         (WebCore::ResourceHandle::startHttp):
32308
32309 2009-03-06  Gustavo Noronha Silva  <gns@gnome.org>
32310
32311         Reviewed by Holger Freyther.
32312
32313         Replace use of deprecated SOUP_MESSAGE_OVERWRITE_CHUNKS flag with
32314         the new soup_message_body_set_accumulate API in soup.
32315
32316         * platform/network/soup/ResourceHandleSoup.cpp:
32317         (WebCore::gotHeadersCallback):
32318         (WebCore::ResourceHandle::startHttp):
32319
32320 2009-03-06  Gustavo Noronha Silva  <gns@gnome.org>
32321
32322         Reviewed by Holger Freyther.
32323
32324         https://bugs.webkit.org/show_bug.cgi?id=24051
32325         Soup backend needs content sniffing capabilities
32326
32327         Perform content sniffing when using soup, so that we have a chance
32328         of figuring out the Content-Type of the file if it's not sent by
32329         the server.
32330
32331         * platform/network/ResourceHandleInternal.h:
32332         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
32333         * platform/network/soup/ResourceHandleSoup.cpp:
32334         (WebCore::gotHeadersCallback):
32335         (WebCore::gotChunkCallback):
32336
32337 2009-03-06  Hironori Bono  <hbono@chromium.org>
32338
32339         Reviewed by Alexey Proskuryakov.
32340
32341         https://bugs.webkit.org/show_bug.cgi?id=24342
32342         Cannot insert a Thai character after a Thai prepend character when using ICU 4.0
32343
32344         This change creates a new break iterator "cursorMovementIterator" for
32345         moving cursors and use it when moving an input cursor.
32346         In "TextBreakIteratorICU.cpp", this break iterator uses custom ruleset
32347         based on the one of ICU 3.8.
32348         On the other hand, in "TextBreakIteratorQt.cpp", this break iterator
32349         just calls the characterBreakIterator() function.
32350
32351         Test: editing/inserting/insert-thai-characters-001.html
32352
32353         * platform/text/TextBreakIterator.h: Added a new function cursorMovementIterator().
32354         * platform/text/TextBreakIteratorICU.cpp: Implemented the cursorMovementIterator() function for ICU.
32355         (WebCore::setUpIteratorWithRules): Ditto.
32356         (WebCore::cursorMovementIterator): Ditto.
32357         * platform/text/qt/TextBreakIteratorQt.cpp: Implemented the cursorMovementIterator() function for Qt.
32358         (WebCore::cursorMovementIterator): Ditto.
32359         * rendering/RenderText.cpp: Call the cursorMovementIterator() function when moving an input cursor.
32360         (WebCore::RenderText::previousOffset): Ditto.
32361         (WebCore::RenderText::nextOffset): Ditto.
32362
32363 2009-03-05  Alexey Proskuryakov  <ap@webkit.org>
32364
32365         Reviewed by Oliver Hunt.
32366
32367         <rdar://problem/6621701> Safari 4 Beta Breaks XMLHttpRequest Response Text With Special
32368         Characters (a compatibility issue with widgets).
32369
32370         Test: http/tests/xmlhttprequest/broken-xml-encoding.html
32371
32372         Revert part of an Acid 3 fix - now we are no longer strict when decoding XMLHttpRequest XML
32373         responses.
32374
32375         * loader/TextResourceDecoder.cpp:
32376         (WebCore::TextResourceDecoder::TextResourceDecoder):
32377         (WebCore::TextResourceDecoder::decode):
32378         (WebCore::TextResourceDecoder::flush):
32379         * loader/TextResourceDecoder.h:
32380         (WebCore::TextResourceDecoder::useLenientXMLDecoding):
32381         Don't stop on XML decoding errors if useLenientXMLDecoding() was called.
32382
32383         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didReceiveData): Don't stop on XML
32384         decoding errors. This behavior is now limited to other kinds of XML content.
32385
32386 2009-03-05  Simone Fiorentino  <simone.fiorentino@consulenti.fastweb.it>
32387
32388         Bug 24382: request to add SH4 platform
32389
32390         <https://bugs.webkit.org/show_bug.cgi?id=24382>
32391
32392         Reviewed by David Kilzer.
32393
32394         * platform/text/AtomicString.cpp:
32395         (WebCore::equal): Aligned memory access on SH4 platform.
32396
32397 2009-03-05  Jeremy Moskovich  <jeremy@chromium.org>
32398
32399         Reviewed by Simon Fraser.
32400
32401         Fix for https://bugs.webkit.org/show_bug.cgi?id=24215
32402
32403         Gears expects an object tag with display:none to instantiate the plugin,
32404         so we add a workaround to make this work and fix Gears on WebKit trunk.
32405
32406         * html/HTMLObjectElement.cpp:
32407         (WebCore::HTMLObjectElement::rendererIsNeeded):
32408
32409 2009-03-05  Avi Drissman  <avi@chromium.org>
32410
32411         Reviewed by Darin Fisher.
32412
32413         Need to have Chromium Mac match Safari Mac's accesskey handling
32414         https://bugs.webkit.org/show_bug.cgi?id=24404
32415
32416         * page/chromium/EventHandlerChromium.cpp:
32417         (WebCore::EventHandler::accessKeyModifiers): Share access key modifiers with Mac Safari when building for the Mac.
32418
32419 2009-03-05  Simon Fraser  <simon.fraser@apple.com>
32420
32421         Reviewed by Dave Hyatt
32422
32423         https://bugs.webkit.org/show_bug.cgi?id=24412
32424         
32425         Fix crash when hit-testing elements with -webkit-transform-style: preserve-3d
32426         but no transform. We need to make localTransformState if we see preserve-3d.
32427         Also need to call update3DTransformedDescendantStatus() before we test
32428         m_has3DTransformedDescendant.
32429
32430         Test: transforms/3d/hit-testing/hit-preserves-3d.html
32431
32432         * rendering/RenderLayer.cpp:
32433         (WebCore::RenderLayer::hitTestLayer):
32434
32435 2009-03-05  Eric Seidel  <eric@webkit.org>
32436
32437         Reviewed by David Hyatt.
32438
32439         Changes to RenderLayer destruction to hopefully help catch an elusive crasher
32440         https://bugs.webkit.org/show_bug.cgi?id=24409
32441         
32442         Added a new RenderBoxModelObject::destroyLayer() call which is
32443         now the only way which RenderLayers should ever be destroyed.
32444         This ensures that the pointer to the layer is cleared in the
32445         RenderObject after destruction, allowing us to ASSERT in the
32446         RenderBoxModelObject destructor.
32447
32448         * rendering/RenderBox.cpp:
32449         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
32450         * rendering/RenderBoxModelObject.cpp:
32451         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
32452         (WebCore::RenderBoxModelObject::destroyLayer):
32453         (WebCore::RenderBoxModelObject::destroy):
32454         (WebCore::RenderBoxModelObject::styleDidChange):
32455         * rendering/RenderBoxModelObject.h:
32456         * rendering/RenderLayer.cpp:
32457         (WebCore::RenderLayer::stackingContext):
32458         (WebCore::RenderLayer::destroy):
32459         (WebCore::RenderLayer::removeOnlyThisLayer):
32460         * rendering/RenderLayer.h:
32461         * rendering/RenderObject.cpp:
32462         (WebCore::RenderObject::destroy):
32463         * rendering/RenderWidget.cpp:
32464         (WebCore::RenderWidget::destroy):
32465
32466 2009-03-05  Eric Seidel  <eric@webkit.org>
32467
32468         Reviewed by David Hyatt.
32469
32470         Remove old, unused IE 5.5 scrollbar-* CSS properties.
32471         Sort the unimplemented getComputedStyle properties so it's
32472         easier to see which ones actually need implementation.
32473
32474         * css/CSSComputedStyleDeclaration.cpp:
32475         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
32476         * css/CSSParser.cpp:
32477         (WebCore::CSSParser::parseValue):
32478         * css/CSSPropertyNames.in:
32479         * css/CSSStyleSelector.cpp:
32480         (WebCore::CSSStyleSelector::applyProperty):
32481
32482 2009-03-05  Justin Garcia  <justin.garcia@apple.com>
32483
32484         Reviewed by Darin Adler.
32485         
32486         WebViewDidChangeSelectionNotifications weren't being sent for commands that change the selection's position
32487         within the document without changing its position in the DOM.  For example, pressing return in (caret marked by ^):
32488         <div contentEditable="true"><div>^Hello</div></div>
32489         Undo was being enabled, shouldDeleteDOMRange called, etc. when doing no-op deletes (a delete in an empty document 
32490         for example). 
32491
32492         Changes to layout tests demonstrate fix.
32493         
32494         * editing/EditCommand.cpp:
32495         (WebCore::EditCommand::apply): Don't call applyEditing for a TypingCommand.  The TypingCommand knows whether or
32496         not it did work that needs to be applied.
32497         * editing/Editor.cpp:
32498         (WebCore::Editor::appliedEditing): Moved code (but did not alter) to changeSelectionAfterCommand.
32499         (WebCore::Editor::unappliedEditing): Ditto.
32500         (WebCore::Editor::reappliedEditing): Ditto.
32501         (WebCore::Editor::changeSelectionAfterCommand): Moved code from *appliedEditing into here.  Also call out to
32502         EditorClient::respondToChangedSelection() for commands that changed the selection's position in the document
32503         even if they did not change it's position in the DOM.  Any TypingCommand that gets this far changed it's position
32504         in the document.
32505         * editing/Editor.h:
32506         * editing/TypingCommand.cpp:
32507         (WebCore::TypingCommand::TypingCommand): Removed unused m_appliedEditing.
32508         (WebCore::TypingCommand::typingAddedToOpenCommand): Always apply editing.  We won't get this far if we don't need to.
32509         (WebCore::TypingCommand::deleteKeyPressed): Don't do any of the things that only make sense for Range selections, like
32510         adding to the killring and responding to a change in selections if the delete was a no-op.
32511         (WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
32512         * editing/TypingCommand.h:
32513
32514 2009-03-05  Dimitri Glazkov  <dglazkov@chromium.org>
32515
32516         Reviewed by Adam Roben.
32517
32518         Eliminate a ref-counting leak in InspectorController.
32519
32520         * inspector/InspectorController.h: Made constructor private, added static create method.
32521         * page/Page.cpp:
32522         (WebCore::Page::Page): Change initializer to use static create method.
32523
32524 2009-03-05  Dimitri Glazkov  <dglazkov@chromium.org>
32525
32526         Reviewed by Timothy Hatcher.
32527
32528         https://bugs.webkit.org/show_bug.cgi?id=24355
32529         Add InspectorController.idl and convert InspectorController.cpp to use
32530         JSC bindings.
32531
32532         * DerivedSources.make: Added InspectorController.idl
32533         * WebCore.xcodeproj/project.pbxproj: Added idl, bindings files.
32534         * bindings/js/JSInspectorControllerCustom.cpp: Added.
32535         * bindings/scripts/CodeGeneratorJS.pm: Added Array to no-header types.
32536         * inspector/InspectorController.cpp: Removed hand-rolled bindings.
32537         * inspector/InspectorController.h: Added platform and addSourceToFrame methods.
32538         * inspector/InspectorController.idl: Added.
32539         * page/Page.h: Changed member to RefPtr since InspectorController is now ref-counted.
32540
32541 2009-03-05  Eric Carlson  <eric.carlson@apple.com>
32542
32543         Reviewed by Simon Fraser.
32544
32545         https://bugs.webkit.org/show_bug.cgi?id=24400
32546         Bug 24400: Remove "start", "end", "loopStart", "loopEnd", "currentLoop", and "playCount" 
32547         media element attributes
32548
32549         Test: media/video-loop.html
32550
32551         * html/HTMLMediaElement.cpp:
32552         (WebCore::HTMLMediaElement::HTMLMediaElement):
32553         (WebCore::HTMLMediaElement::loadInternal):
32554         (WebCore::HTMLMediaElement::setNetworkState):
32555         (WebCore::HTMLMediaElement::seek):
32556         (WebCore::HTMLMediaElement::playInternal):
32557         (WebCore::HTMLMediaElement::loop):
32558         (WebCore::HTMLMediaElement::setLoop):
32559         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
32560         (WebCore::HTMLMediaElement::endedPlayback):
32561         (WebCore::HTMLMediaElement::updatePlayState):
32562         * html/HTMLMediaElement.h:
32563         * html/HTMLMediaElement.idl:
32564
32565 2009-03-05  Steve Falkenburg  <sfalken@apple.com>
32566
32567         <rdar://problem/6651112> Safari asks about re-posting a form even when page is cached
32568         
32569         Reviewed by Ada Chan.
32570
32571         * platform/network/cf/ResourceHandleCFNet.cpp:
32572         (WebCore::ResourceHandle::willLoadFromCache): Ported from Mac version.
32573
32574 2009-03-05  David Hyatt  <hyatt@apple.com>
32575
32576         Reviewed by Eric Seidel
32577
32578         https://bugs.webkit.org/show_bug.cgi?id=24248
32579
32580         Make sure painting of overflow controls checks that visibility:visible is set on the block before
32581         painting.  Pixel tests caught this regression.
32582
32583         Make sure resizer painting pushes a clip of the corner rect.  It was relying on the clip layers happened
32584         to do to their bounds (which had nothing to do with overflow).
32585
32586         * rendering/RenderBlock.cpp:
32587         (WebCore::RenderBlock::paint):
32588         * rendering/RenderLayer.cpp:
32589         (WebCore::RenderLayer::paintResizer):
32590
32591 2009-03-05  Yong Li  <yong.li@torchmobile.com>
32592
32593         Reviewed by Simon Fraser.
32594
32595         https://bugs.webkit.org/show_bug.cgi?id=24386
32596         A faster implementation of extractMIMETypeFromMediaType.
32597
32598         * platform/network/HTTPParsers.cpp:
32599         (WebCore::extractMIMETypeFromMediaType):
32600
32601 2009-03-05  Yong Li  <yong.li@torchmobile.com>
32602
32603         Reviewed by Antti Koivisto.
32604
32605         https://bugs.webkit.org/show_bug.cgi?id=24392
32606         Do not get the current time for unless we're doing PRELOAD_DEBUG as this
32607         can be unnecessarily expensive.
32608
32609         * html/PreloadScanner.cpp:
32610         (WebCore::PreloadScanner::write):
32611
32612 2009-03-04  Simon Fraser  <simon.fraser@apple.com>
32613
32614         Reviewed by Dave Hyatt
32615
32616         https://bugs.webkit.org/show_bug.cgi?id=24327
32617         
32618         When mapping points and hit testing through transforms, work
32619         correctly when acclerated animations of transforms are running.
32620         
32621         Tested by LayoutTests/animations/animation-hit-test-transform.html,
32622         which only failed when ACCELERATED_COMPOSITING was turned on.
32623
32624         * rendering/RenderLayer.cpp:
32625         (WebCore::RenderLayer::currentTransform):
32626         * rendering/RenderLayer.h:
32627         * rendering/RenderObject.cpp:
32628         (WebCore::RenderObject::transformFromContainer):
32629
32630 2009-03-05  Mike Belshe  <mike@belshe.com>
32631
32632         Reviewed by Darin Fisher.
32633
32634         https://bugs.webkit.org/show_bug.cgi?id=24391
32635         Frame.cpp uses JSC specific includes
32636
32637         * page/Frame.cpp:
32638
32639 2009-03-05  Gustavo Noronha Silva  <gns@gnome.org>
32640
32641         Reviewed by Alexey Proskuryakov.
32642
32643         https://bugs.webkit.org/show_bug.cgi?id=24389
32644         WebKitGTK+ crashes when cancelling plugin loads
32645
32646         Remove bogus calls to the client's didFinishLoading method from
32647         our ResourceHandle::cancel implementation. Calling
32648         didFinishLoading here is mostly inoffensive for most loads, but
32649         causes crashes when plugin loads are cancelled.
32650
32651         * platform/network/soup/ResourceHandleSoup.cpp:
32652         (WebCore::ResourceHandle::cancel):
32653
32654 2009-03-05  Steve Falkenburg  <sfalken@apple.com>
32655
32656         Windows build fix.
32657         
32658         * WebCore.vcproj/QTMovieWin.vcproj:
32659
32660 2009-03-05  Adam Treat  <adam.treat@torchmobile.com>
32661
32662         Build fix for when ENABLE_NETSCAPE_PLUGIN_API = 0.  The method
32663         ScriptController::jsObjectForPluginElement(HTMLPlugInElement*); is not
32664         protected by an #if and uses HTMLPlugInElement so it must be included.
32665
32666         * bindings/js/ScriptController.cpp:
32667
32668 2009-03-05  Dimitri Glazkov  <dglazkov@chromium.org>
32669
32670         GTK Build fix.
32671
32672         * inspector/ConsoleMessage.h: Use proper header.
32673
32674 2009-03-05  Dimitri Glazkov  <dglazkov@chromium.org>
32675
32676         Reviewed by Timothy Hatcher.
32677
32678         https://bugs.webkit.org/show_bug.cgi?id=24376
32679         Split InspectorController.cpp file into separate classes.
32680
32681         * GNUmakefile.am: Modified to include new files.
32682         * WebCore.pro: Ditto.
32683         * WebCore.scons: Ditto.
32684         * WebCore.vcproj/WebCore.vcproj: Ditto.
32685         * WebCore.xcodeproj/project.pbxproj: Ditto.
32686         * WebCoreSources.bkl: Ditto.
32687         * inspector/ConsoleMessage.cpp: Added.
32688         * inspector/ConsoleMessage.h: Added.
32689         * inspector/InspectorController.cpp:
32690         * inspector/InspectorDOMStorageResource.cpp: Added.
32691         * inspector/InspectorDOMStorageResource.h: Added.
32692         * inspector/InspectorDatabaseResource.cpp: Added.
32693         * inspector/InspectorDatabaseResource.h: Added.
32694         * inspector/InspectorResource.cpp: Added.
32695         * inspector/InspectorResource.h: Added.
32696
32697 2009-03-05  Eric Carlson  <eric.carlson@apple.com>
32698
32699         Reviewed by Darin Adler
32700
32701         https://bugs.webkit.org/show_bug.cgi?id=24387
32702         Remove media element bufferingRate attribute. No test necessary as there
32703         were none for this attribute.
32704
32705         * html/HTMLMediaElement.cpp:
32706         (WebCore::HTMLMediaElement::HTMLMediaElement): Don't initialize m_bufferingRate.
32707         (WebCore::HTMLMediaElement::loadInternal): Ditto.
32708         (WebCore::HTMLMediaElement::setNetworkState): Ditto.
32709         (WebCore::HTMLMediaElement::progressEventTimerFired): Don't calculate m_bufferingRate.
32710         * html/HTMLMediaElement.h: Remove m_bufferingRate.
32711         * html/HTMLMediaElement.idl: Ditto.
32712
32713 2009-03-05  Xan Lopez  <xan@gnome.org>
32714
32715         Reviewed by Mark Rowe.
32716
32717         https://bugs.webkit.org/show_bug.cgi?id=24377
32718         [GTK] Comply better with coding style guidelines in ResourceHandleSoup
32719
32720         Use C++ booleans, 0 instead of NULL, prefix boolean variables with
32721         'is', do not use 'else if' if the previous if had a return, delete
32722         trailing whitespace, etc.
32723
32724         * platform/network/ResourceHandleInternal.h:
32725         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
32726         * platform/network/soup/ResourceHandleSoup.cpp:
32727         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
32728         (WebCore::fillResponseFromMessage):
32729         (WebCore::restartedCallback):
32730         (WebCore::finishedCallback):
32731         (WebCore::parseDataUrl):
32732         (WebCore::ensureSessionIsInitialized):
32733         (WebCore::ResourceHandle::startHttp):
32734         (WebCore::reportUnknownProtocolError):
32735         (WebCore::ResourceHandle::start):
32736         (WebCore::cleanupGioOperation):
32737         (WebCore::closeCallback):
32738         (WebCore::readCallback):
32739         (WebCore::openCallback):
32740         (WebCore::queryInfoCallback):
32741         (WebCore::ResourceHandle::startGio):
32742
32743 2009-03-04  Simon Fraser  <simon.fraser@apple.com>
32744
32745         Reviewed by Eric Seidel
32746
32747         https://bugs.webkit.org/show_bug.cgi?id=24328
32748         
32749         If an element has backface-visibility: hidden, hit testing should not
32750         hit the back sides of elements. Test for that by inverting the accumulated
32751         transform and looking at the z vector.
32752
32753         Tested by transforms/3d/hit-testing/backface-hit-test.html
32754         
32755         * rendering/RenderLayer.cpp:
32756         (WebCore::RenderLayer::hitTestLayer):
32757
32758 2009-03-04  Adam Langley  <agl@google.com>
32759
32760         Reviewed by Darin Fisher.
32761
32762         r41362 mistakenly added functions "RenderThemeWin::" into
32763         RenderThemeChromiumGtk.cpp. When correcting this, I somehow changed
32764         them to void return types. This patch switches them back to ints.
32765
32766         https://bugs.webkit.org/show_bug.cgi?id=24360
32767
32768         * rendering/RenderThemeChromiumLinux.cpp:
32769         (WebCore::RenderThemeChromiumLinux::buttonInternalPaddingLeft):
32770         (WebCore::RenderThemeChromiumLinux::buttonInternalPaddingRight):
32771         (WebCore::RenderThemeChromiumLinux::buttonInternalPaddingTop):
32772         (WebCore::RenderThemeChromiumLinux::buttonInternalPaddingBottom):
32773
32774 2009-03-04  Adam Langley  <agl@google.com>
32775
32776         Reviewed by Darin Fisher.
32777
32778         Chromium Linux: change some metrics to better match Windows after
32779         r41416. Aesthetically this may be worse, but web-compat is king.
32780
32781         Also, the previous code had an off by one error when drawing
32782         scrollbars which caused the scrollbar to overflow it's bounds by 1px
32783         at the right and bottom edges.
32784
32785         https://bugs.webkit.org/show_bug.cgi?id=24369
32786
32787         * rendering/RenderThemeChromiumLinux.cpp:
32788         (WebCore::):
32789         (WebCore::RenderThemeChromiumLinux::systemFont):
32790         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
32791         (WebCore::ScrollbarThemeChromium::paintTrackPiece):
32792
32793 2009-03-04  Eric Seidel  <eric@webkit.org>
32794
32795         Reviewed by Adam Roben.
32796
32797         Add an ASSERT to better demonstrate the cause of the crash in
32798         https://bugs.webkit.org/show_bug.cgi?id=23736
32799
32800         * loader/DocLoader.cpp:
32801         (WebCore::DocLoader::~DocLoader):
32802
32803 2009-03-04  David Levin  <levin@chromium.org>
32804
32805         Reviewed by Alexey Proskuryakov.
32806
32807         Bug 24337: Assert when doing sync XHR in a worker for a cacheable response.
32808         <https://bugs.webkit.org/show_bug.cgi?id=24337>
32809
32810         Tests: http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
32811                http/tests/xmlhttprequest/workers/xmlhttprequest-file-not-found.html
32812
32813         * loader/mac/ResourceLoaderMac.mm:
32814         (WebCore::ResourceLoader::willCacheResponse):
32815         An identifier is only asssigned if resource load callbacks are done.  So don't send
32816         willCacheResponse which uses identifier if resource load callbacks aren't being sent.
32817
32818 2009-03-04  David Levin  <levin@chromium.org>
32819
32820         Reviewed by Alexey Proskuryakov.
32821
32822         Bug 24330: Sync xhr in workers should send an abort exception when the worker is terminated.
32823         <https://bugs.webkit.org/show_bug.cgi?id=24330>
32824
32825         Test: http/tests/xmlhttprequest/workers/abort-exception-assert.html
32826
32827         * dom/ExceptionCode.cpp:
32828         (WebCore::xmlHttpRequestExceptionNames):
32829         Added missing ABORT_ERR whose absence caused an assert.
32830
32831         * loader/WorkerThreadableLoader.cpp:
32832         (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
32833         (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
32834         Add more logic to handle the termination case for sync xhr.
32835
32836 2009-03-04  Eric Carlson  <eric.carlson@apple.com>
32837
32838         Reviewed by Antti Koivisto.
32839
32840         https://bugs.webkit.org/show_bug.cgi?id=24364
32841         Add support for HTMLMediaElement canPlayType method. Make
32842         MediaPlayer::supportsType take a ContentType instead of a
32843         separate mime type and codecs parameter.
32844
32845         Test: media/video-can-play-type.html
32846
32847         * dom/DOMImplementation.cpp:
32848         (WebCore::DOMImplementation::createDocument):
32849         * html/HTMLMediaElement.cpp:
32850         (WebCore::HTMLMediaElement::canPlayType): Add canPlayType method.
32851         (WebCore::HTMLMediaElement::loadInternal): selectMediaURL returns a ContentType.
32852         (WebCore::HTMLMediaElement::selectMediaURL): Return a ContentType instead of raw MIME type.
32853         (WebCore::HTMLMediaElement::initialURL): selectMediaURL returns a ContentType.
32854         * html/HTMLMediaElement.h: Add prototype.
32855         * html/HTMLMediaElement.idl: Ditto.
32856         * platform/graphics/MediaPlayer.cpp:
32857         (WebCore::MediaPlayer::load): Take a ContentType instead of raw MIME type.
32858         (WebCore::MediaPlayer::supportsType): Ditto.
32859         * platform/graphics/MediaPlayer.h:
32860
32861 2009-03-04  Antti Koivisto  <antti@apple.com>
32862
32863         Reviewed by Dave Hyatt.
32864
32865         https://bugs.webkit.org/show_bug.cgi?id=24359
32866         Repaint throttling mechanism
32867         
32868         Excessive repainting can slow down page loadind. This implements a timer
32869         based throttling mechanism. It is behind ENABLE(REPAINT_THROTTLING) and not 
32870         enabled by default.
32871
32872         * loader/FrameLoader.cpp:
32873         (WebCore::FrameLoader::checkCompleted):
32874         * page/EventHandler.cpp:
32875         (WebCore::EventHandler::dispatchDragEvent):
32876         (WebCore::EventHandler::dispatchMouseEvent):
32877         (WebCore::EventHandler::keyEvent):
32878         (WebCore::EventHandler::handleTextInputEvent):
32879         * page/FrameView.cpp:
32880         (WebCore::FrameView::FrameView):
32881         (WebCore::FrameView::reset):
32882         (WebCore::FrameView::repaintContentRectangle):
32883         (WebCore::FrameView::beginDeferredRepaints):
32884         (WebCore::FrameView::endDeferredRepaints):
32885         (WebCore::FrameView::checkStopDelayingDeferredRepaints):
32886         (WebCore::FrameView::doDeferredRepaints):
32887         (WebCore::FrameView::updateDeferredRepaintDelay):
32888         (WebCore::FrameView::resetDeferredRepaintDelay):
32889         (WebCore::FrameView::adjustedDeferredRepaintDelay):
32890         (WebCore::FrameView::deferredRepaintTimerFired):
32891         (WebCore::FrameView::paintContents):
32892         * page/FrameView.h:
32893
32894 2009-03-04  Sam Weinig  <sam@webkit.org>
32895
32896         Rubber-stamped by Antti Koivisto.
32897
32898         Remove LOW_BANDWIDTH_DISPLAY as it is not being used by any platforms.
32899
32900         * dom/Document.cpp:
32901         (WebCore::Document::Document):
32902         * dom/Document.h:
32903         (WebCore::Document::haveStylesheetsLoaded):
32904         * html/HTMLTokenizer.cpp:
32905         (WebCore::HTMLTokenizer::scriptHandler):
32906         * loader/Cache.cpp:
32907         (WebCore::Cache::requestResource):
32908         * loader/CachedCSSStyleSheet.cpp:
32909         (WebCore::CachedCSSStyleSheet::checkNotify):
32910         * loader/DocLoader.h:
32911         * loader/FrameLoader.cpp:
32912         (WebCore::FrameLoader::FrameLoader):
32913         (WebCore::FrameLoader::requestFrame):
32914         (WebCore::FrameLoader::stopLoading):
32915         (WebCore::FrameLoader::begin):
32916         (WebCore::FrameLoader::write):
32917         (WebCore::FrameLoader::endIfNotLoadingMainResource):
32918         (WebCore::FrameLoader::checkCompleted):
32919         (WebCore::FrameLoader::requestObject):
32920         (WebCore::FrameLoader::loadItem):
32921         * loader/FrameLoader.h:
32922
32923 2009-03-02  Xan Lopez  <xan@gnome.org>
32924
32925         Reviewed by Mark Rowe.
32926
32927         https://bugs.webkit.org/show_bug.cgi?id=24287
32928         [GTK] Move auth dialog feature to WebKit/
32929
32930         Remove WebKitSoupAuthDialog files from build and stop using it.
32931
32932         * GNUmakefile.am:
32933         * platform/network/soup/ResourceHandleSoup.cpp:
32934         (WebCore::ensureSessionIsInitialized):
32935         * platform/network/soup/webkit-soup-auth-dialog.c: Removed.
32936         * platform/network/soup/webkit-soup-auth-dialog.h: Removed.
32937
32938 2009-03-04  Simon Fraser  <simon.fraser@apple.com>
32939
32940         Reviewed by Dave Hyatt
32941         
32942         https://bugs.webkit.org/show_bug.cgi?id=24361
32943         
32944         Reinstate code that sets result.innerNode when hitTest() returns true,
32945         but never filled in the innerNode. Fixes hit testing of generated content.
32946
32947         Test: fast/css-generated-content/hit-test-generated-content.html
32948
32949         * rendering/RenderLayer.cpp:
32950         (WebCore::RenderLayer::hitTestContents):
32951
32952 2009-03-04  Adam Barth  <abath@webkit.org>
32953
32954         Reviewed by Alexey Proskuryakov.
32955
32956         https://bugs.webkit.org/show_bug.cgi?id=24356
32957
32958         Fix WebKit style for allowUniversalAccessFromFileURLs.
32959
32960         * WebCore.base.exp:
32961         * dom/Document.cpp:
32962         (WebCore::Document::initSecurityContext):
32963         * page/Settings.cpp:
32964         (WebCore::Settings::Settings):
32965         (WebCore::Settings::setAllowUniversalAccessFromFileURLs):
32966         * page/Settings.h:
32967         (WebCore::Settings::allowUniversalAccessFromFileURLs):
32968
32969 2009-03-04  Brady Eidson  <beidson@apple.com>
32970
32971         Reviewed by Darin Adler
32972
32973         <rdar://problem/6619630> Quick Look of vCards stuck on image of first card opened.
32974
32975         I narrowed this down to http://trac.webkit.org/changeset/39304 which, among other things,
32976         consolidated some of the various decision making pieces of the Cache into the new method
32977         FrameLoader::cachePolicy().
32978
32979         Before 39304, when deciding whether to use an existing CachedResource, we checked if the FrameLoader 
32980         is reloading.  If it is, we'd evict any existing resource then recreate it.  Quick looks uses the
32981         same URL for this image every time and expects it to be reloaded with each new card.
32982
32983         The FrameLoader::isReloading() check did one thing - Ask the DocumentLoader if it's cache policy
32984         is "ReloadIgnoringCacheData".  This check was lost in the consolidation to the new method.  
32985
32986         * loader/FrameLoader.cpp:
32987         (WebCore::FrameLoader::cachePolicy): Restore the DocumentLoader's cachePolicy check as a possible
32988           condition for returning CachePolicyReload.
32989
32990 2009-03-04  Timothy Hatcher  <timothy@apple.com>
32991
32992         * English.lproj/localizedStrings.js: Update strings to include "DATABASES",
32993         "LOCAL STORAGE" and "SESSION STORAGE".
32994
32995 2009-03-04  Timothy Hatcher  <timothy@apple.com>
32996
32997         Fix a regression where the Web Inspector console would not animate
32998         in or out correctly.
32999
33000         Reviewed by Anders Carlsson.
33001
33002         * inspector/front-end/inspector.css: Move a z-index to a child element
33003         to get the correct stacking order during the animation.
33004
33005 2009-03-03  David Hyatt  <hyatt@apple.com>
33006
33007         https://bugs.webkit.org/show_bug.cgi?id=24201, pathologically bad block layout.
33008
33009         Make sure to factor clear deltas into y position estimates.  Also avoid doing the comparison of
33010         the final position against the y position estimate until after the clear has happened.  This gets rid
33011         of some duplicated cut/pasted code and also ensures a layout delta only has to be put in once.
33012
33013         Reviewed by Dan Bernstein
33014
33015         Added fast/block/float/nested-clearance.html
33016
33017         * rendering/RenderBlock.cpp:
33018         (WebCore::RenderBlock::collapseMargins):
33019         (WebCore::RenderBlock::clearFloatsIfNeeded):
33020         (WebCore::RenderBlock::estimateVerticalPosition):
33021         (WebCore::RenderBlock::layoutBlockChildren):
33022         (WebCore::RenderBlock::getClearDelta):
33023         * rendering/RenderBlock.h:
33024
33025 2009-03-02  Kim Grönholm  <kim.gronholm@nomovok.com>
33026
33027         Reviewed by Simon Hausmann.
33028
33029         Improvement to 3d transformations rendering in QtWebKit. QTransform is used
33030         instead of QMatrix. This allows perspective transformations since QTransform is
33031         a true 3x3 matrix.
33032
33033         * platform/graphics/qt/GraphicsContextQt.cpp: Use QTransform instead of QMatrix everywhere.
33034         (WebCore::GraphicsContext::getCTM):
33035         (WebCore::GraphicsContext::restorePlatformState):
33036         (WebCore::GraphicsContext::fillPath):
33037         (WebCore::GraphicsContext::strokePath):
33038         (WebCore::GraphicsContext::fillRect):
33039         (WebCore::GraphicsContext::translate):
33040         (WebCore::GraphicsContext::rotate):
33041         (WebCore::GraphicsContext::scale):
33042         (WebCore::GraphicsContext::concatCTM):
33043         * platform/graphics/qt/ImageQt.cpp:
33044         (WebCore::Image::drawPattern):
33045         * platform/graphics/qt/PathQt.cpp:
33046         (WebCore::Path::translate):
33047         (WebCore::Path::transform):
33048         * platform/graphics/qt/PatternQt.cpp:
33049         (WebCore::Pattern::createPlatformPattern):
33050         * platform/graphics/qt/TransformationMatrixQt.cpp:
33051         (WebCore::TransformationMatrix::operator QTransform): Replace the conversion operator
33052         to QMatrix with one to QTransform.
33053         * platform/graphics/transforms/TransformationMatrix.h:
33054         * platform/graphics/qt/FontQt.cpp:
33055
33056 2009-02-24  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
33057
33058         Reviewed by Simon Hausmann.
33059
33060         https://bugs.webkit.org/show_bug.cgi?id=24151
33061         Fix Qt/S60 build break
33062
33063         * platform/FileSystem.h: Create a default case for non-win and non-mac Qt builds
33064         * platform/qt/FileSystemQt.cpp: Ditto
33065         (WebCore::unloadModule):
33066
33067 2009-03-03  Mike Belshe  <mike@belshe.com>
33068
33069         Reviewed by Alexey Proskuryakov.
33070
33071         https://bugs.webkit.org/show_bug.cgi?id=21939
33072         Uninitialized ExceptionCode in DOMWindow::postMessage
33073
33074         * dom/MessagePort.cpp:
33075         (WebCore::MessagePort::postMessage):
33076
33077 2009-03-03  David Kilzer  <ddkilzer@apple.com>
33078
33079         <rdar://problem/6581203> WebCore and WebKit should install the same set of headers during installhdrs phase as build phase
33080
33081         Reviewed by Mark Rowe.
33082
33083         The fix is to add INSTALLHDRS_COPY_PHASE = YES and
33084         INSTALLHDRS_SCRIPT_PHASE = YES to WebCore.xcconfig, then to make
33085         sure various build phase scripts work with the installhdrs build
33086         phase.
33087
33088         * Configurations/Base.xcconfig: Defined REAL_PLATFORM_NAME
33089         based on PLATFORM_NAME to work around the missing definition on
33090         Tiger.
33091         * Configurations/WebCore.xcconfig: Added
33092         JAVASCRIPTCORE_PRIVATE_HEADERS_DIR variable to simplify logic in
33093         the "Generate Derived Sources" script.  Added
33094         INSTALLHDRS_COPY_PHASE = YES and INSTALLHDRS_SCRIPT_PHASE = YES.
33095
33096         * WebCore.xcodeproj/project.pbxproj:
33097         - Added shell code to prevent running "Check For Global
33098           Initializers", "Check For Exit Time Destructors" and "Check
33099           For Weak VTables" scripts during the installhdrs build phase.
33100         - Made "Generate Derived Sources" work for the installhdrs build
33101           phase.  Also simplified setting of CREATE_HASH_TABLE by using
33102           JAVASCRIPTCORE_PRIVATE_HEADERS_DIR.
33103
33104 2009-03-02  Adam Langley  <agl@google.com>
33105
33106         Reviewed by Darin Fisher.
33107
33108         Chromium Linux: Switch to using Skia to render widgets.
33109
33110         In order to sandbox the Chromium renderer on Linux we need to remove
33111         the X connection. GTK cannot render without an X connection so, for
33112         now, we render widgets ourselves.
33113
33114         Previously didn't use anti-alias fonts in order to match Windows font
33115         rendering exactly. This was helpful when bootstrapping our layout
33116         tests. Now, however, we are ready to enable it.
33117
33118         https://bugs.webkit.org/show_bug.cgi?id=24244
33119
33120         * platform/chromium/ScrollbarThemeChromium.cpp:
33121         (WebCore::ScrollbarThemeChromium::buttonSize):
33122         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
33123         (WebCore::ScrollbarThemeChromium::scrollbarThickness):
33124         (WebCore::ScrollbarThemeChromium::paintTrackPiece):
33125         (WebCore::ScrollbarThemeChromium::paintButton):
33126         (WebCore::ScrollbarThemeChromium::paintThumb):
33127         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
33128         (WebCore::FontPlatformData::setupPaint):
33129         * platform/graphics/skia/PlatformContextSkia.cpp:
33130         (PlatformContextSkia::PlatformContextSkia):
33131         (PlatformContextSkia::~PlatformContextSkia):
33132         * platform/graphics/skia/PlatformContextSkia.h:
33133         * rendering/RenderThemeChromiumGtk.cpp: Removed.
33134         * rendering/RenderThemeChromiumGtk.h: Removed.
33135         * rendering/RenderThemeChromiumLinux.cpp: Added.
33136         * rendering/RenderThemeChromiumLinux.h: Added.
33137
33138 2009-03-03  Dimitri Glazkov  <dglazkov@chromium.org>
33139
33140         Reviewed by Darin Fisher.
33141
33142         https://bugs.webkit.org/show_bug.cgi?id=24261
33143         Fix return types.
33144
33145         Test: LayoutTests/dom/svg/level3/xpath/XPathEvaluator_evaluate_TYPE_ERR.svg
33146
33147         * bindings/v8/V8Binding.h:
33148         (WebCore::toInt32): change return type to int
33149         (WebCore::toFloat): change return type to float.
33150
33151 2009-03-03  Anders Carlsson  <andersca@apple.com>
33152
33153         Reviewed by John Sullivan.
33154
33155         https://bugs.webkit.org/show_bug.cgi?id=22884
33156         <rdar://problem/6449783>
33157         modified layout test crashes Safari
33158
33159         Null check NPStream before dereferencing it.
33160         
33161         * plugins/PluginView.cpp:
33162         (WebCore::PluginView::destroyStream):
33163
33164 2009-03-03  Eric Carlson  <eric.carlson@apple.com>
33165
33166         Reviewed by Simon Fraser.
33167
33168         Fix for <rdar://problem/6641045>
33169         Don't call QTKit to get movie properties until movie metadata has been loaded.
33170
33171         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
33172         (WebCore::MediaPlayerPrivate::metaDataAvailable): defined
33173         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
33174         (WebCore::MediaPlayerPrivate::createQTTime): return default if !metaDataAvailable.
33175         (WebCore::MediaPlayerPrivate::play): Ditto.
33176         (WebCore::MediaPlayerPrivate::pause): Ditto.
33177         (WebCore::MediaPlayerPrivate::duration): Ditto.
33178         (WebCore::MediaPlayerPrivate::currentTime): Ditto.
33179         (WebCore::MediaPlayerPrivate::seek): Ditto.
33180         (WebCore::MediaPlayerPrivate::seekTimerFired): Ditto.
33181         (WebCore::MediaPlayerPrivate::paused): Ditto.
33182         (WebCore::MediaPlayerPrivate::seeking): Ditto.
33183         (WebCore::MediaPlayerPrivate::naturalSize): Ditto.
33184         (WebCore::MediaPlayerPrivate::hasVideo): Ditto.
33185         (WebCore::MediaPlayerPrivate::setVolume): Ditto.
33186         (WebCore::MediaPlayerPrivate::setRate): Ditto.
33187         (WebCore::MediaPlayerPrivate::dataRate): Ditto.
33188         (WebCore::MediaPlayerPrivate::maxTimeLoaded): Ditto.
33189         (WebCore::MediaPlayerPrivate::totalBytes): Ditto.
33190
33191 2009-03-03  Kevin McCullough  <kmccullough@apple.com>
33192
33193         - Spelling fix.
33194
33195         * page/Console.cpp:
33196         (WebCore::Console::profile):
33197
33198 2009-03-03  Dimitri Glazkov  <dglazkov@chromium.org>
33199
33200         Reviewed by Darin Fisher.
33201
33202         https://bugs.webkit.org/show_bug.cgi?id=23657
33203         Remove Database API callback IDLs from the project. 
33204         They were removed in r40633.
33205
33206         * WebCore.xcodeproj/project.pbxproj: Removed IDL files from the project.
33207
33208 2009-03-03  Kevin McCullough  <kmccullough@apple.com>
33209
33210         Reviewed by Oliver Hunt.
33211
33212         <rdar://problem/6639110> console.profile() doesn't work without a title
33213
33214         * page/Console.cpp:
33215         (WebCore::Console::profile): If there is no title assume this is a user
33216         initiated profile and give it the next incremented title name.
33217
33218 2009-03-03  Timothy Hatcher  <timothy@apple.com>
33219
33220         Fix a regression that broke dirxml and caused an ASSERT in debug builds. Also simplified
33221         the console code and refactored things to have fewer code paths and duplication.
33222
33223         rdar://problem/6367127
33224         https://bugs.webkit.org/show_bug.cgi?id=24329
33225
33226         Reviewed by Kevin McCullough.
33227
33228         Test: manual-tests/inspector/console-dir.html
33229
33230         * bindings/js/JSInspectedObjectWrapper.cpp:
33231         (WebCore::JSInspectedObjectWrapper::wrap): Use the lexicalGlobalObject instead of dynamicGlobalObject
33232         to fix an ASSERT about using a wrapper from the wrong ExecState.
33233         * bindings/js/JSQuarantinedObjectWrapper.cpp:
33234         (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper): Ditto.
33235         (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom): Ditto.
33236         * inspector/front-end/Console.js:
33237         (WebInspector.Console.prototype._format): Remove the inline argument and add forceObjectFormat.
33238         When forceObjectFormat is true, the only formatter used is _formatobject.
33239         (WebInspector.Console.prototype._formatvalue): Remove the inline argument.
33240         (WebInspector.Console.prototype._formatstring): Ditto.
33241         (WebInspector.Console.prototype._formatregexp): Ditto.
33242         (WebInspector.Console.prototype._formatarray): Ditto.
33243         (WebInspector.Console.prototype._formatnode): Remove the inline argument and make a DOM tree instead of an anchor.
33244         (WebInspector.Console.prototype._formatobject): Remove the inline argument and always make a property graph.
33245         (WebInspector.Console.prototype._formaterror): Remove the inline argument.
33246         (WebInspector.ConsoleMessage): Remove the case for MessageLevel.Node and
33247         simplify the case for MessageLevel.Object to use the normal _format code path with the %O formatter.
33248         (WebInspector.ConsoleMessage.prototype._format.formatForConsole): Don't pass an additional true argument for inline.
33249         (WebInspector.ConsoleMessage.prototype._format.formatAsObjectForConsole): Added. Pass a true argument for forceObjectFormat.
33250         (WebInspector.ConsoleMessage.prototype._format): Added support for the %O formatter. Use formatForConsole for all arguments.
33251         (WebInspector.ConsoleMessage.prototype.toString): Add the other message levels.
33252         * inspector/front-end/inspector.css: Tweak styles to look and work correctly.
33253         * inspector/front-end/utilities.js:
33254         (Object.type): Return "node" for Node objects.
33255         (Object.describe): Handle the "node" type.
33256         * page/Console.cpp:
33257         (WebCore::printMessageSourceAndLevelPrefix): Fix an assert by adding the other message level types.
33258         (WebCore::Console::dirxml): Use the standard log fuction since it prints a DOM tree for nodes by default.
33259         * page/Console.h:
33260         (WebCore::enum MessageLevel): Removed NodeMessageLevel. Added a FIXME.
33261
33262 2009-03-03  Scott Violet  <sky@google.com>
33263
33264         Reviewed by Eric Seidel.
33265
33266         https://bugs.webkit.org/show_bug.cgi?id=24325
33267         Crash on replacing document contents during drop.
33268
33269         Makes sure a node is in the document during a move before using it.
33270
33271         Test: fast/events/crash-on-mutate-during-drop.html
33272
33273         * editing/MoveSelectionCommand.cpp:
33274         (WebCore::MoveSelectionCommand::doApply):
33275
33276 2009-03-03  Jungshik Shin <jshin@chromium.org>
33277
33278         Reviewed by Eric Seidel.
33279
33280         https://bugs.webkit.org/show_bug.cgi?id=23028
33281         Enable dynamic web font support to Chromium on Windows.
33282         Files that were omitted by mistake in the latest patch
33283         that was landed.
33284
33285         * loader/CachedFont.cpp:
33286         (WebCore::CachedFont::~CachedFont):
33287         (WebCore::CachedFont::ensureCustomFontData):
33288         (WebCore::CachedFont::platformDataFromCustomData):
33289         (WebCore::CachedFont::allClientsRemoved):
33290         * platform/graphics/chromium/FontCustomPlatformData.cpp:
33291         (WebCore::EOTStream::EOTStream):
33292         (WebCore::createFontCustomPlatformData):
33293         * platform/graphics/win/FontCustomPlatformData.cpp:
33294         (WebCore::EOTStream::EOTStream):
33295         (WebCore::createFontCustomPlatformData):
33296
33297 2009-03-03  Gustavo Noronha Silva  <gns@gnome.org>
33298
33299         Reviewed by Alexey Proskuryakov.
33300
33301         https://bugs.webkit.org/show_bug.cgi?id=16826
33302         [Gtk] Implement WebKitDownload
33303
33304         Make the Soup backend able to handle requests without a frame,
33305         since we may have such things now that we support downloads.
33306
33307         * platform/network/ResourceHandleInternal.h:
33308         * platform/network/soup/ResourceHandleSoup.cpp:
33309         (WebCore::ResourceHandle::start):
33310
33311 2009-03-03  Dimitri Glazkov  <dglazkov@chromium.org>
33312
33313         Reviewed by Eric Seidel.
33314
33315         https://bugs.webkit.org/show_bug.cgi?id=24331
33316         Add custom V8 bindings for Element, Attr, HTMLFrame, and HTMLIFrame.
33317
33318         * bindings/v8/custom/V8AttrCustom.cpp: Added.
33319         * bindings/v8/custom/V8CustomBinding.cpp: Added.
33320         * bindings/v8/custom/V8CustomBinding.h: Added attribute-checking helpers.
33321         * bindings/v8/custom/V8ElementCustom.cpp: Added.
33322         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp: Added.
33323         * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: Added.
33324
33325 2009-03-03  Brady Eidson  <beidson@apple.com>
33326
33327         Reviewed by Darin Adler
33328
33329         <rdar://problem/6616664> - Quick looks of various file types is broken
33330
33331         In http://trac.webkit.org/changeset/40553 there was an attempt to prevent NSURLRequest churn
33332         for non-HTTP loads when the underlying ResourceRequest changed.  Unfortunately it was a little
33333         overzealous as the mainDocumentURL is relevant for all loads, not only HTTP/HTTPS loads.
33334
33335         Partially reverted behavior to always set the mainDocumentURL in situations when we would've
33336         before that patch.
33337
33338         * loader/FrameLoader.cpp:
33339         (WebCore::FrameLoader::addExtraFieldsToRequest):
33340
33341         * platform/network/ResourceRequestBase.cpp:
33342         (WebCore::ResourceRequestBase::setMainDocumentURL):
33343
33344 2009-03-03  Chris Marrin  <cmarrin@apple.com>
33345
33346         Reviewed by Simon Fraser.
33347
33348         https://bugs.webkit.org/show_bug.cgi?id=24256
33349
33350         Added a WebCoreForceSoftwareAnimation flag.
33351
33352         * platform/graphics/mac/GraphicsLayerCA.mm:
33353         (WebCore::forceSoftwareAnimation):
33354         (WebCore::GraphicsLayerCA::setOpacity):
33355         (WebCore::GraphicsLayerCA::animateTransform):
33356         (WebCore::GraphicsLayerCA::animateFloat):
33357
33358 2009-03-02  Chris Marrin  <cmarrin@apple.com>
33359
33360         Reviewed by Sam Weinig.
33361
33362         https://bugs.webkit.org/show_bug.cgi?id=24257
33363
33364         Added prototype properties for several classes with constructors that
33365         were missing them, including the one mentioned in the bug.
33366
33367         Test: fast/dom/Window/custom-constructors.html
33368
33369         * bindings/js/JSAudioConstructor.cpp:
33370         (WebCore::JSAudioConstructor::JSAudioConstructor):
33371         * bindings/js/JSDOMWindowBase.cpp:
33372         (jsDOMWindowBaseWebKitCSSMatrix):
33373         * bindings/js/JSImageConstructor.cpp:
33374         (WebCore::JSImageConstructor::JSImageConstructor):
33375         * bindings/js/JSOptionConstructor.cpp:
33376         (WebCore::JSOptionConstructor::JSOptionConstructor):
33377         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
33378         (WebCore::JSWebKitCSSMatrixConstructor::JSWebKitCSSMatrixConstructor):
33379         * bindings/js/JSWebKitCSSMatrixConstructor.h:
33380         * bindings/js/JSWebKitPointConstructor.cpp:
33381         (WebCore::JSWebKitPointConstructor::JSWebKitPointConstructor):
33382         * bindings/js/JSWorkerConstructor.cpp:
33383         (WebCore::JSWorkerConstructor::JSWorkerConstructor):
33384
33385 2009-03-03  Dimitri Glazkov  <dglazkov@chromium.org>
33386
33387         Reviewed by Darin Fisher.
33388
33389         https://bugs.webkit.org/show_bug.cgi?id=24321
33390         Add V8 bindings headers.
33391
33392         * bindings/v8/V8Binding.h: Added.
33393         * bindings/v8/V8Proxy.h: Added.
33394         * bindings/v8/custom/V8CustomBinding.h: Added.
33395         * bindings/v8/custom/V8CustomEventListener.h: Added.
33396
33397 2009-03-03  Jungshik Shin <jshin@chromium.org>
33398
33399         Reviewed by Eric Seidel.
33400
33401         https://bugs.webkit.org/show_bug.cgi?id=23803
33402         Fix an 'off-by-1' error in ChromiumWin's font fallback.
33403
33404         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
33405         (WebCore::FontCache::getFontDataForCharacters):
33406
33407 2009-03-03  Jungshik Shin  <jshin@chromium.org>
33408
33409         Reviewed by Eric Seidel.
33410
33411         http://bugs.webkit.org/show_bug.cgi?id=23028
33412         Enable dynamic web font support to Chromium on Windows: Part 1
33413         - Move OpenTypeUtilities.{cpp,h} to platform/graphics/opentype
33414           from platform/graphics/win because both Windows port and Chromium Windows
33415           port will use them.
33416         - Adjust WebCore.vcproj accordingly.
33417
33418         * WebCore.vcproj/WebCore.vcproj:
33419         * platform/graphics/opentype: Added.
33420         * platform/graphics/opentype/OpenTypeUtilities.cpp: Copied from WebCore/platform/graphics/win/OpenTypeUtilities.cpp.
33421         * platform/graphics/opentype/OpenTypeUtilities.h: Copied from WebCore/platform/graphics/win/OpenTypeUtilities.h.
33422         * platform/graphics/win/OpenTypeUtilities.cpp: Removed.
33423         * platform/graphics/win/OpenTypeUtilities.h: Removed.
33424
33425 2009-03-03  Simon Fraser  <simon.fraser@apple.com>
33426
33427         Reviewed by Dave Hyatt
33428
33429         https://bugs.webkit.org/show_bug.cgi?id=24312
33430         
33431         Take 3D transforms into account when hit testing:
33432         
33433         1. Maintain a bit on each RenderLayer that is set when the layer
33434            has 3d descendants, so that we know when to fall into the slow
33435            hit testing path.
33436            
33437         2. Make a ref-counted HitTestingTransformState, which is used to store
33438            an accumulated transform, and the hit test point, and hitTestRect
33439            in the plane of the ancestor non-3d ('flattening') layer.
33440            
33441            It's ref-counted so we can heap allocate it (to avoid stack bloat),
33442            and avoid copying when hitTestLayer calls itself after applying the transform.
33443            
33444         3. Add logic to hitTestLayer to depth-test just direct descendants, if any have
33445            3D transforms, or to do deep depth-testing when traversing a preserves-3d
33446            hierarchy. When hit, layers compute a z-offset from the ancestor flattening
33447            layer, which allows for correct depth testing.
33448            
33449            The existing early-return codepath is unaffected when there are no 3d transforms
33450            and no preserve-3d.
33451
33452         * rendering/RenderLayer.cpp:
33453         (WebCore::RenderLayer::RenderLayer):
33454         (WebCore::RenderLayer::updateTransform):
33455         (WebCore::RenderLayer::dirty3DTransformedDescendantStatus):
33456         (WebCore::RenderLayer::update3DTransformedDescendantStatus):
33457         (WebCore::RenderLayer::hitTest):
33458         (WebCore::computeZOffset):
33459         (WebCore::RenderLayer::createLocalTransformState):
33460         (WebCore::RenderLayer::hitTestLayer):
33461         (WebCore::RenderLayer::hitTestContents):
33462         * rendering/RenderLayer.h:
33463         (WebCore::RenderLayer::preserves3D):
33464         (WebCore::RenderLayer::has3DTransform):
33465         (WebCore::RenderLayer::setHas3DTransformedDescendant):
33466         (WebCore::RenderLayer::has3DTransformedDescendant):
33467         * rendering/RenderLayerBacking.cpp:
33468         * rendering/TransformState.cpp:
33469         (WebCore::TransformState::flatten):
33470         (WebCore::TransformState::mappedPoint):
33471         (WebCore::HitTestingTransformState::move):
33472         (WebCore::HitTestingTransformState::applyTransform):
33473         (WebCore::HitTestingTransformState::flatten):
33474         (WebCore::HitTestingTransformState::mappedPoint):
33475         (WebCore::HitTestingTransformState::mappedQuad):
33476         * rendering/TransformState.h:
33477         (WebCore::TransformState::TransformState):
33478         (WebCore::HitTestingTransformState::create):
33479         (WebCore::HitTestingTransformState::move):
33480         (WebCore::HitTestingTransformState::HitTestingTransformState):
33481
33482 2009-03-03  Brett Wilson  <brettw@chromium.org>
33483
33484         Fix uninitialized memory reads in the Chromium Windows transparency
33485         code that were identified by Purify,
33486
33487         Reviewed by Darin Fisher.
33488
33489         * platform/graphics/chromium/TransparencyWin.cpp:
33490         (WebCore::TransparencyWin::OwnedBuffers::OwnedBuffers):
33491         (WebCore::TransparencyWin::initializeNewContext):
33492
33493 2009-03-03  Simon Fraser  <simon.fraser@apple.com>
33494
33495         Reviewed by Dave Hyatt
33496
33497         https://bugs.webkit.org/show_bug.cgi?id=24312
33498         
33499         Factor the code that compute a transform relative to the container
33500         into RenderObject::transformFromContainer().
33501         
33502         * rendering/RenderBox.cpp:
33503         (WebCore::RenderBox::mapLocalToAbsolutePoint):
33504         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
33505         * rendering/RenderObject.cpp:
33506         (WebCore::RenderObject::transformFromContainer):
33507         * rendering/RenderObject.h:
33508
33509 2009-03-03  Simon Fraser  <simon.fraser@apple.com>
33510
33511         Reviewed by Dave Hyatt
33512
33513         https://bugs.webkit.org/show_bug.cgi?id=24317
33514         
33515         Always return |true| from RenderTextControlMultiLine::nodeAtPoint() if
33516         the superclass found a node, otherwise we set the innerNode of the
33517         HitTestResult, but don't actually report that we found a hit.
33518
33519         * rendering/RenderTextControlMultiLine.cpp:
33520         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
33521
33522 2009-03-03  Onne Gorter  <onne.gorter@avinity.net>
33523
33524         Reviewed by Anders Carlsson.
33525
33526         https://bugs.webkit.org/show_bug.cgi?id=23707
33527         resizing plugins does not work, because the plugin never gets informed
33528
33529         Make gtk plugins resize correctly, by sending them the setwindow event
33530         correctly. Also ensure that all plugin eventing is done with correct
33531         locking/calling. Mostly copied from mac implementation.
33532
33533         manual test: manual-tests/gtk/plugin-resize-scroll.html
33534
33535         * plugins/PluginView.h:
33536         * plugins/gtk/PluginViewGtk.cpp:
33537         (WebCore::PluginView::dispatchNPEvent):
33538         ensure locking/calling for NPEvents
33539         (WebCore::PluginView::updatePluginWidget):
33540         if something changed, let setNPWindowIfNeeded handle it
33541         (WebCore::PluginView::paint):
33542         (WebCore::PluginView::handleKeyboardEvent):
33543         (WebCore::PluginView::handleMouseEvent):
33544         ensure calling conventions
33545         (WebCore::PluginView::setNPWindowRect):
33546         just pass control to setNPWindowIfNeeded
33547         (WebCore::PluginView::setNPWindowIfNeeded):
33548         event the plugin correctly of new window
33549         (WebCore::PluginView::init):
33550         init through the new setup
33551
33552 2009-03-03  Mike Belshe  <mike@belshe.com>
33553
33554         Reviewed by Darin Fisher.
33555
33556         https://bugs.webkit.org/show_bug.cgi?id=24311
33557         Make IDL returning DOMObject use [V8Custom]
33558
33559         * dom/Document.idl:
33560         * html/HTMLCanvasElement.idl:
33561
33562 2009-03-02  Simon Fraser  <simon.fraser@apple.com>
33563
33564         Reviewed by Adele Peterson
33565
33566         https://bugs.webkit.org/show_bug.cgi?id=24313
33567         
33568         If RenderTextControlSingleLine::nodeAtPoint() pokes a node into the
33569         HitTestResult, then it had better well return |true|. And m_innerBlock
33570         could never have been set as the hit node by the superclass, because
33571         the superclass knows nothing about m_innerBlock.
33572         
33573         Test: fast/forms/input-hit-test-border.html
33574
33575         * rendering/RenderTextControlSingleLine.cpp:
33576         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
33577
33578 2009-03-02  Sam Weinig  <sam@webkit.org>
33579
33580         Reviewed by Mark Rowe.
33581
33582         Enable Geolocation (except on Tiger and Leopard).
33583
33584         * Configurations/WebCore.xcconfig:
33585
33586 2009-03-02  Ojan Vafai  <ojan@chromium.org>
33587
33588         Reviewed by Adele Peterson.
33589
33590         Fix https://bugs.webkit.org/show_bug.cgi?id=24307
33591         Null out m_highlightedNode on hideHighlight().
33592         Ran WebCore/manual-tests/inspector/highlight-nodes.html.
33593
33594         * inspector/InspectorController.cpp:
33595         (WebCore::InspectorController::hideHighlight):
33596
33597 2009-03-02  Sam Weinig  <sam@webkit.org>
33598
33599         Reviewed by Geoffrey Garen.
33600
33601         Fix for <rdar://problem/6507404> Add Geolocation support.
33602
33603         This is not yet turned on for any Mac platform.
33604
33605         * WebCore.xcodeproj/project.pbxproj:
33606         * page/Chrome.cpp:
33607         (WebCore::Chrome::shouldAllowGeolocationForFrame):
33608         * page/Chrome.h:
33609         * page/ChromeClient.h:
33610         (WebCore::ChromeClient::shouldAllowGeolocationForFrame):
33611         * page/Geolocation.cpp:
33612         (WebCore::Geolocation::Geolocation):
33613         (WebCore::Geolocation::disconnectFrame): Remove call to setUsingGeolocation as the document
33614         will not be alive at this point.
33615         (WebCore::Geolocation::getCurrentPosition): Check if the embedding app allows geolocation and
33616         return a PERMISSION_DENIED if not.
33617         (WebCore::Geolocation::watchPosition): Ditto.
33618         (WebCore::Geolocation::shouldAllowGeolocation): Perform request to embedding layer of whether
33619         to allow geolocation and cache the result. 
33620         * page/Geolocation.h:
33621         (WebCore::Geolocation::):
33622         * platform/GeolocationService.cpp:
33623         * platform/GeolocationService.h:
33624         (WebCore::GeolocationService::~GeolocationService):
33625         (WebCore::GeolocationService::stopUpdating):
33626         * platform/mac/GeolocationServiceMac.h: Added.
33627         (WebCore::GeolocationServiceMac::lastPosition):
33628         (WebCore::GeolocationServiceMac::lastError):
33629         * platform/mac/GeolocationServiceMac.mm: Added.
33630         (WebCore::GeolocationService::create):
33631         (WebCore::GeolocationServiceMac::GeolocationServiceMac):
33632         (WebCore::GeolocationServiceMac::~GeolocationServiceMac):
33633         (WebCore::GeolocationServiceMac::startUpdating):
33634         (WebCore::GeolocationServiceMac::stopUpdating):
33635         (WebCore::GeolocationServiceMac::suspend):
33636         (WebCore::GeolocationServiceMac::resume):
33637         (WebCore::GeolocationServiceMac::positionChanged):
33638         (WebCore::GeolocationServiceMac::errorOccurred):
33639         (-[WebCoreCoreLocationObserver initWithCallback:]):
33640         (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):
33641         (-[WebCoreCoreLocationObserver locationManager:didFailWithError:]):
33642
33643 2009-03-02  Kevin Ollivier  <kevino@theolliviers.com>
33644
33645         Build fixes for wxWidgets Mac trunk build.
33646
33647         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
33648         (wxFontProperties::wxFontProperties):
33649         (GetTextExtent):
33650         * webcore-wx.bkl:
33651
33652 2009-03-02  Kevin Ollivier  <kevino@theolliviers.com>
33653
33654         wxGTK missing header build fix.
33655
33656         * platform/wx/wxcode/gtk/fontprops.cpp:
33657
33658 2009-03-02  Dan Bernstein  <mitz@apple.com>
33659
33660         Reviewed by Adam Roben.
33661
33662         - fix https://bugs.webkit.org/show_bug.cgi?id=21811
33663           REGRESSION: Windows Build Not Selecting Proper Font
33664
33665         * platform/graphics/win/FontCacheWin.cpp:
33666         (WebCore::createGDIFont): Added back code to verify that the created
33667         HFONT has the requested face name.
33668
33669 2009-03-02  Timothy Hatcher  <timothy@apple.com>
33670
33671         Fixes a regression caused by splitting the input and output of console commands.
33672
33673         https://bugs.webkit.org/show_bug.cgi?id=24293
33674
33675         Reviewed by Kevin McCullough.
33676
33677         * inspector/front-end/Console.js:
33678         (WebInspector.Console.prototype.addMessage): Don't treat ConsoleCommandResult as a
33679         normal ConsoleMessage when appending. This prevents resetting repeatCounts incorrectly.
33680
33681 2009-03-02  Timothy Hatcher  <timothy@apple.com>
33682
33683         Make exception messages and logged Error objects display consistently.
33684
33685         https://bugs.webkit.org/show_bug.cgi?id=18983
33686
33687         Reviewed by Adam Roben.
33688
33689         * English.lproj/localizedStrings.js: Remove a string for line numbers.
33690         * inspector/front-end/Console.js:
33691         (WebInspector.Console.prototype._enterKeyPressed): Pass the exception
33692         boolean to the ConsoleCommandResult constructor and don't pass level.
33693         (WebInspector.Console.prototype._formatnode): Fix a className typo.
33694         (WebInspector.Console.prototype._formaterror): Add an error-message
33695         classed span around the message to show in red and remove the
33696         console-message-url class from the link so it doesn't float right.
33697         Instead enclose the link in parentheses and use displayNameForURL
33698         to shorten the URL in the link.
33699         (WebInspector.ConsoleMessage.prototype.toMessageElement): Simplify
33700         how line numbers are shown since link underlining a string with
33701         parentheses looks bad.
33702         (WebInspector.ConsoleCommandResult): Take an exception boolean flag
33703         instead of a level and get line and URL based on that flag.
33704         * inspector/front-end/inspector.css: Tweaks to the styles.
33705
33706 2009-03-02  Ojan Vafai  <ojan@chromium.org>
33707
33708         Reviewed by Adele Peterson.
33709
33710         Bug 24048: extra windows button padding doesn't apply when there's no appearance
33711         <https://bugs.webkit.org/show_bug.cgi?id=24048>
33712
33713         Replace adjustButtonInnerStyle with buttonInternalPaddingLeft/Right/Top/Bottom.
33714
33715         No tests added as existing tests already cover this behavior.
33716
33717         * rendering/RenderButton.cpp:
33718         (WebCore::RenderButton::setupInnerStyle):
33719         * rendering/RenderTheme.cpp:
33720         * rendering/RenderTheme.h:
33721         (WebCore::RenderTheme::buttonInternalPaddingLeft):
33722         (WebCore::RenderTheme::buttonInternalPaddingRight):
33723         (WebCore::RenderTheme::buttonInternalPaddingTop):
33724         * rendering/RenderThemeChromiumGtk.cpp:
33725         (WebCore::RenderThemeWin::buttonInternalPaddingLeft):
33726         (WebCore::RenderThemeWin::buttonInternalPaddingRight):
33727         (WebCore::RenderThemeWin::buttonInternalPaddingTop):
33728         (WebCore::RenderThemeWin::buttonInternalPaddingBottom):
33729         * rendering/RenderThemeChromiumGtk.h:
33730         * rendering/RenderThemeChromiumWin.cpp:
33731         (WebCore::RenderThemeChromiumWin::buttonInternalPaddingLeft):
33732         (WebCore::RenderThemeChromiumWin::buttonInternalPaddingRight):
33733         (WebCore::RenderThemeChromiumWin::buttonInternalPaddingTop):
33734         (WebCore::RenderThemeChromiumWin::buttonInternalPaddingBottom):
33735         * rendering/RenderThemeChromiumWin.h:
33736         * rendering/RenderThemeWin.cpp:
33737         (WebCore::RenderThemeWin::buttonInternalPaddingLeft):
33738         (WebCore::RenderThemeWin::buttonInternalPaddingRight):
33739         (WebCore::RenderThemeWin::buttonInternalPaddingTop):
33740         (WebCore::RenderThemeWin::buttonInternalPaddingBottom):
33741         * rendering/RenderThemeWin.h:
33742
33743 2009-03-02  Adam Treat  <adam.treat@torchmobile.com>
33744
33745         Build fix for Qt port.  Remove unnecessary assert.
33746
33747         * platform/graphics/qt/ImageBufferQt.cpp:
33748         (WebCore::ImageBuffer::putImageData):
33749
33750 2009-03-02  Adam Treat  <adam.treat@torchmobile.com>
33751
33752         Reviewed by Adam Roben and previously by Eric Seidel and Simon Fraser.
33753
33754         https://bugs.webkit.org/show_bug.cgi?id=24227
33755         Ensure that the checkForSolidColor() optimization is correctly triggered
33756         for all cases of drawPattern.  Currently, the optimization was not triggered
33757         when the check had not been previously performed via a request for the
33758         image's NativeImagePtr.
33759
33760         Implement the Qt version of the checkForSolidColor() method.  Combined with
33761         the bug fix this reduces the time it takes to draw a repeating background
33762         of a 1x1 image from ~50msecs to ~0msecs on my machine.
33763
33764         * platform/graphics/BitmapImage.cpp:
33765         (WebCore::BitmapImage::BitmapImage):
33766         * platform/graphics/BitmapImage.h:
33767         (WebCore::BitmapImage::mayFillWithSolidColor):
33768         * platform/graphics/Image.h:
33769         (WebCore::Image::mayFillWithSolidColor):
33770         * platform/graphics/cairo/ImageCairo.cpp:
33771         (WebCore::BitmapImage::BitmapImage):
33772         (WebCore::BitmapImage::checkForSolidColor):
33773         * platform/graphics/cg/ImageCG.cpp:
33774         (WebCore::BitmapImage::BitmapImage):
33775         (WebCore::BitmapImage::checkForSolidColor):
33776         * platform/graphics/qt/ImageQt.cpp:
33777         (WebCore::BitmapImage::checkForSolidColor):
33778         * platform/graphics/skia/ImageSkia.cpp:
33779         (WebCore::BitmapImage::checkForSolidColor):
33780         * platform/graphics/wx/ImageWx.cpp:
33781         (WebCore::BitmapImage::checkForSolidColor):
33782
33783 2009-03-02  Gustavo Noronha Silva  <gns@gnome.org>
33784
33785         Unreviewed build fix; adding missing files to EXTRA_DIST, so that
33786         they show up in the tarball.
33787
33788         * GNUmakefile.am:
33789
33790 2009-03-02  Dirk Schulze  <krit@webkit.org>
33791
33792         Reviewed by Holger Freyther.
33793
33794         Added putImageData to Qt. Discussed with Ariya Hidayat.
33795
33796         [Qt] lacks putImageData support in Canvas
33797         https://bugs.webkit.org/show_bug.cgi?id=22186
33798
33799         * platform/graphics/qt/ImageBufferQt.cpp:
33800         (WebCore::ImageBuffer::putImageData):
33801
33802 2009-03-02  Timothy Hatcher  <timothy@apple.com>
33803
33804         Show exception messages again when evaluating bad expressions in the
33805         Web Inspector's console.
33806
33807         https://bugs.webkit.org/show_bug.cgi?id=19890
33808
33809         Reviewed by Oliver Hunt.
33810
33811         * bindings/js/JSQuarantinedObjectWrapper.cpp:
33812         (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
33813         Fix the order in which the exception is set and cleared now that the
33814         exception is stored in the shared GlobalData, not per ExecState.
33815
33816 2009-02-28  Timothy Hatcher  <timothy@apple.com>
33817
33818         Make input in the Web Inspector console print before any output
33819         that might be added by the called function.
33820
33821         https://bugs.webkit.org/show_bug.cgi?id=19931
33822
33823         Reviewed by Oliver Hunt.
33824
33825         * inspector/front-end/Console.js:
33826         (WebInspector.Console.prototype._enterKeyPressed): Add the command
33827         message before evaluating the result. Associate the originating
33828         command to the result, so if they are adjacent there is no divider.
33829         (WebInspector.ConsoleCommand): No longer take a result.
33830         (WebInspector.ConsoleCommand.prototype.toMessageElement): Result
33831         code removed since it isn't used now.
33832         (WebInspector.ConsoleCommandResult): Subclass ConsoleMessage.
33833         (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
33834         Call the ConsoleMessage toMessageElement and add a style class.
33835         * inspector/front-end/inspector.css: Add a new style class for
33836         adjacent results to hide the divider. Also tweak the position of
33837         the disclosure triangle for objects to not use the left margin.
33838
33839 2009-03-01  Chris Fleizach  <cfleizach@apple.com>
33840
33841         Reviewed by Oliver Hunt.
33842
33843         Bug 24282: AX Palindrome error when asking for a specific index of the AXChildren array
33844         <https://bugs.webkit.org/show_bug.cgi?id=24282>
33845
33846         When fetching an array of elements with a range, attachment views need to be returned
33847         instead of the actual attachment.
33848
33849         * page/mac/AccessibilityObjectWrapper.mm:
33850         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
33851         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
33852
33853 2009-03-01  Ojan Vafai  <ojan@chromium.org>
33854
33855         Reviewed by Eric Seidel.
33856
33857         Bug 24251: Cleanup: replace positionForCoordinates with positionForPoint
33858         <https://bugs.webkit.org/show_bug.cgi?id=24251>
33859         
33860         Make RenderObject::positionForCoordinate non-virtual and
33861         RenderObject::positionForPoint virtual in preparation for
33862         removing positionFor* from RenderObject/RenderText.
33863
33864         * page/Frame.cpp:
33865         (WebCore::Frame::visiblePositionForPoint):
33866         * rendering/RenderBR.cpp:
33867         (WebCore::RenderBR::positionForPoint):
33868         * rendering/RenderBR.h:
33869         * rendering/RenderBlock.cpp:
33870         (WebCore::RenderBlock::positionForPoint):
33871         * rendering/RenderBlock.h:
33872         * rendering/RenderBox.cpp:
33873         (WebCore::RenderBox::positionForPoint):
33874         * rendering/RenderBox.h:
33875         * rendering/RenderInline.cpp:
33876         (WebCore::RenderInline::positionForPoint):
33877         * rendering/RenderInline.h:
33878         * rendering/RenderObject.cpp:
33879         (WebCore::RenderObject::positionForCoordinates):
33880         (WebCore::RenderObject::positionForPoint):
33881         * rendering/RenderObject.h:
33882         * rendering/RenderReplaced.cpp:
33883         (WebCore::RenderReplaced::positionForPoint):
33884         * rendering/RenderReplaced.h:
33885         * rendering/RenderSVGInlineText.cpp:
33886         (WebCore::RenderSVGInlineText::positionForPoint):
33887         * rendering/RenderSVGInlineText.h:
33888         * rendering/RenderText.cpp:
33889         (WebCore::RenderText::positionForPoint):
33890         * rendering/RenderText.h:
33891
33892 2009-03-01  Larry Ewing  <lewing@novell.com>
33893
33894         Reviewed by Alexey Proskuryakov.
33895
33896         https://bugs.webkit.org/show_bug.cgi?id=24080
33897         NPN_GetValue casting to the wrong type and writing outside bounds
33898
33899         Make sure to cast the value to the correct type so that only
33900         memory owned by the value is written to.
33901
33902         * plugins/gtk/PluginViewGtk.cpp (PluginView::getValueStatic): 
33903         * plugins/qt/PluginViewQt.cpp (PluginView::getValueStatic):
33904         * plugins/mac/PluginViewMac.cpp (PluginView::getValueStatic): 
33905         (PluginView::getValue):
33906
33907 2009-03-01  Jeremy Moskovich  <jeremy@chromium.org>
33908
33909         Reviewed by Simon Fraser.
33910
33911         https://bugs.webkit.org/show_bug.cgi?id=24197 and
33912         https://bugs.webkit.org/show_bug.cgi?id=23512
33913
33914         The Windows version of cgColor() is conditionally compiled using
33915         !PLATFORM(MAC) change this to PLATFORM(WIN_OS) so that Chrome
33916         can use the OS X version instead of the Windows version.
33917
33918         Also rename cgColor() -> createCGColor()
33919
33920         No observable change in behavior, so no test.
33921
33922         * platform/graphics/Color.h:
33923         * platform/graphics/cg/ColorCG.cpp:
33924         (WebCore::createCGColor):
33925         * platform/graphics/cg/GraphicsContextCG.cpp:
33926         (WebCore::GraphicsContext::setPlatformShadow):
33927         * platform/graphics/mac/ColorMac.mm:
33928         (WebCore::createCGColor):
33929         * platform/graphics/mac/GraphicsContextMac.mm:
33930         (WebCore::GraphicsContext::drawFocusRing):
33931         * platform/graphics/mac/GraphicsLayerCA.mm:
33932         (WebCore::setLayerBorderColor):
33933         (WebCore::setLayerBackgroundColor):
33934         (WebCore::GraphicsLayerCA::setBackgroundColor):
33935         * platform/graphics/win/GraphicsContextCGWin.cpp:
33936         (WebCore::GraphicsContext::drawFocusRing):
33937         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
33938         (WebCore::ciColor):
33939
33940 2009-03-01  David Levin  <levin@chromium.org>
33941
33942         Reviewed by Alexey Proskuryakov.
33943
33944         Bug 24271: XMLHttpRequest needs js bindings for Workers.
33945         <https://bugs.webkit.org/show_bug.cgi?id=24271>
33946
33947         Tests: http/tests/xmlhttprequest/workers/methods-async.html
33948                http/tests/xmlhttprequest/workers/methods.html
33949
33950         * bindings/js/JSWorkerContextBase.cpp:
33951         (WebCore::JSWorkerContextBase::getOwnPropertySlot):
33952         (jsWorkerContextBaseXMLHttpRequest):
33953         (setJSWorkerContextBaseXMLHttpRequest):
33954         Expose XMLHttpRequest to Workers.
33955
33956         * bindings/js/JSWorkerContextBase.h:
33957
33958         * bindings/js/JSXMLHttpRequestConstructor.cpp:
33959         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
33960         (WebCore::constructXMLHttpRequest):
33961         (WebCore::JSXMLHttpRequestConstructor::mark):
33962         Removed the dependencies on Document.
33963
33964         * bindings/js/JSXMLHttpRequestConstructor.h:
33965         (WebCore::JSXMLHttpRequestConstructor::scriptExecutionContext):
33966         * dom/EventException.idl:
33967         * dom/EventListener.idl:
33968         Change to have the NoStaticTables attribute since they are used from XHR.
33969
33970         * loader/WorkerThreadableLoader.cpp:
33971         (WebCore::workerContextDidFinishLoading):
33972         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
33973         Fixed identifier to be unsigned long.
33974
33975         * loader/WorkerThreadableLoader.h:
33976         * workers/WorkerThread.cpp:
33977         (WebCore::WorkerThread::workerThread):
33978         Stop active objects when the thread is getting shutdown so that xhr gets properly shutdown.
33979
33980         * xml/XMLHttpRequestUpload.cpp:
33981
33982         * xml/XMLHttpRequest.idl:
33983         * xml/XMLHttpRequestException.idl:
33984         * xml/XMLHttpRequestProgressEvent.idl:
33985         * xml/XMLHttpRequestUpload.idl:
33986         Change to have the NoStaticTables attribute since they are used from XHR.
33987
33988 2009-03-01  Horia Olaru  <olaru@adobe.com>
33989
33990         Adding manual debugger test cases for bug.
33991
33992         https://bugs.webkit.org/show_bug.cgi?id=21073
33993
33994         Reviewed by Kevin McCullough.
33995
33996         * manual-tests/inspector/debugger-step-on-do-while-statements.html: Added.
33997         * manual-tests/inspector/debugger-step-on-for-in-statements.html: Added.
33998         * manual-tests/inspector/debugger-step-on-for-statements.html: Added.
33999         * manual-tests/inspector/debugger-step-on-while-statements.html: Added.
34000         * manual-tests/inspector/resources/loop-statements.js: Added.
34001
34002 2009-03-01  Dan Bernstein  <mitz@apple.com>
34003
34004         Reviewed by Darin Adler.
34005
34006         - fix <rdar://problem/6634768> Reproducible crash in RenderLayer::updateScrollCornerStyle() using full-page zoom at MobileMe Contacts
34007
34008         Test: fast/events/scroll-during-zoom-change.html
34009
34010         * dom/Document.cpp:
34011         (WebCore::Document::recalcStyle): Pause scheduled events during style
34012         reclaculation. Changes to the zoom property result in scroll events
34013         being generated during style recalc, and those events need to be
34014         deferred until the render tree is consistent.
34015         * page/FrameView.cpp:
34016         (WebCore::FrameView::layout): Changed to account for a case in which the
34017         post-layout tasks trigger a nested layout, which reactivates the
34018         post-layout task timer.
34019
34020 2009-03-01  Ross Boucher  <rboucher@gmail.com>
34021
34022         Alphabetically sort scripts in the Script's panel file popup menu.
34023
34024         https://bugs.webkit.org/show_bug.cgi?id=23395
34025
34026         Reviewed by Timothy Hatcher.
34027
34028         * inspector/front-end/ScriptsPanel.js:
34029         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
34030         * inspector/front-end/utilities.js:
34031         (insertionIndexForObjectInListSortedByFunction):
34032         (indexOfObjectInListSortedByFunction):
34033
34034 2009-03-01  Yael Aharon  <yael.aharon@nokia.com>
34035
34036         Pass securityOrigin->host() instead of securityOrigin->domain() to WebInspector
34037         when creating databases, localStorage or sessionStorage. Changing document.domain
34038         should have no affect on databases, localStorage and sessionStorage in Web Inspector.
34039
34040         https://bugs.webkit.org/show_bug.cgi?id=23844
34041
34042         Reviewed by Timothy Hatcher.
34043
34044         * inspector/InspectorController.cpp:
34045         (WebCore::InspectorController::addDOMStorageScriptResource):
34046         (WebCore::InspectorController::didUseDOMStorage):
34047         * storage/Database.cpp:
34048         (WebCore::Database::openDatabase):
34049
34050 2009-03-01  Gustavo Noronha Silva  <gns@gnome.org>
34051
34052         Reviewed by Holger Freyther.
34053
34054         Avoid leaking errors when reporting GIO errors.
34055
34056         * platform/network/soup/ResourceHandleSoup.cpp:
34057         (WebCore::readCallback):
34058         (WebCore::openCallback):
34059         (WebCore::queryInfoCallback):
34060
34061 2009-03-01  Gustavo Noronha Silva  <gns@gnome.org>
34062
34063         Reviewed by Holger Freyther.
34064
34065         Fixes crash when the GIO backend is given the URI for a directory.
34066
34067         * platform/network/soup/ResourceHandleSoup.cpp:
34068         (WebCore::networkErrorForFile):
34069
34070 2009-02-28  Dimitri Glazkov  <dglazkov@chromium.org>
34071
34072         Reviewed by Darin Fisher.
34073
34074         https://bugs.webkit.org/show_bug.cgi?id=24261
34075         Fix V8 custom binding scrubbing error.
34076
34077         Test: fast/dom/TreeWalker/TreeWalker-currentNode.html
34078         Test: traversal/exception-forwarding.html
34079         TesT: traversal/stay-within-root.html
34080
34081         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
34082         * bindings/v8/custom/V8NodeIteratorCustom.cpp:
34083         (WebCore::toV8): Replace v8::Undefined() return value with v8::Null().
34084         * bindings/v8/custom/V8TreeWalkerCustom.cpp:
34085         (WebCore::toV8): Ditto.
34086
34087 2009-02-28  Dimitri Glazkov  <dglazkov@chromium.org>
34088
34089         Reviewed by Darin Fisher.
34090
34091         https://bugs.webkit.org/show_bug.cgi?id=24261
34092         Fix V8 custom binding scrubbing error.
34093
34094         Test: fast/dom/CSSStyleDeclaration/css-properties-case-sensitive.html
34095
34096         * WebCore.xcodeproj/project.pbxproj:
34097         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
34098         (WebCore::cssPropertyName):  Remove dubious checks, left over from
34099             incomplete conversion of parameter from pointer to pass-by-ref.
34100         (WebCore::NAMED_PROPERTY_GETTER): Initialize parameter.
34101         (WebCore::NAMED_PROPERTY_SETTER): Ditto.
34102
34103 2009-02-28  Xan Lopez  <xan@gnome.org>
34104
34105         Reviewed by Holger Freyther.
34106
34107         https://bugs.webkit.org/show_bug.cgi?id=24263
34108         [GTK] ref ResourceHandle until we are finished with it
34109
34110         Add a ref to the ResourceHandle in startHttp so we can keep it
34111         alive untill all callbacks have been executed, and unref it when
34112         soup tells us it's done with the SoupMessage (in
34113         finishedCallback). Fixes a number of crashes when calling
34114         didReceiveData whould crash because of the handle dying.
34115
34116         * platform/network/soup/ResourceHandleSoup.cpp:
34117         (WebCore::finishedCallback):
34118         (WebCore::ResourceHandle::startHttp):
34119
34120 2009-02-28  Adam Bergkvist <adam.bergkvist@ericsson.com>
34121
34122         Reviewed by Alexey Proskuryakov.
34123
34124         https://bugs.webkit.org/show_bug.cgi?id=24226
34125         [SOUP] HTTP status text is never set
34126
34127         Set HTTP status text to SoupMessage reason_phrase.
34128
34129         * platform/network/soup/ResourceHandleSoup.cpp:
34130         (WebCore::fillResponseFromMessage):
34131
34132 2009-02-28  Dan Bernstein  <mitz@apple.com>
34133
34134         - fix malformed project file
34135
34136         * WebCore.xcodeproj/project.pbxproj:
34137
34138 2009-02-28  Dan Bernstein  <mitz@apple.com>
34139
34140         Reviewed by Oliver Hunt.
34141
34142         - fix https://bugs.webkit.org/show_bug.cgi?id=23848
34143           <rdar://problem/6573250> REGRESSION: Crash when mouse cursor moves over a link on www.opportuno.de
34144
34145         Test: fast/layers/inline-dirty-z-order-lists.html
34146
34147         * rendering/RenderBox.cpp:
34148         (WebCore::RenderBox::styleWillChange): Moved the code that dirties a
34149         layer's and its stacking context's z-order lists when the layer's
34150         z-index or visibility change from here...
34151         * rendering/RenderBoxModelObject.cpp:
34152         (WebCore::RenderBoxModelObject::styleWillChange): ...to here, so that
34153         it will apply to RenderInline too.
34154
34155 2009-02-27  Alexey Proskuryakov  <ap@webkit.org>
34156
34157         Reviewed by David Hyatt.
34158
34159         Don't include TextResourceDecoder.h in Document.h
34160
34161         This undoes inlining of Document::displayStringModifiedByEncoding() to avoid world rebuilds
34162         when TextResourceDecoder.h is modified. Performance impact is expected to be negligible.
34163
34164         * dom/Document.cpp:
34165         (WebCore::Document::displayStringModifiedByEncoding):
34166         (WebCore::Document::displayBufferModifiedByEncoding):
34167         * dom/Document.h:
34168         * WebCore.base.exp:
34169
34170 2009-02-27  Matt Pennig  <pennig@apple.com>
34171
34172         Reviewed by David Hyatt.
34173
34174         Resolves: https://bugs.webkit.org/show_bug.cgi?id=24107
34175         "Fixed elements have 0 as an offsetLeft property"
34176         
34177         Code also brings offsetLeft/Top in full conformance with the spec.
34178         Added two tests, one for fixed-position elements, and one for <html>.
34179         
34180         Tests: fast/dom/Element/fixed-position-offset-parent.html
34181                fast/dom/Element/offsetLeft-offsetTop-html.html
34182
34183         * rendering/RenderBoxModelObject.cpp:
34184         (WebCore::RenderBoxModelObject::offsetLeft):
34185         (WebCore::RenderBoxModelObject::offsetTop):
34186
34187 2009-02-27  Dean Jackson  <dino@apple.com>
34188
34189         Reviewed by Simon Fraser.
34190
34191         renderer()->hasTransform() returns true for elements
34192         with perspective, but no transform, so test for transform
34193         when hit testing. This fixes ASSERT from
34194         https://bugs.webkit.org/show_bug.cgi?id=24252
34195
34196         Test: transforms/no_transform_hit_testing.html
34197
34198         * rendering/RenderLayer.cpp:
34199         (WebCore::RenderLayer::hitTestLayer):
34200
34201 2009-02-27  Dimitri Glazkov  <dglazkov@chromium.org>
34202
34203         Reviewed by Darin Fisher.
34204
34205         Fix scrubbing error -- a reversed condition.
34206
34207         * bindings/v8/ScriptValue.h:
34208         (WebCore::ScriptValue::clear): Change early exit for empty value, not the opposite.
34209
34210 2009-02-27  Jian Li  <jianli@chromium.org>
34211
34212         Reviewed by Alexey Proskuryakov.
34213
34214         Add confirmMessageFromWorkerObject to WorkerObjectProxy.
34215         https://bugs.webkit.org/show_bug.cgi?id=24152
34216
34217         * workers/WorkerMessagingProxy.cpp:
34218         (WebCore::MessageWorkerContextTask::performTask):
34219         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
34220         * workers/WorkerMessagingProxy.h:
34221         * workers/WorkerObjectProxy.h:
34222
34223 2009-02-27  Anders Carlsson  <andersca@apple.com>
34224
34225         Reviewed by David Hyatt.
34226
34227         Revert r41295, the fix for https://bugs.webkit.org/show_bug.cgi?id=24227 
34228         because it leads to assertion failures in the Mac port.
34229         
34230         * platform/graphics/BitmapImage.cpp:
34231         (WebCore::BitmapImage::BitmapImage):
34232         * platform/graphics/BitmapImage.h:
34233         (WebCore::BitmapImage::mayFillWithSolidColor):
34234         * platform/graphics/Image.h:
34235         (WebCore::Image::mayFillWithSolidColor):
34236         * platform/graphics/cairo/ImageCairo.cpp:
34237         (WebCore::BitmapImage::BitmapImage):
34238         * platform/graphics/cg/ImageCG.cpp:
34239         (WebCore::BitmapImage::BitmapImage):
34240         (WebCore::BitmapImage::checkForSolidColor):
34241         * platform/graphics/qt/ImageQt.cpp:
34242         (WebCore::BitmapImage::checkForSolidColor):
34243         * platform/graphics/skia/ImageSkia.cpp:
34244         (WebCore::BitmapImage::checkForSolidColor):
34245         * platform/graphics/wx/ImageWx.cpp:
34246         (WebCore::BitmapImage::checkForSolidColor):
34247
34248 2009-02-27  Adam Barth  <abarth@webkit.org>
34249
34250         Reviewed by Eric Seidel.
34251
34252         https://bugs.webkit.org/show_bug.cgi?id=20249
34253
34254         Add a preference to allow universal access from local URLs to mitigate
34255         some attacks.  Some clients still want to allow this access, so we
34256         expose this as a preference.
34257
34258         * WebCore.base.exp:
34259         * dom/Document.cpp:
34260         (WebCore::Document::initSecurityContext):
34261         * page/SecurityOrigin.cpp:
34262         (WebCore::SecurityOrigin::SecurityOrigin):
34263         * page/Settings.cpp:
34264         (WebCore::Settings::Settings):
34265         (WebCore::Settings::setAllowUniversalAccessFromFileUrls):
34266         * page/Settings.h:
34267         (WebCore::Settings::allowUniversalAccessFromFileUrls):
34268
34269 2009-02-27  Adam Treat  <adam.treat@torchmobile.com>
34270
34271         Reviewed by Eric Seidel.
34272
34273         https://bugs.webkit.org/show_bug.cgi?id=24229
34274         If an image has no alpha channel there is no reason to use SourceOver.
34275
34276         * platform/graphics/qt/ImageQt.cpp:
34277         (WebCore::Image::drawPattern):
34278         (WebCore::BitmapImage::draw):
34279
34280 2009-02-27  Adam Treat  <adam.treat@torchmobile.com>
34281
34282         Reviewed by Eric Seidel and Simon Fraser.
34283
34284         https://bugs.webkit.org/show_bug.cgi?id=24227
34285         Ensure that the checkForSolidColor() optimization is correctly triggered
34286         for all cases of drawPattern.  Currently, the optimization was not triggered
34287         when the check had not been previously performed via a request for the
34288         image's NativeImagePtr.
34289
34290         Implement the Qt version of the checkForSolidColor() method.  Combined with
34291         the bug fix this reduces the time it takes to draw a repeating background
34292         of a 1x1 image from ~50msecs to ~0msecs on my machine.
34293
34294         * platform/graphics/BitmapImage.cpp:
34295         (WebCore::BitmapImage::BitmapImage):
34296         * platform/graphics/BitmapImage.h:
34297         (WebCore::BitmapImage::mayFillWithSolidColor):
34298         * platform/graphics/Image.h:
34299         (WebCore::Image::mayFillWithSolidColor):
34300         * platform/graphics/cairo/ImageCairo.cpp:
34301         (WebCore::BitmapImage::BitmapImage):
34302         * platform/graphics/cg/ImageCG.cpp:
34303         (WebCore::BitmapImage::BitmapImage):
34304         (WebCore::BitmapImage::checkForSolidColor):
34305         * platform/graphics/qt/ImageQt.cpp:
34306         (WebCore::BitmapImage::checkForSolidColor):
34307         * platform/graphics/skia/ImageSkia.cpp:
34308         (WebCore::BitmapImage::checkForSolidColor):
34309         * platform/graphics/wx/ImageWx.cpp:
34310         (WebCore::BitmapImage::checkForSolidColor):
34311
34312 2009-02-27  Dirk Schulze  <krit@webkit.org>
34313
34314         Reviewed by Zack Rusin.
34315
34316         Added support for gradients and pattern on Fonts for Qt.
34317
34318         [Qt] gradients and patterns for FontQt
34319         https://bugs.webkit.org/show_bug.cgi?id=24243
34320
34321         * platform/graphics/qt/FontQt.cpp:
34322         (WebCore::Font::drawComplexText):
34323
34324 2009-02-27  Jian Li  <jianli@chromium.org>
34325
34326         Reviewed by Alexey Proskuryakov.
34327
34328         WorkerContextProxy::create in WorkerMessagingProxy.cpp should only be provided for non-Chromium platform.
34329         https://bugs.webkit.org/show_bug.cgi?id=24113
34330
34331         * workers/WorkerMessagingProxy.cpp:
34332
34333 2009-02-27  Yael Aharon  <yael.aharon@nokia.com>
34334
34335         Added a refresh button to storage views.
34336
34337         https://bugs.webkit.org/show_bug.cgi?id=24040
34338
34339         Reviewed by Timothy Hatcher.
34340
34341         * inspector/front-end/DOMStorageItemsView.js:
34342         (WebInspector.DOMStorageItemsView):
34343         (WebInspector.DOMStorageItemsView.prototype.get statusBarItems):
34344         (WebInspector.DOMStorageItemsView.prototype.update):
34345         (WebInspector.DOMStorageItemsView.prototype._refreshButtonClicked):
34346         * inspector/front-end/DatabaseTableView.js:
34347         (WebInspector.DatabaseTableView):
34348         (WebInspector.DatabaseTableView.prototype.get statusBarItems):
34349         (WebInspector.DatabaseTableView.prototype._refreshButtonClicked):
34350         * inspector/front-end/DatabasesPanel.js:
34351         (WebInspector.DatabasesPanel):
34352         (WebInspector.DatabasesPanel.prototype.get statusBarItems):
34353         (WebInspector.DatabasesPanel.prototype.reset):
34354         (WebInspector.DatabasesPanel.prototype.showDatabase):
34355         (WebInspector.DatabasesPanel.prototype.showDOMStorage):
34356         (WebInspector.DatabasesPanel.prototype._updateSidebarWidth):
34357         * inspector/front-end/inspector.css:
34358
34359 2009-02-27  Yael Aharon  <yael.aharon@nokia.com>
34360
34361         Added support for editing/deleting localStorage and sessionStorage items
34362         directly from Web Inspector.
34363
34364         https://bugs.webkit.org/show_bug.cgi?id=23866.
34365
34366         Reviewed by Timothy Hatcher.
34367
34368         * WebCore.vcproj/WebCore.vcproj:
34369         * inspector/front-end/DOMStorageDataGrid.js: Added.
34370         (WebInspector.DOMStorageDataGrid):
34371         (WebInspector.DOMStorageDataGrid.prototype._ondblclick):
34372         (WebInspector.DOMStorageDataGrid.prototype._startEditing):
34373         (WebInspector.DOMStorageDataGrid.prototype._editingCommitted):
34374         (WebInspector.DOMStorageDataGrid.prototype._editingCancelled):
34375         (WebInspector.DOMStorageDataGrid.prototype.deleteSelectedRow):
34376         * inspector/front-end/DOMStorageItemsView.js:
34377         (WebInspector.DOMStorageItemsView):
34378         (WebInspector.DOMStorageItemsView.prototype.get statusBarItems):
34379         (WebInspector.DOMStorageItemsView.prototype.hide):
34380         (WebInspector.DOMStorageItemsView.prototype.update):
34381         (WebInspector.DOMStorageItemsView.prototype._deleteButtonClicked):
34382         * inspector/front-end/DatabasesPanel.js:
34383         (WebInspector.DatabasesPanel):
34384         (WebInspector.DatabasesPanel.prototype.get statusBarItems):
34385         (WebInspector.DatabasesPanel.prototype.reset):
34386         (WebInspector.DatabasesPanel.prototype.showDOMStorage):
34387         (WebInspector.DatabasesPanel.prototype.dataGridForDOMStorage):
34388         (WebInspector.DatabasesPanel.prototype._updateSidebarWidth):
34389         * inspector/front-end/WebKit.qrc:
34390         * inspector/front-end/inspector.css:
34391         * inspector/front-end/inspector.html:
34392
34393 2009-02-26  Brett Wilson  <brettw@chromium.org>
34394
34395         Fix Windows transparency for the Chromium port. Implement a helper
34396         class for handling transparency on Windows. It allows semitransparent
34397         ClearType and semitransparent form controls by making new layers in the
34398         background.
34399
34400         It also replaces the "ThemeHelper" which allows better
34401         scaling and transforms on Windows form controls. In addition to the
34402         functionality that the ThemeHelper did, but additionally handles the
34403         antialiasing properly so that the form controls aren't composited on a
34404         white square.
34405
34406         https://bugs.webkit.org/show_bug.cgi?id=24101
34407
34408         Reviewed by Eric Seidel.
34409
34410         * platform/graphics/chromium/FontChromiumWin.cpp:
34411         (WebCore::):
34412         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::TransparencyAwareFontPainter):
34413         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
34414         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
34415         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::drawGlyphs):
34416         (WebCore::Font::drawGlyphs):
34417         * platform/graphics/chromium/ThemeHelperChromiumWin.cpp:
34418         * platform/graphics/chromium/ThemeHelperChromiumWin.h:
34419         * platform/graphics/chromium/TransparencyWin.cpp: Added.
34420         (WebCore::):
34421         (WebCore::TransparencyWin::OwnedBuffers::OwnedBuffers):
34422         (WebCore::TransparencyWin::OwnedBuffers::destBitmap):
34423         (WebCore::TransparencyWin::OwnedBuffers::referenceBitmap):
34424         (WebCore::TransparencyWin::OwnedBuffers::canHandleSize):
34425         (WebCore::TransparencyWin::TransparencyWin):
34426         (WebCore::TransparencyWin::~TransparencyWin):
34427         (WebCore::TransparencyWin::init):
34428         (WebCore::TransparencyWin::computeLayerSize):
34429         (WebCore::TransparencyWin::setupLayer):
34430         (WebCore::TransparencyWin::setupLayerForNoLayer):
34431         (WebCore::TransparencyWin::setupLayerForOpaqueCompositeLayer):
34432         (WebCore::TransparencyWin::setupLayerForTextComposite):
34433         (WebCore::TransparencyWin::setupLayerForWhiteLayer):
34434         (WebCore::TransparencyWin::setupTransform):
34435         (WebCore::TransparencyWin::setupTransformForKeepTransform):
34436         (WebCore::TransparencyWin::setupTransformForUntransform):
34437         (WebCore::TransparencyWin::setupTransformForScaleTransform):
34438         (WebCore::TransparencyWin::setTextCompositeColor):
34439         (WebCore::TransparencyWin::initializeNewContext):
34440         (WebCore::TransparencyWin::compositeOpaqueComposite):
34441         (WebCore::TransparencyWin::compositeTextComposite):
34442         (WebCore::TransparencyWin::makeLayerOpaque):
34443         * platform/graphics/chromium/TransparencyWin.h: Added.
34444         (WebCore::TransparencyWin::):
34445         (WebCore::TransparencyWin::context):
34446         (WebCore::TransparencyWin::platformContext):
34447         (WebCore::TransparencyWin::drawRect):
34448         * platform/graphics/skia/GraphicsContextSkia.cpp:
34449         (WebCore::GraphicsContext::endTransparencyLayer):
34450         * platform/graphics/skia/ImageSkia.cpp:
34451         (WebCore::paintSkBitmap):
34452         * rendering/RenderThemeChromiumWin.cpp:
34453         (WebCore::):
34454         (WebCore::RenderThemeChromiumWin::paintButton):
34455         (WebCore::RenderThemeChromiumWin::paintMenuList):
34456         (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
34457
34458 2009-02-27  Dimitri Glazkov  <dglazkov@chromium.org>
34459
34460         Reviewed by Eric Seidel.
34461
34462         https://bugs.webkit.org/show_bug.cgi?id=24211
34463         Add ScheduledAction for V8.
34464
34465         * bindings/v8/ScheduledAction.cpp: Added.
34466         (WebCore::ScheduledAction::ScheduledAction):
34467         (WebCore::ScheduledAction::~ScheduledAction):
34468         (WebCore::ScheduledAction::execute):
34469         * bindings/v8/ScheduledAction.h: Added.
34470         (WebCore::ScheduledAction::ScheduledAction):
34471
34472 2009-02-27  Zack Rusin  <zack@kde.org>
34473
34474         Reviewed by Nikolas Zimmermann.
34475
34476         Qt: be more reasonable about scrolled lines
34477
34478         cMouseWheelPixelsPerLineStep is currently a constant set to 13.3. it doesn't
34479         match our metrics meaning that Qt scrolls by ~2 lines by default which is quite
34480         irritating. so lets scroll vertically by the Qt set number of lines * Qt default
34481         single step scroll
34482
34483         * platform/qt/WheelEventQt.cpp:
34484
34485 2009-02-27  Xan Lopez  <xan@gnome.org>
34486
34487         Rubber-stamped by Alexey Proskuryakov.
34488
34489         https://bugs.webkit.org/show_bug.cgi?id=24222
34490         [GTK] Remove checks for old glib versions
34491
34492         libsoup, which is a hard dependency, needs at least glib 2.15.3,
34493         so remove all glib checks for versions older than that.
34494
34495         * platform/gtk/ContextMenuGtk.cpp:
34496         (WebCore::ContextMenu::ContextMenu):
34497         * platform/gtk/ContextMenuItemGtk.cpp:
34498         (WebCore::ContextMenuItem::setSubMenu):
34499         * platform/gtk/PopupMenuGtk.cpp:
34500         (WebCore::PopupMenu::show):
34501         * platform/gtk/WidgetGtk.cpp:
34502         (WebCore::Widget::retainPlatformWidget):
34503         * platform/network/soup/ResourceHandleSoup.cpp:
34504
34505 2009-02-26  Dirk Schulze  <krit@webkit.org>
34506
34507         Reviewed by Oliver Hunt.
34508
34509         Added support for Gradients and Patterns on filled or stroked Fonts
34510         in Cairo. I also added support for globalAlpha on FontCairo.
34511
34512         [CAIRO] SVG/Canvas fonts miss gradients/pattern support
34513         https://bugs.webkit.org/show_bug.cgi?id=18617
34514
34515         * html/CanvasRenderingContext2D.cpp:
34516         (WebCore::CanvasRenderingContext2D::drawTextInternal):
34517         * platform/graphics/cairo/FontCairo.cpp:
34518         (WebCore::Font::drawGlyphs):
34519
34520 2009-02-26  Stephen White  <senorblanco@chromium.org>
34521
34522         Reviewed by Eric Seidel.
34523
34524         https://bugs.webkit.org/show_bug.cgi?id=23957
34525
34526         Fix for SVG gradient and pattern text for Chromium/skia. 
34527         Added accessors for the fill and stroke gradients to
34528         GraphicsContext.  Changed the paintSkiaText function to take a
34529         GraphicsContext, so we can check for gradients/patterns. 
34530         Changed the skiaDrawText function to set the SkPaint shader
34531         correctly, and to scale up the gradient shader matrix to
34532         encompass the entire text string.  Also offset each glyph
34533         separately, rather than transforming the canvas, so that the
34534         gradient/pattern stays fixed relative to the text origin.
34535
34536         * platform/graphics/GraphicsContext.cpp:
34537         (WebCore::GraphicsContext::getFillGradient):
34538         (WebCore::GraphicsContext::getStrokeGradient):
34539         (WebCore::GraphicsContext::getFillPattern):
34540         (WebCore::GraphicsContext::getStrokePattern):
34541         * platform/graphics/GraphicsContext.h:
34542         * platform/graphics/chromium/FontChromiumWin.cpp:
34543         (WebCore::Font::drawGlyphs):
34544         * platform/graphics/chromium/UniscribeHelper.cpp:
34545         (WebCore::UniscribeHelper::draw):
34546         * platform/graphics/skia/SkiaFontWin.cpp:
34547         (WebCore::windowsCanHandleTextDrawing):
34548         (WebCore::skiaDrawText):
34549         (WebCore::paintSkiaText):
34550         * platform/graphics/skia/SkiaFontWin.h:
34551
34552 2009-02-26  Dimitri Glazkov  <dglazkov@chromium.org>
34553
34554         Reviewed by Eric Seidel.
34555
34556         https://bugs.webkit.org/show_bug.cgi?id=24208
34557         Add custom V8 bindings for Navigator, Clipboard, Document, and Node.
34558
34559         * bindings/v8/custom/V8ClipboardCustom.cpp: Added.
34560         (WebCore::ACCESSOR_GETTER):
34561         (WebCore::CALLBACK_FUNC_DECL):
34562         * bindings/v8/custom/V8DocumentCustom.cpp: Added.
34563         (WebCore::CALLBACK_FUNC_DECL):
34564         * bindings/v8/custom/V8NavigatorCustom.cpp: Added.
34565         (WebCore::ACCESSOR_GETTER):
34566         * bindings/v8/custom/V8NodeCustom.cpp: Added.
34567         (WebCore::CALLBACK_FUNC_DECL):
34568
34569 2009-02-26  Gustavo Noronha Silva  <gns@gnome.org>
34570
34571         Unreviewed build fix for building with GNOME Keyring enabled.
34572
34573         * platform/network/soup/webkit-soup-auth-dialog.c:
34574         (show_auth_dialog):
34575
34576 2009-02-26  Xan Lopez  <xan@gnome.org>
34577
34578         Reviewed by Holger Freyther.
34579
34580         https://bugs.webkit.org/show_bug.cgi?id=16947
34581         [GTK] Missing HTTP Auth challenge
34582
34583         Add HTTP authentication dialog with optional GNOME Keyring
34584         storage.
34585
34586         * GNUmakefile.am:
34587         * platform/network/ResourceHandleInternal.h:
34588         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
34589         * platform/network/soup/ResourceHandleSoup.cpp:
34590         (WebCore::currentToplevelCallback):
34591         (WebCore::ResourceHandle::startHttp):
34592         (WebCore::ResourceHandle::start):
34593         * platform/network/soup/webkit-soup-auth-dialog.c: Added.
34594         (webkit_soup_auth_dialog_class_init):
34595         (webkit_soup_auth_dialog_init):
34596         (webkit_soup_auth_dialog_session_feature_init):
34597         (free_authData):
34598         (set_password_callback):
34599         (response_callback):
34600         (show_auth_dialog):
34601         (find_password_callback):
34602         (session_authenticate):
34603         (attach):
34604         * platform/network/soup/webkit-soup-auth-dialog.h: Added.
34605
34606 2009-02-25  Ojan Vafai  <ojan@chromium.org> and Eric Seidel <eric@webkit.org>
34607
34608         Reviewed by Dave Hyatt.
34609
34610         After Ojan's positionForCoordinates fix http://trac.webkit.org/changeset/41191
34611         svg/custom/pointer-events-image.svg and svg/custom/pointer-events-text.svg
34612         started failing because Ojan's new code was now *correctly* calling through to
34613         SVG asking for the closest text offset in the last line box, instead of
34614         just returning the offset at the end of the last line box when clicking below a box.
34615
34616         But!  The SVG code was wrong, in that it returned the character offset of the last
34617         character when you asked for a character offset after the end of the box, instead
34618         it should return the offset *after* the last character.  This patch fixes
34619         that behavior by reordering the last two clauses in svgCharacterHitsPosition.
34620
34621         The SVG positionForCoordinates function is still wrong, and I've added some FIXMEs
34622         to document what's wrong.  I've also cleaned up the code a bit so it's clearer
34623         what it is doing (which also makes more obvious what's wrong with it).
34624
34625         * rendering/RenderSVGInlineText.cpp:
34626         (WebCore::RenderSVGInlineText::positionForCoordinates):
34627         * rendering/SVGInlineTextBox.cpp:
34628         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::SVGInlineTextBoxClosestCharacterToPositionWalker):
34629         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
34630         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::offsetOfHitCharacter):
34631         (WebCore::SVGInlineTextBox::closestCharacterToPosition):
34632         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
34633
34634 2009-02-26  Darin Fisher  <darin@chromium.org>
34635
34636         Reviewed by Eric Seidel.
34637
34638         Minor cleanup of ChromiumBridge:
34639         Removing unused matchesMIMEType method and s/Javascript/JavaScript/
34640
34641         * platform/chromium/ChromiumBridge.h:
34642         * platform/chromium/MimeTypeRegistryChromium.cpp:
34643         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
34644         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
34645         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
34646
34647 2009-02-26  David Hyatt  <hyatt@apple.com>
34648
34649         Reviewed by Sam Weinig
34650
34651         Fix text-bottom vertical alignment.  It was incorrectly aligning the bottom of the descent instead of including
34652         the line-height below the descent.
34653
34654         Added fast/inline/vertical-align-text-bottom.html
34655
34656         * rendering/RenderBoxModelObject.cpp:
34657         (WebCore::RenderBoxModelObject::verticalPosition):
34658
34659 2009-02-26  Dirk Schulze  <krit@webkit.org>
34660
34661         Reviewed by Eric Seidel.
34662
34663         Make SVG Masking platform independet with the use of ImageBuffer::getImageData(),
34664         ImageBuffer::putImageData() and GraphicsContext::clipToImageBuffer(). Every platform has
34665         just to implement this three methods to support SVG Masking now.
34666  
34667         Make SVG Masking platform aware
34668         https://bugs.webkit.org/show_bug.cgi?id=19243
34669
34670         * GNUmakefile.am:
34671         * WebCore.pro:
34672         * WebCore.vcproj/WebCore.vcproj:
34673         * WebCore.xcodeproj/project.pbxproj:
34674         * svg/graphics/SVGResourceMasker.cpp:
34675         (WebCore::SVGResourceMasker::applyMask):
34676         * svg/graphics/cairo/SVGResourceMaskerCairo.cpp: Removed.
34677         * svg/graphics/cg/SVGResourceMaskerCg.cpp: Removed.
34678         * svg/graphics/cg/SVGResourceMaskerCg.mm: Removed.
34679         * svg/graphics/qt/SVGResourceMaskerQt.cpp: Removed.
34680         * svg/graphics/skia/SVGResourceMaskerSkia.cpp: Removed.
34681
34682 2009-02-26  Yong Li  <yong.li@torchmobile.com>
34683
34684         Reviewed by Darin Adler, Antti Koivisto and Alexey Proskuryakov.
34685
34686         Test: http/tests/misc/slow-preload-cancel.html
34687
34688         https://bugs.webkit.org/show_bug.cgi?id=24133
34689         Clear all pending preloads in the DocLoader object when we decide to
34690         cancel its all requests.
34691
34692         * loader/DocLoader.cpp:
34693         (WebCore::DocLoader::clearPendingPreloads):
34694         * loader/DocLoader.h:
34695         * loader/loader.cpp:
34696         (WebCore::Loader::cancelRequests):
34697
34698 2009-02-26  Dimitri Glazkov  <dglazkov@chromium.org>
34699
34700         Reviewed by Eric Seidel.
34701
34702         https://bugs.webkit.org/show_bug.cgi?id=24182
34703         Add NodeFilter, NodeIterator, and TreeWalker custom V8 bindings.
34704
34705         * bindings/v8/custom/V8NodeFilterCustom.cpp: Added.
34706         (WebCore::CALLBACK_FUNC_DECL):
34707         * bindings/v8/custom/V8NodeIteratorCustom.cpp: Added.
34708         (WebCore::toV8):
34709         (WebCore::CALLBACK_FUNC_DECL):
34710         * bindings/v8/custom/V8TreeWalkerCustom.cpp: Added.
34711         (WebCore::toV8):
34712         (WebCore::CALLBACK_FUNC_DECL):
34713
34714 2009-02-26  Alexey Proskuryakov  <ap@webkit.org>
34715
34716         Reviewed by Darin Adler.
34717
34718         https://bugs.webkit.org/show_bug.cgi?id=23500
34719         KURL::parse() incorrectly compares its result to original string
34720
34721         * platform/KURL.cpp: (WebCore::KURL::parse): Take string length into account.
34722
34723 2009-02-26  Ojan Vafai  <ojan@chromium.org>
34724
34725         Reviewed by Kevin McCullough.
34726
34727         Manual test for inspector node highlighting.
34728
34729         * manual-tests/inspector/highlight-nodes.html: Added.
34730
34731 2009-02-16  Anantanarayanan Iyengar  <ananta@chromium.org>
34732
34733         Reviewed by Darin Fisher.
34734
34735         https://bugs.webkit.org/show_bug.cgi?id=23973
34736         ScrollView::scrollContents can be invoked during view shutdown.  In
34737         this scenario the FrameView::hostWindow method can return NULL, which
34738         indicates that the frame/page is being destroyed. This causes a crash
34739         when we try to dereference a NULL hostWindow pointer.  Fix is to add a
34740         NULL check for this.  
34741
34742         * platform/ScrollView.cpp:
34743         (WebCore::ScrollView::scrollContents):
34744
34745 2009-02-26  Rahul Kuchhal  <kuchhal@chromium.org>
34746
34747         Reviewed by Dave Hyatt.
34748
34749         https://bugs.webkit.org/show_bug.cgi?id=24003
34750         Fix a crash caused by unsafe type conversion.
34751
34752         Test: fast/block/positioning/absolute-in-inline-rtl-4.html
34753
34754         * rendering/RenderBox.cpp:
34755         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
34756
34757 2009-02-26  Ojan Vafai  <ojan@chromium.org>
34758
34759         Reviewed by Adam Roben.
34760
34761         https://bugs.webkit.org/show_bug.cgi?id=24202
34762         Have drawNodeHighlight clip instead of clearing. This makes it work for
34763         both Safari and Chromium since Chromium draws the inspector highlighting
34764         in the same buffer as the page.
34765
34766         * inspector/InspectorController.cpp:
34767         (WebCore::quadToPath):
34768         (WebCore::drawOutlinedQuad):
34769         (WebCore::drawOutlinedQuadWithClip):
34770         (WebCore::drawHighlightForBox):
34771
34772 2009-02-26  David Hyatt  <hyatt@apple.com>
34773
34774         Reviewed by Dan Bernstein & Darin Adler
34775
34776         Make sure the border/padding are properly omitted at the start of an inline that is a continuation.
34777         
34778         Added fast/inline/inline-continuation-borders.html
34779
34780         * rendering/InlineFlowBox.cpp:
34781         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
34782
34783 2009-02-26  Simon Fraser  <simon.fraser@apple.com>
34784
34785         Build fix, no review.
34786         
34787         Try to fix the wx build after r41218.
34788
34789         * WebCoreSources.bkl:
34790
34791 2009-02-26  Alexey Proskuryakov  <ap@webkit.org>
34792
34793         Reviewed by Darin Adler.
34794
34795         https://bugs.webkit.org/show_bug.cgi?id=19527
34796         ASSERTION FAILED: containerA && containerB
34797
34798         Test: fast/dom/Range/bug-19527.html
34799
34800         * dom/Range.cpp:
34801         (WebCore::Range::isPointInRange):
34802         (WebCore::Range::comparePoint):
34803         Bring the behavior in line with current Firefox, making it impossible for these methods
34804         to pass a null container to compareBoundaryPoints().
34805
34806 2009-02-26  Jonathon Jongsma  <jonathon@quotidian.org>
34807
34808         Reviewed by Holger Freyther.
34809
34810         https://bugs.webkit.org/show_bug.cgi?id=20358
34811
34812         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
34813         (WebCore::SimpleFontData::smallCapsFontData): the small-caps font data
34814         should set the computed size rather than the specified size, otherwise
34815         the caps just get rendered normal size.
34816
34817 2009-02-26  Benjamin Meyer  <benjamin.meyer@torchmobile.com>
34818
34819         Reviewed by George Staikos.
34820
34821         https://bugs.webkit.org/show_bug.cgi?id=24062
34822         QNetworkCookieJar expects the url and not the policy url.  Sending the
34823         policy url will cause QNetworkCookieJar to behave incorrectly.  One
34824         example would be a cookie that does not have a path or domain.
34825         QNetworkCookieJar will use the url it is given to fill in default values.
34826         This allows setting cookies on the url of the main frame from an iFrame
34827         when the cookie should be set on the url of the iFrame.
34828
34829         Originally noticed on http://writer.zoho.com/jsp/home.jsp?serviceurl=/index.do
34830
34831         * platform/qt/CookieJarQt.cpp:
34832         (WebCore::setCookies):
34833
34834 2009-02-26  Charles Wei  <charles.wei@torchmobile.com.cn>
34835
34836         Reviewed by George Staikos.
34837
34838         make WebKit/Qt compile with SVG disabled
34839
34840         * WebCore.pro:
34841         * platform/graphics/qt/FontPlatformDataQt.cpp:
34842
34843 2009-02-25  Gustavo Noronha Silva  <gns@gnome.org>
34844
34845         Unreviewed build fix. Add WebCore/workers to the list of paths
34846         searched by the bindings generator perl script.
34847
34848         * GNUmakefile.am:
34849
34850 2009-02-25  Sam Weinig  <sam@webkit.org>
34851
34852         Reviewed by Geoffrey Garen.
34853
34854         Add canvas to the list of RenderObjects that can mark a page as
34855         visually not empty.
34856
34857         * rendering/RenderHTMLCanvas.cpp:
34858         (WebCore::RenderHTMLCanvas::RenderHTMLCanvas):
34859
34860 2009-02-25  Eric Carlson  <eric.carlson@apple.com>
34861
34862         Reviewed by Dave Hyatt.
34863
34864         * rendering/RenderBox.cpp:
34865         (WebCore::RenderBox::nodeAtPoint): Remove assertion fired when child has layer
34866         as RenderMedia with controls always has a layer.
34867
34868 2009-02-25  Dan Bernstein  <mitz@apple.com>
34869
34870         Reviewed by Simon Fraser.
34871
34872         - fix https://bugs.webkit.org/show_bug.cgi?id=24130
34873           <rdar://problem/6618196> Paint very slow when horizontally resizing
34874
34875         Test: fast/gradients/background-clipped.html
34876
34877         * rendering/RenderBoxModelObject.cpp:
34878         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Intersect the
34879         destination rectangle passed to drawTiledImage() with the dirty
34880         rectangle. This makes it more likely for the destination rect to be
34881         contained in a single tile rect, which results in a faster code path
34882         being taken down the road (just drawing a single tile instead of
34883         tiling).
34884
34885 2009-02-25  Ojan Vafai  <ojan@chromium.org>
34886
34887         Reviewed by Eric Seidel.
34888
34889         Fix test regressions from positionForCoordinates patch.
34890         https://bugs.webkit.org/show_bug.cgi?id=24148
34891
34892         * rendering/RenderBlock.cpp:
34893         (WebCore::positionForPointWithInlineChildren):
34894         Remove ASSERT that placeholder text codepath is hitting.
34895
34896 2009-02-25  Chris Fleizach  <cfleizach@apple.com>
34897
34898         Reviewed by Beth Dakin.
34899
34900         Bug 24143: Crash occurs at WebCore::AccessibilityTable::isTableExposableThroughAccessibility() when applying a link in GMail
34901         https://bugs.webkit.org/show_bug.cgi?id=24143
34902
34903         When an AX object is marked dirty, do not create AX elements while going up the parent chain.
34904         Do not allow AXRenderObjects to remove their own IDs from the cache, all the cache to do that work
34905         Make sure the AXObjectWrapper's have an object before calling them
34906         In AXObjectCache, change get -> getOrCreate. Use get() to only retrieve an element if it exists
34907
34908         Test: platform/mac-snowleopard/accessibility/table-updating.html
34909
34910         * WebCore.base.exp:
34911         * page/AXObjectCache.cpp:
34912         (WebCore::AXObjectCache::~AXObjectCache):
34913         (WebCore::AXObjectCache::get):
34914         (WebCore::AXObjectCache::getOrCreate):
34915         (WebCore::AXObjectCache::removeAXID):
34916         (WebCore::AXObjectCache::handleActiveDescendantChanged):
34917         (WebCore::AXObjectCache::handleAriaRoleChanged):
34918         * page/AXObjectCache.h:
34919         * page/AccessibilityImageMapLink.cpp:
34920         (WebCore::AccessibilityImageMapLink::parentObject):
34921         * page/AccessibilityListBox.cpp:
34922         (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
34923         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
34924         * page/AccessibilityListBoxOption.cpp:
34925         (WebCore::AccessibilityListBoxOption::elementRect):
34926         (WebCore::AccessibilityListBoxOption::parentObject):
34927         * page/AccessibilityObject.cpp:
34928         (WebCore::AccessibilityObject::detach):
34929         (WebCore::AccessibilityObject::parentObjectIfExists):
34930         (WebCore::replacedNodeNeedsCharacter):
34931         (WebCore::AccessibilityObject::accessibilityObjectForPosition):
34932         * page/AccessibilityObject.h:
34933         * page/AccessibilityRenderObject.cpp:
34934         (WebCore::AccessibilityRenderObject::firstChild):
34935         (WebCore::AccessibilityRenderObject::lastChild):
34936         (WebCore::AccessibilityRenderObject::previousSibling):
34937         (WebCore::AccessibilityRenderObject::nextSibling):
34938         (WebCore::AccessibilityRenderObject::parentObjectIfExists):
34939         (WebCore::AccessibilityRenderObject::parentObject):
34940         (WebCore::AccessibilityRenderObject::isAttachment):
34941         (WebCore::AccessibilityRenderObject::headingLevel):
34942         (WebCore::AccessibilityRenderObject::anchorElement):
34943         (WebCore::AccessibilityRenderObject::menuForMenuButton):
34944         (WebCore::AccessibilityRenderObject::menuButtonForMenu):
34945         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
34946         (WebCore::AccessibilityRenderObject::internalLinkElement):
34947         (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
34948         (WebCore::AccessibilityRenderObject::titleUIElement):
34949         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34950         (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
34951         (WebCore::AccessibilityRenderObject::getDocumentLinks):
34952         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
34953         (WebCore::AccessibilityRenderObject::focusedUIElement):
34954         (WebCore::AccessibilityRenderObject::activeDescendant):
34955         (WebCore::AccessibilityRenderObject::observableObject):
34956         (WebCore::AccessibilityRenderObject::childrenChanged):
34957         (WebCore::AccessibilityRenderObject::addChildren):
34958         * page/AccessibilityRenderObject.h:
34959         (WebCore::AccessibilityRenderObject::setRenderObject):
34960         * page/AccessibilityTable.cpp:
34961         (WebCore::AccessibilityTable::addChildren):
34962         (WebCore::AccessibilityTable::headerContainer):
34963         (WebCore::AccessibilityTable::cellForColumnAndRow):
34964         * page/AccessibilityTableCell.cpp:
34965         (WebCore::AccessibilityTableCell::isTableCell):
34966         (WebCore::AccessibilityTableCell::titleUIElement):
34967         * page/AccessibilityTableColumn.cpp:
34968         (WebCore::AccessibilityTableColumn::headerObjectForSection):
34969         * page/AccessibilityTableRow.cpp:
34970         (WebCore::AccessibilityTableRow::isTableRow):
34971         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
34972         * page/mac/AXObjectCacheMac.mm:
34973         (WebCore::AXObjectCache::postNotification):
34974         (WebCore::AXObjectCache::postNotificationToElement):
34975         * page/mac/AccessibilityObjectWrapper.mm:
34976         (textMarkerForVisiblePosition):
34977         (AXLinkElementForNode):
34978         (nsStringForReplacedNode):
34979         (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
34980         (-[AccessibilityObjectWrapper accessibilityActionNames]):
34981         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
34982         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]):
34983         (-[AccessibilityObjectWrapper accessibilityHitTest:]):
34984         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
34985         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
34986         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
34987         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]):
34988         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
34989         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
34990         (-[AccessibilityObjectWrapper _accessibilityParentForSubview:]):
34991         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
34992         (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
34993         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
34994
34995 2009-02-25  Beth Dakin  <bdakin@apple.com>
34996
34997         Reviewed by Geoff Garen.
34998
34999         Re-working of <rdar://problem/6487249> repro crash in 
35000         WebCore::CSSParser::parseFillImage copying entire contents of this 
35001         page
35002         -and corresponding: https://bugs.webkit.org/show_bug.cgi?id=24172
35003
35004         Fixes a bunch of layout test failures I caused!
35005
35006         * css/CSSParser.cpp:
35007         (WebCore::CSSParser::parseValue):
35008         (WebCore::CSSParser::parseContent):
35009         (WebCore::CSSParser::parseFillImage):
35010         (WebCore::CSSParser::parseFontFaceSrc):
35011         (WebCore::CSSParser::parseBorderImage):
35012
35013 2009-02-25  Dimitri Glazkov  <dglazkov@chromium.org>
35014
35015         Reviewed by Eric Seidel.
35016
35017         https://bugs.webkit.org/show_bug.cgi?id=24174
35018         Add more V8 custom bindings.
35019
35020         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp: Added.
35021         (WebCore::hasCSSPropertyNamePrefix):
35022         (WebCore::cssPropertyName):
35023         (WebCore::NAMED_PROPERTY_GETTER):
35024         (WebCore::NAMED_PROPERTY_SETTER):
35025         * bindings/v8/custom/V8DOMStringListCustom.cpp: Added.
35026         (WebCore::INDEXED_PROPERTY_GETTER):
35027         (WebCore::CALLBACK_FUNC_DECL):
35028         * bindings/v8/custom/V8EventCustom.cpp: Added.
35029         (WebCore::ACCESSOR_SETTER):
35030         (WebCore::ACCESSOR_GETTER):
35031         * bindings/v8/custom/V8HTMLDocumentCustom.cpp: Added.
35032         (WebCore::NAMED_PROPERTY_DELETER):
35033         (WebCore::NAMED_PROPERTY_SETTER):
35034         (WebCore::NAMED_PROPERTY_GETTER):
35035         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp: Added.
35036         (WebCore::NAMED_PROPERTY_GETTER):
35037         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Added.
35038         (WebCore::INDEXED_PROPERTY_GETTER):
35039         (WebCore::NAMED_PROPERTY_GETTER):
35040         * bindings/v8/custom/V8NodeListCustom.cpp: Added.
35041         (WebCore::NAMED_PROPERTY_GETTER):
35042         * bindings/v8/custom/V8StyleSheetListCustom.cpp: Added.
35043         (WebCore::NAMED_PROPERTY_GETTER):
35044
35045 2009-02-25  Scott Violet  <sky@google.com>
35046
35047         Reviewed by Dave Hyatt.
35048
35049         https://bugs.webkit.org/show_bug.cgi?id=24171
35050         Provides a RenderTheme method for getting the scroll bar size and
35051         changes RenderListBox to use it. RenderTheme returns a size of regular,
35052         and Mac's override to return small. Changes ScrollbarThemeChromium to
35053         use the scrollbarsize of the scrollbar when getting the size
35054         instead of passing in no-args.
35055
35056         * platform/chromium/ScrollbarThemeChromium.cpp:
35057         (WebCore::ScrollbarThemeChromium::trackRect):
35058         (WebCore::ScrollbarThemeChromium::buttonSize):
35059         * rendering/RenderListBox.cpp:
35060         (WebCore::RenderListBox::createScrollbar):
35061         * rendering/RenderTheme.h:
35062         (WebCore::RenderTheme::scrollbarControlSizeForPart):
35063         * rendering/RenderThemeChromiumMac.h:
35064         (WebCore::RenderThemeChromiumMac::scrollbarControlSizeForPart):
35065         * rendering/RenderThemeMac.h:
35066         (WebCore::RenderThemeMac::scrollbarControlSizeForPart):
35067
35068 2009-02-25  Beth Dakin  <bdakin@apple.com>
35069
35070         Reviewed by Darin Adler.
35071
35072         Fix for <rdar://problem/6487249> repro crash in 
35073         WebCore::CSSParser::parseFillImage copying entire contents of this 
35074         page
35075         -and corresponding: https://bugs.webkit.org/show_bug.cgi?id=24172
35076
35077         * css/CSSParser.cpp:
35078         (WebCore::CSSParser::parseValue): Null-check m_styleSheet
35079
35080 2009-02-25  Adam Treat  <adam.treat@torchmobile.com>
35081
35082         Fix the Qt build.
35083
35084         * WebCore.pro:
35085
35086 2009-02-25  Jan Michael Alonzo  <jmalonzo@webkit.org>
35087
35088         Gtk build fix. Not reviewed.
35089
35090         Add files to the build per r41218.
35091         Rename WebkitPoint.h to WebKitPoint.h in DOMWindow.cpp
35092
35093         * GNUmakefile.am:
35094         * page/DOMWindow.cpp:
35095
35096 2009-02-25  Zan Dobersek  <zandobersek@gmail.com>
35097
35098         Reviewed by Alexey Proskuryakov.
35099
35100         https://bugs.webkit.org/show_bug.cgi?id=24043
35101         When faced with URLs with unsupported protocol on Gtk port,
35102         report the error through an idle function and return true, so
35103         a proper resource handle is created.
35104
35105         * platform/network/soup/ResourceHandleSoup.cpp:
35106         (WebCore::reportUnknownProtocolError):
35107         (WebCore::ResourceHandle::start):
35108
35109 2009-02-25  Steve Falkenburg  <sfalken@apple.com>
35110
35111         Windows build fix.
35112         Use struct to forward declare ResourceRequest.
35113
35114         * history/HistoryItem.h:
35115         * inspector/InspectorController.h:
35116         * loader/DocumentThreadableLoader.h:
35117         * loader/FrameLoaderClient.h:
35118         * loader/MainResourceLoader.h:
35119         * loader/SubresourceLoader.h:
35120         * loader/SubresourceLoaderClient.h:
35121         * loader/ThreadableLoader.h:
35122         * loader/WorkerThreadableLoader.h:
35123         * platform/CrossThreadCopier.h:
35124         * platform/network/ResourceHandle.h:
35125         * platform/network/ResourceHandleClient.h:
35126         * platform/network/ResourceRequestBase.h:
35127         * platform/network/cf/ResourceRequestCFNet.h:
35128         * xml/XMLHttpRequest.h:
35129
35130 2009-02-25  Steve Falkenburg  <sfalken@apple.com>
35131
35132         Partial Windows build fix.
35133         
35134         * DerivedSources.cpp:
35135         * WebCore.vcproj/WebCore.vcproj:
35136
35137 2009-02-25  Dirk Schulze  <krit@webkit.org>
35138
35139         Reviewed by Oliver Hunt.
35140
35141         Ported arcTo to Qt. Qt has no native support for arcTo. This changes
35142         calculate the behavior of arcTo and draws it with lineTo and arc.
35143
35144         [QT] implement Canvas arcTo
35145         https://bugs.webkit.org/show_bug.cgi?id=23873
35146
35147         * platform/graphics/qt/PathQt.cpp:
35148         (WebCore::Path::addArcTo):
35149
35150 2009-02-25  Simon Fraser  <simon.fraser@apple.com>
35151
35152         Reviewed by Dan Bernstein
35153
35154         Remove idl files from Resources, and sort.
35155         
35156         * WebCore.xcodeproj/project.pbxproj:
35157
35158 2009-02-25  Chris Marrin  <cmarrin@apple.com>
35159
35160         Reviewed by Simon Fraser.
35161
35162         https://bugs.webkit.org/show_bug.cgi?id=23943
35163
35164         Added webkitConvertPointFromNodeToPage and webkitConvertPointFromPageToNode on
35165         the window object. Also added WebKitPoint object, which is passed in and out
35166         of these functions.
35167
35168         Test: fast/dom/Window/webkitConvertPoint.html
35169
35170         * DerivedSources.make:
35171         * WebCore.pro:
35172         * WebCore.vcproj/WebCore.vcproj:
35173         * WebCore.xcodeproj/project.pbxproj:
35174         * WebCoreSources.bkl:
35175         * bindings/js/JSDOMWindowBase.cpp:
35176         (jsDOMWindowBaseWebKitPoint):
35177         (setJSDOMWindowBaseWebKitPoint):
35178         * bindings/js/JSWebKitPointConstructor.cpp: Added.
35179         (WebCore::):
35180         (WebCore::JSWebKitPointConstructor::JSWebKitPointConstructor):
35181         (WebCore::constructWebKitPoint):
35182         (WebCore::JSWebKitPointConstructor::getConstructData):
35183         * bindings/js/JSWebKitPointConstructor.h: Added.
35184         (WebCore::JSWebKitPointConstructor::classInfo):
35185         * dom/Node.cpp:
35186         (WebCore::Node::convertToPage):
35187         (WebCore::Node::convertFromPage):
35188         * dom/Node.h:
35189         * page/DOMWindow.cpp:
35190         (WebCore::DOMWindow::webkitConvertPointFromNodeToPage):
35191         (WebCore::DOMWindow::webkitConvertPointFromPageToNode):
35192         * page/DOMWindow.h:
35193         * page/DOMWindow.idl:
35194         * page/WebKitPoint.h: Added.
35195         (WebCore::WebKitPoint::create):
35196         (WebCore::WebKitPoint::x):
35197         (WebCore::WebKitPoint::y):
35198         (WebCore::WebKitPoint::setX):
35199         (WebCore::WebKitPoint::setY):
35200         (WebCore::WebKitPoint::WebKitPoint):
35201         * page/WebKitPoint.idl: Added.
35202
35203 2009-02-25  Jian Li  <jianli@chromium.org>
35204
35205         Reviewed by Alexey Proskuryakov.
35206
35207         Remove "#if ENABLE(WORKERS)" wrap from CrossThreadCopier files.
35208         https://bugs.webkit.org/show_bug.cgi?id=24145
35209
35210         * platform/CrossThreadCopier.cpp:
35211         * platform/CrossThreadCopier.h:
35212
35213 2009-02-25  David Levin  <levin@chromium.org>
35214
35215         Reviewed by Alexey Proskuryakov.
35216
35217         Bug 23688: ThreadableLoader needs a sync implementation for Workers.
35218         <https://bugs.webkit.org/show_bug.cgi?id=23688>
35219
35220         No observable change in behavior, so no test.
35221
35222         * loader/ThreadableLoader.cpp:
35223         (WebCore::ThreadableLoader::loadResourceSynchronously):
35224         * loader/ThreadableLoaderClientWrapper.h:
35225         (WebCore::ThreadableLoaderClientWrapper::clearClient):
35226         (WebCore::ThreadableLoaderClientWrapper::done):
35227         (WebCore::ThreadableLoaderClientWrapper::didFinishLoading):
35228         (WebCore::ThreadableLoaderClientWrapper::didFail):
35229         (WebCore::ThreadableLoaderClientWrapper::didFailRedirectCheck):
35230         (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
35231         Expose whether the loader is done (based on what callbacks were done).
35232
35233         * loader/WorkerThreadableLoader.cpp:
35234         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
35235         (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
35236         Each loader is given its own mode so that only its callbacks get through the run loop.
35237
35238         The xhr spec says that the readystatechange events are synchronous, so in the case of a
35239         nested sync xhr no readystatechange events should be fired for the outer xhr.
35240
35241         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
35242
35243         * loader/WorkerThreadableLoader.h:
35244         (WebCore::WorkerThreadableLoader::create):
35245         (WebCore::WorkerThreadableLoader::done):
35246
35247         * workers/WorkerRunLoop.cpp:
35248         (WebCore::WorkerRunLoop::WorkerRunLoop):
35249         * workers/WorkerRunLoop.h:
35250         (WebCore::WorkerRunLoop::createUniqueId):
35251         Simple method to create a uniqueId on demand with respect to the run loop.
35252
35253         * workers/WorkerThread.h:
35254
35255 2009-02-25  David Levin  <levin@chromium.org>
35256
35257         Reviewed by Alexey Proskuryakov.
35258
35259         Bug 24089: ThreadableLoader::loadResourceSynchronously should do callbacks like the async code.
35260         <https://bugs.webkit.org/show_bug.cgi?id=24089>
35261
35262         Make threadable loader callbacks to happen during the sync load call.
35263
35264         Changes the behavior of sync xhr for insecure redirects in two ways:
35265         + Sends an error event instead of an abort event (which is the same as async xhr's behavior).
35266         + Throws a network exception which is what other browsers do and what the spec
35267         says to do (http://www.w3.org/TR/XMLHttpRequest/).
35268
35269         * loader/DocumentThreadableLoader.cpp:
35270         (WebCore::DocumentThreadableLoader::loadResourceSynchronously):
35271         * loader/DocumentThreadableLoader.h:
35272         * loader/ThreadableLoader.cpp:
35273         (WebCore::ThreadableLoader::loadResourceSynchronously):
35274         * loader/ThreadableLoader.h:
35275         * xml/XMLHttpRequest.cpp:
35276         (WebCore::XMLHttpRequest::XMLHttpRequest):
35277         (WebCore::XMLHttpRequest::loadRequestSynchronously):
35278         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
35279         (WebCore::XMLHttpRequest::didFail):
35280         (WebCore::XMLHttpRequest::didFailRedirectCheck):
35281         * xml/XMLHttpRequest.h:
35282
35283 2009-02-24  Chris Marrin  <cmarrin@apple.com>
35284
35285         Reviewed by David Hyatt.
35286
35287         https://bugs.webkit.org/show_bug.cgi?id=23368
35288
35289         Added logic to correctly hit test accelerated layers.
35290
35291         Tests: animations/animation-hit-test-transform.html
35292                animations/animation-hit-test.html
35293                transitions/transition-hit-test-transform.html
35294                transitions/transition-hit-test.html
35295
35296         * page/animation/KeyframeAnimation.cpp:
35297         (WebCore::KeyframeAnimation::animate):
35298         * rendering/RenderLayer.cpp:
35299         (WebCore::RenderLayer::hitTestLayer):
35300         (WebCore::RenderLayer::updateClipRects):
35301         * rendering/RenderLayerBacking.cpp:
35302         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
35303
35304 2009-02-25  Alexey Proskuryakov  <ap@webkit.org>
35305
35306         Reviewed by Darin Adler.
35307
35308         https://bugs.webkit.org/show_bug.cgi?id=24067
35309         REGRESSION: Crash in WebCore::Document::initSecurityContext
35310
35311         The crash started to happen when we removed a check for frame->document() being null.
35312         However, the original document shouldn't be null here, because it is needed to alias
35313         security origins. So, this patch fixes the crash by correcting security origin behavior.
35314
35315         Test: http/tests/security/aboutBlank/window-open-self-about-blank.html
35316         This tests for not crashing, and for inheriting the domain from the document being replaced.
35317         Preserving the aliasing cannot be tested for automatically, because we'd need a non-trivial
35318         domain to remove a prefix from.
35319
35320         * loader/FrameLoader.cpp: (WebCore::FrameLoader::begin): Create a new document before
35321         clearing the frame, so that Document::initSecurityContext() could access the old one.
35322
35323 2009-02-25  Jay Campan  <jcampan@google.com>
35324
35325         Reviewed by Darin Fisher.
35326
35327         https://bugs.webkit.org/show_bug.cgi?id=24066
35328
35329         Items in drop-downs were not painted correctly.  Makes sure the
35330         PopupListBox invalidates in the coordinates of the window as this is
35331         FramelessScrollView::invalidateRect paints to.
35332
35333         * platform/chromium/PopupMenuChromium.cpp:
35334         (WebCore::PopupListBox::invalidateRow):
35335
35336 2009-02-24  Simon Fraser  <simon.fraser@apple.com>
35337
35338         Reviewed by Anders Carlsson
35339
35340         https://bugs.webkit.org/show_bug.cgi?id=15081
35341         
35342         Make display:none work for applet, emebed and object elements
35343         by calling rendererIsNeeded() on superclasses.
35344
35345         Tests: fast/replaced/applet-display-none.html
35346                fast/replaced/embed-display-none.html
35347                fast/replaced/object-display-none.html
35348
35349         * html/HTMLAppletElement.cpp:
35350         (WebCore::HTMLAppletElement::rendererIsNeeded):
35351         * html/HTMLElement.cpp:
35352         (WebCore::HTMLElement::rendererIsNeeded):
35353         * html/HTMLEmbedElement.cpp:
35354         (WebCore::HTMLEmbedElement::rendererIsNeeded):
35355         * html/HTMLObjectElement.cpp:
35356         (WebCore::HTMLObjectElement::rendererIsNeeded):
35357
35358 2009-02-24  Simon Fraser  <simon.fraser@apple.com>
35359
35360         Reviewed by Dave Hyatt
35361
35362         https://bugs.webkit.org/show_bug.cgi?id=24137
35363         
35364         Fix localToAbsolute() and absoluteToLocal() to map points through 3d transforms,
35365         taking perspective and transform-style: preserve-3d into account.
35366         
35367         In order to support transform-style: preserve-3d, which keeps elements in a
35368         3d space, we have to carry along an accumulated matrix in TransformState.
35369         We also need to apply the perspective from the parent, if any, with the
35370         appropriate origin.
35371
35372         * GNUmakefile.am:
35373         * WebCore.base.exp:
35374         * WebCore.pro:
35375         * WebCore.scons:
35376         * WebCore.vcproj/WebCore.vcproj:
35377         * WebCore.xcodeproj/project.pbxproj:
35378         * WebCoreSources.bkl:
35379         * css/CSSComputedStyleDeclaration.cpp:
35380         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
35381         * platform/graphics/transforms/TransformationMatrix.cpp:
35382         (WebCore::TransformationMatrix::translate):
35383         (WebCore::TransformationMatrix::translate3d):
35384         (WebCore::TransformationMatrix::translateRight3d):
35385         * platform/graphics/transforms/TransformationMatrix.h:
35386         * rendering/RenderBox.cpp:
35387         (WebCore::RenderBox::mapLocalToAbsolutePoint):
35388         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
35389         * rendering/RenderBox.h:
35390         * rendering/RenderLayer.cpp:
35391         (WebCore::RenderLayer::updateTransform):
35392         (WebCore::RenderLayer::perspectiveTransform):
35393         (WebCore::RenderLayer::perspectiveOrigin):
35394         * rendering/RenderLayer.h:
35395         * rendering/RenderLayerBacking.cpp:
35396         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
35397         * rendering/RenderLayerCompositor.cpp:
35398         (WebCore::requiresCompositingLayerForTransform):
35399         (WebCore::RenderLayerCompositor::layerHas3DContent):
35400         * rendering/RenderObject.cpp:
35401         (WebCore::RenderObject::localToAbsolute):
35402         (WebCore::RenderObject::absoluteToLocal):
35403         (WebCore::RenderObject::mapLocalToAbsolutePoint):
35404         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
35405         * rendering/RenderObject.h:
35406         * rendering/RenderTableCell.cpp:
35407         (WebCore::RenderTableCell::mapLocalToAbsolutePoint):
35408         (WebCore::RenderTableCell::mapAbsoluteToLocalPoint):
35409         * rendering/RenderTableCell.h:
35410         * rendering/RenderView.cpp:
35411         (WebCore::RenderView::mapLocalToAbsolutePoint):
35412         (WebCore::RenderView::mapAbsoluteToLocalPoint):
35413         * rendering/RenderView.h:
35414         * rendering/TransformState.cpp: Added.
35415         (WebCore::TransformState::move):
35416         (WebCore::TransformState::applyTransform):
35417         (WebCore::TransformState::flatten):
35418         * rendering/TransformState.h: Added.
35419         (WebCore::TransformState::):
35420         (WebCore::TransformState::TransformState):
35421         (WebCore::TransformState::move):
35422         * rendering/style/RenderStyle.h:
35423         (WebCore::InheritedFlags::hasPerspective):
35424
35425 2009-02-24  Sam Weinig  <sam@webkit.org>
35426
35427         Reviewed by David Hyatt.
35428
35429         Fix for https://bugs.webkit.org/show_bug.cgi?id=23990
35430         Regression (r40837): JavaScript image popup doesn't work
35431
35432         Make the getClientRects and getBoundingClientRect methods return rects
35433         relative to the viewport.
35434
35435         Test: fast/dom/getBoundingClientRect-getClientRects-relative-to-viewport.html
35436
35437         * dom/Element.cpp:
35438         (WebCore::Element::getClientRects):
35439         (WebCore::Element::getBoundingClientRect):
35440
35441 2009-02-24  Ojan Vafai  <ojan@chromium.org>
35442
35443         Reviewed by Eric Seidel.
35444
35445         SVG pages don't have a body or an html element! 
35446         Don't return early if there is no body.
35447
35448         * editing/VisiblePosition.cpp:
35449         (WebCore::VisiblePosition::canonicalPosition):
35450
35451 2009-02-23  David Hyatt  <hyatt@apple.com>
35452
35453         Reviewed by Eric Seidel
35454
35455         https://bugs.webkit.org/show_bug.cgi?id=23740, painting order wrong for normal flow elements with overflow: hidden
35456         
35457         This patch reworks the painting of overflow.  There is now the concept of a "self-painting layer."  All
35458         layers are considered to be self-painting except for overflow layers that are normal flow (and that don't have
35459         reflections or masks).
35460         
35461         If an overflow layer is not self-painting, then it ends up painted by its parent just like any other normal flow object.
35462         The only difference is that the clip has to be pushed and popped when painting the object's children.
35463         
35464         The lightweight clipping scheme used for controls has been extended to cover overflow now in this simplified case.  With
35465         the code consolidated into reusable push/pop functions, all of the renderers that use overflow have been patched to
35466         use the new functions.
35467         
35468         Hit testing has also been patched to check the overflow clip rect first before recurring into children.
35469         
35470         Scrollbar paint has been moved into RenderBlock for now, since none of the table objects support scrollbars
35471         yet, and scrollbar hit testing was already there anyway.  Now the two code paths are more symmetrical.
35472         
35473         Masks are now treated like normal flow layers (just like reflections).
35474
35475         A couple of test cases have been added to fast/overflow to test the stacking order. 
35476
35477         * rendering/InlineFlowBox.cpp:
35478         (WebCore::InlineFlowBox::nodeAtPoint):
35479         (WebCore::InlineFlowBox::paint):
35480         * rendering/RenderBlock.cpp:
35481         (WebCore::RenderBlock::repaintOverhangingFloats):
35482         (WebCore::RenderBlock::paint):
35483         (WebCore::RenderBlock::paintChildren):
35484         (WebCore::RenderBlock::paintObject):
35485         (WebCore::RenderBlock::paintFloats):
35486         (WebCore::RenderBlock::insertFloatingObject):
35487         (WebCore::RenderBlock::floatRect):
35488         (WebCore::RenderBlock::lowestPosition):
35489         (WebCore::RenderBlock::rightmostPosition):
35490         (WebCore::RenderBlock::leftmostPosition):
35491         (WebCore::RenderBlock::addOverhangingFloats):
35492         (WebCore::RenderBlock::nodeAtPoint):
35493         (WebCore::RenderBlock::hitTestContents):
35494         * rendering/RenderBox.cpp:
35495         (WebCore::RenderBox::nodeAtPoint):
35496         (WebCore::RenderBox::pushContentsClip):
35497         (WebCore::RenderBox::popContentsClip):
35498         * rendering/RenderBox.h:
35499         (WebCore::RenderBox::paintObject):
35500         * rendering/RenderBoxModelObject.cpp:
35501         (WebCore::RenderBoxModelObject::hasSelfPaintingLayer):
35502         * rendering/RenderBoxModelObject.h:
35503         * rendering/RenderLayer.cpp:
35504         (WebCore::RenderLayer::paintLayer):
35505         (WebCore::RenderLayer::hitTestLayer):
35506         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
35507         (WebCore::RenderLayer::isSelfPaintingLayer):
35508         * rendering/RenderLayer.h:
35509         * rendering/RenderTable.cpp:
35510         (WebCore::RenderTable::paint):
35511         (WebCore::RenderTable::paintObject):
35512         (WebCore::RenderTable::nodeAtPoint):
35513         * rendering/RenderTable.h:
35514         * rendering/RenderTableCell.cpp:
35515         (WebCore::RenderTableCell::paint):
35516         * rendering/RenderTableRow.cpp:
35517         (WebCore::RenderTableRow::nodeAtPoint):
35518         (WebCore::RenderTableRow::paint):
35519         * rendering/RenderTableRow.h:
35520         * rendering/RenderTableSection.cpp:
35521         (WebCore::RenderTableSection::paint):
35522         (WebCore::RenderTableSection::paintObject):
35523         (WebCore::RenderTableSection::nodeAtPoint):
35524         * rendering/RenderTableSection.h:
35525         * rendering/RenderTreeAsText.cpp:
35526         (WebCore::write):
35527         (WebCore::writeLayers):
35528
35529 2009-02-24  David Levin  <levin@chromium.org>
35530
35531         Reviewed by NOBODY (build fix).
35532
35533         Attempted build fix for wx-mac.
35534
35535         * WebCoreSources.bkl:
35536
35537 2009-02-24  David Levin  <levin@chromium.org>
35538
35539         Reviewed by NOBODY (build fix).
35540
35541         Attempted build fixes for qt-linux and wx-mac.
35542
35543         * WebCore.pro:
35544         * webcore-base.bkl:
35545
35546 2009-02-24  Ojan Vafai  <ojan@dhcp-172-31-134-214.sfo.corp.google.com>
35547
35548         Reviewed by Sam Weinig.
35549
35550         Fix null pointer error. If the node is the Document, then ownerDocument() 
35551         returns null, document() does not.
35552
35553         * editing/VisiblePosition.cpp:
35554         (WebCore::VisiblePosition::canonicalPosition):
35555
35556 2009-02-24  Jian Li  <jianli@chromium.org>
35557
35558         Reviewed by NOBODY (attempted build fixes).
35559
35560         Fix build break for Windows and Linux.
35561
35562         * GNUmakefile.am:
35563         * WebCore.vcproj/WebCore.vcproj:
35564
35565 2009-02-24  Dimitri Glazkov  <dglazkov@chromium.org>
35566
35567         Reviewed by Eric Seidel.
35568
35569         https://bugs.webkit.org/show_bug.cgi?id=24131
35570         Fix-up COM/RefCounted dichotomy in Chromium port.
35571
35572         * page/chromium/AccessibilityObjectWrapper.h:
35573         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper): Added
35574         explicit setting of recount.
35575
35576 2009-02-24  Dimitri Glazkov  <dglazkov@chromium.org>
35577
35578         Reviewed by Eric Seidel.
35579
35580         https://bugs.webkit.org/show_bug.cgi?id=24141
35581         Add clarity to V8 interceptor helper function.
35582
35583         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
35584         (WebCore::NAMED_PROPERTY_GETTER): Renamed to notHandledByInterceptor.
35585         (WebCore::NAMED_PROPERTY_SETTER): Ditto.
35586         (WebCore::INDEXED_PROPERTY_GETTER): Ditto.
35587         (WebCore::INDEXED_PROPERTY_SETTER): Ditto.
35588
35589 2009-02-24  Simon Fraser  <simon.fraser@apple.com>
35590
35591         Reviewed by Eric Seidel
35592
35593         Minor numeric cleanup: convert float literals to doubles.
35594         
35595         * platform/graphics/transforms/RotateTransformOperation.cpp:
35596         (WebCore::RotateTransformOperation::blend):
35597
35598 2009-02-24  Mark Mentovai  <mark@chromium.org>
35599
35600         Reviewed by Eric Seidel.
35601
35602         https://bugs.webkit.org/show_bug.cgi?id=24139
35603         Add missing include.
35604
35605         * bindings/v8/ScriptInstance.h:
35606
35607 2009-02-24  Jian Li  <jianli@chromium.org>
35608
35609         Reviewed by Alexey Proskuryakov.
35610
35611         Move worker related files from dom directory to worker directory under WebCore.
35612         https://bugs.webkit.org/show_bug.cgi?id=24123
35613
35614         * DerivedSources.make:
35615         * GNUmakefile.am:
35616         * WebCore.pro:
35617         * WebCore.scons:
35618         * WebCore.vcproj/MigrateIDLAndScripts:
35619         * WebCore.vcproj/WebCore.vcproj:
35620         * WebCore.xcodeproj/project.pbxproj:
35621         * platform/CrossThreadCopier.cpp: Renamed from WebCore/dom/CrossThreadCopier.cpp.
35622         * platform/CrossThreadCopier.h: Renamed from WebCore/dom/CrossThreadCopier.h.
35623         * workers/GenericWorkerTask.h: Renamed from WebCore/dom/GenericWorkerTask.h.
35624         * workers/Worker.cpp: Renamed from WebCore/dom/Worker.cpp.
35625         * workers/Worker.h: Renamed from WebCore/dom/Worker.h.
35626         * workers/Worker.idl: Renamed from WebCore/dom/Worker.idl.
35627         * workers/WorkerContext.cpp: Renamed from WebCore/dom/WorkerContext.cpp.
35628         * workers/WorkerContext.h: Renamed from WebCore/dom/WorkerContext.h.
35629         * workers/WorkerContext.idl: Renamed from WebCore/dom/WorkerContext.idl.
35630         * workers/WorkerContextProxy.h: Renamed from WebCore/dom/WorkerContextProxy.h.
35631         * workers/WorkerLocation.cpp: Renamed from WebCore/dom/WorkerLocation.cpp.
35632         * workers/WorkerLocation.h: Renamed from WebCore/dom/WorkerLocation.h.
35633         * workers/WorkerLocation.idl: Renamed from WebCore/dom/WorkerLocation.idl.
35634         * workers/WorkerMessagingProxy.cpp: Renamed from WebCore/dom/WorkerMessagingProxy.cpp.
35635         * workers/WorkerMessagingProxy.h: Renamed from WebCore/dom/WorkerMessagingProxy.h.
35636         * workers/WorkerObjectProxy.h: Renamed from WebCore/dom/WorkerObjectProxy.h.
35637         * workers/WorkerRunLoop.cpp: Renamed from WebCore/dom/WorkerRunLoop.cpp.
35638         * workers/WorkerRunLoop.h: Renamed from WebCore/dom/WorkerRunLoop.h.
35639         * workers/WorkerThread.cpp: Renamed from WebCore/dom/WorkerThread.cpp.
35640         * workers/WorkerThread.h: Renamed from WebCore/dom/WorkerThread.h.
35641
35642 2009-02-05  Ojan Vafai  <ojan@chromium.org> and Eric Seidel <eric@webkit.org>
35643
35644         Reviewed by Dave Hyatt.
35645
35646         Make cursor positions match IE6/IE7/FF3 when clicking in margins/padding
35647         around divs inside editable regions.
35648         https://bugs.webkit.org/show_bug.cgi?id=23605
35649
35650         Fix clicks outside editable regions from focusing the editable region.
35651         https://bugs.webkit.org/show_bug.cgi?id=23607
35652
35653         Removed editing/selection/contenteditable-click-outside.html as it's
35654         not as useful as our new tests.
35655
35656         Clean up RenderBlock::positionForCoordinates to remove dead code,
35657         duplicate code, and generally make it more readable.
35658
35659         Tests: editing/selection/click-in-margins-inside-editable-div.html
35660                editing/selection/click-in-padding-with-multiple-line-boxes.html
35661                editing/selection/click-outside-editable-div.html
35662
35663         * editing/VisiblePosition.cpp:
35664         (WebCore::VisiblePosition::canonicalPosition):
35665         * rendering/RenderBlock.cpp:
35666         (WebCore::positionForPointRespectingEditingBoundaries):
35667         (WebCore::positionForPointWithInlineChildren):
35668         (WebCore::RenderBlock::positionForCoordinates):
35669         (WebCore::RenderBlock::updateFirstLetter):
35670
35671 2009-02-24  Sam Weinig  <sam@webkit.org>
35672
35673         Reviewed by Geoffrey Garen.
35674
35675         Related to <rdar://problem/6590295>
35676         Allow disabling javascript: urls.
35677
35678         * WebCore.base.exp:
35679         * html/HTMLAnchorElement.cpp:
35680         (WebCore::HTMLAnchorElement::parseMappedAttribute):
35681         * loader/FrameLoader.cpp:
35682         (WebCore::FrameLoader::executeIfJavaScriptURL):
35683         * page/Page.cpp:
35684         (WebCore::Page::Page):
35685         (WebCore::Page::setJavaScriptURLsAreAllowed):
35686         (WebCore::Page::javaScriptURLsAreAllowed):
35687         * page/Page.h:
35688
35689 2009-02-24  Simon Fraser  <simon.fraser@apple.com>
35690
35691         Fix build when ACCELERATED_COMPOSITING is turned on
35692         (overflowList() -> normalFlowList()).
35693     
35694         * rendering/RenderLayerBacking.cpp:
35695         (WebCore::RenderLayerBacking::hasNonCompositingContent):
35696         (WebCore::RenderLayerBacking::paintIntoLayer):
35697         * rendering/RenderLayerCompositor.cpp:
35698         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
35699         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
35700         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
35701         (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect):
35702         (WebCore::RenderLayerCompositor::layerHas3DContent):
35703
35704 2009-02-24  Simon Fraser  <simon.fraser@apple.com>
35705
35706         Reviewed by Darin Adler
35707         
35708         https://bugs.webkit.org/show_bug.cgi?id=24135
35709         
35710         Round the FloatPoint returned by absoluteToLocal(), rather than
35711         truncating it.
35712
35713         * dom/MouseRelatedEvent.cpp:
35714         (WebCore::MouseRelatedEvent::receivedTarget):
35715
35716 2009-02-24  Beth Dakin  <bdakin@apple.com>
35717
35718         Reviewed by Sam Weinig.
35719
35720         Fix for https://bugs.webkit.org/show_bug.cgi?id=24004 REGRESSION: 
35721         Ordered list item marker misaligned when line height is not 1.2 
35722         -and corresponding <rdar://problem/6602506>
35723
35724         This is a regression from http://trac.webkit.org/changeset/40880 
35725         where createInlineBox was taken off of RenderObject and moved to 
35726         RenderBox. The problem was that the RenderBox version still needs 
35727         to be virtual because there is still an existing implementation in 
35728         RenderListMarker. 
35729
35730         * rendering/RenderBox.h:
35731         * rendering/RenderListMarker.cpp:
35732         (WebCore::RenderListMarker::createInlineBox):
35733         * rendering/RenderListMarker.h:
35734
35735 2009-02-24  Dimitri Glazkov  <dglazkov@chromium.org>
35736
35737         Reviewed by Eric Seidel.
35738
35739         https://bugs.webkit.org/show_bug.cgi?id=24128
35740         Upstream more V8 custom bindings: constructors, XSLTProcessor.
35741
35742         * bindings/v8/custom/V8DOMParserConstructor.cpp: Added.
35743         (WebCore::CALLBACK_FUNC_DECL):
35744         * bindings/v8/custom/V8MessageChannelConstructor.cpp: Added.
35745         (WebCore::CALLBACK_FUNC_DECL):
35746         * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: Added.
35747         (WebCore::CALLBACK_FUNC_DECL):
35748         * bindings/v8/custom/V8XMLSerializerConstructor.cpp: Added.
35749         (WebCore::CALLBACK_FUNC_DECL):
35750         * bindings/v8/custom/V8XPathEvaluatorConstructor.cpp: Added.
35751         (WebCore::CALLBACK_FUNC_DECL):
35752         * bindings/v8/custom/V8XSLTProcessorCustom.cpp: Added.
35753         (WebCore::CALLBACK_FUNC_DECL):
35754
35755 2009-02-24  David Levin  <levin@chromium.org>
35756
35757         Reviewed by Alexey Proskuryakov.
35758
35759         Bug 24090: WorkerThreadableLoader needs to be able to post tasks for a mode.
35760         <https://bugs.webkit.org/show_bug.cgi?id=24090>
35761
35762         No observable change in behavior, so no test.
35763
35764         * dom/WorkerMessagingProxy.cpp:
35765         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
35766         (WebCore::WorkerMessagingProxy::postTaskToWorkerContext):
35767         Fixed the bug that m_unconfirmedMessageCount was getting incremented for non-message tasks.
35768
35769         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerContext):
35770
35771         * dom/WorkerMessagingProxy.h:
35772         * loader/ThreadableLoader.cpp:
35773         (WebCore::ThreadableLoader::create):
35774         * loader/WorkerThreadableLoader.cpp:
35775         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
35776         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
35777         (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
35778         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
35779         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
35780         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
35781         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
35782         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
35783         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation):
35784         Changed these methods to post task using a mode.
35785
35786         * loader/WorkerThreadableLoader.h:
35787         (WebCore::WorkerThreadableLoader::create):
35788
35789 2009-02-24  Alexey Proskuryakov  <ap@webkit.org>
35790
35791         Reviewed by Darin Adler.
35792
35793         https://bugs.webkit.org/show_bug.cgi?id=24091
35794         <rdar://problem/6468660> Start of redirect chain ends up as master entry in Application Cache
35795
35796         Test: http/tests/appcache/access-via-redirect.php
35797
35798         * loader/appcache/ApplicationCacheGroup.cpp:
35799         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): Use the URL we ended up with,
35800         not the original one.
35801
35802 2009-02-24  Jian Li  <jianli@chromium.org>
35803
35804         Reviewed by Alexey Proskuryakov.
35805
35806         Change to include WorkerObjectProxy.h instead of WorkerMessagingProxy.h in WorkerContext.cpp and WorkerScriptController.cpp.
35807         https://bugs.webkit.org/show_bug.cgi?id=24112
35808
35809         * bindings/js/WorkerScriptController.cpp:
35810         * dom/WorkerContext.cpp:
35811
35812 2009-02-23  Antti Koivisto  <antti@apple.com>
35813
35814         Reviewed by Oliver Hunt.
35815
35816         <rdar://problem/6613796> Extended text codecs registered on webview creation
35817
35818         Comparing a text encoding with string "GBK" ended up constructing
35819         TextEncoding("GBK") which in turn initialized all extended
35820         text codecs.
35821
35822         * platform/text/TextCodecICU.cpp:
35823         (WebCore::TextCodecICU::decode):
35824
35825 2009-02-23  Sam Weinig  <sam@webkit.org>
35826
35827         Fix Qt build.
35828
35829         * bridge/qt/qt_runtime.cpp:
35830         (JSC::Bindings::valueRealType):
35831
35832 2009-02-23  Julien Chaffraix  <jchaffraix@webkit.org>
35833
35834         Reviewed by Darin Adler.
35835
35836         Bug 23956: Safari crashes when cloneNode fails (cloning a XML element with an invalid nodeName)
35837
35838         The crash occurred because Document::cloneNode would call Document::createElementNS. Unfortunately
35839         element created with createElement could have a wrong nodeName (createElement sets the string as the
35840         localName without checking for a prefix).
35841
35842         The fix is to call Document::createElement(const QualifiedName&, bool) that will not do any checks on the QualifiedName
35843         and will always succeed.
35844         Also rolled-out the HTMLElement specialisation of clonedNode as it was equivalent to what is done now (added an ASSERT
35845         to ensure that).
35846
35847         Test: fast/dom/cloneNode.html
35848
35849         * dom/Element.cpp:
35850         (WebCore::Element::cloneNode): Call createElement(const QualifiedName&, bool) instead of createElementNS as it will
35851         always return an element.
35852
35853         * html/HTMLElement.cpp:
35854         * html/HTMLElement.h: Removed HTMLElement::clonedNode as it is equivalent to what is now done.
35855
35856 2009-02-23  Dimitri Glazkov  <dglazkov@chromium.org>
35857
35858         Reviewed by Eric Seidel.
35859
35860         https://bugs.webkit.org/show_bug.cgi?id=24109
35861         Upstream V8 Script abstractions, all except ScriptController.
35862
35863         * bindings/v8/ScriptCachedFrameData.h: Added.
35864         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
35865         (WebCore::ScriptCachedFrameData::~ScriptCachedFrameData):
35866         (WebCore::ScriptCachedFrameData::restore):
35867         (WebCore::ScriptCachedFrameData::clear):
35868         (WebCore::ScriptCachedFrameData::domWindow):
35869         * bindings/v8/ScriptCallFrame.cpp: Added.
35870         (WebCore::ScriptCallFrame::ScriptCallFrame):
35871         (WebCore::ScriptCallFrame::~ScriptCallFrame):
35872         (WebCore::ScriptCallFrame::argumentAt):
35873         * bindings/v8/ScriptCallFrame.h: Added.
35874         (WebCore::ScriptCallFrame::functionName):
35875         (WebCore::ScriptCallFrame::sourceURL):
35876         (WebCore::ScriptCallFrame::lineNumber):
35877         (WebCore::ScriptCallFrame::argumentCount):
35878         * bindings/v8/ScriptCallStack.cpp: Added.
35879         (WebCore::ScriptCallStack::ScriptCallStack):
35880         (WebCore::ScriptCallStack::~ScriptCallStack):
35881         (WebCore::ScriptCallStack::at):
35882         * bindings/v8/ScriptCallStack.h: Added.
35883         (WebCore::ScriptCallStack::size):
35884         * bindings/v8/ScriptInstance.cpp: Added.
35885         (WebCore::V8ScriptInstance::V8ScriptInstance):
35886         (WebCore::V8ScriptInstance::~V8ScriptInstance):
35887         (WebCore::V8ScriptInstance::instance):
35888         (WebCore::V8ScriptInstance::clear):
35889         (WebCore::V8ScriptInstance::set):
35890         * bindings/v8/ScriptInstance.h: Added.
35891         (WebCore::V8ScriptInstance::create):
35892         * bindings/v8/ScriptSourceCode.h: Added.
35893         (WebCore::ScriptSourceCode::ScriptSourceCode):
35894         (WebCore::ScriptSourceCode::isEmpty):
35895         (WebCore::ScriptSourceCode::source):
35896         (WebCore::ScriptSourceCode::url):
35897         (WebCore::ScriptSourceCode::startLine):
35898         * bindings/v8/ScriptState.h: Added.
35899         (WebCore::ScriptState::hadException):
35900         (WebCore::ScriptState::setException):
35901         (WebCore::ScriptState::exception):
35902         * bindings/v8/ScriptString.h: Added.
35903         (WebCore::ScriptString::ScriptString):
35904         (WebCore::ScriptString::operator String):
35905         (WebCore::ScriptString::isNull):
35906         (WebCore::ScriptString::size):
35907         (WebCore::ScriptString::operator=):
35908         (WebCore::ScriptString::operator+=):
35909         * bindings/v8/ScriptValue.cpp: Added.
35910         (WebCore::ScriptValue::getString):
35911         * bindings/v8/ScriptValue.h: Added.
35912         (WebCore::ScriptValue::ScriptValue):
35913         (WebCore::ScriptValue::operator=):
35914         (WebCore::ScriptValue::operator==):
35915         (WebCore::ScriptValue::operator!=):
35916         (WebCore::ScriptValue::isNull):
35917         (WebCore::ScriptValue::isUndefined):
35918         (WebCore::ScriptValue::clear):
35919         (WebCore::ScriptValue::~ScriptValue):
35920         (WebCore::ScriptValue::v8Value):
35921
35922 2009-02-23  Adam Treat  <adam.treat@torchmobile.com>
35923
35924         Reviewed by Timothy Hatcher.
35925
35926         https://bugs.webkit.org/show_bug.cgi?id=24106
35927         The Qt port is crashing on exit because the tear down procedure involves
35928         the WebCore::InspectorController trying to access the JS execution context
35929         for a page that is being deleted.  This patch amends the inspector so
35930         that it does not try and access the execution context of the WebCore::Page
35931         in the midst of deletion.
35932
35933         * inspector/InspectorController.cpp:
35934         (WebCore::InspectorController::inspectedPageDestroyed):
35935         (WebCore::InspectorController::stopUserInitiatedProfiling):
35936
35937 2009-02-23  David Levin  <levin@chromium.org>
35938
35939         Reviewed by Alexey Proskuryakov.
35940
35941         Bug 24088: ThreadableLoaderClient::didFailWillSendRequestCheck isn't wired up completely for workers and could use a better name.
35942         <https://bugs.webkit.org/show_bug.cgi?id=24088>
35943
35944         No observable change in behavior, so no test.
35945
35946         * loader/DocumentThreadableLoader.cpp:
35947         (WebCore::DocumentThreadableLoader::create):
35948         * loader/ThreadableLoaderClient.h:
35949         (WebCore::ThreadableLoaderClient::didFailRedirectCheck):
35950         * loader/ThreadableLoaderClientWrapper.h:
35951         (WebCore::ThreadableLoaderClientWrapper::didFailRedirectCheck):
35952         * loader/WorkerThreadableLoader.cpp:
35953         (WebCore::workerContextDidFailRedirectCheck):
35954         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
35955         * loader/WorkerThreadableLoader.h:
35956         * xml/XMLHttpRequest.cpp:
35957         (WebCore::XMLHttpRequest::didFinishLoading):
35958         * xml/XMLHttpRequest.h:
35959
35960 2009-02-23  David Levin  <levin@chromium.org>
35961
35962         Reviewed by Alexey Proskuryakov.
35963
35964         Bug 24047: Need to simplify nested if's in WorkerRunLoop::runInMode
35965         <https://bugs.webkit.org/show_bug.cgi?id=24047>
35966
35967         Made a nested if inside of WorkerRunLoop::runInMode a lot simpler by
35968         using only MessageQueue::waitForMessageFilteredWithTimeout instead
35969         of three different MessageQueue methods.
35970
35971         No observable change in behavior, so no test.
35972
35973         * dom/WorkerRunLoop.cpp:
35974         (WebCore::ModePredicate::operator()):
35975         Minor clean-up to able to pass a const ref point for ModePredicate into runInMode.
35976         (WebCore::WorkerRunLoop::runInMode):
35977         * dom/WorkerRunLoop.h:
35978
35979 2009-02-23  David Hyatt  <hyatt@apple.com>
35980
35981         In preparation for making layers for multicol objects (so that they can properly split child layers
35982         into multiple columns), rename all of the "overflowOnly" and "overflowList" members and functions
35983         of RenderLayer to use the term "normal flow" instead.
35984
35985         Reviewed by Cameron Zwarich
35986
35987         * rendering/RenderLayer.cpp:
35988         (WebCore::RenderLayer::RenderLayer):
35989         (WebCore::RenderLayer::~RenderLayer):
35990         (WebCore::RenderLayer::setHasVisibleContent):
35991         (WebCore::RenderLayer::enclosingCompositingLayer):
35992         (WebCore::RenderLayer::addChild):
35993         (WebCore::RenderLayer::removeChild):
35994         (WebCore::RenderLayer::paintLayer):
35995         (WebCore::RenderLayer::hitTestLayer):
35996         (WebCore::RenderLayer::dirtyNormalFlowList):
35997         (WebCore::RenderLayer::updateNormalFlowList):
35998         (WebCore::RenderLayer::collectLayers):
35999         (WebCore::RenderLayer::updateLayerListsIfNeeded):
36000         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
36001         (WebCore::RenderLayer::styleChanged):
36002         * rendering/RenderLayer.h:
36003         (WebCore::RenderLayer::isNormalFlowOnly):
36004         (WebCore::RenderLayer::normalFlowList):
36005         * rendering/RenderTreeAsText.cpp:
36006         (WebCore::writeLayers):
36007
36008 2009-02-23  David Hyatt  <hyatt@apple.com>
36009
36010         Fix the stacking order for column rules in multi-column layout.  Column rules should paint as part of the background of an element, just
36011         after all other components of the background have been painted.  This allows negative z-index children to still paint on top of the
36012         column rules (rather than ending up above the background of the box but behind the column rules).
36013
36014         Reviewed by Eric Seidel
36015
36016         Added fast/multicol/column-rules-stacking.html
36017
36018         * rendering/RenderBlock.cpp:
36019         (WebCore::RenderBlock::paintColumnRules):
36020         (WebCore::RenderBlock::paintColumnContents):
36021         (WebCore::RenderBlock::paintObject):
36022         * rendering/RenderBlock.h:
36023
36024 2009-02-23  Adam Treat  <adam.treat@torchmobile.com>
36025
36026         Reviewed by David Hyatt.
36027
36028         No testcases have been added or modified since this patch should not result in
36029         a behavior change for ports that have layout tests enabled.
36030
36031         Currently, the implementation of GraphicsContext::drawLineForText amongst
36032         the various ports differ in that some of them are honoring the context's
36033         strokeStyle when drawing a text-decoration and some of them are not.
36034         For instance, Apple's Mac port *does not* honor the context's strokeStyle(),
36035         but the Cairo implementation does and has an explicit workaround that
36036         sets the strokeStyle() temporarily.
36037
36038         This patch fixes so that all ports are consistent by explicitly making sure
36039         to set the GraphicsContext strokeStyle to SolidStroke whenever
36040         painting the text-decoration of an InlineFlowBox or InlineTextBox as these
36041         should always use a solid stroke.
36042
36043         This patch addresses these bugs:
36044         https://bugs.webkit.org/show_bug.cgi?id=19364
36045         https://bugs.webkit.org/show_bug.cgi?id=15659
36046
36047         * rendering/InlineFlowBox.cpp:
36048         (WebCore::InlineFlowBox::paintTextDecorations):
36049         * rendering/InlineTextBox.cpp:
36050         (WebCore::InlineTextBox::paintDecoration):
36051
36052 2009-02-23  Scott Violet  <sky@google.com>
36053
36054         Reviewed by Eric Seidel.
36055
36056         https://bugs.webkit.org/show_bug.cgi?id=24098
36057         Bugs in ClipboardChromium
36058
36059         Fixes the following bugs in ClipboardChromium:
36060         * It's possible for the extension to be empty, resulting in a bad file
36061           name, for example, 'foo.' or just '.'.
36062         * We weren't restricting the size of the file to MAX_PATH.
36063         * We weren't removing characters that are invalid for file system names.
36064
36065         * platform/chromium/ClipboardChromium.cpp:
36066         (WebCore::writeImageToDataObject):
36067         * platform/chromium/ClipboardChromium.h:
36068         * platform/chromium/ClipboardChromiumLinux.cpp: Added.
36069         (WebCore::ClipboardChromium::validateFileName):
36070         * platform/chromium/ClipboardChromiumMac.cpp: Added.
36071         (WebCore::ClipboardChromium::validateFileName):
36072         * platform/chromium/ClipboardChromiumWin.cpp: Added.
36073         (WebCore::isInvalidFileCharacter):
36074         (WebCore::ClipboardChromium::validateFileName):
36075
36076 2009-02-23  Thiago Macieira  <thiago.macieira@nokia.com>
36077
36078         Reviewed by Simon Hausmann.
36079
36080         Fix the Copyright notices in a few files
36081
36082         * platform/qt/RenderThemeQt.h:
36083
36084 2009-02-23  Xan Lopez  <xan@gnome.org>
36085
36086         Reviewed by Alexey Proskuryakov.
36087
36088         https://bugs.webkit.org/show_bug.cgi?id=22624
36089         [SOUP][GTK] Need API to get SoupSession from WebKit.
36090
36091         Allow to retrieve the Soup session and modify the code to take
36092         into account users changing features on it.
36093
36094         * platform/network/ResourceHandle.h:
36095         * platform/network/soup/CookieJarSoup.cpp:
36096         (WebCore::defaultCookieJar):
36097         (WebCore::setDefaultCookieJar):
36098         * platform/network/soup/CookieJarSoup.h:
36099         * platform/network/soup/ResourceHandleSoup.cpp:
36100         (WebCore::createSoupSession):
36101         (WebCore::ensureSessionIsInitialized):
36102         (WebCore::ResourceHandle::startHttp):
36103         (WebCore::ResourceHandle::cancel):
36104         (WebCore::ResourceHandle::defaultSession):
36105
36106 2009-02-23  Xan Lopez  <xan@gnome.org>
36107
36108         Reviewed by Alexey Proskuryakov.
36109
36110         https://bugs.webkit.org/show_bug.cgi?id=22624
36111         [SOUP][GTK] Need API to get SoupSession from WebKit.
36112
36113         Remove CURL support.
36114
36115         * GNUmakefile.am:
36116
36117 2009-02-23  Alexey Proskuryakov  <ap@webkit.org>
36118
36119         Reviewed by Mark Rowe.
36120
36121         Test: fast/dom/empty-hash-and-search.html
36122
36123         https://bugs.webkit.org/show_bug.cgi?id=21147
36124         hash property returns incorrect value for links w/o hash
36125
36126         Make hash() and search() behavior for empty and missing parts match IE and Firefox.
36127
36128         * platform/KURL.cpp:
36129         (WebCore::KURL::query): Changed to return query without '?', as it is already done for ref().
36130         (WebCore::KURL::prettyURL): Append the query with the question mark.
36131
36132         * page/Location.cpp:
36133         (WebCore::Location::search): Return an empty string if query is empty or missing.
36134         (WebCore::Location::hash): Return an empty string for empty hashes, not only missing ones.
36135
36136         * dom/WorkerLocation.cpp:
36137         (WebCore::WorkerLocation::search):
36138         (WebCore::WorkerLocation::hash):
36139         Match document.location fixes above.
36140
36141         * html/HTMLAnchorElement.cpp:
36142         (WebCore::HTMLAnchorElement::hash):
36143         (WebCore::HTMLAnchorElement::search):
36144         Return an empty string for empty and missing parts.
36145
36146 2009-02-23  Alexey Proskuryakov  <ap@webkit.org>
36147
36148         Reviewed by Darin Adler.
36149
36150         https://bugs.webkit.org/show_bug.cgi?id=20184
36151         SELECT with no name generates invalid query string
36152
36153         Test: fast/forms/select-no-name.html
36154
36155         * html/HTMLSelectElement.cpp:
36156         (WebCore::HTMLSelectElement::appendFormData): Added a check for empty name.
36157
36158 2009-02-23  Alexey Proskuryakov  <ap@webkit.org>
36159
36160         Apply review comments for the previous check-in (forgot to save the file, oops).
36161
36162         * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeChildren):
36163
36164 2009-02-23  Alexey Proskuryakov  <ap@webkit.org>
36165
36166         Reviewed by Darin Adler.
36167
36168         https://bugs.webkit.org/show_bug.cgi?id=15707
36169         Crash when manipulating document from within an iframe onload function
36170
36171         Test: fast/dom/onload-open.html
36172
36173         * dom/ContainerNode.cpp: (WebCore::ContainerNode::removeChildren): Protect the container and
36174         the current node, because anything can happen when dispatching events.
36175
36176 2009-02-23  Alexey Proskuryakov  <ap@webkit.org>
36177
36178         Reviewed by Darin Adler.
36179
36180         https://bugs.webkit.org/show_bug.cgi?id=18970
36181         Numerically named input fields cause document.forms loop problems
36182
36183         Test: fast/forms/numeric-input-name.html
36184
36185         * bindings/scripts/CodeGeneratorJS.pm: Try index getter before name getter, even if the
36186         latter overrides properties.
36187
36188 2009-02-23  Alexey Proskuryakov  <ap@webkit.org>
36189
36190         Reviewed by Sam Weinig.
36191
36192         https://bugs.webkit.org/show_bug.cgi?id=24059
36193         Tokenizer::write() return value is never used
36194
36195         * dom/Tokenizer.h:
36196         * dom/XMLTokenizer.cpp:
36197         (WebCore::XMLTokenizer::write):
36198         * dom/XMLTokenizer.h:
36199         * html/HTMLTokenizer.cpp:
36200         (WebCore::HTMLTokenizer::write):
36201         * html/HTMLTokenizer.h:
36202         * loader/FTPDirectoryDocument.cpp:
36203         (WebCore::FTPDirectoryTokenizer::write):
36204         * loader/ImageDocument.cpp:
36205         (WebCore::ImageTokenizer::write):
36206         * loader/MediaDocument.cpp:
36207         (WebCore::MediaTokenizer::write):
36208         * loader/PluginDocument.cpp:
36209         (WebCore::PluginTokenizer::write):
36210         * loader/TextDocument.cpp:
36211         (WebCore::TextTokenizer::write):
36212         Made write() return void, not bool.
36213
36214 2009-02-20  Geoffrey Garen  <ggaren@apple.com>
36215
36216         Reviewed by Sam Weinig.
36217
36218         Updated for JavaScriptCore changes to timeout checking.
36219
36220         * bindings/js/JSCustomPositionCallback.cpp:
36221         (WebCore::JSCustomPositionCallback::handleEvent):
36222         * bindings/js/JSCustomPositionErrorCallback.cpp:
36223         (WebCore::JSCustomPositionErrorCallback::handleEvent):
36224         * bindings/js/JSCustomSQLStatementCallback.cpp:
36225         (WebCore::JSCustomSQLStatementCallback::handleEvent):
36226         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
36227         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
36228         * bindings/js/JSCustomSQLTransactionCallback.cpp:
36229         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
36230         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
36231         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
36232         * bindings/js/JSCustomVoidCallback.cpp:
36233         (WebCore::JSCustomVoidCallback::handleEvent):
36234         * bindings/js/JSCustomXPathNSResolver.cpp:
36235         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
36236         * bindings/js/JSDOMWindowBase.cpp:
36237         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
36238         (WebCore::JSDOMWindowBase::commonJSGlobalData):
36239         * bindings/js/JSEventListener.cpp:
36240         (WebCore::JSAbstractEventListener::handleEvent):
36241         * bindings/js/ScheduledAction.cpp:
36242         (WebCore::ScheduledAction::executeFunctionInContext):
36243         * bindings/js/ScriptController.cpp:
36244         (WebCore::ScriptController::evaluate):
36245         * bindings/js/WorkerScriptController.cpp:
36246         (WebCore::WorkerScriptController::evaluate):
36247         (WebCore::WorkerScriptController::forbidExecution):
36248         * bindings/objc/WebScriptObject.mm:
36249         (-[WebScriptObject callWebScriptMethod:withArguments:]):
36250         (-[WebScriptObject evaluateWebScript:]):
36251         * bridge/NP_jsobject.cpp:
36252         (_NPN_InvokeDefault):
36253         (_NPN_Invoke):
36254         (_NPN_Evaluate):
36255         (_NPN_Construct):
36256         * bridge/jni/jni_jsobject.mm:
36257         (JavaJSObject::call):
36258         (JavaJSObject::eval):
36259
36260 2009-02-21  Hironori Bono  <hbono@chromium.org>
36261
36262         Reviewed by Alexey Proskuryakov.
36263
36264         https://bugs.webkit.org/show_bug.cgi?id=23786
36265         [Chromium] line-break characters in a complex text are treated as zero-width spaces
36266
36267         This change prevents the UniscribeHelper class from treating the line-break characters
36268         as whitespaces.
36269
36270         Tests: fast/text/international/bidi-linebreak-001.html
36271                fast/text/international/bidi-linebreak-002.html
36272                fast/text/international/bidi-linebreak-003.html
36273
36274         * platform/graphics/chromium/UniscribeHelper.cpp:
36275         (WebCore::UniscribeHelper::adjustSpaceAdvances):
36276         Make the UniscribeHelper::adjustSpaceAdvances() function treat all characters in
36277         the treatAsSpace() function (e.g. U+0020, U+000A, U+000D, U+00A0) as whitespaces,
36278         so does when Chromium renders a simple text.
36279
36280 2009-02-20  Julien Chaffraix  <jchaffraix@webkit.org>
36281
36282         Reviewed by Alexey Proskuryakov.
36283
36284         Bug 23940: Use Document::createElement(const QualifiedName&, bool) when creating a known element inside WebCore
36285
36286         Document::createElement(const QualifiedName&, bool) does not check for the prefix as opposed the the one taking an AtomicString
36287         or Document::createElementNS. This is perfectly fine internally because we know the type of element created and the check is
36288         unneeded.
36289
36290         It also removes the use of an ExceptionCode argument which was here only to check that the prefix check was fine. Finally it
36291         enables us to use some generated QualifiedName.
36292
36293         * bindings/js/JSOptionConstructor.cpp:
36294         (WebCore::constructHTMLOptionElement):
36295         * dom/Document.cpp:
36296         (WebCore::Document::setTitle):
36297         * dom/XMLTokenizer.cpp:
36298         (WebCore::createXHTMLParserErrorHeader):
36299         (WebCore::XMLTokenizer::insertErrorMessageBlock):
36300         * editing/CompositeEditCommand.cpp:
36301         (WebCore::createBlockPlaceholderElement):
36302         * editing/htmlediting.cpp:
36303         (WebCore::createTabSpanElement):
36304         * html/HTMLSelectElement.cpp:
36305         (WebCore::HTMLSelectElement::setLength):
36306         * loader/FTPDirectoryDocument.cpp:
36307         (WebCore::FTPDirectoryTokenizer::appendEntry):
36308         (WebCore::FTPDirectoryTokenizer::createTDForFilename):
36309         (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate):
36310         (WebCore::FTPDirectoryTokenizer::createBasicDocument):
36311         * loader/ImageDocument.cpp:
36312         (WebCore::ImageDocument::createDocumentStructure):
36313         * loader/MediaDocument.cpp:
36314         (WebCore::MediaTokenizer::createDocumentStructure):
36315         * loader/PluginDocument.cpp:
36316         (WebCore::PluginTokenizer::createDocumentStructure):
36317         * loader/TextDocument.cpp:
36318         (WebCore::TextTokenizer::write):
36319         * page/Frame.cpp:
36320         (WebCore::Frame::selectionComputedStyle):
36321         (WebCore::Frame::styleForSelectionStart):
36322         Document::createElement(const AtomicString&, ...) to Document::createElement(const QualifiedName&, ...) switch.
36323
36324         * xml/XPathFunctions.cpp:
36325         (WebCore::XPath::FunLang::evaluate): Re-use langAttr instead of creating a new attribute.
36326         * page/DragController.cpp:
36327         (WebCore::documentFragmentFromDragData): Use the HTMLAnchorElement directly to get rid of the static cast.
36328
36329 2009-02-19  Dimitri Glazkov  <dglazkov@chromium.org>
36330
36331         Reviewed by Eric Seidel.
36332
36333         https://bugs.webkit.org/show_bug.cgi?id=24060
36334         Fix up to accommodate for CanvasPixelArray return.
36335
36336         * platform/graphics/skia/ImageBufferSkia.cpp:
36337         (WebCore::ImageBuffer::getImageData): Added an extra data() to call.
36338         (WebCore::ImageBuffer::putImageData): Ditto.
36339
36340 2009-02-20  Eric Carlson  <eric.carlson@apple.com>
36341
36342         Simon Fraser
36343
36344         https://bugs.webkit.org/show_bug.cgi?id=24042
36345         Bug 24042: MediaPlayer should cache plug-in proxy
36346
36347         The changes in https://bugs.webkit.org/show_bug.cgi?id=23917 assume that
36348         MediaPlayer will always have created the private media player object before
36349         the plug-in is instantiated and calls back with the proxy object. This is not
36350         true on all platforms because of threading latency, so MediaPlayer should
36351         cache the plug-in proxy so it can pass it to the media engine at a later time.
36352
36353         * platform/graphics/MediaPlayer.cpp:
36354         (WebCore::NullMediaPlayerPrivate::setPoster): Null media engine implementation of proxy methods.
36355         (WebCore::NullMediaPlayerPrivate::deliverNotification): Ditto.
36356         (WebCore::NullMediaPlayerPrivate::setMediaPlayerProxy): Ditto.
36357         (WebCore::MediaPlayer::MediaPlayer): Initialize m_playerProxy.
36358         (WebCore::MediaPlayer::load): Pass m_playerProxy to newly created engine.
36359         (WebCore::MediaPlayer::setMediaPlayerProxy): Cache m_playerProxy.
36360         * platform/graphics/MediaPlayer.h: Declare m_playerProxy.
36361
36362 2009-02-20  Eric Carlson  <eric.carlson@apple.com>
36363
36364         Simon Fraser.
36365
36366         https://bugs.webkit.org/show_bug.cgi?id=24063
36367         Make it possible for a port to require a user gesture to play/pause an <audio> or <video> element
36368
36369         * html/HTMLMediaElement.cpp:
36370         (WebCore::HTMLMediaElement::HTMLMediaElement):  Rename m_loadRestrictions to m_Restrictions.
36371         Initialize m_internalCall.
36372         (WebCore::HTMLMediaElement::loadTimerFired): Increment m_internalCall around call to load().
36373         (WebCore::HTMLMediaElement::load): Call loadInternal if restrictions check out.
36374         (WebCore::HTMLMediaElement::loadInternal): New, guts of old load()
36375         (WebCore::HTMLMediaElement::setNetworkState): Fix bug introduced in r40943
36376         (WebCore::HTMLMediaElement::play): Call playInternal if restrictions check out.
36377         (WebCore::HTMLMediaElement::playInternal): New, guts of old play()
36378         (WebCore::HTMLMediaElement::pause): Call pauseInternal if restrictions check out.
36379         (WebCore::HTMLMediaElement::pauseInternal): New, guts of old pause()
36380         (WebCore::HTMLMediaElement::togglePlayState): Call playInternal/pauseInternal
36381         (WebCore::HTMLMediaElement::deliverNotification): Remove unnecessary white space.
36382         * html/HTMLMediaElement.h: Rename m_loadRestrictions to m_Restrictions, add m_internalCall,
36383         add RequireUserGestureRateChangeRestriction.
36384
36385 2009-02-20  Darin Fisher  <darin@chromium.org>
36386
36387         Fix build bustage in FileSystemWin.cpp.
36388
36389         Need to return CString() instead of 0 since there are now two CString
36390         constructors that take a pointer type.
36391
36392         * platform/win/FileSystemWin.cpp:
36393         (WebCore::openTemporaryFile):
36394
36395 2009-02-20  Dimitri Glazkov  <dglazkov@chromium.org>
36396
36397         Reviewed by Sam Weinig.
36398
36399         https://bugs.webkit.org/show_bug.cgi?id=23999
36400         Change license headers to accurately reflect code history.
36401
36402         * platform/ContentType.cpp:
36403         * platform/ContentType.h:
36404
36405 2009-02-18  Dimitri Glazkov  <dglazkov@chromium.org>
36406
36407         Reviewed by Antti Koivisto.
36408
36409         https://bugs.webkit.org/show_bug.cgi?id=23999
36410         Split off MIME type parsing into its own class.
36411
36412         * GNUmakefile.am: Added ContentType sources.
36413         * WebCore.pro: Ditto.
36414         * WebCore.scons: Ditto.
36415         * WebCore.vcproj/WebCore.vcproj: Ditto.
36416         * WebCore.xcodeproj/project.pbxproj: Ditto.
36417         * WebCoreSources.bkl: Ditto.
36418         * html/HTMLMediaElement.cpp: Changed to use ContentType.
36419         (WebCore::HTMLMediaElement::selectMediaURL):
36420         * platform/ContentType.cpp: Added.
36421         (WebCore::ContentType::ContentType):
36422         (WebCore::ContentType::parameter):
36423         (WebCore::ContentType::type):
36424         * platform/ContentType.h: Added.
36425         (WebCore::ContentType::raw):
36426         * platform/MIMETypeRegistry.cpp:
36427         * platform/MIMETypeRegistry.h:
36428         * platform/graphics/MediaPlayer.cpp:
36429         (WebCore::MediaPlayer::load):
36430         * rendering/style/ContentData.h: Renamed ContentType to StyleContentType.
36431         * rendering/style/RenderStyleConstants.h: Ditto.
36432         (WebCore::):
36433
36434 2009-02-20  Holger Hans Peter Freyther  <zecke@selfish.org>
36435
36436         Unreviewed build fix.
36437
36438         Use CString() instead of 0.
36439
36440         * platform/gtk/FileSystemGtk.cpp:
36441         (WebCore::openTemporaryFile):
36442         * platform/qt/FileSystemQt.cpp:
36443         (WebCore::openTemporaryFile):
36444
36445 2009-02-20  Gustavo Noronha Silva  <gns@gnome.org>
36446
36447         Reviewed by Holger Freyther.
36448
36449         When dealing with local files, use a path instead of an URI. GFile
36450         has problems decoding URIs with percent signs on them.
36451
36452         * platform/network/soup/ResourceHandleSoup.cpp:
36453         (WebCore::ResourceHandle::startGio):
36454
36455 2009-02-20  Gustavo Noronha Silva  <gns@gnome.org>
36456
36457         Reviewed by Holger Freyther.
36458
36459         Protect the ResourceHandle instance from being destroyed by
36460         didReceiveData inside the GIO readCallback call, so that
36461         cancelling caused by scripts is handled correctly.
36462
36463         * platform/network/soup/ResourceHandleSoup.cpp:
36464         (WebCore::readCallback):
36465
36466 2009-02-20  David Kilzer  <ddkilzer@apple.com>
36467
36468         Make IconDatabaseNone.cpp compile with -Wunused and pass check-for-exit-time-destructors
36469
36470         Reviewed by Sam Weinig.
36471
36472         * loader/icon/IconDatabaseNone.cpp:
36473         (WebCore::IconDatabase::defaultDatabaseFilename): Use DEFINE_STATIC_LOCAL().
36474         (WebCore::IconDatabase::open): Commented out unused parameter.
36475         (WebCore::IconDatabase::setPrivateBrowsingEnabled): Ditto.
36476         (WebCore::IconDatabase::iconForPageURL): Ditto.
36477         (WebCore::IconDatabase::iconURLForPageURL): Ditto.
36478         (WebCore::IconDatabase::defaultIcon): Ditto.
36479         (WebCore::IconDatabase::retainIconForPageURL): Ditto.
36480         (WebCore::IconDatabase::releaseIconForPageURL): Ditto.
36481         (WebCore::IconDatabase::setIconDataForIconURL): Ditto.
36482         (WebCore::IconDatabase::setIconURLForPageURL): Ditto.
36483         (WebCore::IconDatabase::setEnabled): Ditto.
36484         (WebCore::IconDatabase::pageURLMappingCount): Added stub.
36485         (WebCore::IconDatabase::retainedPageURLCount): Ditto.
36486         (WebCore::IconDatabase::iconRecordCount): Ditto.
36487         (WebCore::IconDatabase::iconRecordCountWithData): Ditto.
36488
36489 2009-02-20  David Kilzer  <ddkilzer@apple.com>
36490
36491         Add comment to generated code when shadowing a built-in object
36492
36493         Reviewed by Sam Weinig.
36494
36495         * bindings/scripts/CodeGeneratorJS.pm: Added comment to
36496         generated code output.
36497
36498 2009-02-20  Avi Drissman  <avi@chromium.org>
36499
36500         Reviewed by Eric Seidel.
36501
36502         https://bugs.webkit.org/show_bug.cgi?id=24036
36503         Keyboard events need disambiguation on the Linux platform too.
36504
36505         * platform/chromium/PlatformKeyboardEventChromium.cpp:
36506         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
36507
36508 2009-02-19  Darin Fisher  <darin@chromium.org>
36509
36510         Reviewed by Eric Seidel.
36511
36512         https://bugs.webkit.org/show_bug.cgi?id=24046
36513
36514         Several improvements to CString:
36515         1- Make it possible to initialize a CString from a CStringBuffer
36516         2- Make it possible to get a CStringBuffer from a CString
36517         3- Change CStringBuffer::data() to return a const pointer to ward off mutation
36518         4- Remove unused releaseBuffer() methods.
36519         5- Make CStringBuffer::create() private to force consumers to get a CStringBuffer from a CString.
36520
36521         * platform/text/CString.cpp:
36522         (WebCore::CString::init):
36523         (WebCore::CString::mutableData):
36524         (WebCore::CString::newUninitialized):
36525         (WebCore::CString::copyBufferIfNeeded):
36526         * platform/text/CString.h:
36527         (WebCore::CStringBuffer::data):
36528         (WebCore::CStringBuffer::length):
36529         (WebCore::CStringBuffer::create):
36530         (WebCore::CStringBuffer::mutableData):
36531         (WebCore::CString::CString):
36532         (WebCore::CString::buffer):
36533
36534 2009-02-19  Dmitry Titov  <dimich@chromium.org>
36535
36536         Reviewed by Alexey Proskuryakov.
36537
36538         https://bugs.webkit.org/show_bug.cgi?id=24017
36539         Remove some usage of Document in Worker.
36540
36541         * dom/WorkerContext.h:
36542         (WebCore::WorkerContext::userAgent):
36543         * dom/Document.cpp:
36544         (WebCore::Document::userAgent):
36545         * dom/Document.h:
36546         * dom/ScriptExecutionContext.h:
36547         Added virtual ScriptExecutionContext::userAgent(const KURL&).
36548         Document implementation uses FrameLoader::userAgent and
36549         WorkerContext receives the string on creation and stores it in a member.
36550
36551         * dom/Worker.cpp:
36552         (WebCore::Worker::Worker):
36553         (WebCore::Worker::notifyFinished):
36554         * dom/Worker.h:
36555         (WebCore::Worker::create):
36556         Instead of Document the Worker constructor now gets a ScriptExecutionContext.
36557         Start using some methods on SEC (like completeURL() and userAgent()).
36558         For others, explicitly case to Document and add a FIXME.
36559         Remove Worker::document() too.
36560
36561 2009-02-20  Gustavo Noronha Silva  <gns@gnome.org>
36562
36563         Rubber-stamped by Holger Freyther.
36564
36565         Do not set httpStatus to SOUP_STATUS_OK when serving local files
36566         to match other ports' behavior, fixing xmlhttprequest test
36567         regressions.
36568
36569         * platform/network/soup/ResourceHandleSoup.cpp:
36570         (WebCore::queryInfoCallback):
36571
36572 2009-02-19  Dan Bernstein  <mitz@apple.com>
36573
36574         Reviewed by Sam Weinig.
36575
36576         - WebCore part of fixing https://bugs.webkit.org/show_bug.cgi?id=24027
36577           Do not send loader callbacks during CSS styling
36578
36579         Undo the iChat-specific quirk added in
36580         <http://trac.webkit.org/changeset/41071>. Instead, always suspend memory
36581         cache client callbacks during attach() and recalcStyle().
36582
36583         * WebCore.base.exp: Removed
36584         Settings::setNeedsIChatMemoryCacheCallsQuirk().
36585         * dom/ContainerNode.cpp:
36586         (WebCore::ContainerNode::suspendPostAttachCallbacks): Disable memory
36587         cache client callbacks and remember to enable them afterwards if needed.
36588         (WebCore::ContainerNode::resumePostAttachCallbacks): Re-enable memory
36589         cache client callbacks if they were disabled in
36590         suspendPostAttachCallbacks().
36591         (WebCore::ContainerNode::attach): Use suspendPostAttachCallbacks() and
36592         resumePostAttachCallbacks().
36593         * dom/ContainerNode.h: Made suspendPostAttachCallbacks()
36594         and resumePostAttachCallbacks() non-static.
36595         * dom/Document.cpp:
36596         (WebCore::Document::dispatchImageLoadEventsNow): Reverted iChat-specific
36597         workaround.
36598         * page/Settings.cpp: Removed m_needsIChatMemoryCacheCallsQuirk and
36599         related code.
36600         (WebCore::Settings::Settings):
36601         * page/Settings.h:
36602
36603 2009-02-19  Holger Hans Peter Freyther  <zecke@selfish.org>
36604
36605         Unreviewed build fix.
36606
36607         Build fix after r41092. Make the memoryUsage method
36608         public. It will be shadowed by cf/mac and for curl/soup/qt
36609         the implementation from ResourceResponseBase will be used.
36610
36611         * platform/network/ResourceResponseBase.h:
36612         (WebCore::ResourceResponseBase::memoryUsage):
36613
36614 2009-02-19  Beth Dakin  <bdakin@apple.com>
36615
36616         Reviewed by Dave Hyatt.
36617
36618         Fix for <rdar://problem/6077775> Should be able to specify
36619         inactive ::selection color
36620
36621         This patch makes the ::selction pseudo-element work with
36622         the :window-inactive pseudo type. This was, a user can specify a
36623         different ::selection style when a window is inactive.
36624
36625         * css/CSSStyleSelector.cpp:
36626         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
36627         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
36628         * rendering/RenderObject.cpp:
36629         (WebCore::RenderObject::selectionBackgroundColor):
36630         (WebCore::RenderObject::selectionForegroundColor):
36631
36632 2009-02-19  Sam Weinig  <sam@webkit.org>
36633
36634         Reviewed by Beth Dakin.
36635
36636         Patch for https://bugs.webkit.org/show_bug.cgi?id=24044
36637         Update querySelector/querySelectorAll to match the latest spec
36638
36639         Update querySelector and querySelectorAll to match the latest version
36640         of the Selectors API spec.  We now stringify null and undefined to "null"
36641         and "undefined" respectively instead of to "".
36642
36643         Test: fast/dom/SelectorAPI/undefined-null-stringify.html
36644
36645         * dom/Document.idl:
36646         * dom/DocumentFragment.idl:
36647         * dom/Element.idl:
36648
36649 2009-02-19  Dimitri Glazkov  <dglazkov@chromium.org>
36650
36651         Reviewed by Geoffrey Garen.
36652
36653         https://bugs.webkit.org/show_bug.cgi?id=23732
36654         Rework CachedResource overhead accounting to allow platforms to diverge
36655         in numbers.
36656
36657         * loader/CachedResource.cpp:
36658         (WebCore::CachedResource::overheadSize): Changed to ask ResourceResponse
36659         for its size and to use actual URL size.
36660         * platform/network/ResourceResponseBase.h:
36661         (WebCore::ResourceResponseBase::size): Added default size method.
36662         * platform/network/cf/ResourceResponse.h:
36663         (WebCore::ResourceResponse::size): Added Win/CF size method
36664         * platform/network/mac/ResourceResponse.h:
36665         (WebCore::ResourceResponse::size): Added Mac size method.
36666
36667 2009-02-19  Anders Carlsson  <andersca@apple.com>
36668
36669         Reviewed by Kevin Decker.
36670
36671         - Fix for <rdar://problem/6604968>
36672
36673         On Tiger, create an autorelease pool before creating the NSGraphicsContext and drain it immediately
36674         after the call to -[NSView displayRectIgnoringOpacity:inContext:].
36675
36676         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
36677         (WebCore::MediaPlayerPrivate::paint):
36678
36679 2009-02-19  David Hyatt  <hyatt@apple.com>
36680
36681         Fix a bug where reflections didn't work properly if opacity was < 1.  Make sure that replaced elements
36682         also consider reflections to be part of their visual overflow.  This had already been done for blocks
36683         and lines, but it wasn't being done yet for replaced elements.
36684
36685         Also make sure that when the object being reflected has opacity < 1 that we don't end up popping the outer
36686         transparency layer early.  Since the reflected object paints twice, we don't want to end the transparency
36687         layer it pushed until we're done painting the real object (rather than the reflection).
36688
36689         Reviewed by Dan Bernstein
36690
36691         Added fast/reflections/reflection-masks-opacity.html
36692
36693         * rendering/RenderLayer.cpp:
36694         (WebCore::RenderLayer::paintLayer):
36695         * rendering/RenderPartObject.cpp:
36696         (WebCore::RenderPartObject::layout):
36697         * rendering/RenderReplaced.cpp:
36698         (WebCore::RenderReplaced::layout):
36699         (WebCore::RenderReplaced::adjustOverflowForBoxShadowAndReflect):
36700         * rendering/RenderReplaced.h:
36701
36702 2009-02-19  David Levin  <levin@chromium.org>
36703
36704         Reviewed by Alexey Proskuryakov.
36705
36706         Bug 23980: WorkerRunLoop needs a way to run in a given mode similar to CFRunLoopInMode.
36707         <https://bugs.webkit.org/show_bug.cgi?id=23980>
36708
36709         WorkerRunLoop has the ability to run in a mode which filters the tasks to be run.
36710         * When WorkerRunLoop::runInMode is called, only task for that mode will run.
36711         * When WorkerRunLoop::run is called (or the default mode is used), then all tasks
36712           will run regardless of their posted mode.
36713
36714         Here's a demonstration of the api:
36715
36716             RefPtr<NameResolution> nameResolution = NameResolution::create(workerRunLoop);
36717
36718             //  Internally nameResolution will do workerRunLoop.postTaskForMode(task, "MyCoolMode")
36719             //  for any tasks that need to be run during this loop.
36720             nameResolution->setTaskMode("MyCoolMode");
36721
36722             nameResolution->start();
36723             while (!nameResolution->done()) {
36724                 // Only tasks which are posted for "MyCoolMode" will run.
36725                 workerRunLoop.runInMode(context, "MyCoolMode");
36726             }
36727
36728         No observable change in behavior, so no test.
36729
36730         * dom/WorkerRunLoop.cpp:
36731         (WebCore::ModePredicate::ModePredicate):
36732         (WebCore::ModePredicate::operator()):
36733         (WebCore::WorkerRunLoop::WorkerRunLoop):
36734         (WebCore::WorkerRunLoop::~WorkerRunLoop):
36735         (WebCore::WorkerRunLoop::setSharedTimer):
36736         (WebCore::WorkerRunLoop::resetSharedTimer):
36737         (WebCore::WorkerRunLoop::run):
36738         (WebCore::WorkerRunLoop::runInMode):
36739         (WebCore::WorkerRunLoop::postTask):
36740         (WebCore::WorkerRunLoop::postTaskForMode):
36741         * dom/WorkerRunLoop.h:
36742         (WebCore::WorkerRunLoop::Task::create):
36743         (WebCore::WorkerRunLoop::Task::mode):
36744         (WebCore::WorkerRunLoop::Task::performTask):
36745         (WebCore::WorkerRunLoop::Task::Task):
36746
36747 2009-02-19  Dimitri Glazkov  <dglazkov@chromium.org>
36748
36749         Reviewed by Eric Seidel.
36750
36751         https://bugs.webkit.org/show_bug.cgi?id=24034
36752         Fix up Selection->VisibleSelection change.
36753
36754         * page/chromium/EventHandlerChromium.cpp:
36755         (WebCore::EventHandler::passMousePressEventToSubframe): Renamed Selection
36756         to VisibleSelection.
36757
36758 2009-02-19  Dimitri Glazkov  <dglazkov@chromium.org>
36759
36760         Reviewed by Eric Seidel.
36761
36762         https://bugs.webkit.org/show_bug.cgi?id=24041
36763         Correct Skia type conversion issues, fix Chromium Linux build.
36764
36765         * platform/graphics/chromium/FontLinux.cpp:
36766         (WebCore::Font::drawGlyphs): changed parameters to RGBA32, not WebCore::Color.
36767
36768 2009-02-19  Jungshik Shin <jshin@chromium.org>
36769
36770         Reviewed by Eric Seidel.
36771
36772         https://bugs.webkit.org/show_bug.cgi?id=20531
36773         Chromium-part follow-up to the patch landed in r40636
36774         for bug 20531.
36775         Remove a static member function alternateFamilyName
36776         from Chromium's Win/Linux ports of FontCache. In r40636,
36777         alternateFamilyName was customized using #ifdef PLATFORM(WIN_OS).
36778         So, there's no more need for the static member function per
36779         platform.
36780
36781         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
36782         * platform/graphics/chromium/FontCacheLinux.cpp:
36783
36784 2009-02-19  Simon Fraser  <simon.fraser@apple.com>
36785
36786         Reviewed by Adele Peterson.
36787
36788         Call documentWillBecomeInactive() from Document::detach to ensure that
36789         media elements are shut down, because they may be kept alive by references
36790         from JS past document teardown.
36791
36792         documentWillBecomeInactive() calls  renderView()->willMoveOffscreen(), so no
36793         need to do that in detach() as well.
36794
36795         We no longer need to call documentWillBecomeInactive() from ~Page() (which
36796         was added for <https://bugs.webkit.org/show_bug.cgi?id=21116>), since this
36797         supersedes that change.
36798
36799         * dom/Document.cpp:
36800         (WebCore::Document::detach):
36801         * page/Page.cpp:
36802         (WebCore::Page::~Page):
36803
36804 2009-02-19  Dimitri Glazkov  <dglazkov@chromium.org>
36805
36806         Reviewed by Eric Seidel.
36807
36808         https://bugs.webkit.org/show_bug.cgi?id=24028
36809         Fix up Skia path changes.
36810
36811         * platform/graphics/skia/GraphicsContextSkia.cpp:
36812         (WebCore::GraphicsContext::strokePath): Removed illegal indirection.
36813         * platform/graphics/skia/PathSkia.cpp:
36814         (WebCore::boundingBoxForCurrentStroke): Changed call name.
36815
36816 2009-02-19  Gustavo Noronha Silva  <gns@gnome.org>
36817
36818         Reviewed by Alexey Proskuryakov.
36819
36820         Ignore ports on local URLs. This fixes a regression in
36821         fast/loader/file-URL-with-port-number.html
36822
36823         * platform/network/soup/ResourceHandleSoup.cpp:
36824         (WebCore::ResourceHandle::startGio):
36825
36826 2009-02-19  Gustavo Noronha Silva  <gns@gnome.org>
36827
36828         Reviewed by Alexey Proskuryakov.
36829
36830         https://bugs.webkit.org/show_bug.cgi?id=24011
36831         KURL's setPort doesn't unset port if 0 is given
36832
36833         Make setPort remove port if 0 is given to it, as promised by the
36834         comment in KURL's header.
36835
36836         * platform/KURL.cpp:
36837         (WebCore::KURL::setPort):
36838
36839 2009-02-18  Dan Bernstein  <mitz@apple.com>
36840
36841         Reviewed by Brady Eidson.
36842
36843         - WebCore part of fixing <rdar://problem/6507512> Crash in iChat at CSSStyleSelector::adjustRenderStyle
36844
36845         The crash results from re-entry into
36846         CSSMutableStyleDeclaration::setCssText, which in turn is caused by
36847         the first style change causing a cached image to load from the memory
36848         cache, causing load delegate dispatch, and iChat's delegate method
36849         calling back into WebKit.
36850
36851         The workaround is to use defer delegate callbacks for memory cache. In
36852         this case, deferring callbacks during image load event dispatch was
36853         found to be sufficient.
36854
36855         The crash is a regression. See also the discussion in
36856         <https://bugs.webkit.org/show_bug.cgi?id=22521>.
36857
36858         * WebCore.base.exp: Added
36859         Settings::setNeedsIChatMemoryCacheCallsQuirk().
36860         * dom/Document.cpp:
36861         (WebCore::Document::dispatchImageLoadEventsNow): If the quirk is
36862         enabled, defer memory cache callbacks during image load event dispatch.
36863         * page/Settings.cpp:
36864         (WebCore::Settings::Settings): Initialize
36865         m_needsIChatMemoryCacheCallsQuirk.
36866         (WebCore::Settings::setNeedsIChatMemoryCacheCallsQuirk): Added this
36867         setter.
36868         * page/Settings.h:
36869         (WebCore::Settings::needsIChatMemoryCacheCallsQuirk): Added this getter.
36870
36871 2009-02-18  Adam Roben  <aroben@apple.com>
36872
36873         Export WebCore::handCursor and Cursor.h
36874
36875         Reviewed by John Sullivan.
36876
36877         * WebCore.base.exp: Added WebCore::handCursor.
36878         * WebCore.xcodeproj/project.pbxproj: Made Cursor.h private.
36879
36880 2009-02-18  Ojan Vafai  <ojan@chromium.org>
36881
36882         Reviewed by Alexey Proskuryakov.
36883
36884         https://bugs.webkit.org/show_bug.cgi?id=23992
36885         REGRESSION: crash on windows loading http://www.stickam.com/liveStreams.do
36886
36887         Unable to reduce to a layout test.
36888
36889         * page/Frame.cpp:
36890         (WebCore::Frame::contentRenderer):
36891
36892 2009-02-18  Evan Stade  <estade@chromium.org>
36893
36894         Reviewed by Eric Seidel.
36895
36896         https://bugs.webkit.org/show_bug.cgi?id=23861
36897         Stroke font outlines on chromium linux
36898
36899         TEST=LayoutTests/svg/custom/pointer-events-text.svg
36900
36901         * platform/graphics/chromium/FontLinux.cpp:
36902         (WebCore::Font::drawGlyphs):
36903
36904 2009-02-18  Evan Stade  <estade@chromium.org>
36905
36906         Reviewed by Eric Seidel.
36907
36908         https://bugs.webkit.org/show_bug.cgi?id=23860
36909         Resync some graphics/skia files with their chromium counterparts
36910
36911         This comes from chromium patches <http://codereview.chromium.org/17633>
36912         and <http://codereview.chromium.org/17454>
36913
36914         * platform/graphics/skia/GraphicsContextSkia.cpp:
36915         (WebCore::GraphicsContext::clipPath):
36916         (WebCore::GraphicsContext::fillPath):
36917         * platform/graphics/skia/PlatformContextSkia.cpp:
36918         (PlatformContextSkia::addPath):
36919         (PlatformContextSkia::currentPath):
36920         * platform/graphics/skia/PlatformContextSkia.h:
36921
36922 2009-02-18  Gustavo Noronha Silva  <gns@gnome.org>
36923
36924         Unreviewed.
36925
36926         Build fix after r41060.
36927
36928         * GNUmakefile.am:
36929
36930 2009-02-18  Dimitri Glazkov  <dglazkov@chromium.org>
36931
36932         Reviewed by Eric Seidel.
36933
36934         https://bugs.webkit.org/show_bug.cgi?id=24005
36935         Add an include to fix Chromium build.
36936
36937         * page/animation/AnimationController.cpp: Add UnusedParam.h include.
36938
36939 2009-02-18  Gustavo Noronha Silva  <gns@gnome.org>
36940
36941         Reviewed by Holger Freyther.
36942
36943         Fix symbols.filter location, and add other missing files to the
36944         autotools build, so that make dist works.
36945
36946         * GNUmakefile.am:
36947
36948 2009-02-18  Zan Dobersek  <zandobersek@gmail.com>
36949
36950         Rubber-stamped by Holger Hans Peter Freyther.
36951
36952         Allow POST method for local requests.
36953
36954         * platform/network/soup/ResourceHandleSoup.cpp:
36955         (WebCore::ResourceHandle::startGio):
36956
36957 2009-02-18  Gustavo Noronha Silva  <gns@gnome.org>
36958
36959         Reviewed by Holger Hans Peter Freyther.
36960
36961         Use KURL in startGio instead of passing a string with the URL, so
36962         that we can handle removing refs and queries more elegantly. This
36963         is fixing more regressions that came from the curl->soup switch.
36964
36965         Original work by Zan Dobersek.
36966
36967         * platform/network/ResourceHandle.h:
36968         * platform/network/soup/ResourceHandleSoup.cpp:
36969         (WebCore::ResourceHandle::start):
36970         (WebCore::ResourceHandle::startGio):
36971
36972 2009-02-18  Holger Hans Peter Freyther  <zecke@selfish.org>
36973
36974         Reviewed by Alexey Proskuryakov.
36975
36976         Implement ResourceHandle::loadResourceSynchronously in ResourceHandleSoup.cpp
36977
36978         The implementation is needed to have synchronous loading, e.g. for
36979         JavaScript interaction. This is fixing various regressions that
36980         came from the curl->soup switch.
36981
36982         * platform/network/soup/ResourceHandleSoup.cpp:
36983         (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader):
36984         (WebCore::WebCoreSynchronousLoader::~WebCoreSynchronousLoader):
36985         (WebCore::WebCoreSynchronousLoader::didReceiveResponse):
36986         (WebCore::WebCoreSynchronousLoader::didReceiveData):
36987         (WebCore::WebCoreSynchronousLoader::didFinishLoading):
36988         (WebCore::WebCoreSynchronousLoader::didFail):
36989         (WebCore::WebCoreSynchronousLoader::run):
36990         (WebCore::ResourceHandle::loadResourceSynchronously):
36991
36992 2009-02-18  Xan Lopez  <xan@gnome.org>
36993
36994         Reviewed by Mark Rowe.
36995
36996         https://bugs.webkit.org/show_bug.cgi?id=23989
36997
36998         Based on a patch by Bo Yang  <techrazy.yang@gmail.com>
36999
37000         Make the cursor cache global, that's all we really need and
37001         otherwise we can miss cursor transitions in some situations (see
37002         the bug for one testcase). Also remove some now useless code.
37003
37004         * platform/Widget.h:
37005         * platform/gtk/WidgetGtk.cpp:
37006         (WebCore::Widget::Widget):
37007         (WebCore::Widget::~Widget):
37008         (WebCore::Widget::setCursor):
37009
37010 2009-02-17  Adam Roben  <aroben@apple.com>
37011
37012         Windows build fix
37013
37014         * loader/FrameLoader.cpp:
37015         (WebCore::toPlugInElement): Don't rely on #if being processed before
37016         ASSERT.
37017
37018 2009-02-17  David Levin  <levin@chromium.org>
37019
37020         Reviewed by Alexey Proskuryakov.
37021
37022         Bug 23977: Unnecessary timer related headers in files.
37023         <https://bugs.webkit.org/show_bug.cgi?id=23977>
37024
37025         No observable change in behavior, so no test.
37026
37027         * dom/Document.cpp:
37028         * dom/WorkerRunLoop.cpp:
37029         * dom/WorkerRunLoop.h:
37030
37031 2009-02-17  Peter Abrahamsen  <rainhead@gmail.com>
37032
37033         Reviewed by Sam Weinig.
37034
37035         https://bugs.webkit.org/show_bug.cgi?id=23958
37036         <rdar://problem/6587815>
37037
37038         Updated XMLHttpRequest with new header names from the latest Access
37039         Control draft: http://www.w3.org/TR/access-control/
37040         - Access-Control-Origin becomes Access-Control-Allow-Origin
37041         - Access-Control-Credentials becomes Access-Control-Allow-Credentials
37042
37043         * xml/XMLHttpRequest.cpp:
37044         (WebCore::XMLHttpRequest::accessControlCheck):
37045
37046 2009-02-17  Kevin Ollivier  <kevino@theolliviers.com>
37047
37048         wx build fix. Add missing constructor used for empty values.
37049
37050         * platform/graphics/wx/FontPlatformData.h:
37051         (WebCore::FontPlatformData::FontPlatformData):
37052
37053 2009-02-17  Antti Koivisto  <antti@apple.com>
37054
37055         Reviewed by Dave Kilzer.
37056
37057         <rdar://problem/6592446> dynamically updating page doesn't seem to draw when updated
37058
37059         Need update after callback.
37060
37061         * bindings/js/JSCustomPositionCallback.cpp:
37062         (WebCore::JSCustomPositionCallback::handleEvent):
37063         * bindings/js/JSCustomPositionErrorCallback.cpp:
37064         (WebCore::JSCustomPositionErrorCallback::handleEvent):
37065
37066 2009-02-17  Eric Carlson  <eric.carlson@apple.com>
37067
37068         Reviewed by Antti Koivisto.
37069
37070         https://bugs.webkit.org/show_bug.cgi?id=23917
37071         Allow a WebKit plug-in to act as a proxy for the <audio> and <video>
37072         element.
37073
37074         * DerivedSources.make: add media element proxy exports to .exp file when feature is defined.
37075
37076         * WebCore.VideoProxy.exp: New, define the informal protocol exported by a media element proxy.
37077
37078         * WebCore.xcodeproj/project.pbxproj: Add MediaPlayerProxy.h.
37079
37080         * html/HTMLMediaElement.cpp:
37081         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_needWidgetUpdate.
37082         (WebCore::HTMLMediaElement::attributeChanged): Don't detach+attach when PLUGIN_PROXY_FOR_VIDEO, the
37083         proxy plug-in handles the poster frame.
37084         (WebCore::HTMLMediaElement::rendererIsNeeded): New logic for PLUGIN_PROXY_FOR_VIDEO.
37085         (WebCore::HTMLMediaElement::createRenderer): Create RenderPartObject when PLUGIN_PROXY_FOR_VIDEO.
37086         (WebCore::HTMLMediaElement::attach): Set m_needWidgetUpdate when PLUGIN_PROXY_FOR_VIDEO
37087         (WebCore::HTMLMediaElement::load): Don't reallocate MediaPlayer when PLUGIN_PROXY_FOR_VIDEO, we keep the
37088         same plug-in for the life of the element.
37089         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged): update m_networkState when media player
37090         network state changes to EMPTY, otherwise we can get out of sync with engine.
37091         (WebCore::HTMLMediaElement::defaultEventHandler): pass event to widget when PLUGIN_PROXY_FOR_VIDEO
37092         (WebCore::HTMLMediaElement::deliverNotification): New, deliver notification from proxy plug-in to
37093         media player.
37094         (WebCore::HTMLMediaElement::setMediaPlayerProxy): New, pass proxy object to media player.
37095         (WebCore::HTMLMediaElement::initialURL): New, return the url from the "src" attr or the appropriate
37096         <source> element to be used as the initial url for the proxy.
37097         (WebCore::HTMLMediaElement::finishParsingChildren): New, allocate MediaPlayer and update widget.
37098         * html/HTMLMediaElement.h: Declare new methods for proxy, add m_needWidgetUpdate.
37099         (WebCore::HTMLMediaElement::setNeedWidgetUpdate):
37100
37101         * html/HTMLVideoElement.cpp:
37102         (WebCore::HTMLVideoElement::attach): Poster image is handled by proxy when PLUGIN_PROXY_FOR_VIDEO.
37103         (WebCore::HTMLVideoElement::parseMappedAttribute): Ditto.
37104         * html/HTMLVideoElement.h:
37105
37106         * loader/FrameLoader.cpp:
37107         (WebCore::toPlugInElement): Allow cast if element is <video> or <audio>
37108
37109         * platform/graphics/MediaPlayer.cpp:
37110         (WebCore::MediaPlayer::MediaPlayer): Remove white space.
37111         (WebCore::MediaPlayer::setPoster): New, forward call to private player.
37112         (WebCore::MediaPlayer::deliverNotification): Ditto.
37113         (WebCore::MediaPlayer::setMediaPlayerProxy): Ditto.
37114         * platform/graphics/MediaPlayer.h:
37115         (WebCore::MediaPlayer::mediaPlayerClient):
37116
37117         * platform/graphics/mac/MediaPlayerProxy.h: New, defines media player proxy interface.
37118
37119         * rendering/RenderPart.cpp:
37120         (WebCore::RenderPart::RenderPart): Change constructor to take Element* instead of Node* as a
37121         non-element node doesn't need a renderer
37122         * rendering/RenderPart.h: Ditto.
37123
37124         * rendering/RenderPartObject.cpp:
37125         (WebCore::RenderPartObject::RenderPartObject): Ditto.
37126         (WebCore::RenderPartObject::updateWidget): Package params for proxy plug-in when element is
37127         <video> or <audio>.
37128         * rendering/RenderPartObject.h:
37129
37130 2009-02-17  David Hyatt  <hyatt@apple.com>
37131
37132         Reviewed by Eric Seidel
37133
37134         Fix for https://bugs.webkit.org/show_bug.cgi?id=23985
37135
37136         Don't allow legends to be anything but display:block.
37137
37138         Added fast/forms/inline-ignored-on-legend.html
37139
37140         * GNUmakefile.am:
37141         * WebCore.pro:
37142         * WebCore.vcproj/WebCore.vcproj:
37143         * WebCore.xcodeproj/project.pbxproj:
37144         * WebCoreSources.bkl:
37145         * css/html4.css:
37146         * html/HTMLLegendElement.cpp:
37147         * html/HTMLLegendElement.h:
37148         * rendering/RenderLegend.cpp: Removed.
37149         * rendering/RenderLegend.h: Removed.
37150         * wml/WMLInsertedLegendElement.cpp:
37151         * wml/WMLInsertedLegendElement.h:
37152
37153 2009-02-13  Brett Wilson  <brettw@dhcp-172-22-71-167.mtv.corp.google.com>
37154
37155         Reviewed by Simon Fraser.
37156
37157         https://bugs.webkit.org/attachment.cgi?id=27666
37158         Fix Chromium build build: forgotten include in RenderObject, sync
37159         RenderTheme to the recent changes in RenderObject.
37160
37161         * rendering/RenderObject.cpp:
37162         * rendering/RenderThemeChromiumMac.mm:
37163         (WebCore::RenderThemeChromiumMac::updatePressedState):
37164
37165 2009-02-17  Gustavo Noronha Silva  <gns@gnome.org>
37166
37167         Reviewed by Darin Adler.
37168
37169         https://bugs.webkit.org/show_bug.cgi?id=22966
37170         crash when destroying a webview that opened a page containing <script>
37171         tags
37172
37173         Fix m_group being set to 0 instead of to m_singlePageGroup when
37174         GroupName is set to empty
37175
37176         * page/Page.cpp:
37177         (WebCore::Page::setGroupName):
37178
37179 2009-02-16  Beth Dakin  <bdakin@apple.com>
37180
37181         Reviewed by Sam Weinig.
37182
37183         Fix for <rdar://problem/6386623>
37184
37185         I made m_numParsedProperties and m_maxParsedProperties unsigned
37186         instead of int, and then added an early return from addPropery() if
37187         m_maxParsedProperties exceeds the max value.
37188
37189         * css/CSSParser.cpp:
37190         (WebCore::CSSParser::addProperty):
37191         (WebCore::CSSParser::rollbackLastProperties):
37192         (WebCore::CSSParser::clearProperties):
37193         (WebCore::CSSParser::createFontFaceRule):
37194         (WebCore::CSSParser::deleteFontFaceOnlyValues):
37195         * css/CSSParser.h:
37196
37197 2009-02-16  Justin Garcia  <justin.garcia@apple.com>
37198
37199         Reviewed by Mark Rowe.
37200
37201         https://bugs.webkit.org/show_bug.cgi?id=16309
37202         HTML5: The third execCommand argument for insert{un}orderedlist should be ignored
37203
37204         When we originally implemented this command, MSDN documentation said that IE set the
37205         id attribute of inserted lists to the third argument to execCommand, but IE doesn't
37206         do this nor do any other browsers.
37207
37208         * editing/EditorCommand.cpp:
37209         (WebCore::executeInsertOrderedList):
37210         (WebCore::executeInsertUnorderedList):
37211         * editing/IndentOutdentCommand.cpp:
37212         (WebCore::IndentOutdentCommand::outdentParagraph):
37213         * editing/InsertListCommand.cpp:
37214         (WebCore::InsertListCommand::insertList):
37215         (WebCore::InsertListCommand::InsertListCommand):
37216         (WebCore::InsertListCommand::doApply):
37217         * editing/InsertListCommand.h:
37218         (WebCore::InsertListCommand::create):
37219
37220 2009-02-16  Dan Bernstein  <mitz@apple.com>
37221
37222         Reviewed by Geoffrey Garen.
37223
37224         - fix <rdar://problem/6561077> REGRESSION (r39634): Unable to select an item in stocks widget with the mouse
37225
37226         Test: platform/mac/fast/events/pointer-events-dashboard.html
37227
37228         * css/CSSStyleSelector.cpp:
37229         (WebCore::CSSStyleSelector::applyProperty): Do not apply the
37230         pointer-events property in Dashboard backwards compatibility mode,
37231         in order to work around misuse of that property by the Stocks widget.
37232
37233 2009-02-16  Justin Garcia  <justin.garcia@apple.com>
37234
37235         Reviewed by Eric Seidel.
37236
37237         https://bugs.webkit.org/show_bug.cgi?id=15381
37238         execCommand justify modifies the contentEditable node
37239
37240         * editing/CompositeEditCommand.cpp:
37241         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Avoid modifying not just
37242         the body element, but any root editable element.
37243
37244 2009-02-16  Chris Fleizach  <cfleizach@apple.com>
37245
37246         Reviewed by Adele Peterson.
37247
37248         Bug 23979: AX: alt tag not returned for <input type="image">
37249         https://bugs.webkit.org/show_bug.cgi?id=23979
37250
37251         Test: accessibility/input-image-alt.html
37252
37253         * page/AccessibilityRenderObject.cpp:
37254         (WebCore::AccessibilityRenderObject::accessibilityDescription):
37255
37256 2009-02-16  Kevin Watters  <kevinwatters@gmail.com>
37257
37258         Reviewed by Kevin Ollivier.
37259
37260         The ref data is not properly set unless we use the CreateMatrix function.
37261
37262         https://bugs.webkit.org/show_bug.cgi?id=23978
37263
37264         * platform/graphics/wx/TransformationMatrixWx.cpp:
37265         (WebCore::TransformationMatrix::operator wxGraphicsMatrix):
37266
37267 2009-02-16  Dan Bernstein  <mitz@apple.com>
37268
37269         Reviewed by John Sullivan.
37270
37271         - fix <rdar://problem/6516829> FontPlatformData constructor passes NULL to CTFontCopyGraphicsFont and CTFontGetPlatformFont
37272
37273         * platform/graphics/FontCache.cpp:
37274         (WebCore::FontDataCacheKeyTraits::emptyValue): Changed to use the
37275         FontPlatformData(float, bool, bool) constructor.
37276         * platform/graphics/mac/FontCacheMac.mm:
37277         (WebCore::FontCache::createFontPlatformData): Changed to pass a valid
37278         NSFont to the FontPlatformData constructor, instead of implicitly
37279         passing 0 and then calling setFont().
37280         * platform/graphics/mac/FontPlatformData.h: Made the NSFont parameter
37281         of the constructor mandatory.
37282
37283 2009-02-15  David Kilzer  <ddkilzer@apple.com>
37284
37285         Move duplicate caretWidth constants to RenderObject.h
37286
37287         Reviewed by Dan Bernstein.
37288
37289         No test since no change in behavior.
37290
37291         * rendering/RenderBlock.cpp:
37292         (WebCore::RenderBlock::localCaretRect): Removed caretWidth.
37293         * rendering/RenderBox.cpp:
37294         (WebCore::RenderBox::localCaretRect): Ditto.
37295         * rendering/RenderObject.h: Added caretWidth definition.
37296         * rendering/RenderText.cpp:
37297         (WebCore::RenderText::localCaretRect): Removed caretWidth.
37298
37299 2009-02-13  Dimitri Glazkov  <dglazkov@chromium.org>
37300
37301         Reviewed by Eric Seidel.
37302
37303         https://bugs.webkit.org/show_bug.cgi?id=23955
37304         V8HTMLPlugInCustom returns undefined, which fools interceptors.
37305
37306         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
37307         (WebCore::NAMED_PROPERTY_GETTER): Use deferToInterceptor() return value.
37308         (WebCore::NAMED_PROPERTY_SETTER): Ditto.
37309         (WebCore::INDEXED_PROPERTY_GETTER): Ditto.
37310         (WebCore::INDEXED_PROPERTY_SETTER): Ditto.
37311
37312 2009-02-13  Dimitri Glazkov  <dglazkov@chromium.org>
37313
37314         Reviewed by Eric Seidel.
37315
37316         https://bugs.webkit.org/show_bug.cgi?id=23954
37317         Add V8 custom bindings for CanvasRenderingContext2D.
37318
37319         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: Added.
37320         (WebCore::toV8):
37321         (WebCore::toCanvasStyle):
37322         (WebCore::ACCESSOR_GETTER):
37323         (WebCore::ACCESSOR_SETTER):
37324
37325 2009-02-13  Anders Carlsson  <andersca@apple.com>
37326
37327         Reviewed by Darin Adler and Dan Bernstein.
37328
37329         <rdar://problem/6583187>
37330
37331         * page/NavigatorBase.cpp:
37332         Handle PPC64 and X86_64 as well.
37333
37334 2009-02-13  Darin Adler  <darin@apple.com>
37335
37336         Reviewed by Mark Rowe.
37337
37338         Fix broken tokenizer regression test that reflected a lifetime bug
37339         in the document.write optimization. The test failure was trivial to
37340         reproduce in COLLECT_ON_EVERY_ALLOCATION mode.
37341
37342         * bindings/js/JSHTMLDocumentCustom.cpp:
37343         (WebCore::documentWrite): Convert strings to String rather than passing
37344         the pointer and length to SegmentedString. The optimization is thus
37345         mostly gone. However, there are two ways to bring it back: 1) Apply
37346         the patch that makes UString and String share the same buffers.
37347         2) Add a UString feature to SegmentedString; simple to do but might
37348         risk slowing down normal document parsing.
37349
37350 2009-02-13  Adam Treat  <adam.treat@torchmobile.com>
37351
37352         Caught by Darin Adler.
37353
37354         No reason to check m_tokenizer twice for 0 in a row.
37355
37356         * dom/Document.cpp:
37357         (WebCore::Document::write):
37358
37359 2009-02-13  Lyon Chen  <lyon.chen@torchmobile.com>
37360
37361         Reviewed by Dave Hyatt.
37362
37363         Take into account y() + height() when calculating getLowerRightCorner.
37364
37365         * dom/ContainerNode.cpp:
37366         (WebCore::ContainerNode::getLowerRightCorner):
37367
37368 2009-02-13  Antti Koivisto  <antti@apple.com>
37369
37370         Reviewed by Dave Hyatt.
37371
37372         Most of this code was in RenderBox, restore the copyright lines.
37373
37374         * rendering/RenderBoxModelObject.cpp:
37375         * rendering/RenderBoxModelObject.h:
37376
37377 2009-02-13  David Hyatt  <hyatt@apple.com>
37378
37379         Get rid of printBoxDecorations, since it is dead code.
37380
37381         Reviewed by Dan Bernstein
37382
37383         * rendering/RenderObject.h:
37384
37385 2009-02-13  Adam Treat  <adam.treat@torchmobile.com>
37386
37387         Reviewed by Darin Adler.
37388
37389         https://bugs.webkit.org/show_bug.cgi?id=23952
37390         Add Document::write overload which takes a SegmentedString since this
37391         is what the tokenizer expects anyway.  Modified JSHTMLDocument so it once
37392         again calls Document::write instead of injecting the string directly into
37393         the tokenizer.  This ensures that all document.write's are funneled through
37394         one method again, but should still be just as fast for JSHTMLDocumentCustom.
37395
37396         * bindings/js/JSHTMLDocumentCustom.cpp:
37397         (WebCore::documentWrite):
37398         * dom/Document.cpp:
37399         (WebCore::Document::write):
37400         * dom/Document.h:
37401
37402 2009-02-13  David Hyatt  <hyatt@apple.com>
37403
37404         Reviewed by Simon Fraser
37405
37406         Remove updateWidgetPosition on RenderObject.  Change RenderView's set of widgets
37407         to have a tighter type: RenderWidget instead of RenderObject.  Devirtualize
37408         updateWidgetPosition, since all RenderWidgets (except for applets) are now
37409         RenderParts also.
37410
37411         * rendering/RenderObject.cpp:
37412         * rendering/RenderObject.h:
37413         * rendering/RenderPart.cpp:
37414         * rendering/RenderPart.h:
37415         * rendering/RenderView.cpp:
37416         (WebCore::RenderView::updateWidgetPositions):
37417         (WebCore::RenderView::addWidget):
37418         (WebCore::RenderView::removeWidget):
37419         * rendering/RenderView.h:
37420         * rendering/RenderWidget.cpp:
37421         (WebCore::RenderWidget::updateWidgetPosition):
37422         * rendering/RenderWidget.h:
37423
37424 2009-02-13  David Hyatt  <hyatt@apple.com>
37425
37426         Reviewed by Eric Seidel
37427
37428         Remove isEditable() on RenderObject.  It is dead code.
37429
37430         * rendering/RenderObject.cpp:
37431         * rendering/RenderObject.h:
37432
37433 2009-02-13  David Hyatt  <hyatt@apple.com>
37434
37435         Reviewed by Eric Seidel
37436
37437         Add isTextControl() to RenderObject.  Patch call sites thats asked isTextField() || isTextArea() to just use
37438         isTextControl() instead.
37439
37440         Add a toRenderTextControl converter for doing checked casting to RenderTextControls.
37441
37442         * dom/Document.cpp:
37443         (WebCore::Document::setFocusedNode):
37444         * dom/InputElement.cpp:
37445         (WebCore::InputElement::updateSelectionRange):
37446         * editing/ReplaceSelectionCommand.cpp:
37447         (WebCore::ReplacementFragment::ReplacementFragment):
37448         * editing/TextIterator.cpp:
37449         (WebCore::TextIterator::handleReplacedElement):
37450         * html/HTMLInputElement.cpp:
37451         (WebCore::HTMLInputElement::selectionStart):
37452         (WebCore::HTMLInputElement::selectionEnd):
37453         (WebCore::HTMLInputElement::setSelectionStart):
37454         (WebCore::HTMLInputElement::setSelectionEnd):
37455         (WebCore::HTMLInputElement::select):
37456         (WebCore::HTMLInputElement::defaultEventHandler):
37457         (WebCore::HTMLInputElement::selection):
37458         * html/HTMLTextAreaElement.cpp:
37459         (WebCore::HTMLTextAreaElement::selectionStart):
37460         (WebCore::HTMLTextAreaElement::selectionEnd):
37461         (WebCore::HTMLTextAreaElement::setSelectionStart):
37462         (WebCore::HTMLTextAreaElement::setSelectionEnd):
37463         (WebCore::HTMLTextAreaElement::select):
37464         (WebCore::HTMLTextAreaElement::setSelectionRange):
37465         (WebCore::HTMLTextAreaElement::appendFormData):
37466         (WebCore::HTMLTextAreaElement::updateValue):
37467         (WebCore::HTMLTextAreaElement::selection):
37468         * page/AccessibilityRenderObject.cpp:
37469         (WebCore::AccessibilityRenderObject::isNativeTextControl):
37470         (WebCore::AccessibilityRenderObject::text):
37471         (WebCore::AccessibilityRenderObject::selectedText):
37472         (WebCore::AccessibilityRenderObject::selectedTextRange):
37473         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
37474         (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
37475         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
37476         (WebCore::AccessibilityRenderObject::observableObject):
37477         * page/Frame.cpp:
37478         (WebCore::Frame::notifyRendererOfSelectionChange):
37479         * rendering/RenderObject.h:
37480         (WebCore::RenderObject::isTextControl):
37481         (WebCore::objectIsRelayoutBoundary):
37482         * rendering/RenderTextControl.h:
37483         (WebCore::RenderTextControl::isTextControl):
37484         (WebCore::toRenderTextControl):
37485         * rendering/TextControlInnerElements.cpp:
37486         (WebCore::TextControlInnerTextElement::defaultEventHandler):
37487         * wml/WMLInputElement.cpp:
37488         (WebCore::WMLInputElement::select):
37489         (WebCore::WMLInputElement::defaultEventHandler):
37490         (WebCore::WMLInputElement::isConformedToInputMask):
37491
37492 2009-02-13  David Hyatt  <hyatt@apple.com>
37493
37494         Get rid of isEdited/setEdited on RenderObject.  Devirtualize isEdited/setEdited on RenderTextControl.
37495         Callers were already asking if the renderer was a text field (or a text area), so it was especially
37496         pointless to waste a second virtual function call after making one just to determine the object type.
37497
37498         Reviewed by Simon Fraser
37499
37500         * dom/Document.cpp:
37501         (WebCore::Document::setFocusedNode):
37502         * html/HTMLInputElement.cpp:
37503         (WebCore::HTMLInputElement::defaultEventHandler):
37504         * rendering/RenderObject.h:
37505         * rendering/RenderTextControl.h:
37506         (WebCore::RenderTextControl::isEdited):
37507         (WebCore::RenderTextControl::setEdited):
37508
37509 2009-02-13  Scott Violet  <sky@google.com>
37510
37511         Reviewed by Eric Seidel.
37512
37513         https://bugs.webkit.org/show_bug.cgi?id=23934
37514         Skia platform doesn't render text decoration shadows.
37515
37516         Makes Skia render text decoration shadows correctly. We weren't
37517         preparing the SkPaint correctly and didn't have a couple of checks
37518         CG has. Additionally makes the fillColor/strokeColor methods
37519         consistent.
37520
37521         This behavior is covered by existing layout tests (see bug for list).
37522
37523         * platform/graphics/chromium/FontChromiumWin.cpp:
37524         (WebCore::Font::drawGlyphs):
37525         (WebCore::Font::drawComplexText):
37526         * platform/graphics/skia/GraphicsContextSkia.cpp:
37527         (WebCore::GraphicsContext::drawLineForText):
37528         * platform/graphics/skia/PlatformContextSkia.cpp:
37529         (PlatformContextSkia::effectiveFillColor):
37530         (PlatformContextSkia::effectiveStrokeColor):
37531         * platform/graphics/skia/PlatformContextSkia.h:
37532
37533 2009-02-12  Darin Fisher  <darin@chromium.org>
37534
37535         Reviewed by Eric Seidel.
37536
37537         https://bugs.webkit.org/show_bug.cgi?id=23944
37538         KURLGoogle's pre-parsed canonicalSpec constructor should take a CString
37539
37540         * platform/KURL.h:
37541         * platform/KURLGoogle.cpp:
37542         (WebCore::KURLGooglePrivate::setUtf8):
37543         (WebCore::KURLGooglePrivate::setAscii):
37544         (WebCore::KURLGooglePrivate::init):
37545         (WebCore::KURLGooglePrivate::replaceComponents):
37546         (WebCore::KURL::KURL):
37547         * platform/KURLGooglePrivate.h:
37548
37549 2009-02-13  David Hyatt  <hyatt@apple.com>
37550
37551         Remove leftmost/rightmost/lowestPosition from RenderObject.  They only need to be called on boxes.
37552
37553         Reviewed by Dan Bernstein
37554
37555         * rendering/RenderBlock.cpp:
37556         (WebCore::RenderBlock::lowestPosition):
37557         (WebCore::RenderBlock::rightmostPosition):
37558         (WebCore::RenderBlock::leftmostPosition):
37559         * rendering/RenderLayer.cpp:
37560         (WebCore::RenderLayer::computeScrollDimensions):
37561         * rendering/RenderMedia.cpp:
37562         (WebCore::RenderMedia::lowestPosition):
37563         (WebCore::RenderMedia::rightmostPosition):
37564         (WebCore::RenderMedia::leftmostPosition):
37565         * rendering/RenderObject.h:
37566         * rendering/RenderTableSection.cpp:
37567         (WebCore::RenderTableSection::lowestPosition):
37568         (WebCore::RenderTableSection::rightmostPosition):
37569         (WebCore::RenderTableSection::leftmostPosition):
37570
37571 2009-02-12  Simon Fraser  <simon.fraser@apple.com>
37572
37573         Fix build with ACCELERATED_COMPOSITING turned on.
37574
37575         toRenderBox()->x() asserts for a layer on an inline; use
37576         m_owningLayer->renderBoxX() instead.
37577
37578         * rendering/RenderLayerBacking.cpp:
37579         (WebCore::RenderLayerBacking::paintIntoLayer):
37580
37581 2009-02-12  Darin Adler  <darin@apple.com>
37582
37583         Reviewed by Oliver Hunt.
37584
37585         Speed up document.write a bit.
37586
37587         * bindings/js/JSHTMLDocumentCustom.cpp:
37588         (WebCore::documentWrite): Added. Uses SegmentedString to avoid conversion from
37589         UString to String and to avoid appending strings. Also added code to handle
37590         newlines efficiently.
37591         (WebCore::JSHTMLDocument::write): Changed to use documentWrite.
37592         (WebCore::JSHTMLDocument::writeln): Ditto.
37593
37594         * dom/Document.cpp:
37595         (WebCore::Document::prepareToWrite): Added. Refactored the initialization part
37596         of write into a separate function for use in the JavaScript binding.
37597         (WebCore::Document::write): Changed to call prepareToWrite.
37598
37599         * dom/Document.h: Added declaration for prepareToWrite.
37600
37601 2009-02-13  Prasanth Ullattil  <pullatti@trolltech.com>
37602
37603         Reviewed by Simon Hausmann.
37604
37605         Fixes crash in the Qt port on Windows with comboboxes
37606
37607         The focusWidget in the input context is not reset properly.
37608         The QApplication::setFocusWidget() wont reset the IC if the reason is
37609         PopupFocusReason, this is not ideal. For the time being we are going
37610         to do this from webkit itself.
37611
37612         * platform/qt/QWebPopup.cpp:
37613         (WebCore::QWebPopup::hidePopup):
37614
37615 2009-02-12  Kevin Ollivier  <kevino@theolliviers.com>
37616
37617         wx build fix, typo while tweaking last patch for commit.
37618
37619         * platform/wx/wxcode/gtk/fontprops.cpp:
37620         (GetTextExtent):
37621
37622 2009-02-12  miggilin  <mr.diggilin@gmail.com>
37623
37624         Reviewed by Kevin Ollivier.
37625
37626         Use Cairo/PANGO to fix text measurements and implement proper
37627         non-kerned text drawing on wxGTK.
37628
37629         https://bugs.webkit.org/show_bug.cgi?id=17727
37630
37631         * platform/graphics/GlyphBuffer.h:
37632         * platform/graphics/wx/FontPlatformDataWx.cpp:
37633         (WebCore::fontWeightToWxFontWeight):
37634         * platform/graphics/wx/SimpleFontDataWx.cpp:
37635         (WebCore::SimpleFontData::platformWidthForGlyph):
37636         * platform/wx/wxcode/fontprops.h:
37637         * platform/wx/wxcode/gtk/fontprops.cpp:
37638         (wxFontProperties::wxFontProperties):
37639         (GetTextExtent):
37640         * platform/wx/wxcode/gtk/non-kerned-drawing.cpp:
37641         (WebCore::pangoFontMap):
37642         (WebCore::createPangoFontForFont):
37643         (WebCore::createScaledFontForFont):
37644         (WebCore::pango_font_get_glyph):
37645         (WebCore::drawTextWithSpacing):
37646         * platform/wx/wxcode/non-kerned-drawing.h:
37647
37648 2009-02-12  Chris Marrin  <cmarrin@apple.com>
37649
37650         Reviewed by Simon Fraser
37651
37652         https://bugs.webkit.org/show_bug.cgi?id=23942
37653
37654         Hook up 3D CSS transforms to the accelerated compositor backend.
37655         Not enabled by default.
37656
37657         * page/animation/AnimationBase.cpp:
37658         (WebCore::blendFunc):
37659         (WebCore::ensurePropertyMap):
37660         * page/animation/CompositeAnimation.cpp:
37661         (WebCore::CompositeAnimationPrivate::updateTransitions):
37662         * page/animation/ImplicitAnimation.cpp:
37663         (WebCore::ImplicitAnimation::willNeedService):
37664         * page/animation/KeyframeAnimation.cpp:
37665         (WebCore::KeyframeAnimation::willNeedService):
37666         * platform/graphics/GraphicsLayer.cpp:
37667         (WebCore::GraphicsLayer::TransformValueList::makeFunctionList):
37668         (WebCore::GraphicsLayer::dumpProperties):
37669         * platform/graphics/mac/GraphicsLayerCA.mm:
37670         (WebCore::copyTransform):
37671         (WebCore::getValueFunctionNameForTransformOperation):
37672         (WebCore::GraphicsLayerCA::animateTransform):
37673         * rendering/RenderBox.cpp:
37674         (WebCore::RenderBox::updateBoxModelInfoFromStyle):
37675         * rendering/RenderLayer.cpp:
37676         (WebCore::RenderLayer::updateTransform):
37677         (WebCore::RenderLayer::hasTransformStyle3D):
37678         (WebCore::RenderLayer::hasPerspective):
37679         (WebCore::RenderLayer::perspectiveTransform):
37680         * rendering/RenderLayer.h:
37681         * rendering/RenderLayerBacking.cpp:
37682         (WebCore::RenderLayerBacking::updateGraphicsLayers):
37683         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
37684         (WebCore::RenderLayerBacking::computeTransformOrigin):
37685         (WebCore::RenderLayerBacking::computePerspectiveOrigin):
37686         * rendering/RenderLayerBacking.h:
37687         * rendering/RenderLayerCompositor.cpp:
37688         (WebCore::RenderLayerCompositor::has3DContent):
37689         (WebCore::requiresCompositingLayerForTransform):
37690         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
37691         (WebCore::RenderLayerCompositor::layerHas3DContent):
37692         * rendering/RenderLayerCompositor.h:
37693
37694 2009-02-12  David Hyatt  <hyatt@apple.com>
37695
37696         Reviewed by Eric Seidel
37697
37698         Get rid of containingBlockHeight(), since it had only one implementation (despite being virtual) and just returned
37699         containingBlock()->availableHeight().  The latter reads better anyway.  Rename containingBlockWidth() to
37700         containingBlockWidthForContent() and move it to RenderBoxModelObject.
37701
37702         * rendering/RenderBlock.cpp:
37703         (WebCore::RenderBlock::localCaretRect):
37704         * rendering/RenderBox.cpp:
37705         (WebCore::RenderBox::containingBlockWidthForContent):
37706         (WebCore::RenderBox::calcWidth):
37707         (WebCore::RenderBox::calcReplacedWidthUsing):
37708         * rendering/RenderBox.h:
37709         * rendering/RenderBoxModelObject.cpp:
37710         (WebCore::RenderBoxModelObject::relativePositionOffsetX):
37711         (WebCore::RenderBoxModelObject::relativePositionOffsetY):
37712         (WebCore::RenderBoxModelObject::containingBlockWidthForContent):
37713         * rendering/RenderBoxModelObject.h:
37714         * rendering/RenderInline.cpp:
37715         (WebCore::RenderInline::marginLeft):
37716         (WebCore::RenderInline::marginRight):
37717         * rendering/RenderObject.cpp:
37718         * rendering/RenderObject.h:
37719         * rendering/RenderSVGContainer.cpp:
37720         (WebCore::RenderSVGContainer::calcReplacedWidth):
37721
37722 2009-02-12  Simon Fraser  <simon.fraser@apple.com>
37723
37724         Fix non-Mac builds by adding Matrix3DTransformOperation.* and
37725         PerspectiveTransformOperation.*. Cleaned out some cruft in
37726         the WebCore.vcproj fle.
37727
37728         * GNUmakefile.am:
37729         * WebCore.pro:
37730         * WebCore.scons:
37731         * WebCore.vcproj/WebCore.vcproj:
37732
37733 2009-02-12  David Smith  <catfish.man@gmail.com>
37734
37735         Reviewed by Dave Hyatt.
37736
37737         Fix https://bugs.webkit.org/show_bug.cgi?id=23935
37738         Nested :not() and non-simple selectors in :not() should be invalid
37739
37740         * css/CSSGrammar.y: Reject nested :not()
37741         * css/CSSStyleSelector.cpp:
37742         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): ASSERT() rather than checking, since the parser enforces it now
37743
37744 2009-02-12  Kevin Ollivier  <kevino@theolliviers.com>
37745
37746         wx build fixes.
37747
37748         * WebCoreSources.bkl:
37749
37750 2009-02-12  Simon Fraser  <simon.fraser@apple.com>
37751
37752         Fix build with ACCELERATED_COMPOSITING turned on.
37753
37754         Need to cast toRenderBox() in order to call overflowClipRect().
37755
37756         * rendering/RenderLayerBacking.cpp:
37757         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
37758
37759 2009-02-12  Oliver Hunt  <oliver@apple.com>
37760
37761         Reviewed by NOBODY (Build fix).
37762
37763         Fix windows build.
37764
37765         * css/CSSParser.h:
37766
37767 2009-02-12  David Hyatt  <hyatt@apple.com>
37768
37769         Rename getOverflowClipRect and getClipRect to overflowClipRect and clipRect.  Move them to RenderBox, since these methods
37770         only apply to boxes.  Devirtualize clipRect, since it was not subclassed.  Move controlClip stuff to RenderBox also.
37771
37772         Reviewed by Simon Fraser
37773
37774         * editing/Editor.cpp:
37775         (WebCore::Editor::insideVisibleArea):
37776         * rendering/RenderBox.cpp:
37777         (WebCore::RenderBox::overflowClipRect):
37778         (WebCore::RenderBox::clipRect):
37779         * rendering/RenderBox.h:
37780         (WebCore::RenderBox::hasControlClip):
37781         (WebCore::RenderBox::controlClipRect):
37782         * rendering/RenderForeignObject.cpp:
37783         (WebCore::RenderForeignObject::paint):
37784         * rendering/RenderLayer.cpp:
37785         (WebCore::RenderLayer::calculateClipRects):
37786         (WebCore::RenderLayer::calculateRects):
37787         * rendering/RenderLayerBacking.cpp:
37788         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
37789         * rendering/RenderObject.h:
37790         (WebCore::RenderObject::hasClip):
37791         (WebCore::RenderObject::hasOverflowClip):
37792         * rendering/RenderTable.cpp:
37793         (WebCore::RenderTable::overflowClipRect):
37794         * rendering/RenderTable.h:
37795
37796 2009-02-12  Simon Fraser  <simon.fraser@apple.com>
37797
37798         Fix build with ACCELERATED_COMPOSITING turned on (simple copy/paste error)
37799
37800         * platform/graphics/mac/GraphicsLayerCA.mm:
37801         (WebCore::GraphicsLayerCA::setBasicAnimation):
37802
37803 2009-02-12  Julien Chaffraix  <jchaffraix@webkit.org>
37804
37805         Not reviewed.
37806
37807         Release build fix when VIDEO is disabled (it should also
37808         help the builds with WORKERS or XSLT disabled).
37809
37810         * bindings/js/JSDOMWindowBase.cpp:
37811         (jsDOMWindowBaseAudio): Added an UNUSED_PARAM for exec and slot when
37812         VIDEO is disabled.
37813         (jsDOMWindowBaseWorker): Ditto for WORKERS.
37814         (jsDOMWindowBaseXSLTProcessor): Ditto for XSLT.
37815
37816 2009-02-12  Eric Carlson  <eric.carlson@apple.com>
37817
37818         Reviewed by Simon Fraser.
37819
37820         https://bugs.webkit.org/show_bug.cgi?id=23923
37821         Implement mediaPlayerVolumeChanged so a media engine can report autonomous volume changes.
37822         Supporting this requires that we know when we are processing a media engine callback so
37823         we don't turn around and tell the media player to change the volume when it is reporting
37824         a volume change.
37825
37826         * html/HTMLMediaElement.cpp:
37827         (WebCore::HTMLMediaElement::HTMLMediaElement): initialize m_processingMediaPlayerCallback
37828         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged): call begin/endProcessingMediaPlayerCallback
37829         (WebCore::HTMLMediaElement::setNetworkState): logic split out of mediaPlayerNetworkStateChanged
37830         to make it easier to maintain m_processingMediaPlayerCallback.
37831         (WebCore::HTMLMediaElement::mediaPlayerReadyStateChanged): call begin/endProcessingMediaPlayerCallback
37832         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Ditto.
37833         (WebCore::HTMLMediaElement::mediaPlayerRepaint): Ditto.
37834         (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged): New
37835         (WebCore::HTMLMediaElement::updateVolume): Don't change media engine volume if we are processing
37836         a callback from the engine.
37837         * html/HTMLMediaElement.h:
37838         (WebCore::HTMLMediaElement::processingMediaPlayerCallback): New, return true if (m_processingMediaPlayerCallback>0)
37839         (WebCore::HTMLMediaElement::beginProcessingMediaPlayerCallback): New, increment m_processingMediaPlayerCallback
37840         (WebCore::HTMLMediaElement::endProcessingMediaPlayerCallback): New, decrement m_processingMediaPlayerCallback
37841
37842 2009-02-12  Eric Carlson  <eric.carlson@apple.com>
37843
37844         Reviewed by Simon Fraser.
37845
37846         Support MPEG content on Mac and Windows.
37847         <rdar://problem/5917509>
37848         https://bugs.webkit.org/show_bug.cgi?id=23495
37849
37850         Test: media/audio-mpeg-supported.html
37851
37852         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
37853         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
37854
37855         * platform/graphics/win/QTMovieWin.cpp:
37856         (QTMovieWin::disableUnsupportedTracks):
37857
37858         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h: fix typo added in r40925
37859
37860 2009-02-12  David Hyatt  <hyatt@apple.com>
37861
37862         Reviewed by Sam Weinig
37863
37864         Move containsFloats, hasOverhangingFloats, shrinkToAvoidFloats and avoidsFloats down to
37865         RenderBox, since these methods only apply to boxes.
37866
37867         * rendering/RenderBlock.cpp:
37868         (WebCore::RenderBlock::collapseMargins):
37869         (WebCore::RenderBlock::clearFloatsIfNeeded):
37870         (WebCore::RenderBlock::layoutBlockChildren):
37871         (WebCore::RenderBlock::clearFloats):
37872         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
37873         (WebCore::RenderBlock::calcBlockPrefWidths):
37874         * rendering/RenderBlock.h:
37875         (WebCore::RenderBlock::containsFloats):
37876         (WebCore::RenderBlock::hasOverhangingFloats):
37877         * rendering/RenderBox.cpp:
37878         (WebCore::RenderBox::shrinkToAvoidFloats):
37879         (WebCore::RenderBox::avoidsFloats):
37880         * rendering/RenderBox.h:
37881         * rendering/RenderObject.cpp:
37882         * rendering/RenderObject.h:
37883         (WebCore::RenderObject::isFloatingOrPositioned):
37884         * rendering/RenderView.h:
37885
37886 2009-02-12  Chris Marrin  <cmarrin@apple.com>
37887
37888         Reviewed by Dave Hyatt
37889
37890         https://bugs.webkit.org/show_bug.cgi?id=23908
37891
37892         Added parsing of 3d transform functions and properties
37893         (perspective, perspective-origin, transform-style-3d,
37894         and backface-visibility).
37895
37896         Test: transforms/3d/cssmatrix-3d-interface.xhtml
37897
37898         * css/CSSComputedStyleDeclaration.cpp:
37899         (WebCore::):
37900         (WebCore::computedTransform):
37901         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
37902         * css/CSSMutableStyleDeclaration.cpp:
37903         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
37904         * css/CSSParser.cpp:
37905         (WebCore::CSSParser::parseValue):
37906         (WebCore::CSSParser::parseFillProperty):
37907         (WebCore::CSSParser::parseTransformOriginShorthand):
37908         (WebCore::TransformOperationInfo::TransformOperationInfo):
37909         (WebCore::CSSParser::parseTransform):
37910         (WebCore::CSSParser::parseTransformOrigin):
37911         (WebCore::CSSParser::parsePerspectiveOrigin):
37912         * css/CSSParser.h:
37913         * css/CSSPrimitiveValue.h:
37914         (WebCore::CSSPrimitiveValue::isUnitTypeLength):
37915         * css/CSSPropertyNames.in:
37916         * css/CSSStyleSelector.cpp:
37917         (WebCore::CSSStyleSelector::adjustRenderStyle):
37918         (WebCore::convertToLength):
37919         (WebCore::CSSStyleSelector::applyProperty):
37920         (WebCore::CSSStyleSelector::mapFillSize):
37921         (WebCore::CSSStyleSelector::mapFillXPosition):
37922         (WebCore::CSSStyleSelector::mapFillYPosition):
37923         (WebCore::getTransformOperationType):
37924         (WebCore::CSSStyleSelector::createTransformOperations):
37925         * css/CSSValueKeywords.in:
37926         * css/WebKitCSSTransformValue.cpp:
37927         (WebCore::WebKitCSSTransformValue::cssText):
37928         * css/WebKitCSSTransformValue.h:
37929         (WebCore::WebKitCSSTransformValue::):
37930         * css/WebKitCSSTransformValue.idl:
37931         * platform/graphics/transforms/Matrix3DTransformOperation.cpp:
37932         * platform/graphics/transforms/Matrix3DTransformOperation.h:
37933         * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
37934         * platform/graphics/transforms/PerspectiveTransformOperation.h:
37935         * platform/graphics/transforms/RotateTransformOperation.cpp:
37936         (WebCore::RotateTransformOperation::blend):
37937         * platform/graphics/transforms/RotateTransformOperation.h:
37938         (WebCore::RotateTransformOperation::RotateTransformOperation):
37939         * platform/graphics/transforms/ScaleTransformOperation.h:
37940         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
37941         * platform/graphics/transforms/TransformOperation.h:
37942         (WebCore::TransformOperation::is3DOperation):
37943         * platform/graphics/transforms/TransformOperations.h:
37944         (WebCore::TransformOperations::has3DOperation):
37945         * platform/graphics/transforms/TranslateTransformOperation.h:
37946         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
37947
37948 2009-02-12  Kevin Ollivier  <kevino@theolliviers.com>
37949
37950         wx build fix.
37951
37952         * webcore-base.bkl:
37953
37954 2009-02-12  Brady Eidson  <beidson@apple.com>
37955
37956         Reviewed by Darin Adler
37957
37958         Fix potential ref-count or null-deref problems with C++ objects as Obj-C members.
37959
37960         * platform/mac/SharedBufferMac.mm: Change to use RefPtr<> instead of ref()/deref().
37961         (-[WebCoreSharedBufferData dealloc]):
37962         (-[WebCoreSharedBufferData finalize]):
37963         (-[WebCoreSharedBufferData initWithSharedBuffer:]):
37964
37965 2009-02-12  David Hyatt  <hyatt@apple.com>
37966
37967         Remove calcWidth from RenderObject.  Nobody ever called it on RenderObjects.
37968
37969         Reviewed by Sam Weinig
37970
37971         * rendering/RenderObject.h:
37972
37973 2009-02-12  David Hyatt  <hyatt@apple.com>
37974
37975         Reviewed by Mark Rowe
37976
37977         Fix for regression where form controls would paint yellow highlights.  The containsComposition check needs to
37978         null check node() now.
37979
37980         * rendering/InlineTextBox.cpp:
37981         (WebCore::InlineTextBox::paint):
37982
37983 2009-02-12  Simon Fraser  <simon.fraser@apple.com>
37984
37985         Build fix
37986
37987         Change Animation::setDirection() to take the new enum value, and fix
37988         the single caller.
37989
37990         Fix build error in MediaPlayerPrivateQTKit.h.
37991
37992         * css/CSSStyleSelector.cpp:
37993         (WebCore::CSSStyleSelector::mapAnimationDirection):
37994         * platform/animation/Animation.h:
37995         (WebCore::Animation::setDirection):
37996         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
37997
37998 2009-02-12  David Hyatt  <hyatt@apple.com>
37999
38000         Reviewed by Simon Fraser
38001
38002         Remove the overrideSize methods from RenderObject.  Devirtualize all of the accessors on RenderBox.
38003
38004         * rendering/RenderBox.h:
38005         * rendering/RenderObject.h:
38006
38007 2009-02-12  Eric Carlson  <eric.carlson@apple.com>
38008
38009         Darin Adler, Antti Koivisto, Holger Hans Peter Freyther
38010
38011         Bug 23797: A platform should be able to use more than one media engine for <video> and <audio>
38012         https://bugs.webkit.org/show_bug.cgi?id=23797
38013
38014         * WebCore.xcodeproj/project.pbxproj: add MediaPlayerPrivate.h
38015
38016         * html/HTMLMediaElement.cpp:
38017         (WebCore::HTMLMediaElement::load): selectMediaURL now also returns a MIME type, pass it to
38018         MediaPlayer::load so it can choose the right media engine
38019         (WebCore::HTMLMediaElement::selectMediaURL): renamed from pickMedia. use MIMETypeRegistry
38020         functions to strip params from the url and extract the codecs parameter. call
38021         MediaPlayer::supportsType to see if we can open the file since only a media engine can
38022         answer questions about supported type+codecs.
38023         * html/HTMLMediaElement.h:
38024
38025         * platform/MIMETypeRegistry.cpp:
38026         (WebCore::MIMETypeRegistry::getParameterFromMIMEType): New, find and return a MIME type parameter
38027         (WebCore::MIMETypeRegistry::stripParametersFromMIMEType): New, strip all parameters from a MIME type
38028         * platform/MIMETypeRegistry.h:
38029
38030         * platform/graphics/MediaPlayer.cpp:
38031         (WebCore::NullMediaPlayerPrivate::NullMediaPlayerPrivate):
38032         (WebCore::NullMediaPlayerPrivate::load):
38033         (WebCore::NullMediaPlayerPrivate::cancelLoad):
38034         (WebCore::NullMediaPlayerPrivate::play):
38035         (WebCore::NullMediaPlayerPrivate::pause):
38036         (WebCore::NullMediaPlayerPrivate::naturalSize):
38037         (WebCore::NullMediaPlayerPrivate::hasVideo):
38038         (WebCore::NullMediaPlayerPrivate::setVisible):
38039         (WebCore::NullMediaPlayerPrivate::duration):
38040         (WebCore::NullMediaPlayerPrivate::currentTime):
38041         (WebCore::NullMediaPlayerPrivate::seek):
38042         (WebCore::NullMediaPlayerPrivate::seeking):
38043         (WebCore::NullMediaPlayerPrivate::setEndTime):
38044         (WebCore::NullMediaPlayerPrivate::setRate):
38045         (WebCore::NullMediaPlayerPrivate::paused):
38046         (WebCore::NullMediaPlayerPrivate::setVolume):
38047         (WebCore::NullMediaPlayerPrivate::networkState):
38048         (WebCore::NullMediaPlayerPrivate::readyState):
38049         (WebCore::NullMediaPlayerPrivate::maxTimeSeekable):
38050         (WebCore::NullMediaPlayerPrivate::maxTimeBuffered):
38051         (WebCore::NullMediaPlayerPrivate::dataRate):
38052         (WebCore::NullMediaPlayerPrivate::totalBytesKnown):
38053         (WebCore::NullMediaPlayerPrivate::totalBytes):
38054         (WebCore::NullMediaPlayerPrivate::bytesLoaded):
38055         (WebCore::NullMediaPlayerPrivate::setRect):
38056         (WebCore::NullMediaPlayerPrivate::paint):
38057         (WebCore::createNullMediaPlayer):
38058         Do nothing media player so MediaPlayer doesn't have to NULL check before calling current engine.
38059
38060         (WebCore::MediaPlayerFactory::MediaPlayerFactory): New, factory constructor.
38061         (WebCore::installedMediaEngines): New, returns vector of all installed engines.
38062         (WebCore::addMediaEngine): New, add a media engine to the cache.
38063         (WebCore::chooseBestEngineForTypeAndCodecs): New, return an engine that might support a MIME type.
38064         (WebCore::MediaPlayer::MediaPlayer): create NULL media player so we have a default. Initialize m_currentMediaEngine.
38065         (WebCore::MediaPlayer::~MediaPlayer): don't need to delete m_private, it is now an OwnPtr.
38066         (WebCore::MediaPlayer::load): Take MIME type as well as url, since we need it to find the right
38067           media engine. If no MIME type is provided, try to devine one from the url. Choose a media engine
38068           based on the MIME type and codecs parameter.
38069         (WebCore::MediaPlayer::currentTime): Remove excess white space.
38070         (WebCore::MediaPlayer::supportsType): Take codecs param as well as MIME type. Return enum so we can
38071         indicate "maybe" condition.
38072         (WebCore::MediaPlayer::getSupportedTypes): Build up list of MIME types by consulting all engines.
38073         (WebCore::MediaPlayer::isAvailable): return true if any media engine is installed.
38074
38075         * platform/graphics/MediaPlayer.h:
38076         (WebCore::MediaPlayer::):
38077         (WebCore::MediaPlayer::frameView): accessor function.
38078
38079         * platform/graphics/MediaPlayerPrivate.h: New, declares abstract interface for media engines.
38080         (WebCore::MediaPlayerPrivateInterface::~MediaPlayerPrivateInterface):
38081         (WebCore::MediaPlayerPrivateInterface::totalBytesKnown):
38082
38083         * platform/graphics/chromium/MediaPlayerPrivateChromium.h: Add support for engine factory
38084
38085         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
38086         (WebCore::MediaPlayerPrivate::create): New, media engine factory function
38087         (WebCore::MediaPlayerPrivate::registerMediaEngine): Register engine with MediaPlayer factory
38088         (WebCore::MediaPlayerPrivate::load): URL is a const String.
38089         (WebCore::MediaPlayerPrivate::duration): Declare const.
38090         (WebCore::MediaPlayerPrivate::naturalSize): Ditto.
38091         (WebCore::MediaPlayerPrivate::hasVideo): Ditto.
38092         (WebCore::MediaPlayerPrivate::networkState): Ditto.
38093         (WebCore::MediaPlayerPrivate::readyState): Ditto.
38094         (WebCore::MediaPlayerPrivate::maxTimeBuffered): Ditto.
38095         (WebCore::MediaPlayerPrivate::maxTimeSeekable): Ditto.
38096         (WebCore::MediaPlayerPrivate::maxTimeLoaded): Ditto.
38097         (WebCore::MediaPlayerPrivate::bytesLoaded): Ditto.
38098         (WebCore::MediaPlayerPrivate::totalBytesKnown): Ditto.
38099         (WebCore::MediaPlayerPrivate::totalBytes): Ditto.
38100         (WebCore::MediaPlayerPrivate::supportsType): Return MediaPlayer::SupportsType enum instead of bool.
38101         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
38102         (WebCore::MediaPlayerPrivate::isAvailable):
38103
38104         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
38105         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
38106         (WebCore::MediaPlayerPrivateQTKit::create): New, media engine factory function
38107         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Register engine with MediaPlayer factory
38108         (WebCore::MediaPlayerPrivate::createQTMovieView): don't access MediaPlayer->m_frameView directly,
38109         use accessor function.
38110         (WebCore::MediaPlayerPrivate::setUpVideoRendering): Ditto.
38111         (WebCore::MediaPlayerPrivate::paint): Ditto.
38112         (WebCore::mimeTypeCache): New.
38113         (WebCore::MediaPlayerPrivate::getSupportedTypes): New, media engine factory function.
38114         (WebCore::MediaPlayerPrivate::supportsType): return MediaPlayer::SupportsType enum instead of bool
38115         (-[WebCoreMovieObserver initWithCallback:]): fix formatting
38116
38117         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
38118         (WebCore::MediaPlayerPrivate::create):
38119         (WebCore::MediaPlayerPrivate::registerMediaEngine):
38120         (WebCore::MediaPlayerPrivate::supportsType):
38121         (WebCore::MediaPlayerPrivate::load): URL is a const String.
38122         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
38123         (WebCore::MediaPlayerPrivate::isAvailable):
38124
38125         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
38126         (WebCore::MediaPlayerPrivate::create): New, media engine factory function
38127         (WebCore::MediaPlayerPrivate::registerMediaEngine): New, register engine with MediaPlayer factory
38128         (WebCore::MediaPlayerPrivate::load): URL is a const String.
38129         (WebCore::MediaPlayerPrivate::paint): don't access MediaPlayer->m_frameView directly,
38130         use accessor function.
38131         (WebCore::mimeTypeCache): New.
38132         (WebCore::MediaPlayerPrivateQTWin::getSupportedTypes): New, media engine factory function.
38133         (WebCore::MediaPlayerPrivateQTWin::supportsType): return MediaPlayer::SupportsType enum instead of bool
38134         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
38135
38136 2009-02-12  Julien Chaffraix  <jchaffraix@webkit.org>
38137
38138         Reviewed by Darin Adler.
38139
38140         Test: fast/dom/prefixed-image-tag.xhtml
38141
38142         Bug 23915: Remove setPrefix work-around in Document::createElement(QualifiedName, bool)
38143
38144         Instead we now directly propage the QualifiedName inside the generated Factory.
38145
38146         Test: fast/dom/prefixed-image-tag.xhtml
38147
38148         * dom/Document.cpp:
38149         (WebCore::Document::createElement): Removed the setPrefix work-around
38150         and replaced it with an ASSERT to catch mistakes inside the Factory code.
38151         Remove the unneeded ExceptionCode argument.
38152
38153         (WebCore::Document::createElementNS): Removed ExceptionCode argument.
38154         * dom/Document.h: Updated the signature.
38155         * dom/XMLTokenizerLibxml2.cpp:
38156         (WebCore::XMLTokenizer::startElementNs): Removed ExceptionCode argument.
38157         * dom/XMLTokenizerQt.cpp: Ditto.
38158         (WebCore::XMLTokenizer::parseStartElement): Ditto.
38159
38160         * dom/make_names.pl: Implemented the QualifiedName propogation logic
38161         in the Factory.
38162
38163 2009-02-12  Simon Fraser  <simon.fraser@apple.com>
38164
38165         Reviewed by Dave Hyatt
38166
38167         https://bugs.webkit.org/show_bug.cgi?id=23188
38168
38169         Define enum values for Animation::direction(), and one for
38170         IterationCountInfinite to make the code more self-documenting.
38171
38172         Order the member vars of Animation to optimize packing.
38173
38174         * css/CSSComputedStyleDeclaration.cpp:
38175         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
38176         * platform/animation/Animation.cpp:
38177         (WebCore::Animation::Animation):
38178         (WebCore::Animation::operator=):
38179         (WebCore::Animation::animationsMatch):
38180         * platform/animation/Animation.h:
38181         (WebCore::Animation::):
38182         (WebCore::Animation::direction):
38183         (WebCore::Animation::initialAnimationDirection):
38184         * platform/graphics/mac/GraphicsLayerCA.mm:
38185         (WebCore::GraphicsLayerCA::setBasicAnimation):
38186         (WebCore::GraphicsLayerCA::setKeyframeAnimation):
38187
38188 2009-02-12  Christian Dywan  <christian@twotoasts.de>
38189
38190         Reviewed by Holger Freyther.
38191
38192         * platform/network/soup/ResourceHandleSoup.cpp:
38193         (WebCore::ResourceHandle::startHttp): Don't use O_CLOEXEC for now.
38194
38195 2009-02-12  Julien Chaffraix  <jchaffraix@webkit.org>
38196
38197         Reviewed by Darin Adler.
38198
38199         Bug 23826: Potential bug with before/after rule while moving element from one document to another
38200
38201         Moved the document before/after toggle from the constructor to insertedIntoDocument.
38202
38203         Test: fast/css-generated-content/beforeAfter-interdocument.html
38204
38205         * html/HTMLQuoteElement.cpp:
38206         (WebCore::HTMLQuoteElement::HTMLQuoteElement):
38207         (WebCore::HTMLQuoteElement::insertedIntoDocument):
38208         * html/HTMLQuoteElement.h:
38209
38210 2009-02-12  David Hyatt  <hyatt@apple.com>
38211
38212         Reviewed by Simon Fraser
38213
38214         Fix for https://bugs.webkit.org/show_bug.cgi?id=23912
38215
38216         I have no idea why this broke.  As far as I can tell the old code never should have worked in
38217         the first place.  Add code to handleWheelEvent that will find an enclosing renderer for a node
38218         in order to attempt a wheel scroll.
38219
38220         * page/EventHandler.cpp:
38221         (WebCore::EventHandler::handleWheelEvent):
38222
38223 2009-02-12  David Hyatt  <hyatt@apple.com>
38224
38225         Move the functions that paint borders, box shadows and border images into RenderBoxModelObject.  drawBorder and drawBorderArc, because they are used
38226         for outlines as well as borders, need to stay in RenderObject.  Rename them to drawLineForBoxSide and drawArcForBoxSide in order to reflect their
38227         more generic use.  Rename the BorderSide struct to BoxSide, since the concept of "side" is just a rectangle concept and not a border concept.
38228
38229         Reviewed by Simon Fraser
38230
38231         * rendering/InlineFlowBox.cpp:
38232         (WebCore::InlineFlowBox::paintFillLayer):
38233         (WebCore::InlineFlowBox::paintBoxShadow):
38234         (WebCore::InlineFlowBox::paintBoxDecorations):
38235         (WebCore::InlineFlowBox::paintMask):
38236         * rendering/RenderBlock.cpp:
38237         (WebCore::RenderBlock::paintColumns):
38238         * rendering/RenderBoxModelObject.cpp:
38239         (WebCore::RenderBoxModelObject::paintNinePieceImage):
38240         (WebCore::RenderBoxModelObject::paintBorder):
38241         (WebCore::RenderBoxModelObject::paintBoxShadow):
38242         * rendering/RenderBoxModelObject.h:
38243         * rendering/RenderFieldset.cpp:
38244         (WebCore::RenderFieldset::paintBorderMinusLegend):
38245         * rendering/RenderInline.cpp:
38246         (WebCore::RenderInline::paintOutlineForLine):
38247         * rendering/RenderObject.cpp:
38248         (WebCore::RenderObject::drawLineForBoxSide):
38249         (WebCore::RenderObject::drawArcForBoxSide):
38250         (WebCore::RenderObject::paintOutline):
38251         * rendering/RenderObject.h:
38252         (WebCore::):
38253         (WebCore::RenderObject::hasBoxDecorations):
38254         * rendering/RenderTableCell.cpp:
38255         (WebCore::CollapsedBorders::addBorder):
38256         (WebCore::RenderTableCell::paintCollapsedBorder):
38257
38258 2009-02-12  Eric Carlson  <eric.carlson@apple.com>
38259
38260         Reviewed by Simon Fraser
38261
38262         Bug 18322: video element should have ui when scripting is disabled
38263         https://bugs.webkit.org/show_bug.cgi?id=18322
38264
38265         * html/HTMLMediaElement.cpp:
38266         (WebCore::HTMLMediaElement::controls): always return 'true' when JavaScript is disabled.
38267         * manual-tests/media-controls-when-javascript-disabled.html: Added.
38268
38269 2009-02-12  Dimitri Glazkov  <dglazkov@chromium.org>
38270
38271         Reviewed by Eric Seidel.
38272
38273         https://bugs.webkit.org/show_bug.cgi?id=23906
38274         Add custom V8 bindings for HTMLPlugInElement.
38275
38276         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp: Added.
38277         (WebCore::NAMED_PROPERTY_GETTER):
38278         (WebCore::NAMED_PROPERTY_SETTER):
38279         (WebCore::CALLBACK_FUNC_DECL):
38280         (WebCore::INDEXED_PROPERTY_GETTER):
38281         (WebCore::INDEXED_PROPERTY_SETTER):
38282
38283 2009-02-12  Gustavo Noronha Silva  <gns@gnome.org>
38284
38285         Reviewed by Mark Rowe.
38286
38287         [GTK] Soup backend must handle upload of multiple files
38288         https://bugs.webkit.org/show_bug.cgi?id=18343
38289
38290         * platform/network/soup/ResourceHandleSoup.cpp:
38291         (WebCore::):
38292         (WebCore::freeFileMapping):
38293         (WebCore::ResourceHandle::startHttp): Support multipart request bodies
38294         mmap'ing files to be uploaded.
38295
38296 2009-02-12  Adam Treat  <adam.treat@torchmobile.com>
38297
38298         Fix the Qt build following r40871 which changed RenderObject::element()
38299         into RenderObject::node().
38300
38301         * platform/qt/RenderThemeQt.cpp:
38302         (WebCore::RenderThemeQt::getMediaElementFromRenderObject):
38303         (WebCore::RenderThemeQt::getMediaControlForegroundColor):
38304
38305 2009-02-12  Alexey Proskuryakov  <ap@webkit.org>
38306
38307         Build fix.
38308
38309         * platform/graphics/transforms/RotateTransformOperation.cpp: Include <algorithm>.
38310
38311 2009-02-12  Jian Li  <jianli@chromium.org>
38312
38313         Reviewed by Alexey Proskuryakov.
38314
38315         Change worker code to use different proxy class pointers.
38316         https://bugs.webkit.org/show_bug.cgi?id=23859
38317
38318         This is a step towards using separate proxies in multi-process implementation.
38319
38320         * bindings/js/WorkerScriptController.cpp:
38321         (WebCore::WorkerScriptController::evaluate):
38322         * dom/Worker.cpp:
38323         (WebCore::Worker::Worker):
38324         (WebCore::Worker::~Worker):
38325         (WebCore::Worker::postMessage):
38326         (WebCore::Worker::terminate):
38327         (WebCore::Worker::hasPendingActivity):
38328         (WebCore::Worker::notifyFinished):
38329         (WebCore::Worker::dispatchMessage):
38330         * dom/Worker.h:
38331         * dom/WorkerContext.cpp:
38332         (WebCore::WorkerContext::~WorkerContext):
38333         (WebCore::WorkerContext::reportException):
38334         (WebCore::WorkerContext::addMessage):
38335         (WebCore::WorkerContext::postMessage):
38336         (WebCore::WorkerContext::dispatchMessage):
38337         * dom/WorkerContext.h:
38338         * dom/WorkerContextProxy.h:
38339         * dom/WorkerMessagingProxy.cpp:
38340         (WebCore::MessageWorkerContextTask::performTask):
38341         (WebCore::MessageWorkerTask::performTask):
38342         (WebCore::WorkerContextProxy::create):
38343         (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
38344         (WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
38345         (WebCore::WorkerMessagingProxy::startWorkerContext):
38346         (WebCore::postConsoleMessageTask):
38347         (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
38348         (WebCore::WorkerMessagingProxy::workerThreadCreated):
38349         * dom/WorkerMessagingProxy.h:
38350         * dom/WorkerObjectProxy.h:
38351         * dom/WorkerThread.cpp:
38352         (WebCore::WorkerThread::create):
38353         (WebCore::WorkerThread::WorkerThread):
38354         (WebCore::WorkerThread::workerThread):
38355         * dom/WorkerThread.h:
38356         (WebCore::WorkerThread::workerObjectProxy):
38357         * loader/WorkerThreadableLoader.cpp:
38358         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
38359
38360 2009-02-12  David Levin  <levin@chromium.org>
38361
38362         Reviewed by Alexey Proskuryakov.
38363
38364         Bug 23688: ThreadableLoader needs a sync implementation for Workers.
38365         <https://bugs.webkit.org/show_bug.cgi?id=23688>
38366
38367         Add ResourceError to ThreadableLoaderClient.
38368
38369         No observable change in behavior, so no test.
38370
38371         * loader/DocumentThreadableLoader.cpp:
38372         (WebCore::DocumentThreadableLoader::create):
38373         (WebCore::DocumentThreadableLoader::willSendRequest):
38374         (WebCore::DocumentThreadableLoader::didFail):
38375         * loader/ThreadableLoaderClient.h:
38376         (WebCore::ThreadableLoaderClient::didFail):
38377         (WebCore::ThreadableLoaderClient::didFailWillSendRequestCheck):
38378         * loader/ThreadableLoaderClientWrapper.h:
38379         (WebCore::ThreadableLoaderClientWrapper::didFail):
38380         * loader/WorkerThreadableLoader.cpp:
38381         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
38382         (WebCore::workerContextDidFail):
38383         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
38384         * loader/WorkerThreadableLoader.h:
38385         * xml/XMLHttpRequest.cpp:
38386         (WebCore::XMLHttpRequest::didFail):
38387         (WebCore::XMLHttpRequest::didFailWillSendRequestCheck):
38388         * xml/XMLHttpRequest.h:
38389
38390 2009-02-11  Simon Fraser  <simon.fraser@apple.com>
38391
38392         Reviewed by Dave Hyatt
38393
38394         Fix the build on Leopard with ACCELERATED_COMPOSITING turned on.
38395
38396         * WebCore.xcodeproj/project.pbxproj:
38397         FloatPoint3D needs to be a private header, since it's included by GraphicsLayer.h
38398         * platform/graphics/mac/GraphicsLayerCA.mm:
38399         (WebCore::getTransformFunctionValue):
38400         (WebCore::caValueFunctionSupported):
38401         (WebCore::GraphicsLayerCA::setAnchorPoint):
38402         (WebCore::GraphicsLayerCA::setPreserves3D):
38403         (WebCore::GraphicsLayerCA::setContentsToImage):
38404         (WebCore::GraphicsLayerCA::setBasicAnimation):
38405         (WebCore::GraphicsLayerCA::setKeyframeAnimation):
38406         * rendering/RenderLayer.h:
38407         (WebCore::RenderLayer::isRootLayer):
38408         Fix isRootLayer to return true for the renderView's layer, not the root
38409         renderer's layer.
38410
38411 2009-02-11  Adele Peterson  <adele@apple.com>
38412
38413         Reviewed by Oliver Hunt.
38414
38415         Fix for https://bugs.webkit.org/show_bug.cgi?id=23910
38416         <rdar://problem/6160546> REGRESSION: In Full page mode, movie controller hides when I drag the knob if movie is playing
38417
38418         * rendering/RenderMedia.cpp: (WebCore::RenderMedia::forwardEvent):
38419         When we get a mouseOut event, consider the mouse as still within the RenderMedia if the relatedTarget is a descendant.
38420
38421 2009-02-11  David Hyatt  <hyatt@apple.com>
38422
38423         Remove all of the inline box wrapper functions from RenderObject, since they only apply to RenderBox.  Devirtualize the functions.
38424         Patch all of the call sites to convert to a RenderBox.
38425
38426         Reviewed by Simon Fraser
38427
38428         * dom/Position.cpp:
38429         (WebCore::nextRenderedEditable):
38430         (WebCore::previousRenderedEditable):
38431         (WebCore::Position::getInlineBoxAndOffset):
38432         * rendering/InlineBox.cpp:
38433         (WebCore::InlineBox::deleteLine):
38434         (WebCore::InlineBox::extractLine):
38435         (WebCore::InlineBox::attachLine):
38436         * rendering/RenderLineBoxList.cpp:
38437         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
38438         * rendering/RenderObject.cpp:
38439         * rendering/RenderObject.h:
38440         * rendering/RenderObjectChildList.cpp:
38441         (WebCore::RenderObjectChildList::removeChildNode):
38442         * rendering/RenderTextControl.cpp:
38443         (WebCore::RenderTextControl::textWithHardLineBreaks):
38444
38445 2009-02-11  David Hyatt  <hyatt@apple.com>
38446
38447         Eliminate createInlineBox and dirtyLineBoxes from RenderObject.  These functions have been devirtualized.
38448         The single call site now calls a helper function that just bit checks and casts before calling the correct
38449         type.  RenderBlock's dirtyLineBoxes function was dead code (caused by the RenderFlow deletion), so it has
38450         just been removed.
38451
38452         Reviewed by Eric Seidel
38453
38454         * rendering/RenderBR.cpp:
38455         * rendering/RenderBR.h:
38456         * rendering/RenderBlock.cpp:
38457         (WebCore::RenderBlock::createRootInlineBox):
38458         * rendering/RenderBlock.h:
38459         * rendering/RenderBox.cpp:
38460         (WebCore::RenderBox::createInlineBox):
38461         * rendering/RenderBox.h:
38462         * rendering/RenderCounter.cpp:
38463         * rendering/RenderCounter.h:
38464         * rendering/RenderInline.cpp:
38465         (WebCore::RenderInline::createInlineFlowBox):
38466         * rendering/RenderInline.h:
38467         * rendering/RenderObject.cpp:
38468         * rendering/RenderObject.h:
38469         * rendering/RenderSVGInlineText.cpp:
38470         (WebCore::RenderSVGInlineText::createTextBox):
38471         * rendering/RenderSVGInlineText.h:
38472         (WebCore::RenderSVGInlineText::isSVGText):
38473         * rendering/RenderText.cpp:
38474         (WebCore::RenderText::createTextBox):
38475         (WebCore::RenderText::createInlineTextBox):
38476         * rendering/RenderText.h:
38477         * rendering/bidi.cpp:
38478         (WebCore::createInlineBoxForRenderer):
38479         (WebCore::RenderBlock::createLineBoxes):
38480         (WebCore::RenderBlock::constructLine):
38481         (WebCore::RenderBlock::layoutInlineChildren):
38482
38483 2009-02-11  Chris Marrin  <cmarrin@apple.com>
38484
38485         Reviewed by Dave Hyatt.
38486
38487         https://bugs.webkit.org/show_bug.cgi?id=23905
38488
38489         Adds support for 3D CSS properties (transform-style-3d, perspective,
38490         perspective-origin, and backface-visibility) to RenderStyle and friends
38491
38492         * platform/graphics/transforms/TransformOperation.h
38493         * rendering/style/RenderStyle.cpp:
38494         (WebCore::RenderStyle::diff):
38495         (WebCore::RenderStyle::applyTransform):
38496         * rendering/style/RenderStyle.h:
38497         (WebCore::InheritedFlags::transformOriginZ):
38498         (WebCore::InheritedFlags::hasTransformRelatedProperty):
38499         (WebCore::InheritedFlags::transformStyle3D):
38500         (WebCore::InheritedFlags::backfaceVisibility):
38501         (WebCore::InheritedFlags::perspective):
38502         (WebCore::InheritedFlags::perspectiveOriginX):
38503         (WebCore::InheritedFlags::perspectiveOriginY):
38504         (WebCore::InheritedFlags::setTransformOriginZ):
38505         (WebCore::InheritedFlags::setTransformStyle3D):
38506         (WebCore::InheritedFlags::setBackfaceVisibility):
38507         (WebCore::InheritedFlags::setPerspective):
38508         (WebCore::InheritedFlags::setPerspectiveOriginX):
38509         (WebCore::InheritedFlags::setPerspectiveOriginY):
38510         (WebCore::InheritedFlags::initialTransformOriginZ):
38511         (WebCore::InheritedFlags::initialTransformStyle3D):
38512         (WebCore::InheritedFlags::initialBackfaceVisibility):
38513         (WebCore::InheritedFlags::initialPerspective):
38514         (WebCore::InheritedFlags::initialPerspectiveOriginX):
38515         (WebCore::InheritedFlags::initialPerspectiveOriginY):
38516         * rendering/style/RenderStyleConstants.h:
38517         (WebCore::):
38518         * rendering/style/StyleRareNonInheritedData.cpp:
38519         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
38520         (WebCore::StyleRareNonInheritedData::operator==):
38521         * rendering/style/StyleRareNonInheritedData.h:
38522         * rendering/style/StyleTransformData.cpp:
38523         (WebCore::StyleTransformData::StyleTransformData):
38524         (WebCore::StyleTransformData::operator==):
38525         * rendering/style/StyleTransformData.h:
38526
38527 2009-02-11  Simon Fraser  <simon.fraser@apple.com>
38528
38529         No review.
38530
38531         Fix ACCELERATED_COMPOSITING build.
38532
38533         * rendering/RenderLayerBacking.cpp:
38534         (WebCore::RenderLayerBacking::createGraphicsLayer):
38535         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
38536         * rendering/RenderLayerCompositor.cpp:
38537         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
38538
38539 2009-02-11  Simon Fraser  <simon.fraser@apple.com>
38540
38541         Reviewed by Dave Hyatt
38542
38543         https://bugs.webkit.org/show_bug.cgi?id=23862
38544
38545         Add a bit on RenderStyle that gets set when running accelerated
38546         transitions of transform or opacity. These ensure that styles
38547         compare as different during the transition, so that interruption
38548         can be detected reliably.
38549
38550         * page/animation/ImplicitAnimation.cpp:
38551         (WebCore::ImplicitAnimation::animate):
38552         * rendering/style/RenderStyle.h:
38553         (WebCore::InheritedFlags::isRunningAcceleratedAnimation):
38554         (WebCore::InheritedFlags::setIsRunningAcceleratedAnimation):
38555         * rendering/style/StyleRareNonInheritedData.cpp:
38556         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
38557         (WebCore::StyleRareNonInheritedData::operator==):
38558         * rendering/style/StyleRareNonInheritedData.h:
38559
38560 2009-02-11  David Hyatt  <hyatt@apple.com>
38561
38562         Eliminate the virtual position() function from RenderObject.  Rename the position() overrides
38563         in RenderText and RenderBox to positionLineBox and devirtualize them.
38564
38565         Patch the one call site to just check for isText() and isBox() and call the methods directly.
38566
38567         Remove some unnecessary overrides of position() on table sections and rows.
38568
38569         Reviewed by Simon Fraser
38570
38571         * rendering/RenderBox.cpp:
38572         (WebCore::RenderBox::positionLineBox):
38573         * rendering/RenderBox.h:
38574         * rendering/RenderObject.h:
38575         * rendering/RenderSVGRoot.cpp:
38576         * rendering/RenderSVGRoot.h:
38577         * rendering/RenderTableRow.h:
38578         (WebCore::RenderTableRow::lineHeight):
38579         * rendering/RenderTableSection.h:
38580         (WebCore::RenderTableSection::lineHeight):
38581         * rendering/RenderText.cpp:
38582         (WebCore::RenderText::positionLineBox):
38583         * rendering/RenderText.h:
38584         * rendering/bidi.cpp:
38585         (WebCore::RenderBlock::computeVerticalPositionsForLine):
38586
38587 2009-02-11  Dimitri Glazkov  <dglazkov@chromium.org>
38588
38589         Reviewed by Eric Seidel.
38590
38591         https://bugs.webkit.org/show_bug.cgi?id=23901
38592         Add HTML options/collections V8 custom bindings.
38593
38594         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Added.
38595         (WebCore::getNamedItems):
38596         (WebCore::getItem):
38597         (WebCore::NAMED_PROPERTY_GETTER):
38598         (WebCore::CALLBACK_FUNC_DECL):
38599         * bindings/v8/custom/V8HTMLFormElementCustom.cpp: Added.
38600         (WebCore::NAMED_PROPERTY_GETTER):
38601         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
38602         (WebCore::ACCESSOR_GETTER):
38603         (WebCore::ACCESSOR_SETTER):
38604         (WebCore::CALLBACK_FUNC_DECL):
38605         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
38606         (WebCore::CALLBACK_FUNC_DECL):
38607         (WebCore::ACCESSOR_SETTER):
38608         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp: Added.
38609         (WebCore::CALLBACK_FUNC_DECL):
38610         (WebCore::removeElement):
38611         * bindings/v8/custom/V8HTMLSelectElementCustom.h: Added.
38612         * bindings/v8/custom/V8NamedNodesCollection.cpp: Added.
38613         (WebCore::V8NamedNodesCollection::item):
38614         (WebCore::V8NamedNodesCollection::itemWithName):
38615         * bindings/v8/custom/V8NamedNodesCollection.h: Added.
38616         (WebCore::V8NamedNodesCollection::V8NamedNodesCollection):
38617         (WebCore::V8NamedNodesCollection::length):
38618
38619 2009-02-11  Dimitri Dupuis-latour  <dupuislatour@apple.com>
38620
38621         Added a preference to disable some Inspector's panels (rdar://6419624, rdar://6419645).
38622         This is controlled via the 'WebKitInspectorHiddenPanels' key; if nothing is specified, all panels are shown.
38623
38624         Reviewed by Timothy Hatcher.
38625
38626         * inspector/InspectorClient.h:
38627         * inspector/InspectorController.cpp:
38628         (WebCore::hiddenPanels):
38629         (WebCore::InspectorController::hiddenPanels):
38630         (WebCore::InspectorController::windowScriptObjectAvailable):
38631         * inspector/InspectorController.h:
38632         * inspector/front-end/inspector.js:
38633         (WebInspector.loaded):
38634         * loader/EmptyClients.h:
38635         (WebCore::EmptyInspectorClient::hiddenPanels):
38636
38637 2009-02-11  David Hyatt  <hyatt@apple.com>
38638
38639         Combine RenderObject::element() and RenderObject::node() into a single function.
38640         node() now has the "anonymous bit" checking behavior of element() and will
38641         return 0 for anonymous content.  This patch switches all callers of element()
38642         to node() and patches old callers of node() to deal with situations where they
38643         did not expect node() to be 0.  A bunch of node() calls were calling stuff on
38644         Document that they clearly didn't intend, so overall this is a nice improvement.
38645
38646         Reviewed by Sam Weinig
38647
38648         * dom/ContainerNode.cpp:
38649         (WebCore::ContainerNode::getUpperLeftCorner):
38650         * dom/Element.cpp:
38651         (WebCore::Element::offsetParent):
38652         * dom/Position.cpp:
38653         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
38654         * editing/ModifySelectionListLevel.cpp:
38655         (WebCore::getStartEndListChildren):
38656         (WebCore::IncreaseSelectionListLevelCommand::doApply):
38657         (WebCore::DecreaseSelectionListLevelCommand::doApply):
38658         * editing/TextIterator.cpp:
38659         (WebCore::TextIterator::advance):
38660         * editing/VisiblePosition.cpp:
38661         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
38662         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
38663         * editing/visible_units.cpp:
38664         (WebCore::startPositionForLine):
38665         (WebCore::endPositionForLine):
38666         * page/AXObjectCache.cpp:
38667         (WebCore::AXObjectCache::get):
38668         * page/AccessibilityList.cpp:
38669         (WebCore::AccessibilityList::isUnorderedList):
38670         (WebCore::AccessibilityList::isOrderedList):
38671         (WebCore::AccessibilityList::isDefinitionList):
38672         * page/AccessibilityListBox.cpp:
38673         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
38674         * page/AccessibilityRenderObject.cpp:
38675         (WebCore::AccessibilityRenderObject::isPasswordField):
38676         (WebCore::AccessibilityRenderObject::isFileUploadButton):
38677         (WebCore::AccessibilityRenderObject::isInputImage):
38678         (WebCore::AccessibilityRenderObject::isMultiSelect):
38679         (WebCore::AccessibilityRenderObject::isControl):
38680         (WebCore::AccessibilityRenderObject::getAttribute):
38681         (WebCore::AccessibilityRenderObject::anchorElement):
38682         (WebCore::AccessibilityRenderObject::actionElement):
38683         (WebCore::AccessibilityRenderObject::mouseButtonListener):
38684         (WebCore::AccessibilityRenderObject::helpText):
38685         (WebCore::AccessibilityRenderObject::textUnderElement):
38686         (WebCore::AccessibilityRenderObject::hasIntValue):
38687         (WebCore::AccessibilityRenderObject::intValue):
38688         (WebCore::AccessibilityRenderObject::labelElementContainer):
38689         (WebCore::AccessibilityRenderObject::title):
38690         (WebCore::AccessibilityRenderObject::accessibilityDescription):
38691         (WebCore::AccessibilityRenderObject::boundingBoxRect):
38692         (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
38693         (WebCore::AccessibilityRenderObject::titleUIElement):
38694         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
38695         (WebCore::AccessibilityRenderObject::text):
38696         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
38697         (WebCore::AccessibilityRenderObject::accessKey):
38698         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
38699         (WebCore::AccessibilityRenderObject::url):
38700         (WebCore::AccessibilityRenderObject::isFocused):
38701         (WebCore::AccessibilityRenderObject::setFocused):
38702         (WebCore::AccessibilityRenderObject::setValue):
38703         (WebCore::AccessibilityRenderObject::isEnabled):
38704         (WebCore::AccessibilityRenderObject::visiblePositionRange):
38705         (WebCore::AccessibilityRenderObject::index):
38706         (WebCore::AccessibilityRenderObject::activeDescendant):
38707         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
38708         (WebCore::AccessibilityRenderObject::observableObject):
38709         (WebCore::AccessibilityRenderObject::roleValue):
38710         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
38711         (WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
38712         * page/AccessibilityTable.cpp:
38713         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
38714         (WebCore::AccessibilityTable::title):
38715         * page/AccessibilityTableCell.cpp:
38716         (WebCore::AccessibilityTableCell::titleUIElement):
38717         * page/AccessibilityTableColumn.cpp:
38718         (WebCore::AccessibilityTableColumn::headerObjectForSection):
38719         * page/AccessibilityTableRow.cpp:
38720         (WebCore::AccessibilityTableRow::headerObject):
38721         * page/EventHandler.cpp:
38722         (WebCore::EventHandler::dispatchMouseEvent):
38723         (WebCore::EventHandler::canMouseDownStartSelect):
38724         (WebCore::EventHandler::canMouseDragExtendSelect):
38725         (WebCore::EventHandler::shouldDragAutoNode):
38726         * page/Frame.cpp:
38727         (WebCore::Frame::searchForLabelsAboveCell):
38728         (WebCore::Frame::setFocusedNodeIfNeeded):
38729         * page/FrameView.cpp:
38730         (WebCore::FrameView::updateOverflowStatus):
38731         * page/animation/AnimationBase.cpp:
38732         (WebCore::AnimationBase::updateStateMachine):
38733         * page/animation/AnimationController.cpp:
38734         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
38735         (WebCore::AnimationController::cancelAnimations):
38736         (WebCore::AnimationController::updateAnimations):
38737         * page/animation/KeyframeAnimation.cpp:
38738         (WebCore::KeyframeAnimation::KeyframeAnimation):
38739         (WebCore::KeyframeAnimation::endAnimation):
38740         * page/mac/AccessibilityObjectWrapper.mm:
38741         (blockquoteLevel):
38742         (AXAttributeStringSetHeadingLevel):
38743         * page/mac/FrameMac.mm:
38744         (WebCore::Frame::searchForNSLabelsAboveCell):
38745         * rendering/InlineFlowBox.cpp:
38746         (WebCore::InlineFlowBox::verticallyAlignBoxes):
38747         (WebCore::InlineFlowBox::paint):
38748         (WebCore::shouldDrawTextDecoration):
38749         * rendering/InlineTextBox.cpp:
38750         (WebCore::InlineTextBox::paintDocumentMarkers):
38751         * rendering/RenderBR.cpp:
38752         (WebCore::RenderBR::positionForCoordinates):
38753         * rendering/RenderBlock.cpp:
38754         (WebCore::RenderBlock::layoutBlock):
38755         (WebCore::RenderBlock::handleRunInChild):
38756         (WebCore::RenderBlock::paintObject):
38757         (WebCore::RenderBlock::isSelectionRoot):
38758         (WebCore::RenderBlock::rightmostPosition):
38759         (WebCore::RenderBlock::positionForBox):
38760         (WebCore::RenderBlock::positionForRenderer):
38761         (WebCore::RenderBlock::positionForCoordinates):
38762         (WebCore::RenderBlock::hasLineIfEmpty):
38763         (WebCore::RenderBlock::updateFirstLetter):
38764         (WebCore::RenderBlock::updateHitTestResult):
38765         (WebCore::RenderBlock::addFocusRingRects):
38766         * rendering/RenderBox.cpp:
38767         (WebCore::RenderBox::styleWillChange):
38768         (WebCore::RenderBox::updateBoxModelInfoFromStyle):
38769         (WebCore::RenderBox::paintRootBoxDecorations):
38770         (WebCore::RenderBox::positionForCoordinates):
38771         * rendering/RenderButton.cpp:
38772         (WebCore::RenderButton::updateFromElement):
38773         (WebCore::RenderButton::canHaveChildren):
38774         * rendering/RenderCounter.cpp:
38775         (WebCore::planCounter):
38776         * rendering/RenderFieldset.cpp:
38777         (WebCore::RenderFieldset::findLegend):
38778         * rendering/RenderFlexibleBox.cpp:
38779         (WebCore::RenderFlexibleBox::layoutVerticalBox):
38780         * rendering/RenderForeignObject.cpp:
38781         (WebCore::RenderForeignObject::translationForAttributes):
38782         (WebCore::RenderForeignObject::calculateLocalTransform):
38783         * rendering/RenderFrame.h:
38784         (WebCore::RenderFrame::element):
38785         * rendering/RenderImage.cpp:
38786         (WebCore::RenderImage::paintReplaced):
38787         (WebCore::RenderImage::imageMap):
38788         (WebCore::RenderImage::nodeAtPoint):
38789         (WebCore::RenderImage::updateAltText):
38790         * rendering/RenderInline.cpp:
38791         (WebCore::RenderInline::cloneInline):
38792         (WebCore::RenderInline::updateHitTestResult):
38793         * rendering/RenderLayer.cpp:
38794         (WebCore::RenderLayer::isTransparent):
38795         (WebCore::RenderLayer::scrollToOffset):
38796         (WebCore::RenderLayer::resize):
38797         (WebCore::RenderLayer::createScrollbar):
38798         (WebCore::RenderLayer::updateOverflowStatus):
38799         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
38800         (WebCore::RenderLayer::enclosingElement):
38801         (WebCore::RenderLayer::updateHoverActiveState):
38802         (WebCore::RenderLayer::updateScrollCornerStyle):
38803         (WebCore::RenderLayer::updateResizerStyle):
38804         * rendering/RenderLayer.h:
38805         (WebCore::RenderLayer::isRootLayer):
38806         * rendering/RenderListItem.cpp:
38807         (WebCore::getParentOfFirstLineBox):
38808         * rendering/RenderMarquee.cpp:
38809         (WebCore::RenderMarquee::marqueeSpeed):
38810         * rendering/RenderObject.cpp:
38811         (WebCore::RenderObject::RenderObject):
38812         (WebCore::RenderObject::isBody):
38813         (WebCore::RenderObject::isHR):
38814         (WebCore::RenderObject::isHTMLMarquee):
38815         (WebCore::RenderObject::isEditable):
38816         (WebCore::RenderObject::addPDFURLRect):
38817         (WebCore::RenderObject::showTreeForThis):
38818         (WebCore::RenderObject::draggableNode):
38819         (WebCore::RenderObject::hasOutlineAnnotation):
38820         (WebCore::RenderObject::positionForCoordinates):
38821         (WebCore::RenderObject::updateDragState):
38822         (WebCore::RenderObject::updateHitTestResult):
38823         (WebCore::RenderObject::getUncachedPseudoStyle):
38824         (WebCore::RenderObject::getTextDecorationColors):
38825         (WebCore::RenderObject::caretMaxOffset):
38826         (WebCore::RenderObject::offsetParent):
38827         * rendering/RenderObject.h:
38828         (WebCore::RenderObject::isRoot):
38829         (WebCore::RenderObject::isInlineContinuation):
38830         (WebCore::RenderObject::node):
38831         (WebCore::RenderObject::setNode):
38832         * rendering/RenderObjectChildList.cpp:
38833         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
38834         * rendering/RenderPart.cpp:
38835         (WebCore::RenderPart::updateWidgetPosition):
38836         * rendering/RenderPartObject.cpp:
38837         (WebCore::RenderPartObject::updateWidget):
38838         (WebCore::RenderPartObject::viewCleared):
38839         * rendering/RenderPath.cpp:
38840         (WebCore::RenderPath::calculateLocalTransform):
38841         (WebCore::RenderPath::layout):
38842         (WebCore::RenderPath::paint):
38843         (WebCore::RenderPath::drawMarkersIfNeeded):
38844         * rendering/RenderReplaced.cpp:
38845         (WebCore::RenderReplaced::positionForCoordinates):
38846         (WebCore::RenderReplaced::isSelected):
38847         * rendering/RenderSVGGradientStop.cpp:
38848         (WebCore::RenderSVGGradientStop::gradientElement):
38849         * rendering/RenderSVGImage.cpp:
38850         (WebCore::RenderSVGImage::calculateLocalTransform):
38851         * rendering/RenderSVGInlineText.cpp:
38852         (WebCore::RenderSVGInlineText::positionForCoordinates):
38853         * rendering/RenderSVGRoot.cpp:
38854         (WebCore::RenderSVGRoot::layout):
38855         (WebCore::RenderSVGRoot::applyContentTransforms):
38856         (WebCore::RenderSVGRoot::paint):
38857         (WebCore::RenderSVGRoot::calcViewport):
38858         (WebCore::RenderSVGRoot::absoluteTransform):
38859         * rendering/RenderSVGText.cpp:
38860         (WebCore::RenderSVGText::calculateLocalTransform):
38861         (WebCore::RenderSVGText::layout):
38862         * rendering/RenderSVGTextPath.cpp:
38863         (WebCore::RenderSVGTextPath::layoutPath):
38864         (WebCore::RenderSVGTextPath::startOffset):
38865         (WebCore::RenderSVGTextPath::exactAlignment):
38866         (WebCore::RenderSVGTextPath::stretchMethod):
38867         * rendering/RenderSVGTransformableContainer.cpp:
38868         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
38869         * rendering/RenderSVGViewportContainer.cpp:
38870         (WebCore::RenderSVGViewportContainer::calcViewport):
38871         (WebCore::RenderSVGViewportContainer::viewportTransform):
38872         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
38873         * rendering/RenderTable.cpp:
38874         (WebCore::RenderTable::addChild):
38875         * rendering/RenderTableCell.cpp:
38876         (WebCore::RenderTableCell::updateFromElement):
38877         (WebCore::RenderTableCell::calcPrefWidths):
38878         * rendering/RenderTableCol.cpp:
38879         (WebCore::RenderTableCol::updateFromElement):
38880         * rendering/RenderTableRow.cpp:
38881         (WebCore::RenderTableRow::addChild):
38882         * rendering/RenderTableSection.cpp:
38883         (WebCore::RenderTableSection::addChild):
38884         * rendering/RenderText.cpp:
38885         (WebCore::RenderText::originalText):
38886         (WebCore::RenderText::positionForCoordinates):
38887         * rendering/RenderTextControlMultiLine.cpp:
38888         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
38889         * rendering/RenderTextControlSingleLine.cpp:
38890         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
38891         * rendering/RenderTextFragment.cpp:
38892         (WebCore::RenderTextFragment::originalText):
38893         (WebCore::RenderTextFragment::previousCharacter):
38894         * rendering/RenderTheme.cpp:
38895         (WebCore::RenderTheme::isActive):
38896         (WebCore::RenderTheme::isChecked):
38897         (WebCore::RenderTheme::isIndeterminate):
38898         (WebCore::RenderTheme::isEnabled):
38899         (WebCore::RenderTheme::isFocused):
38900         (WebCore::RenderTheme::isPressed):
38901         (WebCore::RenderTheme::isReadOnlyControl):
38902         (WebCore::RenderTheme::isHovered):
38903         * rendering/RenderThemeMac.mm:
38904         (WebCore::RenderThemeMac::updatePressedState):
38905         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
38906         (WebCore::RenderThemeMac::paintMediaMuteButton):
38907         (WebCore::RenderThemeMac::paintMediaPlayButton):
38908         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
38909         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
38910         (WebCore::RenderThemeMac::paintMediaSliderTrack):
38911         (WebCore::RenderThemeMac::paintMediaSliderThumb):
38912         (WebCore::RenderThemeMac::paintMediaTimelineContainer):
38913         (WebCore::RenderThemeMac::paintMediaCurrentTime):
38914         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
38915         * rendering/RenderThemeSafari.cpp:
38916         (WebCore::RenderThemeSafari::paintMediaMuteButton):
38917         (WebCore::RenderThemeSafari::paintMediaPlayButton):
38918         (WebCore::RenderThemeSafari::paintMediaSliderTrack):
38919         * rendering/RenderTreeAsText.cpp:
38920         (WebCore::operator<<):
38921         (WebCore::writeSelection):
38922         * rendering/RenderWidget.cpp:
38923         (WebCore::RenderWidget::setWidgetGeometry):
38924         (WebCore::RenderWidget::updateWidgetPosition):
38925         (WebCore::RenderWidget::nodeAtPoint):
38926         * rendering/RootInlineBox.cpp:
38927         (WebCore::isEditableLeaf):
38928         * rendering/SVGRenderSupport.cpp:
38929         (WebCore::prepareToRenderSVGContent):
38930         * rendering/SVGRenderTreeAsText.cpp:
38931         (WebCore::write):
38932         * rendering/SVGRootInlineBox.cpp:
38933         (WebCore::SVGRootInlineBox::buildLayoutInformation):
38934         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
38935         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
38936         (WebCore::SVGRootInlineBox::buildTextChunks):
38937         * rendering/style/SVGRenderStyle.cpp:
38938         (WebCore::SVGRenderStyle::cssPrimitiveToLength):
38939         * svg/SVGFont.cpp:
38940         (WebCore::SVGTextRunWalker::walk):
38941         (WebCore::floatWidthOfSubStringUsingSVGFont):
38942         (WebCore::Font::drawTextUsingSVGFont):
38943         * svg/SVGTextContentElement.cpp:
38944         (WebCore::findInlineTextBoxInTextChunks):
38945         * svg/graphics/SVGPaintServer.cpp:
38946         (WebCore::SVGPaintServer::fillPaintServer):
38947         (WebCore::SVGPaintServer::strokePaintServer):
38948
38949 2009-02-11  Brady Eidson  <beidson@apple.com>
38950
38951         Reviewed by Darin Adler
38952
38953         <rdar://problem/3541409> - Further FrameLoader and page cache cleanup
38954
38955         * history/CachedFrame.cpp:
38956         (WebCore::CachedFrame::restore): Moved updatePlatformScriptObjects() here.
38957
38958         * loader/FrameLoader.cpp:
38959         (WebCore::FrameLoader::commitProvisionalLoad): Rolled opened() into this method.  This method was
38960           the only caller and - in the future - will benefit from doing parts of opened()'s work differently.
38961         (WebCore::FrameLoader::open): Split off per-frame logic into open(CachedFrame&) method.
38962         (WebCore::FrameLoader::closeAndRemoveChild): Added.  Do the non-tree related cleanup that
38963           FrameTree::removeChild() used to do.
38964         (WebCore::FrameLoader::detachFromParent): Call ::closeAndRemoveChild() instead.
38965         (WebCore::FrameLoader::cachePageForHistoryItem): Perform the "can cache page" check here.
38966         * loader/FrameLoader.h:
38967
38968         * page/FrameTree.cpp:
38969         (WebCore::FrameTree::removeChild): Just remove the Frame from the tree.  Closing it and other
38970           cleanup is the responsibility of the FrameLoader.
38971         * page/FrameTree.h:
38972         (WebCore::FrameTree::detachFromParent): Added to just clear a Frame's parent pointer
38973
38974 2009-02-11  Scott Violet  <sky@google.com>
38975
38976         Reviewed by Eric Seidel.
38977
38978         https://bugs.webkit.org/show_bug.cgi?id=23882
38979         GraphicsContextSkia draws round rects as solid rects
38980
38981         Fixes two bugs in Skia's GraphicsContext::fillRoundedRect:
38982         . fillRoundedRect had an extra call to fillRect, resulting in always
38983           drawing a solid rectangle.
38984         . if the total radius along a given axis is greater than the size of
38985           the axis to draw, a solid rect should be drawn.
38986
38987         The layout tests LayoutTests/fast/css/shadow-multiple.html and
38988         LayoutTests/fast/box-shadow/basic-shadows.html cover this.
38989
38990         * platform/graphics/skia/GraphicsContextSkia.cpp:
38991         (WebCore::GraphicsContext::fillRoundedRect):
38992
38993 2009-02-11  Julien Chaffraix  <jchaffraix@webkit.org>
38994
38995         Reviewed by Eric Seidel.
38996
38997         Bug 23536: Auto-generate HTMLElementFactory
38998
38999         Remove the HTMLElementFactory files. Farewell.
39000
39001         * html/HTMLElementFactory.cpp: Removed.
39002         * html/HTMLElementFactory.h: Removed.
39003
39004 2009-02-11  Julien Chaffraix  <jchaffraix@webkit.org>
39005
39006         Reviewed by Eric Seidel.
39007
39008         Bug 23536: Auto-generate HTMLElementFactory
39009
39010         Make the platform auto-generate the HTMLElementFactory.
39011
39012         * DerivedSources.make:
39013         * GNUmakefile.am:
39014         * WebCore.pro:
39015         * WebCore.scons:
39016         * WebCore.vcproj/WebCore.vcproj:
39017         * WebCore.xcodeproj/project.pbxproj:
39018         * WebCoreSources.bkl:
39019         * webcore-base.bkl:
39020
39021 2009-02-11  Sam Weinig  <sam@webkit.org>
39022
39023         Reviewed by David Hyatt.
39024
39025         Remove unneeded ASSERTS.
39026
39027         * rendering/RenderBox.h:
39028         (WebCore::RenderBox::width):
39029         (WebCore::RenderBox::height):
39030         (WebCore::RenderBox::size):
39031         (WebCore::RenderBox::frameRect):
39032
39033 2009-02-11  Simon Fraser  <simon.fraser@apple.com>
39034
39035         Reviewed by Dave Hyatt
39036
39037         Add function to RenderStyle to ask whether a background image has been specified.
39038
39039         * rendering/style/RenderStyle.h:
39040         (WebCore::InheritedFlags::hasBackgroundImage):
39041
39042 2009-02-11  Simon Fraser  <simon.fraser@apple.com>
39043
39044         Reviewed by Dave Hyatt
39045
39046         https://bugs.webkit.org/show_bug.cgi?id=23548
39047
39048         When opacity or transform change on an object which has a compositing layer,
39049         avoid repainting the layer.
39050
39051         Added a new StyleDifference value, StyleDifferenceRecompositeLayer, which indicates
39052         that the only thing styleChanged() has to do is to update composited properties of
39053         the layer. RenderStyle::diff() now has an out param for a bitmask of "context sensitive"
39054         properties, currently for opacity and transform. When one of these changes, we need
39055         to see if we have a compositing layer before we decide whether to layout/repaint,
39056         or just update the composited layer, via adjustStyleDifference().
39057
39058         * rendering/RenderObject.cpp:
39059         (WebCore::RenderObject::adjustStyleDifference):
39060         (WebCore::RenderObject::setStyle):
39061         (WebCore::RenderObject::styleDidChange):
39062         * rendering/RenderObject.h:
39063         * rendering/style/RenderStyle.cpp:
39064         (WebCore::RenderStyle::diff):
39065         * rendering/style/RenderStyle.h:
39066         * rendering/style/RenderStyleConstants.h:
39067         (WebCore::):
39068
39069 2009-02-11  Alexey Proskuryakov  <ap@webkit.org>
39070
39071         Reviewed by Darin Adler.
39072
39073         <rdar://problem/6562920> Pasted text should be normalized to NFC
39074
39075         Testing requires putting non-HTML content in pasteboard, so it cannot be done with WebKit alone.
39076
39077         * platform/mac/PasteboardMac.mm: (WebCore::Pasteboard::plainText): Route the text through
39078         -[NSString precomposedStringWithCanonicalMapping].
39079
39080 2009-02-10  Chris Marrin  <cmarrin@apple.com>
39081
39082         Reviewed by Simon Fraser.
39083
39084         https://bugs.webkit.org/show_bug.cgi?id=23883
39085
39086         Added new TransformOperation subclasses and methods to existing ones
39087         to support 3D.
39088
39089         * WebCore.xcodeproj/project.pbxproj:
39090         * platform/graphics/transforms/IdentityTransformOperation.h:
39091         (WebCore::IdentityTransformOperation::isAffine):
39092         * platform/graphics/transforms/Matrix3DTransformOperation.cpp: Added.
39093         (WebCore::Matrix3DTransformOperation::blend):
39094         * platform/graphics/transforms/Matrix3DTransformOperation.h: Added.
39095         (WebCore::Matrix3DTransformOperation::create):
39096         (WebCore::Matrix3DTransformOperation::isIdentity):
39097         (WebCore::Matrix3DTransformOperation::isAffine):
39098         (WebCore::Matrix3DTransformOperation::getOperationType):
39099         (WebCore::Matrix3DTransformOperation::isSameType):
39100         (WebCore::Matrix3DTransformOperation::operator==):
39101         (WebCore::Matrix3DTransformOperation::apply):
39102         (WebCore::Matrix3DTransformOperation::Matrix3DTransformOperation):
39103         * platform/graphics/transforms/MatrixTransformOperation.h:
39104         (WebCore::MatrixTransformOperation::isAffine):
39105         (WebCore::MatrixTransformOperation::apply):
39106         * platform/graphics/transforms/PerspectiveTransformOperation.cpp: Added.
39107         (WebCore::PerspectiveTransformOperation::blend):
39108         * platform/graphics/transforms/PerspectiveTransformOperation.h: Added.
39109         (WebCore::PerspectiveTransformOperation::create):
39110         (WebCore::PerspectiveTransformOperation::isIdentity):
39111         (WebCore::PerspectiveTransformOperation::isAffine):
39112         (WebCore::PerspectiveTransformOperation::getOperationType):
39113         (WebCore::PerspectiveTransformOperation::isSameType):
39114         (WebCore::PerspectiveTransformOperation::operator==):
39115         (WebCore::PerspectiveTransformOperation::apply):
39116         (WebCore::PerspectiveTransformOperation::PerspectiveTransformOperation):
39117         * platform/graphics/transforms/RotateTransformOperation.cpp:
39118         (WebCore::RotateTransformOperation::blend):
39119         * platform/graphics/transforms/RotateTransformOperation.h:
39120         (WebCore::RotateTransformOperation::create):
39121         (WebCore::RotateTransformOperation::angle):
39122         (WebCore::RotateTransformOperation::isAffine):
39123         (WebCore::RotateTransformOperation::operator==):
39124         (WebCore::RotateTransformOperation::apply):
39125         (WebCore::RotateTransformOperation::RotateTransformOperation):
39126         * platform/graphics/transforms/ScaleTransformOperation.cpp:
39127         (WebCore::ScaleTransformOperation::blend):
39128         * platform/graphics/transforms/ScaleTransformOperation.h:
39129         (WebCore::ScaleTransformOperation::create):
39130         (WebCore::ScaleTransformOperation::z):
39131         (WebCore::ScaleTransformOperation::isIdentity):
39132         (WebCore::ScaleTransformOperation::isAffine):
39133         (WebCore::ScaleTransformOperation::operator==):
39134         (WebCore::ScaleTransformOperation::apply):
39135         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
39136         * platform/graphics/transforms/SkewTransformOperation.h:
39137         (WebCore::SkewTransformOperation::isAffine):
39138         * platform/graphics/transforms/TransformOperation.h:
39139         (WebCore::TransformOperation::):
39140         (WebCore::TransformOperation::is3DOperation):
39141         * platform/graphics/transforms/TransformOperations.h:
39142         (WebCore::TransformOperations::isAffine):
39143         (WebCore::TransformOperations::has3DOperation):
39144         * platform/graphics/transforms/TranslateTransformOperation.cpp:
39145         (WebCore::TranslateTransformOperation::blend):
39146         * platform/graphics/transforms/TranslateTransformOperation.h:
39147         (WebCore::TranslateTransformOperation::create):
39148         (WebCore::TranslateTransformOperation::z):
39149         (WebCore::TranslateTransformOperation::isIdentity):
39150         (WebCore::TranslateTransformOperation::isAffine):
39151         (WebCore::TranslateTransformOperation::operator==):
39152         (WebCore::TranslateTransformOperation::apply):
39153         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
39154
39155 2009-02-11  David Hyatt  <hyatt@apple.com>
39156
39157         Move createAnonymousBlock() to RenderBlock.  Since anonymous blocks are always parented to some other block,
39158         we can move this function to RenderBlock.  Fix a couple of call sites as a result of this restriction.
39159
39160         Reviewed by Simon Fraser
39161
39162         * rendering/RenderBlock.cpp:
39163         (WebCore::RenderBlock::createAnonymousBlock):
39164         * rendering/RenderBlock.h:
39165         * rendering/RenderInline.cpp:
39166         (WebCore::RenderInline::childBecameNonInline):
39167         * rendering/RenderObject.cpp:
39168         (WebCore::RenderObject::handleDynamicFloatPositionChange):
39169         * rendering/RenderObject.h:
39170
39171 2009-02-11  David Hyatt  <hyatt@apple.com>
39172
39173         https://bugs.webkit.org/show_bug.cgi?id=23895
39174
39175         Remove two complete nonsense lines that I accidentally added from a cut and paste error.  This
39176         restores the original logic.
39177
39178         Reviewed by Simon Fraser
39179
39180         * rendering/RenderBox.cpp:
39181         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
39182
39183 2009-02-11  David Hyatt  <hyatt@apple.com>
39184
39185         Rename getBaselineOfFirstLineBox to firstLineBoxBaseline.  Rename getBaselineOfLastLineBox to
39186         lastLineBoxBaseline.  Remove the functions from RenderObject and add them to RenderBox instead.
39187
39188         Reviewed by Eric Seidel
39189
39190         * rendering/RenderBlock.cpp:
39191         (WebCore::RenderBlock::baselinePosition):
39192         (WebCore::RenderBlock::firstLineBoxBaseline):
39193         (WebCore::RenderBlock::lastLineBoxBaseline):
39194         * rendering/RenderBlock.h:
39195         * rendering/RenderBox.h:
39196         (WebCore::RenderBox::firstLineBoxBaseline):
39197         (WebCore::RenderBox::lastLineBoxBaseline):
39198         * rendering/RenderFlexibleBox.cpp:
39199         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
39200         * rendering/RenderObject.h:
39201         * rendering/RenderTable.cpp:
39202         (WebCore::RenderTable::firstLineBoxBaseline):
39203         * rendering/RenderTable.h:
39204         * rendering/RenderTableCell.cpp:
39205         (WebCore::RenderTableCell::baselinePosition):
39206         * rendering/RenderTableSection.cpp:
39207         (WebCore::RenderTableSection::firstLineBoxBaseline):
39208         * rendering/RenderTableSection.h:
39209
39210 2009-02-11  Eric Carlson  <eric.carlson@apple.com>
39211
39212         Reviewed by Simon Fraser
39213
39214         https://bugs.webkit.org/show_bug.cgi?id=23877
39215         Allow port to disable progress events from <video> and <audio> elements
39216
39217         * html/HTMLMediaElement.cpp: Initialize m_sendProgressEvents.
39218         (WebCore::HTMLMediaElement::HTMLMediaElement): Don't post progress events if m_sendProgressEvents is false.
39219         (WebCore::HTMLMediaElement::initAndDispatchProgressEvent): Ditto.
39220         (WebCore::HTMLMediaElement::load): Ditto.
39221         * html/HTMLMediaElement.h: Add m_sendProgressEvents
39222
39223 2009-02-11  Adam Roben  <aroben@apple.com>
39224
39225         Windows build fix
39226
39227         * DerivedSources.cpp: Removed SVGElementFactory.cpp, since including
39228         it leads to ambiguities for symbols like "aTag", which exist in both
39229         the HTMLNames and SVGNames namespaces.
39230
39231         * WebCore.vcproj/WebCore.vcproj: Added SVGElementFactory.cpp to the
39232         project directly. VS also decided to reformat this file a little bit.
39233
39234 2009-02-10  Julien Chaffraix  <jchaffraix@webkit.org>
39235
39236         Reviewed by Eric Seidel.
39237
39238         Bug 23536: Auto-generate HTMLElementFactory
39239
39240         Those are the last auto-generation bits needed to have a working generated HTMLElementFactory:
39241
39242         - Added a new option mapToTagName that enables a tag to use another's options and tagName (<image>
39243           uses imgTag for example) and wired the code generation to be consistent with the current factory.
39244
39245         - Disabled dashboard compatibility check for HTMLElementFactory as it would make at least one test case fail.
39246
39247         - Pass the QualifiedName down to the Element constructor for shared constructors to make the generated code as
39248           close as possible to the current one. We will pass the QualifiedName for all Element in a forthcoming patch.
39249
39250         * dom/make_names.pl: Did all the above points and tweaked the code generation to match the current HTMLElementFactory
39251           as closely as possible.
39252
39253         * html/HTMLElementFactory.cpp:
39254         (WebCore::quoteConstructor):
39255         * html/HTMLQuoteElement.cpp:
39256         (WebCore::HTMLQuoteElement::HTMLQuoteElement): Moved setUsesBeforeAfterRules to HTMLQuoteElement' constructor because some
39257         part of the code creates elements without using the HTMLElementFactory. Also added a FIXME as it is not the right place.
39258
39259         * html/HTMLTagNames.in: Corrected <image> parameters.
39260
39261 2009-02-10  David Hyatt  <hyatt@apple.com>
39262
39263         Fix for pixel test regression in fast/text.  Make sure not to add in
39264         the borderTop and paddingTop of the block to the baseline when painting
39265         strict mode text decorations.
39266
39267         Reviewed by Mark Rowe
39268
39269         * rendering/InlineFlowBox.cpp:
39270         (WebCore::InlineFlowBox::paintTextDecorations):
39271         * rendering/InlineFlowBox.h:
39272
39273 2009-02-10  Jon Honeycutt  <jhoneycutt@apple.com>
39274
39275         Windows build fix after r40837.
39276
39277         Not reviewed.
39278
39279         * DerivedSources.cpp:
39280
39281 2009-02-10  Jon Honeycutt  <jhoneycutt@apple.com>
39282
39283         <rdar://6349412> REGRESSION(r37204): Page is not repainted during and
39284         after pan scrolling
39285
39286         Reviewed by Steve Falkenburg.
39287
39288         * platform/ScrollView.cpp:
39289         (WebCore::ScrollView::scrollContents): Don't repaint the pan scroll
39290         icon rect immediately; we will paint after the view has been scrolled.
39291
39292 2009-02-10  Oliver Hunt  <oliver@apple.com>
39293
39294         Reviewed by Adele Peterson.
39295
39296         <rdar://problem/6156755> onMouseOver events do not fire properly for cross frame drag and drop
39297
39298         This problem was caused by incorrectly ignoring whether or not the
39299         default behaviour of the mousedown event was suppressed.  If a
39300         mousedown handler in a frame prevents default handling then the
39301         subsequent mousemove events fired for the drag should not be
39302         captured by that frame, should the mouse move out of its bounds.
39303
39304         Test: fast/events/mouse-drag-from-frame.html
39305
39306         * page/EventHandler.cpp:
39307         (WebCore::EventHandler::EventHandler):
39308         (WebCore::EventHandler::clear):
39309         (WebCore::EventHandler::handleMouseReleaseEvent):
39310             Reset new m_capturesDragging flag
39311
39312         (WebCore::EventHandler::handleMousePressEvent):
39313             Respect the m_capturesDragging flag when we propagate
39314             a mousedown event to a subframe.
39315
39316         * page/EventHandler.h:
39317         (WebCore::EventHandler::capturesDragging):
39318
39319 2009-02-10  Kevin Ollivier  <kevino@theolliviers.com>
39320
39321         wx build fixes for recent changes to TransformationMatrix and DOMElement.
39322
39323         * WebCoreSources.bkl:
39324         * dom/Element.cpp:
39325         * platform/graphics/transforms/TransformationMatrix.h:
39326         * platform/graphics/wx/TransformationMatrixWx.cpp:
39327         (WebCore::TransformationMatrix::operator wxGraphicsMatrix):
39328
39329 2009-02-10  David Hyatt  <hyatt@apple.com>
39330
39331         Some renames on line boxes.  xPos()/yPos() -> x()/y().  setXPos()/setYPos() -> setX()/setY().  m_object/object() -> m_renderer/renderer().  textObject() -> textRenderer().
39332
39333         Reviewed by Sam Weinig
39334
39335         * dom/Position.cpp:
39336         (WebCore::Position::upstream):
39337         (WebCore::Position::downstream):
39338         * editing/VisiblePosition.cpp:
39339         (WebCore::VisiblePosition::leftVisuallyDistinctCandidate):
39340         (WebCore::VisiblePosition::rightVisuallyDistinctCandidate):
39341         (WebCore::VisiblePosition::localCaretRect):
39342         * editing/visible_units.cpp:
39343         (WebCore::startPositionForLine):
39344         (WebCore::endPositionForLine):
39345         (WebCore::previousLinePosition):
39346         (WebCore::nextLinePosition):
39347         * rendering/EllipsisBox.cpp:
39348         (WebCore::EllipsisBox::paint):
39349         (WebCore::EllipsisBox::nodeAtPoint):
39350         * rendering/InlineBox.cpp:
39351         (WebCore::InlineBox::showTreeForThis):
39352         (WebCore::InlineBox::height):
39353         (WebCore::InlineBox::caretMinOffset):
39354         (WebCore::InlineBox::caretMaxOffset):
39355         (WebCore::InlineBox::deleteLine):
39356         (WebCore::InlineBox::extractLine):
39357         (WebCore::InlineBox::attachLine):
39358         (WebCore::InlineBox::adjustPosition):
39359         (WebCore::InlineBox::paint):
39360         (WebCore::InlineBox::nodeAtPoint):
39361         (WebCore::InlineBox::selectionState):
39362         (WebCore::InlineBox::canAccommodateEllipsis):
39363         * rendering/InlineBox.h:
39364         (WebCore::InlineBox::InlineBox):
39365         (WebCore::InlineBox::renderer):
39366         (WebCore::InlineBox::setX):
39367         (WebCore::InlineBox::x):
39368         (WebCore::InlineBox::setY):
39369         (WebCore::InlineBox::y):
39370         (WebCore::InlineBox::topOverflow):
39371         (WebCore::InlineBox::bottomOverflow):
39372         (WebCore::InlineBox::leftOverflow):
39373         (WebCore::InlineBox::rightOverflow):
39374         (WebCore::InlineBox::visibleToHitTesting):
39375         (WebCore::InlineBox::boxModelObject):
39376         * rendering/InlineFlowBox.cpp:
39377         (WebCore::InlineFlowBox::height):
39378         (WebCore::InlineFlowBox::addToLine):
39379         (WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
39380         (WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
39381         (WebCore::InlineFlowBox::attachLineBoxToRenderObject):
39382         (WebCore::InlineFlowBox::rendererLineBoxes):
39383         (WebCore::InlineFlowBox::onEndChain):
39384         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
39385         (WebCore::InlineFlowBox::placeBoxesHorizontally):
39386         (WebCore::InlineFlowBox::verticallyAlignBoxes):
39387         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
39388         (WebCore::verticalPositionForBox):
39389         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39390         (WebCore::InlineFlowBox::placeBoxesVertically):
39391         (WebCore::InlineFlowBox::nodeAtPoint):
39392         (WebCore::InlineFlowBox::paint):
39393         (WebCore::InlineFlowBox::paintFillLayer):
39394         (WebCore::InlineFlowBox::paintBoxShadow):
39395         (WebCore::InlineFlowBox::paintBoxDecorations):
39396         (WebCore::InlineFlowBox::paintMask):
39397         (WebCore::InlineFlowBox::paintTextDecorations):
39398         * rendering/InlineFlowBox.h:
39399         (WebCore::InlineFlowBox::borderLeft):
39400         (WebCore::InlineFlowBox::borderRight):
39401         (WebCore::InlineFlowBox::borderTop):
39402         (WebCore::InlineFlowBox::borderBottom):
39403         (WebCore::InlineFlowBox::baseline):
39404         * rendering/InlineTextBox.cpp:
39405         (WebCore::InlineTextBox::height):
39406         (WebCore::InlineTextBox::selectionState):
39407         (WebCore::InlineTextBox::selectionRect):
39408         (WebCore::InlineTextBox::deleteLine):
39409         (WebCore::InlineTextBox::extractLine):
39410         (WebCore::InlineTextBox::attachLine):
39411         (WebCore::InlineTextBox::placeEllipsisBox):
39412         (WebCore::InlineTextBox::isLineBreak):
39413         (WebCore::InlineTextBox::nodeAtPoint):
39414         (WebCore::InlineTextBox::paint):
39415         (WebCore::InlineTextBox::selectionStartEnd):
39416         (WebCore::InlineTextBox::paintSelection):
39417         (WebCore::InlineTextBox::paintCompositionBackground):
39418         (WebCore::InlineTextBox::paintCustomHighlight):
39419         (WebCore::InlineTextBox::paintDecoration):
39420         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
39421         (WebCore::InlineTextBox::paintTextMatchMarker):
39422         (WebCore::InlineTextBox::paintDocumentMarkers):
39423         (WebCore::InlineTextBox::paintCompositionUnderline):
39424         (WebCore::InlineTextBox::textPos):
39425         (WebCore::InlineTextBox::offsetForPosition):
39426         (WebCore::InlineTextBox::positionForOffset):
39427         * rendering/InlineTextBox.h:
39428         (WebCore::InlineTextBox::textRenderer):
39429         * rendering/ListMarkerBox.cpp:
39430         (WebCore::ListMarkerBox::isText):
39431         * rendering/RenderBlock.cpp:
39432         (WebCore::RenderBlock::paintEllipsisBoxes):
39433         (WebCore::RenderBlock::lowestPosition):
39434         (WebCore::RenderBlock::rightmostPosition):
39435         (WebCore::RenderBlock::leftmostPosition):
39436         (WebCore::RenderBlock::positionForBox):
39437         (WebCore::RenderBlock::positionForCoordinates):
39438         (WebCore::RenderBlock::getBaselineOfFirstLineBox):
39439         (WebCore::RenderBlock::getBaselineOfLastLineBox):
39440         (WebCore::RenderBlock::adjustForBorderFit):
39441         (WebCore::RenderBlock::addFocusRingRects):
39442         * rendering/RenderBox.cpp:
39443         (WebCore::RenderBox::paintCustomHighlight):
39444         (WebCore::RenderBox::position):
39445         (WebCore::RenderBox::containingBlockWidthForPositioned):
39446         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
39447         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
39448         * rendering/RenderBoxModelObject.cpp:
39449         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
39450         * rendering/RenderFlexibleBox.cpp:
39451         (WebCore::RenderFlexibleBox::layoutVerticalBox):
39452         * rendering/RenderInline.cpp:
39453         (WebCore::RenderInline::absoluteRects):
39454         (WebCore::RenderInline::absoluteQuads):
39455         (WebCore::RenderInline::offsetLeft):
39456         (WebCore::RenderInline::offsetTop):
39457         (WebCore::RenderInline::linesBoundingBox):
39458         (WebCore::RenderInline::relativePositionedInlineOffset):
39459         (WebCore::RenderInline::addFocusRingRects):
39460         (WebCore::RenderInline::paintOutline):
39461         * rendering/RenderLayer.cpp:
39462         (WebCore::RenderLayer::localBoundingBox):
39463         * rendering/RenderSVGTSpan.cpp:
39464         (WebCore::RenderSVGTSpan::absoluteRects):
39465         (WebCore::RenderSVGTSpan::absoluteQuads):
39466         * rendering/RenderSVGText.cpp:
39467         (WebCore::RenderSVGText::absoluteRects):
39468         (WebCore::RenderSVGText::absoluteQuads):
39469         (WebCore::RenderSVGText::relativeBBox):
39470         * rendering/RenderSVGTextPath.cpp:
39471         (WebCore::RenderSVGTextPath::absoluteRects):
39472         (WebCore::RenderSVGTextPath::absoluteQuads):
39473         * rendering/RenderText.cpp:
39474         (WebCore::RenderText::absoluteRects):
39475         (WebCore::RenderText::absoluteRectsForRange):
39476         (WebCore::RenderText::absoluteQuads):
39477         (WebCore::RenderText::absoluteQuadsForRange):
39478         (WebCore::RenderText::localCaretRect):
39479         (WebCore::RenderText::linesBoundingBox):
39480         * rendering/RootInlineBox.cpp:
39481         (WebCore::RootInlineBox::height):
39482         (WebCore::RootInlineBox::clearTruncation):
39483         (WebCore::RootInlineBox::placeEllipsis):
39484         (WebCore::RootInlineBox::paintEllipsisBox):
39485         (WebCore::RootInlineBox::addHighlightOverflow):
39486         (WebCore::RootInlineBox::paintCustomHighlight):
39487         (WebCore::RootInlineBox::paint):
39488         (WebCore::RootInlineBox::nodeAtPoint):
39489         (WebCore::RootInlineBox::childRemoved):
39490         (WebCore::RootInlineBox::fillLineSelectionGap):
39491         (WebCore::RootInlineBox::block):
39492         (WebCore::isEditableLeaf):
39493         (WebCore::RootInlineBox::closestLeafChildForXPos):
39494         (WebCore::RootInlineBox::setVerticalOverflowPositions):
39495         * rendering/RootInlineBox.h:
39496         (WebCore::RootInlineBox::bottomOverflow):
39497         (WebCore::RootInlineBox::floats):
39498         (WebCore::RootInlineBox::setHorizontalOverflowPositions):
39499         (WebCore::RootInlineBox::setVerticalSelectionPositions):
39500         * rendering/SVGCharacterLayoutInfo.cpp:
39501         (WebCore::SVGCharacterLayoutInfo::addLayoutInformation):
39502         * rendering/SVGInlineTextBox.cpp:
39503         (WebCore::SVGInlineTextBox::calculateGlyphWidth):
39504         (WebCore::SVGInlineTextBoxClosestCharacterToPositionWalker::chunkPortionCallback):
39505         (WebCore::SVGInlineTextBoxSelectionRectWalker::chunkPortionCallback):
39506         (WebCore::SVGInlineTextBox::svgCharacterHitsPosition):
39507         (WebCore::SVGInlineTextBox::nodeAtPoint):
39508         (WebCore::SVGInlineTextBox::paintCharacters):
39509         (WebCore::SVGInlineTextBox::paintSelection):
39510         (WebCore::SVGInlineTextBox::paintDecoration):
39511         * rendering/SVGRenderTreeAsText.cpp:
39512         (WebCore::writeSVGInlineTextBox):
39513         * rendering/SVGRootInlineBox.cpp:
39514         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
39515         (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
39516         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
39517         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupFillCallback):
39518         (WebCore::SVGRootInlineBoxPaintWalker::chunkSetupStrokeCallback):
39519         (WebCore::SVGRootInlineBoxPaintWalker::chunkPortionCallback):
39520         (WebCore::SVGRootInlineBox::paint):
39521         (WebCore::cummulatedWidthOfInlineBoxCharacterRange):
39522         (WebCore::cummulatedHeightOfInlineBoxCharacterRange):
39523         (WebCore::svgTextRunForInlineTextBox):
39524         (WebCore::cummulatedWidthOrHeightOfTextChunk):
39525         (WebCore::applyTextAnchorToTextChunk):
39526         (WebCore::SVGRootInlineBox::buildLayoutInformation):
39527         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
39528         (WebCore::SVGRootInlineBox::buildLayoutInformationForTextBox):
39529         (WebCore::SVGRootInlineBox::buildTextChunks):
39530         * rendering/bidi.cpp:
39531         (WebCore::RenderBlock::constructLine):
39532         (WebCore::RenderBlock::computeVerticalPositionsForLine):
39533         (WebCore::RenderBlock::layoutInlineChildren):
39534         (WebCore::RenderBlock::checkLinesForTextOverflow):
39535         * svg/SVGTextContentElement.cpp:
39536         (WebCore::cumulativeCharacterRangeLength):
39537         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback):
39538         (WebCore::findInlineTextBoxInTextChunks):
39539
39540 2009-02-10  Simon Fraser  <simon.fraser@apple.com>
39541
39542         Reviewed by Dave Hyatt
39543
39544         Clean up "fallbackAnimating" logic in AnimationBase. This flag indicates
39545         that animation of an accelerated property must run in software for some reason.
39546
39547         Also remove use of private headers in GraphicsLayerCA related to a case
39548         where we may have to fall back on software animation of transform.
39549
39550         * page/animation/AnimationBase.cpp:
39551         (WebCore::AnimationBase::blendProperties):
39552         * page/animation/AnimationBase.h:
39553         * page/animation/ImplicitAnimation.cpp:
39554         (WebCore::ImplicitAnimation::animate):
39555         * page/animation/KeyframeAnimation.cpp:
39556         (WebCore::KeyframeAnimation::animate):
39557         * platform/graphics/mac/GraphicsLayerCA.h:
39558         * platform/graphics/mac/GraphicsLayerCA.mm:
39559         (WebCore::getValueFunctionNameForTransformOperation):
39560         (WebCore::caValueFunctionSupported):
39561         (WebCore::GraphicsLayerCA::setBackgroundColor):
39562         (WebCore::GraphicsLayerCA::setOpacity):
39563         (WebCore::GraphicsLayerCA::animateTransform):
39564         (WebCore::GraphicsLayerCA::animateFloat):
39565         (WebCore::GraphicsLayerCA::setBasicAnimation):
39566         (WebCore::GraphicsLayerCA::setKeyframeAnimation):
39567
39568 2009-02-10  Simon Fraser  <simon.fraser@apple.com>
39569
39570         Reviewed by Dave Hyatt
39571
39572         Move enclosingCompositingLayer() from RenderObject to RenderLayer, since it
39573         relates to the RenderLayer z-order/overflow structure, rather than the render tree
39574         parent chain. Add a convenience method, ancestorCompositingLayer(), which finds
39575         the enclosing layer excluding self.
39576
39577         Fix enclosingCompositingLayer() to correctly look at stacking context and overflow
39578         lists.
39579
39580         Check for documentBeingDestroyed() in a few places to avoid work on document
39581         teardown.
39582
39583         * rendering/RenderLayer.cpp:
39584         (WebCore::RenderLayer::enclosingCompositingLayer):
39585         (WebCore::RenderLayer::setParent):
39586         (WebCore::RenderLayer::dirtyZOrderLists):
39587         (WebCore::RenderLayer::dirtyOverflowList):
39588         * rendering/RenderLayer.h:
39589         (WebCore::RenderLayer::ancestorCompositingLayer):
39590         * rendering/RenderLayerBacking.cpp:
39591         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
39592         * rendering/RenderLayerCompositor.cpp:
39593         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
39594         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
39595         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
39596         (WebCore::RenderLayerCompositor::clippedByAncestor):
39597         * rendering/RenderLayerCompositor.h:
39598         * rendering/RenderObject.cpp:
39599         (WebCore::RenderObject::containerForRepaint):
39600         * rendering/RenderObject.h:
39601
39602 2009-02-10  David Hyatt  <hyatt@apple.com>
39603
39604         Rename xPos() and yPos() on RenderLayer to x() and y() to match RenderBox.  Rename setPos to setLocation.
39605
39606         Reviewed by Simon Fraser
39607
39608         * dom/MouseRelatedEvent.cpp:
39609         (WebCore::MouseRelatedEvent::receivedTarget):
39610         * rendering/RenderLayer.cpp:
39611         (WebCore::RenderLayer::updateLayerPosition):
39612         (WebCore::RenderLayer::convertToLayerCoords):
39613         * rendering/RenderLayer.h:
39614         (WebCore::RenderLayer::x):
39615         (WebCore::RenderLayer::y):
39616         (WebCore::RenderLayer::setLocation):
39617         * rendering/RenderTreeAsText.cpp:
39618         (WebCore::write):
39619         (WebCore::externalRepresentation):
39620
39621 2009-02-10  Darin Fisher  <darin@chromium.org>
39622
39623         Reviewed by Eric Seidel.
39624
39625         https://bugs.webkit.org/show_bug.cgi?id=23879
39626         Add missing PLATFORM(SKIA) changes to TransformationMatrix.h
39627
39628         * platform/graphics/transforms/TransformationMatrix.h:
39629
39630 2009-02-10  Sam Weinig  <sam@webkit.org>
39631
39632         Reviewed by David Hyatt.
39633
39634         Fix for https://bugs.webkit.org/show_bug.cgi?id=15897
39635         Please implement getBoundingClientRect and getClientRects
39636         <rdar://problem/6139669>
39637
39638         Cursory implementation of Element.getBoundingClientRect and
39639         Element.getClientRects. Adds necessary infrastructure classes
39640         ClientRect and ClientRectList.
39641
39642         Tests: fast/dom/getBoundingClientRect.html
39643                fast/dom/getClientRects.html
39644
39645         * DerivedSources.make:
39646         * GNUmakefile.am:
39647         * WebCore.pro:
39648         * WebCore.vcproj/WebCore.vcproj:
39649         * WebCore.xcodeproj/project.pbxproj:
39650         * WebCoreSources.bkl:
39651         * dom/ClientRect.cpp: Added.
39652         (WebCore::ClientRect::ClientRect):
39653         * dom/ClientRect.h: Added.
39654         (WebCore::ClientRect::create):
39655         (WebCore::ClientRect::top):
39656         (WebCore::ClientRect::right):
39657         (WebCore::ClientRect::bottom):
39658         (WebCore::ClientRect::left):
39659         (WebCore::ClientRect::width):
39660         (WebCore::ClientRect::height):
39661         * dom/ClientRect.idl: Added.
39662         * dom/ClientRectList.cpp: Added.
39663         (WebCore::ClientRectList::ClientRectList):
39664         (WebCore::ClientRectList::~ClientRectList):
39665         (WebCore::ClientRectList::length):
39666         (WebCore::ClientRectList::item):
39667         * dom/ClientRectList.h: Added.
39668         (WebCore::ClientRectList::create):
39669         * dom/ClientRectList.idl: Added.
39670         * dom/Element.cpp:
39671         (WebCore::Element::getClientRects):
39672         (WebCore::Element::getBoundingClientRect):
39673         * dom/Element.h:
39674         * dom/Element.idl:
39675         * page/DOMWindow.idl:
39676         * rendering/RenderInline.cpp:
39677         (WebCore::RenderInline::absoluteRects):
39678         (WebCore::RenderInline::absoluteQuads):
39679
39680 2009-02-10  David Hyatt  <hyatt@apple.com>
39681
39682         Get rid of capsLockStateMayHaveChanged on RenderObject.  It is only implemented by one class (text fields),
39683         so devirtualize and just query at the single call site.
39684
39685         Reviewed by Eric Seidel
39686
39687         * page/EventHandler.cpp:
39688         (WebCore::EventHandler::capsLockStateMayHaveChanged):
39689         * rendering/RenderObject.h:
39690         * rendering/RenderTextControlSingleLine.h:
39691
39692 2009-02-10  David Hyatt  <hyatt@apple.com>
39693
39694         Shrink the size of all RenderObjects (except for RenderInlines) by 4 bytes.  This patch moves the cached vertical position member to RenderInlines,
39695         since they were the only objects being queried across multiple lines.
39696
39697         Reviewed by Sam Weinig
39698
39699         * rendering/InlineFlowBox.cpp:
39700         (WebCore::verticalPositionForBox):
39701         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39702         * rendering/RenderBoxModelObject.cpp:
39703         (WebCore::RenderBoxModelObject::verticalPosition):
39704         * rendering/RenderBoxModelObject.h:
39705         * rendering/RenderInline.cpp:
39706         (WebCore::RenderInline::RenderInline):
39707         (WebCore::RenderInline::verticalPositionFromCache):
39708         * rendering/RenderInline.h:
39709         (WebCore::RenderInline::invalidateVerticalPosition):
39710         * rendering/RenderObject.cpp:
39711         (WebCore::RenderObject::RenderObject):
39712         * rendering/RenderObject.h:
39713         * rendering/RenderText.cpp:
39714         * rendering/RenderText.h:
39715         * rendering/bidi.cpp:
39716         (WebCore::RenderBlock::layoutInlineChildren):
39717
39718 2009-02-10  Dimitri Glazkov  <dglazkov@chromium.org>
39719
39720         Reviewed by Mark Rowe.
39721
39722         https://bugs.webkit.org/show_bug.cgi?id=23868
39723         Fix code style issues: removed 80-col wrapping, incorrect include style, if statement body on same line.
39724
39725         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
39726         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
39727
39728 2009-02-10  Dimitri Glazkov  <dglazkov@chromium.org>
39729
39730         Reviewed by Eric Seidel.
39731
39732         https://bugs.webkit.org/show_bug.cgi?id=23868
39733         Add HTMLInputElement and HTMLOptionsCollection V8 custom bindings.
39734
39735         * bindings/v8/custom/V8HTMLInputElementCustom.cpp: Added.
39736         (WebCore::ACCESSOR_GETTER):
39737         (WebCore::ACCESSOR_SETTER):
39738         (WebCore::CALLBACK_FUNC_DECL):
39739         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: Added.
39740         (WebCore::ACCESSOR_GETTER):
39741         (WebCore::ACCESSOR_SETTER):
39742
39743 2009-02-10  Adam Roben  <aroben@apple.com>
39744
39745         Fix Bug 23871: Assertion failure beneath WebCore::openFunc when
39746         running http/tests/security/xss-DENIED-xsl-document-redirect.xml
39747
39748         <https://bugs.webkit.org/show_bug.cgi?id=23871>
39749
39750         Reviewed by Alexey Proskuryakov.
39751
39752         Covered by existing tests.
39753
39754         * dom/XMLTokenizerLibxml2.cpp:
39755         (WebCore::openFunc): Use the two-parameter KURL constructor so that
39756         the string will be parsed. libxml2 gives us a UTF-8-encoded string
39757         that needs to be parsed.
39758
39759 2009-02-10  David Hyatt  <hyatt@apple.com>
39760
39761         Shrink the size of all replaced elements (images, form controls, plugins) by 4 bytes by packing the
39762         overflow boolean into the RenderObject base class.
39763
39764         Reviewed by Sam Weinig
39765
39766         * rendering/RenderObject.cpp:
39767         (WebCore::RenderObject::RenderObject):
39768         * rendering/RenderObject.h:
39769         (WebCore::RenderObject::replacedHasOverflow):
39770         (WebCore::RenderObject::setReplacedHasOverflow):
39771         * rendering/RenderReplaced.cpp:
39772         (WebCore::RenderReplaced::RenderReplaced):
39773         (WebCore::RenderReplaced::~RenderReplaced):
39774         (WebCore::RenderReplaced::adjustOverflowForBoxShadow):
39775         (WebCore::RenderReplaced::overflowHeight):
39776         (WebCore::RenderReplaced::overflowWidth):
39777         (WebCore::RenderReplaced::overflowLeft):
39778         (WebCore::RenderReplaced::overflowTop):
39779         (WebCore::RenderReplaced::overflowRect):
39780         * rendering/RenderReplaced.h:
39781
39782 2009-02-10  Eric Carlson  <eric.carlson@apple.com>
39783
39784         Reviewed by Simon Fraser.
39785
39786         https://bugs.webkit.org/show_bug.cgi?id=23870
39787         Make it possible for a port to require a user gesture for an <audio> or <video> element
39788         to load a url.
39789
39790         * html/HTMLMediaElement.cpp:
39791         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_loadRestrictions.
39792         (WebCore::HTMLMediaElement::attributeChanged): Only one attribute can change so put an "else" between tests.
39793         (WebCore::HTMLMediaElement::load): Return INVALID_STATE_ERR if RequireUserGestureLoadRestriction is set
39794         and we are not preocessing a user gesture.
39795         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged): Remove unnecessary white space.
39796         (WebCore::HTMLMediaElement::play): Ditto.
39797         (WebCore::HTMLMediaElement::endScrubbing): Remove unnecessary braces added in r40789.
39798         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Cache currentTime() in a local instead of calling it
39799         multiple times.
39800         (WebCore::HTMLMediaElement::processingUserGesture): New.
39801         * html/HTMLMediaElement.h:
39802         (WebCore::HTMLMediaElement::): Define LoadRestrictions, add m_loadRestrictions.
39803
39804 2009-02-10  Holger Hans Peter Freyther  <zecke@selfish.org>
39805
39806         Reviewed by Sam Weinig.
39807
39808         Remove the SVG checks from FloatPoint3D as it is used
39809         by TransformationMatrix.
39810
39811         * platform/graphics/FloatPoint3D.cpp:
39812         * platform/graphics/FloatPoint3D.h:
39813
39814 2009-02-10  David Hyatt  <hyatt@apple.com>
39815
39816         Remove the m_baseline member variable from all line boxes, since it can easily be computed when needed and did not need to be cached.
39817
39818         Reviewed by Sam Weinig
39819
39820         * rendering/EllipsisBox.cpp:
39821         (WebCore::EllipsisBox::paint):
39822         (WebCore::EllipsisBox::nodeAtPoint):
39823         * rendering/EllipsisBox.h:
39824         (WebCore::EllipsisBox::EllipsisBox):
39825         * rendering/InlineBox.h:
39826         (WebCore::InlineBox::InlineBox):
39827         * rendering/InlineFlowBox.cpp:
39828         (WebCore::InlineFlowBox::verticallyAlignBoxes):
39829         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39830         (WebCore::InlineFlowBox::placeBoxesVertically):
39831         (WebCore::InlineFlowBox::paintTextDecorations):
39832         * rendering/InlineFlowBox.h:
39833         (WebCore::InlineFlowBox::marginBorderPaddingLeft):
39834         (WebCore::InlineFlowBox::marginBorderPaddingRight):
39835         (WebCore::InlineFlowBox::marginLeft):
39836         (WebCore::InlineFlowBox::marginRight):
39837         (WebCore::InlineFlowBox::borderLeft):
39838         (WebCore::InlineFlowBox::borderRight):
39839         (WebCore::InlineFlowBox::borderTop):
39840         (WebCore::InlineFlowBox::borderBottom):
39841         (WebCore::InlineFlowBox::paddingLeft):
39842         (WebCore::InlineFlowBox::paddingRight):
39843         (WebCore::InlineFlowBox::paddingTop):
39844         (WebCore::InlineFlowBox::paddingBottom):
39845         (WebCore::InlineFlowBox::includeLeftEdge):
39846         (WebCore::InlineFlowBox::includeRightEdge):
39847         (WebCore::InlineFlowBox::baseline):
39848         * rendering/InlineTextBox.cpp:
39849         (WebCore::InlineTextBox::paint):
39850         (WebCore::InlineTextBox::paintDecoration):
39851         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
39852         (WebCore::InlineTextBox::paintCompositionUnderline):
39853         * rendering/RenderBlock.cpp:
39854         (WebCore::RenderBlock::getBaselineOfFirstLineBox):
39855         (WebCore::RenderBlock::getBaselineOfLastLineBox):
39856         * rendering/RenderTableCell.cpp:
39857         (WebCore::RenderTableCell::baselinePosition):
39858         * rendering/RootInlineBox.cpp:
39859         (WebCore::RootInlineBox::placeEllipsis):
39860         * rendering/SVGInlineTextBox.cpp:
39861         (WebCore::SVGInlineTextBox::paintDecoration):
39862         * rendering/SVGRootInlineBox.cpp:
39863         (WebCore::applyTextAnchorToTextChunk):
39864         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
39865
39866 2009-02-10  Alexey Proskuryakov  <ap@webkit.org>
39867
39868         Reviewed by Darin Adler.
39869
39870         https://bugs.webkit.org/show_bug.cgi?id=23867
39871         Eliminate obsolete frame->document() checks
39872
39873         * page/FrameView.cpp: (WebCore::FrameView::paintContents): Apparently due to a typo
39874         (document vs. !document), fillWithRed was always set to false, and other branches were
39875         never taken. Removing the check for document restores debug-only red color filling.
39876
39877         * loader/FrameLoader.cpp: (WebCore::FrameLoader::begin): Only call dispatchWindowObjectAvailable()
39878         after a document is created. A client can do anything in its delegate method, so we'd need
39879         to have frame->document() checks otherwise. DumpRenderTree uses this delegate to add its
39880         custom property, and it was crashing due to null document in JSDOMWindowBase::getOwnPropertySlot().
39881
39882         * bindings/js/JSDOMWindowBase.cpp:
39883         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
39884         * bindings/js/JSDOMWindowCustom.cpp:
39885         (WebCore::JSDOMWindow::addEventListener):
39886         (WebCore::JSDOMWindow::removeEventListener):
39887         * bindings/js/JSNavigatorCustom.cpp:
39888         (WebCore::needsYouTubeQuirk):
39889         * bindings/js/ScheduledAction.cpp:
39890         (WebCore::ScheduledAction::execute):
39891         * bindings/js/ScriptControllerMac.mm:
39892         (WebCore::updateRenderingForBindings):
39893         * dom/Document.cpp:
39894         (WebCore::Document::initSecurityContext):
39895         * editing/Editor.cpp:
39896         (WebCore::Editor::deleteWithDirection):
39897         (WebCore::Editor::dispatchCPPEvent):
39898         (WebCore::Editor::applyStyle):
39899         (WebCore::Editor::applyParagraphStyle):
39900         * editing/EditorCommand.cpp:
39901         (WebCore::Editor::Command::execute):
39902         (WebCore::Editor::Command::isEnabled):
39903         (WebCore::Editor::Command::state):
39904         (WebCore::Editor::Command::value):
39905         * editing/SelectionController.cpp:
39906         (WebCore::SelectionController::recomputeCaretRect):
39907         (WebCore::SelectionController::selectFrameElementInParentIfFullySelected):
39908         (WebCore::SelectionController::selectAll):
39909         (WebCore::SelectionController::setFocused):
39910         * inspector/InspectorController.cpp:
39911         (WebCore::getResourceDocumentNode):
39912         * inspector/JavaScriptDebugServer.cpp:
39913         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
39914         * loader/DocumentLoader.cpp:
39915         (WebCore::canonicalizedTitle):
39916         (WebCore::DocumentLoader::stopLoading):
39917         (WebCore::DocumentLoader::isLoadingInAPISense):
39918         (WebCore::DocumentLoader::subresource):
39919         (WebCore::DocumentLoader::getSubresources):
39920         * loader/FrameLoader.cpp:
39921         (WebCore::FrameLoader::urlSelected):
39922         (WebCore::FrameLoader::stop):
39923         (WebCore::FrameLoader::iconURL):
39924         (WebCore::FrameLoader::executeIfJavaScriptURL):
39925         (WebCore::FrameLoader::clear):
39926         (WebCore::FrameLoader::endIfNotLoadingMainResource):
39927         (WebCore::FrameLoader::restoreDocumentState):
39928         (WebCore::FrameLoader::gotoAnchor):
39929         (WebCore::FrameLoader::loadDone):
39930         (WebCore::FrameLoader::checkCompleted):
39931         (WebCore::FrameLoader::checkCallImplicitClose):
39932         (WebCore::FrameLoader::scheduleRefresh):
39933         (WebCore::FrameLoader::outgoingOrigin):
39934         (WebCore::FrameLoader::canCachePageContainingThisFrame):
39935         (WebCore::FrameLoader::logCanCacheFrameDecision):
39936         (WebCore::FrameLoader::updatePolicyBaseURL):
39937         (WebCore::FrameLoader::setPolicyBaseURL):
39938         (WebCore::FrameLoader::frameDetached):
39939         (WebCore::FrameLoader::shouldScrollToAnchor):
39940         (WebCore::FrameLoader::saveDocumentState):
39941         * loader/archive/cf/LegacyWebArchive.cpp:
39942         (WebCore::LegacyWebArchive::create):
39943         * loader/icon/IconFetcher.cpp:
39944         (WebCore::IconFetcher::create):
39945         * loader/icon/IconLoader.cpp:
39946         (WebCore::IconLoader::startLoading):
39947         * page/AccessibilityRenderObject.cpp:
39948         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
39949         * page/Chrome.cpp:
39950         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
39951         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
39952         * page/DOMWindow.cpp:
39953         (WebCore::DOMWindow::sessionStorage):
39954         (WebCore::DOMWindow::alert):
39955         (WebCore::DOMWindow::confirm):
39956         (WebCore::DOMWindow::prompt):
39957         (WebCore::DOMWindow::scrollX):
39958         (WebCore::DOMWindow::scrollY):
39959         (WebCore::DOMWindow::getMatchedCSSRules):
39960         (WebCore::DOMWindow::openDatabase):
39961         (WebCore::DOMWindow::scrollBy):
39962         (WebCore::DOMWindow::scrollTo):
39963         * page/EventHandler.cpp:
39964         (WebCore::EventHandler::allowDHTMLDrag):
39965         (WebCore::EventHandler::scrollOverflow):
39966         (WebCore::EventHandler::handleMousePressEvent):
39967         (WebCore::EventHandler::handleMouseDoubleClickEvent):
39968         (WebCore::EventHandler::handleMouseMoveEvent):
39969         (WebCore::EventHandler::handleMouseReleaseEvent):
39970         (WebCore::EventHandler::updateDragAndDrop):
39971         (WebCore::EventHandler::handleWheelEvent):
39972         (WebCore::EventHandler::sendContextMenuEvent):
39973         (WebCore::EventHandler::capsLockStateMayHaveChanged):
39974         (WebCore::EventHandler::sendResizeEvent):
39975         (WebCore::EventHandler::sendScrollEvent):
39976         * page/FocusController.cpp:
39977         (WebCore::deepFocusableNode):
39978         (WebCore::FocusController::advanceFocus):
39979         * page/Frame.cpp:
39980         (WebCore::Frame::setFocusedNodeIfNeeded):
39981         (WebCore::Frame::shouldApplyTextZoom):
39982         (WebCore::Frame::shouldApplyPageZoom):
39983         (WebCore::Frame::setZoomFactor):
39984         (WebCore::Frame::setPrinting):
39985         (WebCore::Frame::reapplyStyles):
39986         (WebCore::Frame::isContentEditable):
39987         (WebCore::Frame::computeAndSetTypingStyle):
39988         (WebCore::Frame::selectionComputedStyle):
39989         (WebCore::Frame::applyEditingStyleToBodyElement):
39990         (WebCore::Frame::removeEditingStyleFromBodyElement):
39991         (WebCore::Frame::contentRenderer):
39992         (WebCore::Frame::styleForSelectionStart):
39993         (WebCore::Frame::setSelectionFromNone):
39994         (WebCore::Frame::findString):
39995         (WebCore::Frame::markAllMatchesForText):
39996         (WebCore::Frame::setMarkedTextMatchesAreHighlighted):
39997         (WebCore::Frame::documentTypeString):
39998         (WebCore::Frame::shouldClose):
39999         (WebCore::Frame::respondToChangedSelection):
40000         * page/FrameView.cpp:
40001         (WebCore::FrameView::~FrameView):
40002         (WebCore::FrameView::createScrollbar):
40003         (WebCore::FrameView::layout):
40004         (WebCore::FrameView::layoutTimerFired):
40005         (WebCore::FrameView::scheduleRelayout):
40006         (WebCore::FrameView::needsLayout):
40007         (WebCore::FrameView::unscheduleRelayout):
40008         (WebCore::FrameView::windowClipRect):
40009         * page/Geolocation.cpp:
40010         (WebCore::Geolocation::disconnectFrame):
40011         * page/Page.cpp:
40012         (WebCore::networkStateChanged):
40013         (WebCore::Page::~Page):
40014         (WebCore::Page::unmarkAllTextMatches):
40015         (WebCore::Page::setMediaVolume):
40016         * page/animation/AnimationController.cpp:
40017         (WebCore::AnimationControllerPrivate::updateRenderingDispatcherFired):
40018         * page/mac/EventHandlerMac.mm:
40019         (WebCore::EventHandler::currentKeyboardEvent):
40020         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
40021         * page/mac/FrameMac.mm:
40022         (WebCore::Frame::dashboardRegionsDictionary):
40023         (WebCore::Frame::setUserStyleSheetLocation):
40024         (WebCore::Frame::setUserStyleSheet):
40025         * storage/LocalStorageArea.cpp:
40026         (WebCore::LocalStorageArea::dispatchStorageEvent):
40027         * storage/SessionStorageArea.cpp:
40028         (WebCore::SessionStorageArea::dispatchStorageEvent):
40029         * svg/graphics/SVGImage.cpp:
40030         (WebCore::SVGImage::setContainerSize):
40031         (WebCore::SVGImage::usesContainerSize):
40032         (WebCore::SVGImage::size):
40033         (WebCore::SVGImage::hasRelativeWidth):
40034         (WebCore::SVGImage::hasRelativeHeight):
40035         Removed frame->document() checks.
40036
40037 2009-02-10  Adam Treat  <adam.treat@torchmobile.com>
40038
40039         Reviewed by George Staikos.
40040
40041         Attempt to fix the Qt build after r40791.
40042
40043         * rendering/RenderSVGRoot.cpp:
40044
40045 2009-02-10  Adam Treat  <adam.treat@torchmobile.com>
40046
40047         Reviewed by George Staikos.
40048
40049         Minor code cleanup.
40050
40051         * dom/ContainerNode.cpp:
40052         (WebCore::ContainerNode::replaceChild):
40053
40054 2009-02-10  Adam Treat  <adam.treat@torchmobile.com>
40055
40056         Fix Qt build following r40793.
40057
40058         * editing/qt/EditorQt.cpp:
40059
40060 2009-02-10  Feng Qian <feng@chromium.org>
40061
40062         Reviewed by Alexey Proskuryakov.
40063
40064         Fix crashes when accessing navigator object of a deleted frame.
40065         https://bugs.webkit.org/show_bug.cgi?id=23626
40066         A layout test is added: fast/dom/navigator-detached-no-crash.html
40067
40068         * page/Navigator.cpp:
40069         (WebCore::Navigator::cookieEnabled):
40070         (WebCore::Navigator::javaEnabled):
40071
40072 2009-02-10  Sverrir Berg  <sverrir@chromium.org>
40073
40074         Reviewed by Eric Seidel.
40075
40076         https://bugs.webkit.org/show_bug.cgi?id=23630
40077         Add complex font rendering using Skia instead of Windows ScriptTextOut.
40078         This adds support for enhanced webkit styles when drawing complex
40079         glyphs.
40080
40081         * platform/graphics/chromium/FontChromiumWin.cpp:
40082         (WebCore::Font::drawGlyphs):
40083         (WebCore::Font::drawComplexText):
40084         * platform/graphics/chromium/UniscribeHelper.cpp:
40085         (WebCore::containsMissingGlyphs):
40086         (WebCore::UniscribeHelper::draw):
40087         (WebCore::UniscribeHelper::shape):
40088         * platform/graphics/chromium/UniscribeHelper.h:
40089         * platform/graphics/skia/SkiaFontWin.cpp:
40090         (WebCore::windowsCanHandleTextDrawing):
40091         (WebCore::skiaDrawText):
40092         (WebCore::paintSkiaText):
40093         * platform/graphics/skia/SkiaFontWin.h:
40094
40095 2009-02-10  Darin Fisher  <darin@chromium.org>
40096
40097         Revert r40797 as requested by Sam Weinig.
40098
40099         https://bugs.webkit.org/show_bug.cgi?id=23809
40100
40101         * bindings/scripts/CodeGeneratorJS.pm:
40102         * dom/Document.idl:
40103         * html/HTMLCanvasElement.idl:
40104
40105 2009-02-09  Darin Fisher  <darin@chromium.org>
40106
40107         Reviewed by Eric Seidel.
40108
40109         https://bugs.webkit.org/show_bug.cgi?id=23855
40110         Fix TransformationMatrixSkia.cpp and GraphicsContextSkia.cpp bustage
40111
40112         * platform/graphics/skia/GraphicsContextSkia.cpp:
40113         (WebCore::GraphicsContext::getCTM):
40114         * platform/graphics/skia/TransformationMatrixSkia.cpp:
40115         (WebCore::TransformationMatrix::operator SkMatrix):
40116
40117 2009-02-09  Dan Bernstein  <mitz@apple.com>
40118
40119         Reviewed by Dave Hyatt.
40120
40121         - fix <rdar://problem/6568942> REGRESSION: Font rendering in Wikipedia input field is incorrect (default GDI text mode)
40122
40123         * platform/graphics/win/SimpleFontDataWin.cpp:
40124         (WebCore::SimpleFontData::widthForGDIGlyph): Make sure that the DC is
40125         in the advanced graphics mode before calling GetCharWidthI(), because
40126         otherwise that function returns incorrect results for the default UI
40127         font at a certain size.
40128
40129 2009-02-09  Chris Marrin  <cmarrin@apple.com>
40130
40131         Reviewed by Simon Fraser
40132
40133         https://bugs.webkit.org/show_bug.cgi?id=23689
40134
40135         Added 3D functions to WebKitCSSMatrix. This depends on the 3D functions
40136         added to TransformationMatrix in https://bugs.webkit.org/show_bug.cgi?id=6868
40137
40138         Test: transforms/3d/cssmatrix-3d-interface.xhtml
40139
40140         * css/WebKitCSSMatrix.cpp:
40141         * css/WebKitCSSMatrix.h:
40142         * css/WebKitCSSMatrix.idl:
40143
40144 2009-02-09  Mark Rowe  <mrowe@apple.com>
40145
40146         Reviewed by Darin Adler.
40147
40148         Fix <https://bugs.webkit.org/show_bug.cgi?id=23858>
40149         Bug 23858: Crash when removing a HTMLSelectElement from the document from inside its focus event handler
40150
40151         * html/HTMLSelectElement.cpp:
40152         (WebCore::HTMLSelectElement::menuListDefaultEventHandler): Don't store the renderer in a local variable
40153         as it can be invalidated by any of the calls to focus() within the function.  Instead, retrieve it and
40154         null-check it when it is needed.
40155
40156 2009-02-09  David Hyatt  <hyatt@apple.com>
40157
40158         Remove the m_height member from InlineBox.  This shaves 4 bytes off of all inline boxes.  Unfortunately SVG
40159         sets heights that are independent of the renderer or of the font, and so all SVG boxes have to retain m_height
40160         member variables.
40161
40162         height() on InlineBox is now a virtual function that does a dynamic computation (including shrinking boxes
40163         with no text children).  For SVG boxes there is also a non-virtual setHeight function for updating the
40164         m_height member variable like before.
40165
40166         Reviewed by Darin Adler
40167
40168         * rendering/EllipsisBox.cpp:
40169         (WebCore::EllipsisBox::nodeAtPoint):
40170         * rendering/EllipsisBox.h:
40171         (WebCore::EllipsisBox::EllipsisBox):
40172         * rendering/InlineBox.cpp:
40173         (WebCore::InlineBox::height):
40174         (WebCore::InlineBox::root):
40175         * rendering/InlineBox.h:
40176         (WebCore::InlineBox::InlineBox):
40177         (WebCore::InlineBox::isInlineFlowBox):
40178         (WebCore::InlineBox::isRootInlineBox):
40179         (WebCore::InlineBox::topOverflow):
40180         (WebCore::InlineBox::bottomOverflow):
40181         (WebCore::InlineBox::leftOverflow):
40182         (WebCore::InlineBox::rightOverflow):
40183         * rendering/InlineFlowBox.cpp:
40184         (WebCore::InlineFlowBox::height):
40185         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
40186         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
40187         (WebCore::InlineFlowBox::placeBoxesVertically):
40188         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
40189         (WebCore::InlineFlowBox::nodeAtPoint):
40190         * rendering/InlineFlowBox.h:
40191         (WebCore::InlineFlowBox::isInlineFlowBox):
40192         * rendering/InlineTextBox.cpp:
40193         (WebCore::InlineTextBox::height):
40194         (WebCore::InlineTextBox::nodeAtPoint):
40195         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
40196         (WebCore::InlineTextBox::paintCompositionUnderline):
40197         * rendering/InlineTextBox.h:
40198         * rendering/RootInlineBox.cpp:
40199         (WebCore::RootInlineBox::height):
40200         (WebCore::RootInlineBox::placeEllipsis):
40201         (WebCore::RootInlineBox::setVerticalOverflowPositions):
40202         * rendering/RootInlineBox.h:
40203         (WebCore::RootInlineBox::isRootInlineBox):
40204         (WebCore::RootInlineBox::topOverflow):
40205         (WebCore::RootInlineBox::bottomOverflow):
40206         (WebCore::RootInlineBox::leftOverflow):
40207         (WebCore::RootInlineBox::rightOverflow):
40208         (WebCore::RootInlineBox::selectionBottom):
40209         (WebCore::RootInlineBox::Overflow::Overflow):
40210         (WebCore::RootInlineBox::setVerticalSelectionPositions):
40211         * rendering/SVGInlineFlowBox.h:
40212         (WebCore::SVGInlineFlowBox::SVGInlineFlowBox):
40213         (WebCore::SVGInlineFlowBox::height):
40214         (WebCore::SVGInlineFlowBox::setHeight):
40215         * rendering/SVGInlineTextBox.cpp:
40216         (WebCore::SVGInlineTextBox::SVGInlineTextBox):
40217         * rendering/SVGInlineTextBox.h:
40218         (WebCore::SVGInlineTextBox::height):
40219         (WebCore::SVGInlineTextBox::setHeight):
40220         * rendering/SVGRootInlineBox.cpp:
40221         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
40222         * rendering/SVGRootInlineBox.h:
40223         (WebCore::SVGRootInlineBox::SVGRootInlineBox):
40224         (WebCore::SVGRootInlineBox::height):
40225         (WebCore::SVGRootInlineBox::setHeight):
40226
40227 2009-02-09  Eric Seidel  <eric@webkit.org>
40228
40229         Reviewed by Sam Weinig.
40230
40231         Document our Selection DOM extensions
40232         (in preparation for re-writing Selection to work with ranges)
40233
40234         * page/DOMSelection.cpp:
40235         (WebCore::DOMSelection::type):
40236         * page/DOMSelection.h:
40237         * page/DOMSelection.idl:
40238
40239 2009-02-09  Eric Seidel  <eric@webkit.org>
40240
40241         Attempt to fix wx build
40242
40243         * WebCoreSources.bkl: change Selection to VisibleSelection
40244
40245 2009-02-06  Darin Fisher  <darin@chromium.org>
40246
40247         Reviewed by Eric Seidel.
40248
40249         https://bugs.webkit.org/show_bug.cgi?id=23809
40250         Return CanvasRenderingContext2D instead of DOMObject in IDL to avoid V8 #ifdefs
40251
40252         * bindings/scripts/CodeGeneratorJS.pm:
40253         * dom/Document.idl:
40254         * html/HTMLCanvasElement.idl:
40255
40256 2009-02-09  Dirk Schulze  <krit@webkit.org>
40257
40258         Reviewed by Eric Seidel.
40259
40260         Transform the gradient instead of the context for most platforms and
40261         transform the context after CGContextReplacePathWithStrokedPath for CG.
40262
40263         REGRESSION: SVG gradient transformation/BoundingBox can cause ugly stroke thickness
40264         https://bugs.webkit.org/show_bug.cgi?id=23547
40265
40266         * platform/graphics/Gradient.h:
40267         (WebCore::Gradient::setGradientSpaceTransform):
40268         (WebCore::Gradient::gradientSpaceTransform):
40269         * platform/graphics/cairo/GradientCairo.cpp:
40270         (WebCore::Gradient::platformGradient):
40271         * platform/graphics/cg/GraphicsContextCG.cpp:
40272         (WebCore::GraphicsContext::fillPath):
40273         (WebCore::GraphicsContext::strokePath):
40274         (WebCore::GraphicsContext::fillRect):
40275         * platform/graphics/qt/GraphicsContextQt.cpp:
40276         (WebCore::GraphicsContext::fillPath):
40277         (WebCore::GraphicsContext::strokePath):
40278         (WebCore::GraphicsContext::fillRect):
40279         * platform/graphics/skia/GradientSkia.cpp:
40280         (WebCore::Gradient::platformGradient):
40281         * svg/graphics/SVGPaintServerGradient.cpp:
40282         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
40283         (WebCore::clipToTextMask):
40284         (WebCore::SVGPaintServerGradient::setup):
40285         (WebCore::SVGPaintServerGradient::teardown):
40286
40287 2009-02-09  Sam Weinig  <sam@webkit.org>
40288
40289         Reviewed by David Hyatt.
40290
40291         Fix the highlight when inspecting inline elements.
40292
40293         * inspector/InspectorController.cpp:
40294         (WebCore::drawHighlightForBox):
40295         (WebCore::drawHighlightForLineBoxes):
40296         (WebCore::InspectorController::drawNodeHighlight):
40297
40298 2009-02-09  Eric Seidel  <eric@webkit.org>
40299
40300         Fix the gtk build by adding VisibleSelection and removing Selection.
40301
40302         * GNUmakefile.am:
40303
40304 2009-02-09  Eric Seidel  <eric@webkit.org>
40305
40306         Reviewed by Dave Hyatt.
40307
40308         Rename Selection to VisibleSelection to allow us to separate
40309         the selections the user works with from the ones used by
40310         the JS editing APIs.
40311         https://bugs.webkit.org/show_bug.cgi?id=23852
40312
40313         No functional changes, thus no tests.
40314
40315         * WebCore.base.exp:
40316         * WebCore.pro:
40317         * WebCore.scons:
40318         * WebCore.vcproj/WebCore.vcproj:
40319         * WebCore.xcodeproj/project.pbxproj:
40320         * dom/Element.cpp:
40321         (WebCore::Element::updateFocusAppearance):
40322         * editing/ApplyStyleCommand.cpp:
40323         (WebCore::ApplyStyleCommand::updateStartEnd):
40324         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
40325         * editing/BreakBlockquoteCommand.cpp:
40326         (WebCore::BreakBlockquoteCommand::doApply):
40327         * editing/CompositeEditCommand.cpp:
40328         (WebCore::CompositeEditCommand::inputText):
40329         (WebCore::CompositeEditCommand::deleteSelection):
40330         (WebCore::CompositeEditCommand::rebalanceWhitespace):
40331         (WebCore::CompositeEditCommand::pushAnchorElementDown):
40332         (WebCore::CompositeEditCommand::pushPartiallySelectedAnchorElementsDown):
40333         (WebCore::CompositeEditCommand::moveParagraphs):
40334         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
40335         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
40336         * editing/CompositeEditCommand.h:
40337         * editing/CreateLinkCommand.cpp:
40338         (WebCore::CreateLinkCommand::doApply):
40339         * editing/DeleteButtonController.cpp:
40340         (WebCore::enclosingDeletableElement):
40341         (WebCore::DeleteButtonController::respondToChangedSelection):
40342         * editing/DeleteButtonController.h:
40343         * editing/DeleteSelectionCommand.cpp:
40344         (WebCore::DeleteSelectionCommand::DeleteSelectionCommand):
40345         (WebCore::DeleteSelectionCommand::clearTransientState):
40346         (WebCore::DeleteSelectionCommand::doApply):
40347         * editing/DeleteSelectionCommand.h:
40348         (WebCore::DeleteSelectionCommand::create):
40349         * editing/EditCommand.cpp:
40350         (WebCore::EditCommand::setStartingSelection):
40351         (WebCore::EditCommand::setEndingSelection):
40352         * editing/EditCommand.h:
40353         (WebCore::EditCommand::startingSelection):
40354         (WebCore::EditCommand::endingSelection):
40355         * editing/Editor.cpp:
40356         (WebCore::Editor::selectionForCommand):
40357         (WebCore::Editor::respondToChangedSelection):
40358         (WebCore::Editor::respondToChangedContents):
40359         (WebCore::Editor::applyStyle):
40360         (WebCore::Editor::applyParagraphStyle):
40361         (WebCore::Editor::appliedEditing):
40362         (WebCore::Editor::unappliedEditing):
40363         (WebCore::Editor::reappliedEditing):
40364         (WebCore::Editor::insertTextWithoutSendingTextEvent):
40365         (WebCore::Editor::selectComposition):
40366         (WebCore::Editor::confirmComposition):
40367         (WebCore::Editor::advanceToNextMisspelling):
40368         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
40369         (WebCore::markMisspellingsOrBadGrammar):
40370         (WebCore::Editor::markMisspellings):
40371         (WebCore::Editor::markBadGrammar):
40372         (WebCore::Editor::rangeForPoint):
40373         (WebCore::Editor::transpose):
40374         * editing/Editor.h:
40375         * editing/EditorCommand.cpp:
40376         (WebCore::expandSelectionToGranularity):
40377         (WebCore::executeSwapWithMark):
40378         (WebCore::enabledVisibleSelection):
40379         (WebCore::enabledVisibleSelectionAndMark):
40380         (WebCore::enableCaretInEditableText):
40381         * editing/FormatBlockCommand.cpp:
40382         (WebCore::FormatBlockCommand::modifyRange):
40383         (WebCore::FormatBlockCommand::doApply):
40384         * editing/IndentOutdentCommand.cpp:
40385         (WebCore::IndentOutdentCommand::indentRegion):
40386         (WebCore::IndentOutdentCommand::outdentRegion):
40387         (WebCore::IndentOutdentCommand::doApply):
40388         * editing/InsertLineBreakCommand.cpp:
40389         (WebCore::InsertLineBreakCommand::doApply):
40390         * editing/InsertListCommand.cpp:
40391         (WebCore::InsertListCommand::modifyRange):
40392         (WebCore::InsertListCommand::doApply):
40393         * editing/InsertParagraphSeparatorCommand.cpp:
40394         (WebCore::InsertParagraphSeparatorCommand::doApply):
40395         * editing/InsertTextCommand.cpp:
40396         (WebCore::InsertTextCommand::performTrivialReplace):
40397         (WebCore::InsertTextCommand::input):
40398         * editing/ModifySelectionListLevel.cpp:
40399         (WebCore::getStartEndListChildren):
40400         (WebCore::canIncreaseListLevel):
40401         (WebCore::canDecreaseListLevel):
40402         * editing/MoveSelectionCommand.cpp:
40403         (WebCore::MoveSelectionCommand::doApply):
40404         * editing/RemoveFormatCommand.cpp:
40405         * editing/ReplaceSelectionCommand.cpp:
40406         (WebCore::ReplacementFragment::ReplacementFragment):
40407         (WebCore::ReplaceSelectionCommand::doApply):
40408         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
40409         * editing/Selection.cpp: Removed.
40410         * editing/Selection.h: Removed.
40411         * editing/SelectionController.cpp:
40412         (WebCore::SelectionController::moveTo):
40413         (WebCore::SelectionController::setSelection):
40414         (WebCore::SelectionController::nodeWillBeRemoved):
40415         (WebCore::SelectionController::clear):
40416         (WebCore::SelectionController::setBase):
40417         (WebCore::SelectionController::setExtent):
40418         (WebCore::SelectionController::selectFrameElementInParentIfFullySelected):
40419         (WebCore::SelectionController::selectAll):
40420         (WebCore::SelectionController::setSelectedRange):
40421         * editing/SelectionController.h:
40422         (WebCore::SelectionController::selection):
40423         (WebCore::SelectionController::selectionType):
40424         * editing/TypingCommand.cpp:
40425         (WebCore::TypingCommand::insertText):
40426         (WebCore::TypingCommand::deleteKeyPressed):
40427         (WebCore::TypingCommand::forwardDeleteKeyPressed):
40428         * editing/TypingCommand.h:
40429         * editing/VisiblePosition.cpp:
40430         (WebCore::VisiblePosition::honorEditableBoundaryAtOrBefore):
40431         (WebCore::VisiblePosition::honorEditableBoundaryAtOrAfter):
40432         * editing/VisibleSelection.cpp: Added.
40433         (WebCore::VisibleSelection::VisibleSelection):
40434         (WebCore::VisibleSelection::selectionFromContentsOfNode):
40435         (WebCore::VisibleSelection::setBase):
40436         (WebCore::VisibleSelection::setExtent):
40437         (WebCore::VisibleSelection::firstRange):
40438         (WebCore::VisibleSelection::toNormalizedRange):
40439         (WebCore::VisibleSelection::expandUsingGranularity):
40440         (WebCore::makeSearchRange):
40441         (WebCore::VisibleSelection::appendTrailingWhitespace):
40442         (WebCore::VisibleSelection::setBaseAndExtentToDeepEquivalents):
40443         (WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
40444         (WebCore::VisibleSelection::updateSelectionType):
40445         (WebCore::VisibleSelection::validate):
40446         (WebCore::VisibleSelection::setWithoutValidation):
40447         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
40448         (WebCore::VisibleSelection::isContentEditable):
40449         (WebCore::VisibleSelection::isContentRichlyEditable):
40450         (WebCore::VisibleSelection::rootEditableElement):
40451         (WebCore::VisibleSelection::shadowTreeRootNode):
40452         (WebCore::VisibleSelection::debugPosition):
40453         (WebCore::VisibleSelection::formatForDebugger):
40454         (WebCore::VisibleSelection::showTreeForThis):
40455         (showTree):
40456         * editing/VisibleSelection.h: Added.
40457         (WebCore::VisibleSelection::):
40458         (WebCore::VisibleSelection::selectionType):
40459         (WebCore::VisibleSelection::setAffinity):
40460         (WebCore::VisibleSelection::affinity):
40461         (WebCore::VisibleSelection::base):
40462         (WebCore::VisibleSelection::extent):
40463         (WebCore::VisibleSelection::start):
40464         (WebCore::VisibleSelection::end):
40465         (WebCore::VisibleSelection::visibleStart):
40466         (WebCore::VisibleSelection::visibleEnd):
40467         (WebCore::VisibleSelection::isNone):
40468         (WebCore::VisibleSelection::isCaret):
40469         (WebCore::VisibleSelection::isRange):
40470         (WebCore::VisibleSelection::isCaretOrRange):
40471         (WebCore::VisibleSelection::isBaseFirst):
40472         (WebCore::VisibleSelection::granularity):
40473         (WebCore::operator==):
40474         (WebCore::operator!=):
40475         * editing/htmlediting.cpp:
40476         (WebCore::selectionForParagraphIteration):
40477         (WebCore::avoidIntersectionWithNode):
40478         * editing/htmlediting.h:
40479         * editing/markup.cpp:
40480         (WebCore::createMarkup):
40481         * html/HTMLInputElement.cpp:
40482         (WebCore::HTMLInputElement::selection):
40483         * html/HTMLInputElement.h:
40484         * html/HTMLTextAreaElement.cpp:
40485         (WebCore::HTMLTextAreaElement::selection):
40486         * html/HTMLTextAreaElement.h:
40487         * page/AccessibilityObject.cpp:
40488         (WebCore::AccessibilityObject::selection):
40489         (WebCore::AccessibilityObject::visiblePositionRangeForUnorderedPositions):
40490         * page/AccessibilityObject.h:
40491         * page/AccessibilityRenderObject.cpp:
40492         (WebCore::AccessibilityRenderObject::selection):
40493         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
40494         (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
40495         (WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
40496         (WebCore::AccessibilityRenderObject::doAXRangeForLine):
40497         * page/AccessibilityRenderObject.h:
40498         * page/DOMSelection.cpp:
40499         (WebCore::DOMSelection::anchorNode):
40500         (WebCore::DOMSelection::anchorOffset):
40501         (WebCore::DOMSelection::focusNode):
40502         (WebCore::DOMSelection::focusOffset):
40503         (WebCore::DOMSelection::collapseToEnd):
40504         (WebCore::DOMSelection::collapseToStart):
40505         (WebCore::DOMSelection::getRangeAt):
40506         (WebCore::DOMSelection::addRange):
40507         * page/DOMSelection.h:
40508         * page/DragController.cpp:
40509         (WebCore::DragController::tryDocumentDrag):
40510         (WebCore::setSelectionToDragCaret):
40511         (WebCore::DragController::concludeEditDrag):
40512         (WebCore::prepareClipboardForImageDrag):
40513         (WebCore::DragController::startDrag):
40514         (WebCore::DragController::placeDragCaret):
40515         * page/EditorClient.h:
40516         * page/EventHandler.cpp:
40517         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
40518         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
40519         (WebCore::EventHandler::handleMousePressEventTripleClick):
40520         (WebCore::EventHandler::handleMousePressEventSingleClick):
40521         (WebCore::EventHandler::updateSelectionForMouseDrag):
40522         (WebCore::EventHandler::handleMouseReleaseEvent):
40523         * page/Frame.cpp:
40524         (WebCore::Frame::mark):
40525         (WebCore::Frame::setMark):
40526         (WebCore::Frame::selectionLayoutChanged):
40527         (WebCore::Frame::shouldChangeSelection):
40528         (WebCore::Frame::shouldDeleteSelection):
40529         (WebCore::Frame::revealSelection):
40530         (WebCore::Frame::setSelectionFromNone):
40531         (WebCore::Frame::findString):
40532         (WebCore::Frame::respondToChangedSelection):
40533         * page/Frame.h:
40534         * page/Page.cpp:
40535         (WebCore::Page::selection):
40536         * page/Page.h:
40537         * page/mac/AccessibilityObjectWrapper.mm:
40538         (-[AccessibilityObjectWrapper textMarkerRangeForSelection]):
40539         * rendering/RenderBlock.cpp:
40540         (WebCore::RenderBlock::fillInlineSelectionGaps):
40541         * rendering/RenderTextControl.cpp:
40542         (WebCore::RenderTextControl::setSelectionRange):
40543         (WebCore::RenderTextControl::selection):
40544         * rendering/RenderTextControl.h:
40545         * rendering/RenderTreeAsText.cpp:
40546         (WebCore::writeSelection):
40547         * rendering/RootInlineBox.cpp:
40548         (WebCore::RootInlineBox::fillLineSelectionGap):
40549         * svg/SVGTextContentElement.cpp:
40550         (WebCore::SVGTextContentElement::selectSubString):
40551
40552 2009-02-09  Dimitri Glazkov  <dglazkov@chromium.org>
40553
40554         Reviewed by Dave Hyatt.
40555
40556         https://bugs.webkit.org/show_bug.cgi?id=23806
40557         Fix a regression crash where an empty src value and a "text/html" type
40558         on an EMBED element did not finish ResourceRequest initialization due to
40559         an early return.
40560
40561         Test: fast/loader/empty-embed-src-attribute.html
40562
40563         * loader/FrameLoader.cpp:
40564         (WebCore::FrameLoader::addExtraFieldsToRequest):
40565
40566 2009-02-09  Rob Buis  <rwlbuis@gmail.com>
40567
40568         Reviewed by Eric Seidel.
40569
40570         https://bugs.webkit.org/show_bug.cgi?id=23816
40571         Clean up RenderSVGRoot.cpp
40572
40573         Clean up RenderSVGRoot.cpp.
40574
40575         * rendering/RenderSVGRoot.cpp:
40576         (WebCore::RenderSVGRoot::paint):
40577         (WebCore::RenderSVGRoot::calcViewport):
40578
40579 2009-02-09  Eric Carlson  <eric.carlson@apple.com>
40580
40581         Reviewed by Antti Koivisto
40582
40583         https://bugs.webkit.org/show_bug.cgi?id=23737
40584         Make it possible to control media element playback without knowing so many
40585         internal implementation details.
40586
40587         * html/HTMLMediaElement.cpp:
40588         (WebCore::HTMLMediaElement::togglePlayState): New, toggle between playing and paused state.
40589         (WebCore::HTMLMediaElement::beginScrubbing): New, pause as necessary for scrubbing mode.
40590         (WebCore::HTMLMediaElement::endScrubbing): New, resume playback if paused for scrubbing mode.
40591         * html/HTMLMediaElement.h:
40592
40593         (WebCore::HTMLMediaElement::hasVideo): New, added so clients don't need to access MediaPlayer directly.
40594         * html/HTMLVideoElement.h:
40595
40596         (WebCore::HTMLVideoElement::hasVideo): New.
40597
40598         * rendering/MediaControlElements.cpp:
40599         (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Use new media element
40600         togglePlayState method.
40601         (WebCore::MediaControlTimelineElement::defaultEventHandler): Tell media element when scrubbing
40602         begins and ends so it can deal with pausing logic. Don't call setCurrentTime unless the time
40603         will change.
40604
40605         * rendering/RenderMedia.cpp:
40606         (WebCore::RenderMedia::updateControls): Ask media element if it is able to play instead of including
40607         internal logic here.
40608         (WebCore::RenderMedia::updateControlVisibility): Ditto.
40609
40610 2009-02-09  Eric Carlson  <eric.carlson@apple.com>
40611
40612         Reviewed by Antti Koivisto
40613
40614         Change RenderPart and RenderPartObject constructors to take a Node*
40615         instead of a HTMLFrameOwnerElement* since that is all then need.
40616
40617         * rendering/RenderPart.cpp:
40618         (WebCore::RenderPart::RenderPart): take Node* instead of HTMLFrameOwnerElement*
40619         * rendering/RenderPart.h:
40620         * rendering/RenderPartObject.cpp:
40621         (WebCore::RenderPartObject::RenderPartObject):  take Node* instead of HTMLFrameOwnerElement*
40622         * rendering/RenderPartObject.h:
40623
40624 2009-02-09  Dan Bernstein  <mitz@apple.com>
40625
40626         - fix -Wmissing-prototypes builds
40627
40628         * editing/ReplaceSelectionCommand.cpp:
40629         (WebCore::isHeaderElement): Marked this function static.
40630         (WebCore::haveSameTagName): Ditto.
40631         * editing/markup.cpp:
40632         (WebCore::isSpecialAncestorBlock): Ditto.
40633         * platform/graphics/transforms/TransformationMatrix.cpp:
40634         (WebCore::makeMapBetweenRects): Removed unused function.
40635         * platform/graphics/transforms/TransformationMatrix.h: Removed unused
40636         declaration of private member makeMapBetweenRects().
40637
40638 2009-02-09  Adam Treat  <adam.treat@torchmobile.com>
40639
40640         Reviewed by Sam Weinig.
40641
40642         https://bugs.webkit.org/show_bug.cgi?id=23850
40643         Code cleanup of HTMLParser class which was using a mix of m_* and bare
40644         class member variable names which helps to obfuscate the code.  Also
40645         changed a few of the static helper functions to take a const pointer type
40646         as they should not be modifying the node.
40647
40648         * html/HTMLParser.cpp:
40649         (WebCore::HTMLParser::HTMLParser):
40650         (WebCore::HTMLParser::~HTMLParser):
40651         (WebCore::HTMLParser::reset):
40652         (WebCore::HTMLParser::setCurrent):
40653         (WebCore::HTMLParser::parseToken):
40654         (WebCore::HTMLParser::parseDoctypeToken):
40655         (WebCore::isTableSection):
40656         (WebCore::isTablePart):
40657         (WebCore::isTableRelated):
40658         (WebCore::HTMLParser::insertNode):
40659         (WebCore::HTMLParser::handleError):
40660         (WebCore::HTMLParser::textCreateErrorCheck):
40661         (WebCore::HTMLParser::commentCreateErrorCheck):
40662         (WebCore::HTMLParser::headCreateErrorCheck):
40663         (WebCore::HTMLParser::bodyCreateErrorCheck):
40664         (WebCore::HTMLParser::framesetCreateErrorCheck):
40665         (WebCore::HTMLParser::formCreateErrorCheck):
40666         (WebCore::HTMLParser::isindexCreateErrorCheck):
40667         (WebCore::HTMLParser::noscriptCreateErrorCheck):
40668         (WebCore::HTMLParser::pCloserStrictCreateErrorCheck):
40669         (WebCore::HTMLParser::mapCreateErrorCheck):
40670         (WebCore::HTMLParser::getNode):
40671         (WebCore::HTMLParser::allowNestedRedundantTag):
40672         (WebCore::HTMLParser::processCloseTag):
40673         (WebCore::HTMLParser::isInline):
40674         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks):
40675         (WebCore::HTMLParser::reopenResidualStyleTags):
40676         (WebCore::HTMLParser::pushBlock):
40677         (WebCore::HTMLParser::popBlock):
40678         (WebCore::HTMLParser::popOneBlockCommon):
40679         (WebCore::HTMLParser::popOneBlock):
40680         (WebCore::HTMLParser::moveOneBlockToStack):
40681         (WebCore::HTMLParser::checkIfHasPElementInScope):
40682         (WebCore::HTMLParser::popInlineBlocks):
40683         (WebCore::HTMLParser::freeBlock):
40684         (WebCore::HTMLParser::createHead):
40685         (WebCore::HTMLParser::handleIsindex):
40686         (WebCore::HTMLParser::startBody):
40687         (WebCore::HTMLParser::finished):
40688         (WebCore::HTMLParser::reportErrorToConsole):
40689         * html/HTMLParser.h:
40690
40691 2009-02-09  Alexey Proskuryakov  <ap@webkit.org>
40692
40693         Applying review comment on a second location.
40694
40695         * rendering/RenderText.cpp: (WebCore::RenderText::nextOffset):
40696         Use "ifdef BUILDING_ON_TIGER".
40697
40698 2009-02-09  Alexey Proskuryakov  <ap@webkit.org>
40699
40700         Reviewed by Darin Adler.
40701
40702         https://bugs.webkit.org/show_bug.cgi?id=23845
40703         editing/deleting/backward-deletion.html fails on Tiger
40704
40705         * rendering/RenderText.cpp:
40706         (WebCore::RenderText::previousOffset):
40707         (WebCore::RenderText::nextOffset):
40708         Work around a bug in older ICU versions by hardcoding narrow voiced marks.
40709
40710 2009-02-09  Adam Roben  <aroben@apple.com>
40711
40712         Windows build fix
40713
40714         * WebCore.vcproj/WebCore.vcproj: Fix the XML syntax.
40715
40716 2009-02-09  Jian Li  <jianli@chromium.org>
40717
40718         Reviewed by Alexey Proskuryakov.
40719
40720         Make WorkerMessagingProxy derive from two base proxy classes.
40721         https://bugs.webkit.org/show_bug.cgi?id=23777
40722
40723         * bindings/js/WorkerScriptController.cpp:
40724         (WebCore::WorkerScriptController::evaluate):
40725         * dom/Worker.cpp:
40726         (WebCore::Worker::terminate):
40727         (WebCore::Worker::hasPendingActivity):
40728         * dom/WorkerContext.cpp:
40729         (WebCore::WorkerContext::reportException):
40730         * dom/WorkerMessagingProxy.cpp:
40731         (WebCore::WorkerThreadActivityReportTask::performTask):
40732         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
40733         (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
40734         (WebCore::WorkerMessagingProxy::terminateWorkerContext):
40735         (WebCore::WorkerMessagingProxy::confirmWorkerThreadMessage):
40736         (WebCore::WorkerMessagingProxy::reportPendingActivity):
40737         (WebCore::WorkerMessagingProxy::reportPendingActivityInternal):
40738         (WebCore::WorkerMessagingProxy::hasPendingActivity):
40739         * dom/WorkerMessagingProxy.h:
40740
40741 2009-02-09  Jian Li  <jianli@chromium.org>
40742
40743         Reviewed by Alexey Proskuryakov.
40744
40745         Introduce 2 base classes to split WorkerMessagingProxy.
40746         https://bugs.webkit.org/show_bug.cgi?id=23776
40747
40748         * GNUmakefile.am:
40749         * WebCore.vcproj/WebCore.vcproj:
40750         * WebCore.xcodeproj/project.pbxproj:
40751         * dom/WorkerContextProxy.h: Added.
40752         (WebCore::WorkerContextProxy::~WorkerContextProxy):
40753         * dom/WorkerObjectProxy.h: Added.
40754         (WebCore::WorkerObjectProxy::~WorkerObjectProxy):
40755
40756 2009-02-08  David Hyatt  <hyatt@apple.com>
40757
40758         Fix for https://bugs.webkit.org/show_bug.cgi?id=23839
40759
40760         Make sure that generated content is properly handled when content is moved from a block run-in
40761         to an inline run-in.
40762
40763         Reviewed by Sam Weinig
40764
40765         Added fast/runin/002.html
40766
40767         * rendering/RenderBlock.cpp:
40768         (WebCore::RenderBlock::handleRunInChild):
40769
40770 2009-02-08  David Hyatt  <hyatt@apple.com>
40771
40772         Fix for https://bugs.webkit.org/show_bug.cgi?id=23832, crash when inspecting an image using the
40773         Web inspector.
40774
40775         Reviewed by Mark Rowe
40776
40777         * rendering/RenderObject.cpp:
40778         (WebCore::RenderObject::absoluteRectsForRange):
40779         (WebCore::RenderObject::absoluteQuadsForRange):
40780
40781 2009-02-08  Dirk Schulze  <krit@webkit.org>
40782
40783         Unreviewed Qt build fix.
40784
40785         TransformationMatrix changes in r40761 broke QT build.
40786
40787         * platform/graphics/qt/GraphicsContextQt.cpp:
40788         (WebCore::GraphicsContext::getCTM):
40789         (WebCore::GraphicsContext::scale):
40790
40791 2009-02-08  Dirk Schulze  <krit@webkit.org>
40792
40793         Reviewed by Holger Freyther.
40794
40795         This is a follow up of the last commit. It cleans up TransformationMatrix.h
40796         and convert to a series of #elif.
40797
40798         * platform/graphics/transforms/TransformationMatrix.h:
40799
40800 2009-02-08  Gustavo Noronha Silva  <gns@gnome.org>
40801
40802         Reviewed by Simon Fraser.
40803
40804         [CAIRO] build broken by TransformationMatrix rework
40805         https://bugs.webkit.org/show_bug.cgi?id=23831
40806
40807         Fixed cairo build after the TransformationMatrix rework done in
40808         revision 40761.
40809
40810         * platform/graphics/cairo/GraphicsContextCairo.cpp:
40811         (WebCore::GraphicsContext::getCTM):
40812         (WebCore::GraphicsContext::concatCTM):
40813         * platform/graphics/cairo/TransformationMatrixCairo.cpp:
40814         (WebCore::TransformationMatrix::operator cairo_matrix_t):
40815         * platform/graphics/transforms/TransformationMatrix.h:
40816
40817 2009-02-07  David Hyatt  <hyatt@apple.com>
40818
40819         Shrink the size of all InlineTextBoxes and all InlineBoxes (for images and replaced elements) by four bytes.
40820         Change the overflow variable on InlineFlowBoxes into a short and move the bits for InlineFlowBoxes out of the
40821         base InlineBox class.  Since the number of bits in the base class was 35, shoving the 3 bits for InlineFlowBoxes
40822         back down into that class (into the 16 bits exposed by making the overflow variable into a short), all text
40823         boxes and image boxes shrink by 4 bytes.
40824
40825         Reviewed by Anders
40826
40827         * rendering/InlineBox.h:
40828         (WebCore::InlineBox::InlineBox):
40829         * rendering/InlineFlowBox.cpp:
40830         (WebCore::InlineFlowBox::placeBoxesHorizontally):
40831         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
40832         (WebCore::InlineFlowBox::placeBoxesVertically):
40833         * rendering/InlineFlowBox.h:
40834         (WebCore::InlineFlowBox::InlineFlowBox):
40835         (WebCore::InlineFlowBox::maxHorizontalVisualOverflow):
40836         (WebCore::InlineFlowBox::hasTextChildren):
40837
40838 2009-02-07  Dean Jackson  <dino@apple.com>
40839
40840         Attempted build fix for Qt. Not reviewed.
40841
40842         TransformationMatrix changes in r40761 broke non-Apple builds.
40843
40844         * platform/graphics/qt/TransformationMatrixQt.cpp:
40845         (WebCore::TransformationMatrix::operator QMatrix):
40846         * platform/graphics/transforms/TransformationMatrix.h:
40847
40848 2009-02-07  David Hyatt  <hyatt@apple.com>
40849
40850         This patch changes the base class of RenderInline from RenderBox to RenderBoxModelObject.  This shift
40851         in base class knocks 32 bytes off the size of every RenderInline.  All of the necessary functions
40852         for both RenderInline and RenderBox have either been pulled up into RenderBoxModelObject for sharing
40853         or split into two functions (one in each derived class).
40854
40855         Reviewed by Anders and Antti
40856
40857         * dom/Element.cpp:
40858         (WebCore::Element::offsetLeft):
40859         (WebCore::Element::offsetTop):
40860         (WebCore::Element::offsetWidth):
40861         (WebCore::Element::offsetHeight):
40862         (WebCore::Element::offsetParent):
40863         (WebCore::Element::clientWidth):
40864         (WebCore::Element::clientHeight):
40865         (WebCore::Element::scrollWidth):
40866         (WebCore::Element::scrollHeight):
40867         * dom/Node.cpp:
40868         (WebCore::Node::renderBox):
40869         (WebCore::Node::renderBoxModelObject):
40870         * dom/Node.h:
40871         * html/HTMLAnchorElement.cpp:
40872         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
40873         * rendering/InlineBox.h:
40874         (WebCore::InlineBox::boxModelObject):
40875         * rendering/InlineFlowBox.cpp:
40876         (WebCore::InlineFlowBox::marginLeft):
40877         (WebCore::InlineFlowBox::marginRight):
40878         (WebCore::InlineFlowBox::placeBoxesHorizontally):
40879         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
40880         (WebCore::InlineFlowBox::placeBoxesVertically):
40881         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
40882         * rendering/InlineFlowBox.h:
40883         (WebCore::InlineFlowBox::borderLeft):
40884         (WebCore::InlineFlowBox::borderRight):
40885         (WebCore::InlineFlowBox::paddingLeft):
40886         (WebCore::InlineFlowBox::paddingRight):
40887         * rendering/RenderBlock.cpp:
40888         (WebCore::getBorderPaddingMargin):
40889         (WebCore::RenderBlock::calcInlinePrefWidths):
40890         * rendering/RenderBox.cpp:
40891         (WebCore::RenderBox::imageChanged):
40892         (WebCore::RenderBox::calcReplacedWidthUsing):
40893         (WebCore::RenderBox::calcReplacedHeightUsing):
40894         (WebCore::RenderBox::containingBlockWidthForPositioned):
40895         (WebCore::RenderBox::containingBlockHeightForPositioned):
40896         (WebCore::RenderBox::calcAbsoluteHorizontal):
40897         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
40898         (WebCore::RenderBox::calcAbsoluteVertical):
40899         (WebCore::RenderBox::calcAbsoluteVerticalValues):
40900         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
40901         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
40902         (WebCore::RenderBox::positionForCoordinates):
40903         * rendering/RenderBox.h:
40904         (WebCore::RenderBox::borderBoundingBox):
40905         (WebCore::RenderBox::offsetHeight):
40906         (WebCore::RenderBox::marginTop):
40907         (WebCore::RenderBox::marginBottom):
40908         (WebCore::RenderBox::marginLeft):
40909         (WebCore::RenderBox::marginRight):
40910         * rendering/RenderBoxModelObject.cpp:
40911         (WebCore::RenderBoxModelObject::offsetLeft):
40912         (WebCore::RenderBoxModelObject::offsetTop):
40913         (WebCore::RenderBoxModelObject::paddingTop):
40914         (WebCore::RenderBoxModelObject::paddingBottom):
40915         (WebCore::RenderBoxModelObject::paddingLeft):
40916         (WebCore::RenderBoxModelObject::paddingRight):
40917         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
40918         (WebCore::RenderBoxModelObject::calculateBackgroundSize):
40919         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
40920         * rendering/RenderBoxModelObject.h:
40921         (WebCore::RenderBoxModelObject::borderTop):
40922         (WebCore::RenderBoxModelObject::borderBottom):
40923         (WebCore::RenderBoxModelObject::borderLeft):
40924         (WebCore::RenderBoxModelObject::borderRight):
40925         (WebCore::RenderBoxModelObject::hasHorizontalBordersPaddingOrMargin):
40926         (WebCore::RenderBoxModelObject::hasHorizontalBordersOrPadding):
40927         (WebCore::RenderBoxModelObject::childBecameNonInline):
40928         (WebCore::RenderBoxModelObject::isBoxModelObject):
40929         * rendering/RenderInline.cpp:
40930         (WebCore::RenderInline::RenderInline):
40931         (WebCore::RenderInline::destroy):
40932         (WebCore::RenderInline::styleDidChange):
40933         (WebCore::nextContinuation):
40934         (WebCore::RenderInline::continuationBefore):
40935         (WebCore::RenderInline::addChildIgnoringContinuation):
40936         (WebCore::RenderInline::splitInlines):
40937         (WebCore::RenderInline::splitFlow):
40938         (WebCore::RenderInline::addChildToContinuation):
40939         (WebCore::RenderInline::absoluteRects):
40940         (WebCore::RenderInline::offsetLeft):
40941         (WebCore::RenderInline::offsetTop):
40942         (WebCore::RenderInline::marginLeft):
40943         (WebCore::RenderInline::marginRight):
40944         (WebCore::RenderInline::positionForCoordinates):
40945         (WebCore::RenderInline::clippedOverflowRectForRepaint):
40946         (WebCore::RenderInline::rectWithOutlineForRepaint):
40947         (WebCore::RenderInline::computeRectForRepaint):
40948         (WebCore::RenderInline::updateDragState):
40949         (WebCore::RenderInline::childBecameNonInline):
40950         (WebCore::RenderInline::updateHitTestResult):
40951         (WebCore::RenderInline::imageChanged):
40952         (WebCore::RenderInline::addFocusRingRects):
40953         * rendering/RenderInline.h:
40954         (WebCore::RenderInline::marginTop):
40955         (WebCore::RenderInline::marginBottom):
40956         (WebCore::RenderInline::continuation):
40957         (WebCore::RenderInline::setContinuation):
40958         * rendering/RenderLineBoxList.cpp:
40959         (WebCore::RenderLineBoxList::paint):
40960         (WebCore::RenderLineBoxList::hitTest):
40961         * rendering/RenderLineBoxList.h:
40962         * rendering/RenderObject.cpp:
40963         (WebCore::addLayers):
40964         (WebCore::RenderObject::removeLayers):
40965         (WebCore::RenderObject::moveLayers):
40966         (WebCore::RenderObject::findNextLayer):
40967         (WebCore::RenderObject::enclosingLayer):
40968         (WebCore::RenderObject::enclosingCompositingLayer):
40969         (WebCore::RenderObject::setLayerNeedsFullRepaint):
40970         (WebCore::RenderObject::handleDynamicFloatPositionChange):
40971         (WebCore::RenderObject::destroy):
40972         (WebCore::RenderObject::offsetParent):
40973         * rendering/RenderObject.h:
40974         (WebCore::RenderObject::isInlineContinuation):
40975         * rendering/RenderSVGTSpan.cpp:
40976         (WebCore::RenderSVGTSpan::absoluteRects):
40977         (WebCore::RenderSVGTSpan::absoluteQuads):
40978         * rendering/RenderSVGTextPath.cpp:
40979         (WebCore::RenderSVGTextPath::absoluteRects):
40980         (WebCore::RenderSVGTextPath::absoluteQuads):
40981         * rendering/RenderTreeAsText.cpp:
40982         (WebCore::operator<<):
40983         * rendering/RenderView.cpp:
40984         (WebCore::RenderView::setBestTruncatedAt):
40985         * rendering/RenderView.h:
40986         * rendering/bidi.cpp:
40987         (WebCore::getBorderPaddingMargin):
40988         (WebCore::inlineWidth):
40989         (WebCore::RenderBlock::layoutInlineChildren):
40990         (WebCore::inlineFlowRequiresLineBox):
40991         (WebCore::requiresLineBox):
40992         (WebCore::RenderBlock::findNextLineBreak):
40993         * wml/WMLAElement.cpp:
40994         (WebCore::WMLAElement::isKeyboardFocusable):
40995
40996 2009-02-07  Yael Aharon <yael.aharon@nokia.com>
40997
40998         Reviewed by Timothy Hatcher <timothy@hatcher.name>
40999
41000         Partial fix for <https://bugs.webkit.org/show_bug.cgi?id=21051>
41001         Include localStorage and sessionStorage in DatabasesPanel.
41002
41003         * WebCore.vcproj/WebCore.vcproj:
41004         * inspector/InspectorController.cpp:
41005         (WebCore::InspectorDOMStorageResource::create):
41006         (WebCore::InspectorDOMStorageResource::setScriptObject):
41007         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
41008         (WebCore::InspectorController::populateScriptObjects):
41009         (WebCore::InspectorController::addDOMStorageScriptResource):
41010         (WebCore::InspectorController::removeDOMStorageScriptResource):
41011         (WebCore::InspectorController::resetScriptObjects):
41012         (WebCore::InspectorController::didCommitLoad):
41013         (WebCore::InspectorController::didUseDOMStorage):
41014         * inspector/InspectorController.h:
41015         * inspector/front-end/DOMStorage.js: Added.
41016         (WebInspector.DOMStorage):
41017         (WebInspector.DOMStorage.prototype.get domStorage):
41018         (WebInspector.DOMStorage.prototype.set domStorage):
41019         (WebInspector.DOMStorage.prototype.get domain):
41020         (WebInspector.DOMStorage.prototype.set domain):
41021         (WebInspector.DOMStorage.prototype.get isLocalStorage):
41022         (WebInspector.DOMStorage.prototype.set isLocalStorage):
41023         * inspector/front-end/DOMStorageItemsView.js: Added.
41024         (WebInspector.DOMStorageItemsView):
41025         (WebInspector.DOMStorageItemsView.prototype.show):
41026         (WebInspector.DOMStorageItemsView.prototype.update):
41027         * inspector/front-end/DatabaseQueryView.js:
41028         (WebInspector.DatabaseQueryView):
41029         * inspector/front-end/DatabaseTableView.js:
41030         (WebInspector.DatabaseTableView):
41031         (WebInspector.DatabaseTableView.prototype._queryFinished):
41032         (WebInspector.DatabaseTableView.prototype._queryError):
41033         * inspector/front-end/DatabasesPanel.js:
41034         (WebInspector.DatabasesPanel):
41035         (WebInspector.DatabasesPanel.prototype.reset):
41036         (WebInspector.DatabasesPanel.prototype.addDatabase):
41037         (WebInspector.DatabasesPanel.prototype.addDOMStorage):
41038         (WebInspector.DatabasesPanel.prototype.showDatabase):
41039         (WebInspector.DatabasesPanel.prototype.showDOMStorage):
41040         (WebInspector.DatabasesPanel.prototype.closeVisibleView):
41041         (WebInspector.DatabasesPanel.prototype.updateDatabaseTables):
41042         (WebInspector.DatabasesPanel.prototype.dataGridForDOMStorage):
41043         (WebInspector.DatabasesPanel.prototype._updateSidebarWidth):
41044         (WebInspector.DOMStorageSidebarTreeElement):
41045         (WebInspector.DOMStorageSidebarTreeElement.prototype.onselect):
41046         (WebInspector.DOMStorageSidebarTreeElement.prototype.get mainTitle):
41047         (WebInspector.DOMStorageSidebarTreeElement.prototype.set mainTitle):
41048         (WebInspector.DOMStorageSidebarTreeElement.prototype.get subtitle):
41049         (WebInspector.DOMStorageSidebarTreeElement.prototype.set subtitle):
41050         * inspector/front-end/Images/domStorage.png: Added.
41051         * inspector/front-end/WebKit.qrc:
41052         * inspector/front-end/inspector.css:
41053         * inspector/front-end/inspector.html:
41054         * inspector/front-end/inspector.js:
41055         (WebInspector.addDOMStorage):
41056         * page/DOMWindow.cpp:
41057         (WebCore::DOMWindow::sessionStorage):
41058         (WebCore::DOMWindow::localStorage):
41059
41060 2009-02-07  Feng Qian <feng@chromium.org>
41061
41062         Reviewed by Eric Seidel <eric@webkit.org>
41063
41064         Put #if ENABLE(PAN_SCROLLING) around EventHandler::setPanScrollCursor.
41065         https://bugs.webkit.org/show_bug.cgi?id=23574
41066
41067         * page/EventHandler.cpp:
41068         * page/EventHandler.h:
41069
41070 2009-02-07  Zalan Bujtas  <zbujtas@gmail.com>
41071
41072         Reviewed by Rob Buis <rwlbuis@gmail.com>
41073
41074         https://bugs.webkit.org/show_bug.cgi?id=23788
41075         call style()->isOriginalDisplayInlineType() on RenderBox instead of RenderObject.
41076
41077         * rendering/bidi.cpp:
41078         (WebCore::RenderBlock::skipLeadingWhitespace):
41079
41080 2009-02-07  Rob Buis  <rwlbuis@gmail.com>
41081
41082         Reviewed by Darin.
41083
41084         https://bugs.webkit.org/show_bug.cgi?id=3248
41085         Bug 3248: Mouse events on OPTION element seem to be ignored
41086
41087         Support mouse events on options in a select when it forms a list box.
41088
41089         Test: fast/forms/option-mouseevents.html
41090
41091         * html/HTMLSelectElement.cpp: Convert to coords relative to the list box.
41092         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
41093         * rendering/RenderListBox.cpp: Handle hit testing for option elements.
41094         (WebCore::RenderListBox::nodeAtPoint):
41095         * rendering/RenderListBox.h:
41096
41097 2009-02-07  Adam Treat  <adam.treat@torchmobile.com>
41098
41099         Prospective build fix for all non-Apple platforms.
41100
41101         * platform/graphics/transforms/TransformationMatrix.h:
41102
41103 2009-02-06  Chris Marrin  <cmarrin@apple.com>
41104
41105         Reviewed by Simon Fraser.
41106
41107         https://bugs.webkit.org/show_bug.cgi?id=6868
41108
41109         I have not only made TransformationMatrix platform independent
41110         but I've also added 3D methods, which will be used when I update
41111         WebKitCSSMatrix to include 3D (see https://bugs.webkit.org/show_bug.cgi?id=23689).
41112         I am now keeping a full 4x4 matrix in TransformationMatrix. I'm also doing all
41113         the math as doubles rather than floats. This makes a TransformationMatrix
41114         go from 24 bytes to 128 bytes, but I don't think this class is used enough to
41115         make this overhead will be significant.
41116
41117         The change from floats to doubles has caused some differences in rounding and
41118         display (sometimes things that displayed as -0.0 now display as 0.0 or vice versa),
41119         so I've had to change some LayoutTest results in the SVG tests.
41120
41121         * platform/graphics/FloatPoint.cpp:
41122         (WebCore::FloatPoint::matrixTransform):
41123         * platform/graphics/cg/GraphicsContextCG.cpp:
41124         (WebCore::GraphicsContext::getCTM):
41125         * platform/graphics/cg/TransformationMatrixCG.cpp:
41126         (WebCore::TransformationMatrix::operator CGAffineTransform):
41127         * platform/graphics/transforms/TransformationMatrix.cpp:
41128         (WebCore::determinant2x2):
41129         (WebCore::determinant3x3):
41130         (WebCore::determinant4x4):
41131         (WebCore::adjoint):
41132         (WebCore::inverse):
41133         (WebCore::transposeMatrix4):
41134         (WebCore::v4MulPointByMatrix):
41135         (WebCore::v3Length):
41136         (WebCore::v3Scale):
41137         (WebCore::v3Dot):
41138         (WebCore::v3Combine):
41139         (WebCore::v3Cross):
41140         (WebCore::decompose):
41141         (WebCore::slerp):
41142         (WebCore::TransformationMatrix::scale):
41143         (WebCore::TransformationMatrix::rotateFromVector):
41144         (WebCore::TransformationMatrix::flipX):
41145         (WebCore::TransformationMatrix::flipY):
41146         (WebCore::makeMapBetweenRects):
41147         (WebCore::TransformationMatrix::projectPoint):
41148         (WebCore::TransformationMatrix::mapPoint):
41149         (WebCore::TransformationMatrix::mapRect):
41150         (WebCore::TransformationMatrix::mapQuad):
41151         (WebCore::TransformationMatrix::scale3d):
41152         (WebCore::TransformationMatrix::rotate3d):
41153         (WebCore::TransformationMatrix::translate):
41154         (WebCore::TransformationMatrix::translate3d):
41155         (WebCore::TransformationMatrix::skew):
41156         (WebCore::TransformationMatrix::applyPerspective):
41157         (WebCore::TransformationMatrix::multLeft):
41158         (WebCore::TransformationMatrix::multVecMatrix):
41159         (WebCore::TransformationMatrix::isInvertible):
41160         (WebCore::TransformationMatrix::inverse):
41161         (WebCore::blendFloat):
41162         (WebCore::TransformationMatrix::blend):
41163         (WebCore::TransformationMatrix::decompose):
41164         (WebCore::TransformationMatrix::recompose):
41165         * platform/graphics/transforms/TransformationMatrix.h:
41166         (WebCore::TransformationMatrix::TransformationMatrix):
41167         (WebCore::TransformationMatrix::setMatrix):
41168         (WebCore::TransformationMatrix::operator =):
41169         (WebCore::TransformationMatrix::makeIdentity):
41170         (WebCore::TransformationMatrix::isIdentity):
41171         (WebCore::TransformationMatrix::map):
41172         (WebCore::TransformationMatrix::m11):
41173         (WebCore::TransformationMatrix::setM11):
41174         (WebCore::TransformationMatrix::m12):
41175         (WebCore::TransformationMatrix::setM12):
41176         (WebCore::TransformationMatrix::m13):
41177         (WebCore::TransformationMatrix::setM13):
41178         (WebCore::TransformationMatrix::m14):
41179         (WebCore::TransformationMatrix::setM14):
41180         (WebCore::TransformationMatrix::m21):
41181         (WebCore::TransformationMatrix::setM21):
41182         (WebCore::TransformationMatrix::m22):
41183         (WebCore::TransformationMatrix::setM22):
41184         (WebCore::TransformationMatrix::m23):
41185         (WebCore::TransformationMatrix::setM23):
41186         (WebCore::TransformationMatrix::m24):
41187         (WebCore::TransformationMatrix::setM24):
41188         (WebCore::TransformationMatrix::m31):
41189         (WebCore::TransformationMatrix::setM31):
41190         (WebCore::TransformationMatrix::m32):
41191         (WebCore::TransformationMatrix::setM32):
41192         (WebCore::TransformationMatrix::m33):
41193         (WebCore::TransformationMatrix::setM33):
41194         (WebCore::TransformationMatrix::m34):
41195         (WebCore::TransformationMatrix::setM34):
41196         (WebCore::TransformationMatrix::m41):
41197         (WebCore::TransformationMatrix::setM41):
41198         (WebCore::TransformationMatrix::m42):
41199         (WebCore::TransformationMatrix::setM42):
41200         (WebCore::TransformationMatrix::m43):
41201         (WebCore::TransformationMatrix::setM43):
41202         (WebCore::TransformationMatrix::m44):
41203         (WebCore::TransformationMatrix::setM44):
41204         (WebCore::TransformationMatrix::a):
41205         (WebCore::TransformationMatrix::setA):
41206         (WebCore::TransformationMatrix::b):
41207         (WebCore::TransformationMatrix::setB):
41208         (WebCore::TransformationMatrix::c):
41209         (WebCore::TransformationMatrix::setC):
41210         (WebCore::TransformationMatrix::d):
41211         (WebCore::TransformationMatrix::setD):
41212         (WebCore::TransformationMatrix::e):
41213         (WebCore::TransformationMatrix::setE):
41214         (WebCore::TransformationMatrix::f):
41215         (WebCore::TransformationMatrix::setF):
41216         (WebCore::TransformationMatrix::multiply):
41217         (WebCore::TransformationMatrix::rotate):
41218         (WebCore::TransformationMatrix::skewX):
41219         (WebCore::TransformationMatrix::skewY):
41220         (WebCore::TransformationMatrix::hasPerspective):
41221         (WebCore::TransformationMatrix::):
41222         (WebCore::TransformationMatrix::isAffine):
41223         (WebCore::TransformationMatrix::operator==):
41224         (WebCore::TransformationMatrix::operator*=):
41225         (WebCore::TransformationMatrix::operator*):
41226         * rendering/RenderForeignObject.cpp:
41227         (WebCore::RenderForeignObject::nodeAtPoint):
41228         * rendering/RenderLayer.cpp:
41229         (WebCore::RenderLayer::updateTransform):
41230         * rendering/RenderPath.cpp:
41231         (WebCore::RenderPath::mapAbsolutePointToLocal):
41232         * rendering/RenderSVGImage.cpp:
41233         (WebCore::RenderSVGImage::nodeAtPoint):
41234         * rendering/RenderSVGRoot.cpp:
41235         (WebCore::RenderSVGRoot::nodeAtPoint):
41236         * rendering/RenderSVGText.cpp:
41237         (WebCore::RenderSVGText::nodeAtPoint):
41238         * rendering/RenderSVGViewportContainer.cpp:
41239         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
41240         * svg/SVGAnimateMotionElement.cpp:
41241         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
41242         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
41243         * svg/SVGSVGElement.cpp:
41244         (WebCore::SVGSVGElement::viewport):
41245         * svg/SVGTransform.cpp:
41246         (SVGTransform::setTranslate):
41247         (SVGTransform::setScale):
41248         (SVGTransform::setRotate):
41249         (SVGTransform::setSkewX):
41250         (SVGTransform::setSkewY):
41251         * svg/graphics/SVGResourceMarker.cpp:
41252         (WebCore::SVGResourceMarker::draw):
41253
41254 2009-02-07  Simon Hausmann  <simon.hausmann@nokia.com>
41255
41256         Reviewed by Tor Arne Vestbø.
41257
41258         For the Qt port implement Image::drawPattern via
41259         BitmapImage::drawPatterns' implementation and implement
41260         Gradient::fill.
41261
41262         This partially fixes rendering of generated gradient content.
41263
41264         * platform/graphics/BitmapImage.h: Remove the drawPattern
41265         implementation for the Qt port in BitmapImage, it's been moved to
41266         Image::drawPattern.
41267         * platform/graphics/qt/GradientQt.cpp:
41268         (WebCore::Gradient::fill): Implement using a simple fillRect.
41269         * platform/graphics/qt/ImageQt.cpp:
41270         (WebCore::Image::drawPattern): Moved implementation from
41271         BitmapImage::drawPattern.
41272
41273 2009-02-06  Eric Seidel  <eric@webkit.org>
41274
41275         Reviewed by Justin Garcia.
41276
41277         DOMSelection.getRangeAt() returns a different range than the selection
41278         https://bugs.webkit.org/show_bug.cgi?id=23601
41279
41280         Rename toRange to toNormalizedRange and add new firstRange which returns an unmodified range
41281
41282         Test: fast/dom/Selection/getRangeAt.html
41283
41284         * WebCore.base.exp:
41285         * dom/InputElement.cpp:
41286         (WebCore::InputElement::handleBeforeTextInsertedEvent):
41287         * editing/DeleteButtonController.cpp:
41288         (WebCore::enclosingDeletableElement):
41289         * editing/Editor.cpp:
41290         (WebCore::Editor::selectedRange):
41291         (WebCore::Editor::fontForSelection):
41292         (WebCore::Editor::applyStyleToSelection):
41293         (WebCore::Editor::applyParagraphStyleToSelection):
41294         (WebCore::Editor::insertTextWithoutSendingTextEvent):
41295         (WebCore::Editor::insertLineBreak):
41296         (WebCore::Editor::insertParagraphSeparator):
41297         (WebCore::Editor::ignoreSpelling):
41298         (WebCore::Editor::isSelectionUngrammatical):
41299         (WebCore::Editor::guessesForUngrammaticalSelection):
41300         (WebCore::markMisspellingsOrBadGrammar):
41301         (WebCore::Editor::rangeForPoint):
41302         * editing/EditorCommand.cpp:
41303         (WebCore::expandSelectionToGranularity):
41304         (WebCore::executeDeleteToMark):
41305         (WebCore::executeSelectToMark):
41306         * editing/RemoveFormatCommand.cpp:
41307         (WebCore::RemoveFormatCommand::doApply):
41308         * editing/ReplaceSelectionCommand.cpp:
41309         (WebCore::ReplacementFragment::ReplacementFragment):
41310         * editing/Selection.cpp:
41311         (WebCore::Selection::firstRange):
41312         (WebCore::Selection::toNormalizedRange):
41313         * editing/Selection.h:
41314         * editing/SelectionController.h:
41315         (WebCore::SelectionController::toNormalizedRange):
41316         * editing/TypingCommand.cpp:
41317         (WebCore::TypingCommand::deleteKeyPressed):
41318         (WebCore::TypingCommand::forwardDeleteKeyPressed):
41319         * editing/markup.cpp:
41320         (WebCore::createMarkup):
41321         * loader/archive/cf/LegacyWebArchive.cpp:
41322         (WebCore::LegacyWebArchive::createFromSelection):
41323         * page/AccessibilityRenderObject.cpp:
41324         (WebCore::AccessibilityRenderObject::ariaSelectedTextDOMRange):
41325         * page/ContextMenuController.cpp:
41326         (WebCore::ContextMenuController::contextMenuItemSelected):
41327         * page/DOMSelection.cpp:
41328         (WebCore::DOMSelection::getRangeAt):
41329         (WebCore::DOMSelection::addRange):
41330         (WebCore::DOMSelection::deleteFromDocument):
41331         (WebCore::DOMSelection::containsNode):
41332         (WebCore::DOMSelection::toString):
41333         * page/DragController.cpp:
41334         (WebCore::setSelectionToDragCaret):
41335         (WebCore::DragController::concludeEditDrag):
41336         (WebCore::DragController::startDrag):
41337         * page/EventHandler.cpp:
41338         (WebCore::EventHandler::dispatchMouseEvent):
41339         * page/Frame.cpp:
41340         (WebCore::Frame::selectedText):
41341         (WebCore::Frame::shouldChangeSelection):
41342         (WebCore::Frame::shouldDeleteSelection):
41343         (WebCore::Frame::selectionComputedStyle):
41344         (WebCore::Frame::selectionTextRects):
41345         (WebCore::Frame::findString):
41346         (WebCore::Frame::respondToChangedSelection):
41347         * platform/ContextMenu.cpp:
41348         (WebCore::selectionContainsPossibleWord):
41349
41350 2009-02-06  Brady Eidson  <beidson@apple.com>
41351
41352         Reviewed by Dan Bernstein
41353
41354         <rdar://problem/6563402> - Workaround a case where ::didReceiveData() might be called on a ResourceHandleClient
41355         before ::didReceiveResponse().
41356
41357         No layout test, as we don't have a concrete way to reproduce these conditions.  To that effect, I've added an ASSERT
41358         to catch the conditions before the workaround takes effect in case any WebKit Debug-build developer runs across
41359         this case and can come up with something more reproducible.
41360
41361         * loader/MainResourceLoader.cpp:
41362         (WebCore::MainResourceLoader::didReceiveData): If the response is null create a dummy response.  This is much
41363           like the FrameLoader::init() response that is used for initial document creation.
41364
41365 2009-02-06  Geoffrey Garen  <ggaren@apple.com>
41366
41367         Build fix.
41368
41369         * WebCore.base.exp:
41370
41371 2009-02-06  Xan Lopez  <xan@gnome.org>
41372
41373         Reviewed by Holger Freyther.
41374
41375         https://bugs.webkit.org/show_bug.cgi?id=23621
41376
41377         Do not use m_scrollOffset to check if we are setting the same
41378         value than we already have.
41379
41380         m_scrollOffset starts at 0 for ScrollView, so when opening a new
41381         page and scrolling to 0 (the usual case) the check will fail and
41382         we won't update the adjustment value, resulting in a possibly
41383         mispositioned scrollbar. Use the adjustment value directly
41384         instead, which is what we are updating anyway.
41385
41386         * platform/gtk/ScrollViewGtk.cpp:
41387         (WebCore::ScrollView::platformHandleHorizontalAdjustment):
41388         (WebCore::ScrollView::platformHandleVerticalAdjustment):
41389
41390 2009-02-06  Justin Garcia  <justin.garcia@apple.com>
41391
41392         Reviewed by Oliver Hunt.
41393
41394         https://bugs.webkit.org/show_bug.cgi?id=23800
41395         Header elements are not always preserved during paste
41396
41397         At paste time, don't merge out of header elements.  At copy time, be sure to include
41398         headers in the list of special common ancestor blocks, so that copying a paragraph or less
41399         of content inside a header will include the header element in the copied markup.
41400
41401         * editing/ReplaceSelectionCommand.cpp:
41402         (WebCore::areSameHeaderElements):
41403         (WebCore::ReplaceSelectionCommand::shouldMerge):
41404         * editing/markup.cpp:
41405         (WebCore::isSpecialAncestorBlock):
41406         (WebCore::createMarkup):
41407
41408 2009-02-06  Geoffrey Garen  <ggaren@apple.com>
41409
41410         Reviewed by Sam Weinig.
41411
41412         Part III of <rdar://problem/6552272>.
41413
41414         Make redirect data available to WebKit. (I tried having WebKit track this
41415         data for itself, but that went wrong -- it's just too hard to figure
41416         out the weird corners of the WebCore loader from within another framework.)
41417
41418         * loader/DocumentLoader.cpp:
41419         (WebCore::DocumentLoader::DocumentLoader):
41420         * loader/DocumentLoader.h: Store a flag indicating whether we created
41421         a global history entry. If we didn't, then we know that the next redirect
41422         should not link to us, since we're not in history.
41423
41424         (WebCore::DocumentLoader::clientRedirectSourceForHistory):
41425         (WebCore::DocumentLoader::clientRedirectDestinationForHistory):
41426         (WebCore::DocumentLoader::setClientRedirectSourceForHistory):
41427         (WebCore::DocumentLoader::serverRedirectSourceForHistory):
41428         (WebCore::DocumentLoader::serverRedirectDestinationForHistory):
41429         (WebCore::DocumentLoader::didCreateGlobalHistoryEntry):
41430         (WebCore::DocumentLoader::setDidCreateGlobalHistoryEntry): Added accessors
41431         to help WebKit wade through the muck of WebCore history.
41432
41433         * loader/EmptyClients.h:
41434         (WebCore::EmptyFrameLoaderClient::updateGlobalHistoryRedirectLinks): Renamed
41435         this client function to say what it does, instead of when it's called.
41436
41437         * loader/FrameLoader.cpp:
41438         (WebCore::FrameLoader::load):
41439         (WebCore::FrameLoader::loadWithNavigationAction): In the case of a redirect,
41440         store a link to the previous history URL in the new DocumentLoader, so
41441         it can update WebKit with that link when the load commits.
41442
41443         (WebCore::FrameLoader::updateHistory*): Use our new flags and names,
41444         described above.
41445
41446         * loader/FrameLoader.h:
41447         (WebCore::FrameLoader::documentLoader):
41448         (WebCore::FrameLoader::policyDocumentLoader):
41449         (WebCore::FrameLoader::provisionalDocumentLoader):
41450         (WebCore::FrameLoader::state): Inlined a few trivial functions because
41451         performance mistakes give me the itches.
41452
41453         * loader/FrameLoaderClient.h: Renamed this client function to say what
41454         it does, instead of when it's called.
41455
41456 2009-02-06  Eric Seidel  <eric@webkit.org>
41457
41458         Reviewed by Justin Garcia.
41459
41460         Minor refactoring and cleanup to Selection code
41461         https://bugs.webkit.org/show_bug.cgi?id=23774
41462
41463         No functional changes, thus no tests.
41464
41465         * editing/Editor.cpp:
41466         (WebCore::Editor::applyStyle):
41467         (WebCore::Editor::applyParagraphStyle):
41468         * editing/Selection.cpp:
41469         (WebCore::Selection::Selection):
41470         (WebCore::Selection::setBaseAndExtentToDeepEquivalents):
41471         (WebCore::Selection::setStartAndEndFromBaseAndExtentRespectingGranularity):
41472         (WebCore::Selection::updateSelectionType):
41473         (WebCore::Selection::validate):
41474         (WebCore::Selection::setWithoutValidation):
41475         (WebCore::Selection::adjustSelectionToAvoidCrossingEditingBoundaries):
41476         * editing/Selection.h:
41477         (WebCore::Selection::):
41478         (WebCore::Selection::selectionType):
41479         (WebCore::Selection::extent):
41480         (WebCore::Selection::isNone):
41481         (WebCore::Selection::isCaret):
41482         (WebCore::Selection::isRange):
41483         (WebCore::Selection::isCaretOrRange):
41484         * editing/SelectionController.h:
41485         (WebCore::SelectionController::selectionType):
41486         * editing/TypingCommand.cpp:
41487         (WebCore::TypingCommand::deleteKeyPressed):
41488         (WebCore::TypingCommand::forwardDeleteKeyPressed):
41489         * page/Frame.cpp:
41490         (WebCore::Frame::revealSelection):
41491
41492 2009-02-06  Dimitri Glazkov  <dglazkov@chromium.org>
41493
41494         Reviewed by Eric Seidel.
41495
41496         https://bugs.webkit.org/show_bug.cgi?id=23801
41497         Add custom V8 bindings for SVG.
41498
41499         * bindings/v8/custom/V8SVGElementInstanceCustom.cpp: Added.
41500         (WebCore::CALLBACK_FUNC_DECL):
41501         * bindings/v8/custom/V8SVGLengthCustom.cpp: Added.
41502         (WebCore::ACCESSOR_GETTER):
41503         (WebCore::CALLBACK_FUNC_DECL):
41504         * bindings/v8/custom/V8SVGMatrixCustom.cpp: Added.
41505         (WebCore::CALLBACK_FUNC_DECL):
41506
41507 2009-02-06  David Levin  <levin@chromium.org>
41508
41509         Reviewed by Eric Seidel.
41510
41511         Bug 23792: unused param is used in RenderLayer.cpp but not #include'd
41512         <https://bugs.webkit.org/show_bug.cgi?id=23792>
41513
41514         Add include file for UnusedParam which is used in this file.
41515
41516         * rendering/RenderLayer.cpp:
41517
41518 2009-02-06  David Levin  <levin@chromium.org>
41519
41520         Reviewed by Eric Seidel.
41521
41522         <https://bugs.webkit.org/show_bug.cgi?id=23741>
41523
41524         Bug 23798: KURLGoogle needs support for protocolInHTTPFamily
41525         <https://bugs.webkit.org/show_bug.cgi?id=23798>
41526
41527         Add protocolInHTTPFamily() to the KURLGoogle implementation.
41528         This is another chromium build fix to mirror r40553.
41529
41530         While in this file, I did some style fixes and consistency fixes:
41531         + fixed many_occurences_of_underscoring_naming
41532         + usages of NULL
41533         + comparisons to 0
41534         + changed the copyright remove an extraneous , and capitalize the (C)
41535           which was suggested for other files that I've submitted.
41536
41537         No observable change in behavior, so no test.
41538
41539         * platform/KURL.h:
41540         (WebCore::KURL::protocolInHTTPFamily):
41541         * platform/KURLGoogle.cpp:
41542         (WebCore::KURLCharsetConverter::ConvertFromUTF16):
41543         (WebCore::lowerCaseEqualsASCII):
41544         (WebCore::KURLGooglePrivate::KURLGooglePrivate):
41545         (WebCore::KURLGooglePrivate::setUtf8):
41546         (WebCore::KURLGooglePrivate::setAscii):
41547         (WebCore::KURLGooglePrivate::init):
41548         (WebCore::KURLGooglePrivate::initProtocolInHTTPFamily):
41549         (WebCore::KURLGooglePrivate::copyTo):
41550         (WebCore::KURLGooglePrivate::replaceComponents):
41551         (WebCore::KURL::KURL):
41552         (WebCore::KURL::createCFURL):
41553         (WebCore::KURL::isEmpty):
41554         (WebCore::KURL::protocolInHTTPFamily):
41555         (WebCore::KURL::query):
41556         (WebCore::decodeURLEscapeSequences):
41557         (WebCore::KURL::protocolIs):
41558         (WebCore::encodeWithURLEscapeSequences):
41559         (WebCore::KURL::invalidate):
41560         (WebCore::equalIgnoringRef):
41561         * platform/KURLGooglePrivate.h:
41562
41563 2009-02-06  David Kilzer  <ddkilzer@apple.com>
41564
41565         Bug 23741: StyleRareNonInheritedData::operator==() should not compare ContentData objects by pointer
41566
41567         Reviewed by Darin Adler.
41568
41569         * rendering/style/RenderStyle.cpp:
41570         (WebCore::RenderStyle::contentDataEquivalent): Moved method to
41571         WebCore::StyleRareNonInheritedData class.
41572         * rendering/style/RenderStyle.h:
41573         (WebCore::InheritedFlags::contentDataEquivalent): Replaced declaration
41574         with inline method that calls contentDataEquivalent() on
41575         WebCore::StyleRareNonInheritedData instead.
41576         * rendering/style/StyleRareNonInheritedData.cpp:
41577         (WebCore::StyleRareNonInheritedData::operator==): This is the bug fix!
41578         Replaced pointer comparison of ContentData objects with call to
41579         StyleRareNonInheritedData::contentDataEquivalent().
41580         (WebCore::StyleRareNonInheritedData::contentDataEquivalent): Added.
41581         * rendering/style/StyleRareNonInheritedData.h:
41582         (WebCore::StyleRareNonInheritedData::contentDataEquivalent): Added
41583         declaration.
41584
41585 2009-02-06  Simon Fraser  <simon.fraser@apple.com>
41586
41587         Reviewed by Eric Seidel
41588
41589         Factor code that checks whether the object is rooted in
41590         repaint() and repaintRectangle() into a common isRooted()
41591         method.
41592
41593         * rendering/RenderObject.cpp:
41594         (WebCore::RenderObject::repaint):
41595         (WebCore::RenderObject::repaintRectangle):
41596         (WebCore::RenderObject::isRooted):
41597         * rendering/RenderObject.h:
41598
41599 2009-02-06  Simon Fraser  <simon.fraser@apple.com>
41600
41601         Reviewed by Eric Seidel
41602
41603         Expose an isRootLayer() method on RenderLayer that works whether the
41604         layer is rooted or not, and use that in a few places in the
41605         accelerated compositing code.
41606
41607         * rendering/RenderLayer.h:
41608         (WebCore::RenderLayer::isRootLayer):
41609         * rendering/RenderLayerBacking.cpp:
41610         (WebCore::RenderLayerBacking::paintingGoesToWindow):
41611         * rendering/RenderLayerCompositor.cpp:
41612         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
41613         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
41614
41615 2009-02-06  Dan Bernstein  <mitz@apple.com>
41616
41617         Reviewed by Darin Adler.
41618
41619         - fix <rdar://problem/6552338> FontCache::releaseFontData() called on a small caps font that is not in the cache
41620
41621         Most platforms do not retrieve the small caps font from the FontCache,
41622         but cross-platform code in ~SimpleFontData() assumes the the small caps
41623         font data did come from the cache and therefore calls releaseFontData()
41624         on it.
41625
41626         * platform/graphics/SimpleFontData.cpp:
41627         (WebCore::SimpleFontData::~SimpleFontData): Reordered to call
41628         platformDestroy() before releasing the small caps font and pruning the
41629         glyph page tree. This allows platformDestroy() to reset
41630         m_smallCapsFontData to 0 if it was not obtained from the cache.
41631         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
41632         (WebCore::SimpleFontData::platformDestroy): Set m_smallCapsFontData to
41633         0 after deleting it.
41634         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
41635         (WebCore::SimpleFontData::platformDestroy): Ditto.
41636         * platform/graphics/gtk/SimpleFontDataPango.cpp:
41637         (WebCore::SimpleFontData::platformDestroy): Ditto.
41638         * platform/graphics/win/SimpleFontDataWin.cpp:
41639         (WebCore::SimpleFontData::platformCommonDestroy): Ditto.
41640         * platform/graphics/wx/SimpleFontDataWx.cpp:
41641         (WebCore::SimpleFontData::platformDestroy): Ditto.
41642
41643 2009-02-06  Simon Fraser  <simon.fraser@apple.com>
41644
41645         Reviewed by Eric Seidel
41646
41647         Make RenderStyle::transitionForProperty() const.
41648
41649         * rendering/style/RenderStyle.cpp:
41650         (WebCore::RenderStyle::transitionForProperty):
41651         * rendering/style/RenderStyle.h:
41652
41653 2009-02-06  Simon Fraser  <simon.fraser@apple.com>
41654
41655         Fix build when ACCELERATED_COMPOSITING is turned on.
41656
41657         Remove font smoothing changes that will be committed
41658         separately.
41659
41660         * platform/graphics/mac/WebLayer.mm:
41661         (WebCore::if):
41662
41663 2009-02-06  Anders Carlsson  <andersca@apple.com>
41664
41665         Build fix.
41666
41667         * bridge/npapi.h:
41668
41669 2009-02-06  Darin Fisher  <darin@chromium.org>
41670
41671         Reviewed by Eric Seidel.
41672
41673         https://bugs.webkit.org/show_bug.cgi?id=23790
41674         Custom -> JSCCustom in SVGPointList.idl
41675
41676         * svg/SVGPointList.idl:
41677
41678 2009-02-06  Anantanarayanan Iyengar  <ananta@chromium.org>
41679
41680         Reviewed by Eric Seidel.
41681
41682         https://bugs.webkit.org/show_bug.cgi?id=23309
41683         Fix whitespace indent errors. The rest of the original patch has already
41684         landed.
41685
41686         * platform/graphics/cairo/ImageSourceCairo.cpp:
41687         (WebCore::ImageSource::clear):
41688         * platform/graphics/cg/ImageSourceCG.cpp:
41689         (WebCore::ImageSource::clear):
41690         * platform/graphics/qt/ImageSourceQt.cpp:
41691         (WebCore::ImageSource::clear):
41692         * platform/graphics/wx/ImageSourceWx.cpp:
41693         (WebCore::ImageSource::clear):
41694
41695 2009-02-06  Dirk Schulze  <krit@webkit.org>
41696
41697         Reviewed by Simon Hausmann.
41698
41699         Fix bug in clearRect(). Use fillRect() instead of eraseRect() to get
41700         the context transparent.
41701
41702         [QT] clearRect fill's a given rect with white
41703         https://bugs.webkit.org/show_bug.cgi?id=23728
41704
41705         * platform/graphics/qt/GraphicsContextQt.cpp:
41706         (WebCore::GraphicsContext::clearRect):
41707
41708 2009-02-06  Simon Fraser  <simon.fraser@apple.com>
41709
41710         Reviewed by Dave Hyatt
41711
41712         https://bugs.webkit.org/show_bug.cgi?id=23781
41713
41714         When the document is attached and detached, and when it becomes active/inactive
41715         (e.g. coming out or going into the page cache) we need to call
41716         RenderView::didMoveOnscreen()/willMoveOffscreen() to hook and unhook the composited
41717         layers.
41718
41719         Also, if Document::recalcStyle() does not do a layout, it needs to
41720         update the compositing layers.
41721
41722         * dom/Document.cpp:
41723         (WebCore::Document::updateRendering):
41724         (WebCore::Document::updateLayout):
41725         (WebCore::Document::attach):
41726         (WebCore::Document::detach):
41727         (WebCore::Document::documentWillBecomeInactive):
41728         (WebCore::Document::documentDidBecomeActive):
41729
41730 2009-02-06  Simon Hausmann  <simon.hausmann@nokia.com>
41731
41732         Reviewed by Tor Arne Vestbø.
41733
41734         Added support for different ownership models for wrapped QObjects in
41735         the JavaScript environment.
41736
41737         * bindings/js/ScriptControllerQt.cpp:
41738         (WebCore::ScriptController::createScriptInstanceForWidget): Specify
41739         QtOwnership for scriptable widgets.
41740         * bridge/npruntime_internal.h: Add "NormalState" to the list of
41741         undef'ed macros as an included Qt header uses "NormalState" as value
41742         in an enum.
41743         * bridge/qt/qt_instance.cpp:
41744         (JSC::Bindings::QtInstance::QtInstance): Save and initialize ownership
41745         member.
41746         (JSC::Bindings::QtInstance::~QtInstance): Respect
41747         QScriptEngine::ValueOwnership policy with regards to wrapped m_object.
41748         (JSC::Bindings::QtInstance::getQtInstance): Pass the ownership down to
41749         the instance.
41750         * bridge/qt/qt_instance.h:
41751         (JSC::Bindings::QtInstance::create): Ditto.
41752         * bridge/qt/qt_runtime.cpp:
41753         (JSC::Bindings::convertQVariantToValue): Use QtOwnership for
41754         automatically wrapped QObjects.
41755         (JSC::Bindings::QtConnectionObject::execute): Ditto.
41756
41757 2009-02-05  Maciej Stachowiak  <mjs@apple.com> and Brady Eidson  <beidson@apple.com>
41758
41759         Reviewed by Dan Bernstein and Geoff Garen.
41760
41761         - WebCore code to track per-day and per-week visit counts in history
41762
41763         The basic idea is as follows: we track daily visits for up to 13
41764         days, and weekly visits for up to 5 weeks past the end of the
41765         current daily visits. As soon as the number of daily counts goes
41766         over 13, we squish them down into weeks, and then prune the excess weeks.
41767
41768         * history/HistoryItem.cpp:
41769         (WebCore::HistoryItem::HistoryItem): Remove bogus whitespace.
41770         (WebCore::timeToDay): Helper function: convert time to days from the epoch.
41771         (WebCore::HistoryItem::padDailyCountsForNewVisit): Insert 0 counts if
41772         a site is visited after a span of days.
41773         (WebCore::HistoryItem::collapseDailyVisitsToWeekly): Core day/week upgrade
41774         algorithm as described above.
41775         (WebCore::HistoryItem::recordVisitAtTime): Use above helpers to record all
41776         info about a visit to this history item.
41777         (WebCore::HistoryItem::setLastVisitedTime): Updated.
41778         (WebCore::HistoryItem::visited): Updated.
41779         (WebCore::HistoryItem::recordInitialVisit): New function to
41780         handle recording data about the very first visit, replacing the
41781         prior practice of explicitly setting visit count to 1.
41782         (WebCore::HistoryItem::adoptVisitCounts): Take ownership of
41783         daily and weekly visit count vectors.
41784         (WebCore::HistoryItem::mergeAutoCompleteHints): Added a comment
41785         noting that this function doesn't work properly now (though
41786         this shouldn't matter much in practice.)
41787         * history/HistoryItem.h:
41788         (WebCore::HistoryItem::dailyVisitCounts): Accessor for daily counts.
41789         (WebCore::HistoryItem::weeklyVisitCounts): Ditto for weekly counts.
41790         * WebCore.base.exp: Add new symbols and sort.
41791
41792 2009-02-05  Alexey Proskuryakov  <ap@webkit.org>
41793
41794         Reviewed by Darin Adler.
41795
41796         <rdar://problem/6438271> Improve backspace handling of accented characters
41797
41798         Test: platform/mac/editing/deleting/backward-delete.html
41799
41800         This change makes WebKit behave like AppKit on the Mac. Other platforms are not affected,
41801         because the current behavior matches their standards (tested on Windows, assumed elsewhere).
41802
41803         * dom/Position.cpp:
41804         (WebCore::Position::previous):
41805         (WebCore::Position::next):
41806         (WebCore::Position::uncheckedPreviousOffsetForBackwardDeletion):
41807         * dom/Position.h:
41808         Added a new option for previous(), used to move to a next position for backward deletion.
41809         Renamed EUsingComposedCharacters to PositionMoveType.
41810
41811         * editing/TypingCommand.cpp: (WebCore::TypingCommand::deleteKeyPressed):
41812         Use previous(BackwardDeletion) to find a proper range to delete. Also, simplified a check
41813         surrounding this code a little.
41814
41815         * editing/htmlediting.cpp:
41816         (WebCore::nextVisuallyDistinctCandidate):
41817         (WebCore::previousVisuallyDistinctCandidate):
41818         Adjusted for renamed enum values.
41819
41820         * rendering/RenderObject.cpp:
41821         * rendering/RenderObject.h:
41822         * rendering/RenderText.h:
41823         Added previousOffsetForBackwardDeletion().
41824
41825         * rendering/RenderText.cpp: (WebCore::RenderText::previousOffsetForBackwardDeletion):
41826         On PLATFORM(MAC), use an algorithm that matches the one AppKit has for backward deletion.
41827
41828 2009-02-05  Adam Roben  <aroben@apple.com>
41829
41830         Fix a crash in RenderWidget::destroy when navigating away from a page
41831         with an <iframe>
41832
41833         This was a regression caused by r40679
41834
41835         Reviewed by Dave Hyatt.
41836
41837         Tested by many many tests.
41838
41839         * rendering/RenderWidget.cpp:
41840         (WebCore::RenderWidget::destroy): Only deref the RenderWidget after we
41841         finish accessing its members.
41842
41843 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41844
41845         Reviewed by Anders Carlsson
41846
41847         getAnimatedStyleForRenderer() should not create a new
41848         CompositeAnimation if the object isn't already animating, and
41849         it should just fall back to returning renderer->style().
41850
41851         * page/animation/AnimationController.cpp:
41852         (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
41853
41854 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41855
41856         Fix build when ACCELERATED_COMPOSITING is turned on.
41857
41858         Give RenderLayerBacking some love after the great
41859         RenderBoxModelObject split.
41860
41861         * rendering/RenderLayerBacking.cpp:
41862         (WebCore::RenderLayerBacking::updateLayerTransform):
41863         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
41864         (WebCore::RenderLayerBacking::contentsBox):
41865         (WebCore::RenderLayerBacking::paintIntoLayer):
41866         (WebCore::RenderLayerBacking::startAnimation):
41867         (WebCore::RenderLayerBacking::startTransition):
41868         * rendering/RenderLayerBacking.h:
41869         (WebCore::RenderLayerBacking::renderer):
41870
41871 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41872
41873         Fix build when ACCELERATED_COMPOSITING is turned on.
41874
41875         writeIndent() needs to be static to avoid warnings on some OSes,
41876         and remove unused CAToTransform3D() method.
41877
41878         * platform/graphics/GraphicsLayer.cpp:
41879         (WebCore::writeIndent):
41880         * platform/graphics/mac/GraphicsLayerCA.mm:
41881
41882 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41883
41884         Reviewed by Anders Carlsson
41885
41886         Add some methods to the TransformOperation classes that are required
41887         by GraphicsLayer when ACCELERATED_COMPOSITING is turned on.
41888
41889         * platform/graphics/transforms/MatrixTransformOperation.h:
41890         (WebCore::MatrixTransformOperation::create):
41891         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
41892         * platform/graphics/transforms/ScaleTransformOperation.h:
41893         (WebCore::ScaleTransformOperation::x):
41894         (WebCore::ScaleTransformOperation::y):
41895         * platform/graphics/transforms/TranslateTransformOperation.h:
41896         (WebCore::TranslateTransformOperation::x):
41897         (WebCore::TranslateTransformOperation::y):
41898
41899 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41900
41901         Minor clenaup: fix brace style in CompositeAnimationPrivate::updateTransitions(),
41902         and correct a usage of UNUSED_PARAM().
41903
41904         * page/animation/CompositeAnimation.cpp:
41905         (WebCore::CompositeAnimationPrivate::updateTransitions):
41906         * page/animation/ImplicitAnimation.cpp:
41907         (WebCore::ImplicitAnimation::startAnimation):
41908
41909 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41910
41911         Fix build when ACCELERATED_COMPOSITING is turned on.
41912
41913         animationOfPropertyIsAccelerated() needs to be public because
41914         it is called from AnimationController.
41915
41916         * page/animation/AnimationBase.h:
41917
41918 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
41919
41920         Reviewed by Anders Carlsson
41921
41922         Fix mis-typed enum value which is hidden inside #ifdefs so didn't break
41923         the build.
41924
41925         * page/FrameView.cpp:
41926         (WebCore::FrameView::updateCompositingLayers):
41927
41928 2009-02-05  Sam Weinig  <sam@webkit.org>
41929
41930         Reviewed by Geoffrey Garen.
41931
41932         Fix missing checked toRenderBlock casts.
41933
41934         * rendering/RenderBlock.cpp:
41935         (WebCore::RenderBlock::clearFloats):
41936         * rendering/RenderBox.cpp:
41937         (WebCore::RenderBox::availableHeightUsing):
41938
41939 2009-02-05  Sam Weinig  <sam@webkit.org>
41940
41941         Patch from Darin Adler.
41942         Reviewed by Sam Weinig.
41943
41944         Fix case where we were casting to RenderView.
41945
41946         No test case possible.
41947
41948         * editing/mac/SelectionControllerMac.mm:
41949         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
41950
41951 2009-02-05  Aaron Boodman  <aa@chromium.org>
41952
41953         Reviewed by Dave Hyatt.
41954
41955         https://bugs.webkit.org/show_bug.cgi?id=23708
41956         Adds documentElementAvailable() callback to FrameLoaderClient.
41957
41958         * dom/XMLTokenizerLibxml2.cpp:
41959         (WebCore::XMLTokenizer::startElementNs):
41960         Add call to dispatchDocumentElementAvailable()
41961         * dom/XMLTokenizerQt.cpp:
41962         (WebCore::XMLTokenizer::parseStartElement):
41963         Ditto.
41964         * html/HTMLParser.cpp:
41965         (WebCore::HTMLParser::insertNode):
41966         Ditto.
41967         * loader/EmptyClients.h:
41968         (WebCore::EmptyFrameLoaderClient::documentElementAvailable):
41969         Stub out documentElementAvailable().
41970         * loader/FrameLoader.cpp:
41971         documentElementAvailable() callback plumbing.
41972         * loader/FrameLoader.h:
41973         Ditto.
41974         * loader/FrameLoaderClient.h:
41975         Add new documentElementAvailable() callback.
41976
41977 2009-02-05  Scott Violet  <sky@google.com>
41978
41979         Reviewed by Eric Seidel.
41980
41981         https://bugs.webkit.org/show_bug.cgi?id=23766
41982         CanvasRenderingContext2D::setShadow needs else for other platforms.
41983
41984         Implements the CMYK variant of CanvasRenderingContext2D::setShadow for
41985         other platforms using the CMYK color constructor.
41986
41987         * html/CanvasRenderingContext2D.cpp:
41988         (WebCore::CanvasRenderingContext2D::setShadow):
41989
41990 2009-02-05  Scott Violet  <sky@google.com>
41991
41992         Reviewed by Eric Seidel.
41993
41994         https://bugs.webkit.org/show_bug.cgi?id=23687
41995         Wires up Skia'a ImageBuffer::toDataURL to support pngs.
41996         This helps Chromium pass a couple of layout tests.
41997
41998         * platform/graphics/skia/ImageBufferSkia.cpp:
41999         (WebCore::ImageBuffer::toDataURL):
42000         * platform/image-encoders: Added.
42001         * platform/image-encoders/skia: Added.
42002         * platform/image-encoders/skia/PNGImageEncoder.cpp: Added.
42003         (WebCore::):
42004         (WebCore::PngEncoderState::EncoderWriteCallback):
42005         (WebCore::PngEncoderState::ConvertBGRAtoRGB):
42006         (WebCore::PngEncoderState::PngWriteStructDestroyer::PngWriteStructDestroyer):
42007         (WebCore::PngEncoderState::PngWriteStructDestroyer::~PngWriteStructDestroyer):
42008         (WebCore::PNGImageEncoder::encode):
42009         * platform/image-encoders/skia/PNGImageEncoder.h: Added.
42010
42011 2009-02-05  Sam Weinig  <sam@webkit.org>
42012
42013         Reviewed by Darin Adler.
42014
42015         Fix missing checked cast.
42016
42017         * rendering/RenderObject.cpp:
42018         (WebCore::RenderObject::containingBlock):
42019
42020 2009-02-05  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
42021
42022         Not reviewed. Fix WML enabled builds.
42023
42024         FrameLoader::load() got an additional 'lockHistory' parameter, pass 'false'.
42025
42026         * wml/WMLGoElement.cpp:
42027         (WebCore::WMLGoElement::executeTask):
42028
42029 2009-02-05  Scott Violet  <sky@google.com>
42030
42031         Reviewed by Eric Seidel.
42032
42033         https://bugs.webkit.org/show_bug.cgi?id=23625
42034         Additional fix: Skia platform doesn't render text to a canvas or support clipping to an image buffer
42035
42036         Fixes three bugs in PlatformContextSkia:
42037
42038         * When a new layer was started clipped to an image we used the
42039           assignment operator to copy the SkBitmap. If the SkBitmap owns it's
42040           pixels, this is not the right thing to do. Instead we need to create
42041           a copy of the image.
42042         * State holds an SkBitmap by value. State's copy constructor does a
42043           memcpy. This is confusing and subtle, I've converted to use a member
42044           initializer list which I think is clearer and less error prone.
42045         * When creating a new layer there is no need to copy the clip image.
42046
42047         * platform/graphics/skia/PlatformContextSkia.cpp:
42048         (PlatformContextSkia::State::State):
42049         (PlatformContextSkia::save):
42050         (PlatformContextSkia::beginLayerClippedToImage):
42051
42052 2009-02-05  Scott Violet  <sky@google.com>
42053
42054         Reviewed by George Staikos.
42055
42056         https://bugs.webkit.org/show_bug.cgi?id=23462
42057         Changes call from setFillColor to setStrokeColor.
42058
42059         * html/CanvasStyle.cpp:
42060         (WebCore::CanvasStyle::applyStrokeColor):
42061
42062 2009-02-05  David Hyatt  <hyatt@apple.com>
42063
42064         Fix crash on svg custom stop test.  A virtual function didn't get patched properly.
42065
42066         Reviewed by Sam Weinig
42067
42068         * rendering/RenderObject.cpp:
42069         (WebCore::RenderObject::clippedOverflowRectForRepaint):
42070         * rendering/RenderSVGGradientStop.h:
42071         (WebCore::RenderSVGGradientStop::clippedOverflowRectForRepaint):
42072
42073 2009-02-05  Simon Fraser  <simon.fraser@apple.com>
42074
42075         Reviewed by Dave Hyatt
42076
42077         https://bugs.webkit.org/show_bug.cgi?id=23765
42078
42079         Add toRenderBoxModelObject() so that we can cast objects that
42080         can have layers.
42081
42082         Fix getComputedStyle to return the current value of style
42083         properties that are undergoing accelerated animations, by
42084         asking the AnimationController if the property has accelerated
42085         animations, and, if so, asking it to generate an appropriate
42086         style.
42087
42088         Tightened up some type safety (CSSPropertyID), and code clarity
42089         (replace bool with enum).
42090
42091         * WebCore.xcodeproj/project.pbxproj:
42092         * css/CSSComputedStyleDeclaration.cpp:
42093         (WebCore::hasCompositedLayer):
42094         (WebCore::computedTransform):
42095         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
42096         * page/animation/AnimationController.cpp:
42097         (WebCore::AnimationControllerPrivate::isAnimatingPropertyOnRenderer):
42098         (WebCore::AnimationController::isAnimatingPropertyOnRenderer):
42099         (WebCore::AnimationController::supportsAcceleratedAnimationOfProperty):
42100         * page/animation/AnimationController.h:
42101         * page/animation/AnimationControllerPrivate.h:
42102         * page/animation/ImplicitAnimation.cpp:
42103         (WebCore::ImplicitAnimation::startAnimation):
42104         (WebCore::ImplicitAnimation::endAnimation):
42105         * page/animation/KeyframeAnimation.cpp:
42106         (WebCore::KeyframeAnimation::startAnimation):
42107         (WebCore::KeyframeAnimation::endAnimation):
42108         * rendering/RenderBoxModelObject.h:
42109         (WebCore::RenderBoxModelObject::isBoxModelObject):
42110         (WebCore::toRenderBoxModelObject):
42111         * rendering/RenderLayerBacking.cpp:
42112         (WebCore::RenderLayerBacking::updateLayerTransform):
42113         * rendering/RenderObject.h:
42114         (WebCore::RenderObject::isBoxModelObject):
42115         * rendering/style/RenderStyle.cpp:
42116         (WebCore::RenderStyle::applyTransform):
42117         * rendering/style/RenderStyle.h:
42118         (WebCore::InheritedFlags::):
42119
42120 2009-02-05  Dimitri Glazkov  <dglazkov@chromium.org>
42121
42122         Reviewed by Eric Seidel.
42123
42124         https://bugs.webkit.org/show_bug.cgi?id=23767
42125         Add custom V8 bindings for HTML5 database.
42126
42127         * bindings/v8/custom/V8CustomSQLStatementCallback.cpp: Added.
42128         (WebCore::V8CustomSQLStatementCallback::V8CustomSQLStatementCallback):
42129         (WebCore::V8CustomSQLStatementCallback::~V8CustomSQLStatementCallback):
42130         (WebCore::V8CustomSQLStatementCallback::handleEvent):
42131         * bindings/v8/custom/V8CustomSQLStatementCallback.h: Added.
42132         (WebCore::V8CustomSQLStatementCallback::create):
42133         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp: Added.
42134         (WebCore::V8CustomSQLStatementErrorCallback::V8CustomSQLStatementErrorCallback):
42135         (WebCore::V8CustomSQLStatementErrorCallback::~V8CustomSQLStatementErrorCallback):
42136         (WebCore::V8CustomSQLStatementErrorCallback::handleEvent):
42137         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.h: Added.
42138         (WebCore::V8CustomSQLStatementErrorCallback::create):
42139         * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp: Added.
42140         (WebCore::V8CustomSQLTransactionCallback::V8CustomSQLTransactionCallback):
42141         (WebCore::V8CustomSQLTransactionCallback::~V8CustomSQLTransactionCallback):
42142         (WebCore::V8CustomSQLTransactionCallback::handleEvent):
42143         * bindings/v8/custom/V8CustomSQLTransactionCallback.h: Added.
42144         (WebCore::V8CustomSQLTransactionCallback::create):
42145         * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp: Added.
42146         (WebCore::V8CustomSQLTransactionErrorCallback::V8CustomSQLTransactionErrorCallback):
42147         (WebCore::V8CustomSQLTransactionErrorCallback::~V8CustomSQLTransactionErrorCallback):
42148         (WebCore::V8CustomSQLTransactionErrorCallback::handleEvent):
42149         * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: Added.
42150         (WebCore::V8CustomSQLTransactionErrorCallback::create):
42151         * bindings/v8/custom/V8CustomVoidCallback.cpp: Added.
42152         (WebCore::V8CustomVoidCallback::V8CustomVoidCallback):
42153         (WebCore::V8CustomVoidCallback::~V8CustomVoidCallback):
42154         (WebCore::V8CustomVoidCallback::handleEvent):
42155         (WebCore::invokeCallback):
42156         * bindings/v8/custom/V8CustomVoidCallback.h: Added.
42157         (WebCore::V8CustomVoidCallback::create):
42158         * bindings/v8/custom/V8DatabaseCustom.cpp: Added.
42159         (WebCore::CALLBACK_FUNC_DECL):
42160         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Added.
42161         (WebCore::CALLBACK_FUNC_DECL):
42162         * bindings/v8/custom/V8SQLTransactionCustom.cpp: Added.
42163         (WebCore::CALLBACK_FUNC_DECL):
42164
42165 2009-02-05  Dimitri Glazkov  <dglazkov@chromium.org>
42166
42167         Reviewed by Eric Seidel.
42168
42169         https://bugs.webkit.org/show_bug.cgi?id=23747
42170         Add Chromium threading-related files.
42171
42172         * platform/chromium/TemporaryLinkStubs.cpp: Removed theading-related stubs.
42173
42174 2009-02-05  Sam Weinig  <sam@webkit.org>
42175
42176         Reviewed by Adam Roben.
42177
42178         Add toRenderButton methods for casting RenderObjects to RenderButtons. The methods will assert if the object
42179         is not a RenderButton. Also add a toRenderButton method that takes a RenderButton but returns void and that
42180         is unimplemented. This method will catch anyone trying to do a cast when the object is already a RenderButton.
42181
42182         * rendering/RenderButton.h:
42183         (WebCore::RenderButton::isRenderButton):
42184         (WebCore::toRenderButton):
42185         * rendering/RenderFileUploadControl.cpp:
42186         (WebCore::RenderFileUploadControl::paintObject):
42187         * rendering/RenderObject.h:
42188         (WebCore::RenderObject::isRenderButton):
42189
42190 2009-02-05  David Hyatt  <hyatt@apple.com>
42191
42192         Move the m_layer member variable of RenderBox up into RenderBoxModelObject.  Refactor styleDidChange'
42193         of RenderObject, RenderBoxModelObject and RenderBox to get more of the code in the correct subclass.
42194         In order to set the various RenderObject bits properly prior to the test for whether a layer is
42195         required, I added an additional method, updateBoxModelInfoAfterStyleChange, that is responsible
42196         for setting all of the bits.
42197
42198         Eliminate hasStaticX/Y, staticX/Y, and setStaticX/Y from the render tree.  Move hasStaticX/Y to
42199         RenderStyle, and just use the corresponding layer() methods for the
42200         staticX/Y getters/setters.
42201
42202         Reviewed by Sam Weinig
42203
42204         * rendering/RenderBlock.cpp:
42205         (WebCore::RenderBlock::layoutBlock):
42206         (WebCore::RenderBlock::adjustPositionedBlock):
42207         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
42208         (WebCore::RenderBlock::layoutPositionedObjects):
42209         (WebCore::RenderBlock::paintObject):
42210         (WebCore::RenderBlock::nodeAtPoint):
42211         (WebCore::RenderBlock::offsetForContents):
42212         (WebCore::RenderBlock::calcPrefWidths):
42213         (WebCore::RenderBlock::baselinePosition):
42214         * rendering/RenderBox.cpp:
42215         (WebCore::RenderBox::RenderBox):
42216         (WebCore::RenderBox::destroy):
42217         (WebCore::RenderBox::styleWillChange):
42218         (WebCore::RenderBox::styleDidChange):
42219         (WebCore::RenderBox::updateBoxModelInfoFromStyle):
42220         (WebCore::RenderBox::scrollWidth):
42221         (WebCore::RenderBox::scrollHeight):
42222         (WebCore::RenderBox::scrollLeft):
42223         (WebCore::RenderBox::scrollTop):
42224         (WebCore::RenderBox::setScrollLeft):
42225         (WebCore::RenderBox::setScrollTop):
42226         (WebCore::RenderBox::getOverflowClipRect):
42227         (WebCore::RenderBox::localToAbsolute):
42228         (WebCore::RenderBox::absoluteToLocal):
42229         (WebCore::RenderBox::localToContainerQuad):
42230         (WebCore::RenderBox::position):
42231         (WebCore::RenderBox::computeRectForRepaint):
42232         (WebCore::RenderBox::calcAbsoluteHorizontal):
42233         (WebCore::RenderBox::calcAbsoluteVertical):
42234         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
42235         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
42236         * rendering/RenderBox.h:
42237         * rendering/RenderBoxModelObject.cpp:
42238         (WebCore::RenderBoxModelObject::RenderBoxModelObject):
42239         (WebCore::RenderBoxModelObject::destroy):
42240         (WebCore::RenderBoxModelObject::styleWillChange):
42241         (WebCore::RenderBoxModelObject::styleDidChange):
42242         (WebCore::RenderBoxModelObject::updateBoxModelInfoFromStyle):
42243         * rendering/RenderBoxModelObject.h:
42244         (WebCore::RenderBoxModelObject::layer):
42245         (WebCore::RenderBoxModelObject::requiresLayer):
42246         * rendering/RenderFlexibleBox.cpp:
42247         (WebCore::RenderFlexibleBox::layoutBlock):
42248         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
42249         (WebCore::RenderFlexibleBox::layoutVerticalBox):
42250         * rendering/RenderInline.cpp:
42251         (WebCore::RenderInline::updateBoxModelInfoFromStyle):
42252         (WebCore::RenderInline::styleDidChange):
42253         (WebCore::RenderInline::relativePositionedInlineOffset):
42254         * rendering/RenderInline.h:
42255         * rendering/RenderLayer.cpp:
42256         (WebCore::RenderLayer::setStaticY):
42257         (WebCore::RenderLayer::updateLayerPosition):
42258         * rendering/RenderLayer.h:
42259         * rendering/RenderObject.cpp:
42260         (WebCore::RenderObject::setStyle):
42261         (WebCore::RenderObject::styleDidChange):
42262         * rendering/RenderObject.h:
42263         (WebCore::RenderObject::markContainingBlocksForLayout):
42264         * rendering/RenderTableRow.cpp:
42265         (WebCore::RenderTableRow::paint):
42266         * rendering/RenderWidget.cpp:
42267         (WebCore::RenderWidget::destroy):
42268         * rendering/bidi.cpp:
42269         (WebCore::appendRunsForObject):
42270         (WebCore::RenderBlock::layoutInlineChildren):
42271         (WebCore::RenderBlock::skipTrailingWhitespace):
42272         (WebCore::RenderBlock::skipLeadingWhitespace):
42273         (WebCore::RenderBlock::findNextLineBreak):
42274         * rendering/style/RenderStyle.h:
42275         (WebCore::InheritedFlags::hasStaticX):
42276         (WebCore::InheritedFlags::hasStaticY):
42277
42278 2009-02-05  Sam Weinig  <sam@webkit.org>
42279
42280         Fix the windows build.
42281
42282         * bindings/scripts/CodeGeneratorCOM.pm:
42283         * dom/Node.idl:
42284
42285 2009-02-05  Anders Carlsson  <andersca@apple.com>
42286
42287         Reviewed by Kevin Decker.
42288
42289         Update to match Gecko.
42290
42291         * bridge/npapi.h:
42292         * plugins/npfunctions.h:
42293
42294 2009-02-05  Sam Weinig  <sam@webkit.org>
42295
42296         Reviewed by Darin Adler.
42297
42298         Finish merging EventTargetNode up into Node.
42299
42300         This also fixes a small recently introduced issue where EventListeners
42301         would not be removed from the document if they were attached to comment
42302         nodes outside of the documentElement.
42303
42304         * GNUmakefile.am:
42305         * WebCore.pro:
42306         * WebCore.scons:
42307         * WebCore.vcproj/WebCore.vcproj:
42308         * WebCore.xcodeproj/project.pbxproj:
42309         * WebCoreSources.bkl:
42310         * bindings/js/JSEventTargetNodeCustom.cpp: Removed.
42311         * bindings/js/JSNodeCustom.cpp:
42312         (WebCore::JSNode::addEventListener):
42313         (WebCore::JSNode::removeEventListener):
42314         (WebCore::JSNode::pushEventHandlerScope):
42315         * bindings/scripts/CodeGenerator.pm:
42316         * dom/CharacterData.cpp:
42317         (WebCore::CharacterData::CharacterData):
42318         (WebCore::CharacterData::rendererIsNeeded):
42319         * dom/CharacterData.h:
42320         * dom/ContainerNode.cpp:
42321         (WebCore::ContainerNode::willRemove):
42322         (WebCore::ContainerNode::attach):
42323         (WebCore::ContainerNode::detach):
42324         (WebCore::ContainerNode::insertedIntoDocument):
42325         (WebCore::ContainerNode::removedFromDocument):
42326         (WebCore::ContainerNode::setFocus):
42327         (WebCore::ContainerNode::setActive):
42328         (WebCore::ContainerNode::setHovered):
42329         (WebCore::dispatchChildInsertionEvents):
42330         (WebCore::dispatchChildRemovalEvents):
42331         * dom/ContainerNode.h:
42332         (WebCore::ContainerNode::ContainerNode):
42333         * dom/Document.cpp:
42334         (WebCore::Document::removeAllEventListenersFromAllNodes):
42335         (WebCore::Document::removeAllDisconnectedNodeEventListeners):
42336         (WebCore::Document::setFocusedNode):
42337         * dom/EventTargetNode.cpp: Removed.
42338         * dom/EventTargetNode.h: Removed.
42339         * dom/Node.cpp:
42340         (WebCore::Node::scriptExecutionContext):
42341         (WebCore::Node::eventListeners):
42342         (WebCore::Node::insertedIntoDocument):
42343         (WebCore::Node::removedFromDocument):
42344         (WebCore::Node::willMoveToNewOwnerDocument):
42345         (WebCore::Node::didMoveToNewOwnerDocument):
42346         (WebCore::updateSVGElementInstancesAfterEventListenerChange):
42347         (WebCore::Node::addEventListener):
42348         (WebCore::Node::removeEventListener):
42349         (WebCore::Node::removeAllEventListenersSlowCase):
42350         (WebCore::Node::handleLocalEvents):
42351         (WebCore::eventTargetAsSVGElementInstance):
42352         (WebCore::eventTargetRespectingSVGTargetRules):
42353         (WebCore::Node::dispatchEvent):
42354         (WebCore::Node::dispatchGenericEvent):
42355         (WebCore::Node::dispatchSubtreeModifiedEvent):
42356         (WebCore::Node::dispatchWindowEvent):
42357         (WebCore::Node::dispatchUIEvent):
42358         (WebCore::Node::dispatchKeyEvent):
42359         (WebCore::Node::dispatchMouseEvent):
42360         (WebCore::Node::dispatchSimulatedMouseEvent):
42361         (WebCore::Node::dispatchSimulatedClick):
42362         (WebCore::Node::dispatchWheelEvent):
42363         (WebCore::Node::dispatchWebKitAnimationEvent):
42364         (WebCore::Node::dispatchWebKitTransitionEvent):
42365         (WebCore::Node::dispatchFocusEvent):
42366         (WebCore::Node::dispatchBlurEvent):
42367         (WebCore::Node::dispatchEventForType):
42368         (WebCore::Node::dispatchProgressEvent):
42369         (WebCore::Node::dispatchStorageEvent):
42370         (WebCore::Node::removeInlineEventListenerForType):
42371         (WebCore::Node::setInlineEventListenerForType):
42372         (WebCore::Node::setInlineEventListenerForTypeAndAttribute):
42373         (WebCore::Node::inlineEventListenerForType):
42374         (WebCore::Node::disabled):
42375         (WebCore::Node::defaultEventHandler):
42376         (WebCore::Node::onabort):
42377         (WebCore::Node::setOnabort):
42378         (WebCore::Node::onblur):
42379         (WebCore::Node::setOnblur):
42380         (WebCore::Node::onchange):
42381         (WebCore::Node::setOnchange):
42382         (WebCore::Node::onclick):
42383         (WebCore::Node::setOnclick):
42384         (WebCore::Node::oncontextmenu):
42385         (WebCore::Node::setOncontextmenu):
42386         (WebCore::Node::ondblclick):
42387         (WebCore::Node::setOndblclick):
42388         (WebCore::Node::onerror):
42389         (WebCore::Node::setOnerror):
42390         (WebCore::Node::onfocus):
42391         (WebCore::Node::setOnfocus):
42392         (WebCore::Node::oninput):
42393         (WebCore::Node::setOninput):
42394         (WebCore::Node::onkeydown):
42395         (WebCore::Node::setOnkeydown):
42396         (WebCore::Node::onkeypress):
42397         (WebCore::Node::setOnkeypress):
42398         (WebCore::Node::onkeyup):
42399         (WebCore::Node::setOnkeyup):
42400         (WebCore::Node::onload):
42401         (WebCore::Node::setOnload):
42402         (WebCore::Node::onmousedown):
42403         (WebCore::Node::setOnmousedown):
42404         (WebCore::Node::onmousemove):
42405         (WebCore::Node::setOnmousemove):
42406         (WebCore::Node::onmouseout):
42407         (WebCore::Node::setOnmouseout):
42408         (WebCore::Node::onmouseover):
42409         (WebCore::Node::setOnmouseover):
42410         (WebCore::Node::onmouseup):
42411         (WebCore::Node::setOnmouseup):
42412         (WebCore::Node::onmousewheel):
42413         (WebCore::Node::setOnmousewheel):
42414         (WebCore::Node::onbeforecut):
42415         (WebCore::Node::setOnbeforecut):
42416         (WebCore::Node::oncut):
42417         (WebCore::Node::setOncut):
42418         (WebCore::Node::onbeforecopy):
42419         (WebCore::Node::setOnbeforecopy):
42420         (WebCore::Node::oncopy):
42421         (WebCore::Node::setOncopy):
42422         (WebCore::Node::onbeforepaste):
42423         (WebCore::Node::setOnbeforepaste):
42424         (WebCore::Node::onpaste):
42425         (WebCore::Node::setOnpaste):
42426         (WebCore::Node::ondragenter):
42427         (WebCore::Node::setOndragenter):
42428         (WebCore::Node::ondragover):
42429         (WebCore::Node::setOndragover):
42430         (WebCore::Node::ondragleave):
42431         (WebCore::Node::setOndragleave):
42432         (WebCore::Node::ondrop):
42433         (WebCore::Node::setOndrop):
42434         (WebCore::Node::ondragstart):
42435         (WebCore::Node::setOndragstart):
42436         (WebCore::Node::ondrag):
42437         (WebCore::Node::setOndrag):
42438         (WebCore::Node::ondragend):
42439         (WebCore::Node::setOndragend):
42440         (WebCore::Node::onreset):
42441         (WebCore::Node::setOnreset):
42442         (WebCore::Node::onresize):
42443         (WebCore::Node::setOnresize):
42444         (WebCore::Node::onscroll):
42445         (WebCore::Node::setOnscroll):
42446         (WebCore::Node::onsearch):
42447         (WebCore::Node::setOnsearch):
42448         (WebCore::Node::onselect):
42449         (WebCore::Node::setOnselect):
42450         (WebCore::Node::onselectstart):
42451         (WebCore::Node::setOnselectstart):
42452         (WebCore::Node::onsubmit):
42453         (WebCore::Node::setOnsubmit):
42454         (WebCore::Node::onunload):
42455         (WebCore::Node::setOnunload):
42456         * dom/Node.h:
42457         * editing/Editor.cpp:
42458         (WebCore::Editor::dispatchCPPEvent):
42459         * html/HTMLFormElement.cpp:
42460         (WebCore::HTMLFormElement::handleLocalEvents):
42461         * html/HTMLInputElement.cpp:
42462         (WebCore::HTMLInputElement::defaultEventHandler):
42463         * html/HTMLTokenizer.cpp:
42464         (WebCore::HTMLTokenizer::notifyFinished):
42465         * loader/MediaDocument.cpp:
42466         (WebCore::MediaDocument::defaultEventHandler):
42467         * page/AccessibilityRenderObject.cpp:
42468         (WebCore::AccessibilityRenderObject::mouseButtonListener):
42469         * page/EventHandler.cpp:
42470         (WebCore::EventHandler::dispatchDragEvent):
42471         (WebCore::EventHandler::updateMouseEventTargetNode):
42472         (WebCore::EventHandler::dispatchMouseEvent):
42473         (WebCore::EventHandler::handleWheelEvent):
42474         (WebCore::EventHandler::canMouseDownStartSelect):
42475         (WebCore::EventHandler::canMouseDragExtendSelect):
42476         (WebCore::eventTargetNodeForDocument):
42477         (WebCore::EventHandler::keyEvent):
42478         * page/FrameView.cpp:
42479         (WebCore::FrameView::scheduleEvent):
42480         (WebCore::FrameView::updateOverflowStatus):
42481         * page/FrameView.h:
42482         * page/Page.cpp:
42483         (WebCore::networkStateChanged):
42484         * rendering/RenderLayer.cpp:
42485         (WebCore::RenderLayer::scrollToOffset):
42486         (WebCore::RenderLayer::updateOverflowStatus):
42487         * rendering/RenderListBox.cpp:
42488         (WebCore::RenderListBox::valueChanged):
42489         * rendering/RenderMedia.h:
42490         * rendering/RenderTextControl.cpp:
42491         (WebCore::RenderTextControl::selectionChanged):
42492         * svg/SVGElementInstance.h:
42493         (WebCore::SVGElementInstance::toNode):
42494         * xml/XPathExpression.cpp:
42495         (WebCore::XPathExpression::evaluate):
42496         * xml/XPathResult.cpp:
42497         (WebCore::XPathResult::XPathResult):
42498
42499 2009-02-05  Adam Treat  <adam.treat@torchmobile.com>
42500
42501         Fix the Qt build now that EventTargetNode.idl was removed in r40672.
42502
42503         * WebCore.pro:
42504
42505 2009-02-05  Scott Violet  <sky@google.com>
42506
42507         Reviewed by Sam Weinig.
42508
42509         Bug 23462: Add RGB -> CMYK conversion algorithm
42510         <https://bugs.webkit.org/show_bug.cgi?id=23462>
42511
42512         Adds an RGB -> CMYK converter. This isn't perfect, but better than
42513         nothing.
42514
42515         * html/CanvasStyle.cpp:
42516         (WebCore::CanvasStyle::applyStrokeColor):
42517         (WebCore::CanvasStyle::applyFillColor):
42518         (WebCore::CanvasStyle::cmykToRGB):
42519         * html/CanvasStyle.h:
42520
42521 2009-02-04  Sam Weinig  <sam@webkit.org>
42522
42523         Reviewed by Darin Adler.
42524
42525         First stage of merging EventTargetNode up into Node. The intent of this change
42526         is to both simplify the inheritance hierarchy (at the same time making it more
42527         closely match the spec which states that all Nodes are EventTargets) and save
42528         4 bytes per Node that the polymorphic multiple-inheritance was costing us.
42529
42530         This does the bare minimum to get things compiling, the next patch will clean
42531
42532         * DerivedSources.make:
42533         * WebCore.base.exp:
42534         * WebCore.xcodeproj/project.pbxproj:
42535         * bindings/js/JSDocumentCustom.cpp:
42536         (WebCore::JSDocument::mark):
42537         * bindings/js/JSEventListener.cpp:
42538         (WebCore::JSLazyEventListener::parseCode):
42539         * bindings/js/JSEventTarget.cpp:
42540         (WebCore::toEventTarget):
42541         * bindings/js/JSEventTarget.h:
42542         * bindings/js/JSEventTargetNodeCustom.cpp:
42543         (WebCore::JSNode::addEventListener):
42544         (WebCore::JSNode::removeEventListener):
42545         (WebCore::JSNode::pushEventHandlerScope):
42546         * bindings/js/JSStyleSheetCustom.cpp:
42547         * bindings/scripts/CodeGeneratorJS.pm:
42548         * bindings/scripts/CodeGeneratorObjC.pm:
42549         * dom/Attr.idl:
42550         * dom/CharacterData.h:
42551         * dom/CharacterData.idl:
42552         * dom/Document.idl:
42553         * dom/DocumentFragment.idl:
42554         * dom/Element.idl:
42555         * dom/EventTarget.cpp:
42556         (WebCore::EventTarget::toNode):
42557         * dom/EventTarget.h:
42558         * dom/EventTarget.idl:
42559         * dom/EventTargetNode.cpp:
42560         (WebCore::Node::scriptExecutionContext):
42561         (WebCore::Node::eventListeners):
42562         (WebCore::Node::insertedIntoDocument):
42563         (WebCore::Node::removedFromDocument):
42564         (WebCore::Node::willMoveToNewOwnerDocument):
42565         (WebCore::Node::didMoveToNewOwnerDocument):
42566         (WebCore::Node::addEventListener):
42567         (WebCore::Node::removeEventListener):
42568         (WebCore::Node::removeAllEventListenersSlowCase):
42569         (WebCore::Node::handleLocalEvents):
42570         (WebCore::Node::dispatchEvent):
42571         (WebCore::Node::dispatchGenericEvent):
42572         (WebCore::Node::dispatchSubtreeModifiedEvent):
42573         (WebCore::Node::dispatchWindowEvent):
42574         (WebCore::Node::dispatchUIEvent):
42575         (WebCore::Node::dispatchKeyEvent):
42576         (WebCore::Node::dispatchMouseEvent):
42577         (WebCore::Node::dispatchSimulatedMouseEvent):
42578         (WebCore::Node::dispatchSimulatedClick):
42579         (WebCore::Node::dispatchWheelEvent):
42580         (WebCore::Node::dispatchWebKitAnimationEvent):
42581         (WebCore::Node::dispatchWebKitTransitionEvent):
42582         (WebCore::Node::dispatchFocusEvent):
42583         (WebCore::Node::dispatchBlurEvent):
42584         (WebCore::Node::dispatchEventForType):
42585         (WebCore::Node::dispatchProgressEvent):
42586         (WebCore::Node::dispatchStorageEvent):
42587         (WebCore::Node::removeInlineEventListenerForType):
42588         (WebCore::Node::setInlineEventListenerForType):
42589         (WebCore::Node::setInlineEventListenerForTypeAndAttribute):
42590         (WebCore::Node::inlineEventListenerForType):
42591         (WebCore::Node::disabled):
42592         (WebCore::Node::defaultEventHandler):
42593         (WebCore::Node::onabort):
42594         (WebCore::Node::setOnabort):
42595         (WebCore::Node::onblur):
42596         (WebCore::Node::setOnblur):
42597         (WebCore::Node::onchange):
42598         (WebCore::Node::setOnchange):
42599         (WebCore::Node::onclick):
42600         (WebCore::Node::setOnclick):
42601         (WebCore::Node::oncontextmenu):
42602         (WebCore::Node::setOncontextmenu):
42603         (WebCore::Node::ondblclick):
42604         (WebCore::Node::setOndblclick):
42605         (WebCore::Node::onerror):
42606         (WebCore::Node::setOnerror):
42607         (WebCore::Node::onfocus):
42608         (WebCore::Node::setOnfocus):
42609         (WebCore::Node::oninput):
42610         (WebCore::Node::setOninput):
42611         (WebCore::Node::onkeydown):
42612         (WebCore::Node::setOnkeydown):
42613         (WebCore::Node::onkeypress):
42614         (WebCore::Node::setOnkeypress):
42615         (WebCore::Node::onkeyup):
42616         (WebCore::Node::setOnkeyup):
42617         (WebCore::Node::onload):
42618         (WebCore::Node::setOnload):
42619         (WebCore::Node::onmousedown):
42620         (WebCore::Node::setOnmousedown):
42621         (WebCore::Node::onmousemove):
42622         (WebCore::Node::setOnmousemove):
42623         (WebCore::Node::onmouseout):
42624         (WebCore::Node::setOnmouseout):
42625         (WebCore::Node::onmouseover):
42626         (WebCore::Node::setOnmouseover):
42627         (WebCore::Node::onmouseup):
42628         (WebCore::Node::setOnmouseup):
42629         (WebCore::Node::onmousewheel):
42630         (WebCore::Node::setOnmousewheel):
42631         (WebCore::Node::onbeforecut):
42632         (WebCore::Node::setOnbeforecut):
42633         (WebCore::Node::oncut):
42634         (WebCore::Node::setOncut):
42635         (WebCore::Node::onbeforecopy):
42636         (WebCore::Node::setOnbeforecopy):
42637         (WebCore::Node::oncopy):
42638         (WebCore::Node::setOncopy):
42639         (WebCore::Node::onbeforepaste):
42640         (WebCore::Node::setOnbeforepaste):
42641         (WebCore::Node::onpaste):
42642         (WebCore::Node::setOnpaste):
42643         (WebCore::Node::ondragenter):
42644         (WebCore::Node::setOndragenter):
42645         (WebCore::Node::ondragover):
42646         (WebCore::Node::setOndragover):
42647         (WebCore::Node::ondragleave):
42648         (WebCore::Node::setOndragleave):
42649         (WebCore::Node::ondrop):
42650         (WebCore::Node::setOndrop):
42651         (WebCore::Node::ondragstart):
42652         (WebCore::Node::setOndragstart):
42653         (WebCore::Node::ondrag):
42654         (WebCore::Node::setOndrag):
42655         (WebCore::Node::ondragend):
42656         (WebCore::Node::setOndragend):
42657         (WebCore::Node::onreset):
42658         (WebCore::Node::setOnreset):
42659         (WebCore::Node::onresize):
42660         (WebCore::Node::setOnresize):
42661         (WebCore::Node::onscroll):
42662         (WebCore::Node::setOnscroll):
42663         (WebCore::Node::onsearch):
42664         (WebCore::Node::setOnsearch):
42665         (WebCore::Node::onselect):
42666         (WebCore::Node::setOnselect):
42667         (WebCore::Node::onselectstart):
42668         (WebCore::Node::setOnselectstart):
42669         (WebCore::Node::onsubmit):
42670         (WebCore::Node::setOnsubmit):
42671         (WebCore::Node::onunload):
42672         (WebCore::Node::setOnunload):
42673         * dom/EventTargetNode.h:
42674         (WebCore::toEventTargetNode):
42675         (WebCore::EventTargetNodeCast):
42676         * dom/EventTargetNode.idl: Removed.
42677         * dom/MouseEvent.cpp:
42678         (WebCore::MouseEvent::MouseEvent):
42679         (WebCore::MouseEvent::initMouseEvent):
42680         (WebCore::MouseEvent::toElement):
42681         (WebCore::MouseEvent::fromElement):
42682         * dom/MouseEvent.h:
42683         (WebCore::MouseEvent::create):
42684         (WebCore::MouseEvent::relatedTarget):
42685         * dom/Node.cpp:
42686         (WebCore::Node::~Node):
42687         * dom/Node.h:
42688         (WebCore::Node::isEventTargetNode):
42689         (WebCore::Node::toNode):
42690         (WebCore::Node::removeAllEventListeners):
42691         (WebCore::Node::refEventTarget):
42692         (WebCore::Node::derefEventTarget):
42693         * dom/Node.idl:
42694         * page/EventHandler.h:
42695         * page/FrameView.h:
42696         * xml/XPathResult.h:
42697         (WebCore::XPathResult::create):
42698
42699 2009-02-04  David Hyatt  <hyatt@apple.com>
42700
42701         Convert RenderLayer from having a RenderBox* m_renderer to having a RenderBoxModelObject*.  The
42702         container-relative repaint methods all had to be changed as a result to use RenderBoxModelObject* also.
42703
42704         All of RenderLayer.cpp now uses what will be the new style for dealing with an object that can be a block
42705         or an inline flow.  x()/y()/width()/height() can't be queried on an inline flow, nor can many other
42706         properties (like scrollWidth() / scrollHeight()), so the code has to be tightened up to convert to RenderBox
42707         under the right conditions.
42708
42709         There was a bogus subtraction of renderer()->y() in localBounding box for RenderInlines.  Since y was always
42710         0, this subtraction wasn't necessary.  It has been removed.
42711
42712         Reviewed by Adam Roben
42713
42714         * page/animation/AnimationBase.cpp:
42715         * rendering/RenderBR.h:
42716         (WebCore::RenderBR::selectionRectForRepaint):
42717         * rendering/RenderBlock.cpp:
42718         (WebCore::RenderBlock::selectionGapRectsForRepaint):
42719         (WebCore::RenderBlock::rectWithOutlineForRepaint):
42720         * rendering/RenderBlock.h:
42721         (WebCore::RenderBlock::selectionRectForRepaint):
42722         * rendering/RenderBox.cpp:
42723         (WebCore::RenderBox::outlineBoundsForRepaint):
42724         (WebCore::RenderBox::localToContainerQuad):
42725         (WebCore::RenderBox::clippedOverflowRectForRepaint):
42726         (WebCore::RenderBox::computeRectForRepaint):
42727         * rendering/RenderBox.h:
42728         * rendering/RenderBoxModelObject.cpp:
42729         (WebCore::RenderBoxModelObject::relativePositionOffsetX):
42730         (WebCore::RenderBoxModelObject::relativePositionOffsetY):
42731         * rendering/RenderBoxModelObject.h:
42732         (WebCore::RenderBoxModelObject::relativePositionOffset):
42733         * rendering/RenderForeignObject.cpp:
42734         (WebCore::RenderForeignObject::computeRectForRepaint):
42735         * rendering/RenderForeignObject.h:
42736         * rendering/RenderInline.cpp:
42737         (WebCore::RenderInline::clippedOverflowRectForRepaint):
42738         (WebCore::RenderInline::rectWithOutlineForRepaint):
42739         * rendering/RenderInline.h:
42740         * rendering/RenderLayer.cpp:
42741         (WebCore::RenderLayer::RenderLayer):
42742         (WebCore::RenderLayer::updateLayerPositions):
42743         (WebCore::RenderLayer::updateTransform):
42744         (WebCore::RenderLayer::setHasVisibleContent):
42745         (WebCore::RenderLayer::updateLayerPosition):
42746         (WebCore::RenderLayer::scrollToOffset):
42747         (WebCore::RenderLayer::scrollRectToVisible):
42748         (WebCore::resizerCornerRect):
42749         (WebCore::RenderLayer::scrollbarCornerPresent):
42750         (WebCore::RenderLayer::invalidateScrollbarRect):
42751         (WebCore::RenderLayer::positionOverflowControls):
42752         (WebCore::RenderLayer::computeScrollDimensions):
42753         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
42754         (WebCore::RenderLayer::paintScrollCorner):
42755         (WebCore::RenderLayer::paintResizer):
42756         (WebCore::RenderLayer::isPointInResizeControl):
42757         (WebCore::RenderLayer::hitTestOverflowControls):
42758         (WebCore::RenderLayer::paintLayer):
42759         (WebCore::RenderLayer::hitTestLayer):
42760         (WebCore::RenderLayer::localBoundingBox):
42761         * rendering/RenderLayer.h:
42762         (WebCore::RenderLayer::renderer):
42763         (WebCore::RenderLayer::renderBox):
42764         (WebCore::RenderLayer::renderBoxX):
42765         (WebCore::RenderLayer::renderBoxY):
42766         * rendering/RenderListMarker.cpp:
42767         (WebCore::RenderListMarker::selectionRectForRepaint):
42768         * rendering/RenderListMarker.h:
42769         * rendering/RenderMarquee.cpp:
42770         (WebCore::RenderMarquee::computePosition):
42771         (WebCore::RenderMarquee::timerFired):
42772         * rendering/RenderObject.cpp:
42773         (WebCore::RenderObject::containerForRepaint):
42774         (WebCore::RenderObject::repaintUsingContainer):
42775         (WebCore::RenderObject::repaint):
42776         (WebCore::RenderObject::repaintRectangle):
42777         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
42778         (WebCore::RenderObject::rectWithOutlineForRepaint):
42779         (WebCore::RenderObject::clippedOverflowRectForRepaint):
42780         (WebCore::RenderObject::computeRectForRepaint):
42781         (WebCore::RenderObject::localToContainerQuad):
42782         * rendering/RenderObject.h:
42783         (WebCore::RenderObject::selectionRectForRepaint):
42784         (WebCore::RenderObject::outlineBoundsForRepaint):
42785         * rendering/RenderPath.cpp:
42786         (WebCore::RenderPath::clippedOverflowRectForRepaint):
42787         (WebCore::RenderPath::outlineBoundsForRepaint):
42788         * rendering/RenderPath.h:
42789         * rendering/RenderReplaced.cpp:
42790         (WebCore::RenderReplaced::selectionRectForRepaint):
42791         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
42792         * rendering/RenderReplaced.h:
42793         * rendering/RenderSVGContainer.cpp:
42794         (WebCore::RenderSVGContainer::clippedOverflowRectForRepaint):
42795         (WebCore::RenderSVGContainer::outlineBoundsForRepaint):
42796         * rendering/RenderSVGContainer.h:
42797         * rendering/RenderSVGHiddenContainer.cpp:
42798         (WebCore::RenderSVGHiddenContainer::clippedOverflowRectForRepaint):
42799         * rendering/RenderSVGHiddenContainer.h:
42800         * rendering/RenderSVGImage.cpp:
42801         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint):
42802         * rendering/RenderSVGImage.h:
42803         * rendering/RenderSVGInlineText.cpp:
42804         (WebCore::RenderSVGInlineText::selectionRectForRepaint):
42805         (WebCore::RenderSVGInlineText::computeRepaintRectForRange):
42806         * rendering/RenderSVGInlineText.h:
42807         * rendering/RenderSVGRoot.cpp:
42808         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
42809         * rendering/RenderSVGRoot.h:
42810         * rendering/RenderSVGText.cpp:
42811         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
42812         * rendering/RenderSVGText.h:
42813         * rendering/RenderSelectionInfo.h:
42814         (WebCore::RenderSelectionInfoBase::repaintContainer):
42815         * rendering/RenderTableCell.cpp:
42816         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
42817         (WebCore::RenderTableCell::computeRectForRepaint):
42818         (WebCore::RenderTableCell::localToContainerQuad):
42819         * rendering/RenderTableCell.h:
42820         * rendering/RenderTableCol.cpp:
42821         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
42822         * rendering/RenderTableCol.h:
42823         * rendering/RenderTableRow.cpp:
42824         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
42825         * rendering/RenderTableRow.h:
42826         * rendering/RenderText.cpp:
42827         (WebCore::RenderText::clippedOverflowRectForRepaint):
42828         (WebCore::RenderText::selectionRectForRepaint):
42829         * rendering/RenderText.h:
42830         * rendering/RenderTreeAsText.cpp:
42831         (WebCore::write):
42832         * rendering/RenderView.cpp:
42833         (WebCore::RenderView::localToContainerQuad):
42834         (WebCore::RenderView::computeRectForRepaint):
42835         * rendering/RenderView.h:
42836
42837 2009-02-05  Alexey Proskuryakov  <ap@webkit.org>
42838
42839         Build fix.
42840
42841         * page/animation/KeyframeAnimation.h: A function prototype had two "fromStyle" arguments.
42842
42843 2009-02-05  Yael Aharon  <yael.aharon@nokia.com>
42844
42845         Reviewed by Alexey Proskuryakov.
42846         Landed by Simon Hausmann.
42847
42848         https://bugs.webkit.org/show_bug.cgi?id=23733
42849
42850         Use a 2 arguments constructor for KURL to avoid ASSERT failure.
42851
42852         * page/SecurityOrigin.cpp:
42853         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
42854
42855 2009-02-04  Feng Qian  <feng@chromium.org>
42856
42857         Reviewed by Darin Adler.
42858
42859         Add Android-specific files to WebCore/editing directory.
42860         https://bugs.webkit.org/show_bug.cgi?id=23294
42861
42862         * editing/android: Added.
42863         * editing/android/EditorAndroid.cpp: Added.
42864         (WebCore::Editor::newGeneralClipboard):
42865
42866 2009-02-04  Dean Jackson  <dino@apple.com>
42867
42868         Reviewed by Darin Adler.
42869
42870         Remove -webkit-animation-play-state
42871         The AnimationController still has the code to execute the property, but
42872         it is no longer parsed or recorded.
42873         https://bugs.webkit.org/show_bug.cgi?id=22907
42874
42875         * css/CSSComputedStyleDeclaration.cpp:
42876         (WebCore::):
42877         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
42878         * css/CSSParser.cpp:
42879         (WebCore::CSSParser::parseValue):
42880         (WebCore::CSSParser::parseAnimationProperty):
42881         * css/CSSParser.h:
42882         * css/CSSPropertyNames.in:
42883         * css/CSSStyleSelector.cpp:
42884         (WebCore::CSSStyleSelector::applyProperty):
42885         * css/CSSStyleSelector.h:
42886         * platform/animation/Animation.h:
42887         * rendering/style/RenderStyleConstants.h:
42888
42889 2009-02-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
42890
42891         Reviewed by Darin Adler.
42892
42893         Make sure we don't load on removing the media element from the document
42894         https://bugs.webkit.org/show_bug.cgi?id=22105
42895
42896         Test: media/remove-from-document-no-load.html
42897
42898         * html/HTMLMediaElement.cpp:
42899         (WebCore::HTMLMediaElement::removedFromDocument):
42900
42901 2009-02-04  David Hyatt  <hyatt@apple.com>
42902
42903         Add a new RenderBoxModelObject class that will eventually act as the direct base class for RenderInlines.  For
42904         now just adding the class and putting it in between RenderObject and RenderBox in the hierarchy.  RenderInline remains
42905         derived from RenderBox for now.
42906
42907         Reviewed by Sam Weinig
42908
42909         * WebCore.xcodeproj/project.pbxproj:
42910         * rendering/RenderBox.cpp:
42911         (WebCore::RenderBox::RenderBox):
42912         (WebCore::RenderBox::destroy):
42913         (WebCore::RenderBox::styleWillChange):
42914         (WebCore::RenderBox::styleDidChange):
42915         (WebCore::RenderBox::computeRectForRepaint):
42916         * rendering/RenderBox.h:
42917         * rendering/RenderBoxModelObject.cpp: Added.
42918         (WebCore::RenderBoxModelObject::RenderBoxModelObject):
42919         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
42920         * rendering/RenderBoxModelObject.h: Added.
42921         * rendering/RenderObject.h:
42922
42923 2009-02-04  Chris Marrin  <cmarrin@apple.com>
42924
42925         Reviewed by Dave Hyatt
42926
42927         Added accelerated animation support to AnimationController and friends. The primary
42928         changes are:
42929         * accelerated animations get their start time from the compositing engine, so we
42930           wait for a callback (notifyAnimationStarted()) in order to get the start time.
42931         * if software and accelerated animations start in the same cycle, they all need
42932           to use the same start time, which is that of the accelerated animations.
42933
42934         Added AnimationControllerPrivate to preserve the encapsulation under
42935         AnimationController.
42936
42937         * GNUmakefile.am:
42938         * WebCore.vcproj/WebCore.vcproj:
42939         * WebCore.xcodeproj/project.pbxproj:
42940         * page/animation/AnimationBase.cpp:
42941         (WebCore::PropertyWrapperBase::animationIsAccelerated):
42942         (WebCore::PropertyWrapperAcceleratedOpacity::PropertyWrapperAcceleratedOpacity):
42943         (WebCore::PropertyWrapperAcceleratedOpacity::animationIsAccelerated):
42944         (WebCore::PropertyWrapperAcceleratedOpacity::blend):
42945         (WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform):
42946         (WebCore::PropertyWrapperAcceleratedTransform::animationIsAccelerated):
42947         (WebCore::PropertyWrapperAcceleratedTransform::blend):
42948         (WebCore::ensurePropertyMap):
42949         (WebCore::AnimationBase::AnimationBase):
42950         (WebCore::AnimationBase::~AnimationBase):
42951         (WebCore::AnimationBase::blendProperties):
42952         (WebCore::AnimationBase::animationOfPropertyIsAccelerated):
42953         (WebCore::AnimationBase::updateStateMachine):
42954         (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
42955         (WebCore::AnimationBase::willNeedService):
42956         (WebCore::AnimationBase::getTimeToNextEvent):
42957         (WebCore::AnimationBase::goIntoEndingOrLoopingState):
42958         (WebCore::AnimationBase::beginAnimationUpdateTime):
42959         * page/animation/AnimationBase.h:
42960         (WebCore::AnimationBase::onAnimationStartResponse):
42961         (WebCore::AnimationBase::getAnimatedStyle):
42962         (WebCore::AnimationBase::isAnimatingProperty):
42963         (WebCore::AnimationBase::endAnimation):
42964         (WebCore::AnimationBase::isFallbackAnimating):
42965         * page/animation/AnimationController.cpp:
42966         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
42967         (WebCore::AnimationControllerPrivate::accessCompositeAnimation):
42968         (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch):
42969         (WebCore::AnimationControllerPrivate::animationTimerFired):
42970         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
42971         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
42972         (WebCore::AnimationControllerPrivate::beginAnimationUpdateTime):
42973         (WebCore::AnimationControllerPrivate::getAnimatedStyleForRenderer):
42974         (WebCore::AnimationControllerPrivate::styleAvailable):
42975         (WebCore::AnimationControllerPrivate::addToStartTimeResponseWaitList):
42976         (WebCore::AnimationControllerPrivate::removeFromStartTimeResponseWaitList):
42977         (WebCore::AnimationControllerPrivate::startTimeResponse):
42978         (WebCore::AnimationController::getAnimatedStyleForRenderer):
42979         (WebCore::AnimationController::notifyAnimationStarted):
42980         (WebCore::AnimationController::endAnimationUpdate):
42981         * page/animation/AnimationController.h:
42982         * page/animation/AnimationControllerPrivate.h: Added.
42983         (WebCore::AnimationControllerPrivate::hasAnimations):
42984         (WebCore::AnimationControllerPrivate::setBeginAnimationUpdateTime):
42985         (WebCore::AnimationControllerPrivate::endAnimationUpdate):
42986         (WebCore::AnimationControllerPrivate::receivedStartTimeResponse):
42987         * page/animation/CompositeAnimation.cpp:
42988         (WebCore::CompositeAnimationPrivate::CompositeAnimationPrivate):
42989         (WebCore::CompositeAnimationPrivate::animationControllerPriv):
42990         (WebCore::CompositeAnimationPrivate::updateTransitions):
42991         (WebCore::CompositeAnimationPrivate::updateKeyframeAnimations):
42992         (WebCore::CompositeAnimationPrivate::animate):
42993         (WebCore::CompositeAnimationPrivate::getAnimatedStyle):
42994         (WebCore::CompositeAnimationPrivate::addToStartTimeResponseWaitList):
42995         (WebCore::CompositeAnimationPrivate::removeFromStartTimeResponseWaitList):
42996         (WebCore::CompositeAnimation::CompositeAnimation):
42997         (WebCore::CompositeAnimation::animationControllerPriv):
42998         (WebCore::CompositeAnimation::getAnimatedStyle):
42999         (WebCore::CompositeAnimation::addToStartTimeResponseWaitList):
43000         (WebCore::CompositeAnimation::removeFromStartTimeResponseWaitList):
43001         * page/animation/CompositeAnimation.h:
43002         (WebCore::CompositeAnimation::create):
43003         * page/animation/ImplicitAnimation.cpp:
43004         (WebCore::ImplicitAnimation::shouldSendEventForListener):
43005         (WebCore::ImplicitAnimation::animate):
43006         (WebCore::ImplicitAnimation::getAnimatedStyle):
43007         (WebCore::ImplicitAnimation::startAnimation):
43008         (WebCore::ImplicitAnimation::endAnimation):
43009         (WebCore::ImplicitAnimation::sendTransitionEvent):
43010         (WebCore::ImplicitAnimation::willNeedService):
43011         * page/animation/ImplicitAnimation.h:
43012         * page/animation/KeyframeAnimation.cpp:
43013         (WebCore::KeyframeAnimation::getKeyframeAnimationInterval):
43014         (WebCore::KeyframeAnimation::animate):
43015         (WebCore::KeyframeAnimation::getAnimatedStyle):
43016         (WebCore::KeyframeAnimation::startAnimation):
43017         (WebCore::KeyframeAnimation::endAnimation):
43018         (WebCore::KeyframeAnimation::shouldSendEventForListener):
43019         (WebCore::KeyframeAnimation::sendAnimationEvent):
43020         (WebCore::KeyframeAnimation::willNeedService):
43021         * page/animation/KeyframeAnimation.h:
43022         * platform/graphics/GraphicsLayerClient.h:
43023         * platform/graphics/mac/GraphicsLayerCA.mm:
43024         (-[WebAnimationDelegate animationDidStart:]):
43025         * rendering/RenderLayerBacking.h:
43026
43027 2009-02-04  Dimitri Glazkov  <dglazkov@chromium.org>
43028
43029         Not reviewed, build fix.
43030
43031         Remove duplicate definition of msSans in FontCache::alternateFamilyName.
43032
43033         * platform/graphics/FontCache.cpp:
43034         (WebCore::alternateFamilyName):
43035
43036 2009-02-04  Eric Seidel  <eric@webkit.org>
43037
43038         Reviewed by George Staikos.
43039
43040         Reverse the meaning of the if check so that Android
43041         (dpad devices) do not scroll on focus and normal platforms do
43042         http://trac.webkit.org/changeset/40647
43043
43044         This was caught by George Staikos, and I wrote the patch.
43045
43046         * dom/Element.cpp:
43047         (WebCore::Element::updateFocusAppearance):
43048
43049 2009-02-04  David Hyatt  <hyatt@apple.com>
43050
43051         Eliminate RenderContainer.
43052
43053         Reviewed by Sam and Anders
43054
43055         * GNUmakefile.am:
43056         * WebCore.pro:
43057         * WebCore.vcproj/WebCore.vcproj:
43058         * WebCore.xcodeproj/project.pbxproj:
43059         * WebCoreSources.bkl:
43060         * rendering/RenderBlock.cpp:
43061         (WebCore::RenderBlock::RenderBlock):
43062         (WebCore::RenderBlock::destroy):
43063         (WebCore::RenderBlock::styleWillChange):
43064         (WebCore::RenderBlock::styleDidChange):
43065         (WebCore::RenderBlock::addChild):
43066         (WebCore::RenderBlock::dirtyLineBoxes):
43067         (WebCore::RenderBlock::createInlineBox):
43068         (WebCore::RenderBlock::removeChild):
43069         (WebCore::RenderBlock::setSelectionState):
43070         (WebCore::RenderBlock::avoidsFloats):
43071         (WebCore::RenderBlock::positionForCoordinates):
43072         (WebCore::RenderBlock::calcInlinePrefWidths):
43073         (WebCore::RenderBlock::baselinePosition):
43074         (WebCore::RenderBlock::getBaselineOfFirstLineBox):
43075         (WebCore::RenderBlock::getBaselineOfLastLineBox):
43076         (WebCore::RenderBlock::rectWithOutlineForRepaint):
43077         (WebCore::RenderBlock::hoverAncestor):
43078         (WebCore::RenderBlock::updateDragState):
43079         (WebCore::RenderBlock::localCaretRect):
43080         * rendering/RenderBlock.h:
43081         (WebCore::RenderBlock::virtualChildren):
43082         (WebCore::RenderBlock::children):
43083         * rendering/RenderContainer.cpp: Removed.
43084         * rendering/RenderContainer.h: Removed.
43085         * rendering/RenderFrameSet.cpp:
43086         (WebCore::RenderFrameSet::RenderFrameSet):
43087         (WebCore::RenderFrameSet::nodeAtPoint):
43088         (WebCore::RenderFrameSet::layout):
43089         * rendering/RenderFrameSet.h:
43090         (WebCore::RenderFrameSet::virtualChildren):
43091         (WebCore::RenderFrameSet::children):
43092         * rendering/RenderInline.cpp:
43093         (WebCore::RenderInline::RenderInline):
43094         (WebCore::RenderInline::destroy):
43095         (WebCore::RenderInline::styleDidChange):
43096         (WebCore::nextContinuation):
43097         (WebCore::RenderInline::continuationBefore):
43098         (WebCore::RenderInline::addChildIgnoringContinuation):
43099         (WebCore::RenderInline::splitInlines):
43100         (WebCore::RenderInline::splitFlow):
43101         (WebCore::RenderInline::addChildToContinuation):
43102         (WebCore::RenderInline::offsetLeft):
43103         (WebCore::RenderInline::offsetTop):
43104         (WebCore::RenderInline::positionForCoordinates):
43105         (WebCore::RenderInline::clippedOverflowRectForRepaint):
43106         (WebCore::RenderInline::rectWithOutlineForRepaint):
43107         (WebCore::RenderInline::updateDragState):
43108         (WebCore::RenderInline::childBecameNonInline):
43109         * rendering/RenderInline.h:
43110         (WebCore::RenderInline::virtualChildren):
43111         (WebCore::RenderInline::children):
43112         (WebCore::RenderInline::continuation):
43113         (WebCore::RenderInline::setContinuation):
43114         * rendering/RenderLineBoxList.h:
43115         * rendering/RenderObject.h:
43116         * rendering/RenderObjectChildList.h:
43117         * rendering/RenderSVGInlineText.cpp:
43118         (WebCore::RenderSVGInlineText::computeRepaintRectForRange):
43119         * rendering/RenderSVGRoot.cpp:
43120         (WebCore::RenderSVGRoot::RenderSVGRoot):
43121         (WebCore::RenderSVGRoot::applyContentTransforms):
43122         (WebCore::RenderSVGRoot::paint):
43123         (WebCore::RenderSVGRoot::absoluteTransform):
43124         (WebCore::RenderSVGRoot::nodeAtPoint):
43125         (WebCore::RenderSVGRoot::position):
43126         * rendering/RenderSVGRoot.h:
43127         (WebCore::RenderSVGRoot::virtualChildren):
43128         (WebCore::RenderSVGRoot::children):
43129         * rendering/RenderSVGText.cpp:
43130         (WebCore::RenderSVGText::absoluteRects):
43131         (WebCore::RenderSVGText::absoluteQuads):
43132         * rendering/RenderTable.cpp:
43133         (WebCore::RenderTable::addChild):
43134         (WebCore::RenderTable::removeChild):
43135         * rendering/RenderTableCol.cpp:
43136         (WebCore::RenderTableCol::RenderTableCol):
43137         * rendering/RenderTableCol.h:
43138         (WebCore::RenderTableCol::virtualChildren):
43139         (WebCore::RenderTableCol::children):
43140         * rendering/RenderTableRow.cpp:
43141         (WebCore::RenderTableRow::RenderTableRow):
43142         (WebCore::RenderTableRow::destroy):
43143         (WebCore::RenderTableRow::styleWillChange):
43144         (WebCore::RenderTableRow::addChild):
43145         * rendering/RenderTableRow.h:
43146         (WebCore::RenderTableRow::virtualChildren):
43147         (WebCore::RenderTableRow::children):
43148         * rendering/RenderTableSection.cpp:
43149         (WebCore::RenderTableSection::RenderTableSection):
43150         (WebCore::RenderTableSection::destroy):
43151         (WebCore::RenderTableSection::addChild):
43152         (WebCore::RenderTableSection::removeChild):
43153         (WebCore::RenderTableSection::lowestPosition):
43154         (WebCore::RenderTableSection::rightmostPosition):
43155         (WebCore::RenderTableSection::leftmostPosition):
43156         * rendering/RenderTableSection.h:
43157         (WebCore::RenderTableSection::virtualChildren):
43158         (WebCore::RenderTableSection::children):
43159
43160 2009-02-04  Mads Adger  <mad@chromium.org>
43161
43162         Reviewed by Antti Koivisto.
43163
43164         Bug 23180 Reading freed memory at DocumentLoader::checkForPendingPreloads
43165         https://bugs.webkit.org/show_bug.cgi?id=23180
43166
43167         Added a protector for the document potentially holding on the last reference to the loader we are interating with.
43168
43169         * loader/loader.cpp:
43170         (WebCore::Loader::Host::didFinishLoading):
43171         (WebCore::Loader::Host::didFail):
43172
43173 2009-02-04  Cary Clark  <caryclark@google.com>
43174
43175         Reviewed by Darin Adler.
43176
43177         https://bugs.webkit.org/show_bug.cgi?id=23163
43178         Don't scroll to show current focus on devices that use
43179         directional pads for navigation.
43180
43181         * dom/Element.cpp:
43182         (WebCore::Element::updateFocusAppearance):
43183
43184 2009-02-04  Cary Clark  <caryclark@google.com>
43185
43186         Reviewed by Darin Adler.
43187
43188         Change RenderBlock::columnGap() access permissions from protected to
43189         public. ANDROID creates an array of focus rectangles for navigation
43190         with a trackball or directional pad, and needs access to the column gap
43191         to implement this logic.
43192
43193         Android has no testing harness @ webkit.org, thus no tests.
43194
43195         * rendering/RenderBlock.h:
43196
43197 2009-02-04  Cary Clark  <caryclark@google.com>
43198
43199         Reviewed by Darin Adler and Eric Seidel.
43200
43201         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22917
43202
43203         Add ENABLE_ON_FIRST_TEXTAREA_FOCUS_SELECT_ALL to permit the ANDROID
43204         platform to select all when focusing on a textarea. This matches
43205         the user interface guidelines other applications on the platform.
43206
43207         * html/HTMLTextAreaElement.cpp:
43208         (WebCore::HTMLTextAreaElement::updateFocusAppearance):
43209
43210 2009-02-04  Beth Dakin  <bdakin@apple.com>
43211
43212         Reviewed by Dave Hyatt.
43213
43214         Fix for <rdar://problem/6386112> Some inline-elements are not
43215         becoming proper dashboard-regions
43216
43217         RenderInline needs its own implementation of addDashboardRegions
43218         because otherwise all of the coordinate calculations are
43219         inaccurate.
43220
43221         * rendering/RenderInline.cpp:
43222         (WebCore::RenderInline::addDashboardRegions):
43223         * rendering/RenderInline.h:
43224         * rendering/RenderObject.h:
43225
43226 2009-02-04  David Hyatt  <hyatt@apple.com>
43227
43228         Move addChild/removeChild from RenderContainer to RenderObject.
43229
43230         Reviewed by Sam Weinig
43231
43232         * rendering/RenderContainer.cpp:
43233         * rendering/RenderContainer.h:
43234         * rendering/RenderObject.cpp:
43235         (WebCore::updateListMarkerNumbers):
43236         (WebCore::RenderObject::addChild):
43237         (WebCore::RenderObject::removeChild):
43238         * rendering/RenderObject.h:
43239         (WebCore::RenderObject::addChildIgnoringContinuation):
43240         * rendering/RenderSVGContainer.cpp:
43241         * rendering/RenderSVGContainer.h:
43242
43243 2009-02-04  Brady Eidson  <beidson@apple.com>
43244
43245         Reviewed by Sam Weinig
43246
43247         <rdar://problem/3541409> - Further HistoryItem / BF cache cleanup
43248
43249         * history/CachedFrame.cpp:
43250         (WebCore::CachedFrame::CachedFrame):
43251         (WebCore::CachedFrame::restore):
43252         * history/CachedFrame.h:
43253
43254         * history/CachedPage.cpp:
43255         (WebCore::CachedPage::restore):
43256         * history/CachedPage.h:
43257         (WebCore::CachedPage::mainFrameView):
43258
43259         * history/HistoryItem.cpp:
43260         (WebCore::HistoryItem::HistoryItem):
43261         (WebCore::HistoryItem::~HistoryItem):
43262         * history/HistoryItem.h:
43263         (WebCore::HistoryItem::isInPageCache):
43264
43265         * loader/FrameLoader.cpp:
43266         (WebCore::FrameLoader::open):
43267
43268 2009-02-04  Peter Kasting  <pkasting@google.com>
43269
43270         Reviewed by David Hyatt.
43271
43272         https://bugs.webkit.org/show_bug.cgi?id=23743
43273         Fix memory corruption with open-source GIF decoders.
43274
43275         * platform/image-decoders/ImageDecoder.h:
43276         (WebCore::RGBA32Buffer::clear):
43277         * platform/image-decoders/gif/GIFImageDecoder.cpp:
43278         (WebCore::GIFImageDecoder::clearFrameBufferCache):
43279         * platform/image-decoders/skia/GIFImageDecoder.cpp:
43280         (WebCore::GIFImageDecoder::clearFrameBufferCache):
43281         (WebCore::GIFImageDecoder::initFrameBuffer):
43282         * platform/image-decoders/skia/ImageDecoder.h:
43283         (WebCore::RGBA32Buffer::clear):
43284
43285 2009-02-04  Simon Fraser  <simon.fraser@apple.com>
43286
43287         Reviewed by Dave Hyatt
43288
43289         https://bugs.webkit.org/show_bug.cgi?id=23360
43290
43291         When using accelerated compositing, make repaints use the correct
43292         repaint container. Hook up the RenderLayerCompositor in RenderView,
43293         and add to RenderView a method that repaints both the view
43294         contents, and any intersecting composited layers.
43295
43296         Make enclosingCompositingLayer() a method on RenderObject, and update
43297         the compositor to use that. Add a helper method on the compositor to
43298         get the non-self compositing ancestor: ancestorCompositingLayer().
43299
43300         Call repaintRectangleInViewAndCompositedLayers() in places that don't do
43301         container-relative repainting: selection redraw on focus change, caret,
43302         and widget updates.
43303
43304         Fix a bug in RenderLayerCompositor where the m_compositingLayersNeedUpdate flag
43305         would get cleared for partial updates, thus preventing subsequent full updates.
43306
43307         Fix a bug in RenderLayer::ensureBacking() that made new backing every time.
43308
43309         * WebCore.xcodeproj/project.pbxproj:
43310         * editing/SelectionController.cpp:
43311         (WebCore::SelectionController::recomputeCaretRect):
43312         (WebCore::SelectionController::invalidateCaretRect):
43313         (WebCore::SelectionController::focusedOrActiveStateChanged):
43314         * rendering/RenderInline.cpp:
43315         (WebCore::RenderInline::clippedOverflowRectForRepaint):
43316         * rendering/RenderLayer.cpp:
43317         (WebCore::RenderLayer::RenderLayer):
43318         (WebCore::RenderLayer::compositor):
43319         (WebCore::RenderLayer::updateLayerPositions):
43320         (WebCore::RenderLayer::removeChild):
43321         (WebCore::RenderLayer::ensureBacking):
43322         * rendering/RenderLayer.h:
43323         (WebCore::RenderLayer::backing):
43324         * rendering/RenderLayerBacking.cpp:
43325         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
43326         (WebCore::RenderLayerBacking::paintIntoLayer):
43327         (WebCore::RenderLayerBacking::notifyTransitionStarted):
43328         (WebCore::RenderLayerBacking::notifyAnimationStarted):
43329         * rendering/RenderLayerCompositor.cpp:
43330         (WebCore::RenderLayerCompositor::updateCompositingLayers):
43331         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
43332         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
43333         (WebCore::RenderLayerCompositor::ancestorCompositingLayer):
43334         (WebCore::RenderLayerCompositor::clippedByAncestor):
43335         * rendering/RenderLayerCompositor.h:
43336         * rendering/RenderObject.cpp:
43337         (WebCore::RenderObject::enclosingCompositingLayer):
43338         (WebCore::RenderObject::containingBlockWidth):
43339         (WebCore::RenderObject::containingBlockHeight):
43340         (WebCore::RenderObject::containerForRepaint):
43341         (WebCore::RenderObject::repaintUsingContainer):
43342         * rendering/RenderObject.h:
43343         * rendering/RenderView.cpp:
43344         (WebCore::RenderView::shouldRepaint):
43345         (WebCore::RenderView::repaintViewRectangle):
43346         (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers):
43347         (WebCore::RenderView::setMaximalOutlineSize):
43348         (WebCore::RenderView::usesCompositing):
43349         (WebCore::RenderView::compositor):
43350         (WebCore::RenderView::didMoveOnscreen):
43351         (WebCore::RenderView::willMoveOffscreen):
43352         * rendering/RenderView.h:
43353         * rendering/RenderWidget.cpp:
43354         (WebCore::RenderWidget::updateWidgetPosition):
43355
43356 2009-02-04  Sam Weinig  <sam@webkit.org>
43357
43358         Reviewed by David Hyatt.
43359
43360         Add toRenderImage methods for casting RenderObjects to RenderImages.  The methods will assert if the object
43361         is not a RenderImage.  Also add a toRenderImage method that takes a RenderImage but returns void and that
43362         is unimplemented.  This method will catch anyone trying to do a cast when the object is already a RenderImage.
43363
43364         * html/HTMLAnchorElement.cpp:
43365         (WebCore::HTMLAnchorElement::defaultEventHandler):
43366         * html/HTMLEmbedElement.cpp:
43367         (WebCore::HTMLEmbedElement::attach):
43368         * html/HTMLImageElement.cpp:
43369         (WebCore::HTMLImageElement::parseMappedAttribute):
43370         (WebCore::HTMLImageElement::attach):
43371         * html/HTMLInputElement.cpp:
43372         (WebCore::HTMLInputElement::parseMappedAttribute):
43373         (WebCore::HTMLInputElement::attach):
43374         * html/HTMLObjectElement.cpp:
43375         (WebCore::HTMLObjectElement::attach):
43376         * html/HTMLVideoElement.cpp:
43377         (WebCore::HTMLVideoElement::attach):
43378         * loader/ImageLoader.cpp:
43379         (WebCore::ImageLoader::setImage):
43380         (WebCore::ImageLoader::updateFromElement):
43381         (WebCore::ImageLoader::notifyFinished):
43382         * page/AccessibilityRenderObject.cpp:
43383         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
43384         (WebCore::AccessibilityRenderObject::addChildren):
43385         * page/DragController.cpp:
43386         (WebCore::getCachedImage):
43387         (WebCore::getImage):
43388         * platform/mac/PasteboardMac.mm:
43389         (WebCore::Pasteboard::writeImage):
43390         * rendering/RenderImage.h:
43391         (WebCore::toRenderImage):
43392         * wml/WMLImageElement.cpp:
43393         (WebCore::WMLImageElement::parseMappedAttribute):
43394         (WebCore::WMLImageElement::attach):
43395
43396 2009-02-04  Jungshik Shin  <jshin@chromium.org>
43397
43398         Reviewed by Eric Seidel and Dave Hyatt.
43399
43400         https://bugs.webkit.org/show_bug.cgi?id=20531
43401
43402         Make alternateFamilyName customized for Windows and Chromium.
43403
43404         * platform/graphics/FontCache.cpp:
43405         (WebCore::alternateFamilyName):
43406
43407 2009-02-04  Jungshik Shin <jshin@chromium.org>
43408
43409         Reviewed by Eric Seidel.
43410
43411         This comes from Chromium patch (http://codereview.chromium.org/17624).
43412
43413         Add m_disableFontFallback to UniscriberHelper class and set it
43414         to true when filling up glyph pages for non-BMP code points.
43415         When it's set true, UniscriberHelper does not do its own font
43416         fallback. Neither does it do glyph placement. Font fallback
43417         will be taken care of in the simple script font path and glyph
43418         placement is not necessary for simple scripts.
43419
43420         Layout test is missing at the moment due to the lack of freely
43421         distributable font covering a non-BMP code page. A test page
43422         is available at http://i18nl10n.com/webkit/nonbmp2.html
43423
43424         See also https://bugs.webkit.org/show_bug.cgi?id=23602
43425
43426         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
43427         (WebCore::fillNonBMPGlyphs):
43428         * platform/graphics/chromium/UniscribeHelper.cpp:
43429         (WebCore::UniscribeHelper::UniscribeHelper):
43430         (WebCore::UniscribeHelper::shape):
43431         (WebCore::UniscribeHelper::fillShapes):
43432         * platform/graphics/chromium/UniscribeHelper.h:
43433         (WebCore::UniscribeHelper::setDisableFontFallback):
43434
43435 2009-02-04  Sam Weinig  <sam@webkit.org>
43436
43437         Reviewed by David Hyatt.
43438
43439         Remove some unnecessary #includes of RenderStyle.h
43440
43441         * css/CSSPrimitiveValueMappings.h:
43442         * css/SVGCSSComputedStyleDeclaration.cpp:
43443         * dom/Node.h:
43444         * rendering/PointerEventsHitRules.h:
43445         * rendering/RenderImageGeneratedContent.h:
43446         * rendering/RenderMarquee.h:
43447         * rendering/RenderScrollbar.h:
43448
43449 2009-02-04  Dimitri Glazkov  <dglazkov@chromium.org>
43450
43451         Reviewed by Sam Weinig.
43452
43453         https://bugs.webkit.org/show_bug.cgi?id=23657
43454         Clean up WebCore/storage IDLs.
43455
43456         * storage/SQLError.idl: Changed to match spec.
43457         * storage/SQLResultSet.idl: Changed to match spec.
43458         * storage/SQLStatementCallback.idl: Removed.
43459         * storage/SQLStatementErrorCallback.idl: Removed.
43460         * storage/SQLTransactionCallback.idl: Removed.
43461         * storage/SQLTransactionErrorCallback.idl: Removed.
43462
43463 2009-02-04  David Hyatt  <hyatt@apple.com>
43464
43465         Fix for https://bugs.webkit.org/show_bug.cgi?id=23734, blank content on blogs.msdn.com.
43466
43467         Add debugging code that will catch the incorrect dirtying of a table section immediately if it happens
43468         during calcRowHeight or layoutRows.  This should make it possible to discover future bugs where table sections don't
43469         paint.
43470
43471         The bug in blogs.msdn.com, which was caused by a bad setNeedsLayout in RenderLayer::updateScrollInfoAtferLayout.  Make
43472         sure to do only a local setNeedsLayout inside that function.
43473
43474         Reviewed by Beth Dakin
43475
43476         * rendering/RenderLayer.cpp:
43477         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
43478         * rendering/RenderObject.cpp:
43479         (WebCore::RenderObject::RenderObject):
43480         * rendering/RenderObject.h:
43481         (WebCore::RenderObject::isSetNeedsLayoutForbidden):
43482         (WebCore::RenderObject::setNeedsLayoutIsForbidden):
43483         (WebCore::RenderObject::setNeedsLayout):
43484         (WebCore::RenderObject::setChildNeedsLayout):
43485         (WebCore::RenderObject::markContainingBlocksForLayout):
43486         * rendering/RenderTable.cpp:
43487         (WebCore::RenderTable::layout):
43488         * rendering/RenderTableSection.cpp:
43489         (WebCore::RenderTableSection::calcRowHeight):
43490         (WebCore::RenderTableSection::layoutRows):
43491
43492 2009-02-04  Sam Weinig  <sam@webkit.org>
43493
43494         Reviewed by David Hyatt.
43495
43496         Rename RenderStyle::Diff to StyleDifference and move it to
43497         RenderStyleConstants.h.
43498
43499         * rendering/RenderBR.cpp:
43500         (WebCore::RenderBR::styleDidChange):
43501         * rendering/RenderBR.h:
43502         * rendering/RenderBlock.cpp:
43503         (WebCore::RenderBlock::styleWillChange):
43504         (WebCore::RenderBlock::styleDidChange):
43505         * rendering/RenderBlock.h:
43506         * rendering/RenderBox.cpp:
43507         (WebCore::RenderBox::styleWillChange):
43508         (WebCore::RenderBox::styleDidChange):
43509         * rendering/RenderBox.h:
43510         * rendering/RenderButton.cpp:
43511         (WebCore::RenderButton::styleWillChange):
43512         (WebCore::RenderButton::styleDidChange):
43513         * rendering/RenderButton.h:
43514         * rendering/RenderFieldset.cpp:
43515         (WebCore::RenderFieldset::styleDidChange):
43516         * rendering/RenderFieldset.h:
43517         * rendering/RenderFileUploadControl.cpp:
43518         (WebCore::RenderFileUploadControl::styleDidChange):
43519         * rendering/RenderFileUploadControl.h:
43520         * rendering/RenderInline.cpp:
43521         (WebCore::RenderInline::styleDidChange):
43522         * rendering/RenderInline.h:
43523         * rendering/RenderLayer.cpp:
43524         (WebCore::RenderLayer::styleChanged):
43525         * rendering/RenderLayer.h:
43526         * rendering/RenderLayerCompositor.cpp:
43527         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
43528         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
43529         * rendering/RenderLayerCompositor.h:
43530         * rendering/RenderListBox.cpp:
43531         (WebCore::RenderListBox::styleDidChange):
43532         * rendering/RenderListBox.h:
43533         * rendering/RenderListItem.cpp:
43534         (WebCore::RenderListItem::styleDidChange):
43535         * rendering/RenderListItem.h:
43536         * rendering/RenderListMarker.cpp:
43537         (WebCore::RenderListMarker::styleWillChange):
43538         (WebCore::RenderListMarker::styleDidChange):
43539         * rendering/RenderListMarker.h:
43540         * rendering/RenderMenuList.cpp:
43541         (WebCore::RenderMenuList::styleDidChange):
43542         * rendering/RenderMenuList.h:
43543         * rendering/RenderObject.cpp:
43544         (WebCore::RenderObject::setStyle):
43545         (WebCore::RenderObject::styleWillChange):
43546         (WebCore::RenderObject::styleDidChange):
43547         * rendering/RenderObject.h:
43548         * rendering/RenderReplaced.cpp:
43549         (WebCore::RenderReplaced::styleDidChange):
43550         * rendering/RenderReplaced.h:
43551         * rendering/RenderSVGGradientStop.cpp:
43552         (WebCore::RenderSVGGradientStop::styleDidChange):
43553         * rendering/RenderSVGGradientStop.h:
43554         * rendering/RenderSVGInlineText.cpp:
43555         (WebCore::RenderSVGInlineText::styleDidChange):
43556         * rendering/RenderSVGInlineText.h:
43557         * rendering/RenderScrollbarPart.cpp:
43558         (WebCore::RenderScrollbarPart::styleWillChange):
43559         (WebCore::RenderScrollbarPart::styleDidChange):
43560         * rendering/RenderScrollbarPart.h:
43561         * rendering/RenderSlider.cpp:
43562         (WebCore::RenderSlider::styleDidChange):
43563         * rendering/RenderSlider.h:
43564         * rendering/RenderTable.cpp:
43565         (WebCore::RenderTable::styleDidChange):
43566         * rendering/RenderTable.h:
43567         * rendering/RenderTableCell.cpp:
43568         (WebCore::RenderTableCell::styleWillChange):
43569         (WebCore::RenderTableCell::styleDidChange):
43570         * rendering/RenderTableCell.h:
43571         * rendering/RenderTableRow.cpp:
43572         (WebCore::RenderTableRow::styleWillChange):
43573         * rendering/RenderTableRow.h:
43574         * rendering/RenderText.cpp:
43575         (WebCore::RenderText::styleDidChange):
43576         * rendering/RenderText.h:
43577         (WebCore::RenderText::styleWillChange):
43578         * rendering/RenderTextControl.cpp:
43579         (WebCore::RenderTextControl::styleDidChange):
43580         * rendering/RenderTextControl.h:
43581         * rendering/RenderTextControlSingleLine.cpp:
43582         (WebCore::RenderTextControlSingleLine::styleDidChange):
43583         * rendering/RenderTextControlSingleLine.h:
43584         * rendering/RenderWidget.cpp:
43585         (WebCore::RenderWidget::styleDidChange):
43586         * rendering/RenderWidget.h:
43587         * rendering/style/RenderStyle.cpp:
43588         (WebCore::RenderStyle::diff):
43589         (WebCore::RenderStyle::setClip):
43590         * rendering/style/RenderStyle.h:
43591         * rendering/style/RenderStyleConstants.h:
43592         (WebCore::):
43593
43594 2009-02-03  Sam Weinig  <sam@webkit.org>
43595
43596         Reviewed by David Hyatt.
43597
43598         Move PseudoId enum out of RenderStyle and into RenderStyleConstants.h
43599
43600         * css/CSSStyleSelector.cpp:
43601         (WebCore::CSSStyleSelector::matchRulesForList):
43602         (WebCore::CSSStyleSelector::initForStyleResolve):
43603         (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker):
43604         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
43605         (WebCore::CSSStyleSelector::styleForElement):
43606         (WebCore::CSSStyleSelector::pseudoStyleForElement):
43607         (WebCore::CSSStyleSelector::checkSelector):
43608         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
43609         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
43610         (WebCore::CSSStyleSelector::applyProperty):
43611         * css/CSSStyleSelector.h:
43612         * dom/Node.cpp:
43613         (WebCore::Node::diff):
43614         * page/FrameView.cpp:
43615         (WebCore::FrameView::createScrollbar):
43616         * rendering/InlineTextBox.cpp:
43617         (WebCore::InlineTextBox::paint):
43618         * rendering/MediaControlElements.cpp:
43619         (WebCore::MediaTextDisplayElement::MediaTextDisplayElement):
43620         (WebCore::MediaTimeDisplayElement::MediaTimeDisplayElement):
43621         (WebCore::MediaControlInputElement::MediaControlInputElement):
43622         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
43623         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
43624         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
43625         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
43626         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
43627         * rendering/MediaControlElements.h:
43628         * rendering/RenderBlock.cpp:
43629         (WebCore::RenderBlock::styleDidChange):
43630         (WebCore::RenderBlock::updateBeforeAfterContent):
43631         (WebCore::RenderBlock::firstLineBlock):
43632         (WebCore::RenderBlock::updateFirstLetter):
43633         * rendering/RenderBlock.h:
43634         * rendering/RenderBox.cpp:
43635         (WebCore::RenderBox::isAfterContent):
43636         * rendering/RenderButton.cpp:
43637         (WebCore::RenderButton::updateBeforeAfterContent):
43638         * rendering/RenderButton.h:
43639         * rendering/RenderFileUploadControl.cpp:
43640         (WebCore::RenderFileUploadControl::createButtonStyle):
43641         * rendering/RenderInline.cpp:
43642         (WebCore::RenderInline::styleDidChange):
43643         (WebCore::isAfterContent):
43644         (WebCore::RenderInline::addChildIgnoringContinuation):
43645         (WebCore::RenderInline::splitInlines):
43646         * rendering/RenderLayer.cpp:
43647         (WebCore::RenderLayer::createScrollbar):
43648         (WebCore::RenderLayer::updateScrollCornerStyle):
43649         (WebCore::RenderLayer::updateResizerStyle):
43650         * rendering/RenderListBox.cpp:
43651         (WebCore::RenderListBox::createScrollbar):
43652         * rendering/RenderMedia.cpp:
43653         (WebCore::RenderMedia::createPanel):
43654         (WebCore::RenderMedia::createTimelineContainer):
43655         * rendering/RenderMenuList.cpp:
43656         (WebCore::RenderMenuList::createScrollbar):
43657         * rendering/RenderObject.cpp:
43658         (WebCore::RenderObject::selectionBackgroundColor):
43659         (WebCore::RenderObject::selectionForegroundColor):
43660         (WebCore::RenderObject::firstLineStyleSlowCase):
43661         (WebCore::RenderObject::getCachedPseudoStyle):
43662         (WebCore::RenderObject::getUncachedPseudoStyle):
43663         * rendering/RenderObject.h:
43664         (WebCore::RenderObject::isAnonymousBlock):
43665         * rendering/RenderObjectChildList.cpp:
43666         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
43667         (WebCore::beforeAfterContainer):
43668         (WebCore::RenderObjectChildList::invalidateCounters):
43669         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43670         * rendering/RenderObjectChildList.h:
43671         * rendering/RenderScrollbar.cpp:
43672         (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
43673         (WebCore::pseudoForScrollbarPart):
43674         * rendering/RenderScrollbar.h:
43675         * rendering/RenderSlider.cpp:
43676         (WebCore::RenderSlider::createThumbStyle):
43677         * rendering/RenderTextControlSingleLine.cpp:
43678         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
43679         (WebCore::RenderTextControlSingleLine::createResultsButtonStyle):
43680         (WebCore::RenderTextControlSingleLine::createCancelButtonStyle):
43681         (WebCore::RenderTextControlSingleLine::createScrollbar):
43682         * rendering/style/RenderStyle.cpp:
43683         (WebCore::pseudoBit):
43684         * rendering/style/RenderStyle.h:
43685         (WebCore::):
43686         * rendering/style/RenderStyleConstants.h:
43687         (WebCore::):
43688
43689 2009-02-04  David Kilzer  <ddkilzer@apple.com>
43690
43691         CrashTracer: [REGRESSION] 53 crashes in Safari at com.apple.WebCore: WebCore::LegacyWebArchive::create + 2706
43692
43693         <rdar://problem/6509514>
43694
43695         Reviewed by Mark Rowe.
43696
43697         * loader/archive/cf/LegacyWebArchive.cpp:
43698         (WebCore::LegacyWebArchive::create): Fix it correctly this time.
43699         Check for the value returned from WebCore::IconDatabase::iconForPageURL(),
43700         not WebCore::Image::data().
43701
43702 2009-02-04  David Hyatt  <hyatt@apple.com>
43703
43704         Rename removeFromObjectLists and move it into RenderBox, since it only applies to boxes.
43705
43706         Reviewed by Adam Roben
43707
43708         * rendering/RenderBox.cpp:
43709         (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
43710         (WebCore::RenderBox::styleWillChange):
43711         * rendering/RenderBox.h:
43712         * rendering/RenderContainer.cpp:
43713         (WebCore::RenderContainer::removeChild):
43714         * rendering/RenderObject.cpp:
43715         (WebCore::RenderObject::styleWillChange):
43716         * rendering/RenderObject.h:
43717         * rendering/RenderSVGContainer.cpp:
43718         (WebCore::RenderSVGContainer::removeChild):
43719
43720 2009-02-04  Jeremy Moskovich  <jeremy@chromium.org>
43721
43722         Reviewed by Dave Hyatt.
43723
43724         https://bugs.webkit.org/show_bug.cgi?id=23471
43725         Fix text-overflow:ellipsis; for RTL case.
43726
43727         Test: fast/css/text-overflow-ellipses.html
43728
43729         * rendering/InlineTextBox.cpp:
43730         (WebCore::InlineTextBox::placeEllipsisBox): Add support for rtl placement.
43731         (WebCore::InlineTextBox::paintDecoration): Correctly draw decorations
43732         for rtl truncation.
43733
43734 2009-02-04  Dimitri Glazkov  <dglazkov@chromium.org>
43735
43736         Reviewed by Darin Adler.
43737
43738         https://bugs.webkit.org/show_bug.cgi?id=23700
43739         Upstream local changes to due to unforking of SimpleFontData
43740         (corresponds to Chromium check-in http://src.chromium.org/viewvc/chrome?view=rev&revision=8646).
43741
43742         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
43743         (WebCore::fillBMPGlyphs): Removed extra checks for ZWS chars.
43744
43745 2009-02-04  David Hyatt  <hyatt@apple.com>
43746
43747         <rdar://problem/6554115> REGRESSION (r40475): World leak (JS global object) after viewing a photo on Facebook
43748
43749         Fix a ginormous leak. (GINORMOUS!) Make sure to disconnect the event listeners attached to the Document,
43750         because, like, they point to a lot of stuff... like ... everything...
43751
43752         Reviewed by Darin Adler
43753
43754         * dom/Document.cpp:
43755         (WebCore::Document::removeAllEventListenersFromAllNodes):
43756
43757 2009-02-04  Darin Fisher  <darin@chromium.org>
43758
43759         Reviewed by Darin Adler.
43760
43761         https://bugs.webkit.org/show_bug.cgi?id=23731
43762         Add JSCCustom and V8Custom as extended IDL attributes
43763
43764         This helps avoid having to add #ifdefs to the IDL files to support V8 bindings.
43765
43766         * bindings/scripts/CodeGeneratorJS.pm:
43767         * dom/Document.idl:
43768         * dom/Node.idl:
43769         * svg/SVGPathSegList.idl:
43770         * svg/SVGPointList.idl:
43771         * svg/SVGTransformList.idl:
43772
43773 2009-02-04  Dan Bernstein  <mitz@apple.com>
43774
43775         - build fix
43776
43777         * rendering/RenderImageGeneratedContent.h:
43778
43779 2009-02-04  miggilin  <mr.diggilin@gmail.com>
43780
43781         Reviewed by Kevin Ollivier.
43782
43783         Switch to using a ref-counted wxFont pointer for FontPlatformData to fix a crash
43784         with assigning to uninitialized HashTable buckets.
43785
43786         https://bugs.webkit.org/show_bug.cgi?id=23669
43787
43788         * platform/graphics/SimpleFontData.h:
43789         (WebCore::SimpleFontData::getWxFont):
43790         * platform/graphics/wx/FontPlatformData.h:
43791         (WebCore::):
43792         (WebCore::FontPlatformData::FontPlatformData):
43793         (WebCore::FontPlatformData::font):
43794         (WebCore::FontPlatformData::operator==):
43795         * platform/graphics/wx/FontPlatformDataWx.cpp:
43796         (WebCore::FontPlatformData::FontPlatformData):
43797         (WebCore::FontPlatformData::computeHash):
43798         (WebCore::FontPlatformData::~FontPlatformData):
43799         * platform/graphics/wx/SimpleFontDataWx.cpp:
43800         (WebCore::SimpleFontData::platformInit):
43801         (WebCore::SimpleFontData::determinePitch):
43802         (WebCore::SimpleFontData::platformWidthForGlyph):
43803         * platform/wx/wxcode/gtk/non-kerned-drawing.cpp:
43804         (WebCore::drawTextWithSpacing):
43805
43806 2009-02-04  David Hyatt  <hyatt@apple.com>
43807
43808         Fix a crash in generated content when a generated image with an already-cached background image gets
43809         created.  It's not completely clear how to reproduce this crash.
43810
43811         Reviewed by Adam Roben
43812
43813         * rendering/RenderImageGeneratedContent.h:
43814         (WebCore::RenderImageGeneratedContent::imagePtr):
43815
43816 2009-02-04  Simon Hausmann  <simon.hausmann@nokia.com>
43817
43818         Unreviewed Qt build fix.
43819
43820         Changed ASSERT(image) to ASSERT(!image.isNull()).
43821
43822         * platform/graphics/qt/ImageBufferQt.cpp:
43823         (WebCore::ImageBuffer::getImageData):
43824
43825 2009-02-04  Trenton Schulz <trenton.schulz@nokia.com>
43826
43827         Reviewed by Simon Hausmann.
43828
43829         Fix implementation of PluginViewMac::invalidateRect to update only the
43830         specified rect, not the entire browser window.
43831
43832         * plugins/mac/PluginViewMac.cpp:
43833         (WebCore::PluginView::invalidateRect):
43834
43835 2009-02-04  Holger Hans Peter Freyther  <zecke@selfish.org>
43836
43837         Rubber stamped by Mark Rowe.
43838
43839         FramePrivate was removed in r40024 remove the forward
43840         declaration as well.
43841
43842         * page/Frame.h:
43843
43844 2009-02-04  Holger Hans Peter Freyther  <zecke@selfish.org>
43845
43846         Reviewed by Sam Weinig.
43847
43848         https://bugs.webkit.org/show_bug.cgi?id=23426
43849
43850         Make isFrameSet virtual and by default return false. Reimplement
43851         it in HTMLDocument.
43852
43853         * dom/Document.cpp:
43854         * dom/Document.h:
43855         (WebCore::Document::isFrameSet):
43856         * html/HTMLDocument.cpp:
43857         (WebCore::HTMLDocument::isFrameSet):
43858         * html/HTMLDocument.h:
43859
43860 2009-02-03  Oliver Hunt  <oliver@apple.com>
43861
43862         Reviewed by John Sullivan.
43863
43864         <rdar://problem/6554092> Slow script dialog starts coming up over and over again
43865
43866         Work around <rdar://problem/6554067> by consuming any exceptions that are
43867         thrown by _web_localizedDescription
43868
43869         * platform/network/mac/ResourceErrorMac.mm:
43870         (WebCore::ResourceError::platformLazyInit):
43871
43872 2009-02-03  David Hyatt  <hyatt@apple.com>
43873
43874         Move the isRenderInline checks for clientWidth/Height and scrollWidth/Height to the DOM element
43875         versions of the functions.  Since internal render tree usage doesn't ever (incorrectly) call these
43876         functions on RenderInlines, this manages to get virtual function calls out of contentWidth/Height and
43877         availableWidth/Height.
43878
43879         Reviewed by Mark Rowe
43880
43881         * dom/Element.cpp:
43882         (WebCore::Element::clientWidth):
43883         (WebCore::Element::clientHeight):
43884         (WebCore::Element::scrollWidth):
43885         (WebCore::Element::scrollHeight):
43886         * rendering/RenderBox.cpp:
43887         (WebCore::RenderBox::clientWidth):
43888         (WebCore::RenderBox::clientHeight):
43889         (WebCore::RenderBox::scrollWidth):
43890         (WebCore::RenderBox::scrollHeight):
43891
43892 2009-02-03  Brad Garcia  <bgarcia@google.com>
43893
43894         Reviewed by Eric Seidel.
43895
43896         https://bugs.webkit.org/show_bug.cgi?id=20443
43897         Remove call to canResize when trying to determine if pointer
43898         is within a frame.
43899         Also removed the implementation of canResize as it is no longer used.
43900
43901         Test: fast/frames/frame-dead-region.html
43902
43903         * rendering/RenderFrameSet.cpp:
43904         (WebCore::RenderFrameSet::nodeAtPoint):
43905         * rendering/RenderFrameSet.h:
43906
43907 2009-02-03  David Hyatt  <hyatt@apple.com>
43908
43909         Reduce the number of calls to virtualChildren (indirectly made via RenderObject::firstChild()).
43910         This is a small gain on the PLT.
43911
43912         Reviewed by Mark Rowe
43913
43914         * rendering/bidi.cpp:
43915         (WebCore::inlineWidth):
43916         (WebCore::bidiNext):
43917
43918 2009-02-03  Simon Fraser  <simon.fraser@apple.com>
43919
43920         Reviewed by Dave Hyatt
43921
43922         https://bugs.webkit.org/show_bug.cgi?id=23628
43923
43924         Fix selection repainting to do container-relative repaints. RenderView now
43925         repaints the selection using the containerForRepaint() for each RenderSelectionInfo.
43926         selectionRect() is now a wrapper for selectionRectForRepaint() with no container.
43927
43928         Pull SelectionInfo out of RenderObject.h, and BlockSelectionInfo out
43929         of RenderBlock.h and move them into RenderSelectionInfo.h, with some
43930         sharing and refactoring.
43931
43932         RenderBlock::selectionGapRectsForRepaint() is not yet container-aware.
43933
43934         * GNUmakefile.am:
43935         * WebCore.vcproj/WebCore.vcproj:
43936         * WebCore.xcodeproj/project.pbxproj:
43937         * rendering/RenderBR.h:
43938         (WebCore::RenderBR::selectionRectForRepaint):
43939         * rendering/RenderBlock.cpp:
43940         (WebCore::RenderBlock::selectionGapRectsForRepaint):
43941         * rendering/RenderBlock.h:
43942         (WebCore::RenderBlock::selectionRectForRepaint):
43943         * rendering/RenderListMarker.cpp:
43944         (WebCore::RenderListMarker::paint):
43945         (WebCore::RenderListMarker::selectionRectForRepaint):
43946         * rendering/RenderListMarker.h:
43947         * rendering/RenderObject.h:
43948         (WebCore::RenderObject::selectionRect):
43949         (WebCore::RenderObject::selectionRectForRepaint):
43950         * rendering/RenderReplaced.cpp:
43951         (WebCore::RenderReplaced::selectionRectForRepaint):
43952         * rendering/RenderReplaced.h:
43953         * rendering/RenderSVGInlineText.cpp:
43954         (WebCore::RenderSVGInlineText::absoluteRects):
43955         (WebCore::RenderSVGInlineText::absoluteQuads):
43956         (WebCore::RenderSVGInlineText::selectionRectForRepaint):
43957         (WebCore::RenderSVGInlineText::computeRepaintRectForRange):
43958         * rendering/RenderSVGInlineText.h:
43959         * rendering/RenderSelectionInfo.h: Added.
43960         (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):
43961         (WebCore::RenderSelectionInfoBase::object):
43962         (WebCore::RenderSelectionInfoBase::repaintContainer):
43963         (WebCore::RenderSelectionInfoBase::state):
43964         (WebCore::RenderSelectionInfo::RenderSelectionInfo):
43965         (WebCore::RenderSelectionInfo::repaint):
43966         (WebCore::RenderSelectionInfo::rect):
43967         (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
43968         (WebCore::RenderBlockSelectionInfo::repaint):
43969         (WebCore::RenderBlockSelectionInfo::block):
43970         (WebCore::RenderBlockSelectionInfo::rects):
43971         * rendering/RenderText.cpp:
43972         (WebCore::RenderText::selectionRectForRepaint):
43973         * rendering/RenderText.h:
43974         * rendering/RenderView.cpp:
43975         (WebCore::RenderView::selectionBounds):
43976         (WebCore::RenderView::setSelection):
43977         * rendering/RenderView.h:
43978         * rendering/RenderWidget.cpp:
43979         (WebCore::RenderWidget::paint):
43980
43981 2009-02-03  David Hyatt  <hyatt@apple.com>
43982
43983         Add inline capacity back to CSSMutableStyleDeclaration now that the bug in Vector has been fixed.
43984
43985         Reviewed by Darin Adler & Sam Weinig
43986
43987         * css/CSSMutableStyleDeclaration.cpp:
43988         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
43989         * css/CSSMutableStyleDeclaration.h:
43990
43991 2009-02-03  Justin Garcia  <justin.garcia@apple.com>
43992
43993         Reviewed by Darin Adler.
43994
43995         https://bugs.webkit.org/show_bug.cgi?id=13490
43996         Implement execCommand("styleWithCSS", ...)
43997
43998         Determine whether or not to use HTML formatting tags for styling on the new
43999         boolean on Editor instead of whether or not the document is quirks mode.
44000
44001         * editing/ApplyStyleCommand.cpp:
44002         (WebCore::StyleChange::StyleChange):
44003         (WebCore::StyleChange::init):
44004         (WebCore::ApplyStyleCommand::applyBlockStyle):
44005         (WebCore::ApplyStyleCommand::applyTextDecorationStyle):
44006         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
44007         * editing/Editor.cpp:
44008         (WebCore::Editor::Editor):
44009         (WebCore::Editor::clear):
44010         * editing/Editor.h:
44011         (WebCore::Editor::setShouldStyleWithCSS):
44012         (WebCore::Editor::shouldStyleWithCSS):
44013         * editing/EditorCommand.cpp:
44014         (WebCore::executeStyleWithCSS):
44015         (WebCore::stateStyleWithCSS):
44016         (WebCore::CommandEntry::):
44017
44018 2009-02-03  Dirk Schulze  <krit@webkit.org>
44019
44020         Reviewed by Sam Weinig.
44021
44022         This is a follow up of r40546. Call toImage() once speeds up ImageBuffer::getImageData()
44023
44024         * platform/graphics/qt/ImageBufferQt.cpp:
44025         (WebCore::ImageBuffer::getImageData):
44026
44027 2009-02-03  Anders Carlsson  <andersca@apple.com>
44028
44029         Reviewed by Kevin Decker.
44030
44031         - Fix for <rdar://problem/6549743>
44032
44033         On Tiger, create an autorelease pool before creating the NSGraphicsContext and drain it immediately
44034         after the call to -[NSView displayRectIgnoringOpacity:inContext:].
44035
44036         * platform/mac/WidgetMac.mm:
44037         (WebCore::Widget::paint):
44038
44039 2009-02-03  David Hyatt  <hyatt@apple.com>
44040
44041         Back this change out since it is causing layout tests to crash.  There is something subtle going on
44042         here.
44043
44044         Reviewed by Darin Adler
44045
44046         * css/CSSMutableStyleDeclaration.cpp:
44047         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
44048         * css/CSSMutableStyleDeclaration.h:
44049
44050 2009-02-03  David Hyatt  <hyatt@apple.com>
44051
44052         Give the properties vector of mutable style declarations an initial inline capacity to reduce malloc churn.
44053
44054         Reviewed by Sam Weinig
44055
44056         * css/CSSMutableStyleDeclaration.cpp:
44057         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
44058         * css/CSSMutableStyleDeclaration.h:
44059
44060 2009-02-03  David Hyatt  <hyatt@apple.com>
44061
44062         Avoid creating extra copies of NSURLRequests for non-HTTP URLs.  Only mark platform requests
44063         as needing updating when HTTP fields change if the scheme of the URL is actually HTTP or HTTPS.
44064         Thus cuts down significantly on the number of copied NSURLRequests and is about a 1% gain on the PLT.
44065
44066         Reviewed by Darin Adler
44067
44068         * loader/FrameLoader.cpp:
44069         (WebCore::FrameLoader::addExtraFieldsToRequest):
44070         * platform/KURL.cpp:
44071         (WebCore::KURL::invalidate):
44072         (WebCore::KURL::KURL):
44073         * platform/KURL.h:
44074         (WebCore::KURL::isHTTPOrHTTPS):
44075         * platform/network/ResourceRequestBase.cpp:
44076         (WebCore::ResourceRequestBase::setCachePolicy):
44077         (WebCore::ResourceRequestBase::setTimeoutInterval):
44078         (WebCore::ResourceRequestBase::setMainDocumentURL):
44079         (WebCore::ResourceRequestBase::setHTTPMethod):
44080         (WebCore::ResourceRequestBase::setHTTPHeaderField):
44081         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
44082         (WebCore::ResourceRequestBase::setHTTPBody):
44083         (WebCore::ResourceRequestBase::setAllowHTTPCookies):
44084
44085 2009-02-03  Xan Lopez  <xan@gnome.org>
44086
44087         Reviewed by Holger Freyther.
44088
44089         https://bugs.webkit.org/show_bug.cgi?id=23711
44090
44091         Add manual test for floating divs with scrollbars.
44092
44093         * manual-tests/gtk/floatingdiv.html: Added.
44094
44095 2009-02-03  Xan Lopez  <xan@gnome.org>
44096
44097         Reviewed by Holger Freyther.
44098
44099         https://bugs.webkit.org/show_bug.cgi?id=23711
44100
44101         There's no need to hold an extra ref to the scrollbar, calling
44102         setPlatformWidget takes ownership of it.
44103
44104         Also do not disconnect the signals when destroying the widget,
44105         it's superfluous.
44106
44107         * platform/gtk/ScrollbarGtk.cpp:
44108         (ScrollbarGtk::ScrollbarGtk):
44109         * platform/gtk/ScrollbarGtk.h:
44110
44111 2009-02-03  Xan Lopez  <xan@gnome.org>
44112
44113         Reviewed by Holger Freyther.
44114
44115         https://bugs.webkit.org/show_bug.cgi?id=23711
44116
44117         Declare scrollBar as GtkWidget* to avoid needless
44118         casting.
44119
44120         * platform/gtk/ScrollbarGtk.cpp:
44121         (ScrollbarGtk::ScrollbarGtk):
44122         (ScrollbarGtk::~ScrollbarGtk):
44123
44124 2009-02-03  Xan Lopez  <xan@gnome.org>
44125
44126         Reviewed by Holger Freyther.
44127
44128         https://bugs.webkit.org/show_bug.cgi?id=23711
44129
44130         Properly calculate the scrollbar location for their
44131         usage in RenderLayout.
44132
44133         * platform/gtk/ScrollbarGtk.cpp:
44134         (ScrollbarGtk::frameRectsChanged):
44135
44136 2009-02-03  David Hyatt  <hyatt@apple.com>
44137
44138         Rename addLineBoxRects to absoluteRectsForRange, and do the same thing for the corresponding quads methods.  Move the RenderContainer implementations
44139         of these methods up to RenderObject.
44140
44141         Reviewed by Beth Dakin
44142
44143         * bindings/objc/DOM.mm:
44144         (-[DOMNode lineBoxRects]):
44145         * dom/Range.cpp:
44146         (WebCore::Range::addLineBoxRects):
44147         * inspector/InspectorController.cpp:
44148         (WebCore::InspectorController::drawNodeHighlight):
44149         * rendering/RenderContainer.cpp:
44150         * rendering/RenderContainer.h:
44151         * rendering/RenderObject.cpp:
44152         (WebCore::RenderObject::absoluteRectsForRange):
44153         (WebCore::RenderObject::absoluteQuadsForRange):
44154         * rendering/RenderObject.h:
44155         * rendering/RenderText.cpp:
44156         (WebCore::RenderText::absoluteRectsForRange):
44157         (WebCore::RenderText::absoluteQuadsForRange):
44158         * rendering/RenderText.h:
44159
44160 2009-02-03  Dirk Schulze  <krit@webkit.org>
44161
44162         Reviewed by Sam Weinig and Oliver Hunt.
44163
44164         Added getImageData() support for QtWebKit.
44165
44166         [QT] lacks getImageData / putImageData support in Canvas
44167         https://bugs.webkit.org/show_bug.cgi?id=22186
44168
44169         * platform/graphics/qt/ImageBufferQt.cpp:
44170         (WebCore::ImageBuffer::getImageData):
44171
44172 2009-02-03  Eric Roman  <eroman@chromium.org>
44173
44174         Reviewed by Holger Freyther.
44175
44176         Fix FrameChromium.cpp following r40473 which moved Frame::adjustPageHeight to FrameView::adjustPageHeight.
44177
44178         * page/chromium/FrameChromium.cpp:
44179         (WebCore::computePageRectsForFrame):
44180
44181 2009-02-02  Simon Fraser  <simon.fraser@apple.com>
44182
44183         Reviewed by Dave Hyatt
44184
44185         https://bugs.webkit.org/show_bug.cgi?id=23358
44186
44187         Hook accelerated compositing into RenderLayer.
44188
44189         * rendering/RenderLayer.cpp:
44190         (WebCore::RenderLayer::RenderLayer):
44191         (WebCore::RenderLayer::~RenderLayer):
44192         Init and clean up backing and the hasCompositingDescendant bit.
44193
44194         (WebCore::RenderLayer::compositor):
44195         Shortcut to get to the RenderLayerCompositor.
44196
44197         (WebCore::RenderLayer::updateLayerPositions):
44198         We need to let full repaints propagate to all compositing layers, and
44199         update the backing after layout here.
44200
44201         (WebCore::RenderLayer::transparentAncestor):
44202         (WebCore::transparencyClipBox):
44203         (WebCore::RenderLayer::beginTransparencyLayers):
44204         Account for the fact that opacity may be rendered via the compositing
44205         layer sometimes.
44206
44207         (WebCore::RenderLayer::addChild):
44208         (WebCore::RenderLayer::removeChild):
44209         (WebCore::RenderLayer::removeOnlyThisLayer):
44210         Tell the compositor when the RenderLayer hierarchy changes.
44211
44212         (WebCore::RenderLayer::scrollToOffset):
44213         Update layer geometry after scrolling.
44214
44215         (WebCore::RenderLayer::paintLayer):
44216         We short-circuit painting on composited layers, because these layers
44217         are painted on a callback from the compositing system.
44218
44219         (WebCore::RenderLayer::hitTestLayer):
44220         Only apply transforms if we are rendering them in software.
44221
44222         (WebCore::RenderLayer::localBoundingBox):
44223         (WebCore::RenderLayer::boundingBox):
44224         (WebCore::RenderLayer::absoluteBoundingBox):
44225         Refactor bounding box code that we can compute local, and ancestor-relative
44226         bounding box, as well as absolute.
44227
44228         (WebCore::RenderLayer::ensureBacking):
44229         (WebCore::RenderLayer::clearBacking):
44230         RenderLayerBacking creation and destruction.
44231
44232         (WebCore::RenderLayer::setParent):
44233         Tell the compositor when the RenderLayer hierarchy changes.
44234
44235         (WebCore::RenderLayer::dirtyZOrderLists):
44236         (WebCore::RenderLayer::dirtyStackingContextZOrderLists):
44237         (WebCore::RenderLayer::dirtyOverflowList):
44238         When the z-order and overflow lists change, we need to tell the
44239         compositor that the composited layers need to be rejiggered soon.
44240
44241         (WebCore::RenderLayer::updateZOrderLists):
44242         Whitespace cleanup.
44243
44244         (WebCore::RenderLayer::setBackingNeedsRepaint):
44245         (WebCore::RenderLayer::setBackingNeedsRepaintInRect):
44246         Dirty composited layer contents for painting.
44247
44248         (WebCore::RenderLayer::styleChanged):
44249         Update the layer backing after style changes.
44250
44251         * rendering/RenderLayer.h:
44252         (WebCore::RenderLayer::isComposited):
44253         (WebCore::RenderLayer::backing):
44254         Accessors for testing and getting the backing for this RenderLayer.
44255
44256         (WebCore::RenderLayer::paintsWithTransparency):
44257         (WebCore::RenderLayer::paintsWithTransform):
44258         Transform and opacity can be applied via the compositing layer, or rendered
44259         in software. These methods tell us if we need to account for them in the
44260         non-compositing path.
44261
44262         (WebCore::RenderLayer::hasCompositingDescendant):
44263         (WebCore::RenderLayer::setHasCompositingDescendant):
44264         Maintain a bit to tell if this layer has composited descendants.
44265
44266 2009-02-03  Simon Fraser  <simon.fraser@apple.com>
44267
44268         Reviewed by Dave Hyatt
44269
44270         https://bugs.webkit.org/show_bug.cgi?id=23365
44271
44272         Hook up accelerated compositing layers the native
44273         view system on Mac.
44274
44275         * WebCore.base.exp:
44276         Export new Page methods.
44277
44278         * page/ChromeClient.h:
44279         (WebCore::ChromeClient::attachRootGraphicsLayer):
44280         (WebCore::ChromeClient::setNeedsOneShotDrawingSynchronization):
44281         New methods for attaching/detaching the root GraphicsLayer, and
44282         synchronizing layer changes with window drawing.
44283
44284         * page/FrameView.h:
44285         * page/FrameView.cpp:
44286         (WebCore::FrameView::updateCompositingLayers):
44287         (WebCore::FrameView::setNeedsOneShotDrawingSynchronization):
44288         (WebCore::FrameView::didMoveOnscreen):
44289         (WebCore::FrameView::willMoveOffscreen):
44290         New methods to update the compositing layer hierarchy,
44291         and pass-throughs to the RenderLayerCompositor.
44292
44293         (WebCore::FrameView::layout):
44294         Update compositing layers after layout() and updateLayerPositions().
44295
44296         * page/Page.cpp:
44297         (WebCore::Page::didMoveOnscreen):
44298         (WebCore::Page::willMoveOffscreen):
44299         * page/Page.h:
44300         New methods to allow the native view system to tell the Page when it
44301         starts to be presented on-screen, and when it will be hidden.
44302
44303         * rendering/RenderLayerCompositor.h:
44304         * rendering/RenderLayerCompositor.cpp:
44305         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
44306         (WebCore::RenderLayerCompositor::didMoveOnscreen):
44307         (WebCore::RenderLayerCompositor::willMoveOffscreen):
44308         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
44309         Rename 'attached' methods to 'moveOnscreen/moveOffscreen' to match
44310         the calls through from Page, FrameView.
44311
44312         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
44313         Dont' try to repaint or update layers if the document is being torn
44314         down.
44315
44316         * rendering/RenderView.cpp:
44317         (WebCore::RenderView::didMoveOnscreen):
44318         (WebCore::RenderView::willMoveOffscreen):
44319         * rendering/RenderView.h:
44320         New methods.
44321
44322 2009-02-03  Dirk Schulze  <krit@webkit.org>
44323
44324         Reviewed by Holger Hans Peter Freyther.
44325
44326         Fixed getImageData and putImageData and respect pre-
44327         multiplied colors.
44328
44329         Cairo's ImageBuffer::getImageData() does not handle alpha=0 case correctly
44330         https://bugs.webkit.org/show_bug.cgi?id=21575
44331
44332         * platform/graphics/cairo/ImageBufferCairo.cpp:
44333         (WebCore::ImageBuffer::getImageData):
44334         (WebCore::ImageBuffer::putImageData):
44335
44336 2009-02-03  Dan Bernstein  <mitz@apple.com>
44337
44338         Reviewed by Brady Eidson.
44339
44340         - fix <rdar://problem/6550530> REGRESSION (r40508): Window opened with window.open has no initial history item (global and back/forward)
44341
44342         Test: fast/history/window-open.html
44343
44344         * bindings/js/JSDOMWindowBase.cpp:
44345         (WebCore::createWindow): Pass the missing lockBackForwardList parameter
44346         to FrameLoader::changeLocation().
44347
44348 2009-02-03  Adam Treat  <adam.treat@torchmobile.com>
44349
44350         Fix the Qt build after r40536.
44351
44352         * bridge/qt/qt_runtime.cpp:
44353         (JSC::Bindings::convertQVariantToValue):
44354
44355 2009-02-03  Dan Bernstein  <mitz@apple.com>
44356
44357         - fix -Wmissing-prototypes builds
44358
44359         * loader/WorkerThreadableLoader.cpp:
44360         (WebCore::workerContextDidSendData): Marked this function static.
44361         (WebCore::workerContextDidReceiveResponse): Ditto.
44362         (WebCore::workerContextDidReceiveData): Ditto.
44363         (WebCore::workerContextDidFinishLoading): Ditto.
44364         (WebCore::workerContextDidFail): Ditto.
44365         (WebCore::workerContextDidGetCancelled): Ditto.
44366         (WebCore::workerContextDidReceiveAuthenticationCancellation): Ditto.
44367
44368 2009-02-03  David Kilzer  <ddkilzer@apple.com>
44369
44370         CrashTracer: [REGRESSION] 53 crashes in Safari at com.apple.WebCore: WebCore::LegacyWebArchive::create + 2706
44371
44372         <rdar://problem/6509514>
44373
44374         Reviewed by Adam Roben.
44375
44376         * loader/archive/cf/LegacyWebArchive.cpp:
44377         (WebCore::LegacyWebArchive::create): Null check the value returned
44378         from WebCore::IconDatabase::iconForPageURL().
44379
44380 2009-02-03  Simon Hausmann  <simon.hausmann@nokia.com>
44381
44382         Reviewed by Tor Arne Vestbø.
44383
44384         Fix conversion of QByteArray to JavaScript and back. Instead of
44385         converting it to a String (data loss!) we now map it to JSByteArray.
44386
44387         * bridge/qt/qt_runtime.cpp:
44388         (JSC::Bindings::):
44389         (JSC::Bindings::valueRealType): Added JSByteArray as converstion type.
44390         (JSC::Bindings::convertValueToQVariant): Convert from JSByteArray to
44391         QVariant(QByteArray).
44392         (JSC::Bindings::convertQVariantToValue): Convert from
44393         QVariant::ByteArray to jsByteArray.
44394
44395 2009-02-03  Alexey Proskuryakov  <ap@webkit.org>
44396
44397         Build fix.
44398
44399         * GNUmakefile.am: Removed WorkerTask.{h,cpp}.
44400
44401 2009-02-03  Dmitry Titov  <dimich@chromium.org>
44402
44403         Reviewed by Alexey Proskuryakov.
44404
44405         https://bugs.webkit.org/show_bug.cgi?id=22718
44406         Implement WindowTimers interface in Workers.
44407
44408         This patch moves timeoutID from Document to ScriptExecutionContext
44409         and exposes JS methods setTimeout/setInterval/clearTimeout/clearInterval inside of a Worker.
44410         Also added a test for those methods.
44411
44412         Test: fast/workers/worker-timeout.html
44413
44414         * bindings/js/JSWorkerContextCustom.cpp:
44415         (WebCore::setTimeoutOrInterval):
44416         Creates ScheduledAction and calls WorkerContext::installTimeout to actually add a timer.
44417
44418         (WebCore::JSWorkerContext::setTimeout):
44419         (WebCore::JSWorkerContext::clearTimeout):
44420         (WebCore::JSWorkerContext::setInterval):
44421         (WebCore::JSWorkerContext::clearInterval):
44422         Added methods exposed to JS.
44423
44424         * dom/Document.cpp:
44425         * dom/Document.h:
44426         * dom/ScriptExecutionContext.cpp:
44427         (WebCore::ScriptExecutionContext::addTimeout):
44428         (WebCore::ScriptExecutionContext::removeTimeout):
44429         (WebCore::ScriptExecutionContext::findTimeout):
44430         * dom/ScriptExecutionContext.h:
44431         The timerID map moves from Document to ScriptExecutionContext,
44432         to be available to Document and to WorkerContext.
44433
44434         * dom/WorkerContext.cpp:
44435         (WebCore::WorkerContext::installTimeout): Adds a DOMTimeout.
44436         (WebCore::WorkerContext::removeTimeout): Removes a DOMTimeout.
44437         * dom/WorkerContext.h:
44438
44439         * page/DOMTimer.cpp:
44440         (WebCore::DOMTimer::DOMTimer):
44441         (WebCore::DOMTimer::~DOMTimer):
44442         (WebCore::DOMTimer::removeById):
44443         Code change here reflects move of timeoutID map to the ScriptExecutionContext.
44444         Some checks and casts are no longer needed.
44445
44446 2009-02-03  Dmitry Titov  <dimich@chromium.org>
44447
44448         Reviewed by Alexey Proskuryakov.
44449
44450         https://bugs.webkit.org/show_bug.cgi?id=23560
44451         Implement SharedTimer for Workers.
44452
44453         * dom/WorkerRunLoop.cpp:
44454         Added private class WorkerSharedTimer that implements SharedTimer interface for worker threads.
44455         (WebCore::WorkerSharedTimer::WorkerSharedTimer):
44456         (WebCore::WorkerSharedTimer::setFiredFunction):
44457         (WebCore::WorkerSharedTimer::setFireTime):
44458         (WebCore::WorkerSharedTimer::stop):
44459         (WebCore::WorkerSharedTimer::isActive):
44460         (WebCore::WorkerSharedTimer::fireTime):
44461         (WebCore::WorkerSharedTimer::fire):
44462         (WebCore::WorkerRunLoop::WorkerRunLoop):
44463         Initializes a WorkerSharedTimer instance.
44464         (WebCore::WorkerRunLoop::~WorkerRunLoop):
44465         The destructor is here so compiler is ok with having OwnPtr<WorkerSharedTimer> in .h file w/o defining WorkerSharedTimer.
44466         (WebCore::WorkerRunLoop::run):
44467         Set/reset shared timer interface on ThreadTimers, use MessageQueue::waitForMessageTimed() if timer is active.
44468         * dom/WorkerRunLoop.h:
44469         Add member of type OwnPtr<WorkerSharedTimer>
44470
44471 2009-02-03  Steve Falkenburg  <sfalken@apple.com>
44472
44473         Build fix.
44474
44475         * WebCore.vcproj/WebCore.vcproj:
44476
44477 2009-02-03  Alexey Proskuryakov  <ap@webkit.org>
44478
44479         Windows build fix.
44480
44481         * dom/CrossThreadCopier.h: Changed forward declarations to use struct instead of class where
44482         appropriate.
44483
44484 2009-02-02  David Levin  <levin@chromium.org>
44485
44486         Reviewed by Alexey Proskuryakov.
44487
44488         Bug 23636: Make the async api of ThreadableLoader functional for the worker context.
44489         <https://bugs.webkit.org/show_bug.cgi?id=23636>
44490
44491         Enable the async portion of ThreadableLoader for workers.
44492
44493         No observable change in behavior, so no test.
44494
44495         * GNUmakefile.am:
44496         * WebCore.pro:
44497         * WebCore.scons:
44498         * WebCore.vcproj/WebCore.vcproj:
44499         * WebCore.xcodeproj/project.pbxproj:
44500         * WebCoreSources.bkl:
44501         * dom/CrossThreadCopier.h:
44502         * dom/GenericWorkerTask.h:
44503         * dom/WorkerThread.cpp:
44504         * loader/ThreadableLoader.cpp:
44505         (WebCore::ThreadableLoader::create):
44506         * loader/ThreadableLoaderClient.h:
44507         (WebCore::ThreadableLoaderClient::didFinishLoading):
44508         * loader/ThreadableLoaderClientWrapper.h: Added.
44509         (WebCore::ThreadableLoaderClientWrapper::create):
44510         (WebCore::ThreadableLoaderClientWrapper::clearClient):
44511         (WebCore::ThreadableLoaderClientWrapper::didSendData):
44512         (WebCore::ThreadableLoaderClientWrapper::didReceiveResponse):
44513         (WebCore::ThreadableLoaderClientWrapper::didReceiveData):
44514         (WebCore::ThreadableLoaderClientWrapper::didFinishLoading):
44515         (WebCore::ThreadableLoaderClientWrapper::didFail):
44516         (WebCore::ThreadableLoaderClientWrapper::didGetCancelled):
44517         (WebCore::ThreadableLoaderClientWrapper::didReceiveAuthenticationCancellation):
44518         (WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
44519         * loader/WorkerThreadableLoader.cpp: Added.
44520         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
44521         (WebCore::WorkerThreadableLoader::~WorkerThreadableLoader):
44522         (WebCore::WorkerThreadableLoader::cancel):
44523         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
44524         (WebCore::WorkerThreadableLoader::MainThreadBridge::~MainThreadBridge):
44525         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
44526         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadDestroy):
44527         (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
44528         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCancel):
44529         (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
44530         (WebCore::WorkerThreadableLoader::MainThreadBridge::clearClientWrapper):
44531         (WebCore::workerContextDidSendData):
44532         (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
44533         (WebCore::workerContextDidReceiveResponse):
44534         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
44535         (WebCore::workerContextDidReceiveData):
44536         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
44537         (WebCore::workerContextDidFinishLoading):
44538         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
44539         (WebCore::workerContextDidFail):
44540         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
44541         (WebCore::workerContextDidGetCancelled):
44542         (WebCore::WorkerThreadableLoader::MainThreadBridge::didGetCancelled):
44543         (WebCore::workerContextDidReceiveAuthenticationCancellation):
44544         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation):
44545         * loader/WorkerThreadableLoader.h: Added.
44546         (WebCore::WorkerThreadableLoader::create):
44547         (WebCore::WorkerThreadableLoader::refThreadableLoader):
44548         (WebCore::WorkerThreadableLoader::derefThreadableLoader):
44549
44550 2009-02-02  David Levin  <levin@chromium.org>
44551
44552         Reviewed by Alexey Proskuryakov.
44553
44554         Bug 23636: Make the async api of ThreadableLoader functional for the worker context.
44555         <https://bugs.webkit.org/show_bug.cgi?id=23636>
44556
44557         No observable change in behavior, so no test.
44558
44559         * WebCore.xcodeproj/project.pbxproj:
44560         * dom/Worker.cpp:
44561         * dom/Worker.h:
44562         * dom/WorkerContext.cpp:
44563         (WebCore::WorkerContext::addMessage):
44564         (WebCore::WorkerContext::postTask):
44565         (WebCore::WorkerContext::postTaskToWorkerObject):
44566         * dom/WorkerContext.h:
44567         * dom/WorkerMessagingProxy.cpp:
44568         (WebCore::MessageWorkerContextTask::performTask):
44569         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
44570         (WebCore::WorkerMessagingProxy::postTaskToWorkerContext):
44571         Expose postTaskToWorkerContext for use by the worker object thread.
44572
44573         (WebCore::WorkerMessagingProxy::postTaskToWorkerObject):
44574         Change the name of postTaskToParentContext to postTaskToWorkerObject for consistency
44575         with postMessageToWorkerObject.
44576
44577         * dom/WorkerMessagingProxy.h:
44578         * dom/WorkerRunLoop.cpp:
44579         (WebCore::WorkerRunLoop::run):
44580         (WebCore::WorkerRunLoop::postTask):
44581         * dom/WorkerRunLoop.h:
44582         * dom/WorkerTask.cpp: Removed.
44583         * dom/WorkerTask.h: Removed.
44584         Removed WorkerTask and replaced with the existing ScriptExecutionContext::Task.
44585
44586         The resulted in the class going away along with an adapter that made
44587         a ScriptExecutionContext::Task look like a WorkerTask.
44588
44589         * dom/WorkerThread.cpp:
44590         * dom/WorkerThread.h:
44591
44592 2009-02-02  David Levin  <levin@chromium.org>
44593
44594         Reviewed by Alexey Proskuryakov.
44595
44596         Bug 23618: Templated worker tasks should be more error proof to use.
44597         <https://bugs.webkit.org/show_bug.cgi?id=23618>
44598
44599         Add the generic worker tasks templates needed for the WorkerThreadableLoader.
44600
44601         No observable change in behavior, so no test.
44602
44603         * GNUmakefile.am:
44604         * WebCore.pro:
44605         * WebCore.scons:
44606         * WebCore.vcproj/WebCore.vcproj:
44607         * WebCore.xcodeproj/project.pbxproj:
44608         * WebCoreSources.bkl:
44609         * dom/CrossThreadCopier.cpp: Added.
44610         * dom/CrossThreadCopier.h: Added.
44611         (WebCore::CrossThreadCopierPassThrough::copy):
44612         * dom/GenericWorkerTask.h:
44613         Stop doing the WorkerMessagingProxy::askedToTerminate call automatically
44614         in performTask because was not obvious that it would be done and not always needed.
44615
44616         (WebCore::GenericWorkerTask1::create):
44617         (WebCore::GenericWorkerTask1::GenericWorkerTask1):
44618         (WebCore::GenericWorkerTask1::performTask):
44619         (WebCore::GenericWorkerTask2::create):
44620         (WebCore::GenericWorkerTask2::GenericWorkerTask2):
44621         (WebCore::GenericWorkerTask2::performTask):
44622         (WebCore::GenericWorkerTask3::create):
44623         (WebCore::GenericWorkerTask3::GenericWorkerTask3):
44624         (WebCore::GenericWorkerTask3::performTask):
44625         (WebCore::GenericWorkerTask4::create):
44626         (WebCore::GenericWorkerTask4::GenericWorkerTask4):
44627         (WebCore::GenericWorkerTask4::performTask):
44628         (WebCore::GenericWorkerTask5::create):
44629         (WebCore::GenericWorkerTask5::GenericWorkerTask5):
44630         (WebCore::GenericWorkerTask5::performTask):
44631         (WebCore::GenericWorkerTask6::create):
44632         (WebCore::GenericWorkerTask6::GenericWorkerTask6):
44633         (WebCore::GenericWorkerTask6::performTask):
44634         (WebCore::GenericWorkerTask7::create):
44635         (WebCore::GenericWorkerTask7::GenericWorkerTask7):
44636         (WebCore::GenericWorkerTask7::performTask):
44637         (WebCore::createCallbackTask):
44638         * dom/WorkerContext.cpp:
44639         (WebCore::addMessageTask):
44640         (WebCore::WorkerContext::addMessage):
44641         * dom/WorkerMessagingProxy.h:
44642         (WebCore::WorkerMessagingProxy::askedToTerminate):
44643
44644 2009-02-02  Sam Weinig  <sam@webkit.org>
44645
44646         Reviewed by David "The Barnabas Jones" Hyatt.
44647
44648         Move removeChildNode, appendChildNode and insertChildNode from
44649         RenderContainer into RenderObjectChildList.  Make moveChildNode
44650         static in RenderBlock, as that was the only user.
44651
44652         * rendering/RenderBlock.cpp:
44653         (WebCore::moveChild):
44654         (WebCore::RenderBlock::makeChildrenNonInline):
44655         (WebCore::RenderBlock::removeChild):
44656         (WebCore::RenderBlock::handleRunInChild):
44657         * rendering/RenderContainer.cpp:
44658         (WebCore::RenderContainer::addChild):
44659         (WebCore::RenderContainer::removeChild):
44660         * rendering/RenderContainer.h:
44661         * rendering/RenderInline.cpp:
44662         (WebCore::RenderInline::splitInlines):
44663         (WebCore::RenderInline::splitFlow):
44664         (WebCore::RenderInline::childBecameNonInline):
44665         * rendering/RenderObject.cpp:
44666         (WebCore::RenderObject::handleDynamicFloatPositionChange):
44667         * rendering/RenderObject.h:
44668         (WebCore::RenderObject::createsAnonymousWrapper):
44669         * rendering/RenderObjectChildList.cpp:
44670         (WebCore::updateListMarkerNumbers):
44671         (WebCore::RenderObjectChildList::removeChildNode):
44672         (WebCore::RenderObjectChildList::appendChildNode):
44673         (WebCore::RenderObjectChildList::insertChildNode):
44674         * rendering/RenderObjectChildList.h:
44675         * rendering/RenderSVGContainer.cpp:
44676         (WebCore::RenderSVGContainer::addChild):
44677         (WebCore::RenderSVGContainer::removeChild):
44678         * rendering/RenderSVGContainer.h:
44679         * rendering/RenderTable.cpp:
44680         (WebCore::RenderTable::removeChild):
44681         * rendering/RenderTable.h:
44682         * rendering/RenderTableSection.cpp:
44683         (WebCore::RenderTableSection::removeChild):
44684         * rendering/RenderTableSection.h:
44685
44686 2009-02-02  Alexey Proskuryakov  <ap@webkit.org>
44687
44688         Reviewed by Darin Alder.
44689
44690         https://bugs.webkit.org/show_bug.cgi?id=23697
44691         Leaks seen on Worker tests
44692
44693         * dom/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):
44694         Zero out m_workerThread, so that the proxy could be deleted once workerObjectDestroyed()
44695         is called.
44696
44697 2009-02-02  David Hyatt  <hyatt@apple.com>
44698
44699         Move positionForCoordinates up from RenderContainer into RenderBox.
44700
44701         Reviewed by Sam Weinig
44702
44703         * rendering/RenderBox.cpp:
44704         (WebCore::RenderBox::positionForCoordinates):
44705         * rendering/RenderBox.h:
44706         * rendering/RenderContainer.cpp:
44707         * rendering/RenderContainer.h:
44708
44709 2009-02-02  Hiroaki Nakamura <hnakamur@gmail.com>
44710
44711         Reviewed by Adam Roben.
44712
44713         Fixes https://bugs.webkit.org/show_bug.cgi?id=15813
44714         Modify pre-build step to properly handle the errorlevel
44715         shell command.
44716
44717         * WebCore.vcproj/WebCore.vcproj: Change errorlevel handling
44718         for all targets so prefast is only enabled in builds
44719         where /analyze is available.
44720
44721 2009-02-02  David Hyatt  <hyatt@apple.com>
44722
44723         Refactor the handling of before/after content and generated content.  Move most of the functions from
44724         RenderContainer into RenderObjectChildList.
44725
44726         Reviewed by Sam Weinig
44727
44728         * rendering/RenderBlock.cpp:
44729         (WebCore::RenderBlock::updateBeforeAfterContent):
44730         * rendering/RenderBlock.h:
44731         * rendering/RenderBox.cpp:
44732         (WebCore::RenderBox::isAfterContent):
44733         * rendering/RenderBox.h:
44734         * rendering/RenderButton.cpp:
44735         (WebCore::RenderButton::updateBeforeAfterContent):
44736         * rendering/RenderContainer.cpp:
44737         * rendering/RenderContainer.h:
44738         * rendering/RenderCounter.cpp:
44739         (WebCore::destroyCounterNodeChildren):
44740         * rendering/RenderInline.cpp:
44741         (WebCore::RenderInline::styleDidChange):
44742         (WebCore::RenderInline::addChildIgnoringContinuation):
44743         (WebCore::RenderInline::splitInlines):
44744         * rendering/RenderObject.h:
44745         * rendering/RenderObjectChildList.cpp:
44746         (WebCore::beforeAfterContainer):
44747         (WebCore::findBeforeAfterParent):
44748         (WebCore::invalidateCountersInContainer):
44749         (WebCore::RenderObjectChildList::invalidateCounters):
44750         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
44751         * rendering/RenderObjectChildList.h:
44752
44753 2009-02-02  Dmitry Titov  <dimich@chromium.org>
44754
44755         Reviewed by Darin Adler.
44756
44757         https://bugs.webkit.org/show_bug.cgi?id=23661
44758         Fix Chromium build.
44759
44760         * history/HistoryItem.h: need to include <wtf/OwnPtr.h>
44761
44762         * rendering/RenderThemeChromiumMac.mm:
44763         (WebCore::RenderThemeChromiumMac::adjustMenuListStyle): isEnabled() is now on FormControlElement.
44764
44765 2009-02-02  Geoffrey Garen  <ggaren@apple.com>
44766
44767         Build fix.
44768
44769         * plugins/PluginView.cpp:
44770         (WebCore::PluginView::performRequest):
44771
44772 2009-02-02  Geoffrey Garen  <ggaren@apple.com>
44773
44774         Build fix.
44775
44776         * WebCore.base.exp:
44777
44778 2009-02-02  Geoffrey Garen  <ggaren@apple.com>
44779
44780         Reviewed by Sam Weinig.
44781
44782         Track redirects in global history.
44783
44784         * WebCore.base.exp: Renamed some exports.
44785
44786         * bindings/js/JSDOMWindowBase.cpp:
44787         (WebCore::createWindow):
44788         (windowProtoFuncOpen):
44789         * bindings/js/JSDOMWindowCustom.cpp:
44790         (WebCore::JSDOMWindow::setLocation):
44791         * bindings/js/JSDocumentCustom.cpp:
44792         (WebCore::JSDocument::setLocation):
44793         * bindings/js/JSHTMLFormElementCustom.cpp:
44794         (WebCore::JSHTMLFormElement::submit):
44795         * bindings/js/JSLocationCustom.cpp:
44796         (WebCore::JSLocation::setHref):
44797         (WebCore::JSLocation::setProtocol):
44798         (WebCore::JSLocation::setHost):
44799         (WebCore::JSLocation::setHostname):
44800         (WebCore::JSLocation::setPort):
44801         (WebCore::JSLocation::setPathname):
44802         (WebCore::JSLocation::setSearch):
44803         (WebCore::JSLocation::setHash):
44804         (WebCore::JSLocation::assign): Treat any navigation that is not initiated
44805         by the user as a redirect from the perspective of global history.
44806
44807         * history/HistoryItem.cpp:
44808         (WebCore::HistoryItem::addRedirectURL): Store the last URL in the redirect
44809         chain.
44810
44811         * loader/DocumentLoader.cpp:
44812         (WebCore::DocumentLoader::DocumentLoader):
44813         * loader/DocumentLoader.h:
44814         (WebCore::DocumentLoader::urlForHistoryReflectsServerRedirect):
44815         (WebCore::DocumentLoader::urlForHistoryReflectsClientRedirect):
44816         (WebCore::DocumentLoader::setURLForHistoryReflectsClientRedirect): Sadly,
44817         added yet another way to track redirect state during loading, since none
44818         of the others did what I wanted, and I didn't want to cause behavior
44819         changes in existing code.
44820
44821         * loader/EmptyClients.h:
44822         (WebCore::EmptyFrameLoaderClient::updateGlobalHistoryForRedirectWithoutHistoryItem):
44823         Stubbed out a client function to keep things building.
44824
44825         * loader/FrameLoader.cpp:
44826         (WebCore::isBackForwardLoadType):
44827         (WebCore::FrameLoader::restoreDocumentState): Renamed FrameLoadTypeRedirect =>
44828         FrameLoadTypeRedirectWithLockedBackForwardList, to distinguish from all
44829         the other meanings of "redirect" in the loading code.
44830
44831         (WebCore::FrameLoader::scheduleHTTPRedirection): Treat any HTTP refresh
44832         redirect as a redirect from the perspective of global history.
44833
44834         (WebCore::FrameLoader::loadURLIntoChildFrame): Updated for rename and extra
44835         parameter.
44836
44837         (WebCore::FrameLoader::startRedirectionTimer): Removed unused parameter.
44838
44839         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues):
44840         (WebCore::FrameLoader::loadURL):
44841         (WebCore::FrameLoader::load): Updated for rename and extra parameter.
44842
44843         (WebCore::FrameLoader::loadWithNavigationAction): Track redirect status
44844         in the DocumentLoader, so it's accessible to WebKit's global history code.
44845
44846         (WebCore::FrameLoader::clientRedirected): Ignore lockHistory, since it
44847         only has meaning to global history, and m_quickRedirectComing pertains
44848         to other kinds of history.
44849
44850         (WebCore::FrameLoader::loadPostRequest):
44851         (WebCore::FrameLoader::loadEmptyDocumentSynchronously):
44852         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
44853         (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
44854         (WebCore::FrameLoader::loadItem): Updated for extra parameter and rename.
44855
44856         (WebCore::FrameLoader::updateHistory*): Notify WebKit about redirect
44857         navigations even if they don't create new history items, so we can track
44858         the redirect in the existing history item.
44859
44860         * loader/FrameLoader.h: See above.
44861
44862         * loader/FrameLoaderClient.h: New client interface used by
44863         FrameLoader::updateHistory* to record a redirect even if it doesn't create
44864         a new history item of its own.
44865
44866         * loader/FrameLoaderTypes.h: See above.
44867         (WebCore::):
44868
44869         * page/DragController.cpp:
44870         (WebCore::DragController::performDrag):
44871         * svg/graphics/SVGImage.cpp:
44872         (WebCore::SVGImage::dataChanged): Updated for extra parameter.
44873
44874 2009-02-02  David Hyatt  <hyatt@apple.com>
44875
44876         Make calcPrefWidths non-abstract on RenderBox and just give it RenderContainer's implementation.
44877         Remove RenderSVGContainer's implementation, since it was never called.
44878
44879         Reviewed by Beth Dakin
44880
44881         * rendering/RenderBox.cpp:
44882         (WebCore::RenderBox::minPrefWidth):
44883         * rendering/RenderBox.h:
44884         (WebCore::RenderBox::calcPrefWidths):
44885         * rendering/RenderContainer.h:
44886         (WebCore::RenderContainer::moveChildNode):
44887         * rendering/RenderSVGContainer.h:
44888
44889 2009-02-02  Anders Carlsson  <andersca@apple.com>
44890
44891         Reviewed by Sam Weinig.
44892
44893         Add jsObjectForPluginElement to ScriptController, and have createScriptObjectForPluginElement call it.
44894
44895         * WebCore.LP64.exp:
44896         * bindings/js/ScriptController.cpp:
44897         (WebCore::ScriptController::createScriptObjectForPluginElement):
44898         (WebCore::ScriptController::jsObjectForPluginElement):
44899         * bindings/js/ScriptController.h:
44900
44901 2009-02-02  Darin Fisher  <darin@chromium.org>
44902
44903         Reviewed by Eric Seidel (and Ojan Vafai).
44904
44905         https://bugs.webkit.org/show_bug.cgi?id=23696
44906         Select element doesn't show new value when focus is switched in
44907         onchange event.
44908
44909         Fix PopupMenuChromium to hide itself before calling valueChanged.  This
44910         better matches the behavior of the other ports.
44911
44912         * platform/chromium/PopupMenuChromium.cpp:
44913         (WebCore::PopupListBox::create):
44914         (WebCore::PopupContainer::PopupContainer):
44915         (WebCore::PopupContainer::showPopup):
44916         (WebCore::PopupContainer::hidePopup):
44917         (WebCore::PopupListBox::abandon):
44918         (WebCore::PopupListBox::acceptIndex):
44919         (WebCore::PopupMenu::show):
44920         (WebCore::PopupMenu::hide):
44921
44922 2009-02-02  David Hyatt  <hyatt@apple.com>
44923
44924         Make sure scrollWidth/Height just return 0 for inline flows.
44925
44926         Reviewed by Beth Dakin
44927
44928         * rendering/RenderBox.cpp:
44929         (WebCore::RenderBox::scrollWidth):
44930         (WebCore::RenderBox::scrollHeight):
44931
44932 2009-02-02  Darin Adler  <darin@apple.com>
44933
44934         Reviewed by Dave Hyatt.
44935
44936         Bug 23676: Speed up uses of reserveCapacity on new vectors by adding a new reserveInitialCapacity
44937         https://bugs.webkit.org/show_bug.cgi?id=23676
44938
44939         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
44940         (WebCore::cssPropertyName):
44941         * css/CSSMutableStyleDeclaration.cpp:
44942         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
44943         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
44944         * css/CSSPrimitiveValue.cpp:
44945         (WebCore::CSSPrimitiveValue::cssText):
44946         * css/CSSStyleDeclaration.cpp:
44947         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
44948         * css/CSSStyleSelector.cpp:
44949         (WebCore::CSSStyleSelector::sortMatchedRules):
44950         * dom/Document.cpp:
44951         (WebCore::Document::formElementsState):
44952         * dom/NamedAttrMap.h:
44953         (WebCore::NamedAttrMap::reserveInitialCapacity):
44954         * editing/TextIterator.cpp:
44955         (WebCore::CharacterIterator::string):
44956         (WebCore::SearchBuffer::SearchBuffer):
44957         (WebCore::plainTextToMallocAllocatedBuffer):
44958         * editing/markup.cpp:
44959         (WebCore::joinMarkups):
44960         * history/HistoryItem.cpp:
44961         (WebCore::HistoryItem::HistoryItem):
44962         * html/HTMLTokenizer.cpp:
44963         (WebCore::Token::addAttribute):
44964         * loader/appcache/DOMApplicationCache.cpp:
44965         (WebCore::DOMApplicationCache::items):
44966         * page/SecurityOrigin.cpp:
44967         (WebCore::SecurityOrigin::toString):
44968         * page/mac/AccessibilityObjectWrapper.mm:
44969         (convertToVector):
44970         * platform/graphics/FontCache.cpp:
44971         (WebCore::FontCache::purgeInactiveFontData):
44972         (WebCore::FontCache::invalidate):
44973         * platform/network/FormData.cpp:
44974         (WebCore::FormData::deepCopy):
44975         * platform/network/HTTPHeaderMap.cpp:
44976         (WebCore::HTTPHeaderMap::copyData):
44977         * platform/network/ResourceRequestBase.cpp:
44978         (WebCore::ResourceRequestBase::copyData):
44979         * platform/network/mac/FormDataStreamMac.mm:
44980         (WebCore::formCreate):
44981         * xml/XPathNodeSet.cpp:
44982         (WebCore::XPath::NodeSet::sort):
44983         Use reserveInitialCapacity instead of of reserveCapacity in all these call sites,
44984         which are working on new vectors that are guaranteed not to be empty.
44985
44986 2009-02-26  Jon Honeycutt  <jhoneycutt@apple.com>
44987
44988         Build fix after r40486.
44989
44990         Rubber-stamped by Ada Chan.
44991
44992         * dom/Document.h: Changed HitTestRequest to a class from a struct.
44993         * page/EventHandler.h: Ditto.
44994         * rendering/EllipsisBox.h: Ditto.
44995         * rendering/InlineBox.h: Ditto.
44996         * rendering/InlineFlowBox.h: Ditto.
44997         * rendering/RenderLayer.h: Ditto.
44998
44999 2009-02-02  Darin Adler  <darin@apple.com>
45000
45001         Reviewed by Anders Carlsson.
45002
45003         Bug 23694: REGRESSION: Running svg/custom tests crashes, randomly, depending on the order of tests
45004         https://bugs.webkit.org/show_bug.cgi?id=23694
45005
45006         * dom/ContainerNode.cpp:
45007         (WebCore::ContainerNode::insertedIntoDocument): Added back the call through to EventTargetNode.
45008         (WebCore::ContainerNode::removedFromDocument): Ditto.
45009         * dom/EventTargetNode.cpp:
45010         (WebCore::EventTargetNode::insertedIntoDocument): Changed this to not call through to Node.
45011         (WebCore::EventTargetNode::removedFromDocument): Ditto.
45012         * dom/Node.cpp:
45013         (WebCore::Node::insertedIntoDocument): Updated comment.
45014         (WebCore::Node::removedFromDocument): Ditto.
45015
45016 2009-02-02  Anders Carlsson  <andersca@apple.com>
45017
45018         Reviewed by Dan Bernstein.
45019
45020         More plug-in cleanup.
45021
45022         * WebCore.NPAPI.exp:
45023         Add new symbols.
45024
45025         * bindings/objc/DOM.mm:
45026         * bindings/objc/DOMPrivate.h:
45027         Remove methods that WebKit doesn't use anymore.
45028
45029 2009-02-02  Jay Campan  <jcampan@chromium.org>
45030
45031         Reviewed by Eric Seidel.
45032
45033         Clean up PopupMenuChromium a little.
45034         https://bugs.webkit.org/show_bug.cgi?id=23653
45035
45036         No functional changes, only code cleanup, thus no tests.
45037
45038         * platform/chromium/PopupMenuChromium.cpp:
45039         (WebCore::):
45040         (WebCore::PopupListBox::PopupListBox):
45041         (WebCore::PopupContainer::create):
45042         (WebCore::PopupContainer::PopupContainer):
45043         (WebCore::PopupContainer::showPopup):
45044         (WebCore::PopupListBox::handleKeyEvent):
45045         (WebCore::PopupListBox::isSelectableItem):
45046         (WebCore::PopupListBox::selectNextRow):
45047         (WebCore::PopupListBox::selectPreviousRow):
45048         (WebCore::PopupMenu::show):
45049         * platform/chromium/PopupMenuChromium.h:
45050
45051 2009-02-02  Anders Carlsson  <andersca@apple.com>
45052
45053         Reviewed by Dan Bernstein.
45054
45055         Change createPlugin to take a HTMLPlugInElement, and createJavaAppletWidget to take a HTMLAppletElement.
45056
45057         * WebCore.xcodeproj/project.pbxproj:
45058         * loader/EmptyClients.h:
45059         (WebCore::EmptyFrameLoaderClient::createPlugin):
45060         (WebCore::EmptyFrameLoaderClient::createJavaAppletWidget):
45061         * loader/FrameLoader.cpp:
45062         (WebCore::toPlugInElement):
45063         (WebCore::FrameLoader::loadPlugin):
45064         (WebCore::FrameLoader::loadItem):
45065         * loader/FrameLoader.h:
45066         * loader/FrameLoaderClient.h:
45067
45068 2009-02-02  Genevieve Mak  <gen@staikos.net>
45069
45070         Reviewed by George Staikos.
45071
45072         https://bugs.webkit.org/show_bug.cgi?id=23508
45073         Returns Blank Page for all "about" protocols
45074
45075         * loader/MainResourceLoader.cpp:
45076         Fix shouldLoadAsEmptyDocument() to return a blank page for an empty
45077         url or about:blank only (for now, exclusively for Torch Mobile platform).
45078
45079 2009-02-02  Brent Fulgham  <bfulgham@webkit.org>
45080
45081         Reviewed by George Staikos.
45082
45083         Fixes https://bugs.webkit.org/show_bug.cgi?id=23691.
45084         Correct build break caused by @r40366 by moving the
45085         common code implmentations from GraphicsContextCGWin.cpp
45086         into the base Windows class (GraphicsContextWin.cpp).  Also
45087         move inTransparencyLayer since it is identical in both
45088         children.
45089
45090         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
45091           Added member m_shouldIncludeChildWindows to Windows version,
45092           similar to GraphicsContextPlatformPrivateCG.h.
45093         * platform/graphics/win/GraphicsContextCGWin.cpp: Remove the
45094           implementations of shouldIncludeChildWindows,
45095           setShouldIncludeChildWindows, and inTransparencyLayer.
45096         * platform/graphics/win/GraphicsContextCairoWin.cpp: Remove
45097           the implementation of inTransparencyLayer.
45098         * platform/graphics/win/GraphicsContextWin.cpp: Move common code
45099           from GraphicsContextCGWin.cpp and GraphicsContextCairoWin.cpp.
45100         (WebCore::GraphicsContext::inTransparencyLayer):
45101         (WebCore::GraphicsContext::setShouldIncludeChildWindows):
45102         (WebCore::GraphicsContext::shouldIncludeChildWindows):
45103
45104 2009-02-02  Darin Adler  <darin@apple.com>
45105
45106         Try to fix Wx build, and maybe Chromium build too.
45107
45108         * WebCore.scons: Added IdentifierRep.cpp.
45109         * WebCoreSources.bkl: Ditto.
45110
45111 2009-02-02  Darin Adler  <darin@apple.com>
45112
45113         Try to fix Wx build.
45114
45115         * html/HTMLAreaElement.cpp: Added missing include of "Path.h".
45116
45117 2009-02-02  Adam Treat  <adam.treat@torchmobile.com>
45118
45119         Reviewed by Nikolas Zimmermann.
45120
45121         https://bugs.webkit.org/show_bug.cgi?id=23587
45122         Refactor HitTestRequest to eliminate all the ugly boolean arguments and
45123         use an enum bitflag instead.  Cleanup all the code that constructs the
45124         various HitTestRequests to make the code more readable.
45125
45126         * dom/Document.cpp:
45127         (WebCore::Document::elementFromPoint):
45128         (WebCore::Document::prepareMouseEvent):
45129         * editing/SelectionController.cpp:
45130         (WebCore::SelectionController::contains):
45131         * page/AccessibilityRenderObject.cpp:
45132         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
45133         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
45134         * page/EventHandler.cpp:
45135         (WebCore::EventHandler::eventMayStartDrag):
45136         (WebCore::EventHandler::updateSelectionForMouseDrag):
45137         (WebCore::EventHandler::hitTestResultAtPoint):
45138         (WebCore::EventHandler::handleMousePressEvent):
45139         (WebCore::EventHandler::handleMouseDoubleClickEvent):
45140         (WebCore::EventHandler::handleMouseMoveEvent):
45141         (WebCore::EventHandler::handleMouseReleaseEvent):
45142         (WebCore::EventHandler::updateDragAndDrop):
45143         (WebCore::EventHandler::handleWheelEvent):
45144         (WebCore::EventHandler::sendContextMenuEvent):
45145         (WebCore::EventHandler::hoverTimerFired):
45146         (WebCore::EventHandler::handleDrag):
45147         * page/EventHandler.h:
45148         * rendering/HitTestRequest.h:
45149         (WebCore::HitTestRequest::):
45150         (WebCore::HitTestRequest::HitTestRequest):
45151         (WebCore::HitTestRequest::readOnly):
45152         (WebCore::HitTestRequest::active):
45153         (WebCore::HitTestRequest::mouseMove):
45154         (WebCore::HitTestRequest::mouseUp):
45155         (WebCore::HitTestRequest::ignoreClipping):
45156         * rendering/RenderFrameSet.cpp:
45157         (WebCore::RenderFrameSet::nodeAtPoint):
45158         * rendering/RenderLayer.cpp:
45159         (WebCore::RenderLayer::hitTest):
45160         (WebCore::RenderLayer::hitTestLayer):
45161         (WebCore::RenderLayer::updateHoverActiveState):
45162
45163 2009-02-02  George Staikos  <george.staikos@torchmobile.com>
45164
45165         Reviewed by Niko Zimmermann.
45166
45167         Fix WML build by including the inlined renderStyle().
45168
45169         * wml/WMLOptGroupElement.cpp:
45170         * wml/WMLOptionElement.cpp:
45171
45172 2009-02-02  Darin Adler  <darin@apple.com>
45173
45174         Reviewed by Niko Zimmermann.
45175
45176         Bug 23686: REGRESSION (r40475): Failure in fast/xpath/4XPath/Core/test_core_functions.html
45177         https://bugs.webkit.org/show_bug.cgi?id=23686
45178         rdar://problem/6547971
45179
45180         Also fix other XPath tests that are crashing.
45181
45182         * xml/XPathFunctions.cpp:
45183         (WebCore::XPath::FunLang::evaluate): Fix order of arguments when creating QualifiedName.
45184         * xml/XPathStep.cpp:
45185         (WebCore::XPath::Step::nodesInAxis): Use createAttrIfNeeded() rather than attr() since we
45186         need to make Attr nodes here. Yuck!
45187
45188 2009-02-02  Yichao Yin  <yichao.yin@torchmobile.com.cn>
45189
45190         Reviewed by Niko Zimmermann.
45191
45192         Test: wml/input-format.html
45193
45194         * wml/WMLInputElement.cpp:
45195         (WebCore::WMLInputElement::WMLInputElement):
45196         (WebCore::formatCodes):
45197         (WebCore::WMLInputElement::dispatchBlurEvent):
45198         (WebCore::WMLInputElement::parseMappedAttribute):
45199         (WebCore::WMLInputElement::attach):
45200         (WebCore::WMLInputElement::defaultEventHandler):
45201         (WebCore::WMLInputElement::init):
45202         (WebCore::WMLInputElement::validateInputMask):
45203         (WebCore::WMLInputElement::isConformedToInputMask):
45204         (WebCore::WMLInputElement::cursorPositionToMaskIndex):
45205         * wml/WMLInputElement.h:
45206
45207 2009-02-02  Brent Fulgham  <bfulgham@webkit.org>
45208
45209         Build fix only, no review.
45210
45211         Fixes https://bugs.webkit.org/show_bug.cgi?id=23685.
45212         Correct build break caused by @r40473.
45213
45214         * page/win/FrameWin.cpp: Correct access for adjustPageHeight.
45215         (WebCore::computePageRectsForFrame):
45216
45217 2009-02-02  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
45218
45219         Not reviewed. Fix WML enabled builds.
45220         FrameLoader::urlSelected() got a new parameter: lockBackForwardList. Pass 'false', as HTMLAnchorElement does.
45221
45222         * wml/WMLAElement.cpp:
45223         (WebCore::WMLAElement::defaultEventHandler):
45224
45225 2009-02-02  Alexey Proskuryakov  <ap@webkit.org>
45226
45227         Reviewed by Darin Adler.
45228
45229         <rdar://problem/6451610> Reloading a AppCache page doesn't ever hit the server
45230
45231         Not easily testable.
45232
45233         * loader/appcache/ApplicationCacheGroup.cpp:
45234         (WebCore::ApplicationCacheGroup::createResourceHandle): A new method that creates a resource
45235         handle in a manner that is closer to what CachedResource does. We now make conditional
45236         requests for better performance, and set max-age to ensure that stale responses are not used.
45237         (WebCore::ApplicationCacheGroup::update): Use the new createResourceHandle() method.
45238         (WebCore::ApplicationCacheGroup::didReceiveResponse): If the response code for the resource
45239         is 304, take it from the newest cache.
45240         (WebCore::ApplicationCacheGroup::didFail): Pre-compute request URL.
45241         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse): Don't create a resource for
45242         the manifest if the response code was 304 - it won't be needed.
45243         (WebCore::ApplicationCacheGroup::didReceiveManifestData): Replaced an assertion that
45244         m_manifestResource is not null with a check.
45245         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): Treat null m_manifestResource as
45246         an indication that the response was 304.
45247         (WebCore::ApplicationCacheGroup::startLoadingEntry): Use createResourceHandle().
45248
45249         * loader/appcache/ApplicationCacheGroup.h: Added createResourceHandle().
45250
45251 2009-02-01  Darin Adler  <darin@apple.com>
45252
45253         Reviewed by Dave Hyatt.
45254
45255         Bug 23674: Speed up some things based on profiling the page load test
45256         https://bugs.webkit.org/show_bug.cgi?id=23674
45257
45258         * css/CSSStyleSelector.cpp:
45259         (WebCore::CSSStyleSelector::canShareStyleWithElement): Use the newly named cssTarget instead
45260         of the old name, getCSSTarget.
45261         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto.
45262
45263         * dom/ContainerNode.cpp:
45264         (WebCore::ContainerNode::insertedIntoDocument): Moved code from Node in here rather than
45265         calling through to EventTargetNode::insertedIntoDocument.
45266         (WebCore::ContainerNode::removedFromDocument): Ditto.
45267         (WebCore::ContainerNode::insertedIntoTree): Tweaked a bit.
45268         (WebCore::ContainerNode::removedFromTree): Ditto.
45269
45270         * dom/ContainerNode.h: Moved the constructor definition here and made it inline.
45271
45272         * dom/Document.cpp:
45273         (WebCore::Document::removeAllEventListenersFromAllNodes): Iterate the document element and
45274         its contents only to avoid the document type node. This allows us to remove the virtual
45275         function call to isEventTargetNode from the loop.
45276         (WebCore::Document::setCSSTarget): Changed argument to be an Element rather than Node.
45277
45278         * dom/Document.h: Changed CSS target to be an Element rather than a Node. Renamed
45279         getCSSTarget to cssTarget.
45280
45281         * dom/EventTargetNode.cpp:
45282         (WebCore::EventTargetNode::removeAllEventListenersSlowCase): Renamed and turned the
45283         rare data check into an assertion.
45284
45285         * dom/EventTargetNode.h: Made the fast case of removeAllEventListeners be inline.
45286         Also moved the constructor definition here and made it inline. And added toEventTargetNode,
45287         matching the design of the render tree checked casts. Later we can migrate all callers
45288         from EventTargetNodeCast to toEventTargetNode.
45289
45290         * dom/NamedAttrMap.cpp:
45291         (WebCore::NamedAttrMap::detachAttributesFromElement): Added. Factored out from
45292         clearAttributes, so we could use this loop in cases where we're not clearing the attributes.
45293         (WebCore::NamedAttrMap::~NamedAttrMap): Call detachAttributesFromElement instead of
45294         clearAttributes here.
45295         (WebCore::NamedAttrMap::clearAttributes): Call detachAttributesFromElement here.
45296         (WebCore::NamedAttrMap::detachFromElement): Call detachAttributesFromElement instead of
45297         clearAttributes. We don't need to clear the attributes array just because the element is
45298         going away, so don't.
45299         (WebCore::NamedAttrMap::virtualLength): Added.
45300
45301         * dom/NamedAttrMap.h: Made all the virtual functions inherited from NamedNodeMap be private.
45302         These are all unnecessarily inefficient for use outside the DOM. Changed length to be a
45303         non-virtual function. This was a fairly hot function.
45304
45305         * dom/NamedMappedAttrMap.cpp:
45306         (WebCore::NamedMappedAttrMap::setClass): Changed to use element() function now that the
45307         m_element data member is private.
45308
45309         * dom/NamedMappedAttrMap.h: Made a few functions private. Made the
45310         hasMappedAttributes function non-virtual.
45311
45312         * dom/NamedNodeMap.h: Made length a non-virtual inline function that calls a virtual
45313         function, name virtualLength. This lets NamedAttrMap::length be a non-virtual function.
45314
45315         * dom/Node.cpp:
45316         (WebCore::Node::insertedIntoDocument): Removed call to insertedIntoTree, since it's
45317         only non-empty in subclasses of ContainerNode.
45318         (WebCore::Node::removedFromDocument): Ditto. Also removed setCSSTarget. Since a CSS
45319         target has to be an Element, this can be moved down to ContainerNode (or it could be
45320         moved down to Element for that matter).
45321
45322         * dom/QualifiedName.cpp:
45323         (WebCore::QualifiedName::QualifiedName): Removed double initialization of m_impl.
45324
45325         * dom/QualifiedName.h: Moved the destructor, copy constructor, assignment operator, and
45326         setPrefix function definitions into the header and made them inline.
45327
45328         * html/HTMLAreaElement.cpp:
45329         (WebCore::HTMLAreaElement::mapMouseEvent): Updated since the stored region is now
45330         an OwnPtr.
45331         (WebCore::HTMLAreaElement::accessKey): Use AtomicString.
45332         (WebCore::HTMLAreaElement::setAccessKey): Ditto.
45333         (WebCore::HTMLAreaElement::alt): Ditto.
45334         (WebCore::HTMLAreaElement::setAlt): Ditto.
45335         (WebCore::HTMLAreaElement::coords): Ditto.
45336         (WebCore::HTMLAreaElement::setCoords): Ditto.
45337         (WebCore::HTMLAreaElement::setHref): Ditto.
45338         (WebCore::HTMLAreaElement::shape): Ditto.
45339         (WebCore::HTMLAreaElement::setShape): Ditto.
45340         (WebCore::HTMLAreaElement::setTarget): Ditto.
45341
45342         * html/HTMLAreaElement.h: Use AtomicString in the getter and setter DOM operations.
45343         Change the region data member to be an OwnPtr<Path> instead of a Path to optimize
45344         the common case where an area element is parsed but never hit-tested. This could
45345         also have been done by changing the Path class's null case to be more efficient,
45346         but this seems fine.
45347
45348         * html/HTMLViewSourceDocument.cpp:
45349         (WebCore::HTMLViewSourceDocument::createContainingTable): Use addAttribute instead
45350         of insertAttribute.
45351         (WebCore::HTMLViewSourceDocument::addSpanWithClassName): Ditto.
45352         (WebCore::HTMLViewSourceDocument::addLine): Ditto.
45353         (WebCore::HTMLViewSourceDocument::addLink): Ditto.
45354
45355         * loader/FrameLoader.cpp:
45356         (WebCore::FrameLoader::gotoAnchor): Use cssTarget under its new name instead
45357         of its old name getCSSTarget.
45358
45359         * platform/graphics/GlyphWidthMap.cpp:
45360         (WebCore::GlyphWidthMap::locatePageSlowCase): Refactored from locatePage.
45361
45362         * platform/graphics/GlyphWidthMap.h: Made most of this class inline.
45363         Changed m_pages to use OwnPtr.
45364
45365         * platform/text/PlatformString.h: Remove include no longer needed since
45366         StringImpl.h includes it.
45367
45368         * platform/text/StringImpl.cpp:
45369         (WebCore::StringImpl::createStrippingNullCharactersSlowCase): Refactored
45370         from createStrippingNullCharacters.
45371         * platform/text/StringImpl.h: Moved the definition of
45372         createStrippingNullCharacters here and made it inline.
45373
45374         * rendering/RenderObject.cpp:
45375         (WebCore::RenderObject::firstLineStyleSlowCase): Refactored from
45376         firstLineStyle.
45377
45378         * rendering/RenderObject.h: Moved the definition of the firstLineStyle
45379         function here and made it inline. Moved the definition of the
45380         documentBeingDestroyed function here and made it inline.
45381
45382         * svg/SVGSVGElement.cpp:
45383         (WebCore::SVGSVGElement::getCTM): Use getAttributeItem instead of
45384         getNamedItem here since it accomplishes the same thing but is more efficient.
45385         (WebCore::SVGSVGElement::getScreenCTM): Ditto.
45386         * svg/SVGStyledElement.cpp:
45387         (WebCore::SVGStyledElement::getPresentationAttribute): Ditto.
45388
45389         * xml/XPathFunctions.cpp:
45390         (WebCore::XPath::FunLang::evaluate): Use getAttributeItem instead of
45391         getNamedItemNS.
45392
45393         * xml/XPathStep.cpp:
45394         (WebCore::XPath::Step::nodesInAxis): Use attributeItem instead of item here.
45395
45396 2009-02-02  Holger Hans Peter Freyther  <zecke@selfish.org>
45397
45398         Reviewed by Darin Adler.
45399
45400         Move Frame::forceLayout, Frame::adjustPageHeight and Frame::forceLayoutWithPageWidthRange to FrameView
45401
45402         https://bugs.webkit.org/show_bug.cgi?id=23428
45403
45404         FrameView::forceLayout could be killed but the comment might
45405         contain a value over the the plain FrameView::layout...
45406
45407         Adjust the WebCore/WebKit consumers of these methods.
45408
45409         * WebCore.base.exp:
45410         * page/Frame.cpp:
45411         (WebCore::Frame::setPrinting):
45412         * page/Frame.h:
45413         * page/FrameView.cpp:
45414         (WebCore::FrameView::forceLayout):
45415         (WebCore::FrameView::forceLayoutWithPageWidthRange):
45416         (WebCore::FrameView::adjustPageHeight):
45417         * page/FrameView.h:
45418         * page/PrintContext.cpp:
45419         (WebCore::PrintContext::computePageRects):
45420
45421 2009-02-01  Dan Bernstein  <mitz@apple.com>
45422
45423         Reviewed by John Sullivan.
45424
45425         - fix <rdar://problem/6546625> REGRESSION (r40432): iframes added to global history at haaretz.co.il
45426
45427         Fixes http/tests/navigation/multiple-back-forward-entries.html
45428
45429         r40432 added a parameter to FrameLoader::scheduleLocationChange() and
45430         failed to update all call sites.
45431
45432         * bindings/js/JSDOMWindowBase.cpp:
45433         (WebCore::createWindow): Pass the lockBackForwardHistory parameter,
45434         giving it the same value as the lockHistory parameter.
45435         (windowProtoFuncOpen): Ditto.
45436         * bindings/js/JSDOMWindowCustom.cpp:
45437         (WebCore::JSDOMWindow::setLocation): Ditto.
45438         * bindings/js/JSDocumentCustom.cpp:
45439         (WebCore::JSDocument::setLocation): Ditto.
45440         * loader/FrameLoader.cpp:
45441         (WebCore::FrameLoader::requestFrame): Ditto.
45442
45443 2009-01-31  Dan Bernstein  <mitz@apple.com>
45444
45445         Reviewed by Oliver Hunt.
45446
45447         - fix <rdar://problem/6546549> Eliminate some RenderText::width() overhead from findNextLineBreak()
45448
45449         On the PLT, this results in 0.36x the number of virtual function calls
45450         to RenderText::width() and 0.69x the number of calls to
45451         Font::isFixedPitch(), but makes 1.0004x the number of calls to
45452         Font::width().
45453
45454         * rendering/RenderText.cpp:
45455         (WebCore::RenderText::width): Replaced bounds checks on 'from' and 'len'
45456         with an assertion.
45457         * rendering/bidi.cpp:
45458         (WebCore::textWidth): Added this inlined helper function which calls
45459         Font::width() directly in the non-fixed-pitch, non-full-range case, and
45460         otherwise calls RenderText::width().
45461         (WebCore::RenderBlock::findNextLineBreak): Cache whether the font has
45462         fixed pitch (in which case RenderText::width() will be called in order
45463         to take advantage of the widthFromCache() optimization for fixed-pitch
45464         fonts). Replaced all calls to RenderText::width() with calls to the
45465         textWidth() helper function.
45466
45467 2009-01-31  David Hyatt  <hyatt@apple.com>
45468
45469         Inline all of the setNeedsLayout method and its associated functions.  Also inline setChildNeedsLayout
45470         and setNeedsPositionedMovementLayout.
45471
45472         Reviewed by Dan Bernstein
45473
45474         * rendering/RenderObject.cpp:
45475         (WebCore::RenderObject::setLayerNeedsFullRepaint):
45476         * rendering/RenderObject.h:
45477         (WebCore::RenderObject::setNeedsLayout):
45478         (WebCore::RenderObject::setChildNeedsLayout):
45479         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
45480         (WebCore::objectIsRelayoutBoundary):
45481         (WebCore::RenderObject::markContainingBlocksForLayout):
45482
45483 2009-01-31  Darin Adler  <darin@apple.com>
45484
45485         Fix Mac build.
45486
45487         * loader/FrameLoader.cpp: Moved FrameLoaderClient::hasHTMLView in here.
45488         We need it to not be an inline. Sadly, FrameLoaderClient.cpp was prematurely
45489         deleted and I don't want to bring it back just to fix the build.
45490
45491         * loader/FrameLoaderClient.h: Rearrange virtual functions and corrected
45492         a possibly-confusing comment.
45493
45494 2009-01-31  Adam Treat  <adam.treat@torchmobile.com>
45495
45496         Reviewed by David Hyatt.
45497
45498         https://bugs.webkit.org/show_bug.cgi?id=23664
45499         Remove unused dead code from RenderTable class.  The dead code includes
45500         two enums and the associated member variables as well as one getter function.
45501
45502         * rendering/RenderTable.cpp:
45503         (WebCore::RenderTable::RenderTable):
45504         * rendering/RenderTable.h:
45505
45506 2009-01-31  David Hyatt  <hyatt@apple.com>
45507
45508         More removal of code from RenderContainer.  Move removeLeftoverAnonymousBlock down into RenderBlock.
45509         Move destroyLeftoverChildren into the RenderObjectChildList.  Convert all containers to use the
45510         RenderObjectChildList.
45511
45512         Reviewed by Sam Weinig
45513
45514         * WebCore.xcodeproj/project.pbxproj:
45515         * rendering/RenderBlock.cpp:
45516         (WebCore::RenderBlock::destroy):
45517         (WebCore::RenderBlock::addChild):
45518         (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
45519         (WebCore::RenderBlock::layoutPositionedObjects):
45520         (WebCore::RenderBlock::childBecameNonInline):
45521         * rendering/RenderBlock.h:
45522         * rendering/RenderBox.cpp:
45523         (WebCore::RenderBox::layout):
45524         * rendering/RenderBox.h:
45525         (WebCore::RenderBox::firstChildBox):
45526         (WebCore::RenderBox::lastChildBox):
45527         * rendering/RenderContainer.cpp:
45528         (WebCore::RenderContainer::addChild):
45529         (WebCore::RenderContainer::removeChildNode):
45530         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
45531         (WebCore::RenderContainer::appendChildNode):
45532         (WebCore::RenderContainer::insertChildNode):
45533         (WebCore::RenderContainer::positionForCoordinates):
45534         (WebCore::RenderContainer::addLineBoxRects):
45535         (WebCore::RenderContainer::collectAbsoluteLineBoxQuads):
45536         * rendering/RenderContainer.h:
45537         (WebCore::RenderContainer::virtualChildren):
45538         (WebCore::RenderContainer::children):
45539         * rendering/RenderInline.cpp:
45540         (WebCore::RenderInline::destroy):
45541         * rendering/RenderInline.h:
45542         (WebCore::RenderInline::layout):
45543         * rendering/RenderMedia.cpp:
45544         (WebCore::RenderMedia::destroy):
45545         (WebCore::RenderMedia::children):
45546         * rendering/RenderMedia.h:
45547         (WebCore::RenderMedia::virtualChildren):
45548         * rendering/RenderObject.cpp:
45549         (WebCore::RenderObject::destroy):
45550         (WebCore::RenderObject::layout):
45551         * rendering/RenderObject.h:
45552         (WebCore::RenderObject::firstChild):
45553         (WebCore::RenderObject::lastChild):
45554         (WebCore::RenderObject::virtualChildren):
45555         (WebCore::RenderObject::canHaveChildren):
45556         * rendering/RenderObjectChildList.cpp: Added.
45557         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
45558         * rendering/RenderObjectChildList.h:
45559         * rendering/RenderReplaced.h:
45560         (WebCore::RenderReplaced::canHaveChildren):
45561         * rendering/RenderSVGContainer.cpp:
45562         (WebCore::RenderSVGContainer::RenderSVGContainer):
45563         (WebCore::RenderSVGContainer::destroy):
45564         (WebCore::RenderSVGContainer::removeChildNode):
45565         (WebCore::RenderSVGContainer::appendChildNode):
45566         (WebCore::RenderSVGContainer::insertChildNode):
45567         * rendering/RenderSVGContainer.h:
45568         (WebCore::RenderSVGContainer::virtualChildren):
45569         (WebCore::RenderSVGContainer::children):
45570
45571 2009-01-31  David Hyatt  <hyatt@apple.com>
45572
45573         Fix for https://bugs.webkit.org/show_bug.cgi?id=11363
45574
45575         Remove the hacks in table code around the DeleteButtonController and fix tables so that positioned children don't get wrapped in anonymous objects.
45576         With the removal of a non-positioned DeleteButtonController renderer, table layout can be tightened up to only lay out table sections.  Table section
45577         layout is tightened up to ignore non-table rows.  When a table has multiple captions, only the real one will do a layout now.  The other ones will
45578         be properly ignored.
45579
45580         Reviewed by Oliver Hunt
45581
45582         * editing/DeleteButtonController.cpp:
45583         (WebCore::DeleteButtonController::createDeletionUI):
45584         * rendering/RenderTable.cpp:
45585         (WebCore::RenderTable::addChild):
45586         (WebCore::RenderTable::layout):
45587         * rendering/RenderTableSection.cpp:
45588         (WebCore::RenderTableSection::layout):
45589         * rendering/RenderTableSection.h:
45590
45591 2009-01-31  Adam Treat  <adam.treat@torchmobile.com>
45592
45593         Reviewed by Darin Adler.
45594
45595         https://bugs.webkit.org/show_bug.cgi?id=23663
45596         Add a void toRenderBox() method which catches unnecessary casts at compile
45597         time and also fix the four cases where this was happening.
45598
45599         * rendering/RenderBlock.cpp:
45600         (WebCore::RenderBlock::determineHorizontalPosition):
45601         * rendering/RenderBox.h:
45602         * rendering/RenderFlexibleBox.cpp:
45603         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
45604         * rendering/RenderInline.cpp:
45605         (WebCore::RenderInline::updateHitTestResult):
45606         * rendering/RenderLayer.cpp:
45607         (WebCore::RenderLayer::updateLayerPosition):
45608
45609 2009-01-30  Adam Barth  <abarth@webkit.org>
45610
45611         Reviewed by Sam Weinig.
45612
45613         Add a pref to disable web security.
45614
45615         * WebCore.base.exp:
45616         * dom/Document.cpp:
45617         (WebCore::Document::initSecurityContext):
45618         * page/SecurityOrigin.cpp:
45619         (WebCore::SecurityOrigin::SecurityOrigin):
45620         (WebCore::SecurityOrigin::canAccess):
45621         (WebCore::SecurityOrigin::canRequest):
45622         (WebCore::SecurityOrigin::grantUniversalAccess):
45623         * page/SecurityOrigin.h:
45624         * page/Settings.cpp:
45625         (WebCore::Settings::Settings):
45626         (WebCore::Settings::setWebSecurityEnabled):
45627         * page/Settings.h:
45628         (WebCore::Settings::isWebSecurityEnabled):
45629
45630 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
45631
45632         Build fix.
45633
45634         Move the inline virtual destructor after a non-inline virtual
45635         function so that the symbol for the vtable is not marked as a
45636         weakly exported symbol.
45637
45638         This trick was previously used at revision 36122 in JSObject.h
45639
45640         * loader/FrameLoaderClient.h:
45641         (WebCore::FrameLoaderClient::~FrameLoaderClient):
45642
45643 2009-01-30  Oliver Hunt  <oliver@apple.com>
45644
45645         Reviewed by Stephanie Lewis
45646
45647         Inline SimpleFontData::widthForGlyph for a minor page load improvement.
45648
45649         * platform/graphics/SimpleFontData.cpp:
45650         * platform/graphics/SimpleFontData.h:
45651         (WebCore::SimpleFontData::widthForGlyph):
45652
45653 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
45654
45655         Build fix for WX and maybe even Windows.
45656
45657         * WebCore.vcproj/WebCore.vcproj:
45658         * WebCoreSources.bkl:
45659
45660 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
45661
45662         Reviewed by Darin Adler.
45663
45664         Move Frame::sendResizeEvent and Frame::sendScrollEvent to EventHandler
45665
45666         Carry out the move and catch up in two call sites.
45667
45668         * WebCore.base.exp:
45669         * page/EventHandler.cpp:
45670         (WebCore::EventHandler::sendResizeEvent):
45671         (WebCore::EventHandler::sendScrollEvent):
45672         * page/EventHandler.h:
45673         * page/Frame.cpp:
45674         * page/Frame.h:
45675         * page/FrameView.cpp:
45676         (WebCore::FrameView::performPostLayoutTasks):
45677         (WebCore::FrameView::valueChanged):
45678
45679 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
45680
45681         Reviewed by Darin Adler.
45682
45683         Move Frame::isFrameSet to Document::isFrameSet
45684
45685         Changed the FrameLoader callsite. I assume that as this
45686         point m_frame.document() might return a null pointer. Change
45687         the condition to either not having a document or not having a
45688         frame set. This should be semantically equivalent to the
45689         old code.
45690
45691         Make Document::body() const to be able to call it from within
45692         Document::isFrameSet. Leave the isHTMLDocument() check as this
45693         is a stronger condition than simply having a HTMLElement in the
45694         DOM.
45695
45696         * WebCore.base.exp:
45697         * dom/Document.cpp:
45698         (WebCore::Document::isFrameSet):
45699         (WebCore::Document::body):
45700         * dom/Document.h:
45701         * loader/FrameLoader.cpp:
45702         (WebCore::FrameLoader::shouldScrollToAnchor):
45703         * loader/archive/cf/LegacyWebArchive.cpp:
45704         (WebCore::LegacyWebArchive::createFromSelection):
45705         * page/Frame.cpp:
45706         * page/Frame.h:
45707
45708 2009-01-30  Aurelian Maga  <aurelianmaga@yahoo.com>
45709
45710         Reviewed by Holger Freyther.
45711
45712         [GTK] Logic fixes and build fixes
45713
45714         https://bugs.webkit.org/show_bug.cgi?id=22022
45715
45716         Catch up with the internal GeoLocation API and fix the logic of
45717         the previous version.
45718
45719         * platform/gtk/GeolocationServiceGtk.cpp:
45720         (WebCore::GeolocationServiceGtk::startUpdating):
45721         (WebCore::GeolocationServiceGtk::updateLocationInformation):
45722         (WebCore::GeolocationServiceGtk::position_changed):
45723
45724 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
45725
45726         Reviewed by Nikolas Zimmermann.
45727
45728         [GTK] Implement GeolocationService using the Geoclue library
45729
45730         https://bugs.webkit.org/show_bug.cgi?id=22022
45731
45732         Untested implementation of the GeolocationService using the geoclue
45733         library. Velocity handling is completely missing and the accuracy
45734         handling might be wrong.
45735
45736         * platform/gtk/GeolocationServiceGtk.cpp:
45737         (WTF::GeoclueAccuracy):
45738         (WebCore::GeolocationServiceGtk::GeolocationServiceGtk):
45739         (WebCore::GeolocationServiceGtk::~GeolocationServiceGtk):
45740         (WebCore::GeolocationServiceGtk::startUpdating):
45741         (WebCore::GeolocationServiceGtk::stopUpdating):
45742         (WebCore::GeolocationServiceGtk::suspend):
45743         (WebCore::GeolocationServiceGtk::resume):
45744         (WebCore::GeolocationServiceGtk::lastPosition):
45745         (WebCore::GeolocationServiceGtk::lastError):
45746         (WebCore::GeolocationServiceGtk::updateLocationInformation):
45747         (WebCore::GeolocationServiceGtk::updatePosition):
45748         (WebCore::GeolocationServiceGtk::position_changed):
45749         (WebCore::GeolocationServiceGtk::setError):
45750         * platform/gtk/GeolocationServiceGtk.h:
45751
45752 2009-01-30  Mark Rowe  <mrowe@apple.com>
45753
45754         Build fix.  Declare preferredSize as static.
45755
45756         * platform/text/cf/StringImplCF.cpp:
45757         (WebCore::StringWrapperCFAllocator::preferredSize):
45758
45759 2009-01-30  Darin Adler  <darin@apple.com>
45760
45761         Reviewed by Mark Rowe.
45762
45763         Bug 23622: create CFString and NSString objects from WebCore::String without copying the characters
45764         https://bugs.webkit.org/show_bug.cgi?id=23622
45765
45766         * platform/text/cf/StringImplCF.cpp:
45767         (WebCore::StringWrapperCFAllocator::allocator): Added. Returns the allocator.
45768         (WebCore::StringWrapperCFAllocator::retain): Added. Callback for allocator.
45769         (WebCore::StringWrapperCFAllocator::release): Ditto.
45770         (WebCore::StringWrapperCFAllocator::copyDescription): Ditto.
45771         (WebCore::StringWrapperCFAllocator::allocate): Ditto.
45772         (WebCore::StringWrapperCFAllocator::reallocate): Ditto.
45773         (WebCore::StringWrapperCFAllocator::deallocate): Ditto.
45774         (WebCore::StringWrapperCFAllocator::preferredSize): Ditto.
45775         (WebCore::StringWrapperCFAllocator::create): Added. Creates the allocator, but
45776         returns 0 if garbage collection is enabled.
45777         (WebCore::StringImpl::createCFString): Use StringWrapperCFAllocator if possible.
45778
45779         * platform/text/mac/StringImplMac.mm:
45780         (WebCore::StringImpl::operator NSString *): Use CFString and toll-free bridging,
45781         rather than using NSString directly. This lets NSString benefit from the above.
45782
45783 2009-01-30  Darin Adler  <darin@apple.com>
45784
45785         * page/Frame.cpp:
45786         (WebCore::Frame::createView): Fix debug build by removing get() from assert.
45787
45788 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
45789
45790         Reviewed by Simon Hausmann.
45791
45792         https://bugs.webkit.org/show_bug.cgi?id=22056
45793
45794         Kill FrameLoaderClient.cpp, move the code over to Frame::createView
45795
45796         FrameLoaderClient is supposed to be an interface, move the
45797         to be shared code to Frame which is a controller and is
45798         allowed to create a FrameView.
45799
45800         * GNUmakefile.am:
45801         * WebCore.base.exp:
45802         * WebCore.pro:
45803         * WebCore.xcodeproj/project.pbxproj:
45804         * loader/FrameLoaderClient.cpp: Removed.
45805         * loader/FrameLoaderClient.h:
45806         (WebCore::FrameLoaderClient::~FrameLoaderClient):
45807         * page/Frame.cpp:
45808         (WebCore::Frame::createView):
45809         * page/Frame.h:
45810
45811 2009-01-30  Simon Fraser  <simon.fraser@apple.com>
45812
45813         Reviewed by Dave Hyatt
45814
45815         https://bugs.webkit.org/show_bug.cgi?id=23357
45816
45817         New files to support accelerated compositing at the RenderLayer
45818         level.
45819
45820         * WebCore.xcodeproj/project.pbxproj:
45821         New files added to project, and run through the sort script.
45822
45823         * rendering/RenderLayerBacking.cpp: Added.
45824         * rendering/RenderLayerBacking.h: Added.
45825         New object to store compositing-related data for a single
45826         RenderLayer.
45827
45828         * rendering/RenderLayerCompositor.cpp: Added.
45829         * rendering/RenderLayerCompositor.h: Added.
45830         Per-RenderView controller object for compositing hierarchy
45831         maintenance.
45832
45833 2009-01-30  Simon Fraser  <simon.fraser@apple.com>
45834
45835         Reviewed by Dave Hyatt
45836
45837         https://bugs.webkit.org/show_bug.cgi?id=23356
45838
45839         Add new files related to accelerated compositing:
45840
45841         * WebCore.xcodeproj/project.pbxproj:
45842         Add the files to the project. Also add ColorCG.cpp, for the
45843         Color(CGColorRef) constructor.
45844
45845         * platform/graphics/GraphicsLayer.cpp: Added.
45846         * platform/graphics/GraphicsLayer.h: Added.
45847         GraphicsLayer is a platform abstraction for a hardware-backed
45848         layer.
45849
45850         * platform/graphics/GraphicsLayerClient.h: Added.
45851         Client of GraphicsLayer, allowing GraphicsLayer to call out
45852         to WebCore code.
45853
45854         * platform/graphics/mac/GraphicsLayerCA.h: Added.
45855         * platform/graphics/mac/GraphicsLayerCA.mm: Added.
45856         Mac Core Animation implementation of GraphicsLayer.
45857
45858         * platform/graphics/mac/WebLayer.h: Added.
45859         * platform/graphics/mac/WebLayer.mm: Added.
45860         * platform/graphics/mac/WebTiledLayer.h: Added.
45861         * platform/graphics/mac/WebTiledLayer.mm: Added.
45862         Subclasses of CALayer and CATiledLayer -- helpers for the
45863         GraphicsLayerCA implementation.
45864
45865 2009-01-30  Geoffrey Garen  <ggaren@apple.com>
45866
45867         Reviewed by Sam Weinig.
45868
45869         Split "lockHistory" into "lockHistory" and "lockBackForwardList" in
45870         preparation for setting them differently during a redirect.
45871
45872         * WebCore.base.exp:
45873         * bindings/js/JSHTMLFormElementCustom.cpp:
45874         (WebCore::JSHTMLFormElement::submit):
45875         * bindings/js/JSLocationCustom.cpp:
45876         (WebCore::navigateIfAllowed):
45877         (WebCore::JSLocation::setHref):
45878         (WebCore::JSLocation::setProtocol):
45879         (WebCore::JSLocation::setHost):
45880         (WebCore::JSLocation::setHostname):
45881         (WebCore::JSLocation::setPort):
45882         (WebCore::JSLocation::setPathname):
45883         (WebCore::JSLocation::setSearch):
45884         (WebCore::JSLocation::setHash):
45885         (WebCore::JSLocation::replace):
45886         (WebCore::JSLocation::assign):
45887         * html/HTMLAnchorElement.cpp:
45888         (WebCore::HTMLAnchorElement::defaultEventHandler):
45889         * html/HTMLFormElement.cpp:
45890         (WebCore::HTMLFormElement::submit):
45891         * html/HTMLFormElement.h:
45892         * loader/FrameLoader.cpp:
45893         (WebCore::FormSubmission::FormSubmission):
45894         (WebCore::ScheduledRedirection::ScheduledRedirection):
45895         (WebCore::isBackForwardLoadType):
45896         (WebCore::FrameLoader::createWindow):
45897         (WebCore::FrameLoader::changeLocation):
45898         (WebCore::FrameLoader::urlSelected):
45899         (WebCore::FrameLoader::submitFormAgain):
45900         (WebCore::FrameLoader::submitForm):
45901         (WebCore::FrameLoader::restoreDocumentState):
45902         (WebCore::FrameLoader::scheduleHTTPRedirection):
45903         (WebCore::FrameLoader::scheduleLocationChange):
45904         (WebCore::FrameLoader::scheduleRefresh):
45905         (WebCore::FrameLoader::redirectionTimerFired):
45906         (WebCore::FrameLoader::loadURLIntoChildFrame):
45907         (WebCore::FrameLoader::startRedirectionTimer):
45908         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues):
45909         (WebCore::FrameLoader::transitionToCommitted):
45910         (WebCore::FrameLoader::clientRedirected):
45911         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
45912         (WebCore::FrameLoader::loadItem):
45913         * loader/FrameLoader.h:
45914         * loader/FrameLoaderTypes.h:
45915         (WebCore::):
45916         * page/ContextMenuController.cpp:
45917         (WebCore::ContextMenuController::contextMenuItemSelected):
45918         * svg/SVGAElement.cpp:
45919         (WebCore::SVGAElement::defaultEventHandler):
45920
45921 2009-01-30  Sam Weinig  <sam@webkit.org>
45922
45923         Reviewed by Dan Bernstein.
45924
45925         Fix for <rdar://problem/6545095>
45926         ASSERTION FAILED: RenderBlock.h:519: !o || o->isRenderBlock()
45927
45928         Test: fast/block/float/crash-replaced-display-block.html
45929
45930         * rendering/RenderBlock.cpp:
45931         (WebCore::RenderBlock::layoutBlockChildren): Move RenderBlock only code into
45932         isRenderBlock if-statement.
45933
45934 2009-01-30  Chris Fleizach  <cfleizach@apple.com>
45935
45936         Reviewed by Oliver Hunt.
45937
45938         Bug 23656: AX hierarchy for iFrames is incorrect
45939         https://bugs.webkit.org/show_bug.cgi?id=23656
45940
45941         The AX hierarchy when an iFrame was present was incorrect. A different scroll area was
45942         returned when going down compared to when going up.
45943
45944         * page/mac/AccessibilityObjectWrapper.mm:
45945         (convertToNSArray):
45946
45947 2009-01-30  Adam Treat  <adam.treat@torchmobile.com>
45948
45949         Fix Qt build to include new class IdentifierRep introduced in revision 40412.
45950
45951         * WebCore.pro:
45952
45953 2009-01-30  Anders Carlsson  <andersca@apple.com>
45954
45955         Reviewed by Sam Weinig.
45956
45957         Make IdentifierRep.h a private header, and add symbols needed by WebKit to WebCore.LP64.exp.
45958
45959         * WebCore.LP64.exp:
45960         * WebCore.xcodeproj/project.pbxproj:
45961
45962 2009-01-30  Sam Weinig  <sam@webkit.org>
45963
45964         Commit files I forgot to in the previous commit.
45965
45966         * page/AccessibilityRenderObject.cpp:
45967         (WebCore::AccessibilityRenderObject::layoutCount):
45968         * page/Frame.cpp:
45969         (WebCore::Frame::contentRenderer):
45970         (WebCore::Frame::forceLayoutWithPageWidthRange):
45971         * page/FrameView.cpp:
45972         (WebCore::FrameView::layout):
45973         * rendering/RenderBlock.cpp:
45974         (WebCore::RenderBlock::nodeAtPoint):
45975         * rendering/RenderObject.cpp:
45976         (WebCore::RenderObject::repaintUsingContainer):
45977         (WebCore::RenderObject::repaint):
45978         (WebCore::RenderObject::repaintRectangle):
45979         (WebCore::RenderObject::view):
45980         (WebCore::RenderObject::scheduleRelayout):
45981         (WebCore::RenderObject::maximalOutlineSize):
45982         * rendering/SVGRenderSupport.cpp:
45983         (WebCore::clampImageBufferSizeToViewport):
45984         * svg/SVGLength.cpp:
45985         (WebCore::SVGLength::PercentageOfViewport):
45986
45987 2009-01-30  Geoffrey Garen  <ggaren@apple.com>
45988
45989         Reviewed by Darin Adler.
45990
45991         More scaffolding for redirect tracking. No behavior change yet.
45992
45993         * bindings/js/JSHTMLFormElementCustom.cpp:
45994         (WebCore::JSHTMLFormElement::submit): Added scaffolding necessary for
45995         redirect checking in a form submission through JS. (Currently, we
45996         just specify "no redirect.")
45997
45998         * bindings/js/ScriptController.h:
45999         * bindings/js/ScriptController.cpp:
46000         (WebCore::ScriptController::processingUserGesture):
46001         (WebCore::ScriptController::processingUserGestureEvent):
46002         (WebCore::ScriptController::isJavaScriptAnchorNavigation): Refactored
46003         user gesture check to make it more clear.
46004
46005         (WebCore::ScriptController::pageIsProcessingUserGesture): Added a helper
46006         for checking if there's a user gesture in any frame on the page (a more
46007         relaxed rule than our popup blocking rule, which requires the user
46008         gesture to occur in the frame that's executing JavaScript.)
46009
46010         * html/HTMLFormElement.h:
46011         * html/HTMLFormElement.cpp:
46012         (WebCore::HTMLFormElement::submit): Added scaffolding necessary for
46013         redirect checking in a form submission through the DOM. (Currently, we
46014         just specify "no redirect.")
46015
46016         * html/HTMLFormElement.idl: Made submit custom so it can participate
46017         in redirect checking.
46018
46019         * loader/FrameLoader.h:
46020         * loader/FrameLoader.cpp:
46021         (WebCore::FormSubmission::FormSubmission): Clarified some names, and
46022         added a "lockHistory" parameter to form submissions, to match other
46023         navigations.
46024
46025         (WebCore::FrameLoader::submitFormAgain):
46026         (WebCore::FrameLoader::submitForm): Use the lockHistory parameter.
46027
46028         (WebCore::FrameLoader::userGestureHint): Refactored this function for
46029         clarity, and added a FIXME for a change I was too scared to make myself.
46030         (Really, we should just get rid of this function.)
46031
46032         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues): Refactored
46033         to pass a FrameLoadType to form posts, too, so they can participate in
46034         redirect tracking.
46035
46036         (WebCore::FrameLoader::loadPostRequest):
46037         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
46038         (WebCore::FrameLoader::loadItem): Use the lockHistory parameter.
46039
46040 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
46041
46042         Reviewed by Mark Rowe.
46043
46044         [Gtk+] Use AccessibilityObject::stringValue for the AtkObject name
46045
46046         https://bugs.webkit.org/show_bug.cgi?id=21546
46047
46048         The API documentation at http://library.gnome.org/devel/atk/stable/AtkText.html
46049         states that: "AtkObjects whose text content is simple, unattributed, and very
46050         brief may expose that content via atk_object_get_name instead"
46051
46052         As we are currently not able to always provide a AtkTextInterface
46053         implementation this will make the whole content available to accerciser,
46054         and other tools.
46055
46056         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
46057
46058 2009-01-30  Holger Hans Peter Freyther  <zecke@selfish.org>
46059
46060         Unreviewed build fix.
46061
46062         Include string.h for strdup.
46063
46064         * bridge/IdentifierRep.h:
46065
46066 2009-01-30  Sam Weinig  <sam@webkit.org>
46067
46068         Reviewed by Dan Bernstein.
46069
46070         Add toRenderView methods for casting RenderObjects to RenderViews.  The methods will assert if the object
46071         is not a RenderView.
46072
46073         * dom/Document.cpp:
46074         (WebCore::Document::renderView):
46075         * editing/SelectionController.cpp:
46076         (WebCore::SelectionController::nodeWillBeRemoved):
46077         (WebCore::SelectionController::recomputeCaretRect):
46078         (WebCore::SelectionController::invalidateCaretRect):
46079         (WebCore::SelectionController::focusedOrActiveStateChanged):
46080         * editing/mac/SelectionControllerMac.mm:
46081         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
46082         * rendering/RenderBox.cpp:
46083         (WebCore::RenderBox::styleDidChange):
46084         (WebCore::RenderBox::repaintLayerRectsForImage):
46085         (WebCore::RenderBox::availableHeightUsing):
46086         * rendering/RenderView.h:
46087         (WebCore::toRenderView):
46088
46089 2009-01-30  Simon Fraser  <simon.fraser@apple.com>
46090
46091         Reviewed by Dave Hyatt
46092
46093         https://bugs.webkit.org/show_bug.cgi?id=23360
46094
46095         Really use the container-relative repaint rect methods
46096         for repaint during layout
46097
46098         * rendering/RenderObject.h:
46099         (WebCore::RenderObject::LayoutRepainter::LayoutRepainter):
46100
46101 2009-01-30  Anders Carlsson  <andersca@apple.com>
46102
46103         Reviewed by Darin Adler.
46104
46105         Get rid of PrivateIdentifier and use IdentifierRep instead.
46106
46107         * bridge/NP_jsobject.cpp:
46108         (_NPN_Invoke):
46109         (_NPN_GetProperty):
46110         (_NPN_SetProperty):
46111         (_NPN_RemoveProperty):
46112         (_NPN_HasProperty):
46113         (_NPN_HasMethod):
46114         * bridge/c/c_instance.cpp:
46115         (JSC::Bindings::CInstance::getPropertyNames):
46116         * bridge/c/c_utility.cpp:
46117         (JSC::Bindings::convertNPStringToUTF16):
46118         * bridge/c/c_utility.h:
46119         * bridge/npruntime.cpp:
46120         (_NPN_GetStringIdentifier):
46121         (_NPN_GetStringIdentifiers):
46122         (_NPN_GetIntIdentifier):
46123         (_NPN_IdentifierIsString):
46124         (_NPN_UTF8FromIdentifier):
46125         (_NPN_IntFromIdentifier):
46126
46127 2009-01-30  Anders Carlsson  <andersca@apple.com>
46128
46129         Reviewed by Sam Weinig and Darin Adler.
46130
46131         Make IdentifierRep a real class, add necessary class methods.
46132
46133         * bridge/IdentifierRep.cpp:
46134         (WebCore::identifierSet):
46135         Returns a set of all identifiers.
46136
46137         (WebCore::IdentifierRep::isValid):
46138         Return whether an identifier is valid, meaning that it's present in the
46139         set of identifiers.
46140
46141         * bridge/IdentifierRep.h:
46142         (WebCore::IdentifierRep::isString):
46143         (WebCore::IdentifierRep::number):
46144         (WebCore::IdentifierRep::string):
46145         (WebCore::IdentifierRep::IdentifierRep):
46146         (WebCore::IdentifierRep::):
46147
46148 2009-01-30  Anders Carlsson  <andersca@apple.com>
46149
46150         Reviewed by Sam Weinig.
46151
46152         Add IdentifierRep which will be used by both plug-in implementations.
46153
46154         * GNUmakefile.am:
46155         * WebCore.vcproj/WebCore.vcproj:
46156         * WebCore.xcodeproj/project.pbxproj:
46157         * bridge/IdentifierRep.cpp: Added.
46158         (WebCore::IdentifierRep::IdentifierRep):
46159         (WebCore::IdentifierRep::):
46160         (WebCore::intIdentifierMap):
46161         (WebCore::identifierRep):
46162         (WebCore::stringIdentifierMap):
46163         * bridge/IdentifierRep.h: Added.
46164         * bridge/c/c_utility.h:
46165         * platform/text/PlatformString.h:
46166         * platform/text/String.cpp:
46167         (WebCore::String::fromUTF8WithLatin1Fallback):
46168
46169 2009-01-30  Sam Weinig  <sam@webkit.org>
46170
46171         Reviewed by David Hyatt.
46172
46173         Add toRenderInline methods for casting RenderObjects to RenderInlines.  The methods will assert if the object
46174         is not a RenderInline.
46175
46176         * rendering/InlineFlowBox.cpp:
46177         (WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
46178         (WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
46179         (WebCore::InlineFlowBox::attachLineBoxToRenderObject):
46180         (WebCore::InlineFlowBox::rendererLineBoxes):
46181         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
46182         (WebCore::InlineFlowBox::paint):
46183         * rendering/LayoutState.cpp:
46184         (WebCore::LayoutState::LayoutState):
46185         * rendering/RenderBlock.cpp:
46186         (WebCore::RenderBlock::paintObject):
46187         (WebCore::RenderBlock::addFocusRingRects):
46188         * rendering/RenderBox.cpp:
46189         (WebCore::RenderBox::offsetFromContainer):
46190         (WebCore::RenderBox::computeRectForRepaint):
46191         (WebCore::RenderBox::containingBlockWidthForPositioned):
46192         (WebCore::RenderBox::containingBlockHeightForPositioned):
46193         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
46194         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
46195         * rendering/RenderContainer.cpp:
46196         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
46197         * rendering/RenderInline.cpp:
46198         (WebCore::RenderInline::inlineContinuation):
46199         (WebCore::nextContinuation):
46200         (WebCore::RenderInline::splitInlines):
46201         * rendering/RenderInline.h:
46202         (WebCore::toRenderInline):
46203         * rendering/RenderLayer.cpp:
46204         (WebCore::RenderLayer::updateLayerPosition):
46205         (WebCore::RenderLayer::boundingBox):
46206         * rendering/RenderLineBoxList.cpp:
46207         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
46208         * rendering/RenderText.h:
46209         * rendering/RenderTreeAsText.cpp:
46210         (WebCore::operator<<):
46211         * rendering/bidi.cpp:
46212         (WebCore::RenderBlock::createLineBoxes):
46213         (WebCore::RenderBlock::layoutInlineChildren):
46214
46215 2009-01-30  Darin Fisher  <darin@chromium.org>
46216
46217         Reviewed by Eric Seidel.
46218
46219         https://bugs.webkit.org/show_bug.cgi?id=23647
46220         Fix PLATFORM(SKIA)'s ImageSource::clear method to match other ports
46221
46222         * platform/graphics/skia/ImageSourceSkia.cpp:
46223         (WebCore::ImageSource::clear):
46224
46225 2009-01-30  David Hyatt  <hyatt@apple.com>
46226
46227         Add toRenderBlock methods for casting RenderObjects to RenderBlocks.  The methods will assert if the object
46228         is not a RenderBlock.  Also add a toRenderBlock method that takes a RenderBlock but returns void and that
46229         is unimplemented.  This method will catch anyone trying to do a cast when the object is already a RenderBlock.
46230
46231         Making this change caught a bad cast in RenderBlock::layoutBlockChildren, so that is also fixed by this
46232         patch with a containsFloats() check.
46233
46234         Reviewed by Darin Adler
46235
46236         * dom/PositionIterator.cpp:
46237         (WebCore::PositionIterator::isCandidate):
46238         * editing/CompositeEditCommand.cpp:
46239         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
46240         * editing/Editor.cpp:
46241         (WebCore::Editor::hasBidiSelection):
46242         * page/AccessibilityRenderObject.cpp:
46243         (WebCore::AccessibilityRenderObject::anchorElement):
46244         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
46245         * rendering/RenderBlock.cpp:
46246         (WebCore::RenderBlock::styleWillChange):
46247         (WebCore::RenderBlock::removeChild):
46248         (WebCore::RenderBlock::layoutBlock):
46249         (WebCore::RenderBlock::collapseMargins):
46250         (WebCore::RenderBlock::clearFloatsIfNeeded):
46251         (WebCore::RenderBlock::layoutBlockChildren):
46252         (WebCore::RenderBlock::fillBlockSelectionGaps):
46253         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
46254         (WebCore::RenderBlock::firstLineBlock):
46255         (WebCore::getLineAtIndex):
46256         (WebCore::getHeightForLineCount):
46257         (WebCore::RenderBlock::lineCount):
46258         (WebCore::RenderBlock::adjustForBorderFit):
46259         (WebCore::RenderBlock::clearTruncation):
46260         * rendering/RenderBlock.h:
46261         (WebCore::toRenderBlock):
46262         * rendering/RenderBox.cpp:
46263         (WebCore::RenderBox::offsetFromContainer):
46264         (WebCore::RenderBox::computeRectForRepaint):
46265         (WebCore::RenderBox::calcReplacedHeightUsing):
46266         * rendering/RenderFlexibleBox.cpp:
46267         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
46268         (WebCore::RenderFlexibleBox::layoutVerticalBox):
46269         * rendering/RenderInline.cpp:
46270         (WebCore::RenderInline::inlineContinuation):
46271         (WebCore::nextContinuation):
46272         (WebCore::RenderInline::positionForCoordinates):
46273         * rendering/RenderLayer.cpp:
46274         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
46275         * rendering/RenderListItem.cpp:
46276         (WebCore::getParentOfFirstLineBox):
46277         (WebCore::RenderListItem::positionListMarker):
46278         * rendering/RenderObject.cpp:
46279         (WebCore::RenderObject::containingBlock):
46280         (WebCore::RenderObject::computeRectForRepaint):
46281         (WebCore::RenderObject::removeFromObjectLists):
46282         (WebCore::RenderObject::getTextDecorationColors):
46283         * rendering/RenderTable.cpp:
46284         (WebCore::RenderTable::addChild):
46285         (WebCore::RenderTable::recalcSections):
46286         * rendering/RenderTextControl.cpp:
46287         (WebCore::RenderTextControl::styleDidChange):
46288         * rendering/RenderTextControlSingleLine.cpp:
46289         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
46290         * rendering/RootInlineBox.cpp:
46291         (WebCore::RootInlineBox::block):
46292         * rendering/bidi.cpp:
46293         (WebCore::RenderBlock::createLineBoxes):
46294
46295 2009-01-30  Brady Eidson  <beidson@apple.com>
46296
46297         Reviewed by Sam Weinig
46298
46299         - Let CachedFrame handle the suspending/resuming of active DOM objects itself instead of
46300           relying on some outside force.
46301         - Clear the previous history item inside FrameLoader instead of relying on multiple
46302           FrameLoaderClients to do it.
46303
46304         * history/CachedFrame.cpp:
46305         (WebCore::CachedFrame::CachedFrame): Suspend active DOM objects here.
46306         (WebCore::CachedFrame::restore): Resume those DOM objects here.
46307         * history/CachedFrame.h:
46308         (WebCore::CachedFrame::domWindow):
46309
46310         * loader/FrameLoader.cpp:
46311         (WebCore::FrameLoader::commitProvisionalLoad): Let CachedFrame  creation handle the
46312           suspending of active DOM objects.
46313         (WebCore::FrameLoader::open): Let CachedFrame::restore() handle resuming those DOM objects.
46314         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Call frameLoadCompleted() instead
46315           of performing a client call by itself.
46316         (WebCore::FrameLoader::frameLoadCompleted):
46317
46318 2009-01-30  Alexey Proskuryakov  <ap@webkit.org>
46319
46320         Reviewed by Darin Adler.
46321
46322         <rdar://problem/6448823> Application Cache is kept after a private browsing session
46323
46324         * loader/appcache/ApplicationCacheGroup.cpp:
46325         (WebCore::ApplicationCacheGroup::selectCache):
46326         (WebCore::ApplicationCacheGroup::update):
46327         Cache update will not be started if private browsing is enabled. Existing cache version
46328         from disk database will be used.
46329
46330         * loader/appcache/ApplicationCacheGroup.h: Made postListenerTask() static, in order to call
46331         it when refusing to update from selectCache().
46332
46333         * loader/appcache/ApplicationCache.cpp:
46334         (WebCore::ApplicationCache::addDynamicEntry):
46335         (WebCore::ApplicationCache::removeDynamicEntry):
46336         Added reminders about private browsing to unimplemented methods.
46337
46338 2009-01-30  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
46339
46340         Reviewed by Simon Hausmann.
46341
46342         Bug 23580: GNU mode RVCT compilation support
46343         <https://bugs.webkit.org/show_bug.cgi?id=23580>
46344
46345         * html/PreloadScanner.cpp: Use COMPILER(GCC) instead of __GNUC__.
46346
46347 2009-01-30  David Levin  <levin@chromium.org>
46348
46349         Reviewed by Alexey Proskuryakov.
46350
46351         Bug 23616: Various "template helpers" should be consolidated from isolated files in JavaScriptCore.
46352         <https://bugs.webkit.org/show_bug.cgi?id=23616>
46353
46354         Added forwarding header.
46355
46356         * ForwardingHeaders/wtf/TypeTraits.h: Added.
46357
46358 2009-01-30  David Levin  <levin@chromium.org>
46359
46360         Reviewed by Alexey Proskuryakov.
46361
46362         Bug 23599: ResourceError needs to be copyable for use in another thread.
46363         <https://bugs.webkit.org/show_bug.cgi?id=23599>
46364
46365         Add ResourceErrorBase::copy method.  (Not yet used.)
46366
46367         * platform/network/ResourceErrorBase.cpp:
46368         (WebCore::ResourceErrorBase::copy):
46369         * platform/network/ResourceErrorBase.h:
46370
46371 2009-01-29  Stephanie Lewis <slewis@apple.com>
46372
46373         RS by Oliver Hunt.
46374
46375         Update the order files.
46376
46377         * WebCore.order:
46378
46379 2009-01-29  Dmitry Titov  <dimich@chromium.org>
46380
46381         Reviewed by Darin Adler.
46382
46383         https://bugs.webkit.org/show_bug.cgi?id=23488
46384
46385         Make TimerBase thread-aware (for Workers).
46386         Added new class ThreadTimers - it keeps a heap of all timers for a thread (previously kept in a static global).
46387         Pointer to instance of ThreadTimers is stored in GlobalThreadData.
46388         Most static methods of TimerBase went to ThreadTimers.
46389
46390         The TimerBase functionality did not change (it maintains the timer heap which computes the nearest firing).
46391
46392         Added new abstract class SharedTimer, so worker threads can provide their own implementation (will be implemented on WorkerRunLoop).
46393
46394         * GNUmakefile.am:
46395         * WebCore.pro:
46396         * WebCore.scons:
46397         * WebCore.vcproj/WebCore.vcproj:
46398         * WebCore.xcodeproj/project.pbxproj:
46399         * WebCoreSources.bkl:
46400         Added new ThreadTimers.cpp to build files.
46401
46402         * platform/SharedTimer.h:
46403         (WebCore::SharedTimer::~SharedTimer):
46404         (WebCore::MainThreadSharedTimer::setFiredFunction):
46405         (WebCore::MainThreadSharedTimer::setFireTime):
46406         (WebCore::MainThreadSharedTimer::stop):
46407         Added abstract SharedTimer and MainThreadSharedTimer which redirects to the existing port-supplied functions.
46408
46409         * platform/ThreadGlobalData.cpp:
46410         (WebCore::ThreadGlobalData::ThreadGlobalData):
46411         (WebCore::ThreadGlobalData::~ThreadGlobalData):
46412         * platform/ThreadGlobalData.h:
46413         (WebCore::ThreadGlobalData::threadTimers):
46414         Added ThreadTimers to ThreadGlobalData.
46415
46416         * platform/ThreadTimers.cpp: Added.
46417         (WebCore::mainThreadSharedTimer):
46418         Static getter for a MainThreadSharedTimer singleton.
46419
46420         (WebCore::ThreadTimers::ThreadTimers):
46421         (WebCore::ThreadTimers::setSharedTimer):
46422         (WebCore::ThreadTimers::updateSharedTimer):
46423         (WebCore::ThreadTimers::collectFiringTimers):
46424         (WebCore::ThreadTimers::fireTimers):
46425         (WebCore::ThreadTimers::sharedTimerFired):
46426         (WebCore::ThreadTimers::sharedTimerFiredInternal):
46427         (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
46428         ThreadTimers implementation. Most of the code is moved from previous static functions on TimerBase.
46429         Need a new class so each thread may get ts own copy of the timer heap.
46430
46431         * platform/ThreadTimers.h: Added.
46432         (WebCore::ThreadTimers::timerHeap):
46433         (WebCore::ThreadTimers::timersReadyToFire):
46434
46435         * platform/Timer.cpp:
46436         (WebCore::timerHeap):
46437         (WebCore::timersReadyToFire):
46438         (WebCore::TimerHeapElement::TimerHeapElement):
46439         (WebCore::TimerHeapElement::checkConsistency):
46440         (WebCore::TimerHeapElement::operator=):
46441         (WebCore::TimerHeapIterator::checkConsistency):
46442         (WebCore::TimerBase::TimerBase):
46443         (WebCore::TimerBase::~TimerBase):
46444         (WebCore::TimerBase::isActive):
46445         (WebCore::TimerBase::checkHeapIndex):
46446         (WebCore::TimerBase::heapDelete):
46447         (WebCore::TimerBase::heapDeleteMin):
46448         (WebCore::TimerBase::heapInsert):
46449         (WebCore::TimerBase::heapPopMin):
46450         (WebCore::TimerBase::setNextFireTime):
46451         (WebCore::TimerBase::fireTimersInNestedEventLoop):
46452         Now instead of static timer heap these use accessor functions that pull thread-specific heap instance.
46453
46454         * platform/Timer.h:
46455         static methods moved to ThreadTimers.
46456
46457 2009-01-29  David Hyatt  <hyatt@apple.com>
46458
46459         Beginning of work to eliminate RenderContainer and make containership "pluggable" into any spot in the render tree.  The first step is to create
46460         the new object that will handle children: RenderObjectChildList and move RenderContainer's member variables into it.  Subsequent patches will begin
46461         moving RenderContainer's functionality into RenderObjectChildList.
46462
46463         Reviewed by Eric Seidel
46464
46465         * WebCore.xcodeproj/project.pbxproj:
46466         * rendering/RenderContainer.cpp:
46467         (WebCore::RenderContainer::RenderContainer):
46468         (WebCore::RenderContainer::destroyLeftoverChildren):
46469         (WebCore::RenderContainer::addChild):
46470         (WebCore::RenderContainer::removeChildNode):
46471         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
46472         (WebCore::RenderContainer::appendChildNode):
46473         (WebCore::RenderContainer::insertChildNode):
46474         (WebCore::RenderContainer::layout):
46475         (WebCore::RenderContainer::removeLeftoverAnonymousBlock):
46476         (WebCore::RenderContainer::positionForCoordinates):
46477         (WebCore::RenderContainer::addLineBoxRects):
46478         (WebCore::RenderContainer::collectAbsoluteLineBoxQuads):
46479         * rendering/RenderContainer.h:
46480         (WebCore::RenderContainer::firstChild):
46481         (WebCore::RenderContainer::lastChild):
46482         (WebCore::RenderContainer::firstChildBox):
46483         (WebCore::RenderContainer::lastChildBox):
46484         * rendering/RenderObjectChildList.h: Added.
46485         (WebCore::RenderObjectChildList::RenderObjectChildList):
46486         (WebCore::RenderObjectChildList::firstChild):
46487         (WebCore::RenderObjectChildList::lastChild):
46488         (WebCore::RenderObjectChildList::setFirstChild):
46489         (WebCore::RenderObjectChildList::setLastChild):
46490
46491 2009-01-29  Jungshik Shin  <jshin@chromium.org>
46492
46493         Reviewed by Alexey Proskuryakov.
46494
46495         http://bugs.webkit.org/show_bug.cgi?id=23598
46496         Replace smart-quotes in UTF-8 with ASCII double-quotes to avoid
46497         the compilation error on CJK Windows
46498
46499         * wml/WMLTableElement.cpp:
46500         (WebCore::WMLTableElement::parseMappedAttribute):
46501
46502 2009-01-29  Darin Fisher  <darin@chromium.org>
46503
46504         Reviewed by Eric Seidel.
46505
46506         https://bugs.webkit.org/show_bug.cgi?id=23627
46507         Fix the PLATFORM(SKIA) build.
46508
46509         * svg/graphics/SVGPaintServer.cpp:
46510         (WebCore::SVGPaintServer::teardown):
46511
46512 2009-01-29  Scott Violet  <sky@google.com>
46513
46514         Reviewed by Eric Seidel.
46515
46516         https://bugs.webkit.org/show_bug.cgi?id=23625
46517         Skia platform doesn't render text to a canvas or support clipping to an image buffer
46518
46519         Fixes two bugs in Skia rendering to a canvas:
46520         . Text was not rendered at all. This is because we never properly
46521           fixed up the alpha values. The fix is to create a layer when
46522           rendering text to a layer.
46523         . We were not honoring clipping to an image buffer.
46524
46525         * platform/graphics/chromium/FontChromiumWin.cpp:
46526         (WebCore::Font::drawGlyphs):
46527         * platform/graphics/skia/GraphicsContextSkia.cpp:
46528         (WebCore::GraphicsContext::clipToImageBuffer):
46529         * platform/graphics/skia/ImageBufferSkia.cpp:
46530         (WebCore::ImageBuffer::ImageBuffer):
46531         * platform/graphics/skia/PlatformContextSkia.cpp:
46532         (PlatformContextSkia::PlatformContextSkia):
46533         (PlatformContextSkia::setDrawingToImageBuffer):
46534         (PlatformContextSkia::isDrawingToImageBuffer):
46535         (PlatformContextSkia::beginLayerClippedToImage):
46536         (PlatformContextSkia::restore):
46537         (PlatformContextSkia::applyClipFromImage):
46538         * platform/graphics/skia/PlatformContextSkia.h:
46539
46540 2009-01-29  Sam Weinig  <sam@webkit.org>
46541
46542         Reviewed by Mark Rowe.
46543
46544         First step in tracking the urls a HistoryItem was redirected through.
46545
46546         * WebCore.base.exp:
46547         * history/HistoryItem.cpp:
46548         (WebCore::HistoryItem::HistoryItem):
46549         (WebCore::HistoryItem::addRedirectURL):
46550         (WebCore::HistoryItem::redirectURLs):
46551         (WebCore::HistoryItem::setRedirectURLs):
46552         * history/HistoryItem.h:
46553
46554 2009-01-29  Dirk Schulze  <krit@webkit.org>
46555
46556         Reviewed by Nikolas Zimmermann, Eric Seidel.
46557
46558         Just transform the pattern directly instead of transforming the context fixes this
46559         problem. Texts or strokes are no longer affected by transformations.
46560
46561         SVG pattern transformation/BoundingBox can cause ugly stroke thickness or text positions
46562         https://bugs.webkit.org/show_bug.cgi?id=23472
46563
46564         Test: svg/custom/pattern-with-transformation.svg
46565
46566         * platform/graphics/Pattern.h:
46567         (WebCore::Pattern::setPatternSpaceTransform):
46568         * platform/graphics/cairo/PatternCairo.cpp:
46569         (WebCore::Pattern::createPlatformPattern):
46570         * platform/graphics/cg/PatternCG.cpp:
46571         (WebCore::Pattern::createPlatformPattern):
46572         * platform/graphics/qt/PatternQt.cpp:
46573         (WebCore::Pattern::createPlatformPattern):
46574         * svg/graphics/SVGPaintServerPattern.cpp:
46575         (WebCore::SVGPaintServerPattern::setup):
46576
46577 2009-01-29  David Hyatt  <hyatt@apple.com>
46578
46579         Move the line box list member out of RenderFlow and down into RenderBlock and RenderInline.  Eliminate RenderFlow from the tree.
46580
46581         Reviewed by Sam Weinig
46582
46583         * GNUmakefile.am:
46584         * WebCore.pro:
46585         * WebCore.vcproj/WebCore.vcproj:
46586         * WebCore.xcodeproj/project.pbxproj:
46587         * WebCoreSources.bkl:
46588         * html/HTMLAnchorElement.cpp:
46589         * rendering/InlineFlowBox.cpp:
46590         (WebCore::InlineFlowBox::rendererLineBoxes):
46591         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
46592         * rendering/InlineFlowBox.h:
46593         * rendering/LayoutState.cpp:
46594         (WebCore::LayoutState::LayoutState):
46595         * rendering/RenderBlock.cpp:
46596         (WebCore::RenderBlock::RenderBlock):
46597         (WebCore::RenderBlock::destroy):
46598         (WebCore::RenderBlock::styleWillChange):
46599         (WebCore::RenderBlock::styleDidChange):
46600         (WebCore::RenderBlock::dirtyLineBoxes):
46601         (WebCore::RenderBlock::removeChild):
46602         (WebCore::RenderBlock::setSelectionState):
46603         (WebCore::RenderBlock::avoidsFloats):
46604         (WebCore::RenderBlock::positionForCoordinates):
46605         (WebCore::RenderBlock::calcInlinePrefWidths):
46606         (WebCore::RenderBlock::baselinePosition):
46607         (WebCore::RenderBlock::getBaselineOfFirstLineBox):
46608         (WebCore::RenderBlock::getBaselineOfLastLineBox):
46609         (WebCore::RenderBlock::rectWithOutlineForRepaint):
46610         (WebCore::RenderBlock::hoverAncestor):
46611         (WebCore::RenderBlock::updateDragState):
46612         * rendering/RenderBlock.h:
46613         (WebCore::RenderBlock::lineBoxes):
46614         (WebCore::RenderBlock::firstLineBox):
46615         (WebCore::RenderBlock::lastLineBox):
46616         * rendering/RenderBox.cpp:
46617         (WebCore::RenderBox::offsetFromContainer):
46618         (WebCore::RenderBox::computeRectForRepaint):
46619         (WebCore::RenderBox::containingBlockWidthForPositioned):
46620         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
46621         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
46622         * rendering/RenderBox.h:
46623         * rendering/RenderFlow.cpp: Removed.
46624         * rendering/RenderFlow.h: Removed.
46625         * rendering/RenderInline.cpp:
46626         (WebCore::RenderInline::RenderInline):
46627         (WebCore::RenderInline::destroy):
46628         (WebCore::RenderInline::styleDidChange):
46629         (WebCore::RenderInline::addChildIgnoringContinuation):
46630         (WebCore::RenderInline::cloneInline):
46631         (WebCore::RenderInline::splitInlines):
46632         (WebCore::RenderInline::offsetLeft):
46633         (WebCore::RenderInline::offsetTop):
46634         (WebCore::RenderInline::positionForCoordinates):
46635         (WebCore::RenderInline::rectWithOutlineForRepaint):
46636         (WebCore::RenderInline::updateDragState):
46637         (WebCore::RenderInline::relativePositionedInlineOffset):
46638         * rendering/RenderInline.h:
46639         (WebCore::RenderInline::lineBoxes):
46640         (WebCore::RenderInline::firstLineBox):
46641         (WebCore::RenderInline::lastLineBox):
46642         * rendering/RenderLayer.cpp:
46643         (WebCore::RenderLayer::updateLayerPosition):
46644         * rendering/RenderLineBoxList.cpp:
46645         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
46646         * rendering/RootInlineBox.cpp:
46647         (WebCore::RootInlineBox::rendererLineBoxes):
46648         * rendering/RootInlineBox.h:
46649         * rendering/bidi.cpp:
46650         (WebCore::RenderBlock::createLineBoxes):
46651         * wml/WMLAElement.cpp:
46652
46653 2009-01-29  Geoffrey Garen  <ggaren@apple.com>
46654
46655         Reviewed by Oliver Hunt.
46656
46657         Cleaned up some naming in ScheduledRedirection.
46658
46659         * loader/FrameLoader.cpp:
46660         (WebCore::ScheduledRedirection::ScheduledRedirection):
46661
46662 2009-01-29  Anders Carlsson  <andersca@apple.com>
46663
46664         Reviewed by Dan Bernstein.
46665
46666         Update to use new API.
46667
46668         * platform/graphics/mac/FontCustomPlatformData.cpp:
46669         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
46670         (WebCore::createFontCustomPlatformData):
46671
46672 2009-01-29  Alexey Proskuryakov  <ap@webkit.org>
46673
46674         Reviewed by Nikolas Zimmermann.
46675
46676         https://bugs.webkit.org/show_bug.cgi?id=23619
46677         ASSERT(!error.isNull()) in DocumentLoader::mainReceivedError() when an SVG image load
46678         is cancelled
46679
46680         Covered by existing tests (as a random crash).
46681
46682         * loader/EmptyClients.h:
46683         (WebCore::EmptyFrameLoaderClient::cancelledError):
46684         (WebCore::EmptyFrameLoaderClient::blockedError):
46685         (WebCore::EmptyFrameLoaderClient::cannotShowURLError):
46686         (WebCore::EmptyFrameLoaderClient::interruptForPolicyChangeError):
46687         (WebCore::EmptyFrameLoaderClient::cannotShowMIMETypeError):
46688         (WebCore::EmptyFrameLoaderClient::fileDoesNotExistError):
46689         (WebCore::EmptyFrameLoaderClient::pluginWillHandleLoadError):
46690         Create non-null errors.
46691
46692 2009-01-29  Geoffrey Garen  <ggaren@apple.com>
46693
46694         Reviewed by Oliver Hunt.
46695
46696         Removed an unused case of "lockHistory" to help make the other cases
46697         clearer.
46698
46699         * page/FrameLoadRequest.h:
46700         (WebCore::FrameLoadRequest::FrameLoadRequest):
46701
46702 2009-01-29  David Hyatt  <hyatt@apple.com>
46703
46704         Move all of the contination insertion code from RenderFlow to RenderInline.  addChildToFlow is renamed to addChildIgnoringContinuation, and it has been moved to
46705         RenderContainer so that it can still be called on either blocks or inlines.  The base class implementation in RenderContainer is what RenderBlock uses.  RenderInline
46706         subclasses it to do all the work it used to do in addChildToFlow.
46707
46708         RenderBlock's old addChildToFlow can just become addChild.  This simplification is possible because addChild was actually never being called on anonymous
46709         block continuations.
46710
46711         The code dealing with anonymous table parts in the old addChildWithContinuation method can now be removed as a result with no harmful side effects.  Falling through to the
46712         base class and ignoring a block continuation makes the right thing happen.
46713
46714         addChildWithContinuation moved to RenderInline and has been renamed to addChildToContinuation.
46715
46716         Reviewed by Eric Seidel
46717
46718         * rendering/RenderBlock.cpp:
46719         (WebCore::RenderBlock::addChild):
46720         * rendering/RenderBlock.h:
46721         * rendering/RenderContainer.h:
46722         (WebCore::RenderContainer::addChildIgnoringContinuation):
46723         * rendering/RenderFlow.cpp:
46724         * rendering/RenderFlow.h:
46725         * rendering/RenderInline.cpp:
46726         (WebCore::RenderInline::styleDidChange):
46727         (WebCore::RenderInline::addChild):
46728         (WebCore::nextContinuation):
46729         (WebCore::RenderInline::continuationBefore):
46730         (WebCore::RenderInline::addChildIgnoringContinuation):
46731         (WebCore::RenderInline::splitInlines):
46732         (WebCore::RenderInline::splitFlow):
46733         (WebCore::RenderInline::addChildToContinuation):
46734         (WebCore::RenderInline::childBecameNonInline):
46735         * rendering/RenderInline.h:
46736         (WebCore::RenderInline::continuation):
46737         (WebCore::RenderInline::setContinuation):
46738
46739 2009-01-29  Brady Eidson  <beidson@apple.com>
46740
46741         Reviewed by Oliver Hunt
46742
46743         <rdar://problem/6337157> hyundaiusa.com closes window or tab during load
46744
46745         Test: fast/loader/subframe-self-close.html
46746
46747         * page/DOMWindow.cpp:
46748         (WebCore::DOMWindow::close): Only allow mainframes to close the window.
46749
46750 2009-01-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
46751
46752         Reviewed by David Hyatt.
46753
46754         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23539
46755
46756         Remove several virtual functions from Node & Element related to form control / input elements,
46757         that shouldn't reside there, but move to approriate locations, in the new form control /
46758         input element abstract base classes.
46759
46760         Remove the isControl() method from Node, as it's redundant - isFormControlElement() provides the same information.
46761         Move isEnabled( / isReadOnlyControl() / isTextControl() from Node to FormControlElement.
46762         Move isAutofilled() / isChecked() / isIndeterminate() from Node to InputElement.
46763         Move isInputTypeHidden() / isPasswordField() from Element to InputElement.
46764
46765         Querying these methods requires using the toInputElement/toFormControlElement casting helper functions
46766         to cast Element pointers to InputElement/FormControlElement pointers.
46767
46768         * css/CSSStyleSelector.cpp:
46769         (WebCore::CSSStyleSelector::canShareStyleWithElement):
46770         (WebCore::CSSStyleSelector::adjustRenderStyle):
46771         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
46772         * dom/Element.h:
46773         (WebCore::Element::isFormControlElementWithState):
46774         * dom/FormControlElement.h:
46775         * dom/InputElement.h:
46776         * dom/Node.h:
46777         * editing/TextIterator.cpp:
46778         (WebCore::TextIterator::advance):
46779         * html/HTMLFormControlElement.cpp:
46780         (WebCore::HTMLFormControlElement::attach):
46781         * html/HTMLFormControlElement.h:
46782         (WebCore::HTMLFormControlElement::isTextControl):
46783         * html/HTMLFormElement.cpp:
46784         (WebCore::HTMLFormElement::CheckedRadioButtons::removeButton):
46785         * html/HTMLInputElement.h:
46786         (WebCore::HTMLInputElement::isAutofilled):
46787         * page/AccessibilityRenderObject.cpp:
46788         (WebCore::AccessibilityRenderObject::isPasswordField):
46789         (WebCore::AccessibilityRenderObject::isIndeterminate):
46790         (WebCore::AccessibilityRenderObject::isChecked):
46791         (WebCore::AccessibilityRenderObject::isControl):
46792         (WebCore::AccessibilityRenderObject::isEnabled):
46793         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
46794         * page/mac/AccessibilityObjectWrapper.mm:
46795         (textMarkerForVisiblePosition):
46796         * platform/ContextMenu.cpp:
46797         (WebCore::ContextMenu::populate):
46798         * rendering/RenderLayer.cpp:
46799         (WebCore::RenderLayer::resize):
46800         * rendering/RenderMenuList.cpp:
46801         (WebCore::RenderMenuList::itemIsEnabled):
46802         * rendering/RenderTextControl.cpp:
46803         (WebCore::updateUserModifyProperty):
46804         (WebCore::RenderTextControl::adjustInnerTextStyle):
46805         (WebCore::RenderTextControl::updateFromElement):
46806         * rendering/RenderTheme.cpp:
46807         (WebCore::RenderTheme::isChecked):
46808         (WebCore::RenderTheme::isIndeterminate):
46809         (WebCore::RenderTheme::isEnabled):
46810         (WebCore::RenderTheme::isReadOnlyControl):
46811         * rendering/RenderThemeMac.mm:
46812         (WebCore::RenderThemeMac::adjustMenuListStyle):
46813         * wml/WMLFormControlElement.cpp:
46814         (WebCore::WMLFormControlElement::isFocusable):
46815         * wml/WMLFormControlElement.h:
46816         (WebCore::WMLFormControlElement::isEnabled):
46817         (WebCore::WMLFormControlElement::isReadOnlyControl):
46818         (WebCore::WMLFormControlElement::isTextControl):
46819         * wml/WMLInputElement.cpp:
46820         (WebCore::WMLInputElement::isKeyboardFocusable):
46821         (WebCore::WMLInputElement::isMouseFocusable):
46822         * wml/WMLInputElement.h:
46823         (WebCore::WMLInputElement::isAutofilled):
46824
46825 2009-01-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
46826
46827         Not reviewed. Fix WML build - apply same fix as HTMLAnchorElement received.
46828
46829         * wml/WMLAElement.cpp:
46830         (WebCore::WMLAElement::isKeyboardFocusable):
46831
46832 2009-01-29  Alexey Proskuryakov  <ap@webkit.org>
46833
46834         Reviewed by Anders Carlsson.
46835
46836         https://bugs.webkit.org/show_bug.cgi?id=23620
46837         Crash in appcache/resource-redirect.html on Tiger
46838
46839         There was a bug in the test case - it didn't send a Location header, and on Tiger, this
46840         resulted in a failure callback being sent. It turned out that proper redirects weren't
46841         caught at all.
46842
46843         Tests: http/tests/appcache/manifest-redirect-2.html
46844                http/tests/appcache/resource-redirect-2.html
46845
46846         * loader/appcache/ApplicationCacheGroup.cpp:
46847         (WebCore::ApplicationCacheGroup::didFail): Fixed this function to not crash if
46848         didReceiveResponse() wasn't called for this request.
46849         (WebCore::ApplicationCacheGroup::didReceiveResponse): Fixed to check for redirects correctly.
46850         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse): Ditto.
46851
46852 2009-01-29  David Hyatt  <hyatt@apple.com>
46853
46854         Move dirtyLinesFromChangedChild into RenderLineBoxList so that it can be shared by RenderBlock and RenderInline.
46855
46856         Reviewed by Sam Weinig
46857
46858         * rendering/RenderBlock.h:
46859         (WebCore::RenderBlock::dirtyLinesFromChangedChild):
46860         * rendering/RenderFlow.cpp:
46861         * rendering/RenderFlow.h:
46862         * rendering/RenderInline.h:
46863         (WebCore::RenderInline::dirtyLinesFromChangedChild):
46864         * rendering/RenderLineBoxList.cpp:
46865         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
46866         * rendering/RenderLineBoxList.h:
46867
46868 2009-01-29  Adam Roben  <aroben@apple.com>
46869
46870         Fix Bug 23623: Windowed Flash instances aren't captured when a WebView
46871         receives a WM_PRINTCLIENT message
46872
46873         <https://bugs.webkit.org/show_bug.cgi?id=23623>
46874         <rdar://problem/6513921>
46875         <rdar://problem/6536874>
46876
46877         Flash doesn't seem to respond to WM_PRINTCLIENT, so we change
46878         WM_PRINTCLIENT messages into WM_PAINT messages and hook into the
46879         BeginPaint/EndPaint APIs to return the HDC we received from
46880         WM_PRINTCLIENT. This causes the plugin to paint into the
46881         WM_PRINTCLIENT HDC via its normal WM_PAINT handler. This technique
46882         came from <http://www.fengyuan.com/article/wmprint.html>.
46883
46884         No test possible.
46885
46886         Reviewed by Darin Adler.
46887
46888         * platform/graphics/GraphicsContext.h: Added
46889         [set]ShouldIncludeChildWindows on Windows.
46890
46891         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: Added
46892         m_shouldIncludeChildWindows.
46893         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
46894         Initialize the new member.
46895
46896         * platform/graphics/win/GraphicsContextCGWin.cpp:
46897         (WebCore::GraphicsContext::setShouldIncludeChildWindows):
46898         (WebCore::GraphicsContext::shouldIncludeChildWindows):
46899         Added simple setter and getter.
46900
46901         * plugins/PluginView.cpp:
46902         (WebCore::PluginView::PluginView): Initialize the new member.
46903
46904         * plugins/PluginView.h: Added m_wmPrintHDC and various functions
46905         required for making WM_PRINTCLIENT work.
46906
46907         * plugins/win/PluginViewWin.cpp:
46908         (WebCore::PluginView::hookedBeginPaint):
46909         (WebCore::PluginView::hookedEndPaint):
46910         (WebCore::hook):
46911         (WebCore::setUpOffscreenPaintingHooks):
46912         Added. Code was modified from code available on fengyuan.com.
46913
46914         (WebCore::PluginView::wndProc): Turn WM_PRINTCLIENT messages into
46915         WM_PAINT messages and save off the HDC that we're supposed to paint
46916         into.
46917
46918         (WebCore::PluginView::paintWindowedPluginIntoContext): Added. Gets an
46919         HDC from the GraphicsContext, translates it into client coordinates,
46920         gets the plugin to draw into the HDC by sending a WM_PRINTCLIENT
46921         message, and returns the HDC to the GraphicsContext.
46922
46923         (WebCore::PluginView::paint): If we're trying to paint a windowed
46924         plugin into the GraphicsContext, call paintWindowedPluginIntoContext.
46925
46926         (WebCore::PluginView::init): Call setUpOffscreenPaintingHooks to make
46927         our WM_PRINTCLIENT trick work.
46928
46929 2009-01-29  David Hyatt  <hyatt@apple.com>
46930
46931         Move RenderFlow::destroy down into RenderBlock and RenderInline.
46932
46933         Reviewed by Anders Carlsson
46934
46935         * rendering/RenderBlock.cpp:
46936         (WebCore::RenderBlock::destroy):
46937         * rendering/RenderFlow.cpp:
46938         * rendering/RenderFlow.h:
46939         * rendering/RenderInline.cpp:
46940         (WebCore::RenderInline::destroy):
46941
46942 2009-01-29  David Kilzer  <ddkilzer@apple.com>
46943
46944         Remove semi-colons from the end of ObjC method implementations
46945
46946         Rubber-stamped by Adam Roben.
46947
46948         $ find WebCore -name \*.m -o -name \*.mm -exec perl -e 'undef $/; $s = <>; while ($s =~ m/[\n\r][-+].*;[\s\r\n]+\{/g) { print "$ARGV: $&\n"; }' {} \;
46949
46950         * bridge/testbindings.mm:
46951
46952 2009-01-29  Adam Treat  <adam.treat@torchmobile.com>
46953
46954         Reviewed by Alexey Proskuryakov.
46955
46956         https://bugs.webkit.org/show_bug.cgi?id=23609
46957         Use the two-arg constructor for implicit QUrl->KURL conversion as the
46958         single argument ctors assume that KURL::parse has already been called
46959         and assert if the parse results in a different string.  This was causing
46960         an assert for QUrl's with no path and without a trailing slash.
46961
46962         * platform/qt/KURLQt.cpp:
46963         (WebCore::KURL::KURL):
46964
46965 2009-01-29  Alexey Proskuryakov  <ap@webkit.org>
46966
46967         Rubber-stamped by Darin Adler.
46968
46969         Renamed ApplicationCacheResource::Implicit to Master, because that's the word HTML5 uses,
46970         and it describes the meaning better.
46971
46972         * loader/appcache/ApplicationCache.cpp:
46973         * loader/appcache/ApplicationCacheGroup.cpp:
46974         * loader/appcache/ApplicationCacheResource.cpp:
46975         * loader/appcache/ApplicationCacheResource.h:
46976
46977 2009-01-29  Alexey Proskuryakov  <ap@webkit.org>
46978
46979         Release build fix.
46980
46981         * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::selectCache):
46982         Got rid of a variable that wasn't used in release builds.
46983
46984 2009-01-29  David Hyatt  <hyatt@apple.com>
46985
46986         Get rid of createAnonymousFlow.  It was only called in one spot, so just inline the code.
46987
46988         Reviewed by Oliver Hunt
46989
46990         * rendering/RenderBlock.cpp:
46991         (WebCore::RenderBlock::updateFirstLetter):
46992         * rendering/RenderFlow.cpp:
46993         * rendering/RenderFlow.h:
46994
46995 2009-01-29  Alexey Proskuryakov  <ap@webkit.org>
46996
46997         Reviewed by Anders Carlsson.
46998
46999         https://bugs.webkit.org/show_bug.cgi?id=23476
47000         HTTP redirect should make application cache updating fail
47001
47002         Tests: http/tests/appcache/manifest-redirect.html
47003                http/tests/appcache/resource-redirect.html
47004
47005         * loader/appcache/ApplicationCacheGroup.cpp:
47006         (WebCore::ApplicationCacheGroup::didReceiveResponse):
47007         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
47008         Fail if response code isn't 2xx.
47009
47010 2009-01-29  Alexey Proskuryakov  <ap@webkit.org>
47011
47012         Reviewed by Anders Carlsson.
47013
47014         https://bugs.webkit.org/show_bug.cgi?id=23592
47015         Update appcache manifest signature parsing
47016
47017         Test: http/tests/appcache/wrong-signature-2.html
47018
47019         * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): Allow comments on signature
47020         line. Removed code that replaced nulls with 0xFFFD characters, because there is no such
47021         requirement in the spec.
47022
47023 2009-01-28  Alexey Proskuryakov  <ap@webkit.org>
47024
47025         Reviewed by Anders Carlsson.
47026
47027         https://bugs.webkit.org/show_bug.cgi?id=23584
47028         Update application cache code for the latest round of spec changes
47029
47030         The changes mostly affect the update process - events are sent at a different
47031         time, and caches are associated with documents earlier.
47032
47033         * loader/DocumentLoader.cpp:
47034         (WebCore::DocumentLoader::mainReceivedError): Changed an always passing test to an assertion.
47035         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache): Caches are now associated
47036         with DocumentLoader before being complete, but they only affect loading after being completed.
47037         (WebCore::DocumentLoader::getApplicationCacheFallbackResource): Ditto.
47038
47039         * loader/appcache/ApplicationCache.cpp:
47040         (WebCore::ApplicationCache::setGroup): Allow setting the group to the same one, to simplify
47041         ApplicationCacheGroup code.
47042         (WebCore::ApplicationCache::isComplete): A new method that tells whether the cache is
47043         complete, as defined in HTML5.
47044         * loader/appcache/ApplicationCache.h: Added isComplete().
47045
47046         * loader/appcache/ApplicationCacheGroup.h:
47047         (WebCore::ApplicationCacheUpdateOption): Per HTML5, cache updating should work differently
47048         when invoked with or without a browsing context (Frame). A Frame is currently always needed
47049         for updating in WebKit, so a new argument to update() tells whether we should pretend that
47050         there isn't one.
47051         (WebCore::ApplicationCacheGroup::cacheIsBeingUpdated): A helper for ApplicationCache::isComplete().
47052         (WebCore::ApplicationCacheGroup::CompletionType): Cache update algorithm now waits for
47053         ne main resources to finish loading in more cases. A member variable of this type is used to
47054         distinguish between different cases when waiting.
47055         (WebCore::ApplicationCacheGroup::m_cacheCandidates): The new algorithm doesn't track cache
47056         candidates. Caches are associated with documents much earlier, but the ones whose main resources
47057         have not been loaded from a cache are being tracked in a pending master entry list.
47058
47059         * loader/appcache/DOMApplicationCache.cpp: (WebCore::DOMApplicationCache::update):
47060         An explicit call to update() invokes the algorithm without a browsing context.
47061
47062         * loader/appcache/ApplicationCacheGroup.cpp:
47063         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
47064         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
47065         (WebCore::ApplicationCacheGroup::selectCache):
47066         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
47067         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
47068         (WebCore::ApplicationCacheGroup::failedLoadingMainResource):
47069         (WebCore::ApplicationCacheGroup::stopLoading):
47070         (WebCore::ApplicationCacheGroup::disassociateDocumentLoader):
47071         (WebCore::ApplicationCacheGroup::cacheDestroyed):
47072         (WebCore::ApplicationCacheGroup::setNewestCache):
47073         (WebCore::ApplicationCacheGroup::update):
47074         (WebCore::ApplicationCacheGroup::didReceiveResponse):
47075         (WebCore::ApplicationCacheGroup::didFinishLoading):
47076         (WebCore::ApplicationCacheGroup::didFail):
47077         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
47078         (WebCore::ApplicationCacheGroup::cacheUpdateFailed):
47079         (WebCore::ApplicationCacheGroup::manifestNotFound):
47080         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
47081         (WebCore::ApplicationCacheGroup::startLoadingEntry):
47082         (WebCore::ApplicationCacheGroup::deliverDelayedMainResources):
47083         (WebCore::ApplicationCacheGroup::addEntry):
47084         (WebCore::ApplicationCacheGroup::associateDocumentLoaderWithCache):
47085         (WebCore::CallCacheListenerTask::create):
47086         (WebCore::CallCacheListenerTask::performTask):
47087         (WebCore::CallCacheListenerTask::CallCacheListenerTask):
47088         (WebCore::ApplicationCacheGroup::postListenerTask):
47089         Rewrote the update algorithm.
47090
47091 2009-01-28  Geoffrey Garen  <ggaren@apple.com>
47092
47093         Reviewed by Sam Weinig.
47094
47095         Merged FrameLoadTypeReloadAllowingStaleData with FrameLoadTypeReload.
47096
47097         Technically, selecting View->Text Encoding->[Non-Default Encoding] on
47098         a page with frames may now be slightly slower than it used to be. Oh well.
47099
47100         * loader/FrameLoader.cpp:
47101         (WebCore::isBackForwardLoadType):
47102         (WebCore::FrameLoader::restoreDocumentState): Subbed in FrameLoadTypeReload.
47103
47104         (WebCore::FrameLoader::loadURLIntoChildFrame): No need to account for
47105         non-back-forward navigations anymore.
47106
47107         (WebCore::FrameLoader::canCachePage):
47108         (WebCore::FrameLoader::logCanCachePageDecision):
47109         (WebCore::FrameLoader::reloadWithOverrideEncoding):
47110         (WebCore::FrameLoader::transitionToCommitted):
47111         (WebCore::FrameLoader::loadItem): Subbed in FrameLoadTypeReload.
47112
47113         * loader/FrameLoader.h: Renamed reloadAllowingStaleData => reloadWithOverrideEncoding,
47114         since that's what it actually does.
47115
47116 2009-01-28  David Hyatt  <hyatt@apple.com>
47117
47118         Move hit testing and painting of lines from RenderFlow into RenderLineBoxList.
47119
47120         Reviewed by Oliver Hunt
47121
47122         * rendering/RenderBlock.cpp:
47123         (WebCore::RenderBlock::paintContents):
47124         (WebCore::RenderBlock::hitTestContents):
47125         * rendering/RenderFlow.cpp:
47126         * rendering/RenderFlow.h:
47127         * rendering/RenderInline.cpp:
47128         (WebCore::RenderInline::paint):
47129         (WebCore::RenderInline::nodeAtPoint):
47130         * rendering/RenderLineBoxList.cpp:
47131         (WebCore::RenderLineBoxList::paint):
47132         (WebCore::RenderLineBoxList::hitTest):
47133         * rendering/RenderLineBoxList.h:
47134
47135 2009-01-28  David Hyatt  <hyatt@apple.com>
47136
47137         Fix SVG pixel test regressions.  I wish I could say that I understand this fix, but I don't.  For
47138         some reason the original code returned 0 for RenderSVGInlineText::yPos() and somehow my literal
47139         replacement of yPos() with the body of that method changed the results.  I am completely baffled,
47140         but all SVG pixel tests pass again when I just take the code out.
47141
47142         Reviewed by Oliver Hunt
47143
47144         * rendering/RenderSVGInlineText.cpp:
47145         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
47146
47147 2009-01-28  David Hyatt  <hyatt@apple.com>
47148
47149         Move dirtyLineBoxes from RenderFlow to RenderInline and RenderBlock.
47150
47151         Reviewed by Oliver Hunt
47152
47153         * rendering/RenderBlock.cpp:
47154         (WebCore::RenderBlock::dirtyLineBoxes):
47155         * rendering/RenderBlock.h:
47156         * rendering/RenderFlow.cpp:
47157         * rendering/RenderFlow.h:
47158         * rendering/RenderInline.cpp:
47159         (WebCore::RenderInline::dirtyLineBoxes):
47160         * rendering/RenderInline.h:
47161         * rendering/RenderLineBoxList.cpp:
47162         (WebCore::RenderLineBoxList::dirtyLineBoxes):
47163         * rendering/RenderLineBoxList.h:
47164
47165 2009-01-28  David Hyatt  <hyatt@apple.com>
47166
47167         Back out my change to scrollWidth/Height from an earlier checkin since it broke stuff.  The current
47168         behavior is not correct, but this will need to be investigated before being changed again.
47169
47170         * rendering/RenderBox.cpp:
47171         (WebCore::RenderBox::scrollWidth):
47172         (WebCore::RenderBox::scrollHeight):
47173
47174 2009-01-28  David Hyatt  <hyatt@apple.com>
47175
47176         Move paintOutline and paintOutlineWithLine from RenderFlow to RenderInline, since they only apply to inlines.  Tighten up all of the code that
47177         called paintOutline to use RenderInline as the type instead of RenderFlow.
47178
47179         Reviewed by cpst
47180
47181         * rendering/InlineFlowBox.cpp:
47182         (WebCore::InlineFlowBox::paint):
47183         * rendering/RenderBlock.cpp:
47184         (WebCore::RenderBlock::paintObject):
47185         (WebCore::RenderBlock::addContinuationWithOutline):
47186         (WebCore::RenderBlock::paintContinuationOutlines):
47187         * rendering/RenderFlow.cpp:
47188         (WebCore::RenderFlow::paintLines):
47189         * rendering/RenderFlow.h:
47190         * rendering/RenderInline.cpp:
47191         (WebCore::RenderInline::paintOutline):
47192         (WebCore::RenderInline::paintOutlineForLine):
47193         * rendering/RenderInline.h:
47194         * rendering/RenderObject.cpp:
47195         (WebCore::RenderObject::paintOutline):
47196         * rendering/RenderObject.h:
47197         (WebCore::RenderObject::PaintInfo::PaintInfo):
47198
47199 2009-01-28  Darin Fisher  <darin@chromium.org>
47200
47201         Reviewed by Eric Seidel.
47202
47203         https://bugs.webkit.org/show_bug.cgi?id=23596
47204         XMLHttpRequest.cpp no longer compiles without USE(JSC)
47205
47206         * xml/XMLHttpRequest.cpp:
47207
47208 2009-01-28  Darin Fisher  <darin@chromium.org>
47209
47210         Reviewed by Darin Adler.
47211
47212         https://bugs.webkit.org/show_bug.cgi?id=23597
47213         Make it possible to compile Database.cpp when USE(JSC) is not defined
47214
47215         * storage/Database.cpp:
47216         (WebCore::Database::Database):
47217
47218 2009-01-28  Dan Bernstein  <mitz@apple.com>
47219
47220         Reviewed by Darin Adler.
47221
47222         - fix <rdar://problem/6077047> REGRESSION (r34544): Custom icon does not
47223           appear in address field on first visit to any site
47224
47225         * loader/icon/IconLoader.cpp:
47226         (WebCore::IconLoader::finishLoading): Changed to set the icon data only
47227         after establishing a mapping from the page URL(s) to the icon. Doing
47228         things the other way around resulted in the data not being cached
47229         in the icon-URL to IconRecord map (because there was no interested page
47230         at the time) and subsequently having to be fetched asynchronously from
47231         the database when the page-to-icon mapping was established.
47232
47233 2009-01-28  David Hyatt  <hyatt@apple.com>
47234
47235         Move addFocusRingRects from RenderFlow down into RenderBlock and RenderInline.
47236
47237         Reviewed by Oliver Hunt
47238
47239         * rendering/RenderBlock.cpp:
47240         (WebCore::RenderBlock::addFocusRingRects):
47241         * rendering/RenderBlock.h:
47242         * rendering/RenderFlow.cpp:
47243         * rendering/RenderFlow.h:
47244         * rendering/RenderInline.cpp:
47245         (WebCore::RenderInline::addFocusRingRects):
47246         * rendering/RenderInline.h:
47247
47248 2009-01-28  David Hyatt  <hyatt@apple.com>
47249
47250         Move localCaretRect from RenderFlow into RenderBlock, since it only applied to blocks anyway and
47251         was misplaced from the start.
47252
47253         Reviewed by Antti Koivisto.
47254
47255         * rendering/RenderBlock.cpp:
47256         (WebCore::RenderBlock::localCaretRect):
47257         * rendering/RenderBlock.h:
47258         * rendering/RenderFlow.cpp:
47259         * rendering/RenderFlow.h:
47260
47261 2009-01-28  Sam Weinig  <sam@webkit.org>
47262
47263         Reviewed by Geoff Garen.
47264
47265         Add forwarding header.
47266
47267         * ForwardingHeaders/debugger/DebuggerActivation.h: Added.
47268
47269 2009-01-28  David Hyatt  <hyatt@apple.com>
47270
47271         Move createInlineBox out of RenderFlow and down into RenderInline and RenderBlock.
47272
47273         Reviewed by Beth Dakin
47274
47275         * rendering/RenderBlock.cpp:
47276         (WebCore::RenderBlock::createInlineBox):
47277         * rendering/RenderBlock.h:
47278         * rendering/RenderFlow.cpp:
47279         * rendering/RenderFlow.h:
47280         * rendering/RenderInline.cpp:
47281         (WebCore::RenderInline::createInlineBox):
47282         * rendering/RenderInline.h:
47283         * rendering/bidi.cpp:
47284
47285 2009-01-28  David Hyatt  <hyatt@apple.com>
47286
47287         Move calcMargins from RenderFlow to RenderInline, since it was only ever called on RenderInlines.
47288
47289         Reviewed by Oliver Hunt
47290
47291         * rendering/RenderFlow.cpp:
47292         * rendering/RenderFlow.h:
47293         * rendering/RenderInline.h:
47294         (WebCore::RenderInline::calcMargins):
47295         * rendering/bidi.cpp:
47296         (WebCore::RenderBlock::layoutInlineChildren):
47297
47298 2009-01-28  David Hyatt  <hyatt@apple.com>
47299
47300         Refactor the first and last line box member variables from RenderFlow.  Encapsulate them into a new class called RenderLineBoxList that manages all modifications to
47301         the list.  This change will make it easier to give RenderInline and RenderBlock separate versions of the line box list without having to duplicate very much code.
47302
47303         Reviewed by Oliver Hunt
47304
47305         * GNUmakefile.am:
47306         * WebCore.pro:
47307         * WebCore.vcproj/WebCore.vcproj:
47308         * WebCore.xcodeproj/project.pbxproj:
47309         * WebCoreSources.bkl:
47310         * rendering/InlineFlowBox.cpp:
47311         (WebCore::InlineFlowBox::deleteLine):
47312         (WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
47313         (WebCore::InlineFlowBox::extractLine):
47314         (WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
47315         (WebCore::InlineFlowBox::attachLine):
47316         (WebCore::InlineFlowBox::attachLineBoxToRenderObject):
47317         * rendering/InlineFlowBox.h:
47318         * rendering/RenderBlock.cpp:
47319         (WebCore::RenderBlock::deleteLineBoxTree):
47320         * rendering/RenderFlow.cpp:
47321         (WebCore::RenderFlow::destroy):
47322         (WebCore::RenderFlow::dirtyLineBoxes):
47323         (WebCore::RenderFlow::createInlineBox):
47324         * rendering/RenderFlow.h:
47325         (WebCore::RenderFlow::RenderFlow):
47326         (WebCore::RenderFlow::lineBoxes):
47327         (WebCore::RenderFlow::firstLineBox):
47328         (WebCore::RenderFlow::lastLineBox):
47329         * rendering/RenderLineBoxList.cpp: Added.
47330         (WebCore::RenderLineBoxList::~RenderLineBoxList):
47331         (WebCore::RenderLineBoxList::appendLineBox):
47332         (WebCore::RenderLineBoxList::deleteLineBoxTree):
47333         (WebCore::RenderLineBoxList::extractLineBox):
47334         (WebCore::RenderLineBoxList::attachLineBox):
47335         (WebCore::RenderLineBoxList::removeLineBox):
47336         (WebCore::RenderLineBoxList::deleteLineBoxes):
47337         (WebCore::RenderLineBoxList::checkConsistency):
47338         * rendering/RenderLineBoxList.h: Added.
47339         (WebCore::RenderLineBoxList::RenderLineBoxList):
47340         (WebCore::RenderLineBoxList::firstLineBox):
47341         (WebCore::RenderLineBoxList::lastLineBox):
47342         (WebCore::RenderLineBoxList::checkConsistency):
47343         * rendering/RenderSVGInline.cpp:
47344         (WebCore::RenderSVGInline::createInlineBox):
47345         * rendering/RenderSVGText.cpp:
47346         (WebCore::RenderSVGText::createInlineBox):
47347         * rendering/RootInlineBox.cpp:
47348         (WebCore::RootInlineBox::removeLineBoxFromRenderObject):
47349         (WebCore::RootInlineBox::extractLineBoxFromRenderObject):
47350         (WebCore::RootInlineBox::attachLineBoxToRenderObject):
47351         * rendering/RootInlineBox.h:
47352         * rendering/bidi.cpp:
47353         (WebCore::RenderBlock::layoutInlineChildren):
47354
47355 2009-01-28  David Kilzer  <ddkilzer@apple.com>
47356
47357         Clean up FontPlatformData constructor
47358
47359         Reviewed by David Hyatt.
47360
47361         * platform/graphics/mac/FontPlatformData.h: Updated copyright.
47362         (WebCore::FontPlatformData::FontPlatformData): Provide readable
47363         names for constructor arguments and reformat member variables.
47364         * platform/graphics/mac/FontPlatformDataMac.mm: Updated copyright.
47365         (WebCore::FontPlatformData::FontPlatformData): Provide readable
47366         names for constructor arguments and reformat member variables.
47367
47368 2009-01-28  Tony Chang  <tony@chromium.org>
47369
47370         Reviewed by David Hyatt.
47371
47372         https://bugs.webkit.org/show_bug.cgi?id=23593
47373         Compile fixes for RenderThemeChromiumMac and RenderThemeChromiumWin.
47374         This is a follow up for hyatt's RenderBox changes.
47375
47376         * rendering/RenderThemeChromiumMac.mm:
47377         (WebCore::RenderThemeChromiumMac::baselinePosition):
47378         * rendering/RenderThemeChromiumWin.cpp:
47379         (WebCore::RenderThemeChromiumWin::paintMenuList):
47380
47381 2009-01-28  Simon Fraser  <simon.fraser@apple.com>
47382
47383         Reviewed by Dave Hyatt
47384
47385         https://bugs.webkit.org/show_bug.cgi?id=23582
47386
47387         Fix assertions when inline elements have both opacity (or something
47388         else that creates a RenderLayer), and transform by ensuring that
47389         setHasTransform() is only called for non-inline or replaced elements.
47390         We also have to ensure that RenderReplicas will get transforms applied
47391         to them by lying about them being replaced.
47392
47393         Tests: fast/transforms/transform-on-inline.html
47394                fast/transforms/transform-table-row.html
47395
47396         * rendering/RenderBox.cpp:
47397         (WebCore::RenderBox::styleDidChange):
47398         * rendering/RenderReplica.cpp:
47399         (WebCore::RenderReplica::RenderReplica):
47400         * rendering/RenderTableRow.h:
47401         (WebCore::RenderTableRow::requiresLayer):
47402
47403 2009-01-28  Hironori Bono  <hbono@chromium.org>
47404
47405         Reviewed by Justin Garcia.
47406
47407         https://bugs.webkit.org/show_bug.cgi?id=18835
47408         Spelling underlines disappear when they shouldn't
47409
47410         The WebCore::InsertLineBreakCommand::doApply() function splits a text node
47411         without copying existing markers. To fix this bug, change code which
47412         manually splits a text node into a CompositeEditCommand::splitTextNode() call.
47413
47414         Test: editing/spelling/spelling-linebreak.html
47415
47416         * editing/InsertLineBreakCommand.cpp:
47417         (WebCore::InsertLineBreakCommand::doApply):
47418
47419 2009-01-28  David Hyatt  <hyatt@apple.com>
47420
47421         Move the m_lineHeight member variable out of RenderFlow and down into RenderBlock and RenderInline.  Shift the line height computation into RenderStyle so
47422         that it isn't repeated in three places.
47423
47424         Reviewed by Sam Weinig
47425
47426         * rendering/RenderBlock.cpp:
47427         (WebCore::RenderBlock::RenderBlock):
47428         (WebCore::RenderBlock::lineHeight):
47429         * rendering/RenderBlock.h:
47430         * rendering/RenderFlow.cpp:
47431         * rendering/RenderFlow.h:
47432         (WebCore::RenderFlow::RenderFlow):
47433         * rendering/RenderInline.cpp:
47434         (WebCore::RenderInline::RenderInline):
47435         (WebCore::RenderInline::lineHeight):
47436         * rendering/RenderInline.h:
47437         * rendering/RenderObject.cpp:
47438         (WebCore::RenderObject::lineHeight):
47439         * rendering/style/RenderStyle.h:
47440         (WebCore::InheritedFlags::computedLineHeight):
47441
47442 2009-01-28  Zachary Kuznia  <zork@chromiuum.org>
47443
47444         Reviewed by Sam Weinig.
47445
47446         https://bugs.webkit.org/show_bug.cgi?id=22070
47447         Add an option to allow scripts to close windows.
47448
47449         * page/Settings.cpp:
47450         (WebCore::Settings::Settings):
47451         (WebCore::Settings::setAllowScriptsToCloseWindows):
47452         * page/Settings.h:
47453         (WebCore::Settings::allowScriptsToCloseWindows):
47454
47455 2009-01-28  Adam Langley  <agl@google.com>
47456
47457         Reviewed by Sam Weinig.
47458
47459         https://bugs.webkit.org/show_bug.cgi?id=23573
47460         Make PlatformWidget on chromium an intptr_t to match changes made in Chromium
47461
47462         * platform/chromium/PlatformWidget.h:
47463
47464 2009-01-28  David Hyatt  <hyatt@apple.com>
47465
47466         Fix for
47467
47468         <rdar://problem/6531287> REGRESSION: CrashTracer: [USER] 12 crashes in Safari at com.apple.WebCore • WebCore::RenderBlock::removeFloatingObject + 59
47469
47470         My tightening up of markAllDescendantsWithFloatsForLayout exposed a buggy check in that code that could
47471         lead to a bad cast.
47472
47473         * rendering/RenderBlock.cpp:
47474         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
47475
47476 2009-01-27  David Hyatt  <hyatt@apple.com>
47477
47478         https://bugs.webkit.org/show_bug.cgi?id=23576
47479
47480         Work towards eliminating RenderFlow from the tree.
47481
47482         Move the m_continuation variable down from RenderFlow into RenderInline and RenderBlock.  Since a block can only have an inline continuation following it, the type
47483         of the member and methods reflect this (inlineContinuation() and m_inlineContinuation).  Since an inline can have either a block or an inline continuation following it,
47484         a base class of RenderBox* is used for the type of object returned (in anticipation of the removal of RenderFlow).
47485
47486         Since moving the continuation variable down into the subclasses increased the size of RenderInline and RenderBlock by 4 bytes, this patch also moves all of the bitfield
47487         members of RenderFlow up to RenderObject.  Since they fit within the available bits on RenderObject, this patch actually results in a net savings of 4 bytes on RenderInlines
47488         and RenderBlocks!
47489
47490         One bitfield member was eliminated rather than moved: m_firstLine.  This was really more of a state variable used during line layout only, so I removed it as a member
47491         and just passed firstLine down to various methods as needed.  Doing so uncovered some potential bugs where the first line state was not being respected when querying for
47492         line offsets.
47493
47494         Continuations have been completely hidden from all files except for RenderFlow, RenderBlock and RenderInline.  All of the code that referenced continuations directly
47495         from base classes has been refactored to use virtual methods on RenderBlock and RenderInline instead.
47496
47497         RenderFlow still has a common addChildWithContinuation method that is used by both blocks and inlines.  Since refactoring that method will be pretty tricky, I've held
47498         off on that for a later patch.
47499
47500         Reviewed by Oliver Hunt
47501
47502         * html/HTMLAnchorElement.cpp:
47503         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
47504         * page/AccessibilityRenderObject.cpp:
47505         (WebCore::AccessibilityRenderObject::anchorElement):
47506         (WebCore::AccessibilityRenderObject::boundingBoxRect):
47507         * rendering/InlineFlowBox.cpp:
47508         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
47509         (WebCore::InlineFlowBox::paint):
47510         * rendering/RenderBlock.cpp:
47511         (WebCore::RenderBlock::RenderBlock):
47512         (WebCore::RenderBlock::~RenderBlock):
47513         (WebCore::RenderBlock::destroy):
47514         (WebCore::RenderBlock::addChildToFlow):
47515         (WebCore::RenderBlock::makeChildrenNonInline):
47516         (WebCore::RenderBlock::removeChild):
47517         (WebCore::RenderBlock::layoutBlock):
47518         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
47519         (WebCore::RenderBlock::collapseMargins):
47520         (WebCore::RenderBlock::determineHorizontalPosition):
47521         (WebCore::RenderBlock::setCollapsedBottomMargin):
47522         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
47523         (WebCore::RenderBlock::paintObject):
47524         (WebCore::RenderBlock::addContinuationWithOutline):
47525         (WebCore::RenderBlock::setSelectionState):
47526         (WebCore::RenderBlock::shouldPaintSelectionGaps):
47527         (WebCore::RenderBlock::fillSelectionGaps):
47528         (WebCore::RenderBlock::leftSelectionOffset):
47529         (WebCore::RenderBlock::rightSelectionOffset):
47530         (WebCore::RenderBlock::leftOffset):
47531         (WebCore::RenderBlock::leftRelOffset):
47532         (WebCore::RenderBlock::rightOffset):
47533         (WebCore::RenderBlock::rightRelOffset):
47534         (WebCore::RenderBlock::lineWidth):
47535         (WebCore::RenderBlock::lowestPosition):
47536         (WebCore::RenderBlock::rightmostPosition):
47537         (WebCore::RenderBlock::leftmostPosition):
47538         (WebCore::RenderBlock::getClearDelta):
47539         (WebCore::RenderBlock::nodeAtPoint):
47540         (WebCore::RenderBlock::offsetForContents):
47541         (WebCore::RenderBlock::availableWidth):
47542         (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
47543         (WebCore::RenderBlock::desiredColumnWidth):
47544         (WebCore::RenderBlock::desiredColumnCount):
47545         (WebCore::RenderBlock::columnRects):
47546         (WebCore::RenderBlock::layoutColumns):
47547         (WebCore::RenderBlock::adjustPointToColumnContents):
47548         (WebCore::RenderBlock::adjustRectForColumns):
47549         (WebCore::RenderBlock::absoluteRects):
47550         (WebCore::RenderBlock::absoluteQuads):
47551         (WebCore::RenderBlock::rectWithOutlineForRepaint):
47552         (WebCore::RenderBlock::hoverAncestor):
47553         (WebCore::RenderBlock::updateDragState):
47554         (WebCore::RenderBlock::outlineStyleForRepaint):
47555         (WebCore::RenderBlock::childBecameNonInline):
47556         (WebCore::RenderBlock::updateHitTestResult):
47557         * rendering/RenderBlock.h:
47558         (WebCore::RenderBlock::rightOffset):
47559         (WebCore::RenderBlock::leftOffset):
47560         (WebCore::RenderBlock::inlineContinuation):
47561         (WebCore::RenderBlock::setInlineContinuation):
47562         * rendering/RenderBox.cpp:
47563         (WebCore::RenderBox::absoluteRects):
47564         (WebCore::RenderBox::absoluteQuads):
47565         (WebCore::RenderBox::addFocusRingRects):
47566         (WebCore::RenderBox::containingBlockWidth):
47567         * rendering/RenderBox.h:
47568         (WebCore::RenderBox::collapsedMarginBottom):
47569         (WebCore::RenderBox::childBecameNonInline):
47570         * rendering/RenderContainer.cpp:
47571         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
47572         (WebCore::RenderContainer::removeLeftoverAnonymousBlock):
47573         * rendering/RenderFlexibleBox.cpp:
47574         (WebCore::RenderFlexibleBox::layoutVerticalBox):
47575         * rendering/RenderFlow.cpp:
47576         (WebCore::nextContinuation):
47577         (WebCore::RenderFlow::continuationBefore):
47578         (WebCore::RenderFlow::addChildWithContinuation):
47579         (WebCore::RenderFlow::addChild):
47580         (WebCore::RenderFlow::destroy):
47581         (WebCore::RenderFlow::addFocusRingRects):
47582         * rendering/RenderFlow.h:
47583         (WebCore::RenderFlow::RenderFlow):
47584         * rendering/RenderInline.cpp:
47585         (WebCore::RenderInline::RenderInline):
47586         (WebCore::RenderInline::destroy):
47587         (WebCore::RenderInline::inlineContinuation):
47588         (WebCore::RenderInline::styleDidChange):
47589         (WebCore::RenderInline::addChildToFlow):
47590         (WebCore::RenderInline::cloneInline):
47591         (WebCore::RenderInline::splitInlines):
47592         (WebCore::RenderInline::splitFlow):
47593         (WebCore::RenderInline::positionForCoordinates):
47594         (WebCore::RenderInline::rectWithOutlineForRepaint):
47595         (WebCore::RenderInline::updateDragState):
47596         (WebCore::RenderInline::childBecameNonInline):
47597         (WebCore::RenderInline::updateHitTestResult):
47598         * rendering/RenderInline.h:
47599         (WebCore::RenderInline::isRenderInline):
47600         (WebCore::RenderInline::continuation):
47601         (WebCore::RenderInline::setContinuation):
47602         * rendering/RenderListItem.cpp:
47603         (WebCore::RenderListItem::positionListMarker):
47604         * rendering/RenderListMarker.cpp:
47605         (WebCore::RenderListMarker::RenderListMarker):
47606         (WebCore::RenderListMarker::setSelectionState):
47607         * rendering/RenderListMarker.h:
47608         * rendering/RenderObject.cpp:
47609         (WebCore::RenderObject::RenderObject):
47610         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
47611         (WebCore::RenderObject::rectWithOutlineForRepaint):
47612         (WebCore::RenderObject::handleDynamicFloatPositionChange):
47613         (WebCore::RenderObject::updateDragState):
47614         (WebCore::RenderObject::updateHitTestResult):
47615         (WebCore::RenderObject::getTextDecorationColors):
47616         (WebCore::RenderObject::adjustRectForOutlineAndShadow):
47617         * rendering/RenderObject.h:
47618         (WebCore::RenderObject::isInlineBlockOrInlineTable):
47619         (WebCore::RenderObject::childrenInline):
47620         (WebCore::RenderObject::setChildrenInline):
47621         (WebCore::RenderObject::hasColumns):
47622         (WebCore::RenderObject::setHasColumns):
47623         (WebCore::RenderObject::cellWidthChanged):
47624         (WebCore::RenderObject::setCellWidthChanged):
47625         (WebCore::RenderObject::isInlineContinuation):
47626         (WebCore::RenderObject::hoverAncestor):
47627         (WebCore::RenderObject::outlineStyleForRepaint):
47628         (WebCore::RenderObject::setHasMarkupTruncation):
47629         (WebCore::RenderObject::hasMarkupTruncation):
47630         (WebCore::RenderObject::selectionState):
47631         (WebCore::RenderObject::setSelectionState):
47632         (WebCore::RenderObject::hasSelectedChildren):
47633         (WebCore::RenderObject::isTopMarginQuirk):
47634         (WebCore::RenderObject::isBottomMarginQuirk):
47635         (WebCore::RenderObject::setTopMarginQuirk):
47636         (WebCore::RenderObject::setBottomMarginQuirk):
47637         * rendering/RenderReplaced.cpp:
47638         (WebCore::RenderReplaced::RenderReplaced):
47639         (WebCore::RenderReplaced::setSelectionState):
47640         * rendering/RenderReplaced.h:
47641         (WebCore::RenderReplaced::canBeSelectionLeaf):
47642         * rendering/RenderTable.cpp:
47643         (WebCore::RenderTable::calcWidth):
47644         * rendering/RenderTableCell.cpp:
47645         (WebCore::RenderTableCell::updateWidth):
47646         (WebCore::RenderTableCell::layout):
47647         * rendering/RenderText.cpp:
47648         (WebCore::RenderText::RenderText):
47649         (WebCore::RenderText::localCaretRect):
47650         (WebCore::RenderText::setSelectionState):
47651         * rendering/RenderText.h:
47652         (WebCore::RenderText::canBeSelectionLeaf):
47653         * rendering/RenderView.cpp:
47654         (WebCore::RenderView::updateHitTestResult):
47655         * rendering/RenderView.h:
47656         * rendering/RootInlineBox.cpp:
47657         (WebCore::RootInlineBox::selectionTop):
47658         * rendering/bidi.cpp:
47659         (WebCore::RenderBlock::createLineBoxes):
47660         (WebCore::RenderBlock::constructLine):
47661         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
47662         (WebCore::RenderBlock::layoutInlineChildren):
47663         (WebCore::RenderBlock::determineStartPosition):
47664         (WebCore::RenderBlock::skipTrailingWhitespace):
47665         (WebCore::RenderBlock::skipLeadingWhitespace):
47666         (WebCore::RenderBlock::fitBelowFloats):
47667         (WebCore::RenderBlock::findNextLineBreak):
47668         (WebCore::RenderBlock::checkLinesForTextOverflow):
47669
47670 2009-01-28  Adam Treat  <adam.treat@torchmobile.com>
47671
47672         Reviewed by Nikolas Zimmermann and George Staikos.
47673
47674         https://bugs.webkit.org/show_bug.cgi?id=23557
47675         Allow option of hit testing frame content without clipping to the visible
47676         viewport.
47677
47678         * WebCore.base.exp:
47679         * page/EventHandler.cpp:
47680         (WebCore::EventHandler::hitTestResultAtPoint):
47681         * page/EventHandler.h:
47682         * rendering/HitTestRequest.h:
47683         (WebCore::HitTestRequest::HitTestRequest):
47684         * rendering/RenderLayer.cpp:
47685         (WebCore::RenderLayer::hitTest):
47686
47687 2009-01-28  Simon Hausmann  <simon.hausmann@nokia.com>
47688
47689         Reviewed by Holger Freyther.
47690
47691         Fix the build with Qt on Windows.
47692
47693         Make sure that the QTWEBKIT_EXPORT macro becomes the Q_DECL_EXPORT macro
47694         instead of the import macro when building the dll, by defining
47695         QT_MAKEDLL.
47696
47697         SystemTimeWin.cpp is needed on Windows for userIdleTime(), which for the
47698         other Qt platforms comes from TemporaryLinkStubs.cpp.
47699
47700         * WebCore.pro:
47701
47702 2009-01-28  Ariya Hidayat  <ariya.hidayat@trolltech.com>
47703
47704         Reviewed by Simon Hausmann.
47705
47706         [Qt] Speed-up clipping: avoid calling expensive QPainter::clipRegion().
47707         Beside, the check is not necessary since QPainter::setClipRect() will
47708         work just fine if there is no clip region yet.
47709
47710         * platform/graphics/qt/GraphicsContextQt.cpp:
47711         (WebCore::GraphicsContext::clip):
47712
47713 2009-01-28  Darin Fisher  <darin@chromium.org>
47714
47715         Reviewed by Darin Adler.
47716
47717         https://bugs.webkit.org/show_bug.cgi?id=23546
47718         Upstream GoogleURL implementation of KURL
47719
47720         * platform/KURL.h:
47721         * platform/KURLGoogle.cpp: Added.
47722         * platform/KURLGooglePrivate.h: Added.
47723
47724 2009-01-27  Darin Adler  <darin@apple.com>
47725
47726         Reviewed by Sam Weinig.
47727
47728         REGRESSION (r40234): Launching iTunes from a link displays a
47729         "Safari can't find the Internet plug-in" sheet in Safari
47730         rdar://problem/6533678
47731
47732         * rendering/RenderPartObject.cpp:
47733         (WebCore::havePlugin): Put the check for empty string in here.
47734         (WebCore::serviceTypeForClassId): Only return activeXType() if
47735         we have a plug-in that can handle that type. While it might be logical
47736         to return an Active X type for any <object> with a classId in it,
47737         even if we don't have a plug-in that implements Active X, existing
47738         clients, such as Safari, don't expect that.
47739
47740 2009-01-27  Dan Bernstein  <mitz@apple.com>
47741
47742         Reviewed by Steve Falkenburg.
47743
47744         - fix <rdar://problem/6524351> Text looks bad when font smoothing is
47745           forced off
47746
47747         * platform/graphics/win/FontCGWin.cpp:
47748         (WebCore::Font::drawGlyphs): Changed to use GDI rather than Core
47749         Graphics if the client has turned font smoothing off.
47750
47751 2009-01-27  Simon Fraser  <simon.fraser@apple.com>
47752
47753         Reviewed by Dave Hyatt
47754
47755         https://bugs.webkit.org/show_bug.cgi?id=23360
47756
47757         Use the new container-relative repaint methods to compute
47758         post-layout repaints, and repaints using RenderLayer's
47759         cached repaintRect() relative to that container, rather than
47760         using absolute coords.
47761
47762         Replaced lots of boilerplate old/new rect code in various
47763         layout methods with a stack-based LayoutRepainter class, and
47764         fixed a bug in RenderTable which set didFullRepaint to
47765         'true' every time.
47766
47767         * rendering/RenderBlock.cpp:
47768         (WebCore::RenderBlock::layoutBlock):
47769         * rendering/RenderFlexibleBox.cpp:
47770         (WebCore::RenderFlexibleBox::layoutBlock):
47771         * rendering/RenderForeignObject.cpp:
47772         (WebCore::RenderForeignObject::layout):
47773         * rendering/RenderLayer.cpp:
47774         (WebCore::RenderLayer::updateLayerPositions):
47775         (WebCore::RenderLayer::setHasVisibleContent):
47776         * rendering/RenderLayer.h:
47777         * rendering/RenderObject.cpp:
47778         (WebCore::RenderObject::repaintUsingContainer):
47779         (WebCore::RenderObject::repaint):
47780         (WebCore::RenderObject::repaintRectangle):
47781         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
47782         * rendering/RenderObject.h:
47783         (WebCore::RenderObject::LayoutRepainter::LayoutRepainter):
47784         (WebCore::RenderObject::LayoutRepainter::repaintAfterLayout):
47785         (WebCore::RenderObject::LayoutRepainter::checkForRepaint):
47786         * rendering/RenderPath.cpp:
47787         (WebCore::RenderPath::layout):
47788         * rendering/RenderReplaced.cpp:
47789         (WebCore::RenderReplaced::layout):
47790         * rendering/RenderSVGContainer.cpp:
47791         (WebCore::RenderSVGContainer::layout):
47792         * rendering/RenderSVGImage.cpp:
47793         (WebCore::RenderSVGImage::layout):
47794         * rendering/RenderSVGRoot.cpp:
47795         (WebCore::RenderSVGRoot::layout):
47796         * rendering/RenderSVGText.cpp:
47797         (WebCore::RenderSVGText::layout):
47798         * rendering/RenderSVGViewportContainer.cpp:
47799         (WebCore::RenderSVGViewportContainer::layout):
47800         * rendering/RenderTable.cpp:
47801         (WebCore::RenderTable::layout):
47802         * rendering/bidi.cpp:
47803         (WebCore::RenderBlock::layoutInlineChildren):
47804
47805 2009-01-27  Brady Eidson  <beidson@apple.com>
47806
47807         Reviewed by Darin Adler
47808
47809         <rdar://problem/3541409> - More groundwork and cleanup for CachedFrames
47810
47811         * history/CachedFrame.cpp:
47812         (WebCore::CachedFrame::CachedFrame): Make the savePlatformDataToCachedFrame() client call here,
47813           and add the code for caching subframes.
47814         (WebCore::CachedFrame::clear):
47815         * history/CachedFrame.h: Change to be RefCounted
47816         (WebCore::CachedFrame::create):
47817         (WebCore::CachedFrame::url):
47818
47819         * history/CachedPage.cpp:
47820         (WebCore::CachedPage::CachedPage):
47821         (WebCore::CachedPage::restore):
47822         * history/CachedPage.h:
47823         (WebCore::CachedPage::document):
47824         (WebCore::CachedPage::documentLoader):
47825         (WebCore::CachedPage::view):
47826         (WebCore::CachedPage::url):
47827         (WebCore::CachedPage::domWindow):
47828         (WebCore::CachedPage::cachedMainFrame):
47829
47830         * loader/FrameLoader.cpp:
47831         (WebCore::FrameLoader::cachePageForHistoryItem): Move the platform data saving into the
47832           CachedFrame itself.
47833
47834 2009-01-27  Simon Fraser  <simon.fraser@apple.com>
47835
47836         Reviewed by Dave Hyatt
47837
47838         Flip the arguments of computeRectForRepaint() from
47839             computeRectForRepaint(IntRect&, RenderBox* repaintContainer, bool)
47840         to
47841             computeRectForRepaint(RenderBox* repaintContainer, IntRect&, bool)
47842
47843         * rendering/RenderBox.cpp:
47844         (WebCore::RenderBox::clippedOverflowRectForRepaint):
47845         (WebCore::RenderBox::computeRectForRepaint):
47846         * rendering/RenderBox.h:
47847         * rendering/RenderForeignObject.cpp:
47848         (WebCore::RenderForeignObject::computeRectForRepaint):
47849         * rendering/RenderForeignObject.h:
47850         * rendering/RenderInline.cpp:
47851         (WebCore::RenderInline::clippedOverflowRectForRepaint):
47852         * rendering/RenderObject.cpp:
47853         (WebCore::RenderObject::computeRectForRepaint):
47854         * rendering/RenderObject.h:
47855         (WebCore::RenderObject::computeAbsoluteRepaintRect):
47856         * rendering/RenderReplaced.cpp:
47857         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
47858         * rendering/RenderTableCell.cpp:
47859         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
47860         (WebCore::RenderTableCell::computeRectForRepaint):
47861         * rendering/RenderTableCell.h:
47862         * rendering/RenderView.cpp:
47863         (WebCore::RenderView::computeRectForRepaint):
47864         * rendering/RenderView.h:
47865
47866 2009-01-27  David Kilzer  <ddkilzer@apple.com>
47867
47868         Add missing header guards to AccessibilityObjectWrapper.h
47869
47870         Reviewed by Anders Carlsson.
47871
47872         * page/mac/AccessibilityObjectWrapper.h: Added missing header guards.
47873
47874 2009-01-27  Simon Fraser  <simon.fraser@apple.com>
47875
47876         Reviewed by Dave Hyatt
47877
47878         https://bugs.webkit.org/show_bug.cgi?id=23567
47879
47880         Fix crash of svg/custom/stop-crash.svg testcase because of
47881         infinite recursion, as I missed replacing absoluteClippedOverflowRect()
47882         with clippedOverflowRectForRepaint() in RenderSVGGradientStop.
47883
47884         Also fix a missed conversion in RenderTableCol, and add a couple
47885         of comments.
47886
47887         * rendering/RenderSVGGradientStop.h:
47888         (WebCore::RenderSVGGradientStop::clippedOverflowRectForRepaint):
47889         * rendering/RenderSVGImage.cpp:
47890         (WebCore::RenderSVGImage::imageChanged):
47891         * rendering/RenderTableCol.cpp:
47892         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
47893         * rendering/RenderTableRow.cpp:
47894         (WebCore::RenderTableRow::layout):
47895
47896 2009-01-27  Adele Peterson  <adele@apple.com>
47897
47898         RS by Dave Hyatt
47899
47900         Use the textfield appearance for search fields in themeWin.css so the border/background
47901         styling will work correctly on these fields.
47902
47903         * css/themeWin.css:
47904
47905 2009-01-27  Dan Bernstein  <mitz@apple.com>
47906
47907         - build fix
47908
47909         * bindings/js/JSHTMLInputElementCustom.cpp:
47910         (WebCore::JSHTMLInputElement::setSelectionStart):
47911         (WebCore::JSHTMLInputElement::setSelectionEnd):
47912         (WebCore::JSHTMLInputElement::setSelectionRange):
47913
47914 2009-01-27  Dan Bernstein  <mitz@apple.com>
47915
47916         - build fix
47917
47918         * platform/graphics/Gradient.cpp:
47919         (WebCore::Gradient::setSpreadMethod):
47920
47921 2009-01-27  Paul Godavari  <paul@chromium.org>
47922
47923         Reviewed by Eric Seidel.
47924
47925         https://bugs.webkit.org/show_bug.cgi?id=23561
47926         Explicitly send the MIME type from an image dragged from a web
47927         page to the desktop, to Chromium so that it can properly generate
47928         a file name.
47929
47930         * platform/chromium/ChromiumDataObject.cpp:
47931         (WebCore::ChromiumDataObject::clear):
47932         (WebCore::ChromiumDataObject::hasData):
47933         * platform/chromium/ChromiumDataObject.h:
47934         * platform/chromium/ClipboardChromium.cpp:
47935         (WebCore::writeImageToDataObject):
47936
47937 2009-01-27  Mads Ager  <ager@chromium.org>
47938
47939         Reviewed by Darin Adler.
47940
47941         https://bugs.webkit.org/show_bug.cgi?id=23300
47942         Follow Firefox in throwing exceptions when using selection
47943         functions on HTMLInputElements that cannot have selection.
47944
47945         This requires custom setSelectionRange, setSelectionStart and
47946         setSelectionEnd implementations, but it gets rid of the custom
47947         getOwnPropertySlot.
47948
47949         * bindings/js/JSHTMLInputElementCustom.cpp:
47950         (WebCore::JSHTMLInputElement::selectionStart):
47951         (WebCore::JSHTMLInputElement::selectionEnd):
47952         (WebCore::JSHTMLInputElement::setSelectionRange):
47953         * html/HTMLInputElement.idl:
47954
47955 2009-01-27  Evan Stade  <estade@chromium.org>
47956
47957         Reviewed by Nikolas Zimmermann.
47958
47959         https://bugs.webkit.org/show_bug.cgi?id=23435
47960         Make spreadMethod a member of Gradient rather than GraphicsContext.
47961         Implement spreadMethod for Skia.
47962
47963         * platform/graphics/Gradient.cpp:
47964         (WebCore::Gradient::Gradient):
47965         * platform/graphics/Gradient.h:
47966         (WebCore::Gradient::setSpreadMethod):
47967         (WebCore::Gradient::spreadMethod):
47968         * platform/graphics/GraphicsContext.cpp:
47969         * platform/graphics/GraphicsContext.h:
47970         * platform/graphics/GraphicsContextPrivate.h:
47971         * platform/graphics/GraphicsTypes.h:
47972         (WebCore::):
47973         * platform/graphics/cairo/GradientCairo.cpp:
47974         (WebCore::Gradient::platformGradient):
47975         * platform/graphics/cairo/GraphicsContextCairo.cpp:
47976         (WebCore::GraphicsContext::fillPath):
47977         (WebCore::GraphicsContext::strokePath):
47978         * platform/graphics/qt/GradientQt.cpp:
47979         (WebCore::Gradient::platformGradient):
47980         * platform/graphics/qt/GraphicsContextQt.cpp:
47981         (WebCore::GraphicsContext::fillPath):
47982         (WebCore::GraphicsContext::strokePath):
47983         * platform/graphics/skia/GradientSkia.cpp:
47984         (WebCore::Gradient::platformGradient):
47985         * svg/SVGLinearGradientElement.cpp:
47986         (WebCore::SVGLinearGradientElement::buildGradient):
47987         * svg/SVGRadialGradientElement.cpp:
47988         (WebCore::SVGRadialGradientElement::buildGradient):
47989         * svg/graphics/SVGPaintServerGradient.cpp:
47990         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
47991         (WebCore::SVGPaintServerGradient::setup):
47992         (WebCore::SVGPaintServerGradient::externalRepresentation):
47993         * svg/graphics/SVGPaintServerGradient.h:
47994
47995 2009-01-27  Ariya Hidayat  <ariya.hidayat@trolltech.com>
47996
47997         Rubber-stamped by Simon Hausmann.
47998
47999         http://qt.nokia.com/developer/task-tracker/index_html?id=238662&method=entry
48000
48001         [Qt] Map function keys F1 to F24.
48002
48003         * platform/qt/PlatformKeyboardEventQt.cpp:
48004         (WebCore::windowsKeyCodeForKeyEvent):
48005
48006 2009-01-27  Brady Eidson  <beidson@apple.com>
48007
48008         Reviewed by Dan Bernstein
48009
48010         Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage
48011
48012         * WebCore.base.exp:
48013         * history/CachedPage.cpp:
48014         * history/CachedPage.h:
48015         (WebCore::CachedPage::cachedMainFrame):
48016
48017         * loader/EmptyClients.h:
48018         (WebCore::EmptyFrameLoaderClient::savePlatformDataToCachedFrame):
48019         (WebCore::EmptyFrameLoaderClient::transitionToCommittedFromCachedFrame):
48020
48021         * loader/FrameLoader.cpp:
48022         (WebCore::FrameLoader::restoreDocumentState):
48023         (WebCore::FrameLoader::commitProvisionalLoad):
48024         (WebCore::FrameLoader::transitionToCommitted):
48025         (WebCore::FrameLoader::cachePageForHistoryItem):
48026         * loader/FrameLoaderClient.h:
48027
48028 2009-01-26  Simon Fraser  <simon.fraser@apple.com>
48029
48030         Reviewed by Dave Hyatt
48031
48032         https://bugs.webkit.org/show_bug.cgi?id=23360
48033
48034         Add variants of all the methods that compute dirty rects for repainting
48035         with versions that compute those rects relative to some container
48036         RenderBox that acts as a painting root.
48037
48038         * rendering/RenderBox.cpp:
48039         (WebCore::RenderBox::styleDidChange):
48040         (WebCore::RenderBox::outlineBoundsForRepaint):
48041         (WebCore::RenderBox::localToContainerQuad):
48042         (WebCore::RenderBox::clippedOverflowRectForRepaint):
48043         (WebCore::RenderBox::computeRectForRepaint):
48044         * rendering/RenderBox.h:
48045         * rendering/RenderForeignObject.cpp:
48046         (WebCore::RenderForeignObject::computeRectForRepaint):
48047         * rendering/RenderForeignObject.h:
48048         * rendering/RenderInline.cpp:
48049         (WebCore::RenderInline::clippedOverflowRectForRepaint):
48050         * rendering/RenderInline.h:
48051         * rendering/RenderObject.cpp:
48052         (WebCore::RenderObject::containerForRepaint):
48053         (WebCore::RenderObject::repaint):
48054         (WebCore::RenderObject::repaintRectangle):
48055         (WebCore::RenderObject::rectWithOutlineForRepaint):
48056         (WebCore::RenderObject::clippedOverflowRectForRepaint):
48057         (WebCore::RenderObject::computeRectForRepaint):
48058         (WebCore::RenderObject::localToContainerQuad):
48059         * rendering/RenderObject.h:
48060         (WebCore::RenderObject::localToAbsoluteQuad):
48061         (WebCore::RenderObject::absoluteClippedOverflowRect):
48062         (WebCore::RenderObject::computeAbsoluteRepaintRect):
48063         (WebCore::RenderObject::absoluteOutlineBounds):
48064         (WebCore::RenderObject::outlineBoundsForRepaint):
48065         * rendering/RenderPath.cpp:
48066         (WebCore::RenderPath::clippedOverflowRectForRepaint):
48067         (WebCore::RenderPath::outlineBoundsForRepaint):
48068         * rendering/RenderPath.h:
48069         * rendering/RenderReplaced.cpp:
48070         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
48071         * rendering/RenderReplaced.h:
48072         * rendering/RenderSVGContainer.cpp:
48073         (WebCore::RenderSVGContainer::clippedOverflowRectForRepaint):
48074         (WebCore::RenderSVGContainer::outlineBoundsForRepaint):
48075         * rendering/RenderSVGContainer.h:
48076         * rendering/RenderSVGHiddenContainer.cpp:
48077         (WebCore::RenderSVGHiddenContainer::clippedOverflowRectForRepaint):
48078         * rendering/RenderSVGHiddenContainer.h:
48079         * rendering/RenderSVGImage.cpp:
48080         (WebCore::RenderSVGImage::clippedOverflowRectForRepaint):
48081         * rendering/RenderSVGImage.h:
48082         * rendering/RenderSVGRoot.cpp:
48083         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
48084         * rendering/RenderSVGRoot.h:
48085         * rendering/RenderSVGText.cpp:
48086         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
48087         * rendering/RenderSVGText.h:
48088         * rendering/RenderTableCell.cpp:
48089         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
48090         (WebCore::RenderTableCell::computeRectForRepaint):
48091         (WebCore::RenderTableCell::localToContainerQuad):
48092         * rendering/RenderTableCell.h:
48093         * rendering/RenderTableCol.cpp:
48094         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
48095         * rendering/RenderTableCol.h:
48096         * rendering/RenderTableRow.cpp:
48097         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
48098         * rendering/RenderTableRow.h:
48099         * rendering/RenderText.cpp:
48100         (WebCore::RenderText::clippedOverflowRectForRepaint):
48101         * rendering/RenderText.h:
48102         * rendering/RenderView.cpp:
48103         (WebCore::RenderView::localToContainerQuad):
48104         (WebCore::RenderView::computeRectForRepaint):
48105         * rendering/RenderView.h:
48106
48107 2009-01-26  Simon Fraser  <simon.fraser@apple.com>
48108
48109         Reviewed by David Hyatt
48110
48111         Back out r40285, because it was checked in with no bug number, no
48112         testcase, is rendering change that did not get thorough review,
48113         and broke the Mac build.
48114
48115         * page/EventHandler.cpp:
48116         (WebCore::EventHandler::hitTestResultAtPoint):
48117         * page/EventHandler.h:
48118         * rendering/HitTestRequest.h:
48119         (WebCore::HitTestRequest::HitTestRequest):
48120         * rendering/RenderLayer.cpp:
48121         (WebCore::RenderLayer::hitTest):
48122
48123 2009-01-26  Brady Eidson  <beidson@apple.com>
48124
48125         Reviewed by Darin Adler
48126
48127         -Make the recently added back/forward cache logging much better by actually
48128          walking the entire frame tree and indenting the resulting output.
48129         -Fix a null-termination bug in HistoryItem tree logging
48130
48131         * history/HistoryItem.cpp:
48132         (WebCore::HistoryItem::showTreeWithIndent):
48133
48134         * loader/FrameLoader.cpp:
48135         (WebCore::pageCacheLogPrefix):
48136         (WebCore::pageCacheLog):
48137         (WebCore::FrameLoader::logCanCachePageDecision):
48138         (WebCore::FrameLoader::logCanCacheFrameDecision):
48139         * loader/FrameLoader.h:
48140
48141 2009-01-26  Adam Treat  <adam.treat@torchmobile.com>
48142
48143         Reviewed by Nikolas Zimmermann.
48144
48145         Allow option of hit testing frame content without clipping to the visible
48146         viewport.
48147
48148         * page/EventHandler.cpp:
48149         (WebCore::EventHandler::hitTestResultAtPoint):
48150         * page/EventHandler.h:
48151         * rendering/HitTestRequest.h:
48152         (WebCore::HitTestRequest::HitTestRequest):
48153         * rendering/RenderLayer.cpp:
48154         (WebCore::RenderLayer::hitTest):
48155
48156 2009-01-26  Sam Weinig  <sam@webkit.org>
48157
48158         Reviewed by Dan Bernstein.
48159
48160         Fix for https://bugs.webkit.org/show_bug.cgi?id=18141
48161         Acid3 tests 77 and 78 fail on reload due to SVG font race
48162         <rdar://problem/6504899>
48163
48164         Match Opera's behavior of loading SVGFonts as soon as <font-face-uri>
48165         tag is inserted into the document and not at the first use of the font
48166         as is done for CSS web fonts.
48167
48168         This fixes a race condition noticeable by some in the Acid3 test that
48169         happened because the onload event handler for an iframe containing a
48170         <font-face-uri> with an external reference was not delayed by the pending
48171         load of the font.
48172
48173         Test: http/tests/misc/SVGFont-delayed-load.html
48174
48175         * svg/SVGFontFaceUriElement.cpp:
48176         (WebCore::SVGFontFaceUriElement::~SVGFontFaceUriElement):
48177         (WebCore::SVGFontFaceUriElement::parseMappedAttribute): Call loadFont if
48178         the href attribute changes.
48179         (WebCore::SVGFontFaceUriElement::insertedIntoDocument): Call loadFont.
48180         (WebCore::SVGFontFaceUriElement::loadFont): Force a load of the
48181         font specified in href attribute.
48182         * svg/SVGFontFaceUriElement.h:
48183
48184 2009-01-26  Timothy Hatcher  <timothy@apple.com>
48185
48186         Change Web Archive serialization back to the binary property list format.
48187
48188         <rdar://problem/6127865> Web archives saved with Safari 4 cannot be read by Safari 3
48189
48190         Reviewed by Brady Eidson.
48191
48192         * loader/archive/cf/LegacyWebArchive.cpp:
48193         (WebCore::LegacyWebArchive::rawDataRepresentation):
48194
48195 2009-01-26  Anders Carlsson  <andersca@apple.com>
48196
48197         Fix 64-bit build.
48198
48199         * WebCore.LP64.exp:
48200
48201 2009-01-26  Dmitry Titov  <dimich@chromium.org>
48202
48203         Reviewed by Alexey Proskuryakov.
48204
48205         https://bugs.webkit.org/show_bug.cgi?id=23511
48206         Move DOMTimer from bindings/js to page/.
48207         This was prepared by moving all JSC dependencies from DOMTimer
48208         to ScheduledAction earlier, and helps unfork the Chromuim version
48209         of the DOMTimer.
48210
48211         * GNUmakefile.am:
48212         * WebCore.pro:
48213         * WebCore.scons:
48214         * WebCore.vcproj/WebCore.vcproj:
48215         * WebCore.xcodeproj/project.pbxproj:
48216         * WebCoreSources.bkl:
48217         * bindings/js/DOMTimer.cpp: Removed.
48218         * bindings/js/DOMTimer.h: Removed.
48219         * page/DOMTimer.cpp: Copied from WebCore/bindings/js/DOMTimer.cpp.
48220         * page/DOMTimer.h: Copied from WebCore/bindings/js/DOMTimer.h.
48221
48222 2009-01-26  David Hyatt  <hyatt@apple.com>
48223
48224         Eliminate rightmostPosition, lowestPosition and leftmostPosition from RenderFlow.  Move the code into
48225         RenderBlock's methods.
48226
48227         Reviewed by Eric Seidel
48228
48229         * rendering/RenderBlock.cpp:
48230         (WebCore::RenderBlock::lowestPosition):
48231         (WebCore::RenderBlock::rightmostPosition):
48232         (WebCore::RenderBlock::leftmostPosition):
48233         * rendering/RenderFlow.cpp:
48234         * rendering/RenderFlow.h:
48235
48236 2009-01-26  Darin Fisher  <darin@chromium.org>
48237
48238         Reviewed by Eric Seidel.
48239
48240         https://bugs.webkit.org/show_bug.cgi?id=23553
48241         Upstream changes from jcampan to fix chromium bugs 6692 and 6694.
48242
48243         * platform/chromium/PopupMenuChromium.cpp:
48244         (WebCore::PopupListBox::setLoopSelectionNavigation):
48245         (WebCore::PopupListBox::PopupListBox):
48246         (WebCore::PopupContainer::setLoopSelectionNavigation):
48247         (WebCore::PopupListBox::handleKeyEvent):
48248         (WebCore::PopupListBox::paintRow):
48249         (WebCore::PopupListBox::clearSelection):
48250         (WebCore::PopupListBox::selectNextRow):
48251         (WebCore::PopupListBox::selectPreviousRow):
48252         * platform/chromium/PopupMenuChromium.h:
48253
48254 2009-01-26  Brady Eidson  <beidson@apple.com>
48255
48256         Reviewed by Sam Weinig
48257
48258         Remove some historical CachedPage time stamp fluff.
48259
48260         * history/CachedPage.cpp:
48261         (WebCore::CachedPage::CachedPage):
48262         * history/CachedPage.h:
48263         (WebCore::CachedPage::timeStamp):
48264
48265         * loader/FrameLoader.cpp:
48266         (WebCore::FrameLoader::cachePageForHistoryItem):
48267
48268 2009-01-26  David Hyatt  <hyatt@apple.com>
48269
48270         Move absoluteClippedOverflowRect, linesBoundingBox and borderBoundingBox from RenderFlow to RenderInline.
48271
48272         Reviewed by Eric Seidel
48273
48274         * rendering/RenderBox.cpp:
48275         (WebCore::RenderBox::containingBlockHeightForPositioned):
48276         * rendering/RenderFlow.cpp:
48277         * rendering/RenderFlow.h:
48278         * rendering/RenderInline.cpp:
48279         (WebCore::RenderInline::linesBoundingBox):
48280         (WebCore::RenderInline::absoluteClippedOverflowRect):
48281         * rendering/RenderInline.h:
48282         (WebCore::RenderInline::borderBoundingBox):
48283         * rendering/RenderLayer.cpp:
48284         (WebCore::RenderLayer::updateLayerPosition):
48285         * rendering/RenderTreeAsText.cpp:
48286         (WebCore::operator<<):
48287
48288 2009-01-26  Dimitri Glazkov  <dglazkov@chromium.org>
48289
48290         Reviewed by Eric Seidel.
48291
48292         https://bugs.webkit.org/show_bug.cgi?id=22650
48293         Implement support for "Immutable" attribute to CodeGeneratorJS.pm, thus
48294         allowing to explicitly mark methods as immutable (i.e. returning a new
48295         instance rather than a reference to an existing instance).
48296
48297         * bindings/js/JSSVGMatrixCustom.cpp: Removed custom methods.
48298         * bindings/scripts/CodeGeneratorJS.pm: Added check for Immutable
48299             attribute when generating function call.
48300         * svg/SVGMatrix.idl: Replaced Custom attribute with Immutable on
48301             methods.
48302
48303 2009-01-26  David Hyatt  <hyatt@apple.com>
48304
48305         Eliminate isInlineFlow() now that a RenderBlock can never be an inline flow.  isInlineFlow() is now
48306         equivalent to isRenderInline(), so all calls to isInlineFlow() have been replaced with isRenderInline().
48307
48308         Reviewed by Eric Seidel
48309
48310         * dom/Text.cpp:
48311         (WebCore::Text::rendererIsNeeded):
48312         * rendering/InlineFlowBox.cpp:
48313         (WebCore::InlineFlowBox::placeBoxesHorizontally):
48314         (WebCore::shouldDrawTextDecoration):
48315         * rendering/RenderBlock.cpp:
48316         (WebCore::RenderBlock::hitTestContents):
48317         (WebCore::InlineMinMaxIterator::next):
48318         (WebCore::RenderBlock::calcInlinePrefWidths):
48319         * rendering/RenderBlock.h:
48320         (WebCore::RenderBlock::isBlockFlow):
48321         * rendering/RenderBox.cpp:
48322         (WebCore::RenderBox::clientWidth):
48323         (WebCore::RenderBox::clientHeight):
48324         (WebCore::RenderBox::nodeAtPoint):
48325         (WebCore::RenderBox::imageChanged):
48326         (WebCore::RenderBox::offsetForPositionedInContainer):
48327         (WebCore::RenderBox::containingBlockWidthForPositioned):
48328         (WebCore::RenderBox::containingBlockHeightForPositioned):
48329         * rendering/RenderBox.h:
48330         (WebCore::RenderBox::width):
48331         (WebCore::RenderBox::height):
48332         (WebCore::RenderBox::size):
48333         (WebCore::RenderBox::frameRect):
48334         * rendering/RenderContainer.cpp:
48335         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
48336         * rendering/RenderFlow.cpp:
48337         (WebCore::RenderFlow::dirtyLinesFromChangedChild):
48338         (WebCore::RenderFlow::createInlineBox):
48339         (WebCore::RenderFlow::paintLines):
48340         (WebCore::RenderFlow::hitTestLines):
48341         (WebCore::RenderFlow::absoluteClippedOverflowRect):
48342         (WebCore::RenderFlow::lowestPosition):
48343         (WebCore::RenderFlow::rightmostPosition):
48344         (WebCore::RenderFlow::leftmostPosition):
48345         * rendering/RenderFlow.h:
48346         (WebCore::RenderFlow::borderBoundingBox):
48347         * rendering/RenderInline.h:
48348         (WebCore::RenderInline::isRenderInline):
48349         * rendering/RenderLayer.cpp:
48350         (WebCore::RenderLayer::updateLayerPosition):
48351         (WebCore::RenderLayer::intersectsDamageRect):
48352         (WebCore::RenderLayer::boundingBox):
48353         * rendering/RenderListItem.cpp:
48354         (WebCore::getParentOfFirstLineBox):
48355         * rendering/RenderObject.cpp:
48356         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
48357         (WebCore::RenderObject::styleWillChange):
48358         (WebCore::RenderObject::firstLineStyle):
48359         * rendering/RenderObject.h:
48360         * rendering/RenderSVGInline.cpp:
48361         (WebCore::RenderSVGInline::createInlineBox):
48362         * rendering/RenderSVGText.cpp:
48363         (WebCore::RenderSVGText::createInlineBox):
48364         * rendering/RenderTableRow.cpp:
48365         (WebCore::RenderTableRow::nodeAtPoint):
48366         * rendering/RenderTableSection.cpp:
48367         (WebCore::RenderTableSection::nodeAtPoint):
48368         * rendering/RenderText.cpp:
48369         (WebCore::isInlineFlowOrEmptyText):
48370         * rendering/RenderTreeAsText.cpp:
48371         (WebCore::operator<<):
48372         * rendering/bidi.cpp:
48373         (WebCore::bidiNext):
48374         (WebCore::bidiFirst):
48375         (WebCore::appendRunsForObject):
48376         (WebCore::RenderBlock::createLineBoxes):
48377         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
48378         (WebCore::RenderBlock::layoutInlineChildren):
48379         (WebCore::inlineFlowRequiresLineBox):
48380         (WebCore::requiresLineBox):
48381         (WebCore::RenderBlock::skipTrailingWhitespace):
48382         (WebCore::RenderBlock::skipLeadingWhitespace):
48383         (WebCore::RenderBlock::findNextLineBreak):
48384
48385 2009-01-26  David Hyatt  <hyatt@apple.com>
48386
48387         Drop support for display:compact.
48388
48389         (1) display:compact is no longer part of CSS2.1.
48390         (2) Shipping Safari has completely broken compact support with severely broken rendering
48391         (all of the compact text just piles on top of the text in the inserted block and on top of itself as well).
48392         (3) This has been broken in WebKit for years (ever since blocks converted to painting lines directly) without
48393         anyone even noticing.
48394
48395         Reviewed by Eric Seidel
48396
48397         * rendering/InlineFlowBox.cpp:
48398         (WebCore::InlineFlowBox::placeBoxesHorizontally):
48399         * rendering/RenderBlock.cpp:
48400         (WebCore::RenderBlock::handleSpecialChild):
48401         (WebCore::RenderBlock::handleRunInChild):
48402         (WebCore::RenderBlock::layoutBlockChildren):
48403         (WebCore::RenderBlock::paint):
48404         (WebCore::RenderBlock::paintObject):
48405         (WebCore::RenderBlock::nodeAtPoint):
48406         (WebCore::RenderBlock::positionForCoordinates):
48407         (WebCore::shouldCheckLines):
48408         (WebCore::getHeightForLineCount):
48409         (WebCore::RenderBlock::renderName):
48410         * rendering/RenderBlock.h:
48411         * rendering/RenderBox.cpp:
48412         (WebCore::RenderBox::sizesToIntrinsicWidth):
48413         * rendering/RenderBox.h:
48414         (WebCore::RenderBox::width):
48415         (WebCore::RenderBox::height):
48416         (WebCore::RenderBox::size):
48417         (WebCore::RenderBox::frameRect):
48418         * rendering/RenderFlow.cpp:
48419         (WebCore::RenderFlow::paintLines):
48420         (WebCore::RenderFlow::hitTestLines):
48421         (WebCore::RenderFlow::absoluteClippedOverflowRect):
48422         (WebCore::RenderFlow::linesBoundingBox):
48423         * rendering/RenderObject.h:
48424         (WebCore::RenderObject::isInline):
48425         * rendering/bidi.cpp:
48426         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
48427         (WebCore::RenderBlock::layoutInlineChildren):
48428         * rendering/bidi.h:
48429         (WebCore::BidiRun::BidiRun):
48430
48431 2009-01-26  Adam Langley  <agl@google.com>
48432
48433         Reviewed by Nikolas Zimmermann.
48434
48435         gtk2drawing: fix compiler warnings
48436
48437         g_object_set_data expects a gpointer as the last argument. Cast the
48438           TRUE/FALSE values to avoid a warning.
48439         gtk_tree_view_column_new doesn't return a GtkWidget.
48440
48441         * platform/gtk/gtk2drawing.c:
48442         (setup_widget_prototype):
48443         (moz_gtk_get_combo_box_inner_button):
48444         (moz_gtk_get_combo_box_button_inner_widgets):
48445         (ensure_combo_box_widgets):
48446         (moz_gtk_get_combo_box_entry_inner_widgets):
48447         (moz_gtk_get_combo_box_entry_arrow):
48448         (ensure_combo_box_entry_widgets):
48449         (ensure_toolbar_widget):
48450         (ensure_menu_bar_item_widget):
48451         (ensure_menu_popup_widget):
48452         (ensure_menu_item_widget):
48453         (ensure_image_menu_item_widget):
48454         (ensure_menu_separator_widget):
48455         (ensure_check_menu_item_widget):
48456         (ensure_tree_header_cell_widget):
48457         (moz_gtk_entry_paint):
48458
48459 2009-01-26  David Hyatt  <hyatt@apple.com>
48460
48461         Change display:run-in handling so that we no longer reuse RenderBlock as though it is an inline flow.
48462         Instead we create a new RenderInline, move the RenderBlock's children underneath it, and then set the
48463         inline as the new element's renderer.
48464
48465         Reviewed by Dan Bernstein
48466
48467         * rendering/RenderBlock.cpp:
48468         (WebCore::RenderBlock::handleRunInChild):
48469         * rendering/RenderInline.cpp:
48470         (WebCore::RenderInline::renderName):
48471
48472 2009-01-26  Dimitri Glazkov  <dglazkov@chromium.org>
48473
48474         Reviewed by Darin Adler.
48475
48476         https://bugs.webkit.org/show_bug.cgi?id=23480
48477         Add missing method stubs to BackForwardListChromium.
48478
48479         * history/BackForwardListChromium.cpp:
48480         (WebCore::BackForwardList::backItem):
48481         (WebCore::BackForwardList::forwardItem):
48482
48483 2009-01-25  Darin Adler  <darin@apple.com>
48484
48485         Try to fix Tiger buildbot.
48486
48487         * WebCore.xcodeproj/project.pbxproj: Turn off cast-qual for WebDashboardRegion.m.
48488         * page/mac/WebDashboardRegion.m:
48489         (typeName): Added.
48490         (-[WebDashboardRegion description]): Use typeName.
48491         (-[WebDashboardRegion isEqual:]): Added comment.
48492
48493 2009-01-25  Alexey Proskuryakov  <ap@webkit.org>
48494
48495         Reviewed by Darin Adler.
48496
48497         https://bugs.webkit.org/show_bug.cgi?id=23535
48498         Strengthen debug checks in KURL
48499
48500         Covered (and prompted) by existing tests.
48501
48502         * platform/KURL.cpp:
48503         (WebCore::checkEncodedString): Check that the first character of the URL is an allowed
48504         first scheme character, not just that it isn't a slash.
48505         (WebCore::KURL::KURL): Assert that parsing didn't affect the string (which must be the case
48506         because of parsing being idempotent).
48507
48508         * page/SecurityOrigin.cpp:
48509         (WebCore::SecurityOrigin::create): Added a check for the URL being valid - if it is not, an
48510         empty security origin is created.
48511         (WebCore::SecurityOrigin::createFromString): Parse the string as URL, do not just convert
48512         it - it is not guaranteed to be properly encoded.
48513
48514         * dom/Document.cpp: (WebCore::Document::updateBaseURL): As documentURI is an arbitrary
48515         string, it needs to be parsed into an URL, not just converted into one.
48516
48517         * html/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::createPattern):
48518         Create the security origin with createFromString() instead of create(). I do not know where
48519         the string comes from and whether it might not be properly encoded, but this change can't
48520         hurt, and makes the code slightly more clear.
48521
48522         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::accessControlCheck): Create the security
48523         origin with createFromString() instead of create(). The string comes from an HTTP response
48524         header, so it may not be a properly encoded URL.
48525
48526         * loader/DocLoader.cpp: (WebCore::DocLoader::requestResource): Do not try to request using
48527         invalid URLs.
48528
48529         * page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage): Updated to call
48530         SecurityOrigin::createFromString() (no change in behavior).
48531
48532 2009-01-25  Mark Rowe  <mrowe@apple.com>
48533
48534         Rubber-stamped by Dan Bernstein.
48535
48536         Improve the consistency of settings in our .xcconfig files.
48537
48538         * Configurations/Base.xcconfig: Enable GCC_OBJC_CALL_CXX_CDTORS to match other projects,
48539         and handle all cases in GCC_GENERATE_DEBUGGING_SYMBOLS.
48540
48541 2009-01-25  David Hyatt  <hyatt@apple.com>
48542
48543         Fix for https://bugs.webkit.org/show_bug.cgi?id=23524, lots of missing content in table sections.
48544
48545         The new table code created a bug involving  markAllDescendantsWithFloatsForLayout, namely that it could
48546         end up marking ancestors of a block as needing layout when that block was still in the process of
48547         doing a layout.
48548
48549         The fix is to add a parameter to markAllDescendantsWithFloatsForLayout that says whether or not
48550         we are "mid-layout."  If this flag is set, then the method will make sure to do only local dirtying
48551         of objects to avoid accidentally marking a clean ancestor as needing layout again.
48552
48553         Ultimately the second parameter to setNeedsLayout and setChildNeedsLayout should just be removed,
48554         with a check of whether or not we are mid-layout being done by those methods instead.
48555
48556         Reviewed by Oliver Hunt
48557
48558         Added fast/repaint/dynamic-table-vertical-alignment-change.html
48559
48560         * rendering/RenderBlock.cpp:
48561         (WebCore::RenderBlock::collapseMargins):
48562         (WebCore::RenderBlock::clearFloatsIfNeeded):
48563         (WebCore::RenderBlock::layoutBlockChildren):
48564         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
48565         * rendering/RenderBlock.h:
48566         * rendering/RenderObject.cpp:
48567         (WebCore::RenderObject::removeFromObjectLists):
48568         * rendering/RenderObject.h:
48569         * rendering/RenderTableSection.cpp:
48570         (WebCore::RenderTableSection::layoutRows):
48571
48572 2009-01-25  Darin Adler  <darin@apple.com>
48573
48574         Reviewed by Mark Rowe.
48575
48576         Bug 23352: Turn on more compiler warnings in the Mac build
48577         https://bugs.webkit.org/show_bug.cgi?id=23352
48578
48579         Turn on the following warnings:
48580
48581             -Wcast-qual
48582             -Wextra-tokens
48583             -Wformat=2
48584             -Winit-self
48585             -Wmissing-noreturn
48586             -Wpacked
48587             -Wrendundant-decls
48588
48589         * Configurations/Base.xcconfig: Added the new warnings. Switched to -Wextra instead of
48590         -W for clarity since we don't have to support the older versions of gcc that require the
48591         old -W syntax. Since we now use -Wformat=2, removed -Wformat-security. Also removed
48592         -Wno-format-y2k since we can have that one on now.
48593
48594 2009-01-25  Dan Bernstein  <mitz@apple.com>
48595
48596         Reviewed by Oliver Hunt.
48597
48598         - fix <rdar://problem/6525618> REGRESSION (r39566): NewsFire crashes in
48599           string hashing code when opening a Digg RSS article
48600
48601         Test: fast/loader/null-request-after-willSendRequest.html
48602
48603         * loader/FrameLoader.cpp:
48604         (WebCore::FrameLoader::loadItem): Null-check the request returned from
48605         the client's willSendRequest method.
48606
48607 2009-01-25  David Hyatt  <hyatt@apple.com>
48608
48609         Fix for <rdar://problem/6525392> REGRESSION (r40180): Scroll wheel events over text scroll the page
48610         instead of the ancestor overflow (23525)
48611
48612         Make sure that we always call scroll() on the nearest enclosing RenderBox.  No test case is possible
48613         here, since wheel scrolling is currently untestable (the offset varies from machine to machine).
48614
48615         Reviewed by Dan Bernstein
48616
48617         * page/EventHandler.cpp:
48618         (WebCore::scrollAndAcceptEvent):
48619         (WebCore::EventHandler::scrollOverflow):
48620         * rendering/RenderObject.cpp:
48621         (WebCore::RenderObject::enclosingBox):
48622         * rendering/RenderObject.h:
48623
48624 2009-01-25  Darin Adler  <darin@apple.com>
48625
48626         Reviewed by Dan Bernstein.
48627
48628         Bug 23538: REGRESSION (r39969): Garbage text instead of blank content rendered when plug-ins are disabled
48629         https://bugs.webkit.org/show_bug.cgi?id=23538
48630         rdar://problem/6523719
48631
48632         I'm not sure how to make a regression test for this, since it depends on plug-ins being disabled.
48633
48634         The main problem here is that when plug-ins were disabled, the code ignored the classId attribute and
48635         the <embed> element entirely. That resulted in a page treating a Flash document as plain HTML rather
48636         than doing fallback.
48637
48638         * rendering/RenderPartObject.cpp:
48639         (WebCore::createClassIdToTypeMap): Added. Broke this out into a separate function so we could get rid of an
48640         inelegant if statement.
48641         (WebCore::activeXType): Added. To avoid repeating the MIME type for ActiveX and possibly having a typo.
48642         (WebCore::havePlugin): Added. Helper function to make sure we don't forget the null check.
48643         (WebCore::serviceTypeForClassId): Give this function a return value since that's a more natural way to
48644         return a string than an "out" parameter.  Fixed the logic to only prefer the ActiveX type over the
48645         type guessed from the classId when there actually is an ActiveX plug-in to use. The old function assumed
48646         there was one, which I presume right for Chrome on Windows when plug-ins are enabled, but wrong in many
48647         other cases, and wrong all the time for all clients on Mac. We don't want to assume either way. Use the
48648         new havePlugin function so we handle the case where pluginData is 0.
48649         (WebCore::shouldUseEmbedDescendant): Renamed. Simplified the comment. Changed to use serviceTypeForClassId
48650         instead of the old version that used an out parameter. Always use the <embed> if there isn't a plug-in
48651         that knows how to handle <object> elements.
48652         (WebCore::RenderPartObject::updateWidget): Removed null checks of pluginData. The two functions that
48653         use this data still need to be called; they still do something even if no plug-ins are present. And
48654         they have now been corrected to handle 0 properly.
48655
48656 2009-01-25  Darin Adler  <darin@apple.com>
48657
48658         * rendering/RenderMenuList.cpp: Fix build by adding back needed include.
48659
48660 2009-01-25  Darin Adler  <darin@apple.com>
48661
48662         Reviewed by Sam Weinig.
48663
48664         Bug 23352: Turn on more compiler warnings in the Mac build
48665         https://bugs.webkit.org/show_bug.cgi?id=23352
48666
48667         Fourth patch: Deal with the last few stray warnings.
48668
48669         * rendering/RenderBlock.cpp:
48670         (WebCore::RenderBlock::firstLineBlock): Handle the const_cast a little better.
48671         Also make the local variable be a RenderBlock so the cast is closer to the code
48672         that guarantees it's correct.
48673
48674         * rendering/SVGRenderTreeAsText.cpp:
48675         (WebCore::writeStyle): Put the enum into a local variable that's a built-in
48676         type before using it with TextStream, so we don't get a warning due to -Wsign-promo.
48677
48678 2009-01-25  Darin Adler  <darin@apple.com>
48679
48680         Reviewed by Sam Weinig.
48681
48682         Bug 23522: use checked casts for render tree
48683         https://bugs.webkit.org/show_bug.cgi?id=23522
48684
48685         Step one: RenderText.
48686
48687         Also change set of RenderFlow* to be a ListHashSet as the comment in the
48688         header indicated.
48689
48690         * dom/CharacterData.cpp:
48691         (WebCore::CharacterData::setData): Use toRenderText.
48692         (WebCore::CharacterData::appendData): Ditto.
48693         (WebCore::CharacterData::insertData): Ditto.
48694         (WebCore::CharacterData::deleteData): Ditto.
48695         (WebCore::CharacterData::replaceData): Ditto.
48696         * dom/ContainerNode.cpp:
48697         (WebCore::ContainerNode::getUpperLeftCorner): Ditto.
48698         (WebCore::ContainerNode::getLowerRightCorner): Ditto.
48699         * dom/Position.cpp:
48700         (WebCore::nextRenderedEditable): Ditto.
48701         (WebCore::previousRenderedEditable): Ditto.
48702         (WebCore::Position::renderedOffset): Ditto. Also use function members
48703         instead of data members of InlineTextBox.
48704         (WebCore::Position::upstream): Ditto.
48705         (WebCore::Position::downstream): Ditto.
48706         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight): Ditto.
48707         (WebCore::Position::inRenderedText): Ditto.
48708         (WebCore::Position::isRenderedCharacter): Ditto.
48709         (WebCore::searchAheadForBetterMatch): Ditto.
48710         (WebCore::Position::getInlineBoxAndOffset): Ditto.
48711
48712         * dom/Range.cpp: Added include of VisiblePosition.h now that it's no longer
48713         included in RenderObject.h.
48714
48715         * dom/Text.cpp:
48716         (WebCore::Text::splitText): Use toRenderText.
48717         (WebCore::Text::recalcStyle): Ditto.
48718         * editing/CompositeEditCommand.cpp:
48719         (WebCore::CompositeEditCommand::deleteInsignificantText): Ditto.
48720         * editing/SelectionController.cpp:
48721         (WebCore::SelectionController::debugRenderer): Ditto.
48722         * editing/TextIterator.cpp:
48723         (WebCore::TextIterator::handleTextNode): Ditto.
48724         (WebCore::TextIterator::handleTextBox): Ditto.
48725         (WebCore::TextIterator::emitText): Ditto.
48726         (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): Ditto.
48727
48728         * editing/VisiblePosition.cpp: Added include of FloatQuad.h now that it's
48729         no longer included in RenderObject.h.
48730         * inspector/InspectorController.cpp: Ditto.
48731         * page/Frame.cpp: Ditto.
48732         * rendering/RenderBox.cpp: Ditto.
48733         * rendering/RenderInline.cpp: Ditto.
48734         * rendering/RenderPath.cpp: Ditto.
48735         * rendering/RenderSVGContainer.cpp: Ditto.
48736         * rendering/RenderSVGImage.cpp: Ditto.
48737         * rendering/RenderSVGInlineText.cpp: Ditto.
48738         * rendering/RenderSVGTSpan.cpp: Ditto.
48739         * rendering/RenderSVGText.cpp: Ditto.
48740         * rendering/RenderSVGTextPath.cpp: Ditto.
48741         * rendering/RenderTableCell.cpp: Ditto.
48742         * rendering/RenderView.cpp: Ditto.
48743
48744         * editing/visible_units.cpp:
48745         (WebCore::startPositionForLine): Use function members instead of data
48746         members of InlineTextBox.
48747         (WebCore::endPositionForLine): Ditto.
48748         (WebCore::startOfParagraph): Use toRenderText.
48749         (WebCore::endOfParagraph): Ditto.
48750
48751         * page/AccessibilityRenderObject.cpp:
48752         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored): Use toRenderText.
48753         * rendering/InlineFlowBox.cpp:
48754         (WebCore::InlineFlowBox::placeBoxesHorizontally): Ditto.
48755         * rendering/InlineTextBox.cpp:
48756         (WebCore::InlineTextBox::deleteLine): Ditto.
48757         (WebCore::InlineTextBox::extractLine): Ditto.
48758         (WebCore::InlineTextBox::attachLine): Ditto.
48759         (WebCore::InlineTextBox::placeEllipsisBox): Ditto.
48760         (WebCore::InlineTextBox::paintDecoration): Ditto.
48761         (WebCore::InlineTextBox::paintCompositionUnderline): Ditto.
48762         (WebCore::InlineTextBox::offsetForPosition): Ditto.
48763         (WebCore::InlineTextBox::positionForOffset): Ditto.
48764
48765         * rendering/InlineTextBox.h: Made most members private. Use toRenderText.
48766
48767         * rendering/RenderArena.cpp:
48768         (WebCore::RenderArena::allocate): Use static_cast instead of C-style cast.
48769         (WebCore::RenderArena::free): Ditto.
48770
48771         * rendering/RenderBlock.cpp:
48772         (WebCore::RenderBlock::addContinuationWithOutline): Use ListHashSet<RenderFlow*>
48773         instead of RenderFlowSequencedSet.
48774         (WebCore::RenderBlock::paintContinuationOutlines): Ditto.
48775         (WebCore::stripTrailingSpace): Ditto.
48776         (WebCore::RenderBlock::calcInlinePrefWidths): Ditto.
48777         (WebCore::RenderBlock::updateFirstLetter): Ditto.
48778
48779         * rendering/RenderContainer.cpp:
48780         (WebCore::RenderContainer::addChild): Use toRenderText.
48781
48782         * rendering/RenderFlow.cpp:
48783         (WebCore::RenderFlow::dirtyLinesFromChangedChild): Use ListHashSet<RenderFlow*>
48784         instead of RenderFlowSequencedSet.
48785         (WebCore::RenderFlow::paintLines): Ditto.
48786
48787         * rendering/RenderMenuList.cpp: Removed some unneeded includes.
48788
48789         * rendering/RenderMenuList.h: Added now-needed forward declaration of RenderText.
48790         Made more members private.
48791
48792         * rendering/RenderObject.cpp: Updated includes.
48793         (WebCore::RenderObject::isEditable): Use toRenderText.
48794         (WebCore::RenderObject::positionForPoint): Made non-inline so we wouldn't have to
48795         include VisiblePosition.h in the header just for this.
48796
48797         * rendering/RenderObject.h: Removed unneeded includes and forward declarations.
48798         Changed special vertical position values to be constants rather than an enum.
48799         Eliminated RenderFlowSequencedSet, and changed clients to use ListHashSet<RenderFlow*>.
48800
48801         * rendering/RenderText.cpp:
48802         (WebCore::RenderText::findNextInlineTextBox): Use function members instead of
48803         data members of InlineTextBox.
48804         (WebCore::RenderText::positionForCoordinates): Ditto.
48805         (WebCore::isInlineFlowOrEmptyText): Use toRenderText.
48806         (WebCore::RenderText::previousCharacter): Use function members instead of
48807         data members of InlineTextBox.
48808         (WebCore::RenderText::position): Ditto.
48809         (WebCore::RenderText::caretMinOffset): Ditto.
48810         (WebCore::RenderText::caretMaxOffset): Ditto.
48811         (WebCore::RenderText::caretMaxRenderedOffset): Ditto.
48812
48813         * rendering/RenderText.h: Added definition of toRenderText.
48814
48815         * rendering/RenderTextControl.cpp:
48816         (WebCore::RenderTextControl::textWithHardLineBreaks): Use toRenderText.
48817         * rendering/RenderTreeAsText.cpp:
48818         (WebCore::operator<<): Use toRenderText and toRenderBox.
48819         (WebCore::writeTextRun): Ditto.
48820         (WebCore::write): Ditto.
48821
48822         * rendering/bidi.cpp:
48823         (WebCore::InlineIterator::increment): Use toRenderText.
48824         (WebCore::InlineIterator::current): Ditto.
48825         (WebCore::checkMidpoints): Ditto.
48826         (WebCore::RenderBlock::computeHorizontalPositionsForLine): Ditto.
48827         (WebCore::RenderBlock::layoutInlineChildren): Ditto.
48828         (WebCore::RenderBlock::determineStartPosition): Ditto.
48829         (WebCore::shouldSkipWhitespaceAfterStartObject): Ditto.
48830         (WebCore::RenderBlock::findNextLineBreak): Ditto.
48831
48832 2009-01-25  Thiago Macieira  <thiago.macieira@nokia.com>
48833
48834         Reviewed by Simon Hausmann.
48835
48836         Fix gcc compiler warning (deprecated conversion from constant string to char*)
48837
48838         "" cannot be stored in a char*
48839
48840         * plugins/PluginStream.cpp:
48841         (WebCore::PluginStream::destroyStream):
48842
48843 2009-01-24  Alexey Proskuryakov  <ap@webkit.org>
48844
48845         Reviewed by Darin Adler.
48846
48847         <rdar://problem/5954398> REGRESSION: 1.1% PLT regression from 33577 and 33578 (encoding fixes)
48848
48849         Changed single argument KURL constructors back to always expect an already encoded string,
48850         eliminating extra conversions.
48851
48852         This is a rather unstable situation, as it is often unclear whether a given string is safe
48853         to convert to KURL without resolving. I think that going forward, the solution is to try to
48854         keep encoded URLs as KURL instances, and not as strings.
48855
48856         * platform/KURL.h: Updated comments.
48857
48858         * platform/KURL.cpp:
48859         (WebCore::KURL::KURL): In debug builds, verify that the passed string is ASCII-only. The
48860         intention is to verify that it is already parsed and encoded by KURL or equivalent code, but
48861         since encoding is scheme-dependent, such a verification would be quite complicated.
48862         Don't encode the string as UTF-8, as it supposed to be ASCII-only.
48863         Removed a hack that made strings beginning with "/" turn into "file:" URLs. I didn't find
48864         any reason for it to exist, but I saw several cases where this code path was taken
48865         inadvertently (see examples in LayoutTests/ChangeLog).
48866         (WebCore::KURL::setProtocol): Using a user-provided string without validation or encoding
48867         is clearly wrong here (e.g., the "protocol" can be set to a full URL, effectively replacing
48868         the old one), and an already encoded string is expected by parse().
48869         In debug builds, non-ASCII input will make an assertion in parse() fail. Added a FIXME.
48870         (WebCore::KURL::setHost): Ditto.
48871         (WebCore::KURL::setPort): Ditto.
48872         (WebCore::KURL::setHostAndPort): Ditto.
48873         (WebCore::KURL::setUser): Ditto.
48874         (WebCore::KURL::setPass): Ditto.
48875         (WebCore::KURL::setRef): Ditto.
48876         (WebCore::KURL::setQuery): Ditto.
48877         (WebCore::KURL::setPath): Ditto.
48878         (WebCore::KURL::parse): Verify that the passed string is already encoded.
48879
48880         * html/HTMLLinkElement.cpp:
48881         (WebCore::HTMLLinkElement::parseMappedAttribute):
48882         (WebCore::HTMLLinkElement::process):
48883         * html/HTMLLinkElement.h:
48884         Changed to avoid using invalid URLs (this was causing problems on DNS prefetch tests, see
48885         LayoutTests/ChangeLog).
48886
48887         * loader/FrameLoader.cpp:
48888         (WebCore::FrameLoader::init): Create an empty KURL without indirection for a small speedup.
48889         (WebCore::FrameLoader::requestFrame): Resolve and encode javascript URLs properly, now that
48890         String to KURL conversion requires the string to be already encoded.
48891
48892         * page/DOMWindow.cpp: (WebCore::DOMWindow::postMessage): Resolve and encode the origin.
48893         HTML5 seems a little unclear on how this should work (it talks about "either parsing it as
48894         a URL, or resolving it", and then somehow compares unaltered targetOrigin string to a
48895         security origin object), so I just made the code as close to what we already had as possible.
48896
48897 2009-01-24  Darin Adler  <darin@apple.com>
48898
48899         Try to fix Qt build.
48900
48901         * WebCore.pro: Added JSTextCustom.cpp.
48902
48903 2009-01-23  Chris Marrin  <cmarrin@apple.com>
48904
48905         Reviewed by David Hyatt.
48906
48907         https://bugs.webkit.org/show_bug.cgi?id=23467
48908
48909         Change styleAvailable functionality to be a linked list
48910         rather than scanning every CompositeAnimation for
48911         Animations that are waiting for styleAvailable. This has
48912         potential for large performance improvement in cases where
48913         there are many animations firing at once. But it will also
48914         help in my next fix, which is to synchronize software and
48915         accelerated animations.
48916
48917         I also changed slightly when the beginAnimationUpdate and
48918         endAnimationUpdate calls are made. But this has no real
48919         effect on performance or behavior.
48920
48921         * dom/Document.cpp:
48922         (WebCore::Document::recalcStyle):
48923         (WebCore::Document::updateRendering):
48924         * page/animation/AnimationBase.cpp:
48925         (WebCore::AnimationBase::AnimationBase):
48926         (WebCore::AnimationBase::~AnimationBase):
48927         (WebCore::AnimationBase::updateStateMachine):
48928         * page/animation/AnimationBase.h:
48929         (WebCore::AnimationBase::next):
48930         (WebCore::AnimationBase::setNext):
48931         (WebCore::AnimationBase::styleAvailable):
48932         * page/animation/AnimationController.cpp:
48933         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
48934         (WebCore::AnimationControllerPrivate::addToStyleAvailableWaitList):
48935         (WebCore::AnimationControllerPrivate::removeFromStyleAvailableWaitList):
48936         (WebCore::AnimationControllerPrivate::styleAvailable):
48937         (WebCore::AnimationController::AnimationController):
48938         (WebCore::AnimationController::endAnimationUpdate):
48939         (WebCore::AnimationController::addToStyleAvailableWaitList):
48940         (WebCore::AnimationController::removeFromStyleAvailableWaitList):
48941         * page/animation/AnimationController.h:
48942         * page/animation/CompositeAnimation.cpp:
48943         (WebCore::CompositeAnimationPrivate::addToStyleAvailableWaitList):
48944         (WebCore::CompositeAnimationPrivate::removeFromStyleAvailableWaitList):
48945         (WebCore::CompositeAnimation::addToStyleAvailableWaitList):
48946         (WebCore::CompositeAnimation::removeFromStyleAvailableWaitList):
48947         * page/animation/CompositeAnimation.h:
48948
48949 2009-01-24  Alexey Proskuryakov  <ap@webkit.org>
48950
48951         Reviewed by Darin Adler.
48952
48953         <rdar://problem/6368059> REGRESSION: URL encoding problems on http://www.cineman.ch
48954
48955         Test: http/tests/xmlhttprequest/encode-request-url-2.html
48956
48957         * platform/KURL.cpp:
48958         (WebCore::appendASCII): Added a helper function.
48959         (WebCore::KURL::KURL): Explicitly encode the URL to call two-argument parse() with better
48960         specified behavior.
48961         (WebCore::KURL::init): Ditto. This avoids trying to round-trip an URL encoded into a byte
48962         stream, but not yet transformed to ASCII-only using percent escapes. Since different parts
48963         of the byte stream can use different encodings, round-tripping is not possible.
48964         (WebCore::KURL::parse): Reverted an earlier change that made the single-argument version of
48965         this function convert the string to utf-8. I think that on the remanining code paths, it is
48966         correct to assume that the string is all ASCII, but I'm not yet confident enough to drop a
48967         FIXME warning.
48968
48969 2009-01-24  Jan Michael Alonzo  <jmalonzo@webkit.org>
48970
48971         Gtk build fix after r40170
48972
48973         * GNUmakefile.am: Removed editing/RemoveNodeAttributeCommand.cpp
48974         and editing/RemoveNodeAttributeCommand.h
48975
48976 2009-01-23  Adam Treat  <adam.treat@torchmobile.com>
48977
48978         Fix the Qt build after r40205.
48979
48980         * WebCore.pro:
48981
48982 2009-01-23  Brady Eidson  <beidson@apple.com>
48983
48984         Reviewed by Darin Adler
48985
48986         In CachedPage, break off per-Frame pieces of data into a CachedFrame object.
48987
48988         * GNUmakefile.am:
48989         * WebCore.base.exp:
48990         * WebCore.pro:
48991         * WebCore.scons:
48992         * WebCore.vcproj/WebCore.vcproj:
48993         * WebCore.xcodeproj/project.pbxproj:
48994         * WebCoreSources.bkl:
48995
48996         * history/CachedFrame.cpp: Added.
48997         (WebCore::cachedFrameCounter):
48998         (WebCore::CachedFrame::CachedFrame):
48999         (WebCore::CachedFrame::~CachedFrame):
49000         (WebCore::CachedFrame::restore):
49001         (WebCore::CachedFrame::clear):
49002         (WebCore::CachedFrame::setCachedFramePlatformData):
49003         (WebCore::CachedFrame::cachedFramePlatformData):
49004         * history/CachedFrame.h: Added.
49005         (WebCore::CachedFrame::document):
49006         (WebCore::CachedFrame::documentLoader):
49007         (WebCore::CachedFrame::view):
49008         (WebCore::CachedFrame::mousePressNode):
49009         (WebCore::CachedFrame::url):
49010         (WebCore::CachedFrame::domWindow):
49011
49012         * history/CachedPage.cpp:
49013         (WebCore::CachedPage::CachedPage):
49014         (WebCore::CachedPage::restore):
49015         (WebCore::CachedPage::clear):
49016         (WebCore::CachedPage::setCachedFramePlatformData):
49017         (WebCore::CachedPage::cachedFramePlatformData):
49018         * history/CachedPage.h:
49019         (WebCore::CachedPage::document):
49020         (WebCore::CachedPage::documentLoader):
49021         (WebCore::CachedPage::view):
49022         (WebCore::CachedPage::mousePressNode):
49023         (WebCore::CachedPage::url):
49024         (WebCore::CachedPage::domWindow):
49025
49026         * loader/FrameLoader.cpp:
49027         (WebCore::FrameLoader::cachePageForHistoryItem): Setting the DocumentLoader independently of
49028           creating a CachedPage was a historical relic.  Take the opportunity to clean that up.
49029
49030 2009-01-23  David Hyatt  <hyatt@apple.com>
49031
49032         Add ASSERTs to catch anyone trying to obtain the width/height of an inline flow.  Fix up all the places
49033         that triggered the ASSERT (since all of these places are effectively regressions from my landing that
49034         devirtualized width()/height()).
49035
49036         Reviewed by Adele
49037
49038         * dom/Position.cpp:
49039         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
49040         * editing/DeleteButtonController.cpp:
49041         (WebCore::isDeletableElement):
49042         * html/HTMLAnchorElement.cpp:
49043         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
49044         * rendering/RenderBox.cpp:
49045         (WebCore::RenderBox::clientWidth):
49046         (WebCore::RenderBox::clientHeight):
49047         (WebCore::RenderBox::scrollWidth):
49048         (WebCore::RenderBox::scrollHeight):
49049         (WebCore::RenderBox::absoluteOutlineBounds):
49050         * rendering/RenderBox.h:
49051         (WebCore::RenderBox::width):
49052         (WebCore::RenderBox::height):
49053         (WebCore::RenderBox::size):
49054         (WebCore::RenderBox::frameRect):
49055         (WebCore::RenderBox::borderBoundingBox):
49056         * rendering/RenderFlow.h:
49057         (WebCore::RenderFlow::borderBoundingBox):
49058         * rendering/RenderLayer.cpp:
49059         (WebCore::RenderLayer::updateLayerPosition):
49060         * rendering/RenderScrollbarPart.cpp:
49061         (WebCore::RenderScrollbarPart::styleWillChange):
49062         * rendering/RenderScrollbarPart.h:
49063         * wml/WMLAElement.cpp:
49064         (WebCore::WMLAElement::isKeyboardFocusable):
49065
49066 2009-01-23  Darin Adler  <darin@apple.com>
49067
49068         Reviewed by Anders Carlsson.
49069
49070         Bug 23352: Turn on more compiler warnings in the Mac build
49071         https://bugs.webkit.org/show_bug.cgi?id=23352
49072
49073         Second patch: Slightly less simple cases of various warnings.
49074
49075         * bridge/jni/jni_runtime.h:
49076         (JSC::Bindings::JavaString::_commonInit): Use reinterpret_cast here and avoid casting
49077         away const.
49078
49079         * dom/XMLTokenizerLibxml2.cpp:
49080         (WebCore::PendingCallbacks::appendStartElementNSCallback): Use static_cast instead of
49081         reinterpret_cast; this is casting the result of malloc, and the idiom is to use
49082         static_cast, which works because we're casting from void*.
49083         (WebCore::PendingCallbacks::PendingStartElementNSCallback::call): Use const_cast instead
49084         C-style casts.
49085
49086         * xml/XSLTUnicodeSort.cpp:
49087         (inlineXSLTTransformError): Tweak soft linking of xsltTransformError to use a macro
49088         instead of redefining the function.
49089
49090 2009-01-23  Darin Adler  <darin@apple.com>
49091
49092         Reviewed by Anders Carlsson.
49093
49094         Bug 23475: fast/text/find-backwards.html fails with ICU disabled SearchBuffer
49095         https://bugs.webkit.org/show_bug.cgi?id=23475
49096
49097         * editing/TextIterator.cpp:
49098         (WebCore::SearchBuffer::search): Set the character start flag to false to
49099         ensure we won't ever return the same result twice. There are other ways we
49100         could accomplish this, mentioned in the comment, but this one was the smallest
49101         and cleanest I could think of.
49102
49103 2009-01-23  Darin Adler  <darin@apple.com>
49104
49105         Reviewed by Anders Carlsson.
49106
49107         Bug 23510: REGRESSION (r40171): CDATASection objects not getting proper JavaScript wrappers
49108         https://bugs.webkit.org/show_bug.cgi?id=23510
49109
49110         That patch fixed the optimization that's supposed to give a faster path for
49111         allocating the wrappers for DOM Text objects. But CDATASection is the one
49112         subclass of Text objects.
49113
49114         * GNUmakefile.am: Added JSCDATASectionCustom.cpp.
49115         * WebCore.scons: Ditto.
49116         * WebCore.vcproj/WebCore.vcproj: Ditto.
49117         * WebCore.xcodeproj/project.pbxproj: Ditto.
49118         * WebCoreSources.bkl: Ditto.
49119
49120         * bindings/js/JSCDATASectionCustom.cpp: Copied from bindings/js/JSTextCustom.cpp.
49121         (WebCore::toJSNewlyCreated): Changed to do CDATASection, not Text.
49122
49123         * bindings/scripts/CodeGeneratorJS.pm: Added another toJSNewlyCreated function
49124         for CDATASection. We don't want to have to check when creating a wrapper for a
49125         Text object whether it's a CDATASection object or not, so we need to do this overload
49126         at compile time.
49127
49128 2009-01-23  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
49129
49130         Reviewed by Eric Seidel.
49131
49132         Add a base class for WML form control elements: WMLFormControlElement (as it's designed in HTML as well).
49133         WMLFormControlElement inherits from WMLElement and FormControlElement (just like the HTMLFormControlElement equivalent).
49134
49135         WMLInputElement / WMLOptionElement / WMLOptGroupElement are supposed to inherit from the new WMLFormControlElement class.
49136         Now WMLInputElement & WMLOptGroupElement only inherit from WMLElement and FormControlElement, but WMLOptionElement inherits
49137         from WMLEventHandlingElement (which in turn inherits from WMLElement) and FormControlElement. In order to introduce a shared
49138         base class, WMLEventHandlingElement is no longer allowed to inherit from WMLElement directly. Instead it should turn into
49139         another base class, just like FormControlElement.
49140
49141         Add a base class for form control elements 'with state': FormControlElementWithState, serving as base class for
49142         HTMLFormControlElementWithState and WMLFormControlElementWithState. -> Make Document operate on FormControlElementWithState
49143         objects instead of HTMLFormControlElementWithState objects, to support save/restore control state for non HTMLFormControlElements.
49144
49145         Rename isGenericFormElement() to isFormControlElement(), and move it to Element.h
49146         Add new virtual function isFormControlElementWithState() to Element.h.
49147
49148         * GNUmakefile.am:
49149         * WebCore.order:
49150         * WebCore.pro:
49151         * WebCore.scons:
49152         * WebCore.vcproj/WebCore.vcproj:
49153         * WebCore.xcodeproj/project.pbxproj:
49154         * WebCoreSources.bkl:
49155         * dom/Document.cpp:
49156         (WebCore::Document::formElementsState):
49157         * dom/Document.h:
49158         (WebCore::Document::registerFormElementWithState):
49159         (WebCore::Document::unregisterFormElementWithState):
49160         * dom/Element.h:
49161         (WebCore::Element::isFormControlElement):
49162         (WebCore::Element::isFormControlElementWithState):
49163         * dom/FormControlElement.cpp:
49164         (WebCore::toFormControlElement):
49165         * dom/FormControlElement.h:
49166         * dom/FormControlElementWithState.cpp: Added.
49167         (WebCore::FormControlElementWithState::registerFormControlElementWithState):
49168         (WebCore::FormControlElementWithState::unregisterFormControlElementWithState):
49169         (WebCore::FormControlElementWithState::finishParsingChildren):
49170         (WebCore::toFormControlElementWithState):
49171         * dom/FormControlElementWithState.h: Added.
49172         (WebCore::FormControlElementWithState::~FormControlElementWithState):
49173         (WebCore::FormControlElementWithState::FormControlElementWithState):
49174         * html/HTMLElement.h:
49175         * html/HTMLFormControlElement.cpp:
49176         (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
49177         (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
49178         (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument):
49179         (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument):
49180         * html/HTMLFormControlElement.h:
49181         (WebCore::HTMLFormControlElement::isFormControlElement):
49182         (WebCore::HTMLFormControlElementWithState::isFormControlElementWithState):
49183         (WebCore::HTMLFormControlElementWithState::toFormControlElement):
49184         * html/HTMLFormElement.cpp:
49185         (WebCore::HTMLFormElement::formElementIndex):
49186         * html/HTMLLabelElement.cpp:
49187         (WebCore::HTMLLabelElement::correspondingControl):
49188         * html/HTMLLegendElement.cpp:
49189         (WebCore::HTMLLegendElement::formElement):
49190         * page/Frame.cpp:
49191         (WebCore::Frame::searchForLabelsBeforeElement):
49192         (WebCore::scanForForm):
49193         (WebCore::Frame::currentForm):
49194         * page/mac/FrameMac.mm:
49195         (WebCore::Frame::searchForLabelsBeforeElement):
49196         * wml/WMLCardElement.cpp:
49197         (WebCore::WMLCardElement::WMLCardElement):
49198         (WebCore::WMLCardElement::parseMappedAttribute):
49199         (WebCore::WMLCardElement::insertedIntoDocument):
49200         * wml/WMLCardElement.h:
49201         * wml/WMLDoElement.cpp:
49202         (WebCore::WMLDoElement::insertedIntoDocument):
49203         * wml/WMLElement.h:
49204         (WebCore::WMLElement::isWMLElement):
49205         * wml/WMLEventHandlingElement.cpp:
49206         (WebCore::WMLEventHandlingElement::WMLEventHandlingElement):
49207         (WebCore::WMLEventHandlingElement::registerDoElement):
49208         (WebCore::toWMLEventHandlingElement):
49209         * wml/WMLEventHandlingElement.h:
49210         * wml/WMLFormControlElement.cpp: Added.
49211         (WebCore::WMLFormControlElement::WMLFormControlElement):
49212         (WebCore::WMLFormControlElement::~WMLFormControlElement):
49213         (WebCore::WMLFormControlElementWithState::WMLFormControlElementWithState):
49214         (WebCore::WMLFormControlElementWithState::~WMLFormControlElementWithState):
49215         * wml/WMLFormControlElement.h: Added.
49216         (WebCore::WMLFormControlElement::isFormControlElement):
49217         (WebCore::WMLFormControlElement::valueMatchesRenderer):
49218         (WebCore::WMLFormControlElement::setValueMatchesRenderer):
49219         (WebCore::WMLFormControlElement::name):
49220         (WebCore::WMLFormControlElementWithState::isFormControlElementWithState):
49221         (WebCore::WMLFormControlElementWithState::toFormControlElement):
49222         * wml/WMLInputElement.cpp:
49223         (WebCore::WMLInputElement::WMLInputElement):
49224         (WebCore::WMLInputElement::type):
49225         * wml/WMLInputElement.h:
49226         * wml/WMLOnEventElement.cpp:
49227         (WebCore::WMLOnEventElement::registerTask):
49228         * wml/WMLOptGroupElement.cpp:
49229         (WebCore::WMLOptGroupElement::WMLOptGroupElement):
49230         (WebCore::WMLOptGroupElement::type):
49231         * wml/WMLOptGroupElement.h:
49232         * wml/WMLOptionElement.cpp:
49233         (WebCore::WMLOptionElement::WMLOptionElement):
49234         (WebCore::WMLOptionElement::type):
49235         * wml/WMLOptionElement.h:
49236         * wml/WMLTemplateElement.cpp:
49237         (WebCore::WMLTemplateElement::WMLTemplateElement):
49238         (WebCore::WMLTemplateElement::parseMappedAttribute):
49239         * wml/WMLTemplateElement.h:
49240
49241 2009-01-23  Chris Fleizach  <cfleizach@apple.com>
49242
49243         Reviewed by Darin Adler.
49244
49245         Bug 23509: Crash at -[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]
49246         https://bugs.webkit.org/show_bug.cgi?id=23509
49247
49248         Add null checking in makeRange instead of AX code
49249
49250         * editing/VisiblePosition.cpp:
49251         (WebCore::makeRange):
49252         * page/AccessibilityObject.cpp:
49253         (WebCore::AccessibilityObject::nextSentenceEndPosition):
49254         (WebCore::AccessibilityObject::previousSentenceStartPosition):
49255
49256 2009-01-23  Adam Treat  <adam.treat@torchmobile.com>
49257
49258         Fix the Gtk build too after removal of RenderBox::toConstRenderBox
49259
49260         * platform/gtk/RenderThemeGtk.cpp:
49261         (WebCore::RenderThemeGtk::baselinePosition):
49262
49263 2009-01-23  Adam Treat  <adam.treat@torchmobile.com>
49264
49265         Fix the Qt build after rename of RenderBox::toConstRenderBox -> toRenderBox
49266
49267         * platform/qt/RenderThemeQt.cpp:
49268         (WebCore::RenderThemeQt::baselinePosition):
49269
49270 2009-01-23  Adam Treat  <adam.treat@torchmobile.com>
49271
49272         Fix the Qt build after r40168.
49273
49274         * WebCore.pro:
49275
49276 2009-01-23  Brady Eidson  <beidson@apple.com>
49277
49278         Rubberstamped by Darin Adler
49279
49280         Rename CachedPagePlatformData to CachedFramePlatformData to more accurately reflect its true role.
49281
49282         * GNUmakefile.am:
49283         * WebCore.base.exp:
49284         * WebCore.order:
49285         * WebCore.xcodeproj/project.pbxproj:
49286
49287         * history/CachedFramePlatformData.h: Copied from WebCore/history/CachedPagePlatformData.h.
49288         (WebCore::CachedFramePlatformData::~CachedFramePlatformData):
49289         * history/CachedPagePlatformData.h: Removed.
49290
49291         * history/CachedPage.cpp:
49292         (WebCore::CachedPage::clear):
49293         (WebCore::CachedPage::setCachedFramePlatformData):
49294         (WebCore::CachedPage::cachedFramePlatformData):
49295         * history/CachedPage.h:
49296
49297 2009-01-23  Kevin Watters  <kevinwatters@gmail.com>
49298
49299         Reviewed by Kevin Ollivier.
49300
49301         Fix drawing in situations where sub-portions of the bitmap are to be
49302         drawn to the screen.
49303
49304         * platform/graphics/wx/ImageWx.cpp:
49305         (WebCore::BitmapImage::draw):
49306
49307 2009-01-23  Kevin Ollivier  <kevino@theolliviers.com>
49308
49309         Build fixes for recent changes.
49310
49311         * WebCoreSources.bkl:
49312         * plugins/PluginView.cpp:
49313         (WebCore::PluginView::invalidateWindowlessPluginRect):
49314
49315 2009-01-23  Eric Carlson  <eric.carlson@apple.com>
49316
49317         Reviewed by Adele Peterson
49318
49319         Fix for https://bugs.webkit.org/show_bug.cgi?id=23407
49320
49321         Implement QTMovieWin::hasVideo so the controller on an audio-only <video> element
49322         is never hidden (as with an <audio> element).
49323
49324         Test: media/video-controls-visible-audio-only.html
49325
49326         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
49327         (WebCore::MediaPlayerPrivate::hasVideo):
49328         * platform/graphics/win/QTMovieWin.cpp:
49329         (QTMovieWin::hasVideo):
49330         * platform/graphics/win/QTMovieWin.h:
49331
49332 2009-01-23  David Hyatt  <hyatt@apple.com>
49333
49334         Make toRenderBox a non-member function.  Rename toConstRenderBox to just also be called toRenderBox.
49335
49336         Reviewed by Oliver Hunt
49337
49338         * css/CSSComputedStyleDeclaration.cpp:
49339         (WebCore::sizingBox):
49340         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
49341         * dom/ContainerNode.cpp:
49342         (WebCore::ContainerNode::getUpperLeftCorner):
49343         (WebCore::ContainerNode::getLowerRightCorner):
49344         * dom/Element.cpp:
49345         (WebCore::Element::scrollByUnits):
49346         * dom/Position.cpp:
49347         (WebCore::endsOfNodeAreVisuallyDistinctPositions):
49348         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
49349         (WebCore::Position::isCandidate):
49350         * editing/DeleteButtonController.cpp:
49351         (WebCore::isDeletableElement):
49352         * editing/EditorCommand.cpp:
49353         (WebCore::verticalScrollDistance):
49354         * editing/TextIterator.cpp:
49355         (WebCore::shouldEmitExtraNewlineForNode):
49356         * html/HTMLAnchorElement.cpp:
49357         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
49358         * html/HTMLFormControlElement.cpp:
49359         (WebCore::HTMLFormControlElement::isFocusable):
49360         * html/HTMLFrameElementBase.cpp:
49361         (WebCore::HTMLFrameElementBase::width):
49362         (WebCore::HTMLFrameElementBase::height):
49363         * page/AccessibilityRenderObject.cpp:
49364         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
49365         * page/EventHandler.cpp:
49366         (WebCore::EventHandler::handleMouseDraggedEvent):
49367         (WebCore::EventHandler::autoscrollTimerFired):
49368         (WebCore::EventHandler::updateAutoscrollRenderer):
49369         (WebCore::EventHandler::stopAutoscrollTimer):
49370         (WebCore::EventHandler::scrollOverflow):
49371         * page/FrameView.cpp:
49372         (WebCore::FrameView::layout):
49373         * page/animation/AnimationBase.cpp:
49374         (WebCore::blendFunc):
49375         * rendering/InlineBox.cpp:
49376         (WebCore::InlineBox::adjustPosition):
49377         * rendering/InlineBox.h:
49378         (WebCore::InlineBox::renderBox):
49379         * rendering/RenderBlock.cpp:
49380         (WebCore::RenderBlock::clearFloats):
49381         * rendering/RenderBox.cpp:
49382         (WebCore::RenderBox::offsetFromContainer):
49383         (WebCore::RenderBox::computeAbsoluteRepaintRect):
49384         (WebCore::RenderBox::containingBlockWidthForPositioned):
49385         (WebCore::RenderBox::containingBlockHeightForPositioned):
49386         (WebCore::RenderBox::calcAbsoluteHorizontal):
49387         (WebCore::RenderBox::calcAbsoluteVertical):
49388         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
49389         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
49390         * rendering/RenderBox.h:
49391         (WebCore::toRenderBox):
49392         (WebCore::RenderBox::previousSiblingBox):
49393         (WebCore::RenderBox::nextSiblingBox):
49394         (WebCore::RenderBox::parentBox):
49395         * rendering/RenderFlow.cpp:
49396         (WebCore::RenderFlow::absoluteClippedOverflowRect):
49397         * rendering/RenderLayer.cpp:
49398         (WebCore::RenderLayer::updateLayerPosition):
49399         (WebCore::RenderLayer::resize):
49400         (WebCore::RenderLayer::boundingBox):
49401         * rendering/RenderObject.cpp:
49402         (WebCore::addLayers):
49403         (WebCore::RenderObject::removeLayers):
49404         (WebCore::RenderObject::moveLayers):
49405         (WebCore::RenderObject::findNextLayer):
49406         (WebCore::RenderObject::enclosingLayer):
49407         (WebCore::RenderObject::setNeedsLayout):
49408         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
49409         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
49410         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
49411         (WebCore::RenderObject::computeAbsoluteRepaintRect):
49412         (WebCore::RenderObject::localToAbsolute):
49413         (WebCore::RenderObject::absoluteToLocal):
49414         (WebCore::RenderObject::localToAbsoluteQuad):
49415         (WebCore::RenderObject::offsetFromContainer):
49416         (WebCore::RenderObject::removeFromObjectLists):
49417         (WebCore::RenderObject::destroy):
49418         (WebCore::RenderObject::updateHitTestResult):
49419         (WebCore::RenderObject::addDashboardRegions):
49420         * rendering/RenderTableSection.cpp:
49421         (WebCore::RenderTableSection::layoutRows):
49422         * rendering/RenderTheme.cpp:
49423         (WebCore::RenderTheme::hitTestMediaControlPart):
49424         (WebCore::RenderTheme::baselinePosition):
49425         * rendering/RenderThemeMac.mm:
49426         (WebCore::RenderThemeMac::hitTestMediaControlPart):
49427         * rendering/RenderTreeAsText.cpp:
49428         (WebCore::externalRepresentation):
49429         * rendering/bidi.cpp:
49430         (WebCore::inlineWidth):
49431         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
49432         (WebCore::requiresLineBox):
49433         (WebCore::RenderBlock::findNextLineBreak):
49434         * svg/SVGLength.cpp:
49435         (WebCore::SVGLength::PercentageOfViewport):
49436         * wml/WMLAElement.cpp:
49437         (WebCore::WMLAElement::isKeyboardFocusable):
49438         * wml/WMLInputElement.cpp:
49439         (WebCore::isInputFocusable):
49440
49441 2009-01-23  Chris Fleizach  <cfleizach@apple.com>
49442
49443         Reviewed by Beth Dakin.
49444
49445         Bug 23509: Crash at -[WebCoreAXObject doAXNextSentenceEndTextMarkerForTextMarker:]
49446         https://bugs.webkit.org/show_bug.cgi?id=23509
49447
49448         Add null checking around next/previous sentence retrieval in AX code
49449
49450         * page/AccessibilityObject.cpp:
49451         (WebCore::AccessibilityObject::nextSentenceEndPosition):
49452         (WebCore::AccessibilityObject::previousSentenceStartPosition):
49453
49454 2009-01-23  David Hyatt  <hyatt@apple.com>
49455
49456         Fix for <rdar://problem/6518850> REGRESSION: hover feedback not showing on many sites
49457
49458         Inline flow repainting was broken because it relied on width() and height().  Give RenderFlow a linesBoundingBox
49459         method for obtaining a reasonable bounding box to use for repainting.  Eliminate the methods from RenderInline
49460         since compacts/run-ins need them too, so putting them on RenderFlow is necessary.
49461
49462         For consistency, change RenderText's version of these methods into the single linesBoundingBox method as
49463         well.
49464
49465         Reviewed by Oliver Hunt
49466
49467         * WebCore.base.exp:
49468         * dom/ContainerNode.cpp:
49469         (WebCore::ContainerNode::getUpperLeftCorner):
49470         (WebCore::ContainerNode::getLowerRightCorner):
49471         * dom/Position.cpp:
49472         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
49473         * rendering/RenderBox.cpp:
49474         (WebCore::RenderBox::containingBlockHeightForPositioned):
49475         * rendering/RenderFlow.cpp:
49476         (WebCore::RenderFlow::absoluteClippedOverflowRect):
49477         (WebCore::RenderFlow::linesBoundingBox):
49478         * rendering/RenderFlow.h:
49479         * rendering/RenderInline.cpp:
49480         * rendering/RenderInline.h:
49481         (WebCore::RenderInline::offsetWidth):
49482         (WebCore::RenderInline::offsetHeight):
49483         * rendering/RenderLayer.cpp:
49484         (WebCore::RenderLayer::updateLayerPosition):
49485         * rendering/RenderText.cpp:
49486         (WebCore::RenderText::linesBoundingBox):
49487         * rendering/RenderText.h:
49488         * rendering/RenderTreeAsText.cpp:
49489         (WebCore::operator<<):
49490         * rendering/SVGRenderTreeAsText.cpp:
49491         (WebCore::write):
49492
49493 2009-01-23  David Hyatt  <hyatt@apple.com>
49494
49495         Move layer() into RenderBox and make it non-virtual.  Move all of the scrolling functions from RenderObject
49496         to RenderBox and devirtualize as many as possible.  Clean up styleWillChange to factor code specific to
49497         RenderBox and RenderBlock into their appropriate subclasses.  Stubbed out an empty styleWillChange on
49498         RenderText, since none of the work done in styleWillChange was relevant to text nodes.
49499
49500         Reviewed by Sam Weinig
49501
49502         * dom/Document.cpp:
49503         (WebCore::Document::elementFromPoint):
49504         (WebCore::Document::renderView):
49505         (WebCore::Document::prepareMouseEvent):
49506         * dom/Document.h:
49507         * dom/Element.cpp:
49508         (WebCore::Element::scrollByUnits):
49509         * editing/SelectionController.cpp:
49510         (WebCore::SelectionController::contains):
49511         * html/HTMLMarqueeElement.cpp:
49512         (WebCore::HTMLMarqueeElement::start):
49513         (WebCore::HTMLMarqueeElement::stop):
49514         * page/AccessibilityRenderObject.cpp:
49515         (WebCore::AccessibilityRenderObject::topRenderer):
49516         (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
49517         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
49518         * page/AccessibilityRenderObject.h:
49519         * page/EventHandler.cpp:
49520         (WebCore::scrollAndAcceptEvent):
49521         (WebCore::EventHandler::handleMousePressEvent):
49522         (WebCore::EventHandler::handleMouseDraggedEvent):
49523         (WebCore::EventHandler::updateSelectionForMouseDrag):
49524         (WebCore::EventHandler::autoscrollTimerFired):
49525         (WebCore::EventHandler::updateAutoscrollRenderer):
49526         (WebCore::EventHandler::stopAutoscrollTimer):
49527         (WebCore::EventHandler::scrollOverflow):
49528         (WebCore::EventHandler::handleWheelEvent):
49529         (WebCore::EventHandler::hoverTimerFired):
49530         * page/Frame.cpp:
49531         (WebCore::Frame::clearTimers):
49532         * rendering/RenderBlock.cpp:
49533         (WebCore::RenderBlock::styleWillChange):
49534         * rendering/RenderBlock.h:
49535         * rendering/RenderBox.cpp:
49536         (WebCore::RenderBox::styleWillChange):
49537         (WebCore::RenderBox::verticalScrollbarWidth):
49538         (WebCore::RenderBox::horizontalScrollbarHeight):
49539         (WebCore::RenderBox::scroll):
49540         (WebCore::RenderBox::canBeProgramaticallyScrolled):
49541         (WebCore::RenderBox::autoscroll):
49542         (WebCore::RenderBox::panScroll):
49543         (WebCore::RenderBox::offsetFromContainer):
49544         (WebCore::RenderBox::computeAbsoluteRepaintRect):
49545         * rendering/RenderBox.h:
49546         (WebCore::RenderBox::layer):
49547         (WebCore::RenderBox::requiresLayer):
49548         (WebCore::RenderBox::stopAutoscroll):
49549         (WebCore::RenderBox::hasAutoVerticalScrollbar):
49550         (WebCore::RenderBox::hasAutoHorizontalScrollbar):
49551         (WebCore::RenderBox::scrollsOverflow):
49552         (WebCore::RenderBox::scrollsOverflowX):
49553         (WebCore::RenderBox::scrollsOverflowY):
49554         (WebCore::RenderBox::includeVerticalScrollbarSize):
49555         (WebCore::RenderBox::includeHorizontalScrollbarSize):
49556         * rendering/RenderFlow.cpp:
49557         (WebCore::RenderFlow::absoluteClippedOverflowRect):
49558         (WebCore::RenderFlow::addFocusRingRects):
49559         * rendering/RenderForeignObject.cpp:
49560         * rendering/RenderForeignObject.h:
49561         (WebCore::RenderForeignObject::requiresLayer):
49562         * rendering/RenderInline.cpp:
49563         * rendering/RenderInline.h:
49564         (WebCore::RenderInline::requiresLayer):
49565         * rendering/RenderLayer.cpp:
49566         (WebCore::RenderLayer::childrenClipRect):
49567         (WebCore::RenderLayer::selfClipRect):
49568         * rendering/RenderListBox.cpp:
49569         * rendering/RenderListBox.h:
49570         * rendering/RenderObject.cpp:
49571         (WebCore::addLayers):
49572         (WebCore::RenderObject::removeLayers):
49573         (WebCore::RenderObject::moveLayers):
49574         (WebCore::RenderObject::findNextLayer):
49575         (WebCore::RenderObject::enclosingLayer):
49576         (WebCore::RenderObject::setNeedsLayout):
49577         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
49578         (WebCore::RenderObject::computeAbsoluteRepaintRect):
49579         (WebCore::RenderObject::styleWillChange):
49580         (WebCore::RenderObject::localToAbsolute):
49581         (WebCore::RenderObject::absoluteToLocal):
49582         (WebCore::RenderObject::localToAbsoluteQuad):
49583         (WebCore::RenderObject::offsetFromContainer):
49584         (WebCore::RenderObject::destroy):
49585         * rendering/RenderObject.h:
49586         * rendering/RenderPath.cpp:
49587         * rendering/RenderPath.h:
49588         (WebCore::RenderPath::requiresLayer):
49589         * rendering/RenderReplica.h:
49590         (WebCore::RenderReplica::requiresLayer):
49591         * rendering/RenderSVGContainer.cpp:
49592         * rendering/RenderSVGContainer.h:
49593         (WebCore::RenderSVGContainer::requiresLayer):
49594         * rendering/RenderSVGHiddenContainer.cpp:
49595         * rendering/RenderSVGHiddenContainer.h:
49596         (WebCore::RenderSVGHiddenContainer::requiresLayer):
49597         * rendering/RenderSVGImage.cpp:
49598         * rendering/RenderSVGImage.h:
49599         (WebCore::RenderSVGImage::requiresLayer):
49600         * rendering/RenderSVGInline.h:
49601         (WebCore::RenderSVGInline::requiresLayer):
49602         * rendering/RenderSVGInlineText.h:
49603         (WebCore::RenderSVGInlineText::requiresLayer):
49604         * rendering/RenderSVGText.cpp:
49605         * rendering/RenderSVGText.h:
49606         (WebCore::RenderSVGText::requiresLayer):
49607         * rendering/RenderScrollbarPart.h:
49608         (WebCore::RenderScrollbarPart::requiresLayer):
49609         * rendering/RenderSlider.cpp:
49610         (WebCore::RenderSlider::setCurrentPosition):
49611         * rendering/RenderTableCell.cpp:
49612         * rendering/RenderTableCell.h:
49613         (WebCore::RenderTableCell::requiresLayer):
49614         * rendering/RenderTableCol.h:
49615         (WebCore::RenderTableCol::requiresLayer):
49616         * rendering/RenderTableRow.h:
49617         (WebCore::RenderTableRow::requiresLayer):
49618         * rendering/RenderTableSection.cpp:
49619         (WebCore::RenderTableSection::layoutRows):
49620         * rendering/RenderText.h:
49621         (WebCore::RenderText::styleWillChange):
49622         * rendering/RenderTextControl.cpp:
49623         (WebCore::RenderTextControl::autoscroll):
49624         (WebCore::RenderTextControl::scroll):
49625         * rendering/RenderTextControl.h:
49626         * rendering/RenderTreeAsText.cpp:
49627         (WebCore::write):
49628         (WebCore::externalRepresentation):
49629
49630 2009-01-23  Anders Carlsson  <andersca@apple.com>
49631
49632         Fix tyop.
49633
49634         * editing/markup.cpp:
49635         (WebCore::joinMarkups):
49636
49637 2009-01-23  Anders Carlsson  <andersca@apple.com>
49638
49639         Reviewed by Darin Adler.
49640
49641         * Configurations/Base.xcconfig:
49642         Fix GCC 4.0 build.
49643
49644         * editing/markup.cpp:
49645         (WebCore::joinMarkups):
49646         Pass a const reference to the vector.
49647
49648         * html/HTMLElement.cpp:
49649         * platform/text/String.cpp:
49650         Add comments indicating that these functions are for use in the debugger.
49651
49652 2009-01-23  Anders Carlsson  <andersca@apple.com>
49653
49654         Reviewed by Sam Weinig.
49655
49656         Turn on -Wmissing-prototypes and fix the resulting warnings.
49657
49658         * Configurations/Base.xcconfig:
49659         * bindings/js/JSHistoryCustom.cpp:
49660         (WebCore::nonCachingStaticBackFunctionGetter):
49661         (WebCore::nonCachingStaticForwardFunctionGetter):
49662         (WebCore::nonCachingStaticGoFunctionGetter):
49663         * bindings/js/JSLocationCustom.cpp:
49664         (WebCore::nonCachingStaticReplaceFunctionGetter):
49665         (WebCore::nonCachingStaticReloadFunctionGetter):
49666         (WebCore::nonCachingStaticAssignFunctionGetter):
49667         (WebCore::JSLocation::customGetOwnPropertySlot):
49668         * bindings/objc/DOMRGBColor.mm:
49669         (WebCore::getWrapperForRGB):
49670         (WebCore::setWrapperForRGB):
49671         (WebCore::removeWrapperForRGB):
49672         * bindings/scripts/CodeGeneratorJS.pm:
49673         * bridge/c/c_instance.cpp:
49674         (JSC::Bindings::globalExceptionString):
49675         * bridge/runtime_object.cpp:
49676         (JSC::callRuntimeConstructor):
49677         * css/CSSParser.cpp:
49678         (WebCore::parseGradientColorStop):
49679         * css/CSSPrimitiveValue.cpp:
49680         (WebCore::scaleFactorForConversion):
49681         * css/CSSStyleSelector.cpp:
49682         (WebCore::operator >):
49683         (WebCore::operator <=):
49684         (WebCore::getTransformOperationType):
49685         * dom/make_names.pl:
49686         * editing/DeleteSelectionCommand.cpp:
49687         (WebCore::updatePositionForTextRemoval):
49688         * editing/EditorCommand.cpp:
49689         (WebCore::valueBackColor):
49690         (WebCore::valueFontName):
49691         (WebCore::valueFontSize):
49692         (WebCore::valueFontSizeDelta):
49693         (WebCore::valueForeColor):
49694         * editing/VisiblePosition.cpp:
49695         (WebCore::canonicalizeCandidate):
49696         * editing/htmlediting.cpp:
49697         * editing/markup.cpp:
49698         (WebCore::joinMarkups):
49699         * html/HTMLElement.cpp:
49700         (WebCore::inlineTagList):
49701         (WebCore::blockTagList):
49702         * html/HTMLMediaElement.cpp:
49703         (WebCore::serializeTimeOffset):
49704         (WebCore::parseTimeOffset):
49705         * page/mac/FrameMac.mm:
49706         (WebCore::regExpForLabels):
49707         * platform/Arena.cpp:
49708         * platform/graphics/Color.cpp:
49709         (WebCore::colorFloatToRGBAByte):
49710         * platform/graphics/cg/ImageSourceCG.cpp:
49711         (WebCore::imageSourceOptions):
49712         * platform/graphics/cg/PathCG.cpp:
49713         (WebCore::CGPathApplierToPathApplier):
49714         * platform/graphics/mac/SimpleFontDataMac.mm:
49715         (WebCore::initFontData):
49716         * platform/mac/PlatformMouseEventMac.mm:
49717         * platform/text/String.cpp:
49718         * rendering/RenderBlock.cpp:
49719         (WebCore::continuationOutlineTable):
49720         (WebCore::getHeightForLineCount):
49721         * rendering/RenderView.cpp:
49722         (WebCore::rendererAfterPosition):
49723         * rendering/RootInlineBox.cpp:
49724         (WebCore::isEditableLeaf):
49725         * rendering/SVGRenderTreeAsText.cpp:
49726         (WebCore::hasFractions):
49727         * rendering/style/RenderStyle.cpp:
49728         (WebCore::positionedObjectMoved):
49729         * svg/SVGFont.cpp:
49730         (WebCore::floatWidthUsingSVGFontCallback):
49731         (WebCore::floatWidthMissingGlyphCallback):
49732         (WebCore::drawTextUsingSVGFontCallback):
49733         (WebCore::drawTextMissingGlyphCallback):
49734         * svg/SVGTransformable.cpp:
49735         (WebCore::parseTransformParamList):
49736         * svg/graphics/SVGPaintServerGradient.cpp:
49737         (WebCore::operator<<):
49738         * xml/XPathGrammar.y:
49739         * xml/XSLTExtensions.cpp:
49740
49741 2009-01-23  Eric Seidel  <eric@webkit.org>
49742
49743         No review, removing an empty file.
49744
49745         Remove RemoveNodeAttributeCommand since it was empty.
49746
49747         * WebCore.pro:
49748         * WebCore.scons:
49749         * WebCore.vcproj/WebCore.vcproj:
49750         * WebCore.xcodeproj/project.pbxproj:
49751         * editing/RemoveNodeAttributeCommand.cpp: Removed.
49752         * editing/RemoveNodeAttributeCommand.h: Removed.
49753
49754 2009-01-23  Brady Eidson  <beidson@apple.com>
49755
49756         Rubberstamped by Sam Weinig
49757
49758         Rework ScriptCachedPageData to ScriptCachedFrameData to more accurately reflect its true purpose
49759
49760         * GNUmakefile.am:
49761         * WebCore.vcproj/WebCore.vcproj:
49762         * WebCore.xcodeproj/project.pbxproj:
49763         * WebCoreSources.bkl:
49764
49765         * bindings/js/ScriptCachedFrameData.cpp: Copied from bindings/js/ScriptCachedPageData.cpp.
49766         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
49767         (WebCore::ScriptCachedFrameData::domWindow):
49768         (WebCore::ScriptCachedFrameData::~ScriptCachedFrameData):
49769         (WebCore::ScriptCachedFrameData::restore):
49770         (WebCore::ScriptCachedFrameData::clear):
49771         * bindings/js/ScriptCachedFrameData.h: Copied from bindings/js/ScriptCachedPageData.h.
49772         * bindings/js/ScriptCachedPageData.cpp: Removed.
49773         * bindings/js/ScriptCachedPageData.h: Removed.
49774
49775         * history/CachedPage.cpp:
49776         (WebCore::CachedPage::CachedPage):
49777         (WebCore::CachedPage::restore):
49778         * history/CachedPage.h:
49779
49780 2009-01-23  Steve Falkenburg  <sfalken@apple.com>
49781
49782         Fix build.
49783
49784         * rendering/RenderThemeSafari.cpp:
49785         (WebCore::RenderThemeSafari::baselinePosition):
49786
49787 2009-01-23  Darin Fisher  <darin@chromium.org>
49788
49789         Reviewed by Eric Seidel.
49790
49791         https://bugs.webkit.org/show_bug.cgi?id=23506
49792         Upstream Chromium's image decoders for use with PLATFORM(SKIA)
49793
49794         * platform/image-decoders/skia/BMPImageDecoder.cpp: Added.
49795         * platform/image-decoders/skia/BMPImageDecoder.h: Added.
49796         * platform/image-decoders/skia/BMPImageReader.cpp: Added.
49797         * platform/image-decoders/skia/BMPImageReader.h: Added.
49798         * platform/image-decoders/skia/GIFImageDecoder.cpp:
49799         (WebCore::GIFImageDecoderPrivate::GIFImageDecoderPrivate):
49800         (WebCore::GIFImageDecoderPrivate::decode):
49801         (WebCore::GIFImageDecoderPrivate::getColorMap):
49802         (WebCore::GIFImageDecoder::GIFImageDecoder):
49803         (WebCore::GIFImageDecoder::isSizeAvailable):
49804         (WebCore::GIFImageDecoder::frameCount):
49805         (WebCore::GIFImageDecoder::frameBufferAtIndex):
49806         (WebCore::GIFImageDecoder::clearFrameBufferCache):
49807         (WebCore::GIFImageDecoder::decode):
49808         (WebCore::GIFImageDecoder::sizeNowAvailable):
49809         (WebCore::GIFImageDecoder::initFrameBuffer):
49810         (WebCore::GIFImageDecoder::prepEmptyFrameBuffer):
49811         (WebCore::GIFImageDecoder::haveDecodedRow):
49812         (WebCore::GIFImageDecoder::frameComplete):
49813         * platform/image-decoders/skia/GIFImageDecoder.h:
49814         (WebCore::GIFImageDecoder::filenameExtension):
49815         (WebCore::GIFImageDecoder::frameDurationAtIndex):
49816         (WebCore::GIFImageDecoder::):
49817         * platform/image-decoders/skia/GIFImageReader.cpp:
49818         (GIFImageReader::do_lzw):
49819         (GIFImageReader::read):
49820         * platform/image-decoders/skia/GIFImageReader.h:
49821         * platform/image-decoders/skia/ICOImageDecoder.cpp: Added.
49822         * platform/image-decoders/skia/ICOImageDecoder.h: Added.
49823         * platform/image-decoders/skia/ImageDecoder.h:
49824         (WebCore::RefCountedNativeImageSkia::create):
49825         (WebCore::RefCountedNativeImageSkia::bitmap):
49826         (WebCore::RefCountedNativeImageSkia::RefCountedNativeImageSkia):
49827         (WebCore::RGBA32Buffer::):
49828         (WebCore::RGBA32Buffer::RGBA32Buffer):
49829         (WebCore::RGBA32Buffer::~RGBA32Buffer):
49830         (WebCore::RGBA32Buffer::operator=):
49831         (WebCore::RGBA32Buffer::clear):
49832         (WebCore::RGBA32Buffer::copyBitmapData):
49833         (WebCore::RGBA32Buffer::bitmap):
49834         (WebCore::RGBA32Buffer::setSize):
49835         (WebCore::RGBA32Buffer::width):
49836         (WebCore::RGBA32Buffer::height):
49837         (WebCore::RGBA32Buffer::rect):
49838         (WebCore::RGBA32Buffer::status):
49839         (WebCore::RGBA32Buffer::duration):
49840         (WebCore::RGBA32Buffer::disposalMethod):
49841         (WebCore::RGBA32Buffer::hasAlpha):
49842         (WebCore::RGBA32Buffer::setRect):
49843         (WebCore::RGBA32Buffer::setStatus):
49844         (WebCore::RGBA32Buffer::setDuration):
49845         (WebCore::RGBA32Buffer::setDisposalMethod):
49846         (WebCore::RGBA32Buffer::setHasAlpha):
49847         (WebCore::RGBA32Buffer::setRGBA):
49848         (WebCore::ImageDecoder::ImageDecoder):
49849         (WebCore::ImageDecoder::~ImageDecoder):
49850         (WebCore::ImageDecoder::setData):
49851         (WebCore::ImageDecoder::isSizeAvailable):
49852         (WebCore::ImageDecoder::size):
49853         (WebCore::ImageDecoder::frameCount):
49854         (WebCore::ImageDecoder::repetitionCount):
49855         (WebCore::ImageDecoder::supportsAlpha):
49856         (WebCore::ImageDecoder::failed):
49857         (WebCore::ImageDecoder::setFailed):
49858         (WebCore::ImageDecoder::clearFrameBufferCache):
49859         (WebCore::ImageDecoder::setSize):
49860         (WebCore::ImageDecoder::isOverSize):
49861         * platform/image-decoders/skia/JPEGImageDecoder.cpp:
49862         (WebCore::JPEGImageReader::JPEGImageReader):
49863         (WebCore::JPEGImageReader::decode):
49864         (WebCore::JPEGImageDecoder::isSizeAvailable):
49865         (WebCore::JPEGImageDecoder::outputScanlines):
49866         * platform/image-decoders/skia/JPEGImageDecoder.h:
49867         (WebCore::JPEGImageDecoder::filenameExtension):
49868         (WebCore::JPEGImageDecoder::supportsAlpha):
49869         (WebCore::JPEGImageDecoder::reader):
49870         * platform/image-decoders/skia/PNGImageDecoder.cpp:
49871         (WebCore::PNGImageReader::close):
49872         (WebCore::PNGImageDecoder::PNGImageDecoder):
49873         (WebCore::PNGImageDecoder::isSizeAvailable):
49874         (WebCore::PNGImageDecoder::frameBufferAtIndex):
49875         (WebCore::PNGImageDecoder::decode):
49876         (WebCore::PNGImageDecoder::decodingFailed):
49877         (WebCore::PNGImageDecoder::headerAvailable):
49878         (WebCore::rowAvailable):
49879         (WebCore::PNGImageDecoder::rowAvailable):
49880         (WebCore::PNGImageDecoder::pngComplete):
49881         * platform/image-decoders/skia/PNGImageDecoder.h:
49882         (WebCore::PNGImageDecoder::filenameExtension):
49883         (WebCore::PNGImageDecoder::reader):
49884         * platform/image-decoders/skia/XBMImageDecoder.cpp: Added.
49885         * platform/image-decoders/skia/XBMImageDecoder.h: Added.
49886
49887 2009-01-23  Darin Fisher  <darin@chromium.org>
49888
49889         Reviewed by Eric Seidel.
49890
49891         https://bugs.webkit.org/show_bug.cgi?id=23506
49892         Copy existing ImageDecoder.h in preparation for landing Skia changes on top.
49893
49894         * platform/image-decoders/skia/ImageDecoder.h: Copied from platform/image-decoders/ImageDecoder.h.
49895
49896 2009-01-23  Darin Fisher  <darin@chromium.org>
49897
49898         Reviewed by Eric Seidel.
49899
49900         https://bugs.webkit.org/show_bug.cgi?id=23506
49901         Copy existing image-decoders in preparation for landing Skia changes on top.
49902
49903         * platform/image-decoders/skia: Added.
49904         * platform/image-decoders/skia/GIFImageDecoder.cpp: Copied from platform/image-decoders/gif/GIFImageDecoder.cpp.
49905         * platform/image-decoders/skia/GIFImageDecoder.h: Copied from platform/image-decoders/gif/GIFImageDecoder.h.
49906         * platform/image-decoders/skia/GIFImageReader.cpp: Copied from platform/image-decoders/gif/GIFImageReader.cpp.
49907         * platform/image-decoders/skia/GIFImageReader.h: Copied from platform/image-decoders/gif/GIFImageReader.h.
49908         * platform/image-decoders/skia/JPEGImageDecoder.cpp: Copied from platform/image-decoders/jpeg/JPEGImageDecoder.cpp.
49909         * platform/image-decoders/skia/JPEGImageDecoder.h: Copied from platform/image-decoders/jpeg/JPEGImageDecoder.h.
49910         * platform/image-decoders/skia/PNGImageDecoder.cpp: Copied from platform/image-decoders/png/PNGImageDecoder.cpp.
49911         * platform/image-decoders/skia/PNGImageDecoder.h: Copied from platform/image-decoders/png/PNGImageDecoder.h.
49912
49913 2009-01-23  Holger Freyther  <zecke@selfish.org>
49914
49915         Unreviewed build fix.
49916
49917         Based on https://bugs.webkit.org/show_bug.cgi?id=23498
49918         from craig.schlenter@gmail.com
49919
49920         * platform/gtk/RenderThemeGtk.cpp:
49921         (WebCore::RenderThemeGtk::baselinePosition):
49922
49923 2009-01-23  David Levin  <levin@chromium.org>
49924
49925         Reviewed by Alexey Proskuryakov.
49926
49927         Bug 22720: Make XMLHttpRequest work in Workers
49928         <https://bugs.webkit.org/show_bug.cgi?id=22720>
49929
49930         Add copy/adopt for ResourceResponse(Base)/ResourceRequest(Base) to allow the
49931         data to be passed across threads.
49932
49933         No observable change in behavior, so no test.
49934
49935         * platform/network/FormData.cpp:
49936         (WebCore::FormData::deepCopy):
49937         * platform/network/FormData.h:
49938         * platform/network/HTTPHeaderMap.cpp:
49939         (WebCore::HTTPHeaderMap::copyData):
49940         (WebCore::HTTPHeaderMap::adopt):
49941         * platform/network/HTTPHeaderMap.h:
49942         * platform/network/ResourceRequestBase.cpp:
49943         (WebCore::ResourceRequestBase::adopt):
49944         (WebCore::ResourceRequestBase::copyData):
49945         * platform/network/ResourceRequestBase.h:
49946         * platform/network/ResourceResponseBase.cpp:
49947         (WebCore::ResourceResponseBase::adopt):
49948         (WebCore::ResourceResponseBase::copyData):
49949         * platform/network/ResourceResponseBase.h:
49950
49951 2009-01-23  Dmitry Titov  <dimich@chromium.org>
49952
49953         Reviewed by Alexey Proskuryakov.
49954
49955         https://bugs.webkit.org/show_bug.cgi?id=23374
49956         Add WorkerRunLoop to encapsulate message queue and timer heap.
49957         This is first half (timer heap is added as separate patch).
49958
49959         * GNUmakefile.am: Added WorkerRunLoop.cpp to the build.
49960         * WebCore.vcproj/WebCore.vcproj: Same as above.
49961         * WebCore.xcodeproj/project.pbxproj: Same as above
49962         * dom/WorkerContext.cpp:
49963         (WebCore::WorkerContext::postTask):
49964         * dom/WorkerContext.h:
49965         * dom/WorkerMessagingProxy.cpp:
49966         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
49967         (WebCore::WorkerMessagingProxy::workerThreadCreated):
49968         * dom/WorkerRunLoop.cpp: Added.
49969         (WebCore::WorkerRunLoop::run): Runs the loop until terminate() is called.
49970         (WebCore::WorkerRunLoop::terminate): Causes the loop to exit.
49971         (WebCore::WorkerRunLoop::postTask): Adds a task to the internal queue.
49972         * dom/WorkerRunLoop.h: Added.
49973         (WebCore::WorkerRunLoop::WorkerRunLoop):
49974         * dom/WorkerThread.cpp:
49975         (WebCore::WorkerThread::workerThread):
49976         (WebCore::WorkerThread::stop):
49977         * dom/WorkerThread.h:
49978         (WebCore::WorkerThread::runLoop):
49979
49980 2009-01-23  Adam Treat  <adam.treat@torchmobile.com>
49981
49982         Reviewed by Holger Hans Peter Freyther.
49983
49984         Redo previous patch http://trac.webkit.org/changeset/34260 which fixes a
49985         huge memory leak by ensuring that the timer is fired one last time on
49986         application tear down thus triggering the GCController thereby freeing
49987         JavaScript objects as well as triggering other timer based tear down methods.
49988
49989         * platform/qt/SharedTimerQt.cpp:
49990         (WebCore::SharedTimerQt::~SharedTimerQt):
49991
49992 2009-01-23  Alexey Proskuryakov  <ap@webkit.org>
49993
49994         Reviewed by Oliver Hunt.
49995
49996         https://bugs.webkit.org/show_bug.cgi?id=23459
49997         Workers are not properly terminated if execution hasn't begun yet
49998
49999         Doesn't affect observable behavior, so test case is not possible.
50000
50001         * dom/WorkerThread.cpp: (WebCore::WorkerThread::workerThread): Call forbidExecution() if
50002         it couldn't be called earlier.
50003
50004 2009-01-23  Ariya Hidayat  <ariya.hidayat@trolltech.com>
50005
50006         [Qt] Fix the build after RenderBox refactoring in r40153.
50007
50008         * platform/qt/RenderThemeQt.cpp:
50009         (WebCore::RenderThemeQt::baselinePosition):
50010
50011 2009-01-23  Ariya Hidayat  <ariya.hidayat@trolltech.com>
50012
50013         Rubber-stamped by Alexey Proskuryakov.
50014
50015         Fix the build after RenderBox refactoring in r40153.
50016
50017         * plugins/PluginView.cpp:
50018         (WebCore::PluginView::invalidateWindowlessPluginRect):
50019
50020 2009-01-23  Ariya Hidayat  <ariya.hidayat@trolltech.com>
50021
50022         Reviewed by Simon Hausmann.
50023
50024         [Qt] Simplify the assertion.
50025
50026         * platform/graphics/qt/GraphicsContextQt.cpp:
50027         (WebCore::GraphicsContext::getWindowsContext):
50028         (WebCore::GraphicsContext::releaseWindowsContext):
50029
50030 2009-01-22  David Hyatt  <hyatt@apple.com>
50031
50032         Move the border and padding methods from RenderObject to RenderBox.
50033
50034         Reviewed by Oliver Hunt
50035
50036         * css/CSSComputedStyleDeclaration.cpp:
50037         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
50038         * editing/DeleteButtonController.cpp:
50039         (WebCore::DeleteButtonController::createDeletionUI):
50040         * page/EventHandler.cpp:
50041         (WebCore::EventHandler::hitTestResultAtPoint):
50042         * rendering/InlineFlowBox.cpp:
50043         (WebCore::InlineFlowBox::placeBoxesVertically):
50044         * rendering/InlineFlowBox.h:
50045         (WebCore::InlineFlowBox::borderLeft):
50046         (WebCore::InlineFlowBox::borderRight):
50047         (WebCore::InlineFlowBox::paddingLeft):
50048         (WebCore::InlineFlowBox::paddingRight):
50049         * rendering/RenderBlock.cpp:
50050         (WebCore::RenderBlock::clearFloats):
50051         * rendering/RenderBox.cpp:
50052         (WebCore::RenderBox::paddingTop):
50053         (WebCore::RenderBox::paddingBottom):
50054         (WebCore::RenderBox::paddingLeft):
50055         (WebCore::RenderBox::paddingRight):
50056         (WebCore::RenderBox::calcHeight):
50057         (WebCore::RenderBox::containingBlockWidthForPositioned):
50058         (WebCore::RenderBox::containingBlockHeightForPositioned):
50059         (WebCore::RenderBox::calcAbsoluteHorizontal):
50060         (WebCore::RenderBox::calcAbsoluteHorizontalValues):
50061         (WebCore::RenderBox::calcAbsoluteVertical):
50062         (WebCore::RenderBox::calcAbsoluteVerticalValues):
50063         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
50064         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
50065         * rendering/RenderBox.h:
50066         (WebCore::RenderBox::borderTop):
50067         (WebCore::RenderBox::borderBottom):
50068         (WebCore::RenderBox::borderLeft):
50069         (WebCore::RenderBox::borderRight):
50070         * rendering/RenderObject.cpp:
50071         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
50072         * rendering/RenderObject.h:
50073         * rendering/RenderTextControl.cpp:
50074         (WebCore::RenderTextControl::textBlockWidth):
50075         (WebCore::RenderTextControl::calcHeight):
50076         (WebCore::RenderTextControl::calcPrefWidths):
50077         * rendering/RenderTextControlSingleLine.cpp:
50078         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
50079         * rendering/RenderTreeAsText.cpp:
50080         (WebCore::operator<<):
50081         * rendering/RenderView.cpp:
50082         (WebCore::RenderView::repaintViewRectangle):
50083
50084 2009-01-22  David Hyatt  <hyatt@apple.com>
50085
50086         Devirtualize the marginTop/Right/Left/Bottom functions and move them to RenderBox (along with some of the
50087         other margin functions that have to come along for the ride).
50088
50089         Reviewed by Oliver Hunt
50090
50091         * css/CSSComputedStyleDeclaration.cpp:
50092         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
50093         * editing/TextIterator.cpp:
50094         (WebCore::shouldEmitExtraNewlineForNode):
50095         * rendering/InlineBox.cpp:
50096         * rendering/InlineBox.h:
50097         (WebCore::InlineBox::renderBox):
50098         * rendering/InlineFlowBox.cpp:
50099         (WebCore::InlineFlowBox::marginLeft):
50100         (WebCore::InlineFlowBox::marginRight):
50101         (WebCore::InlineFlowBox::placeBoxesHorizontally):
50102         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
50103         (WebCore::InlineFlowBox::placeBoxesVertically):
50104         (WebCore::InlineFlowBox::shrinkBoxesWithNoTextChildren):
50105         * rendering/RenderBlock.cpp:
50106         (WebCore::RenderBlock::isSelfCollapsingBlock):
50107         (WebCore::RenderBlock::adjustPositionedBlock):
50108         (WebCore::RenderBlock::handleCompactChild):
50109         (WebCore::RenderBlock::estimateVerticalPosition):
50110         (WebCore::getBorderPaddingMargin):
50111         (WebCore::RenderBlock::calcInlinePrefWidths):
50112         * rendering/RenderBlock.h:
50113         * rendering/RenderBox.cpp:
50114         (WebCore::RenderBox::calcHeight):
50115         * rendering/RenderBox.h:
50116         (WebCore::RenderBox::hasHorizontalBordersPaddingOrMargin):
50117         (WebCore::RenderBox::hasHorizontalBordersOrPadding):
50118         (WebCore::RenderBox::marginTop):
50119         (WebCore::RenderBox::marginBottom):
50120         (WebCore::RenderBox::marginLeft):
50121         (WebCore::RenderBox::marginRight):
50122         (WebCore::RenderBox::isSelfCollapsingBlock):
50123         (WebCore::RenderBox::collapsedMarginTop):
50124         (WebCore::RenderBox::collapsedMarginBottom):
50125         (WebCore::RenderBox::isTopMarginQuirk):
50126         (WebCore::RenderBox::isBottomMarginQuirk):
50127         (WebCore::RenderBox::maxTopMargin):
50128         (WebCore::RenderBox::maxBottomMargin):
50129         * rendering/RenderObject.cpp:
50130         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
50131         * rendering/RenderObject.h:
50132         * rendering/RenderSVGContainer.cpp:
50133         (WebCore::RenderSVGContainer::lineHeight):
50134         (WebCore::RenderSVGContainer::baselinePosition):
50135         * rendering/RenderTextControl.cpp:
50136         (WebCore::RenderTextControl::calcHeight):
50137         * rendering/RenderTheme.cpp:
50138         (WebCore::RenderTheme::baselinePosition):
50139         * rendering/bidi.cpp:
50140         (WebCore::getBorderPaddingMargin):
50141         (WebCore::inlineWidth):
50142         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
50143         (WebCore::inlineFlowRequiresLineBox):
50144         (WebCore::requiresLineBox):
50145         (WebCore::RenderBlock::findNextLineBreak):
50146
50147 2009-01-22  Mark Rowe  <mrowe@apple.com>
50148
50149         Rubber-stamped by Anders Carlsson.
50150
50151         Disable GCC_WARN_ABOUT_MISSING_PROTOTYPES temporarily.
50152
50153         Current versions of Xcode only respect it for C and Objective-C files,
50154         and our code doesn't currently compile if it is applied to C++ and
50155         Objective-C++ files.
50156
50157         * Configurations/Base.xcconfig:
50158
50159 2009-01-22  David Hyatt  <hyatt@apple.com>
50160
50161         Move the m_widthChanged bit on RenderTableCell into RenderFlow's set of bits.  Let intrinsicPaddingTop and
50162         intrinsicPaddingBottom just be normal non-bitfield values.
50163
50164         Reviewed by Oliver Hunt
50165
50166         * rendering/RenderFlow.h:
50167         (WebCore::RenderFlow::RenderFlow):
50168         * rendering/RenderTableCell.cpp:
50169         (WebCore::RenderTableCell::RenderTableCell):
50170         (WebCore::RenderTableCell::updateWidth):
50171         (WebCore::RenderTableCell::layout):
50172         * rendering/RenderTableCell.h:
50173
50174 2009-01-22  David Hyatt  <hyatt@apple.com>
50175
50176         Properly encapsulate m_frameRect.y() behind the RenderBox::y() method now that they are the same thing.
50177         Make m_frameRect private.
50178
50179         Reviewed by Oliver Hunt
50180
50181         * rendering/RenderBlock.cpp:
50182         (WebCore::RenderBlock::paint):
50183         (WebCore::RenderBlock::clearFloats):
50184         * rendering/RenderBox.cpp:
50185         (WebCore::RenderBox::offsetTop):
50186         (WebCore::RenderBox::nodeAtPoint):
50187         (WebCore::RenderBox::paint):
50188         (WebCore::RenderBox::paintCustomHighlight):
50189         (WebCore::RenderBox::containingBlockWidth):
50190         (WebCore::RenderBox::localToAbsolute):
50191         (WebCore::RenderBox::offsetFromContainer):
50192         (WebCore::RenderBox::computeAbsoluteRepaintRect):
50193         (WebCore::RenderBox::repaintDuringLayoutIfMoved):
50194         * rendering/RenderContainer.cpp:
50195         (WebCore::RenderContainer::layout):
50196         * rendering/RenderFlexibleBox.cpp:
50197         (WebCore::RenderFlexibleBox::layoutBlock):
50198         * rendering/RenderFrameSet.cpp:
50199         (WebCore::RenderFrameSet::paint):
50200         * rendering/RenderImage.cpp:
50201         (WebCore::RenderImage::paintReplaced):
50202         (WebCore::RenderImage::nodeAtPoint):
50203         * rendering/RenderListMarker.cpp:
50204         (WebCore::RenderListMarker::paint):
50205         (WebCore::RenderListMarker::getRelativeMarkerRect):
50206         * rendering/RenderReplaced.cpp:
50207         (WebCore::RenderReplaced::paint):
50208         (WebCore::RenderReplaced::shouldPaint):
50209         * rendering/RenderReplica.cpp:
50210         (WebCore::RenderReplica::paint):
50211         * rendering/RenderSVGRoot.cpp:
50212         (WebCore::RenderSVGRoot::applyContentTransforms):
50213         (WebCore::RenderSVGRoot::paint):
50214         (WebCore::RenderSVGRoot::absoluteTransform):
50215         (WebCore::RenderSVGRoot::nodeAtPoint):
50216         * rendering/RenderTable.cpp:
50217         (WebCore::RenderTable::calcWidth):
50218         (WebCore::RenderTable::layout):
50219         * rendering/RenderTableCell.cpp:
50220         (WebCore::RenderTableCell::paint):
50221         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
50222         * rendering/RenderTableSection.cpp:
50223         (WebCore::RenderTableSection::setCellWidths):
50224         (WebCore::RenderTableSection::calcRowHeight):
50225         (WebCore::RenderTableSection::layoutRows):
50226         (WebCore::RenderTableSection::paint):
50227         (WebCore::RenderTableSection::nodeAtPoint):
50228         * rendering/RenderWidget.cpp:
50229         (WebCore::RenderWidget::paint):
50230
50231 2009-01-22  David Hyatt  <hyatt@apple.com>
50232
50233         Fix for https://bugs.webkit.org/show_bug.cgi?id=23487.
50234
50235         This patch completely reworks vertical alignment of table cells.  The current system uses methods called borderTopExtra() and borderBottomExtra() to
50236         add extra space above and below the content of a cell.  This system was not confined to the table code and spilled out into all the other RenderObjects.
50237         The y-position of the table cell box was set to the outer edge of the cell, but the y() method of RenderBox lied and added in borderTopExtra().  height()
50238         also excluded the extra space, so did not accurately reflect the true size of the cell.
50239
50240         With the new system, the table cell box is completely accurate.  The extra space becomes part of the padding of the cell.  Padding has been reworked so that
50241         additional intrinsic padding can be added on to the specified padding from style.  Only the table code has to deal with the extra cell padding.
50242
50243         localToAbsoluteForContent has now been removed, since there no longer has to be a special hacked content box.
50244
50245         A number of table layout tests progress with this change, since the new layout system actually fixes existing bugs in baseline alignment of cells.
50246
50247         Reviewed by Oliver Hunt
50248
50249         * css/CSSComputedStyleDeclaration.cpp:
50250         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
50251         Make CSSComputedStyleDeclaration ask for padding values that exclude the built-in intrinsic padding.  This ensures that getComputedStyle continues
50252         to give the right answer.
50253
50254         * dom/ContainerNode.cpp:
50255         (WebCore::ContainerNode::getLowerRightCorner):
50256         * editing/visible_units.cpp:
50257         (WebCore::previousLinePosition):
50258         (WebCore::nextLinePosition):
50259         * rendering/LayoutState.cpp:
50260         (WebCore::LayoutState::LayoutState):
50261         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50262
50263         * rendering/RenderBlock.cpp:
50264         (WebCore::RenderBlock::overflowRect):
50265         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50266
50267         (WebCore::RenderBlock::layoutBlock):
50268         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
50269         The expandsToEncloseOverhangingFloats logic has been reworked.  Table cells and fieldsets did not properly handle floats that spilled into the bottom padding.  The
50270         resulting box needed to not only expand to encompass the float, but also needed to place the full bottom padding after the float.  The switch to make the extra table cell
50271         space into padding exposed this issue.  No extra layout test is required, since an existing table layout test exposes this issue and progresses to match Firefox with
50272         this change.
50273
50274         (WebCore::RenderBlock::selectionGapRects):
50275         (WebCore::RenderBlock::paintSelection):
50276         (WebCore::RenderBlock::fillSelectionGaps):
50277         (WebCore::RenderBlock::nodeAtPoint):
50278         (WebCore::RenderBlock::positionForCoordinates):
50279         (WebCore::RenderBlock::offsetForContents):
50280         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50281
50282         * rendering/RenderBlock.h:
50283         Add the new simplified method for expanding to encompass overhanging floats.  The method has been devirtualized and made to include all of the cases (and not just a subset).
50284
50285         * rendering/RenderBox.cpp:
50286         (WebCore::RenderBox::absoluteRects):
50287         (WebCore::RenderBox::absoluteQuads):
50288         (WebCore::RenderBox::absoluteContentBox):
50289         (WebCore::RenderBox::paintBoxDecorations):
50290         (WebCore::RenderBox::paintMask):
50291         (WebCore::RenderBox::getOverflowClipRect):
50292         (WebCore::RenderBox::localToAbsolute):
50293         (WebCore::RenderBox::absoluteToLocal):
50294         (WebCore::RenderBox::localToAbsoluteQuad):
50295         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50296
50297         * rendering/RenderBox.h:
50298         (WebCore::RenderBox::y):
50299         (WebCore::RenderBox::location):
50300         (WebCore::RenderBox::borderBoxRect):
50301         (WebCore::RenderBox::offsetHeight):
50302         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50303
50304         * rendering/RenderContainer.cpp:
50305         (WebCore::RenderContainer::addLineBoxRects):
50306         * rendering/RenderFieldset.cpp:
50307         (WebCore::RenderFieldset::paintBoxDecorations):
50308         (WebCore::RenderFieldset::paintMask):
50309         * rendering/RenderFieldset.h:
50310         (WebCore::RenderFieldset::avoidsFloats):
50311         * rendering/RenderFlow.cpp:
50312         (WebCore::RenderFlow::localCaretRect):
50313         * rendering/RenderLayer.cpp:
50314         (WebCore::RenderLayer::updateLayerPosition):
50315         (WebCore::RenderLayer::paintLayer):
50316         (WebCore::RenderLayer::hitTestLayer):
50317         (WebCore::RenderLayer::boundingBox):
50318         * rendering/RenderListBox.cpp:
50319         (WebCore::RenderListBox::isPointInOverflowControl):
50320         * rendering/RenderObject.cpp:
50321         (WebCore::RenderObject::localToAbsolute):
50322         (WebCore::RenderObject::absoluteToLocal):
50323         (WebCore::RenderObject::localToAbsoluteQuad):
50324         (WebCore::RenderObject::offsetFromContainer):
50325         (WebCore::RenderObject::paddingTop):
50326         (WebCore::RenderObject::paddingBottom):
50327         (WebCore::RenderObject::paddingLeft):
50328         (WebCore::RenderObject::paddingRight):
50329         * rendering/RenderObject.h:
50330         (WebCore::RenderObject::hasOverhangingFloats):
50331         * rendering/RenderReplaced.cpp:
50332         (WebCore::RenderReplaced::selectionRect):
50333         (WebCore::RenderReplaced::localSelectionRect):
50334         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.  Also modifed paddingLeft/Top/Right/Bottom to take an argument indicating
50335         whether or not the intrinsic padding of an object should be included (by default it is).  getComputedStyle needs to exclude it, which is why this argument is
50336         necessary.
50337
50338         * rendering/RenderTableCell.cpp:
50339         (WebCore::RenderTableCell::RenderTableCell):
50340         (WebCore::RenderTableCell::paddingTop):
50341         (WebCore::RenderTableCell::paddingBottom):
50342         The new paddingTop() and paddingBottom() methods on table cells include the extra intrinsic padding.
50343
50344         (WebCore::RenderTableCell::setOverrideSize):
50345         When a table's override size gets altered, the intrinsic padding needs to be cleared.
50346
50347         (WebCore::RenderTableCell::absoluteClippedOverflowRect):
50348         (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
50349         (WebCore::RenderTableCell::baselinePosition):
50350         (WebCore::RenderTableCell::paint):
50351         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
50352         (WebCore::RenderTableCell::paintBoxDecorations):
50353         (WebCore::RenderTableCell::paintMask):
50354         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50355
50356         * rendering/RenderTableCell.h:
50357         (WebCore::RenderTableCell::setIntrinsicPaddingTop):
50358         (WebCore::RenderTableCell::setIntrinsicPaddingBottom):
50359         (WebCore::RenderTableCell::setIntrinsicPadding):
50360         (WebCore::RenderTableCell::clearIntrinsicPadding):
50361         (WebCore::RenderTableCell::intrinsicPaddingTop):
50362         (WebCore::RenderTableCell::intrinsicPaddingBottom):
50363         Add new helper methods for getting/setting a cell's intrinsic padding.
50364
50365         * rendering/RenderTableSection.cpp:
50366         (WebCore::RenderTableSection::calcRowHeight):
50367         calcRowHeight has been modified to exclude the intrinsic padding when calculating the base height of rows prior to flexing.  Because a cell now includes that
50368         extra space, it has to be subtracted out in this method.
50369
50370         (WebCore::RenderTableSection::layoutRows):
50371         Modify the code that sets up the intrinsic padding so that it does a relayout if the intrinsic padding changes.   There was also an error where the baseline
50372         position mismatched leading to negative intrinsic padding being added in (this error exists in ToT).  The code now properly ignores cells that don't establish
50373         a baseline.  A number of tests progress with this change.
50374
50375         * rendering/RenderText.cpp:
50376         (WebCore::RenderText::addLineBoxRects):
50377         Remove borderTopExtra()/borderBottomExtra() hacks and localToAbsoluteForContent calls.
50378
50379         * rendering/RenderTreeAsText.cpp:
50380         (WebCore::operator<<):
50381         (WebCore::writeTextRun):
50382         Modify the render tree dumping code to continue to produce the same results as before.  This is really a hack, since we're now capable of indicating the correct
50383         position for the descendants of cells with intrinsic padding (and also indicating what the correct cell box is).  A future patch can remove these hacks so that the
50384         layout test results can all be regenerated.
50385
50386 2009-01-22  Eric Seidel  <eric@webkit.org>
50387
50388         Reviewed by Darin Adler.
50389
50390         Remove <strong>/<em> tags when toggling bold/italic since IE inserts them instead of <b>/<i>
50391         https://bugs.webkit.org/show_bug.cgi?id=23486
50392
50393         Test: editing/execCommand/toggle-styles.html
50394
50395         * editing/ApplyStyleCommand.cpp:
50396         (WebCore::ApplyStyleCommand::isHTMLStyleNode):
50397
50398 2009-01-22  Eric Seidel  <eric@webkit.org>
50399
50400         Reviewed by Justin Garcia.
50401
50402         Remove <span> turds left by editing commands
50403         https://bugs.webkit.org/show_bug.cgi?id=23466
50404
50405         Tests:
50406         * editing/execCommand/empty-span-removal.html
50407         * editing/execCommand/toggle-styles.html
50408
50409         * editing/ApplyStyleCommand.cpp:
50410         (WebCore::styleSpanClassString):
50411         (WebCore::isStyleSpan):
50412         (WebCore::isUnstyledStyleSpan):
50413         (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan):
50414         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
50415         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
50416         (WebCore::ApplyStyleCommand::removeHTMLBidiEmbeddingStyle):
50417         (WebCore::ApplyStyleCommand::removeCSSStyle):
50418
50419 2009-01-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
50420
50421         Reviewed by Eric Seidel.
50422
50423         Rename some of the casting functions in dom/*Element.cpp:
50424         formControlElementForElement -> toFormControlElement
50425         inputElementForElement -> toInputElement
50426         optionElementForElement -> toOptionElement
50427         optionGroupElementForElement -> toOptionGroupElement
50428
50429         Suggested by Alexey, while refactoring the Element*->ScriptElement* code.
50430         The Element*->ScriptElement* helper function is already named 'toScriptElement'.
50431
50432         * dom/FormControlElement.cpp:
50433         (WebCore::toFormControlElement):
50434         * dom/FormControlElement.h:
50435         * dom/InputElement.cpp:
50436         (WebCore::InputElement::setValueFromRenderer):
50437         (WebCore::toInputElement):
50438         * dom/InputElement.h:
50439         * dom/OptionElement.cpp:
50440         (WebCore::OptionElement::collectOptionTextRespectingGroupLabel):
50441         (WebCore::toOptionElement):
50442         * dom/OptionElement.h:
50443         * dom/OptionGroupElement.cpp:
50444         (WebCore::toOptionGroupElement):
50445         * dom/OptionGroupElement.h:
50446         * rendering/RenderListBox.cpp:
50447         (WebCore::RenderListBox::updateFromElement):
50448         (WebCore::RenderListBox::paintItemForeground):
50449         (WebCore::RenderListBox::paintItemBackground):
50450         * rendering/RenderMenuList.cpp:
50451         (WebCore::RenderMenuList::updateOptionsWidth):
50452         (WebCore::RenderMenuList::setTextFromOption):
50453         (WebCore::RenderMenuList::itemText):
50454         (WebCore::RenderMenuList::itemIsSelected):
50455         * rendering/RenderTextControl.cpp:
50456         (WebCore::RenderTextControl::formControlElement):
50457         * rendering/RenderTextControlSingleLine.cpp:
50458         (WebCore::RenderTextControlSingleLine::inputElement):
50459
50460 2009-01-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
50461
50462         Rubber-stamped by George Staikos.
50463
50464         Forgot to include in my last commit: Activate code depending on WMLOptionElement/WMLOptGroupElement.
50465
50466         * dom/OptionElement.cpp:
50467         (WebCore::optionElementForElement):
50468         * dom/OptionGroupElement.cpp:
50469         (WebCore::optionGroupElementForElement):
50470
50471 2009-01-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
50472
50473         Reviewed by George Staikos.
50474
50475         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23454
50476
50477         Add WML <option>/<optgroup> element support.
50478         Currently the implementation is stubbed, all relevant parts can be enabled
50479         once WMLSelectElement/SelectElement has been created.
50480
50481         * GNUmakefile.am:
50482         * WebCore.pro:
50483         * WebCore.vcproj/WebCore.vcproj:
50484         * WebCore.xcodeproj/project.pbxproj:
50485         * wml/WMLOptGroupElement.cpp: Added.
50486         (WebCore::WMLOptGroupElement::WMLOptGroupElement):
50487         (WebCore::WMLOptGroupElement::~WMLOptGroupElement):
50488         (WebCore::WMLOptGroupElement::insertBefore):
50489         (WebCore::WMLOptGroupElement::replaceChild):
50490         (WebCore::WMLOptGroupElement::removeChild):
50491         (WebCore::WMLOptGroupElement::appendChild):
50492         (WebCore::WMLOptGroupElement::removeChildren):
50493         (WebCore::ownerSelectElement):
50494         (WebCore::WMLOptGroupElement::accessKeyAction):
50495         (WebCore::WMLOptGroupElement::childrenChanged):
50496         (WebCore::WMLOptGroupElement::parseMappedAttribute):
50497         (WebCore::WMLOptGroupElement::attach):
50498         (WebCore::WMLOptGroupElement::detach):
50499         (WebCore::WMLOptGroupElement::setRenderStyle):
50500         (WebCore::WMLOptGroupElement::nonRendererRenderStyle):
50501         (WebCore::WMLOptGroupElement::groupLabelText):
50502         (WebCore::WMLOptGroupElement::recalcSelectOptions):
50503         * wml/WMLOptGroupElement.h: Added.
50504         (WebCore::WMLOptGroupElement::title):
50505         (WebCore::WMLOptGroupElement::valueMatchesRenderer):
50506         (WebCore::WMLOptGroupElement::setValueMatchesRenderer):
50507         (WebCore::WMLOptGroupElement::rendererIsNeeded):
50508         * wml/WMLOptionElement.cpp: Added.
50509         (WebCore::WMLOptionElement::WMLOptionElement):
50510         (WebCore::WMLOptionElement::~WMLOptionElement):
50511         (WebCore::ownerSelectElement):
50512         (WebCore::WMLOptionElement::accessKeyAction):
50513         (WebCore::WMLOptionElement::childrenChanged):
50514         (WebCore::WMLOptionElement::parseMappedAttribute):
50515         (WebCore::WMLOptionElement::attach):
50516         (WebCore::WMLOptionElement::detach):
50517         (WebCore::WMLOptionElement::setRenderStyle):
50518         (WebCore::WMLOptionElement::insertedIntoDocument):
50519         (WebCore::WMLOptionElement::selected):
50520         (WebCore::WMLOptionElement::setSelectedState):
50521         (WebCore::WMLOptionElement::value):
50522         (WebCore::WMLOptionElement::textIndentedToRespectGroupLabel):
50523         (WebCore::WMLOptionElement::nonRendererRenderStyle):
50524         (WebCore::WMLOptionElement::handleIntrinsicEventIfNeeded):
50525         * wml/WMLOptionElement.h: Added.
50526         (WebCore::WMLOptionElement::valueMatchesRenderer):
50527         (WebCore::WMLOptionElement::setValueMatchesRenderer):
50528         (WebCore::WMLOptionElement::rendererIsNeeded):
50529         * wml/WMLTagNames.in:
50530
50531 2009-01-22  Eric Roman  <eroman@chromium.org>
50532
50533         Reviewed by Eric Seidel.
50534
50535         https://bugs.webkit.org/show_bug.cgi?id=20806
50536         Send referrer for history navigations.
50537
50538         Test: http/tests/navigation/back-send-referrer.html
50539
50540         Consolidates HistoryItem::rssFeedReferrer and HistoryItem::formReferrer into a single HistoryItem::referrer property.
50541
50542         * history/HistoryItem.cpp:
50543         (WebCore::HistoryItem::HistoryItem):
50544         (WebCore::HistoryItem::referrer):
50545         (WebCore::HistoryItem::setReferrer):
50546         (WebCore::HistoryItem::formReferrer):
50547         (WebCore::HistoryItem::rssFeedReferrer):
50548         (WebCore::HistoryItem::setRSSFeedReferrer):
50549         (WebCore::HistoryItem::setFormInfoFromRequest):
50550         * history/HistoryItem.h:
50551         * loader/FrameLoader.cpp:
50552         (WebCore::FrameLoader::loadItem):
50553
50554 2009-01-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
50555
50556         Reviewed by Eric Seidel.
50557
50558         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23465
50559
50560         Further enhancments to share code between HTMLOptionElement and the upcoming WMLOptionElement.
50561
50562         Rename optionText() to textIndentedToRespectGroupLabel() in (HTML)OptionElement, as it fits better.
50563         optionText() returns the options text prefixed with some spaces, in case it got an optgroup parent.
50564
50565         Add two more pure-virtual functions to OptionElement: setSelectedState(bool) & value().
50566         These aren't used outside of html/ at the moment (unlike the other pure-virtual functions
50567         used by RenderMenuList/RenderListBox) - but they will be used by SelectElement, once it exists.
50568
50569         * dom/OptionElement.cpp:
50570         (WebCore::OptionElement::setSelectedState):
50571         (WebCore::OptionElement::collectOptionText):
50572         (WebCore::OptionElement::collectOptionTextRespectingGroupLabel):
50573         (WebCore::OptionElement::collectOptionValue):
50574         (WebCore::OptionElementData::OptionElementData):
50575         (WebCore::OptionElementData::~OptionElementData):
50576         * dom/OptionElement.h:
50577         (WebCore::OptionElementData::element):
50578         (WebCore::OptionElementData::value):
50579         (WebCore::OptionElementData::setValue):
50580         (WebCore::OptionElementData::label):
50581         (WebCore::OptionElementData::setLabel):
50582         (WebCore::OptionElementData::selected):
50583         (WebCore::OptionElementData::setSelected):
50584         * html/HTMLOptionElement.cpp:
50585         (WebCore::HTMLOptionElement::HTMLOptionElement):
50586         (WebCore::HTMLOptionElement::text):
50587         (WebCore::HTMLOptionElement::parseMappedAttribute):
50588         (WebCore::HTMLOptionElement::value):
50589         (WebCore::HTMLOptionElement::selected):
50590         (WebCore::HTMLOptionElement::setSelected):
50591         (WebCore::HTMLOptionElement::setSelectedState):
50592         (WebCore::HTMLOptionElement::label):
50593         (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
50594         * html/HTMLOptionElement.h:
50595         * html/HTMLSelectElement.cpp:
50596         (WebCore::HTMLSelectElement::typeAheadFind):
50597         * rendering/RenderListBox.cpp:
50598         (WebCore::RenderListBox::updateFromElement):
50599         (WebCore::RenderListBox::paintItemForeground):
50600         * rendering/RenderMenuList.cpp:
50601         (WebCore::RenderMenuList::updateOptionsWidth):
50602         (WebCore::RenderMenuList::setTextFromOption):
50603         (WebCore::RenderMenuList::itemText):
50604
50605 2009-01-22  Chris Fleizach  <cfleizach@apple.com>
50606
50607         Reviewed by Justin Garcia.
50608
50609         Bug 23464: Infinite recursion at SelectionController::setSelection
50610         https://bugs.webkit.org/show_bug.cgi?id=23464
50611
50612         Check for conditions leading to infinite recursion.
50613
50614         * editing/SelectionController.cpp:
50615         (WebCore::SelectionController::setSelection):
50616
50617 2009-01-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
50618
50619         Not reviewed. Fix WML build problem in RenderBox.cpp, WMLNames is undefined.
50620
50621         * rendering/RenderBox.cpp:
50622
50623 2009-01-22  Adam Treat  <adam.treat@torchmobile.com>
50624
50625         Fix the Qt build after RenderBox changes.
50626
50627         * platform/qt/RenderThemeQt.cpp:
50628         (WebCore::RenderThemeQt::baselinePosition):
50629
50630 2009-01-22  David Hyatt  <hyatt@apple.com>
50631
50632         Fix regressions in list box selection on Mac.  The wrong color was being used for the list box
50633         background, and list box colors actually weren't even being properly fetched because of a bug in
50634         the RenderTheme base class.  Existing pixel tests cover the bug fix.
50635
50636         Reviewed by Jon Honeycutt
50637
50638         * rendering/RenderTheme.cpp:
50639         (WebCore::RenderTheme::activeListBoxSelectionBackgroundColor):
50640         (WebCore::RenderTheme::inactiveListBoxSelectionBackgroundColor):
50641         (WebCore::RenderTheme::activeListBoxSelectionForegroundColor):
50642         (WebCore::RenderTheme::inactiveListBoxSelectionForegroundColor):
50643         * rendering/RenderThemeMac.mm:
50644         (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor):
50645
50646 2009-01-22  David Levin  <levin@chromium.org>
50647
50648         Reviewed by Alexey Proskuryakov.
50649
50650         Bug 22720: Make XMLHttpRequest work in Workers
50651         <https://bugs.webkit.org/show_bug.cgi?id=22720>
50652
50653         Add copy/adopt for HTTPHeaderMap to allow the data to be passed across threads.
50654
50655         No observable change in behavior, so no test.
50656
50657         * GNUmakefile.am:
50658         * WebCore.pro:
50659         * WebCore.scons:
50660         * WebCore.vcproj/WebCore.vcproj:
50661         * WebCore.xcodeproj/project.pbxproj:
50662         * WebCoreSources.bkl:
50663         * platform/network/HTTPHeaderMap.cpp: Added.
50664         (WebCore::HTTPHeaderMap::copyData):
50665         (WebCore::HTTPHeaderMap::adopt):
50666         * platform/network/HTTPHeaderMap.h:
50667
50668 2009-01-21  David Hyatt  <hyatt@apple.com>
50669
50670         Back out a portion of my patch that I did not mean to land.  Revert paintOutline back to the way it
50671         was before my landing.  Fixes failing SVG focus ring tests.
50672
50673         * rendering/RenderObject.cpp:
50674         (WebCore::RenderObject::paintOutline):
50675         * rendering/RenderObject.h:
50676         * rendering/RenderPath.cpp:
50677         (WebCore::RenderPath::paint):
50678         * rendering/RenderSVGContainer.cpp:
50679         (WebCore::RenderSVGContainer::paint):
50680
50681 2009-01-21  David Hyatt  <hyatt@apple.com>
50682
50683         Fix Node's renderBox() method on Windows.
50684
50685         * dom/Node.cpp:
50686         (WebCore::Node::renderBox):
50687
50688 2009-01-21  David Hyatt  <hyatt@apple.com>
50689
50690         Fix RenderThemeSafari bustage on Win32.
50691
50692         * rendering/RenderThemeSafari.cpp:
50693         (WebCore::RenderThemeSafari::baselinePosition):
50694
50695 2009-01-21  David Hyatt  <hyatt@apple.com>
50696
50697         Fix bustage in RenderThemeWin. It's actually terrible that RenderThemeWin is using absoluteContentBox,
50698         but that's a problem for another day.
50699
50700         * rendering/RenderThemeWin.cpp:
50701         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
50702         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
50703         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
50704
50705 2009-01-21  Oliver Hunt  <oliver@apple.com>
50706
50707         Reviewed by Dave Hyatt.
50708
50709         Bug 23470: Crash when page load occurs while processing scroll event with MallocScribble enabled
50710         <https://bugs.webkit.org/show_bug.cgi?id=23470>
50711
50712         Add a RefPtr protector to handleWheelEvent to guard against destruction
50713         while processing the scroll event.  Alas the absurd set of circumstances
50714         required to trigger this do not appear to be reproducible in DRT.
50715
50716         * page/EventHandler.cpp:
50717         (WebCore::EventHandler::handleWheelEvent):
50718
50719 2009-01-21  David Hyatt  <hyatt@apple.com>
50720
50721         Fix for https://bugs.webkit.org/show_bug.cgi?id=23453
50722
50723         Devirtualize the width/height/x/y methods of the render tree.  The methods are now non-virtual on RenderBox.
50724         Many functions that were previously in RenderObject.cpp are now in RenderBox.cpp.
50725
50726         Reviewed by Eric Seidel and Darin Adler
50727
50728         * WebCore.base.exp:
50729         * css/CSSComputedStyleDeclaration.cpp:
50730         (WebCore::sizingBox):
50731         * dom/ContainerNode.cpp:
50732         (WebCore::ContainerNode::getUpperLeftCorner):
50733         (WebCore::ContainerNode::getLowerRightCorner):
50734         * dom/Element.cpp:
50735         (WebCore::Element::offsetLeft):
50736         (WebCore::Element::offsetTop):
50737         (WebCore::Element::offsetWidth):
50738         (WebCore::Element::offsetHeight):
50739         (WebCore::Element::offsetParent):
50740         (WebCore::Element::clientLeft):
50741         (WebCore::Element::clientTop):
50742         (WebCore::Element::clientWidth):
50743         (WebCore::Element::clientHeight):
50744         (WebCore::Element::scrollLeft):
50745         (WebCore::Element::scrollTop):
50746         (WebCore::Element::setScrollLeft):
50747         (WebCore::Element::setScrollTop):
50748         (WebCore::Element::scrollWidth):
50749         (WebCore::Element::scrollHeight):
50750         * dom/Node.cpp:
50751         (WebCore::Node::renderBox):
50752         (WebCore::Node::getRect):
50753         * dom/Node.h:
50754         * dom/Position.cpp:
50755         (WebCore::endsOfNodeAreVisuallyDistinctPositions):
50756         (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
50757         (WebCore::Position::isCandidate):
50758         * dom/PositionIterator.cpp:
50759         (WebCore::PositionIterator::isCandidate):
50760         * editing/CompositeEditCommand.cpp:
50761         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):
50762         * editing/DeleteButtonController.cpp:
50763         (WebCore::isDeletableElement):
50764         * editing/DeleteSelectionCommand.cpp:
50765         (WebCore::DeleteSelectionCommand::removeNode):
50766         * editing/Editor.cpp:
50767         (WebCore::Editor::insideVisibleArea):
50768         * editing/EditorCommand.cpp:
50769         (WebCore::verticalScrollDistance):
50770         * html/HTMLAnchorElement.cpp:
50771         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
50772         * html/HTMLCanvasElement.cpp:
50773         (WebCore::HTMLCanvasElement::willDraw):
50774         * html/HTMLFormControlElement.cpp:
50775         (WebCore::HTMLFormControlElement::isFocusable):
50776         * html/HTMLFrameElementBase.cpp:
50777         (WebCore::HTMLFrameElementBase::width):
50778         (WebCore::HTMLFrameElementBase::height):
50779         * html/HTMLImageElement.cpp:
50780         (WebCore::HTMLImageElement::width):
50781         (WebCore::HTMLImageElement::height):
50782         * inspector/InspectorController.cpp:
50783         (WebCore::InspectorController::drawNodeHighlight):
50784         * page/AccessibilityRenderObject.cpp:
50785         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
50786         * page/FrameView.cpp:
50787         (WebCore::FrameView::createScrollbar):
50788         (WebCore::FrameView::updateDashboardRegions):
50789         * page/animation/AnimationBase.cpp:
50790         (WebCore::blendFunc):
50791         * rendering/HitTestResult.cpp:
50792         (WebCore::HitTestResult::imageRect):
50793         * rendering/InlineBox.cpp:
50794         (WebCore::InlineBox::renderBox):
50795         (WebCore::InlineBox::adjustPosition):
50796         * rendering/InlineBox.h:
50797         * rendering/InlineFlowBox.cpp:
50798         (WebCore::InlineFlowBox::placeBoxesHorizontally):
50799         (WebCore::InlineFlowBox::verticallyAlignBoxes):
50800         (WebCore::InlineFlowBox::placeBoxesVertically):
50801         * rendering/InlineFlowBox.h:
50802         * rendering/RenderApplet.cpp:
50803         (WebCore::RenderApplet::createWidgetIfNecessary):
50804         * rendering/RenderBlock.cpp:
50805         (WebCore::RenderBlock::overflowHeight):
50806         (WebCore::RenderBlock::overflowWidth):
50807         (WebCore::RenderBlock::overflowRect):
50808         (WebCore::RenderBlock::isSelfCollapsingBlock):
50809         (WebCore::RenderBlock::layout):
50810         (WebCore::RenderBlock::layoutBlock):
50811         (WebCore::RenderBlock::adjustPositionedBlock):
50812         (WebCore::RenderBlock::adjustFloatingBlock):
50813         (WebCore::RenderBlock::handleSpecialChild):
50814         (WebCore::RenderBlock::handlePositionedChild):
50815         (WebCore::RenderBlock::handleFloatingChild):
50816         (WebCore::RenderBlock::handleCompactChild):
50817         (WebCore::RenderBlock::insertCompactIfNeeded):
50818         (WebCore::RenderBlock::handleRunInChild):
50819         (WebCore::RenderBlock::collapseMargins):
50820         (WebCore::RenderBlock::clearFloatsIfNeeded):
50821         (WebCore::RenderBlock::estimateVerticalPosition):
50822         (WebCore::RenderBlock::determineHorizontalPosition):
50823         (WebCore::RenderBlock::handleBottomOfBlock):
50824         (WebCore::RenderBlock::layoutBlockChildren):
50825         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
50826         (WebCore::RenderBlock::layoutPositionedObjects):
50827         (WebCore::RenderBlock::markPositionedObjectsForLayout):
50828         (WebCore::RenderBlock::repaintOverhangingFloats):
50829         (WebCore::RenderBlock::paint):
50830         (WebCore::RenderBlock::paintChildren):
50831         (WebCore::RenderBlock::paintObject):
50832         (WebCore::RenderBlock::paintFloats):
50833         (WebCore::RenderBlock::paintContinuationOutlines):
50834         (WebCore::clipOutPositionedObjects):
50835         (WebCore::RenderBlock::fillSelectionGaps):
50836         (WebCore::RenderBlock::fillBlockSelectionGaps):
50837         (WebCore::RenderBlock::leftSelectionOffset):
50838         (WebCore::RenderBlock::rightSelectionOffset):
50839         (WebCore::RenderBlock::insertPositionedObject):
50840         (WebCore::RenderBlock::removePositionedObject):
50841         (WebCore::RenderBlock::removePositionedObjects):
50842         (WebCore::RenderBlock::insertFloatingObject):
50843         (WebCore::RenderBlock::removeFloatingObject):
50844         (WebCore::RenderBlock::positionNewFloats):
50845         (WebCore::RenderBlock::newLine):
50846         (WebCore::RenderBlock::lowestPosition):
50847         (WebCore::RenderBlock::rightmostPosition):
50848         (WebCore::RenderBlock::leftmostPosition):
50849         (WebCore::RenderBlock::clearFloats):
50850         (WebCore::RenderBlock::addOverhangingFloats):
50851         (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
50852         (WebCore::RenderBlock::getClearDelta):
50853         (WebCore::RenderBlock::nodeAtPoint):
50854         (WebCore::RenderBlock::positionForCoordinates):
50855         (WebCore::RenderBlock::layoutColumns):
50856         (WebCore::RenderBlock::getBaselineOfFirstLineBox):
50857         (WebCore::RenderBlock::getBaselineOfLastLineBox):
50858         (WebCore::getHeightForLineCount):
50859         (WebCore::RenderBlock::adjustForBorderFit):
50860         * rendering/RenderBlock.h:
50861         (WebCore::RenderBlock::FloatWithRect::FloatWithRect):
50862         (WebCore::RenderBlock::hasOverhangingFloats):
50863         (WebCore::RenderBlock::CompactInfo::compact):
50864         (WebCore::RenderBlock::CompactInfo::set):
50865         * rendering/RenderBox.cpp:
50866         (WebCore::RenderBox::RenderBox):
50867         (WebCore::RenderBox::offsetLeft):
50868         (WebCore::RenderBox::offsetTop):
50869         (WebCore::RenderBox::offsetParent):
50870         (WebCore::RenderBox::clientWidth):
50871         (WebCore::RenderBox::clientHeight):
50872         (WebCore::RenderBox::scrollWidth):
50873         (WebCore::RenderBox::scrollHeight):
50874         (WebCore::RenderBox::scrollLeft):
50875         (WebCore::RenderBox::scrollTop):
50876         (WebCore::RenderBox::setScrollLeft):
50877         (WebCore::RenderBox::setScrollTop):
50878         (WebCore::RenderBox::absoluteRects):
50879         (WebCore::RenderBox::absoluteQuads):
50880         (WebCore::RenderBox::absoluteContentBox):
50881         (WebCore::RenderBox::absoluteContentQuad):
50882         (WebCore::RenderBox::absoluteOutlineBounds):
50883         (WebCore::RenderBox::addFocusRingRects):
50884         (WebCore::RenderBox::reflectionBox):
50885         (WebCore::RenderBox::reflectionOffset):
50886         (WebCore::RenderBox::reflectedRect):
50887         (WebCore::RenderBox::overrideWidth):
50888         (WebCore::RenderBox::overrideHeight):
50889         (WebCore::RenderBox::nodeAtPoint):
50890         (WebCore::RenderBox::paint):
50891         (WebCore::RenderBox::maskClipRect):
50892         (WebCore::RenderBox::repaintLayerRectsForImage):
50893         (WebCore::RenderBox::paintCustomHighlight):
50894         (WebCore::RenderBox::getOverflowClipRect):
50895         (WebCore::RenderBox::getClipRect):
50896         (WebCore::RenderBox::containingBlockWidth):
50897         (WebCore::RenderBox::localToAbsolute):
50898         (WebCore::RenderBox::offsetFromContainer):
50899         (WebCore::RenderBox::position):
50900         (WebCore::RenderBox::computeAbsoluteRepaintRect):
50901         (WebCore::RenderBox::repaintDuringLayoutIfMoved):
50902         (WebCore::RenderBox::calcWidth):
50903         (WebCore::RenderBox::calcWidthUsing):
50904         (WebCore::RenderBox::calcHorizontalMargins):
50905         (WebCore::RenderBox::calcHeight):
50906         (WebCore::RenderBox::calcPercentageHeight):
50907         (WebCore::RenderBox::calcReplacedHeightUsing):
50908         (WebCore::RenderBox::containingBlockWidthForPositioned):
50909         (WebCore::RenderBox::containingBlockHeightForPositioned):
50910         (WebCore::RenderBox::calcAbsoluteHorizontal):
50911         (WebCore::RenderBox::calcAbsoluteVertical):
50912         (WebCore::RenderBox::calcAbsoluteVerticalValues):
50913         (WebCore::RenderBox::calcAbsoluteHorizontalReplaced):
50914         (WebCore::RenderBox::calcAbsoluteVerticalReplaced):
50915         (WebCore::RenderBox::localCaretRect):
50916         (WebCore::RenderBox::lowestPosition):
50917         (WebCore::RenderBox::rightmostPosition):
50918         (WebCore::RenderBox::leftmostPosition):
50919         (WebCore::RenderBox::localTransform):
50920         * rendering/RenderBox.h:
50921         (WebCore::):
50922         (WebCore::RenderBox::x):
50923         (WebCore::RenderBox::y):
50924         (WebCore::RenderBox::width):
50925         (WebCore::RenderBox::height):
50926         (WebCore::RenderBox::setX):
50927         (WebCore::RenderBox::setY):
50928         (WebCore::RenderBox::setWidth):
50929         (WebCore::RenderBox::setHeight):
50930         (WebCore::RenderBox::location):
50931         (WebCore::RenderBox::size):
50932         (WebCore::RenderBox::setLocation):
50933         (WebCore::RenderBox::setSize):
50934         (WebCore::RenderBox::move):
50935         (WebCore::RenderBox::frameRect):
50936         (WebCore::RenderBox::setFrameRect):
50937         (WebCore::RenderBox::borderBoxRect):
50938         (WebCore::RenderBox::contentBoxRect):
50939         (WebCore::RenderBox::previousSiblingBox):
50940         (WebCore::RenderBox::nextSiblingBox):
50941         (WebCore::RenderBox::parentBox):
50942         (WebCore::RenderBox::overflowHeight):
50943         (WebCore::RenderBox::overflowWidth):
50944         (WebCore::RenderBox::setOverflowHeight):
50945         (WebCore::RenderBox::setOverflowWidth):
50946         (WebCore::RenderBox::overflowLeft):
50947         (WebCore::RenderBox::overflowTop):
50948         (WebCore::RenderBox::overflowRect):
50949         (WebCore::RenderBox::contentWidth):
50950         (WebCore::RenderBox::contentHeight):
50951         (WebCore::RenderBox::offsetWidth):
50952         (WebCore::RenderBox::offsetHeight):
50953         (WebCore::RenderBox::clientLeft):
50954         (WebCore::RenderBox::clientTop):
50955         (WebCore::RenderBox::availableWidth):
50956         (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
50957         * rendering/RenderButton.cpp:
50958         (WebCore::RenderButton::controlClipRect):
50959         * rendering/RenderContainer.cpp:
50960         (WebCore::RenderContainer::layout):
50961         (WebCore::RenderContainer::positionForCoordinates):
50962         * rendering/RenderContainer.h:
50963         (WebCore::RenderContainer::firstChildBox):
50964         (WebCore::RenderContainer::lastChildBox):
50965         * rendering/RenderFieldset.cpp:
50966         (WebCore::RenderFieldset::calcPrefWidths):
50967         (WebCore::RenderFieldset::layoutLegend):
50968         (WebCore::RenderFieldset::findLegend):
50969         (WebCore::RenderFieldset::paintBoxDecorations):
50970         (WebCore::RenderFieldset::paintMask):
50971         * rendering/RenderFieldset.h:
50972         * rendering/RenderFileUploadControl.cpp:
50973         (WebCore::RenderFileUploadControl::maxFilenameWidth):
50974         (WebCore::RenderFileUploadControl::paintObject):
50975         * rendering/RenderFlexibleBox.cpp:
50976         (WebCore::FlexBoxIterator::FlexBoxIterator):
50977         (WebCore::FlexBoxIterator::first):
50978         (WebCore::FlexBoxIterator::next):
50979         (WebCore::RenderFlexibleBox::calcHorizontalPrefWidths):
50980         (WebCore::RenderFlexibleBox::calcVerticalPrefWidths):
50981         (WebCore::RenderFlexibleBox::layoutBlock):
50982         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
50983         (WebCore::RenderFlexibleBox::layoutVerticalBox):
50984         (WebCore::RenderFlexibleBox::placeChild):
50985         (WebCore::RenderFlexibleBox::allowedChildFlex):
50986         * rendering/RenderFlexibleBox.h:
50987         * rendering/RenderFlow.cpp:
50988         (WebCore::RenderFlow::absoluteClippedOverflowRect):
50989         (WebCore::RenderFlow::lowestPosition):
50990         (WebCore::RenderFlow::rightmostPosition):
50991         (WebCore::RenderFlow::leftmostPosition):
50992         (WebCore::RenderFlow::localCaretRect):
50993         (WebCore::RenderFlow::addFocusRingRects):
50994         * rendering/RenderFrameSet.cpp:
50995         (WebCore::RenderFrameSet::paint):
50996         (WebCore::RenderFrameSet::layout):
50997         (WebCore::RenderFrameSet::positionFrames):
50998         * rendering/RenderHTMLCanvas.cpp:
50999         (WebCore::RenderHTMLCanvas::paintReplaced):
51000         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
51001         * rendering/RenderImage.cpp:
51002         (WebCore::RenderImage::imageChanged):
51003         (WebCore::RenderImage::paintReplaced):
51004         (WebCore::RenderImage::nodeAtPoint):
51005         (WebCore::RenderImage::calcReplacedWidth):
51006         * rendering/RenderInline.cpp:
51007         (WebCore::RenderInline::absoluteRects):
51008         (WebCore::RenderInline::boundingBoxWidth):
51009         (WebCore::RenderInline::boundingBoxHeight):
51010         (WebCore::RenderInline::positionForCoordinates):
51011         * rendering/RenderInline.h:
51012         (WebCore::RenderInline::offsetWidth):
51013         (WebCore::RenderInline::offsetHeight):
51014         * rendering/RenderLayer.cpp:
51015         (WebCore::RenderLayer::updateTransform):
51016         (WebCore::RenderLayer::updateLayerPosition):
51017         (WebCore::RenderLayer::scrollbarCornerPresent):
51018         (WebCore::RenderLayer::createScrollbar):
51019         (WebCore::RenderLayer::positionOverflowControls):
51020         (WebCore::RenderLayer::paintScrollCorner):
51021         (WebCore::RenderLayer::paintResizer):
51022         (WebCore::RenderLayer::paintLayer):
51023         (WebCore::RenderLayer::hitTestLayer):
51024         (WebCore::RenderLayer::calculateRects):
51025         (WebCore::RenderLayer::boundingBox):
51026         * rendering/RenderListBox.cpp:
51027         (WebCore::RenderListBox::calcHeight):
51028         (WebCore::RenderListBox::controlClipRect):
51029         * rendering/RenderListItem.cpp:
51030         (WebCore::RenderListItem::positionListMarker):
51031         (WebCore::RenderListItem::paint):
51032         * rendering/RenderListMarker.cpp:
51033         (WebCore::RenderListMarker::paint):
51034         (WebCore::RenderListMarker::layout):
51035         (WebCore::RenderListMarker::imageChanged):
51036         (WebCore::RenderListMarker::getRelativeMarkerRect):
51037         (WebCore::RenderListMarker::selectionRect):
51038         * rendering/RenderMarquee.cpp:
51039         (WebCore::RenderMarquee::computePosition):
51040         * rendering/RenderMedia.cpp:
51041         (WebCore::RenderMedia::layout):
51042         (WebCore::RenderMedia::lowestPosition):
51043         (WebCore::RenderMedia::rightmostPosition):
51044         (WebCore::RenderMedia::leftmostPosition):
51045         * rendering/RenderMenuList.cpp:
51046         (WebCore::RenderMenuList::controlClipRect):
51047         * rendering/RenderObject.cpp:
51048         (WebCore::RenderObject::RenderObject):
51049         (WebCore::RenderObject::markAllDescendantsWithFloatsForLayout):
51050         (WebCore::RenderObject::paintOutline):
51051         (WebCore::RenderObject::addLineBoxRects):
51052         (WebCore::RenderObject::absoluteBoundingBoxRect):
51053         (WebCore::RenderObject::addAbsoluteRectForLayer):
51054         (WebCore::RenderObject::paintingRootRect):
51055         (WebCore::RenderObject::container):
51056         (WebCore::RenderObject::removeFromObjectLists):
51057         (WebCore::RenderObject::updateHitTestResult):
51058         (WebCore::RenderObject::addDashboardRegions):
51059         (WebCore::RenderObject::localTransform):
51060         * rendering/RenderObject.h:
51061         (WebCore::RenderObject::isBox):
51062         (WebCore::RenderObject::hasMask):
51063         (WebCore::RenderObject::setIsText):
51064         (WebCore::RenderObject::setIsBox):
51065         (WebCore::RenderObject::borderTop):
51066         (WebCore::RenderObject::borderBottom):
51067         (WebCore::RenderObject::absoluteRects):
51068         (WebCore::RenderObject::collectAbsoluteLineBoxQuads):
51069         (WebCore::RenderObject::absoluteQuads):
51070         (WebCore::RenderObject::hasReflection):
51071         (WebCore::RenderObject::addFocusRingRects):
51072         (WebCore::RenderObject::absoluteOutlineBounds):
51073         * rendering/RenderPart.cpp:
51074         (WebCore::RenderPart::updateWidgetPosition):
51075         * rendering/RenderPath.cpp:
51076         (WebCore::RenderPath::layout):
51077         (WebCore::RenderPath::paint):
51078         (WebCore::RenderPath::absoluteOutlineBounds):
51079         * rendering/RenderPath.h:
51080         * rendering/RenderReplaced.cpp:
51081         (WebCore::RenderReplaced::layout):
51082         (WebCore::RenderReplaced::paint):
51083         (WebCore::RenderReplaced::shouldPaint):
51084         (WebCore::RenderReplaced::positionForCoordinates):
51085         (WebCore::RenderReplaced::localSelectionRect):
51086         (WebCore::RenderReplaced::adjustOverflowForBoxShadow):
51087         (WebCore::RenderReplaced::overflowRect):
51088         * rendering/RenderReplica.cpp:
51089         (WebCore::RenderReplica::layout):
51090         (WebCore::RenderReplica::calcPrefWidths):
51091         (WebCore::RenderReplica::paint):
51092         * rendering/RenderSVGContainer.cpp:
51093         (WebCore::RenderSVGContainer::paint):
51094         (WebCore::RenderSVGContainer::absoluteOutlineBounds):
51095         * rendering/RenderSVGContainer.h:
51096         (WebCore::RenderSVGContainer::width):
51097         (WebCore::RenderSVGContainer::height):
51098         * rendering/RenderSVGImage.cpp:
51099         (WebCore::RenderSVGImage::layout):
51100         * rendering/RenderSVGInlineText.cpp:
51101         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
51102         (WebCore::RenderSVGInlineText::positionForCoordinates):
51103         * rendering/RenderSVGRoot.cpp:
51104         (WebCore::RenderSVGRoot::layout):
51105         (WebCore::RenderSVGRoot::applyContentTransforms):
51106         (WebCore::RenderSVGRoot::paint):
51107         (WebCore::RenderSVGRoot::absoluteTransform):
51108         (WebCore::RenderSVGRoot::nodeAtPoint):
51109         * rendering/RenderSVGTSpan.cpp:
51110         (WebCore::RenderSVGTSpan::absoluteRects):
51111         (WebCore::RenderSVGTSpan::absoluteQuads):
51112         * rendering/RenderSVGText.cpp:
51113         (WebCore::RenderSVGText::layout):
51114         (WebCore::RenderSVGText::relativeBBox):
51115         * rendering/RenderSVGTextPath.cpp:
51116         (WebCore::RenderSVGTextPath::absoluteRects):
51117         (WebCore::RenderSVGTextPath::absoluteQuads):
51118         * rendering/RenderSVGViewportContainer.cpp:
51119         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
51120         * rendering/RenderScrollbar.cpp:
51121         (WebCore::RenderScrollbar::createCustomScrollbar):
51122         (WebCore::RenderScrollbar::RenderScrollbar):
51123         (WebCore::RenderScrollbar::setParent):
51124         * rendering/RenderScrollbar.h:
51125         (WebCore::RenderScrollbar::owningRenderer):
51126         * rendering/RenderScrollbarPart.cpp:
51127         (WebCore::RenderScrollbarPart::layout):
51128         (WebCore::RenderScrollbarPart::layoutHorizontalPart):
51129         (WebCore::RenderScrollbarPart::layoutVerticalPart):
51130         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
51131         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
51132         (WebCore::RenderScrollbarPart::paintIntoRect):
51133         * rendering/RenderSlider.cpp:
51134         (WebCore::HTMLSliderThumbElement::defaultEventHandler):
51135         (WebCore::RenderSlider::layout):
51136         (WebCore::RenderSlider::mouseEventIsInThumb):
51137         (WebCore::RenderSlider::positionForOffset):
51138         (WebCore::RenderSlider::trackSize):
51139         * rendering/RenderTable.cpp:
51140         (WebCore::RenderTable::calcWidth):
51141         (WebCore::RenderTable::layout):
51142         (WebCore::RenderTable::paint):
51143         (WebCore::RenderTable::getBaselineOfFirstLineBox):
51144         * rendering/RenderTableCell.cpp:
51145         (WebCore::RenderTableCell::updateWidth):
51146         (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
51147         (WebCore::RenderTableCell::localToAbsolute):
51148         (WebCore::RenderTableCell::absoluteToLocal):
51149         (WebCore::RenderTableCell::localToAbsoluteQuad):
51150         (WebCore::RenderTableCell::paint):
51151         (WebCore::RenderTableCell::paintBackgroundsBehindCell):
51152         * rendering/RenderTableCell.h:
51153         * rendering/RenderTableSection.cpp:
51154         (WebCore::RenderTableSection::addChild):
51155         (WebCore::RenderTableSection::addCell):
51156         (WebCore::RenderTableSection::setCellWidths):
51157         (WebCore::RenderTableSection::calcRowHeight):
51158         (WebCore::RenderTableSection::layoutRows):
51159         (WebCore::RenderTableSection::lowestPosition):
51160         (WebCore::RenderTableSection::rightmostPosition):
51161         (WebCore::RenderTableSection::leftmostPosition):
51162         (WebCore::RenderTableSection::getBaselineOfFirstLineBox):
51163         (WebCore::RenderTableSection::paint):
51164         (WebCore::RenderTableSection::recalcCells):
51165         (WebCore::RenderTableSection::nodeAtPoint):
51166         * rendering/RenderTableSection.h:
51167         (WebCore::RenderTableSection::overflowWidth):
51168         (WebCore::RenderTableSection::overflowHeight):
51169         * rendering/RenderText.cpp:
51170         (WebCore::RenderText::RenderText):
51171         (WebCore::RenderText::boundingBoxX):
51172         (WebCore::RenderText::boundingBoxY):
51173         (WebCore::RenderText::firstRunX):
51174         (WebCore::RenderText::firstRunY):
51175         (WebCore::RenderText::boundingBoxHeight):
51176         (WebCore::RenderText::boundingBoxWidth):
51177         * rendering/RenderText.h:
51178         * rendering/RenderTextControl.cpp:
51179         (WebCore::RenderTextControl::textBlockHeight):
51180         (WebCore::RenderTextControl::textBlockWidth):
51181         (WebCore::RenderTextControl::setSelectionRange):
51182         (WebCore::RenderTextControl::calcHeight):
51183         (WebCore::RenderTextControl::hitInnerTextBlock):
51184         (WebCore::RenderTextControl::controlClipRect):
51185         * rendering/RenderTextControlMultiLine.cpp:
51186         (WebCore::RenderTextControlMultiLine::layout):
51187         (WebCore::RenderTextControlMultiLine::adjustControlHeightBasedOnLineHeight):
51188         * rendering/RenderTextControlSingleLine.cpp:
51189         (WebCore::RenderTextControlSingleLine::paint):
51190         (WebCore::RenderTextControlSingleLine::layout):
51191         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
51192         (WebCore::RenderTextControlSingleLine::forwardEvent):
51193         (WebCore::RenderTextControlSingleLine::textBlockWidth):
51194         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
51195         (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
51196         (WebCore::RenderTextControlSingleLine::clientPaddingRight):
51197         * rendering/RenderTheme.cpp:
51198         (WebCore::RenderTheme::hitTestMediaControlPart):
51199         (WebCore::RenderTheme::baselinePosition):
51200         * rendering/RenderThemeMac.mm:
51201         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
51202         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
51203         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
51204         (WebCore::RenderThemeMac::hitTestMediaControlPart):
51205         * rendering/RenderTreeAsText.cpp:
51206         (WebCore::operator<<):
51207         * rendering/RenderVideo.cpp:
51208         (WebCore::RenderVideo::videoBox):
51209         * rendering/RenderView.cpp:
51210         (WebCore::RenderView::RenderView):
51211         (WebCore::RenderView::calcHeight):
51212         (WebCore::RenderView::calcWidth):
51213         (WebCore::RenderView::layout):
51214         (WebCore::RenderView::viewRect):
51215         (WebCore::RenderView::docHeight):
51216         (WebCore::RenderView::docWidth):
51217         (WebCore::RenderView::setBestTruncatedAt):
51218         * rendering/RenderView.h:
51219         * rendering/RenderWidget.cpp:
51220         (WebCore::RenderWidget::paint):
51221         (WebCore::RenderWidget::updateWidgetPosition):
51222         (WebCore::RenderWidget::nodeAtPoint):
51223         * rendering/RootInlineBox.h:
51224         (WebCore::RootInlineBox::floats):
51225         (WebCore::RootInlineBox::floatsPtr):
51226         * rendering/SVGInlineFlowBox.cpp:
51227         (WebCore::SVGInlineFlowBox::verticallyAlignBoxes):
51228         * rendering/SVGInlineFlowBox.h:
51229         * rendering/SVGRenderTreeAsText.cpp:
51230         (WebCore::operator<<):
51231         (WebCore::write):
51232         * rendering/SVGRootInlineBox.cpp:
51233         (WebCore::SVGRootInlineBox::verticallyAlignBoxes):
51234         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
51235         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
51236         * rendering/SVGRootInlineBox.h:
51237         * rendering/bidi.cpp:
51238         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
51239         (WebCore::RenderBlock::computeVerticalPositionsForLine):
51240         (WebCore::RenderBlock::layoutInlineChildren):
51241         (WebCore::RenderBlock::determineStartPosition):
51242         (WebCore::RenderBlock::matchedEndLine):
51243         (WebCore::RenderBlock::skipTrailingWhitespace):
51244         (WebCore::RenderBlock::skipLeadingWhitespace):
51245         (WebCore::RenderBlock::fitBelowFloats):
51246         (WebCore::RenderBlock::findNextLineBreak):
51247         (WebCore::RenderBlock::checkLinesForOverflow):
51248         * svg/SVGLength.cpp:
51249         (WebCore::SVGLength::PercentageOfViewport):
51250
51251 2009-01-21  Anders Carlsson  <andersca@apple.com>
51252
51253         Reviewed by Sam Weinig.
51254
51255         * WebCore.LP64.exp:
51256         Add some bridge related symbols.
51257
51258         * WebCore.xcodeproj/project.pbxproj:
51259         Make runtime_object.h a private header.
51260
51261 2009-01-20  David Levin  <levin@chromium.org>
51262
51263         Reviewed by Alexey Proskuryakov.
51264
51265         Bug 22720: Make XMLHttpRequest work in Workers
51266         <https://bugs.webkit.org/show_bug.cgi?id=22720>
51267
51268         More removal of document usage from XMLHttpRequest.
51269         * Abstracted away the sync and async requests behind the ThreadableLoader class, which
51270           will get an implementation for Workers.  ThreadableLoader follows the same model as
51271           SubresourceLoader because DocumentThreadableLoader is a thin wrapper around SubresourceLoader.
51272           Also, WorkerThreadableLoader (coming soon) will use DocumentThreadableLoader to get things done.
51273         * Consolidated dashboard compatibility checks into usesDashboardBackwardCompatibilityMode
51274           which handles workers.
51275
51276         No observable change in behavior, so no test.
51277
51278         * GNUmakefile.am:
51279         * WebCore.pro:
51280         * WebCore.scons:
51281         * WebCore.vcproj/WebCore.vcproj:
51282         * WebCore.xcodeproj/project.pbxproj:
51283         * WebCoreSources.bkl:
51284         * loader/DocumentThreadableLoader.cpp: Added.
51285         (WebCore::DocumentThreadableLoader::create):
51286         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
51287         (WebCore::DocumentThreadableLoader::~DocumentThreadableLoader):
51288         (WebCore::DocumentThreadableLoader::cancel):
51289         (WebCore::DocumentThreadableLoader::willSendRequest):
51290         (WebCore::DocumentThreadableLoader::didSendData):
51291         (WebCore::DocumentThreadableLoader::didReceiveResponse):
51292         (WebCore::DocumentThreadableLoader::didReceiveData):
51293         (WebCore::DocumentThreadableLoader::didFinishLoading):
51294         (WebCore::DocumentThreadableLoader::didFail):
51295         (WebCore::DocumentThreadableLoader::receivedCancellation):
51296         * loader/DocumentThreadableLoader.h: Added.
51297         (WebCore::DocumentThreadableLoader::refThreadableLoader):
51298         (WebCore::DocumentThreadableLoader::derefThreadableLoader):
51299         * loader/SubresourceLoaderClient.h:
51300         (WebCore::SubresourceLoaderClient::didReceiveData):
51301         * loader/ThreadableLoader.cpp: Added.
51302         (WebCore::ThreadableLoader::create):
51303         (WebCore::ThreadableLoader::loadResourceSynchronously):
51304         * loader/ThreadableLoader.h: Added.
51305         (WebCore::):
51306         (WebCore::ThreadableLoader::ref):
51307         (WebCore::ThreadableLoader::deref):
51308         (WebCore::ThreadableLoader::~ThreadableLoader):
51309         * loader/ThreadableLoaderClient.h: Added.
51310         (WebCore::ThreadableLoaderClient::didSendData):
51311         (WebCore::ThreadableLoaderClient::didReceiveResponse):
51312         (WebCore::ThreadableLoaderClient::didReceiveData):
51313         (WebCore::ThreadableLoaderClient::didFinishLoading):
51314         (WebCore::ThreadableLoaderClient::didFail):
51315         (WebCore::ThreadableLoaderClient::didGetCancelled):
51316         (WebCore::ThreadableLoaderClient::didReceiveAuthenticationCancellation):
51317         (WebCore::ThreadableLoaderClient::~ThreadableLoaderClient):
51318         * xml/XMLHttpRequest.cpp:
51319         (WebCore::XMLHttpRequest::XMLHttpRequest):
51320         (WebCore::XMLHttpRequest::usesDashboardBackwardCompatibilityMode):
51321         (WebCore::XMLHttpRequest::send):
51322         (WebCore::XMLHttpRequest::loadRequestSynchronously):
51323         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
51324         (WebCore::XMLHttpRequest::setRequestHeader):
51325         (WebCore::XMLHttpRequest::processSyncLoadResults):
51326         (WebCore::XMLHttpRequest::didFail):
51327         (WebCore::XMLHttpRequest::didGetCancelled):
51328         (WebCore::XMLHttpRequest::didFinishLoading):
51329         (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
51330         (WebCore::XMLHttpRequest::didSendData):
51331         (WebCore::XMLHttpRequest::didReceiveResponse):
51332         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
51333         (WebCore::XMLHttpRequest::didReceiveAuthenticationCancellation):
51334         (WebCore::XMLHttpRequest::didReceiveData):
51335         * xml/XMLHttpRequest.h:
51336
51337 2009-01-19  Chris Marrin  <cmarrin@apple.com>
51338
51339         Reviewed by David Hyatt.
51340
51341         Fix for https://bugs.webkit.org/show_bug.cgi?id=23317
51342
51343         The high CPU usage was really from repeatedly firing transitions caused
51344         by a bug in the way we handle background-color animations. If animating
51345         from a valid background color to no background color, we sometimes left
51346         (based on timing) the background color as transparent black, but valid
51347         rather than invalid, which it should be. Fixing that got rid of the
51348         repeated firing.
51349
51350         But we really were doing more expensive iteration of all objects with
51351         animations or transitions on them (running or not). So I added two
51352         optimizations to quickly short circuit when an object had no running
51353         animations or transitions. Things are now as zippy as ever.
51354
51355         Test: transitions/repeated-firing-background-color.html
51356
51357         * page/animation/AnimationBase.cpp:
51358         (WebCore::blendFunc):
51359         * page/animation/AnimationController.cpp:
51360         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
51361         * page/animation/CompositeAnimation.cpp:
51362         (WebCore::CompositeAnimationPrivate::hasAnimations):
51363         (WebCore::CompositeAnimationPrivate::clearRenderer):
51364         (WebCore::CompositeAnimationPrivate::animate):
51365         (WebCore::CompositeAnimationPrivate::setAnimating):
51366         (WebCore::CompositeAnimationPrivate::willNeedService):
51367         (WebCore::CompositeAnimationPrivate::getAnimationForProperty):
51368         (WebCore::CompositeAnimationPrivate::cleanupFinishedAnimations):
51369         (WebCore::CompositeAnimationPrivate::setAnimationStartTime):
51370         (WebCore::CompositeAnimationPrivate::setTransitionStartTime):
51371         (WebCore::CompositeAnimationPrivate::suspendAnimations):
51372         (WebCore::CompositeAnimationPrivate::resumeAnimations):
51373         (WebCore::CompositeAnimationPrivate::overrideImplicitAnimations):
51374         (WebCore::CompositeAnimationPrivate::resumeOverriddenImplicitAnimations):
51375         (WebCore::CompositeAnimationPrivate::styleAvailable):
51376         (WebCore::CompositeAnimationPrivate::isAnimatingProperty):
51377         (WebCore::CompositeAnimationPrivate::numberOfActiveAnimations):
51378         (WebCore::CompositeAnimation::hasAnimations):
51379         * page/animation/CompositeAnimation.h:
51380
51381 2009-01-21  Eric Seidel  <eric@webkit.org>
51382
51383         Reviewed by Justin Garcia.
51384
51385         Remove the style='' turds left by some editing commands
51386         https://bugs.webkit.org/show_bug.cgi?id=23463
51387
51388         Test: editing/execCommand/toggle-styles.html
51389
51390         * editing/ApplyStyleCommand.cpp:
51391         (WebCore::ApplyStyleCommand::removeCSSStyle): check if we just removed the last CSS property and remove the style attribute as well
51392         * editing/CompositeEditCommand.cpp:
51393         (WebCore::CompositeEditCommand::removeNodeAttribute): remove extra ;
51394
51395 2009-01-21  Eric Seidel  <eric@webkit.org>
51396
51397         No review, build fix.
51398
51399         Fix release-only build failure (and do a tiny code-cleanup).
51400
51401         * editing/ApplyStyleCommand.cpp:
51402         (WebCore::createFontElement):
51403         (WebCore::createStyleSpanElement):
51404         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
51405
51406 2009-01-21  Chris Fleizach  <cfleizach@apple.com>
51407
51408         Reviewed by Beth Dakin.
51409
51410         Bug 23443: Table accessibility should be re-enabled after fixing crash that occurs at WebCore::AccessibilityTable::isTableExposableThroughAccessibility()
51411         https://bugs.webkit.org/show_bug.cgi?id=23443
51412
51413         Test: accessibility/table-modification-crash.html
51414
51415         * page/AccessibilityObject.cpp:
51416         (WebCore::AccessibilityObject::updateBackingStore):
51417         * page/AccessibilityObject.h:
51418         * page/AccessibilityRenderObject.cpp:
51419         (WebCore::AccessibilityRenderObject::childrenChanged):
51420         (WebCore::AccessibilityRenderObject::children):
51421         (WebCore::AccessibilityRenderObject::updateBackingStore):
51422         * page/AccessibilityRenderObject.h:
51423         (WebCore::AccessibilityRenderObject::markChildrenDirty):
51424         * page/AccessibilityTable.cpp:
51425         (WebCore::AccessibilityTable::AccessibilityTable):
51426         * page/mac/AccessibilityObjectWrapper.mm:
51427         (-[AccessibilityObjectWrapper accessibilityActionNames]):
51428         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
51429         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
51430         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]):
51431         (-[AccessibilityObjectWrapper accessibilityHitTest:]):
51432         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
51433         (-[AccessibilityObjectWrapper accessibilityIsIgnored]):
51434         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
51435         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]):
51436         (-[AccessibilityObjectWrapper accessibilityPerformAction:]):
51437         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
51438         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
51439         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
51440         (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
51441         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
51442         * rendering/RenderObject.cpp:
51443         (WebCore::RenderObject::destroy):
51444         * rendering/RenderWidget.cpp:
51445         (WebCore::RenderWidget::destroy):
51446
51447 2009-01-16  Eric Seidel  <eric@webkit.org>
51448
51449         Reviewed by Justin Garcia.
51450
51451         Fix execCommand() 'super' and 'sub' commands to add <sup> and <sub> in quirks mode, and to toggle when called twice
51452         https://bugs.webkit.org/show_bug.cgi?id=17733
51453
51454         Test changed: editing/execCommand/toggle-styles-expected.txt
51455
51456         * editing/ApplyStyleCommand.cpp:
51457         (WebCore::StyleChange::applySubscript):
51458         (WebCore::StyleChange::applySuperscript):
51459         (WebCore::StyleChange::StyleChange):
51460         (WebCore::StyleChange::init):
51461         (WebCore::StyleChange::checkForLegacyHTMLStyleChange):
51462         (WebCore::ApplyStyleCommand::isHTMLStyleNode):
51463         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
51464         * editing/EditorCommand.cpp:
51465         (WebCore::executeSubscript):
51466         (WebCore::executeSuperscript):
51467         * editing/htmlediting.cpp:
51468         (WebCore::createHTMLElement):
51469         * editing/htmlediting.h:
51470
51471 2009-01-21  Anders Carlsson  <andersca@apple.com>
51472
51473         Fix 64-bit build.
51474
51475         * WebCore.LP64.exp:
51476
51477 2009-01-21  Oliver Hunt  <oliver@apple.com>
51478
51479         Reviewed by Alexey Proskuryakov.
51480
51481         Bug 23458: Reintroduce CanvasPixelArray in ImageData.idl
51482         <https://bugs.webkit.org/show_bug.cgi?id=23458>
51483
51484         Return CanvasPixelArray, et al -- the only difference between this
51485         and the original CPA implementation is that it now uses a ByteArray
51486         rather than a vector.  JSC still uses a custom wrapper, but this allows
51487         ObjC, COM, and V8 bindings to be autogenerated again.
51488
51489         * GNUmakefile.am:
51490         * WebCore.pro:
51491         * WebCore.vcproj/WebCore.vcproj:
51492         * WebCore.xcodeproj/project.pbxproj:
51493         * WebCoreSources.bkl:
51494         * bindings/js/JSImageDataCustom.cpp:
51495         (WebCore::toJS):
51496         * html/CanvasPixelArray.cpp: Added.
51497         (WebCore::CanvasPixelArray::create):
51498         (WebCore::CanvasPixelArray::CanvasPixelArray):
51499         * html/CanvasPixelArray.h: Added.
51500         (WebCore::CanvasPixelArray::data):
51501         (WebCore::CanvasPixelArray::length):
51502         (WebCore::CanvasPixelArray::set):
51503         (WebCore::CanvasPixelArray::get):
51504         * html/CanvasPixelArray.idl: Added.
51505         * html/CanvasRenderingContext2D.cpp:
51506         (WebCore::createEmptyImageData):
51507         * html/ImageData.cpp:
51508         (WebCore::ImageData::ImageData):
51509         * html/ImageData.h:
51510         (WebCore::ImageData::data):
51511         * html/ImageData.idl:
51512         * platform/graphics/cairo/ImageBufferCairo.cpp:
51513         (WebCore::ImageBuffer::getImageData):
51514         (WebCore::ImageBuffer::putImageData):
51515         * platform/graphics/cg/ImageBufferCG.cpp:
51516         (WebCore::ImageBuffer::getImageData):
51517         (WebCore::ImageBuffer::putImageData):
51518
51519 2009-01-21  Dirk Schulze  <krit@webkit.org>
51520
51521         Reviewed by Nikolas Zimmermann.
51522
51523         Remove last relics of platform dependent PaintServer in SVG.
51524         We draw everything with the help of GraphicsContext.
51525
51526         Remove SVGPaintServerPlatform's
51527         [https://bugs.webkit.org/show_bug.cgi?id=23439]
51528
51529         * GNUmakefile.am:
51530         * WebCore.pro:
51531         * WebCore.vcproj/WebCore.vcproj:
51532         * WebCore.xcodeproj/project.pbxproj:
51533         * svg/graphics/SVGPaintServer.cpp:
51534         (WebCore::SVGPaintServer::draw):
51535         (WebCore::SVGPaintServer::renderPath):
51536         (WebCore::SVGPaintServer::teardown):
51537         * svg/graphics/SVGPaintServer.h:
51538         * svg/graphics/SVGPaintServerGradient.cpp:
51539         * svg/graphics/SVGPaintServerGradient.h:
51540         * svg/graphics/SVGPaintServerPattern.cpp:
51541         * svg/graphics/SVGPaintServerPattern.h:
51542         * svg/graphics/SVGPaintServerSolid.cpp:
51543         * svg/graphics/SVGPaintServerSolid.h:
51544         * svg/graphics/cairo/SVGPaintServerCairo.cpp: Removed.
51545         * svg/graphics/cg/SVGPaintServerCg.cpp: Removed.
51546         * svg/graphics/qt/SVGPaintServerQt.cpp: Removed.
51547         * svg/graphics/skia/SVGPaintServerSkia.cpp: Removed.
51548
51549 2009-01-21  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
51550
51551         Reviewed by Alexey Proskuryakov.
51552
51553         Move "Element -> ScriptElement" casting functionality into ScriptElement.h
51554         to be consistent with FormControlElement/InputElement/OptionElement/OptionGroupElement.
51555
51556         It was living in XMLTokenizer before, which is not an obvious place for this.
51557         TODO: Rename 'formControlElementForElement' to 'toFormControlElement' (analogous changes for InputElement etc.)
51558               as suggested by Alexey, it really reads better this way.
51559
51560         * dom/ScriptElement.cpp:
51561         (WebCore::toScriptElement):
51562         * dom/ScriptElement.h:
51563         * dom/XMLTokenizer.cpp:
51564         (WebCore::XMLTokenizer::notifyFinished):
51565         * dom/XMLTokenizer.h:
51566         * dom/XMLTokenizerLibxml2.cpp:
51567         (WebCore::XMLTokenizer::startElementNs):
51568         (WebCore::XMLTokenizer::endElementNs):
51569         * dom/XMLTokenizerQt.cpp:
51570         (WebCore::XMLTokenizer::parseStartElement):
51571         (WebCore::XMLTokenizer::parseEndElement):
51572
51573 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
51574
51575         Reviewed by George Staikos.
51576
51577         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23444
51578
51579         Refactor some functionality from HTMLOption/OptGroupElement needed by RenderListBox/RenderMenuList
51580         in two abstract base classes: OptionElement & OptionGroupElement living in dom/ - just like it
51581         has been done before for FormControlElement and RenderTextControl.
51582
51583         This is needed to prepare the addtion of WMLOption/OptGroupElement.
51584
51585         * GNUmakefile.am:
51586         * WebCore.pro:
51587         * WebCore.scons:
51588         * WebCore.vcproj/WebCore.vcproj:
51589         * WebCore.xcodeproj/project.pbxproj:
51590         * WebCoreSources.bkl:
51591         * dom/OptionElement.cpp: Added.
51592         (WebCore::optionElementForElement):
51593         * dom/OptionElement.h: Added.
51594         (WebCore::OptionElement::~OptionElement):
51595         (WebCore::OptionElement::OptionElement):
51596         * dom/OptionGroupElement.cpp: Added.
51597         (WebCore::optionGroupElementForElement):
51598         * dom/OptionGroupElement.h: Added.
51599         (WebCore::OptionGroupElement::~OptionGroupElement):
51600         (WebCore::OptionGroupElement::OptionGroupElement):
51601         * html/HTMLOptGroupElement.h:
51602         * html/HTMLOptionElement.cpp:
51603         (WebCore::HTMLOptionElement::optionText):
51604         * html/HTMLOptionElement.h:
51605         (WebCore::HTMLOptionElement::selected):
51606         * rendering/RenderListBox.cpp:
51607         (WebCore::RenderListBox::updateFromElement):
51608         (WebCore::RenderListBox::paintItemForeground):
51609         (WebCore::RenderListBox::paintItemBackground):
51610         * rendering/RenderMenuList.cpp:
51611         (WebCore::RenderMenuList::updateOptionsWidth):
51612         (WebCore::RenderMenuList::setTextFromOption):
51613         (WebCore::RenderMenuList::itemText):
51614         (WebCore::RenderMenuList::itemIsSelected):
51615
51616 2009-01-20  Darin Adler  <darin@apple.com>
51617
51618         Reviewed by Alexey Proskuryakov.
51619
51620         Bug 23448: memory leak in Mac version of preferredExtensionForImageSourceType
51621         https://bugs.webkit.org/show_bug.cgi?id=23448
51622
51623         * platform/graphics/cg/ImageSourceCGMac.mm:
51624         (WebCore::preferredExtensionForImageSourceType): Use RetainPtr to avoid the leak.
51625
51626 2009-01-20  Darin Adler  <darin@apple.com>
51627
51628         Try to fix Wx build.
51629
51630         * platform/wx/PasteboardWx.cpp:
51631         (WebCore::Pasteboard::writeSelection): Removed code that replaces backslash
51632         with backslashAsCurrencySymbol. I'm pretty sure this is not needed when writing
51633         to the clipboard. Other platforms don't do it. If it was needed, the new function
51634         to use would be displayStringModifiedByEncoding.
51635
51636 2009-01-19  Brent Fulgham  <bfulgham@gmail.com>
51637
51638         Reviewed by Mitz Pettel.
51639
51640         Fixes https://bugs.webkit.org/show_bug.cgi?id=23423.
51641
51642         The Windows Cairo post-build targets (Release/Debug) do not
51643         copy all of the headers that the CG-based build does.
51644
51645         * WebCore.vcproj/WebCore.vcproj: Extend WebCore Cairo build targets
51646           to copy the page/animation/*.h files into WebKitBuild so that
51647           WebKit can find them.
51648
51649 2009-01-20  Dmitry Titov  <dimich@chromium.org>
51650
51651         Reviewed by Alexey Proskuryakov.
51652
51653         https://bugs.webkit.org/show_bug.cgi?id=23413
51654         Remove unused WebCore::setDeferringTimers()
51655
51656         * platform/Timer.cpp:
51657         (WebCore::updateSharedTimer):
51658         * platform/Timer.h:
51659
51660 2009-01-20  David Hyatt  <hyatt@apple.com>
51661
51662         Tighten up the type of RenderObject owned by RenderLayer to be a RenderBox.  Rename m_object to
51663         m_renderer to be consistent with the corresponding member function.
51664
51665         Reviewed by Jon Honeycutt
51666
51667         * rendering/RenderLayer.cpp:
51668         (WebCore::RenderLayer::RenderLayer):
51669         (WebCore::RenderLayer::updateLayerPositions):
51670         (WebCore::RenderLayer::updateVisibilityStatus):
51671         (WebCore::RenderLayer::updateLayerPosition):
51672         (WebCore::RenderLayer::stackingContext):
51673         (WebCore::RenderLayer::enclosingPositionedAncestor):
51674         (WebCore::RenderLayer::enclosingTransformedAncestor):
51675         (WebCore::RenderLayer::isTransparent):
51676         (WebCore::RenderLayer::convertToLayerCoords):
51677         (WebCore::RenderLayer::scrollByRecursively):
51678         (WebCore::RenderLayer::scrollToOffset):
51679         (WebCore::RenderLayer::scrollRectToVisible):
51680         (WebCore::RenderLayer::resize):
51681         (WebCore::RenderLayer::scrollbarCornerPresent):
51682         (WebCore::RenderLayer::createScrollbar):
51683         (WebCore::RenderLayer::setHasHorizontalScrollbar):
51684         (WebCore::RenderLayer::setHasVerticalScrollbar):
51685         (WebCore::RenderLayer::positionOverflowControls):
51686         (WebCore::RenderLayer::computeScrollDimensions):
51687         (WebCore::RenderLayer::updateOverflowStatus):
51688         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
51689         (WebCore::RenderLayer::paintOverflowControls):
51690         (WebCore::RenderLayer::paintScrollCorner):
51691         (WebCore::RenderLayer::paintResizer):
51692         (WebCore::RenderLayer::isPointInResizeControl):
51693         (WebCore::RenderLayer::paintLayer):
51694         (WebCore::RenderLayer::hitTestLayer):
51695         (WebCore::RenderLayer::updateClipRects):
51696         (WebCore::RenderLayer::calculateClipRects):
51697         (WebCore::RenderLayer::calculateRects):
51698         (WebCore::RenderLayer::clearClipRects):
51699         (WebCore::RenderLayer::repaintIncludingDescendants):
51700         (WebCore::RenderLayer::styleChanged):
51701         (WebCore::RenderLayer::updateScrollCornerStyle):
51702         (WebCore::RenderLayer::updateResizerStyle):
51703         * rendering/RenderLayer.h:
51704         (WebCore::RenderLayer::renderer):
51705         (WebCore::RenderLayer::hasReflection):
51706         (WebCore::RenderLayer::hasTransform):
51707
51708 2009-01-20  David Hyatt  <hyatt@apple.com>
51709
51710         Fix Mac build bustage from my selection changes.  I forgot to implement the functions on RenderThemeMac
51711         for returning the appropriate listbox selection colors.
51712
51713         Reviewed by Adele
51714
51715         * rendering/RenderThemeMac.mm:
51716         (WebCore::RenderThemeMac::platformActiveListBoxSelectionForegroundColor):
51717         (WebCore::RenderThemeMac::platformInactiveListBoxSelectionForegroundColor):
51718         (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor):
51719
51720 2009-01-20  Dave Hyatt  <hyatt@apple.com>
51721
51722         Fix for focus rings on Windows.  Make sure that focus rings draw for all controls but buttons.
51723
51724         Fix list box selection colors on Windows.  Also add a cache for all of the selection colors (and not just the two
51725         background selection colors).
51726
51727         Reviewed by Adam Roben
51728
51729         * rendering/RenderObject.cpp:
51730         (WebCore::RenderObject::selectionForegroundColor):
51731         * rendering/RenderTheme.cpp:
51732         (WebCore::RenderTheme::activeSelectionBackgroundColor):
51733         (WebCore::RenderTheme::inactiveSelectionBackgroundColor):
51734         (WebCore::RenderTheme::activeSelectionForegroundColor):
51735         (WebCore::RenderTheme::inactiveSelectionForegroundColor):
51736         (WebCore::RenderTheme::activeListBoxSelectionBackgroundColor):
51737         (WebCore::RenderTheme::inactiveListBoxSelectionBackgroundColor):
51738         (WebCore::RenderTheme::activeListBoxSelectionForegroundColor):
51739         (WebCore::RenderTheme::inactiveListBoxSelectionForegroundColor):
51740         (WebCore::RenderTheme::platformActiveSelectionForegroundColor):
51741         (WebCore::RenderTheme::platformInactiveSelectionBackgroundColor):
51742         (WebCore::RenderTheme::platformInactiveSelectionForegroundColor):
51743         (WebCore::RenderTheme::platformActiveListBoxSelectionBackgroundColor):
51744         (WebCore::RenderTheme::platformActiveListBoxSelectionForegroundColor):
51745         (WebCore::RenderTheme::platformInactiveListBoxSelectionBackgroundColor):
51746         (WebCore::RenderTheme::platformInactiveListBoxSelectionForegroundColor):
51747         (WebCore::RenderTheme::platformColorsDidChange):
51748         * rendering/RenderTheme.h:
51749         (WebCore::RenderTheme::supportsForegroundSelectionColors):
51750         (WebCore::RenderTheme::supportsForegroundListBoxSelectionColors):
51751         * rendering/RenderThemeMac.h:
51752         (WebCore::RenderThemeMac::supportsForegroundSelectionColors):
51753         * rendering/RenderThemeMac.mm:
51754         (WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor):
51755         * rendering/RenderThemeWin.cpp:
51756         (WebCore::RenderThemeWin::platformInactiveSelectionBackgroundColor):
51757         (WebCore::RenderThemeWin::platformInactiveSelectionForegroundColor):
51758         (WebCore::RenderThemeWin::supportsFocus):
51759         (WebCore::RenderThemeWin::supportsFocusRing):
51760         * rendering/RenderThemeWin.h:
51761
51762 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
51763
51764         Reviewed by George Staikos.
51765
51766         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23434
51767
51768         Add WML <input> element support - it required a lot of changes to the RenderText*/HTMLInput* code.
51769         Now any language can provide <input>-style elements, without having to inherit from HTML* classes.
51770
51771         No WML specific features/attributes are handled so far. A follow-up patch will provide those bits.
51772         Added very simple fast/wml/input.wml, just checking that input elements can be rendered properly now.
51773         Detailed testcases will follow in conjunction with the WML specific attribute support.
51774
51775         * GNUmakefile.am:
51776         * WebCore.pro:
51777         * WebCore.vcproj/WebCore.vcproj:
51778         * WebCore.xcodeproj/project.pbxproj:
51779         * css/CSSStyleSelector.cpp:
51780         (WebCore::CSSStyleSelector::adjustRenderStyle):
51781         * dom/FormControlElement.cpp: Activate disabled code from previous checking.
51782         (WebCore::formControlElementForElement):
51783         * dom/InputElement.cpp: Ditto.
51784         (WebCore::inputElementForElement):
51785         * wml/WMLInputElement.cpp: Added.
51786         (WebCore::WMLInputElement::WMLInputElement):
51787         (WebCore::WMLInputElement::~WMLInputElement):
51788         (WebCore::isInputFocusable):
51789         (WebCore::WMLInputElement::isKeyboardFocusable):
51790         (WebCore::WMLInputElement::isMouseFocusable):
51791         (WebCore::WMLInputElement::dispatchFocusEvent):
51792         (WebCore::WMLInputElement::dispatchBlurEvent):
51793         (WebCore::WMLInputElement::updateFocusAppearance):
51794         (WebCore::WMLInputElement::aboutToUnload):
51795         (WebCore::WMLInputElement::size):
51796         (WebCore::WMLInputElement::name):
51797         (WebCore::WMLInputElement::value):
51798         (WebCore::WMLInputElement::setValue):
51799         (WebCore::WMLInputElement::setValueFromRenderer):
51800         (WebCore::WMLInputElement::saveState):
51801         (WebCore::WMLInputElement::restoreState):
51802         (WebCore::WMLInputElement::select):
51803         (WebCore::WMLInputElement::accessKeyAction):
51804         (WebCore::WMLInputElement::parseMappedAttribute):
51805         (WebCore::WMLInputElement::copyNonAttributeProperties):
51806         (WebCore::WMLInputElement::createRenderer):
51807         (WebCore::WMLInputElement::attach):
51808         (WebCore::WMLInputElement::detach):
51809         (WebCore::WMLInputElement::appendFormData):
51810         (WebCore::WMLInputElement::reset):
51811         (WebCore::WMLInputElement::defaultEventHandler):
51812         (WebCore::WMLInputElement::cacheSelection):
51813         (WebCore::WMLInputElement::constrainValue):
51814         (WebCore::WMLInputElement::documentDidBecomeActive):
51815         (WebCore::WMLInputElement::placeholderShouldBeVisible):
51816         (WebCore::WMLInputElement::willMoveToNewOwnerDocument):
51817         (WebCore::WMLInputElement::didMoveToNewOwnerDocument):
51818         * wml/WMLInputElement.h: Added.
51819         (WebCore::WMLInputElement::valueMatchesRenderer):
51820         (WebCore::WMLInputElement::setValueMatchesRenderer):
51821         (WebCore::WMLInputElement::shouldUseInputMethod):
51822         (WebCore::WMLInputElement::isChecked):
51823         (WebCore::WMLInputElement::isIndeterminate):
51824         (WebCore::WMLInputElement::isTextControl):
51825         (WebCore::WMLInputElement::isRadioButton):
51826         (WebCore::WMLInputElement::isTextField):
51827         (WebCore::WMLInputElement::isSearchField):
51828         (WebCore::WMLInputElement::isInputTypeHidden):
51829         (WebCore::WMLInputElement::isPasswordField):
51830         (WebCore::WMLInputElement::searchEventsShouldBeDispatched):
51831         (WebCore::WMLInputElement::placeholderValue):
51832         * wml/WMLTagNames.in:
51833
51834 2009-01-20  Darin Adler  <darin@apple.com>
51835
51836         Reviewed by John Sullivan.
51837
51838         Remove a little dead code left over after the fix for
51839         https://bugs.webkit.org/show_bug.cgi?id=11395, which
51840         moved pointer-events from SVG to be shared with HTML.
51841
51842         * css/SVGCSSParser.cpp:
51843         (WebCore::CSSParser::parseSVGValue): Remove SVG's parsing of this
51844         property since it's handled in the non-SVG function now so we'll
51845         never get here.
51846
51847 2009-01-20  Julien Chaffraix  <jchaffraix@webkit.org>
51848
51849         Reviewed by Darin Adler.
51850
51851         Bug 23438: Provide a default value to the .in file parser
51852
51853         Added the default value 1 as it simplifies some of
51854         the format by removing some "=1" that were awkward.
51855
51856         This was suggested by Darin Adler as par of a previous
51857         review.
51858
51859         * bindings/scripts/InFilesParser.pm: When no value
51860         was entered (the second part of the split is undef),
51861         provide the default value.
51862
51863         * html/HTMLAttributeNames.in: Removed unnecessary "=1".
51864         * html/HTMLTagNames.in: Ditto.
51865         * svg/svgattrs.in: Ditto.
51866         * svg/svgtags.in: Ditto.
51867         * svg/xlinkattrs.in: Ditto.
51868         * wml/WMLAttributeNames.in: Ditto.
51869
51870 2009-01-20  Anders Carlsson  <andersca@apple.com>
51871
51872         Reviewed by Darin Adler.
51873
51874         * bridge/c/c_class.cpp:
51875         * bridge/c/c_class.h:
51876         Get rid of CClass::name().
51877
51878         * bridge/jni/jni_class.h:
51879         Get rid of JavaClass::name().
51880
51881         * bridge/objc/objc_class.h:
51882         * bridge/objc/objc_class.mm:
51883         Get rid of ObjcClass::name().
51884
51885         * bridge/objc/objc_instance.h:
51886         Get rid of supportsSetValueOfUndefinedField.
51887
51888         * bridge/objc/objc_instance.mm:
51889         (ObjcInstance::setValueOfUndefinedField):
51890         Fold supportsSetValueOfUndefinedField into setValueOfUndefinedField.
51891
51892         * bridge/runtime.cpp:
51893         Get rid of getValueOfField and setValueOfField.
51894
51895         * bridge/runtime.h:
51896         (JSC::Bindings::Instance::setValueOfUndefinedField):
51897         Have this return a bool and get rid of supportsSetValueOfUndefinedField
51898
51899         * bridge/runtime_object.cpp:
51900         (JSC::RuntimeObjectImp::fieldGetter):
51901         Call Field::valueFromInstance on the field.
51902
51903         (JSC::RuntimeObjectImp::put):
51904         Call Field::setValueToInstance on the field.
51905
51906 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
51907
51908         Not reviewed. Forgot to land build changes for non-mac platforms.
51909
51910         * GNUmakefile.am:
51911         * WebCore.pro:
51912         * WebCore.scons:
51913         * WebCore.vcproj/WebCore.vcproj:
51914         * WebCoreSources.bkl:
51915
51916 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
51917
51918         Reviewed by Adam Roben.
51919
51920         Fix last-minute regression, introduced by simplifying max length determination - by
51921         clamping using min/max, negative maxLength values got broken.
51922
51923         * dom/InputElement.cpp:
51924         (WebCore::InputElement::parseMaxLengthAttribute):
51925
51926 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
51927
51928         Reviewed by Adam Roben.
51929
51930         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23433
51931
51932         Add InputElement abstraction, similar to the FormControlElement refactorization
51933         done a month ago. The goal is to share as much code as possible between HTML/WMLInputElement.
51934         In a previous patch the RenderTextControl class has been split-up in RenderTextControlSingle/MultiLine,
51935         RenderTextControl itself only depends on FormControlElement, RenderTextControlSingleLine still
51936         depends on HTMLInputElement directly -> change that and make it use the new InputElement abstraction.
51937
51938         A lot of code from HTMLInputElement now lives in InputElement, as static member functions - the
51939         InputElement class itself is an abstract virtual class, just like ScriptElement. HTML/WMLInputElement
51940         derive from InputElement, and hold a InputElementData member variable, that they pass to the
51941         static functions in InputElement. The abstraction is equal to the one chosen for HTML/SVGScriptElement.
51942
51943         * WebCore.xcodeproj/project.pbxproj:
51944         * dom/FormControlElement.cpp: Added.
51945         (WebCore::formControlElementForElement):
51946         * dom/FormControlElement.h:
51947         * dom/InputElement.cpp: Added.
51948         (WebCore::InputElement::dispatchFocusEvent):
51949         (WebCore::InputElement::dispatchBlurEvent):
51950         (WebCore::InputElement::updatePlaceholderVisibility):
51951         (WebCore::InputElement::updateFocusAppearance):
51952         (WebCore::InputElement::updateSelectionRange):
51953         (WebCore::InputElement::aboutToUnload):
51954         (WebCore::InputElement::setValueFromRenderer):
51955         (WebCore::numCharactersInGraphemeClusters):
51956         (WebCore::InputElement::constrainValue):
51957         (WebCore::numGraphemeClusters):
51958         (WebCore::InputElement::handleBeforeTextInsertedEvent):
51959         (WebCore::InputElement::parseSizeAttribute):
51960         (WebCore::InputElement::parseMaxLengthAttribute):
51961         (WebCore::InputElement::updateValueIfNeeded):
51962         (WebCore::InputElement::notifyFormStateChanged):
51963         (WebCore::InputElementData::InputElementData):
51964         (WebCore::InputElementData::~InputElementData):
51965         (WebCore::InputElementData::name):
51966         (WebCore::inputElementForElement):
51967         * dom/InputElement.h: Added.
51968         (WebCore::InputElement::~InputElement):
51969         (WebCore::InputElement::InputElement):
51970         (WebCore::InputElementData::inputElement):
51971         (WebCore::InputElementData::element):
51972         (WebCore::InputElementData::placeholderShouldBeVisible):
51973         (WebCore::InputElementData::setPlaceholderShouldBeVisible):
51974         (WebCore::InputElementData::setName):
51975         (WebCore::InputElementData::value):
51976         (WebCore::InputElementData::setValue):
51977         (WebCore::InputElementData::size):
51978         (WebCore::InputElementData::setSize):
51979         (WebCore::InputElementData::maxLength):
51980         (WebCore::InputElementData::setMaxLength):
51981         (WebCore::InputElementData::cachedSelectionStart):
51982         (WebCore::InputElementData::setCachedSelectionStart):
51983         (WebCore::InputElementData::cachedSelectionEnd):
51984         (WebCore::InputElementData::setCachedSelectionEnd):
51985         * html/HTMLInputElement.cpp:
51986         (WebCore::HTMLInputElement::HTMLInputElement):
51987         (WebCore::HTMLInputElement::name):
51988         (WebCore::HTMLInputElement::updateFocusAppearance): Moved to InputElement.
51989         (WebCore::HTMLInputElement::aboutToUnload): Ditto.
51990         (WebCore::HTMLInputElement::dispatchFocusEvent): Ditto.
51991         (WebCore::HTMLInputElement::dispatchBlurEvent): Ditto.
51992         (WebCore::HTMLInputElement::setSelectionRange): Moved to InputElement::updateSelectionRange, call it from here.
51993         (WebCore::HTMLInputElement::parseMappedAttribute):
51994         (WebCore::HTMLInputElement::size): Make virtual and override InputElements abstract version.
51995         (WebCore::HTMLInputElement::copyNonAttributeProperties):
51996         (WebCore::HTMLInputElement::value): Make virtual and override InputElements abstract version.
51997         (WebCore::HTMLInputElement::setValue): Ditto.
51998         (WebCore::HTMLInputElement::placeholderValue): Ditto.
51999         (WebCore::HTMLInputElement::searchEventsShouldBeDispatched): Ditto.
52000         (WebCore::HTMLInputElement::setValueFromRenderer): Ditto.
52001         (WebCore::HTMLInputElement::setFileListFromRenderer): Use new code in InputElement::setValueFromRenderer
52002         (WebCore::HTMLInputElement::defaultEventHandler):
52003         (WebCore::HTMLInputElement::setDefaultName): Added as helper function for HTMLIsIndexElement.
52004         (WebCore::HTMLInputElement::maxLength): Added accesor.
52005         (WebCore::HTMLInputElement::constrainValue): Move functionality to InputElement::constrainValue.
52006         (WebCore::HTMLInputElement::cacheSelection): Move functionality to InputElement::cacheSelection.
52007         (WebCore::HTMLInputElement::selection):
52008         (WebCore::HTMLInputElement::placeholderShouldBeVisible): Make virtual and override InputElements abstract version.
52009         * html/HTMLInputElement.h:
52010         (WebCore::HTMLInputElement::isTextField):
52011         (WebCore::HTMLInputElement::isSearchField):
52012         (WebCore::HTMLInputElement::isAutofilled):
52013         * html/HTMLIsIndexElement.cpp:
52014         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
52015         * rendering/RenderTextControl.cpp:
52016         (WebCore::RenderTextControl::formControlElement):
52017         * rendering/RenderTextControlSingleLine.cpp:
52018         (WebCore::RenderTextControlSingleLine::placeholderShouldBeVisible):
52019         (WebCore::RenderTextControlSingleLine::addSearchResult):
52020         (WebCore::RenderTextControlSingleLine::stopSearchEventTimer):
52021         (WebCore::RenderTextControlSingleLine::showPopup):
52022         (WebCore::RenderTextControlSingleLine::hidePopup):
52023         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
52024         (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
52025         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
52026         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
52027         (WebCore::RenderTextControlSingleLine::updateFromElement):
52028         (WebCore::RenderTextControlSingleLine::cacheSelection):
52029         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
52030         (WebCore::RenderTextControlSingleLine::createResultsButtonStyle):
52031         (WebCore::RenderTextControlSingleLine::createCancelButtonStyle):
52032         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
52033         (WebCore::RenderTextControlSingleLine::startSearchEventTimer):
52034         (WebCore::RenderTextControlSingleLine::searchEventTimerFired):
52035         (WebCore::RenderTextControlSingleLine::valueChanged):
52036         (WebCore::RenderTextControlSingleLine::setTextFromItem):
52037         (WebCore::RenderTextControlSingleLine::inputElement):
52038         * rendering/RenderTextControlSingleLine.h:
52039
52040 2009-01-20  Dirk Schulze  <krit@webkit.org>
52041
52042         Reviewed by Nikolas Zimmermann.
52043
52044         Make SVG pattern platform independent and remove platform code.
52045
52046         Make SVGPattern platform independent
52047         https://bugs.webkit.org/show_bug.cgi?id=21205
52048
52049         * GNUmakefile.am:
52050         * WebCore.pro:
52051         * WebCore.vcproj/WebCore.vcproj:
52052         * WebCore.xcodeproj/project.pbxproj:
52053         * platform/graphics/GraphicsContext.h:
52054         * platform/graphics/cg/GraphicsContextCG.cpp:
52055         (WebCore::GraphicsContext::applyStrokePattern):
52056         (WebCore::GraphicsContext::applyFillPattern):
52057         (WebCore::GraphicsContext::drawPath):
52058         (WebCore::GraphicsContext::fillPath):
52059         (WebCore::GraphicsContext::strokePath):
52060         (WebCore::GraphicsContext::fillRect):
52061         (WebCore::GraphicsContext::strokeRect):
52062         * svg/graphics/SVGPaintServerPattern.cpp:
52063         (WebCore::SVGPaintServerPattern::SVGPaintServerPattern):
52064         (WebCore::SVGPaintServerPattern::~SVGPaintServerPattern):
52065         (WebCore::SVGPaintServerPattern::setup):
52066         (WebCore::SVGPaintServerPattern::renderPath):
52067         (WebCore::SVGPaintServerPattern::teardown):
52068         * svg/graphics/SVGPaintServerPattern.h:
52069         * svg/graphics/cairo/SVGPaintServerPatternCairo.cpp: Removed.
52070         * svg/graphics/cg/SVGPaintServerPatternCg.cpp: Removed.
52071         * svg/graphics/qt/SVGPaintServerPatternQt.cpp: Removed.
52072         * svg/graphics/skia/SVGPaintServerPatternSkia.cpp: Removed.
52073
52074 2009-01-20  Darin Fisher  <darin@chromium.org>
52075
52076         Reviewed by Eric Seidel.
52077
52078         https://bugs.webkit.org/show_bug.cgi?id=23436
52079         Upstream rendering/RenderThemeChromium*
52080
52081         * rendering/RenderThemeChromiumGtk.cpp: Added.
52082         * rendering/RenderThemeChromiumGtk.h: Added.
52083         * rendering/RenderThemeChromiumMac.h: Added.
52084         * rendering/RenderThemeChromiumMac.mm: Added.
52085         * rendering/RenderThemeChromiumWin.cpp: Added.
52086         * rendering/RenderThemeChromiumWin.h: Added.
52087
52088 2009-01-20  Darin Adler  <darin@apple.com>
52089
52090         Reviewed by Mark Rowe.
52091
52092         Bug 23352: Turn on more compiler warnings in the Mac build
52093         https://bugs.webkit.org/show_bug.cgi?id=23352
52094
52095         First patch: Fix some simple cases of various warnings.
52096
52097         * platform/DeprecatedPtrListImpl.cpp:
52098         (WebCore::DeprecatedPtrListImpl::insert): Use const_cast to change const-ness.
52099         * platform/graphics/mac/SimpleFontDataMac.mm:
52100         (WebCore::SimpleFontData::containsCharacters): Ditto.
52101
52102         * platform/text/PlatformString.h: Overload for short and unsigned short to avoid
52103         ambiguity leading to warnings.
52104         * platform/text/String.cpp:
52105         (WebCore::String::number): Implemented overloads.
52106
52107         * platform/text/TextStream.cpp:
52108         (WebCore::TextStream::operator<<): Overload for bool to avoid ambiguity leading
52109         to warnings.
52110         * platform/text/TextStream.h: Ditto.
52111
52112         * rendering/InlineFlowBox.h: Fix declaration that was specifying the wrong type.
52113
52114         * svg/graphics/filters/cg/WKLinearTransferFilter.m: Fix stray characters after
52115         #endif that should be a comment instead.
52116         * svg/graphics/filters/cg/WKSpecularLightingFilter.h: Ditto.
52117
52118         * xml/XPathPath.h: Remove unneeded redundant declaration.
52119
52120 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
52121
52122         Build fix for WML enabled builds, not reviewed.
52123
52124         Fix unused variable warning.
52125
52126         * wml/WMLGoElement.cpp:
52127         (WebCore::WMLGoElement::executeTask):
52128
52129 2009-01-20  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
52130
52131         Build fix for WML enabled builds, not reviewed.
52132
52133         Rename 'continuation' to 'virtualContinuation'.
52134
52135         * wml/WMLAElement.cpp:
52136         (WebCore::WMLAElement::isKeyboardFocusable):
52137
52138 2009-01-20  Oliver Hunt  <oliver@apple.com>
52139
52140         RS=Dan Bernstein
52141
52142         Move runtime/ByteArray to wtf/ByteArray
52143
52144         * ForwardingHeaders/wtf/ByteArray.h: Renamed from WebCore/ForwardingHeaders/runtime/ByteArray.h.
52145         * html/CanvasRenderingContext2D.cpp:
52146         * html/ImageData.cpp:
52147         (WebCore::ImageData::ImageData):
52148         * html/ImageData.h:
52149         (WebCore::ImageData::data):
52150
52151 2009-01-20  Darin Fisher  <darin@chromium.org>
52152
52153         Reviewed by Sam Weinig.
52154
52155         https://bugs.webkit.org/show_bug.cgi?id=23391
52156         Upstream plugins/chromium/
52157
52158         * plugins/chromium: Added.
52159         * plugins/chromium/PluginDataChromium.cpp: Added.
52160
52161 2009-01-19  Steve Falkenburg  <sfalken@apple.com>
52162
52163         Fix Windows release build.
52164         Move SVG files into all-in-one file for Windows build.
52165
52166         * WebCore.vcproj/WebCore.vcproj:
52167         * svg/SVGAllInOne.cpp: Added.
52168
52169 2009-01-19  Steve Falkenburg  <sfalken@apple.com>
52170
52171         Partial build fix.
52172         Move new derived sources into all-in-one DerivedSources.cpp
52173
52174         * DerivedSources.cpp:
52175         * WebCore.vcproj/WebCore.vcproj:
52176
52177 2009-01-19  Sam Weinig  <sam@webkit.org>
52178
52179         Fix Qt build.
52180
52181         * bridge/qt/qt_instance.cpp:
52182         (JSC::Bindings::QtInstance::mark):
52183         * bridge/qt/qt_runtime.cpp:
52184         (JSC::Bindings::valueRealType):
52185         (JSC::Bindings::convertValueToQVariant):
52186         (JSC::Bindings::QtRuntimeConnectionMethod::call):
52187         (JSC::Bindings::QtConnectionObject::execute):
52188
52189 2009-01-19  Sam Weinig  <sam@webkit.org>
52190
52191         Fix wx build.
52192
52193         * plugins/PluginView.cpp:
52194         (WebCore::getString):
52195
52196 2009-01-19  Sam Weinig  <sam@webkit.org>
52197
52198         Rubber-stamped by Gavin Barraclough.
52199
52200         Remove temporary operator-> from JSValuePtr.
52201
52202         * WebCore.xcodeproj/project.pbxproj:
52203         * bindings/js/JSAudioConstructor.cpp:
52204         (WebCore::constructAudio):
52205         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
52206         (WebCore::toHTMLCanvasStyle):
52207         (WebCore::JSCanvasRenderingContext2D::setFillColor):
52208         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
52209         (WebCore::JSCanvasRenderingContext2D::strokeRect):
52210         (WebCore::JSCanvasRenderingContext2D::drawImage):
52211         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
52212         (WebCore::JSCanvasRenderingContext2D::setShadow):
52213         (WebCore::JSCanvasRenderingContext2D::createPattern):
52214         (WebCore::JSCanvasRenderingContext2D::putImageData):
52215         (WebCore::JSCanvasRenderingContext2D::fillText):
52216         (WebCore::JSCanvasRenderingContext2D::strokeText):
52217         * bindings/js/JSClipboardCustom.cpp:
52218         (WebCore::JSClipboard::clearData):
52219         (WebCore::JSClipboard::getData):
52220         (WebCore::JSClipboard::setData):
52221         (WebCore::JSClipboard::setDragImage):
52222         * bindings/js/JSCustomPositionCallback.cpp:
52223         (WebCore::JSCustomPositionCallback::handleEvent):
52224         * bindings/js/JSCustomPositionErrorCallback.cpp:
52225         (WebCore::JSCustomPositionErrorCallback::handleEvent):
52226         * bindings/js/JSCustomSQLStatementCallback.cpp:
52227         (WebCore::JSCustomSQLStatementCallback::handleEvent):
52228         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
52229         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
52230         * bindings/js/JSCustomSQLTransactionCallback.cpp:
52231         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
52232         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
52233         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
52234         * bindings/js/JSCustomVoidCallback.cpp:
52235         (WebCore::JSCustomVoidCallback::handleEvent):
52236         (WebCore::toVoidCallback):
52237         * bindings/js/JSCustomXPathNSResolver.cpp:
52238         (WebCore::JSCustomXPathNSResolver::create):
52239         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
52240         * bindings/js/JSDOMApplicationCacheCustom.cpp:
52241         (WebCore::JSDOMApplicationCache::hasItem):
52242         (WebCore::JSDOMApplicationCache::add):
52243         (WebCore::JSDOMApplicationCache::remove):
52244         (WebCore::JSDOMApplicationCache::addEventListener):
52245         (WebCore::JSDOMApplicationCache::removeEventListener):
52246         * bindings/js/JSDOMBinding.cpp:
52247         (WebCore::valueToStringWithNullCheck):
52248         (WebCore::valueToStringWithUndefinedOrNullCheck):
52249         (WebCore::reportException):
52250         * bindings/js/JSDOMGlobalObject.cpp:
52251         (WebCore::JSDOMGlobalObject::findJSEventListener):
52252         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
52253         (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
52254         (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
52255         * bindings/js/JSDOMStringListCustom.cpp:
52256         (WebCore::JSDOMStringList::item):
52257         * bindings/js/JSDOMWindowBase.cpp:
52258         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
52259         (windowProtoFuncOpen):
52260         (WebCore::toJSDOMWindow):
52261         * bindings/js/JSDOMWindowCustom.cpp:
52262         (WebCore::JSDOMWindow::setLocation):
52263         (WebCore::JSDOMWindow::postMessage):
52264         (WebCore::setTimeoutOrInterval):
52265         (WebCore::JSDOMWindow::clearTimeout):
52266         (WebCore::JSDOMWindow::clearInterval):
52267         (WebCore::JSDOMWindow::atob):
52268         (WebCore::JSDOMWindow::btoa):
52269         (WebCore::JSDOMWindow::addEventListener):
52270         (WebCore::JSDOMWindow::removeEventListener):
52271         (WebCore::toDOMWindow):
52272         * bindings/js/JSDatabaseCustom.cpp:
52273         (WebCore::JSDatabase::changeVersion):
52274         (WebCore::JSDatabase::transaction):
52275         * bindings/js/JSDocumentCustom.cpp:
52276         (WebCore::JSDocument::setLocation):
52277         * bindings/js/JSElementCustom.cpp:
52278         (WebCore::JSElement::setAttribute):
52279         (WebCore::JSElement::setAttributeNS):
52280         * bindings/js/JSEventListener.cpp:
52281         (WebCore::JSAbstractEventListener::handleEvent):
52282         (WebCore::JSLazyEventListener::parseCode):
52283         * bindings/js/JSEventTargetNodeCustom.cpp:
52284         (WebCore::JSEventTargetNode::addEventListener):
52285         (WebCore::JSEventTargetNode::removeEventListener):
52286         * bindings/js/JSGeolocationCustom.cpp:
52287         (WebCore::createPositionOptions):
52288         (WebCore::JSGeolocation::getCurrentPosition):
52289         (WebCore::JSGeolocation::watchPosition):
52290         * bindings/js/JSHTMLCollectionCustom.cpp:
52291         (WebCore::callHTMLCollection):
52292         (WebCore::JSHTMLCollection::canGetItemsForName):
52293         (WebCore::JSHTMLCollection::item):
52294         (WebCore::JSHTMLCollection::namedItem):
52295         * bindings/js/JSHTMLDocumentCustom.cpp:
52296         (WebCore::JSHTMLDocument::open):
52297         (WebCore::writeHelper):
52298         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
52299         (WebCore::JSHTMLOptionsCollection::setLength):
52300         (WebCore::JSHTMLOptionsCollection::add):
52301         * bindings/js/JSHTMLSelectElementCustom.cpp:
52302         (WebCore::JSHTMLSelectElement::remove):
52303         (WebCore::selectIndexSetter):
52304         * bindings/js/JSImageConstructor.cpp:
52305         (WebCore::constructImage):
52306         * bindings/js/JSInspectedObjectWrapper.cpp:
52307         (WebCore::JSInspectedObjectWrapper::wrap):
52308         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue):
52309         * bindings/js/JSInspectorCallbackWrapper.cpp:
52310         (WebCore::JSInspectorCallbackWrapper::wrap):
52311         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
52312         (WebCore::JSJavaScriptCallFrame::evaluate):
52313         * bindings/js/JSLocationCustom.cpp:
52314         (WebCore::JSLocation::setHref):
52315         (WebCore::JSLocation::setProtocol):
52316         (WebCore::JSLocation::setHost):
52317         (WebCore::JSLocation::setHostname):
52318         (WebCore::JSLocation::setPort):
52319         (WebCore::JSLocation::setPathname):
52320         (WebCore::JSLocation::setSearch):
52321         (WebCore::JSLocation::setHash):
52322         (WebCore::JSLocation::replace):
52323         (WebCore::JSLocation::assign):
52324         * bindings/js/JSMessageChannelConstructor.cpp:
52325         (WebCore::JSMessageChannelConstructor::mark):
52326         * bindings/js/JSMessagePortCustom.cpp:
52327         (WebCore::JSMessagePort::startConversation):
52328         (WebCore::JSMessagePort::addEventListener):
52329         (WebCore::JSMessagePort::removeEventListener):
52330         * bindings/js/JSNodeFilterCondition.cpp:
52331         (WebCore::JSNodeFilterCondition::mark):
52332         (WebCore::JSNodeFilterCondition::acceptNode):
52333         * bindings/js/JSNodeFilterCondition.h:
52334         * bindings/js/JSNodeFilterCustom.cpp:
52335         (WebCore::toNodeFilter):
52336         * bindings/js/JSNodeListCustom.cpp:
52337         (WebCore::callNodeList):
52338         * bindings/js/JSOptionConstructor.cpp:
52339         (WebCore::constructHTMLOptionElement):
52340         * bindings/js/JSQuarantinedObjectWrapper.cpp:
52341         (WebCore::JSQuarantinedObjectWrapper::asWrapper):
52342         (WebCore::JSQuarantinedObjectWrapper::construct):
52343         * bindings/js/JSSQLResultSetRowListCustom.cpp:
52344         (WebCore::JSSQLResultSetRowList::item):
52345         * bindings/js/JSSQLTransactionCustom.cpp:
52346         (WebCore::JSSQLTransaction::executeSql):
52347         * bindings/js/JSSVGElementInstanceCustom.cpp:
52348         (WebCore::JSSVGElementInstance::addEventListener):
52349         (WebCore::JSSVGElementInstance::removeEventListener):
52350         * bindings/js/JSSVGLengthCustom.cpp:
52351         (WebCore::JSSVGLength::convertToSpecifiedUnits):
52352         * bindings/js/JSSVGMatrixCustom.cpp:
52353         (WebCore::JSSVGMatrix::translate):
52354         (WebCore::JSSVGMatrix::scale):
52355         (WebCore::JSSVGMatrix::scaleNonUniform):
52356         (WebCore::JSSVGMatrix::rotate):
52357         (WebCore::JSSVGMatrix::rotateFromVector):
52358         (WebCore::JSSVGMatrix::skewX):
52359         (WebCore::JSSVGMatrix::skewY):
52360         * bindings/js/JSSVGPathSegListCustom.cpp:
52361         (WebCore::JSSVGPathSegList::getItem):
52362         (WebCore::JSSVGPathSegList::insertItemBefore):
52363         (WebCore::JSSVGPathSegList::replaceItem):
52364         (WebCore::JSSVGPathSegList::removeItem):
52365         * bindings/js/JSSVGPointListCustom.cpp:
52366         (WebCore::JSSVGPointList::getItem):
52367         (WebCore::JSSVGPointList::insertItemBefore):
52368         (WebCore::JSSVGPointList::replaceItem):
52369         (WebCore::JSSVGPointList::removeItem):
52370         * bindings/js/JSSVGTransformListCustom.cpp:
52371         (WebCore::JSSVGTransformList::getItem):
52372         (WebCore::JSSVGTransformList::insertItemBefore):
52373         (WebCore::JSSVGTransformList::replaceItem):
52374         (WebCore::JSSVGTransformList::removeItem):
52375         * bindings/js/JSStorageCustom.cpp:
52376         (WebCore::JSStorage::deleteProperty):
52377         (WebCore::JSStorage::customPut):
52378         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
52379         (WebCore::constructWebKitCSSMatrix):
52380         * bindings/js/JSWorkerConstructor.cpp:
52381         (WebCore::constructWorker):
52382         * bindings/js/JSWorkerContextCustom.cpp:
52383         (WebCore::JSWorkerContext::addEventListener):
52384         (WebCore::JSWorkerContext::removeEventListener):
52385         * bindings/js/JSWorkerCustom.cpp:
52386         (WebCore::JSWorker::addEventListener):
52387         (WebCore::JSWorker::removeEventListener):
52388         * bindings/js/JSXMLHttpRequestCustom.cpp:
52389         (WebCore::JSXMLHttpRequest::open):
52390         (WebCore::JSXMLHttpRequest::setRequestHeader):
52391         (WebCore::JSXMLHttpRequest::send):
52392         (WebCore::JSXMLHttpRequest::getResponseHeader):
52393         (WebCore::JSXMLHttpRequest::overrideMimeType):
52394         (WebCore::JSXMLHttpRequest::addEventListener):
52395         (WebCore::JSXMLHttpRequest::removeEventListener):
52396         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
52397         (WebCore::JSXMLHttpRequestUpload::addEventListener):
52398         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
52399         * bindings/js/JSXSLTProcessorCustom.cpp:
52400         (WebCore::JSXSLTProcessor::importStylesheet):
52401         (WebCore::JSXSLTProcessor::transformToFragment):
52402         (WebCore::JSXSLTProcessor::transformToDocument):
52403         (WebCore::JSXSLTProcessor::setParameter):
52404         (WebCore::JSXSLTProcessor::getParameter):
52405         (WebCore::JSXSLTProcessor::removeParameter):
52406         * bindings/js/ScheduledAction.cpp:
52407         (WebCore::ScheduledAction::executeFunctionInContext):
52408         * bindings/js/ScriptCallStack.cpp:
52409         (WebCore::ScriptCallStack::initialize):
52410         * bindings/js/ScriptController.cpp:
52411         (WebCore::ScriptController::createScriptObjectForPluginElement):
52412         * bindings/js/ScriptValue.cpp:
52413         (WebCore::ScriptValue::getString):
52414         (WebCore::ScriptValue::isNull):
52415         (WebCore::ScriptValue::isUndefined):
52416         * bindings/objc/WebScriptObject.mm:
52417         (-[WebScriptObject callWebScriptMethod:withArguments:]):
52418         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
52419         * bindings/scripts/CodeGeneratorJS.pm:
52420         * bridge/NP_jsobject.cpp:
52421         (_NPN_InvokeDefault):
52422         (_NPN_Invoke):
52423         (_NPN_HasMethod):
52424         (_NPN_Construct):
52425         * bridge/c/c_utility.cpp:
52426         (JSC::Bindings::convertValueToNPVariant):
52427         * bridge/jni/jni_instance.cpp:
52428         (JavaInstance::invokeMethod):
52429         * bridge/jni/jni_jsobject.mm:
52430         (JavaJSObject::call):
52431         (JavaJSObject::convertValueToJObject):
52432         * bridge/jni/jni_runtime.cpp:
52433         (JavaField::dispatchValueFromInstance):
52434         (JavaField::valueFromInstance):
52435         (JavaField::dispatchSetValueToInstance):
52436         (JavaField::setValueToInstance):
52437         * bridge/jni/jni_utility.cpp:
52438         (JSC::Bindings::convertArrayInstanceToJavaArray):
52439         (JSC::Bindings::convertValueToJValue):
52440         * bridge/objc/objc_runtime.mm:
52441         (JSC::Bindings::callObjCFallbackObject):
52442         * bridge/objc/objc_utility.mm:
52443         (JSC::Bindings::convertValueToObjcValue):
52444         * bridge/runtime_method.cpp:
52445         (JSC::callRuntimeMethod):
52446         * bridge/runtime_object.cpp:
52447         (JSC::RuntimeObjectImp::getOwnPropertySlot):
52448         (JSC::callRuntimeConstructor):
52449
52450 2009-01-20  Gustavo Noronha Silva  <gns@gnome.org>
52451
52452          Reviewed by Mark Rowe.
52453
52454          https://bugs.webkit.org/show_bug.cgi?id=23419
52455          removal of FramePrivate.h breaks GTK+'s make dist
52456
52457          * GNUmakefile.am: No longer mention FramePrivate.h in our build,
52458          since it was removed.
52459
52460 2009-01-20  Alexander V. Butenko  <alex@digiqube.com>
52461
52462         Reviewed by Holger Freyther.
52463
52464         http://bugs.webkit.org/show_bug.cgi?id=23116
52465         [GTK] Fix crash due a callback called from GIO after the
52466         destruction of the ResourceHandle
52467
52468         * platform/network/soup/ResourceHandleSoup.cpp:
52469         (WebCore::ResourceHandle::cancel): Only call didFinishLoading if
52470         'client' is set, otherwise cancelling a load could lead to a crash.
52471
52472 2009-01-19  Simon Fraser  <simon.fraser@apple.com>
52473
52474         Build fix: remove duplicate entries in the Xcode project, and
52475         sort the project with sort-Xcode-project-file .
52476
52477         * WebCore.xcodeproj/project.pbxproj:
52478
52479 2009-01-19  Simon Fraser  <simon.fraser@apple.com>
52480
52481         Reviewed by Dave Hyatt
52482
52483         https://bugs.webkit.org/show_bug.cgi?id=18078
52484
52485         Support animations and transitions of shorthand properties by creating
52486         PropertyWrappers that simply wrap a vector of atomic wrappers, and implement
52487         equal() and blend(). Build that collection of shorthand wrappers using the
52488         shorthand map that CSSMutableStyleDeclaration already has. Skip comparing these
52489         shorthand wrappers during 'all' transitions.
52490
52491         * GNUmakefile.am:
52492         * WebCore.pro:
52493         * WebCore.scons:
52494         * WebCore.vcproj/WebCore.vcproj:
52495         * WebCore.xcodeproj/project.pbxproj:
52496         * WebCoreSources.bkl:
52497         Add CSSPropertyLonghand.h/cpp.
52498
52499         * css/CSSMutableStyleDeclaration.cpp:
52500         (WebCore::CSSMutableStyleDeclaration::removeShorthandProperty):
52501         Move CSSPropertyLonghand to its own file.
52502
52503         * css/CSSPropertyLonghand.cpp: Added.
52504         (WebCore::initShorthandMap):
52505         (WebCore::longhandForProperty):
52506         * css/CSSPropertyLonghand.h: Added.
52507         (WebCore::CSSPropertyLonghand::CSSPropertyLonghand):
52508         (WebCore::CSSPropertyLonghand::properties):
52509         (WebCore::CSSPropertyLonghand::length):
52510         Code moved from CSSMutableStyleDeclaration.h/cpp
52511
52512         * page/animation/AnimationBase.cpp:
52513         (WebCore::PropertyWrapperBase::isShorthandWrapper):
52514         (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper):
52515         (WebCore::ShorthandPropertyWrapper::isShorthandWrapper):
52516         (WebCore::ShorthandPropertyWrapper::equals):
52517         (WebCore::ShorthandPropertyWrapper::blend):
52518         Add a wrapper class for shorthand properties that simply wraps an
52519         array of atomic property wrappers.
52520
52521         (WebCore::ensurePropertyMap):
52522         (WebCore::addPropertyWrapper):
52523         (WebCore::addShorthandProperties):
52524         (WebCore::wrapperForProperty):
52525         (WebCore::AnimationBase::propertiesEqual):
52526         (WebCore::AnimationBase::getPropertyAtIndex):
52527         Some minor refactoring to re-use wrapperForProperty(), and ensure that gPropertyWrapperMap
52528         is filled with an invalid index (-1), not 0.
52529
52530         (WebCore::AnimationBase::blendProperties):
52531         * page/animation/AnimationBase.h:
52532         * page/animation/CompositeAnimation.cpp:
52533         (WebCore::CompositeAnimationPrivate::updateTransitions):
52534         When doing 'all' transitions, skip shorthand wrappers, since 'all' transitions
52535         just need to compare all the atomic property wrappers.
52536
52537 2009-01-19  Oliver Hunt  <oliver@apple.com>
52538
52539         Reviewed by NOBODY (Build fix).
52540
52541         Actually add the new header.
52542
52543         * dom/GenericWorkerTask.h: Added.
52544
52545 2009-01-19  David Levin  <levin@chromium.org>
52546
52547         Reviewed by Alexey Proskuryakov.
52548
52549         https://bugs.webkit.org/show_bug.cgi?id=22720
52550
52551         Provide a generic class to handle the pattern of task callbacks across worker/parent threads.  It
52552         only works for methods that need 6 parameters but similar classes could be added as needed for
52553         other numbers of parameters.
52554
52555         Add addMessage and resourceRetrievedByXMLHttpRequest to ScriptExecutionContext.
52556
52557         Use these methods and others to remove document() from XMLHttpRequest in a few more places.
52558
52559         No observable change in behavior, so no test.
52560
52561         * GNUmakefile.am:
52562         * WebCore.vcproj/WebCore.vcproj:
52563         * WebCore.xcodeproj/project.pbxproj:
52564         Sorted project file while adding GenericWorkerTask.h
52565
52566         * bindings/js/ScriptString.h:
52567         (WebCore::ScriptString::operator=):
52568         (WebCore::ScriptString::operator+=):
52569         (WebCore::ScriptString::operator==):
52570         (WebCore::ScriptString::operator!=):
52571         Removed unnecessary JSLock.
52572
52573         * dom/Document.cpp:
52574         (WebCore::Document::addMessage):
52575         (WebCore::Document::resourceRetrievedByXMLHttpRequest):
52576         * dom/Document.h:
52577         * dom/GenericWorkerTask.h: Added.
52578         (WebCore::GenericWorkerTaskBase::GenericWorkerTaskBase):
52579         (WebCore::GenericWorkerTaskBase::canPerformTask):
52580         (WebCore::GenericWorkerTask6::create):
52581         (WebCore::GenericWorkerTask6::GenericWorkerTask6):
52582         (WebCore::GenericWorkerTask6::performTask):
52583         (WebCore::createCallbackTask):
52584         * dom/ScriptExecutionContext.h:
52585         * dom/WorkerContext.cpp:
52586         (WebCore::addMessageTask):
52587         (WebCore::WorkerContext::addMessage):
52588         (WebCore::WorkerContext::resourceRetrievedByXMLHttpRequest):
52589         (WebCore::WorkerContext::postTaskToParentContext):
52590         * dom/WorkerContext.h:
52591         * dom/WorkerMessagingProxy.cpp:
52592         (WebCore::WorkerMessagingProxy::postTaskToParentContext):
52593         * dom/WorkerMessagingProxy.h:
52594         * dom/WorkerThread.h:
52595         * xml/XMLHttpRequest.cpp:
52596         (WebCore::XMLHttpRequest::XMLHttpRequest):
52597         (WebCore::XMLHttpRequest::dropProtection):
52598         (WebCore::reportUnsafeUsage):
52599         (WebCore::XMLHttpRequest::setRequestHeader):
52600         (WebCore::XMLHttpRequest::getResponseHeader):
52601         (WebCore::XMLHttpRequest::didFinishLoading):
52602         * xml/XMLHttpRequest.h:
52603         (WebCore::XMLHttpRequest::create):
52604
52605
52606 2009-01-19  Chris Fleizach  <cfleizach@apple.com>
52607
52608         Reviewed by Beth Dakin.
52609
52610         Bug 23422: AX: AXLinks should expose access key information
52611         https://bugs.webkit.org/show_bug.cgi?id=23422
52612
52613         Test: accessibility/accesskey.html
52614
52615         * page/mac/AccessibilityObjectWrapper.mm:
52616         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
52617         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
52618
52619 2009-01-19  Alexey Proskuryakov  <ap@webkit.org>
52620
52621         Reviewed by Anders Carlsson.
52622
52623         https://bugs.webkit.org/show_bug.cgi?id=23417
52624         Implement application cache obsolete state
52625
52626         Test: http/tests/appcache/remove-cache.html
52627
52628         * bindings/js/JSDOMApplicationCacheCustom.cpp:
52629         (WebCore::JSDOMApplicationCache::mark):
52630         * dom/EventNames.h:
52631         * loader/appcache/DOMApplicationCache.h:
52632         (WebCore::DOMApplicationCache::Status):
52633         (WebCore::DOMApplicationCache::setOnobsolete):
52634         (WebCore::DOMApplicationCache::onobsolete):
52635         * loader/appcache/DOMApplicationCache.idl:
52636         Added "obsolete" event and status.
52637
52638         * loader/appcache/ApplicationCacheGroup.h:
52639         (WebCore::ApplicationCacheGroup::savedNewestCachePointer): Removed, there is no longer
52640         any need to track what the newest cache was during teardown.
52641         (WebCore::ApplicationCacheGroup::updateStatus): Renamed Status to UpdateStatus, reducing
52642         confusion with cache group lifecycle status.
52643         (WebCore::ApplicationCacheGroup::m_isObsolete): Added an obsolete state flag.
52644
52645         * loader/appcache/ApplicationCacheGroup.cpp:
52646         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): Initialize m_isObsolete.
52647         (WebCore::ApplicationCacheGroup::cacheForMainRequest): Assert that the returned cache does
52648         not belong to an obsolete group.
52649         (WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest): Ditto.
52650         (WebCore::ApplicationCacheGroup::disassociateDocumentLoader): Disassociation can now happen
52651         via a JS swapCache() call, not only when the loader is destroyed.
52652         (WebCore::ApplicationCacheGroup::cacheDestroyed): Don't track m_savedNewestCachePointer.
52653         (WebCore::ApplicationCacheGroup::setNewestCache): Remove old newest cache from storage is
52654         a caller responsibility, because this method is also used when loading caches from disk.
52655         (WebCore::ApplicationCacheGroup::makeObsolete): Added. Mark the cache group as obsolete, and
52656         inform cache storage, so that it could be removed.
52657         (WebCore::ApplicationCacheGroup::didFailToLoadManifest): Removed, as all this method did
52658         was call cacheUpdateFailed().
52659         (WebCore::ApplicationCacheGroup::didReceiveResponse): Added a FIXME about correct failure
52660         handing.
52661         (WebCore::ApplicationCacheGroup::didFail): Ditto.
52662         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse): Call a new manifestNotFound()
52663         method for 404 and 410 responses.
52664         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest): Call cacheUpdateFailed()
52665         directly, instead of the removed didFailToLoadManifest().
52666         (WebCore::ApplicationCacheGroup::manifestNotFound): Implement "remove a cache" algorithm.
52667         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Remove superceded cache from storage
52668         after update successfully finishes (moved from setNewestCache()).
52669         (WebCore::ApplicationCacheGroup::associateDocumentLoaderWithCache): Revive the group using
52670         an explicitly passed pointer, without the need to save it during teardown.
52671
52672         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::~DocumentLoader):
52673         Call the general ApplicationCacheGroup::disassociateDocumentLoader() method.
52674
52675         * loader/appcache/ApplicationCacheStorage.h: Added a cacheGroupMadeObsolete() method, updated
52676         some comments.
52677
52678         * loader/appcache/ApplicationCacheStorage.cpp:
52679         (WebCore::ApplicationCacheStorage::cacheGroupForURL): Assert that iterated caches are not
52680         obsolete.
52681         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): Ditto.
52682         (WebCore::ApplicationCacheStorage::cacheGroupDestroyed): Don't do anything for obsolete
52683         groups, as they cannot be in storage.
52684         (WebCore::ApplicationCacheStorage::cacheGroupMadeObsolete): Remove the cache group from storage
52685         completely, so that a new one could replace it, if necessary.
52686         (WebCore::ApplicationCacheStorage::storeNewestCache): Added assertions.
52687         (WebCore::ApplicationCacheStorage::remove): Remove cache group if its newest cache is removed.
52688
52689         * loader/appcache/DOMApplicationCache.cpp:
52690         (WebCore::DOMApplicationCache::status): Added support for OBSOLETE state.
52691         (WebCore::DOMApplicationCache::swapCache): Disassociate document loader from cache if the
52692         application was removed server-side.
52693         (WebCore::DOMApplicationCache::callObsoleteListener): Added support for obsolete event.
52694
52695         * loader/appcache/DOMApplicationCache.h:
52696         (WebCore::DOMApplicationCache::Status):
52697         (WebCore::DOMApplicationCache::setOnobsolete):
52698         (WebCore::DOMApplicationCache::onobsolete):
52699         Added support for OBSOLETE state and obsolete event.
52700
52701         * loader/appcache/DOMApplicationCache.idl: Ditto.
52702
52703 2009-01-19  Anders Carlsson  <andersca@apple.com>
52704
52705         Reviewed by Kevin Decker.
52706
52707         Allow plug-in views to return an instance directly.
52708
52709         * bindings/js/ScriptControllerMac.mm:
52710         (WebCore::ScriptController::createScriptInstanceForWidget):
52711
52712 2009-01-19  Chris Fleizach  <cfleizach@apple.com>
52713
52714         Reviewed by David Hyatt.
52715
52716         AX: some buttons don't expose AXPress as an action
52717         https://bugs.webkit.org/show_bug.cgi?id=23399
52718
52719         Test: accessibility/button-press-action.html
52720
52721         * page/AccessibilityRenderObject.cpp:
52722         (WebCore::AccessibilityRenderObject::actionElement):
52723
52724 2009-01-19  Adam Roben  <aroben@apple.com>
52725
52726         Windows build fix
52727
52728         * WebCore.vcproj/WebCore.vcproj: Copy headers from page/animation into
52729         $WebKitOutputDir so that WebKit can access them.
52730
52731         * html/HTMLBaseFontElement.cpp: Touched this file to cause a rebuild
52732         and header copy.
52733
52734 2009-01-19  Ariya Hidayat  <ariya.hidayat@trolltech.com>
52735
52736         Reviewed by Simon Hausmann.
52737
52738         http://qt.nokia.com/developer/task-tracker/index_html?id=211228&method=entry
52739
52740         [Qt] Show focus rect when a button gets the focus for the first time.
52741         This is important at least for Windows style.
52742
52743         * platform/qt/RenderThemeQt.cpp:
52744         (WebCore::RenderThemeQt::applyTheme):
52745
52746 2009-01-19  Ariya Hidayat  <ariya.hidayat@trolltech.com>
52747
52748         [Qt] Build fix after r39971.
52749
52750         * platform/qt/LoggingQt.cpp:
52751         (WebCore::InitializeLoggingChannelsIfNecessary):
52752
52753 2009-01-18  Sam Weinig  <sam@webkit.org>
52754
52755         Reviewed by Cameron Zwarich.
52756
52757         Fix for https://bugs.webkit.org/show_bug.cgi?id=23415
52758         Remove FramePrivate
52759
52760         Minor PLT speedup.
52761
52762         * WebCore.base.exp:
52763         * WebCore.vcproj/WebCore.vcproj:
52764         * WebCore.xcodeproj/project.pbxproj:
52765         * loader/FrameLoader.cpp:
52766         * page/Frame.cpp:
52767         (WebCore::Frame::Frame):
52768         (WebCore::Frame::~Frame):
52769         (WebCore::Frame::init):
52770         (WebCore::Frame::loader):
52771         (WebCore::Frame::view):
52772         (WebCore::Frame::setView):
52773         (WebCore::Frame::script):
52774         (WebCore::Frame::document):
52775         (WebCore::Frame::setDocument):
52776         (WebCore::Frame::settings):
52777         (WebCore::Frame::selection):
52778         (WebCore::Frame::editor):
52779         (WebCore::Frame::selectionGranularity):
52780         (WebCore::Frame::setSelectionGranularity):
52781         (WebCore::Frame::dragCaretController):
52782         (WebCore::Frame::animation):
52783         (WebCore::Frame::mark):
52784         (WebCore::Frame::setMark):
52785         (WebCore::Frame::setCaretVisible):
52786         (WebCore::Frame::clearCaretRectIfNeeded):
52787         (WebCore::Frame::selectionLayoutChanged):
52788         (WebCore::Frame::caretBlinkTimerFired):
52789         (WebCore::Frame::paintCaret):
52790         (WebCore::Frame::paintDragCaret):
52791         (WebCore::Frame::zoomFactor):
52792         (WebCore::Frame::isZoomFactorTextOnly):
52793         (WebCore::Frame::shouldApplyTextZoom):
52794         (WebCore::Frame::shouldApplyPageZoom):
52795         (WebCore::Frame::setZoomFactor):
52796         (WebCore::Frame::setPrinting):
52797         (WebCore::Frame::setJSStatusBarText):
52798         (WebCore::Frame::setJSDefaultStatusBarText):
52799         (WebCore::Frame::jsStatusBarText):
52800         (WebCore::Frame::jsDefaultStatusBarText):
52801         (WebCore::Frame::setNeedsReapplyStyles):
52802         (WebCore::Frame::needsReapplyStyles):
52803         (WebCore::Frame::reapplyStyles):
52804         (WebCore::Frame::isContentEditable):
52805         (WebCore::Frame::updateSecureKeyboardEntryIfActive):
52806         (WebCore::Frame::typingStyle):
52807         (WebCore::Frame::setTypingStyle):
52808         (WebCore::Frame::clearTypingStyle):
52809         (WebCore::Frame::computeAndSetTypingStyle):
52810         (WebCore::Frame::selectionComputedStyle):
52811         (WebCore::Frame::applyEditingStyleToBodyElement):
52812         (WebCore::Frame::removeEditingStyleFromBodyElement):
52813         (WebCore::Frame::keepAlive):
52814         (WebCore::Frame::cancelAllKeepAlive):
52815         (WebCore::Frame::clearDOMWindow):
52816         (WebCore::Frame::ownerElement):
52817         (WebCore::Frame::ownerRenderer):
52818         (WebCore::Frame::isDisconnected):
52819         (WebCore::Frame::setIsDisconnected):
52820         (WebCore::Frame::excludeFromTextSearch):
52821         (WebCore::Frame::setExcludeFromTextSearch):
52822         (WebCore::Frame::selectionBounds):
52823         (WebCore::Frame::selectionTextRects):
52824         (WebCore::Frame::isFrameSet):
52825         (WebCore::Frame::currentForm):
52826         (WebCore::Frame::forceLayout):
52827         (WebCore::Frame::sendScrollEvent):
52828         (WebCore::Frame::clearTimers):
52829         (WebCore::Frame::styleForSelectionStart):
52830         (WebCore::Frame::inViewSourceMode):
52831         (WebCore::Frame::setInViewSourceMode):
52832         (WebCore::Frame::markAllMatchesForText):
52833         (WebCore::Frame::markedTextMatchesAreHighlighted):
52834         (WebCore::Frame::setMarkedTextMatchesAreHighlighted):
52835         (WebCore::Frame::tree):
52836         (WebCore::Frame::setDOMWindow):
52837         (WebCore::Frame::domWindow):
52838         (WebCore::Frame::clearFormerDOMWindow):
52839         (WebCore::Frame::page):
52840         (WebCore::Frame::eventHandler):
52841         (WebCore::Frame::pageDestroyed):
52842         (WebCore::Frame::disconnectOwnerElement):
52843         (WebCore::Frame::documentAtPoint):
52844         * page/Frame.h:
52845         * page/FramePrivate.h: Removed.
52846         * page/FrameTree.h:
52847         * page/chromium/FrameChromium.cpp:
52848         * page/mac/FrameMac.mm:
52849         (WebCore::Frame::imageFromRect):
52850         (WebCore::Frame::selectionImage):
52851         (WebCore::Frame::snapshotDragImage):
52852         (WebCore::Frame::nodeImage):
52853         (WebCore::Frame::setUserStyleSheetLocation):
52854         (WebCore::Frame::setUserStyleSheet):
52855         * page/qt/FrameQt.cpp:
52856         (WebCore::Frame::setUserStyleSheetLocation):
52857         (WebCore::Frame::setUserStyleSheet):
52858         * page/win/FrameCGWin.cpp:
52859         (WebCore::Frame::nodeImage):
52860         * page/win/FrameWin.cpp:
52861
52862 2009-01-18  Eric Carlson  <eric.carlson@apple.com>
52863
52864         Build fix for !ENABLE(VIDEO) following r40016.
52865
52866         * rendering/RenderSlider.cpp:
52867         (WebCore::RenderSlider::mouseEventIsInThumb):
52868
52869 2009-01-17  Steve Falkenburg  <sfalken@apple.com>
52870
52871         Build fix.
52872
52873 2009-01-17  David Hyatt  <hyatt@apple.com>
52874
52875         Optimize isTextNode() the same way isElementNode() was optimized in an earlier checkin.  isTextNode()
52876         on Node is now non-virtual and just checks a bit that is set at construction time by Text.
52877
52878         Reviewed by Sam Weinig
52879
52880         * dom/CharacterData.cpp:
52881         (WebCore::CharacterData::CharacterData):
52882         * dom/CharacterData.h:
52883         * dom/EventTargetNode.cpp:
52884         (WebCore::EventTargetNode::EventTargetNode):
52885         * dom/EventTargetNode.h:
52886         * dom/Node.cpp:
52887         (WebCore::Node::Node):
52888         * dom/Node.h:
52889         (WebCore::Node::isTextNode):
52890         (WebCore::Node::isAttributeNode):
52891         * dom/Text.cpp:
52892         (WebCore::Text::Text):
52893         * dom/Text.h:
52894
52895 2009-01-17  David Hyatt  <hyatt@apple.com>
52896
52897         Change how backslashAsCurrencySymbol() works.  Instead of forcing call sites to do the direct
52898         replacement themselves, the exact transformation is instead done by the encoding (indirectly through
52899         a method on Document).
52900
52901         These changes allow the fast case (where no replacement is needed) checks to be completely inlined for
52902         a slight speedup, and also allow encodings to do future alterations to displayed string content without
52903         having to patch call sites again.
52904
52905         Reviewed by Oliver Hunt
52906
52907         * WebCore.base.exp:
52908         * dom/Document.cpp:
52909         * dom/Document.h:
52910         (WebCore::Document::displayStringModifiedByEncoding):
52911         (WebCore::Document::displayBufferModifiedByEncoding):
52912         * editing/Editor.cpp:
52913         (WebCore::Editor::addToKillRing):
52914         * editing/TextIterator.cpp:
52915         (WebCore::plainTextToMallocAllocatedBuffer):
52916         (WebCore::plainText):
52917         * editing/TextIterator.h:
52918         * html/HTMLOptGroupElement.cpp:
52919         (WebCore::HTMLOptGroupElement::groupLabelText):
52920         * html/HTMLOptionElement.cpp:
52921         (WebCore::HTMLOptionElement::text):
52922         * loader/DocumentLoader.cpp:
52923         (WebCore::canonicalizedTitle):
52924         * page/Chrome.cpp:
52925         (WebCore::displayString):
52926         (WebCore::Chrome::runJavaScriptAlert):
52927         (WebCore::Chrome::runJavaScriptConfirm):
52928         (WebCore::Chrome::runJavaScriptPrompt):
52929         (WebCore::Chrome::setStatusbarText):
52930         * page/Frame.cpp:
52931         (WebCore::Frame::shouldClose):
52932         * page/Frame.h:
52933         * platform/mac/PasteboardMac.mm:
52934         (WebCore::Pasteboard::writeSelection):
52935         * platform/text/TextCodecICU.cpp:
52936         (WebCore::TextCodecICU::encode):
52937         * platform/text/TextEncoding.cpp:
52938         (WebCore::TextEncoding::TextEncoding):
52939         * platform/text/TextEncoding.h:
52940         (WebCore::TextEncoding::displayString):
52941         (WebCore::TextEncoding::displayBuffer):
52942         * rendering/HitTestResult.cpp:
52943         (WebCore::displayString):
52944         * rendering/RenderImage.cpp:
52945         (WebCore::RenderImage::paintReplaced):
52946         * rendering/RenderObject.cpp:
52947         * rendering/RenderObject.h:
52948         * rendering/RenderText.cpp:
52949         (WebCore::RenderText::RenderText):
52950         (WebCore::RenderText::setTextInternal):
52951         * rendering/RenderTextControl.cpp:
52952         (WebCore::RenderTextControl::setInnerTextValue):
52953         (WebCore::RenderTextControl::finishText):
52954
52955 2009-01-17  Eric Carlson  <eric.carlson@apple.com>
52956
52957         Reviewed by Adele Peterson
52958
52959         Complete <rdar://problem/6293969>
52960
52961         * DerivedSources.make: include mediaControlsQT.css for Mac build.
52962
52963         * WebCore.xcodeproj/project.pbxproj: add mediaControlsQT.css
52964
52965         * css/CSSPrimitiveValueMappings.h:
52966         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): add MediaTimelineContainerPart,
52967         CSSValueMediaCurrentTimeDisplay, and CSSValueMediaTimeRemainingDisplay
52968
52969         * css/CSSSelector.cpp:
52970         (WebCore::CSSSelector::extractPseudoType): include new media controller element styles
52971         * css/CSSSelector.h:
52972         (WebCore::CSSSelector::): Ditto.
52973
52974         * css/CSSStyleSelector.cpp:
52975         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):  include new media
52976         controller element styles
52977
52978         * css/CSSValueKeywords.in: add keywords for new media time display controls
52979
52980         * css/mediaControls.css: adjust css for new control elements
52981
52982         * css/mediaControlsQT.css: Added.
52983
52984         * platform/ThemeTypes.h:
52985         (WebCore::): add media time display controls to ControlPart
52986
52987         * platform/mac/WebCoreSystemInterface.h:
52988         * platform/mac/WebCoreSystemInterface.mm: pass controller style to WKSI functions
52989
52990         * rendering/MediaControlElements.cpp:
52991         (WebCore::MediaTextDisplayElement::MediaTextDisplayElement): Added
52992         (WebCore::MediaTextDisplayElement::attachToParent): Added
52993         (WebCore::MediaTextDisplayElement::update): Added
52994         (WebCore::MediaTimeDisplayElement::MediaTimeDisplayElement): Added
52995         (WebCore::MediaControlInputElement::MediaControlInputElement): Added
52996         (WebCore::MediaControlInputElement::hitTest): Added
52997         (WebCore::MediaControlTimelineElement::defaultEventHandler): Update the time display when
52998         dragging the thumb
52999         * rendering/MediaControlElements.h:
53000         (WebCore::): Add MediaTextDisplayElement
53001
53002         * rendering/RenderMedia.cpp:
53003         (WebCore::RenderMedia::createTimelineContainer): Added
53004         (WebCore::RenderMedia::createTimeline): Parent is now the timeline container
53005         (WebCore::RenderMedia::createCurrentTimeDisplay): Added
53006         (WebCore::RenderMedia::createTimeRemainingDisplay): Added
53007         (WebCore::RenderMedia::updateControls): Create new elements. Don't ever start the time update
53008         timer when the time display elements are not visible
53009         (WebCore::RenderMedia::formatTime): Handle negative times. Don't display 0 hours or minutes
53010         (WebCore::RenderMedia::updateTimeDisplay): Do nothing when the time display elements are not
53011         visible. Display time remaining as well as current time.
53012         (WebCore::RenderMedia::updateControlVisibility): Don't assume opacity should be set to 0 when
53013         visibility changes
53014         (WebCore::RenderMedia::forwardEvent): Call element hitTest() method instead of local function
53015         as we can't assume that all controls are rectangular
53016         * rendering/RenderMedia.h: Updated
53017
53018         * rendering/RenderSlider.cpp:
53019         (WebCore::RenderSlider::mouseEventIsInThumb): When slider is media timeline control, call
53020         element hitTest() method instead of assuming it is rectangular
53021         * rendering/RenderSlider.h: make mouseEventIsInThumb virtual
53022
53023         * rendering/RenderTheme.cpp:
53024         (WebCore::RenderTheme::paint): Deal with time display and timeline container
53025         * rendering/RenderTheme.h:
53026         (WebCore::RenderTheme::paintMediaTimelineContainer): Updated
53027         (WebCore::RenderTheme::paintMediaCurrentTime): Added
53028         (WebCore::RenderTheme::paintMediaTimeRemaining): Added
53029
53030         * rendering/RenderThemeMac.h: Updated
53031         * rendering/RenderThemeMac.mm:
53032         (WebCore::):
53033         (WebCore::mediaControllerTheme):
53034         (WebCore::RenderThemeMac::adjustSliderThumbSize): Call WebKitSystemInterface to get the thumb
53035         size when appropriate
53036         (WebCore::RenderThemeMac::paintMediaFullscreenButton): pass controller style to render function
53037         (WebCore::RenderThemeMac::paintMediaMuteButton): Ditto
53038         (WebCore::RenderThemeMac::paintMediaPlayButton): Ditto
53039         (WebCore::RenderThemeMac::paintMediaSeekBackButton): Ditto
53040         (WebCore::RenderThemeMac::paintMediaSeekForwardButton): Ditto
53041         (WebCore::RenderThemeMac::paintMediaSliderTrack): Ditto
53042         (WebCore::RenderThemeMac::paintMediaSliderThumb): Ditto
53043         (WebCore::RenderThemeMac::paintMediaTimelineContainer): Added
53044         (WebCore::RenderThemeMac::paintMediaCurrentTime): Added
53045         (WebCore::RenderThemeMac::paintMediaTimeRemaining): Added
53046         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet): Added
53047         (WebCore::RenderThemeMac::hitTestMediaControlPart): Added
53048         * rendering/style/RenderStyle.h: Updated
53049         (WebCore::):
53050
53051 2009-01-17  David Hyatt  <hyatt@apple.com>
53052
53053         Inline a few methods in FrameView for speed.
53054
53055         Reviewed by Oliver Hunt
53056
53057         * page/FrameView.cpp:
53058         * page/FrameView.h:
53059         (WebCore::FrameView::layoutCount):
53060         (WebCore::FrameView::needsFullRepaint):
53061
53062 2009-01-17  David Hyatt  <hyatt@apple.com>
53063
53064         Inline Document::documentElement(), since it is used by the (very hot) RenderObject::isRoot().  Split off
53065         the code that fetches and caches the document element into a separate function and inline the part that
53066         does the null check and the return of the already-cached element.
53067
53068         Reviewed by Oliver Hunt
53069
53070         * dom/Document.cpp:
53071         (WebCore::Document::cacheDocumentElement):
53072         * dom/Document.h:
53073         (WebCore::Document::documentElement):
53074
53075 2009-01-17  David Hyatt  <hyatt@apple.com>
53076
53077         Minor tweaks to RenderBox::styleChange to speed it up.
53078
53079         Reviewed by Oliver Hunt
53080
53081         * rendering/RenderBox.cpp:
53082         (WebCore::RenderBox::styleDidChange):
53083
53084 2009-01-17  David Hyatt  <hyatt@apple.com>
53085
53086         Inline FrameLoader::client().
53087
53088         Reviewed by Oliver Hunt
53089
53090         * WebCore.base.exp:
53091         * loader/FrameLoader.cpp:
53092         * loader/FrameLoader.h:
53093         (WebCore::FrameLoader::client):
53094
53095 2009-01-17  David Hyatt  <hyatt@apple.com>
53096
53097         Inline some Image methods for speed.  Fix CachedImage's addClient method to just use isNull rather
53098         than needlessly creating a rect.
53099
53100         Reviewed by Oliver Hunt
53101
53102         * loader/CachedImage.cpp:
53103         (WebCore::CachedImage::addClient):
53104         * platform/graphics/Image.cpp:
53105         * platform/graphics/Image.h:
53106         (WebCore::Image::isNull):
53107         (WebCore::Image::rect):
53108         (WebCore::Image::width):
53109         (WebCore::Image::height):
53110
53111 2009-01-17  David Hyatt  <hyatt@apple.com>
53112
53113         Avoid using the non-inlined isVariable() when adding parsed values during CSS parsing.
53114
53115         Reviewed by Oliver Hunt
53116
53117         * css/CSSParserValues.cpp:
53118         (WebCore::CSSParserValueList::addValue):
53119
53120 2009-01-17  David Hyatt  <hyatt@apple.com>
53121
53122         Inline Document::inPageCache(), since - because of animation code - it is now called every time
53123         styles change on any element and so is now super-hot.
53124
53125         Reviewed by Oliver Hunt
53126
53127         * dom/Document.cpp:
53128         * dom/Document.h:
53129         (WebCore::Document::inPageCache):
53130
53131 2009-01-16  David Hyatt  <hyatt@apple.com>
53132
53133         Take Font out of the GraphicsContext.  Fonts are moderately expensive to both compare and to assign to.
53134         The Font's presence in the GraphicsContext was making save/restore more expensive than it needed to be,
53135         and was also causing expensive comparison checks to be made before doing alterations of the Font in the
53136         GraphicsContext.
53137
53138         A font must now be passed as a parameter to all text drawing functions.
53139
53140         Reviewed by Oliver Hunt
53141
53142         * html/CanvasRenderingContext2D.cpp:
53143         (WebCore::CanvasRenderingContext2D::setFont):
53144         (WebCore::CanvasRenderingContext2D::drawTextInternal):
53145         * platform/graphics/GraphicsContext.cpp:
53146         (WebCore::GraphicsContext::drawText):
53147         (WebCore::GraphicsContext::drawBidiText):
53148         (WebCore::GraphicsContext::drawHighlightForText):
53149         * platform/graphics/GraphicsContext.h:
53150         * platform/graphics/GraphicsContextPrivate.h:
53151         * platform/graphics/qt/GraphicsContextQt.cpp:
53152         * rendering/EllipsisBox.cpp:
53153         (WebCore::EllipsisBox::paint):
53154         * rendering/InlineTextBox.cpp:
53155         (WebCore::paintTextWithShadows):
53156         (WebCore::InlineTextBox::paint):
53157         (WebCore::InlineTextBox::paintSelection):
53158         (WebCore::InlineTextBox::paintCompositionBackground):
53159         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
53160         (WebCore::InlineTextBox::paintTextMatchMarker):
53161         (WebCore::InlineTextBox::paintDocumentMarkers):
53162         * rendering/InlineTextBox.h:
53163         * rendering/RenderFileUploadControl.cpp:
53164         (WebCore::RenderFileUploadControl::paintObject):
53165         * rendering/RenderImage.cpp:
53166         (WebCore::RenderImage::paintReplaced):
53167         * rendering/RenderListBox.cpp:
53168         (WebCore::RenderListBox::paintItemForeground):
53169         * rendering/RenderListMarker.cpp:
53170         (WebCore::RenderListMarker::paint):
53171         * rendering/SVGInlineTextBox.cpp:
53172         (WebCore::SVGInlineTextBox::paintCharacters):
53173         (WebCore::SVGInlineTextBox::paintSelection):
53174         * rendering/SVGInlineTextBox.h:
53175         * svg/SVGFont.cpp:
53176         (WebCore::Font::drawTextUsingSVGFont):
53177
53178 2009-01-16  David Hyatt  <hyatt@apple.com>
53179
53180         Fix a regression from the virtualContinuation()/continuation() split where I accidentally changed
53181         two if statements.
53182
53183         Reviewed by Oliver Hunt
53184
53185         * rendering/RenderObject.cpp:
53186         (WebCore::RenderObject::absoluteRects):
53187         (WebCore::RenderObject::absoluteQuads):
53188
53189 2009-01-16  David Hyatt  <hyatt@apple.com>
53190
53191         Fix a regression from my before/after optimization.  Make sure the <q> element puts the document
53192         into a mode where it will respect before/after rules, since <q> implicitly uses such rules.
53193
53194         Make sure view source mode documents also turn on before/after rules, since they are used there also.
53195
53196         Reviewed by Oliver Hunt
53197
53198         * html/HTMLElementFactory.cpp:
53199         (WebCore::quoteConstructor):
53200         * html/HTMLViewSourceDocument.cpp:
53201         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
53202
53203 2009-01-16  Chris Fleizach  <cfleizach@apple.com>
53204
53205         Reviewed by Oliver Hunt.
53206
53207         Bug 23397: AXURL is not reported for <INPUT type="image"> elements
53208         https://bugs.webkit.org/show_bug.cgi?id=23397
53209
53210         Report an AXURL for inputs that have an image type.
53211
53212         Test: accessibility/input-image-url.html
53213
53214         * page/AccessibilityObject.h:
53215         (WebCore::AccessibilityObject::isInputImage):
53216         * page/AccessibilityRenderObject.cpp:
53217         (WebCore::AccessibilityRenderObject::isInputImage):
53218         (WebCore::AccessibilityRenderObject::url):
53219         * page/AccessibilityRenderObject.h:
53220         * page/mac/AccessibilityObjectWrapper.mm:
53221         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
53222
53223 2009-01-16  Adele Peterson  <adele@apple.com>
53224
53225         Windows build fix.
53226
53227         * loader/FrameLoader.cpp: (WebCore::FrameLoader::logCanCachePageDecision):
53228
53229 2009-01-16  Steve Falkenburg  <sfalken@apple.com>
53230
53231         <rdar://problem/6502511> Safari crashes if it's running while the desktop theme is changed.
53232
53233         This was caused by mismatched ENABLE definitions across WebCore and WebKit.
53234
53235         Several virtual methods were added to RenderTheme.h, conditionalized by ENABLE(VIDEO).
53236         In addition to adding ENABLE_VIDEO to WebKit, this change also adds ENABLE_DATABASE and ENABLE_ICONDATABASE
53237         to Windows WebCore/WebKit, and adds ENABLE_WORKERS, and several ENABLE_SVG_ flags to WebKit on Windows.
53238         Our Windows ENABLE flags now match Mac.
53239
53240         Reviewed by Adele Peterson.
53241
53242         * WebCore.vcproj/WebCore.vcproj:
53243         * WebCore.vcproj/build-generated-files.sh:
53244
53245 2009-01-16  Mark Rowe  <mrowe@apple.com>
53246
53247         40,000!
53248
53249         * ChangeLog: Point out revision 40,000.
53250
53251 2009-01-16  Eric Seidel  <eric@webkit.org>
53252
53253         Reviewed by Justin Garcia.
53254
53255         Make surroundNodeRangeWithElement call insertNodeBefore implicitly
53256         Make insertNodeBefore take PassRefPtr
53257         Clean up the use of PassRefPtr vs. raw pointers a few places in the editing code.
53258         https://bugs.webkit.org/show_bug.cgi?id=23389
53259
53260         * editing/ApplyStyleCommand.cpp:
53261         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
53262         (WebCore::ApplyStyleCommand::applyTextDecorationStyle):
53263         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
53264         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
53265         * editing/ApplyStyleCommand.h:
53266         * editing/CompositeEditCommand.cpp:
53267         (WebCore::CompositeEditCommand::insertNodeAt):
53268         * editing/IndentOutdentCommand.cpp:
53269         (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
53270         * editing/InsertLineBreakCommand.cpp:
53271         (WebCore::InsertLineBreakCommand::doApply):
53272         * editing/InsertParagraphSeparatorCommand.cpp:
53273         (WebCore::InsertParagraphSeparatorCommand::doApply):
53274         * editing/InsertTextCommand.cpp:
53275         (WebCore::InsertTextCommand::insertTab):
53276         * editing/ModifySelectionListLevel.cpp:
53277         (WebCore::IncreaseSelectionListLevelCommand::doApply):
53278         * editing/ReplaceSelectionCommand.cpp:
53279         (WebCore::ReplacementFragment::removeNodePreservingChildren):
53280         (WebCore::ReplacementFragment::insertNodeBefore):
53281         (WebCore::ReplacementFragment::removeInterchangeNodes):
53282         (WebCore::ReplaceSelectionCommand::doApply):
53283         (WebCore::ReplaceSelectionCommand::insertNodeAfterAndUpdateNodesInserted):
53284         (WebCore::ReplaceSelectionCommand::insertNodeAtAndUpdateNodesInserted):
53285         (WebCore::ReplaceSelectionCommand::insertNodeBeforeAndUpdateNodesInserted):
53286         * editing/ReplaceSelectionCommand.h:
53287
53288 2009-01-16  Chris Fleizach  <cfleizach@apple.com>
53289
53290         Reviewed by Oliver Hunt.
53291
53292         Bug 23393: TextField has AXTitle and AXTitleUIElement
53293         https://bugs.webkit.org/show_bug.cgi?id=23393
53294
53295         Test: accessibility/double-title.html
53296
53297         * page/AccessibilityRenderObject.cpp:
53298         (WebCore::AccessibilityRenderObject::title):
53299
53300 2009-01-16  Adam Treat  <adam.treat@torchmobile.com>
53301
53302         The correct build fix for all platforms.
53303
53304         * platform/graphics/Font.h:
53305
53306 2009-01-16  Adam Treat  <adam.treat@torchmobile.com>
53307
53308         Fix the Qt build.
53309
53310         * platform/graphics/Font.h:
53311
53312 2009-01-16  David Hyatt  <hyatt@apple.com>
53313
53314         Add a new flag (similar to first-line and first-letter) to Document to track whether any before/after rules
53315         are being used.  If not, don't waste time probing for those pseudo element styles.
53316
53317         Reviewed by Sam Weinig
53318
53319         * css/CSSGrammar.y:
53320         * dom/Document.cpp:
53321         (WebCore::Document::Document):
53322         * dom/Document.h:
53323         (WebCore::Document::usesBeforeAfterRules):
53324         (WebCore::Document::setUsesBeforeAfterRules):
53325         * rendering/RenderBlock.cpp:
53326         (WebCore::RenderBlock::styleDidChange):
53327         * rendering/RenderContainer.cpp:
53328         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
53329         * rendering/RenderInline.cpp:
53330         (WebCore::RenderInline::styleDidChange):
53331         (WebCore::RenderInline::addChildToFlow):
53332         (WebCore::RenderInline::splitInlines):
53333
53334 2009-01-16  Dmitry Titov  <dimich@chromium.org>
53335
53336         Reviewed by Alp Toker.
53337
53338         https://bugs.webkit.org/show_bug.cgi?id=23394
53339         Remove unnecessary calls to setDeferringTimers().
53340
53341         Use of this function was obsoleted by better handling of EINTR.
53342
53343         * platform/network/curl/ResourceHandleManager.cpp:
53344         (WebCore::ResourceHandleManager::downloadTimerCallback): removed setDeferringTimers calls.
53345
53346 2009-01-16  David Hyatt  <hyatt@apple.com>
53347
53348         Fix badness with the cursor CSS property.  For all links and form controls, resetting to a value of auto
53349         was resulting in the creation of a cursor list.  clearCursorList was creating a new list rather than just
53350         nulling out the pointer.  Since addCursor already lazily recreates the list, in the case of simple cursor types,
53351         the clear method was wastefully creating a completely unnecessary list for all of these elements.
53352
53353         Also optimized the setting of simple cursor values to not alter the RenderStyle's cursor setting if it is already
53354         set to the same value.  Since this is the common case, it prevents a fault and copy of StyleInheritedData for
53355         all links and form controls.
53356
53357         This is a PLT speedup.
53358
53359         Reviewed by Oliver Hunt
53360
53361         * css/CSSStyleSelector.cpp:
53362         (WebCore::CSSStyleSelector::applyProperty):
53363         * rendering/style/RenderStyle.cpp:
53364         (WebCore::RenderStyle::clearCursorList):
53365
53366 2009-01-16  Darin Fisher  <darin@chromium.org>
53367
53368         Reviewed by Darin Adler.
53369
53370         https://bugs.webkit.org/show_bug.cgi?id=23384
53371         PLATFORM(CHROMIUM) needs to delegate BackForwardList.cpp methods to the embedder
53372
53373         * history/BackForwardList.h:
53374         (WebCore::BackForwardListClient::~BackForwardListClient):
53375         (WebCore::BackForwardList::setClient):
53376         * history/BackForwardListChromium.cpp: Added.
53377
53378 2009-01-16  Dan Bernstein  <mitz@apple.com>
53379
53380         Reviewed by Kevin Decker and Adam Roben.
53381
53382         - fix a regression that resulted in a crash when plug-ins were
53383           disabled.
53384
53385         * rendering/RenderPartObject.cpp:
53386         (WebCore::RenderPartObject::updateWidget): Added a null check.
53387
53388 2009-01-16  David Hyatt  <hyatt@apple.com>
53389
53390         Split continuation() into virtual and non-virtual versions so that the non-virtual version can
53391         be used whereever possible.  Eventually the virtual method can be eliminated completely.
53392
53393         Reviewed by Sam Weinig and Oliver Hunt
53394
53395         * html/HTMLAnchorElement.cpp:
53396         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
53397         * page/AccessibilityRenderObject.cpp:
53398         (WebCore::AccessibilityRenderObject::anchorElement):
53399         * rendering/InlineFlowBox.cpp:
53400         (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
53401         (WebCore::InlineFlowBox::paint):
53402         * rendering/RenderBlock.cpp:
53403         (WebCore::RenderBlock::removeChild):
53404         * rendering/RenderContainer.cpp:
53405         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
53406         * rendering/RenderFlow.h:
53407         (WebCore::RenderFlow::virtualContinuation):
53408         (WebCore::RenderFlow::continuation):
53409         * rendering/RenderInline.cpp:
53410         (WebCore::RenderInline::positionForCoordinates):
53411         * rendering/RenderObject.cpp:
53412         (WebCore::RenderObject::absoluteRects):
53413         (WebCore::RenderObject::absoluteQuads):
53414         (WebCore::RenderObject::addFocusRingRects):
53415         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
53416         (WebCore::RenderObject::getAbsoluteRepaintRectWithOutline):
53417         (WebCore::RenderObject::handleDynamicFloatPositionChange):
53418         (WebCore::RenderObject::hoverAncestor):
53419         (WebCore::RenderObject::updateDragState):
53420         (WebCore::RenderObject::updateHitTestResult):
53421         (WebCore::RenderObject::getTextDecorationColors):
53422         (WebCore::RenderObject::adjustRectForOutlineAndShadow):
53423         * rendering/RenderObject.h:
53424         (WebCore::RenderObject::virtualContinuation):
53425
53426 2009-01-16  David Hyatt  <hyatt@apple.com>
53427
53428         Inline the methods of Font for obtaining metrics such as ascent, descent and line spacing.
53429
53430         Reviewed by ggaren
53431
53432         * platform/graphics/Font.cpp:
53433         * platform/graphics/Font.h:
53434         (WebCore::Font::width):
53435         (WebCore::Font::ascent):
53436         (WebCore::Font::descent):
53437         (WebCore::Font::lineSpacing):
53438         (WebCore::Font::lineGap):
53439         (WebCore::Font::xHeight):
53440         (WebCore::Font::unitsPerEm):
53441         (WebCore::Font::spaceWidth):
53442
53443 2009-01-16  Sam Weinig  <sam@webkit.org>
53444
53445         Reviewed by David Hyatt.
53446
53447         Fix for https://bugs.webkit.org/show_bug.cgi?id=23388
53448         Remove FrameViewPrivate
53449
53450         Removes an indirection and is a small speedup on PLT.
53451
53452         * page/FrameView.cpp:
53453         (WebCore::FrameView::FrameView):
53454         (WebCore::FrameView::~FrameView):
53455         (WebCore::FrameView::reset):
53456         (WebCore::FrameView::resetScrollbars):
53457         (WebCore::FrameView::init):
53458         (WebCore::FrameView::clear):
53459         (WebCore::FrameView::didFirstLayout):
53460         (WebCore::FrameView::initScrollbars):
53461         (WebCore::FrameView::updateDefaultScrollbarState):
53462         (WebCore::FrameView::setCanHaveScrollbars):
53463         (WebCore::FrameView::applyOverflowToViewport):
53464         (WebCore::FrameView::layoutCount):
53465         (WebCore::FrameView::needsFullRepaint):
53466         (WebCore::FrameView::layoutRoot):
53467         (WebCore::FrameView::layout):
53468         (WebCore::FrameView::setMediaType):
53469         (WebCore::FrameView::mediaType):
53470         (WebCore::FrameView::useSlowRepaints):
53471         (WebCore::FrameView::setUseSlowRepaints):
53472         (WebCore::FrameView::addSlowRepaintObject):
53473         (WebCore::FrameView::removeSlowRepaintObject):
53474         (WebCore::FrameView::scrollRectIntoViewRecursively):
53475         (WebCore::FrameView::setScrollPosition):
53476         (WebCore::FrameView::repaintContentRectangle):
53477         (WebCore::FrameView::beginDeferredRepaints):
53478         (WebCore::FrameView::endDeferredRepaints):
53479         (WebCore::FrameView::scheduleRelayout):
53480         (WebCore::FrameView::scheduleRelayoutOfSubtree):
53481         (WebCore::FrameView::layoutPending):
53482         (WebCore::FrameView::needsLayout):
53483         (WebCore::FrameView::unscheduleRelayout):
53484         (WebCore::FrameView::isTransparent):
53485         (WebCore::FrameView::setTransparent):
53486         (WebCore::FrameView::baseBackgroundColor):
53487         (WebCore::FrameView::setBaseBackgroundColor):
53488         (WebCore::FrameView::shouldUpdateWhileOffscreen):
53489         (WebCore::FrameView::setShouldUpdateWhileOffscreen):
53490         (WebCore::FrameView::scheduleEvent):
53491         (WebCore::FrameView::pauseScheduledEvents):
53492         (WebCore::FrameView::resumeScheduledEvents):
53493         (WebCore::FrameView::performPostLayoutTasks):
53494         (WebCore::FrameView::updateOverflowStatus):
53495         (WebCore::FrameView::dispatchScheduledEvents):
53496         (WebCore::FrameView::wasScrolledByUser):
53497         (WebCore::FrameView::setWasScrolledByUser):
53498         (WebCore::FrameView::paintContents):
53499         (WebCore::FrameView::setPaintRestriction):
53500         (WebCore::FrameView::isPainting):
53501         (WebCore::FrameView::setNodeToDraw):
53502         * page/FrameView.h:
53503         (WebCore::FrameView::setIsVisuallyNonEmpty): Inline.
53504
53505 2009-01-14  Julien Chaffraix  <jchaffraix@webkit.org>
53506
53507         Reviewed by Darin Adler.
53508
53509         Bug 23237: Some HTML constructors in HTMLElementFactory needs
53510         an HTMLFormElement argument
53511
53512         - Added 'constructorNeedsFormElement' parameter to make_names.pl to account
53513           for HTML form elements.
53514
53515         - Added the new information to HTMLTagNames.in.
53516
53517         * dom/make_names.pl:
53518         * html/HTMLTagNames.in:
53519
53520 2009-01-16  David Hyatt  <hyatt@apple.com>
53521
53522         Eliminate a bunch of save/restore pairs from commonly used GraphicsContext methods.  The most common reason
53523         for needing save/restore in the line-drawing methods was antialiasing, so this has now been made part of
53524         the cross-platform graphics state.  By being able to query for the current antialiasing setting, antialiasing
53525         can be temporarily changed and then restored back to the real value without needing to do a save/restore.
53526
53527         The line drawing code also set the fill color to the stroke color and relied on save/restore to prevent
53528         a permanent mutation of the fill color in the CGContext.   The new code just restores the fill color back
53529         to its original value without doing the much more expensive save/restore.
53530
53531         Reviewed by Oliver Hunt
53532
53533         * platform/graphics/GraphicsContext.cpp:
53534         (WebCore::GraphicsContext::setShouldAntialias):
53535         (WebCore::GraphicsContext::shouldAntialias):
53536         * platform/graphics/GraphicsContext.h:
53537         * platform/graphics/GraphicsContextPrivate.h:
53538         (WebCore::GraphicsContextState::GraphicsContextState):
53539         * platform/graphics/cairo/GraphicsContextCairo.cpp:
53540         (WebCore::GraphicsContext::setPlatformShouldAntialias):
53541         * platform/graphics/cg/GraphicsContextCG.cpp:
53542         (WebCore::GraphicsContext::drawLine):
53543         (WebCore::GraphicsContext::drawConvexPolygon):
53544         (WebCore::GraphicsContext::drawLineForText):
53545         (WebCore::GraphicsContext::setPlatformShouldAntialias):
53546         * platform/graphics/qt/GraphicsContextQt.cpp:
53547         (WebCore::GraphicsContext::setPlatformShouldAntialias):
53548         * platform/graphics/skia/GraphicsContextSkia.cpp:
53549         (WebCore::GraphicsContext::setPlatformShouldAntialias):
53550         * platform/graphics/wx/GraphicsContextWx.cpp:
53551         (WebCore::GraphicsContext::setPlatformShouldAntialias):
53552         * rendering/RenderPath.cpp:
53553         (WebCore::RenderPath::paint):
53554
53555 2009-01-16  Anders Carlsson  <andersca@apple.com>
53556
53557         Reviewed by Sam Weinig.
53558
53559         Clean up the bridge code and get rid of Field::name() and Method::name().
53560
53561         * bridge/c/c_instance.cpp:
53562         (JSC::Bindings::CInstance::invokeMethod):
53563         * bridge/c/c_runtime.cpp:
53564         * bridge/c/c_runtime.h:
53565         (JSC::Bindings::CField::identifier):
53566         (JSC::Bindings::CMethod::identifier):
53567         * bridge/jni/jni_class.cpp:
53568         (JavaClass::JavaClass):
53569         * bridge/jni/jni_instance.cpp:
53570         (JavaInstance::invokeMethod):
53571         * bridge/jni/jni_runtime.cpp:
53572         (JavaField::valueFromInstance):
53573         (JavaField::setValueToInstance):
53574         (JavaMethod::methodID):
53575         * bridge/jni/jni_runtime.h:
53576         (JSC::Bindings::JavaField::name):
53577         (JSC::Bindings::JavaMethod::name):
53578         * bridge/objc/objc_class.mm:
53579         (JSC::Bindings::ObjcClass::methodsNamed):
53580         * bridge/objc/objc_instance.mm:
53581         (ObjcInstance::invokeMethod):
53582         * bridge/objc/objc_runtime.h:
53583         (JSC::Bindings::ObjcMethod::isFallbackMethod):
53584         (JSC::Bindings::ObjcMethod::selector):
53585         * bridge/objc/objc_runtime.mm:
53586         (JSC::Bindings::ObjcMethod::ObjcMethod):
53587         (JSC::Bindings::ObjcMethod::getMethodSignature):
53588         (JSC::Bindings::ObjcField::ObjcField):
53589         (JSC::Bindings::ObjcField::valueFromInstance):
53590         (JSC::Bindings::ObjcField::setValueToInstance):
53591         (JSC::Bindings::callObjCFallbackObject):
53592         * bridge/runtime.h:
53593
53594 2009-01-16  David Hyatt  <hyatt@apple.com>
53595
53596         Optimize RenderText::styleDidChange.  Don't call the base class, which does extra meaningless work.
53597         Instead just do the one check we need to do (for a diff of layout) and mark dirty as appropriate.
53598         Clean up the base class method also to just bail early if no m_parent is set instead of repeatedly checking
53599         for the existence of m_parent in each if clause.
53600
53601         Reviewed by Darin Adler
53602
53603         * rendering/RenderObject.cpp:
53604         (WebCore::RenderObject::styleDidChange):
53605         * rendering/RenderText.cpp:
53606         (WebCore::RenderText::styleDidChange):
53607
53608 2009-01-16  Chris Fleizach  <cfleizach@apple.com>
53609
53610         Reviewed by Beth Dakin.
53611
53612         Bug 23387: AX hierarchy is incorrect when iframes are present
53613         https://bugs.webkit.org/show_bug.cgi?id=23387
53614
53615         The AX hierarchy is incorrect when iframes are present.
53616
53617         Test: accessibility/iframe-bastardization.html
53618
53619         * page/mac/AccessibilityObjectWrapper.mm:
53620         (-[AccessibilityObjectWrapper renderWidgetChildren]):
53621
53622 2009-01-16  Brady Eidson  <beidson@apple.com>
53623
53624         Reviewed by Darin Adler
53625
53626         <rdar://problem/3541409> - Split up some back/forward cache decision making and add detailed logging to
53627         better understand what the common disqualifiers are.
53628
53629         * loader/FrameLoader.cpp:
53630         (WebCore::FrameLoader::canCachePageContainingThisFrame):
53631         (WebCore::FrameLoader::canCachePage): Split off what will be per-frame decision making into canCacheSubframe.
53632         (WebCore::FrameLoader::logCanCachePageDecision): Detailed logging about why a page may not be considered for
53633           the back/forward cache.
53634         (WebCore::FrameLoader::logCanCacheFrameDecision): Same detailed logging on the per-frame basis.
53635         (WebCore::FrameLoader::commitProvisionalLoad): Move the m_client->canCachePage() call into canCachePageContainingThisFrame().
53636         * loader/FrameLoader.h:
53637
53638 2009-01-16  Chris Marrin  <cmarrin@apple.com>
53639
53640         Reviewed by David Hyatt.
53641
53642         Test: transitions/hang-with-bad-transition-list.html
53643
53644         Fixed https://bugs.webkit.org/show_bug.cgi?id=23088.
53645         This was happening because I was calling setChanged() from inside updateRendering()
53646         which causes an infinite loop. I fixed this by deferring the setChanged to the next
53647         run loop iteration. That made it not infinite loop, but it still retriggers the
53648         transition forever. The problem is that there is both an 'all' and specific transition
53649         on 'opacity'. This tickled a bug in AnimationController which causes the opacity
53650         transition to get constantly cancelled and then retriggered. The problem is that
53651         the specific opacity transition has a duration of 0. I got rid of the logic to
53652         flush out 0 duration transitions and it is no longer constantly triggered. The
53653         logic to flush them was just an optimization, and you really need to keep them
53654         around to make the logic to override earlier animations by later ones work. And there is
53655         very little overhead in this case anyway, so the optimization was not that useful.
53656
53657         I made a LayoutTest from the original testcase which tests both the infinite
53658         loop and constantly triggering animation cases.
53659
53660         * page/animation/AnimationBase.cpp:
53661         (WebCore::AnimationBase::updateStateMachine):
53662         * page/animation/AnimationController.cpp:
53663         (WebCore::AnimationControllerPrivate::updateRenderingDispatcherFired):
53664         (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch):
53665         (WebCore::AnimationController::addNodeChangeToDispatch):
53666         * page/animation/AnimationController.h:
53667         * page/animation/CompositeAnimation.cpp:
53668         (WebCore::CompositeAnimationPrivate::updateTransitions):
53669         * rendering/style/RenderStyle.cpp:
53670         (WebCore::RenderStyle::adjustAnimations):
53671         (WebCore::RenderStyle::adjustTransitions):
53672
53673 2009-01-16  Chris Fleizach  <cfleizach@apple.com>
53674
53675         Reviewed by Darin Adler.
53676
53677         Bug 23385: crash at com.apple.WebCore  WebCore::HTMLAnchorElement::isKeyboardFocusable
53678         https://bugs.webkit.org/show_bug.cgi?id=23385
53679
53680         Option-tabbing through the page mentioned in the bug causes a crash
53681
53682         Test: fast/events/tab-crash-with-image-map.html
53683
53684         * html/HTMLAnchorElement.cpp:
53685         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
53686
53687 2009-01-16  Thiago Macieira  <thiago.macieira@nokia.com>
53688
53689         Reviewed by Simon Hausmann.
53690
53691         [Qt] Fixes QString and 8-bit mix fixes.
53692
53693         Details:  Make sure we use QLatin1String where appropriate (and don't
53694         use QString when not necessary)
53695
53696         * platform/graphics/qt/ImageDecoderQt.cpp:
53697         (WebCore::ImageDecoderQt::create):
53698         * platform/graphics/qt/SimpleFontDataQt.cpp:
53699         (WebCore::SimpleFontData::platformInit):
53700         * platform/qt/FileSystemQt.cpp:
53701         (WebCore::openTemporaryFile):
53702         * platform/qt/LoggingQt.cpp:
53703         (WebCore::InitializeLoggingChannelsIfNecessary):
53704         * platform/qt/RenderThemeQt.cpp:
53705         (WebCore::RenderThemeQt::extraMediaControlsStyleSheet):
53706         * plugins/qt/PluginDataQt.cpp:
53707         (WebCore::PluginData::initPlugins):
53708
53709 2009-01-16  Ariya Hidayat  <ariya.hidayat@trolltech.com>
53710
53711         Reviewed by Adam Roben.
53712
53713         https://bugs.webkit.org/show_bug.cgi?id=22452
53714
53715         When plugins are disabled, plugin data should not be available for
53716         the page. This ensures that navigator.plugins would not see the
53717         additional MIME types supported by the plugins.
53718
53719         * page/Page.cpp:
53720         (WebCore::Page::pluginData):
53721         * loader/FrameLoader.cpp:
53722         (WebCore::FrameLoader::shouldUsePlugin):
53723         * rendering/RenderPartObject.cpp:
53724         (WebCore::RenderPartObject::updateWidget):
53725
53726 2009-01-15  Chris Marrin  <cmarrin@apple.com>
53727
53728         Reviewed by Sam Weinig.
53729
53730         Got rid of .idl file in Resources for bug https://bugs.webkit.org/show_bug.cgi?id=21421.
53731         Also fixed the test case to work on ppc.
53732
53733         * WebCore.xcodeproj/project.pbxproj:
53734
53735 2009-01-16  Ariya Hidayat  <ariya.hidayat@trolltech.com>
53736
53737         Another attempt at fixing the Qt build.
53738
53739         * bridge/qt/qt_instance.cpp:
53740         (JSC::Bindings::QtInstance::getInstance):
53741
53742 2009-01-16  David Hyatt  <hyatt@apple.com>
53743
53744         Fix for 1.85% PLT regression.  Since asking if a frame is "complete" actually aggressively decodes
53745         the frame, we add an optimization when advancing animations.  If we have received all of the animated
53746         image's data, then obviously we can go ahead and advance safely.  This prevents the first draw of an image
53747         from decoding two frames' worth of data in the case where all of the image's data has been received.
53748
53749         While this fixes the cached case, there could in fact be a regression on the uncached PLT from this change
53750         as well.  It's not immediately clear how that regression would be fixed, though, and it would likely be
53751         a much smaller percentage of that overall uncached time.
53752
53753         Reviewed by Dan Bernstein
53754
53755         * platform/graphics/BitmapImage.cpp:
53756         (WebCore::BitmapImage::startAnimation):
53757
53758 2009-01-15  Alexey Proskuryakov  <ap@webkit.org>
53759
53760         Reviewed by Anders Carlsson.
53761
53762         https://bugs.webkit.org/show_bug.cgi?id=23349
53763         Don't store obsolete caches in disk storage
53764
53765         * loader/ResourceLoader.cpp:
53766         (WebCore::ResourceLoader::ResourceLoader):
53767         (WebCore::ResourceLoader::load):
53768         (WebCore::ResourceLoader::scheduleLoadFallbackResourceFromApplicationCache):
53769         * loader/ResourceLoader.h:
53770         Don't maintain m_wasLoadedFromApplicationCache, which was never used.
53771
53772         * loader/appcache/ApplicationCache.cpp: (WebCore::ApplicationCache::addResource):
53773         Assert that only implicit and dynamic resources can be added after the cache has been fully
53774         loaded and stored to disk database.
53775
53776         * loader/appcache/ApplicationCacheGroup.cpp:
53777         (WebCore::ApplicationCacheGroup::cacheDestroyed): Don't remove non-newest caches from disk
53778         database, as this is now done whenever the cache becomes obsolete.
53779         (WebCore::ApplicationCacheGroup::setNewestCache): Remove an obsolete cache from disk storage.
53780
53781         * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
53782         A cache group that has never been saved should not be remembered in m_cacheHostSet. Changed
53783         the check to no longer rely on savedNewestCachePointer.
53784
53785 2009-01-15  Dimitri Dupuis-Latour  <dupuislatour@apple.com>
53786
53787         <rdar://problem/5870656> selectorText and cssText are clipped for :nth-child() and :nth-of-type();
53788
53789         Reviewed by Timothy Hatcher.
53790
53791         * css/CSSSelector.cpp:
53792         (WebCore::CSSSelector::selectorText):
53793
53794 2009-01-15  Justin Garcia  <justin.garcia@apple.com>
53795
53796         Reviewed by Oliver Hunt.
53797
53798         <rdar://problem/6444148> Styling a selection that ends in a line break can sometimes style what's after the break
53799
53800         If the range to style ended at [node, 0] or inside node (and if for some reason the node didn't get split),
53801         applyInlineStyle would style node.
53802
53803         * editing/ApplyStyleCommand.cpp:
53804         (WebCore::ApplyStyleCommand::applyInlineStyle): Rename pastLast to pastEndNode, since it doesn't come from
53805         Range::pastLastNode() anymore.  pastEndNode is the node after the last one that is fully selected, since
53806         the work done in the loop that follows should only be performed on fully selected nodes.
53807         * editing/InsertLineBreakCommand.cpp:
53808         (WebCore::InsertLineBreakCommand::doApply): Explicitly handle insertion into containers and after non-text nodes.
53809         Those were handled accidently before.
53810         * editing/htmlediting.cpp:
53811         (WebCore::caretMaxOffset): In various places we call this with a container and expect to be given the number
53812         of children in that container, so I changed it to match that.  RenderBR and RenderObject::caretMaxOffset() should
53813         also be eliminated since maxDeepOffset handles non-text nodes.
53814
53815 2009-01-15  Anders Carlsson  <andersca@apple.com>
53816
53817         Reviewed by Geoffrey Garen.
53818
53819         Get rid of the dreaded BindingLanguage once and for all. Also get rid of Instance::getInstance.
53820
53821         * bridge/c/c_instance.h:
53822         * bridge/jni/jni_instance.h:
53823         * bridge/objc/objc_instance.h:
53824         * bridge/qt/qt_instance.h:
53825         * bridge/runtime.cpp:
53826         * bridge/runtime.h:
53827         * bridge/runtime_object.h:
53828
53829 2009-01-15  David Hyatt  <hyatt@apple.com>
53830
53831         Eliminate an extra virtual function call that occurs for every single RenderText by moving the SVG-specific
53832         code that was placed into RenderText::styleDidChange into RenderSVGInlineText::styleDidChange.
53833
53834         Reviewed by Oliver Hunt
53835
53836         * rendering/RenderSVGInlineText.cpp:
53837         (WebCore::RenderSVGInlineText::styleDidChange):
53838         * rendering/RenderSVGInlineText.h:
53839         * rendering/RenderText.cpp:
53840         (WebCore::RenderText::styleDidChange):
53841
53842 2009-01-15  Anders Carlsson  <andersca@apple.com>
53843
53844         Another attempt at fixing the Qt build.
53845
53846         * bridge/qt/qt_instance.cpp:
53847         (JSC::Bindings::QtInstance::getOwnPropertySlot):
53848         (JSC::Bindings::QtInstance::put):
53849         * bridge/qt/qt_instance.h:
53850         * bridge/runtime.h:
53851         (JSC::Bindings::Instance::getOwnPropertySlot):
53852         (JSC::Bindings::Instance::put):
53853         * bridge/runtime_object.cpp:
53854         (JSC::RuntimeObjectImp::getOwnPropertySlot):
53855         (JSC::RuntimeObjectImp::put):
53856
53857 2009-01-15  Anders Carlsson  <andersca@apple.com>
53858
53859         Reviewed by Darin Adler.
53860
53861         Add QtInstance::getInstance and start using it.
53862
53863         * bridge/qt/qt_instance.cpp:
53864         (JSC::Bindings::QtRuntimeObjectImp::mark):
53865         (JSC::Bindings::QtRuntimeObjectImp::classInfo):
53866         (JSC::Bindings::):
53867         (JSC::Bindings::QtInstance::getInstance):
53868         * bridge/qt/qt_instance.h:
53869         * bridge/qt/qt_runtime.cpp:
53870         (JSC::Bindings::convertValueToQVariant):
53871
53872 2009-01-15  Anders Carlsson  <andersca@apple.com>
53873
53874         Reviewed by Sam Weinig.
53875
53876         Add the ability for Instance objects to override getOwnPropertySlot/put for runtime objects.
53877
53878         * bridge/qt/qt_instance.cpp:
53879         (JSC::Bindings::QtInstance::getOwnPropertySlot):
53880         (JSC::Bindings::QtInstance::put):
53881         * bridge/qt/qt_instance.h:
53882         * bridge/runtime.h:
53883         (JSC::Bindings::Instance::getOwnPropertySlot):
53884         (JSC::Bindings::Instance::put):
53885         * bridge/runtime_object.cpp:
53886         (JSC::RuntimeObjectImp::getOwnPropertySlot):
53887         (JSC::RuntimeObjectImp::put):
53888
53889 2009-01-15  Anders Carlsson  <andersca@apple.com>
53890
53891         Fix the QT build.
53892
53893         * bridge/qt/qt_instance.cpp:
53894         (JSC::Bindings::QtInstance::createRuntimeObject):
53895         * bridge/qt/qt_instance.h:
53896
53897 2009-01-15  David Hyatt  <hyatt@apple.com>
53898
53899         Fix for <rdar://problem/6500278> REGRESSION: 3.5% of samples on iBench in WebCore::Frame::setZoomFactor
53900
53901         setZoomFactor was supposed to bail if both the zoom factor and mode were the same.  The mode check was
53902         buggy and doing the wrong thing.
53903
53904         Reviewed by Darin Adler
53905
53906         * page/Frame.cpp:
53907         (WebCore::Frame::setZoomFactor):
53908
53909 2009-01-15  Anders Carlsson  <andersca@apple.com>
53910
53911         Reviewed by Geoffrey Garen.
53912
53913         Make Instance::createRuntimeObject a virtual function and override it for QtInstance.
53914
53915         * bindings/js/JSPluginElementFunctions.cpp:
53916         (WebCore::getRuntimeObject):
53917         * bridge/c/c_utility.cpp:
53918         (JSC::Bindings::convertNPVariantToValue):
53919         * bridge/jni/jni_instance.cpp:
53920         (JavaInstance::invokeMethod):
53921         * bridge/jni/jni_jsobject.mm:
53922         (JavaJSObject::convertJObjectToValue):
53923         * bridge/jni/jni_runtime.cpp:
53924         (JavaField::valueFromInstance):
53925         (JavaArray::valueAt):
53926         * bridge/objc/objc_utility.mm:
53927         (JSC::Bindings::convertObjcValueToValue):
53928         * bridge/qt/qt_instance.cpp:
53929         (JSC::Bindings::QtInstance::getRuntimeObject):
53930         (JSC::Bindings::QtInstance::createRuntimeObject):
53931         * bridge/qt/qt_instance.h:
53932         * bridge/qt/qt_runtime.cpp:
53933         (JSC::Bindings::convertQVariantToValue):
53934         (JSC::Bindings::QtConnectionObject::execute):
53935         * bridge/runtime.cpp:
53936         (JSC::Bindings::Instance::createRuntimeObject):
53937         * bridge/runtime.h:
53938
53939 2009-01-15  Dimitri Glazkov  <dglazkov@chromium.org>
53940
53941         Reviewed by Darin Adler.
53942
53943         https://bugs.webkit.org/show_bug.cgi?id=23354
53944         Fix up graphics/chromium files to account for Uniscribe style scrubbing.
53945
53946         * platform/graphics/chromium/FontChromiumWin.cpp:
53947         (WebCore::windowsCanHandleTextDrawing):
53948         (WebCore::Font::selectionRectForComplexText):
53949         (WebCore::Font::drawComplexText):
53950         (WebCore::Font::floatWidthForComplexText):
53951         (WebCore::Font::offsetForPositionForComplexText):
53952         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
53953         (WebCore::fillNonBMPGlyphs):
53954
53955 2009-01-15  David Levin  <levin@chromium.org>
53956
53957         Reviewed by Darin Adler.
53958
53959         https://bugs.webkit.org/show_bug.cgi?id=23333
53960         Adjust due to a name change that happened in a WebKit.
53961
53962         * svg/graphics/skia/SVGPaintServerPatternSkia.cpp:
53963         (WebCore::SVGPaintServerPattern::setup):
53964
53965 2009-01-15  Dimitri Glazkov  <dglazkov@chromium.org>
53966
53967         Reviewed by Eric Seidel.
53968
53969         https://bugs.webkit.org/show_bug.cgi?id=23340
53970         Add remaining bits of graphics/chromium.
53971
53972         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Added.
53973         (WebCore::scaleEmToUnits):
53974         (WebCore::SimpleFontData::platformInit):
53975         (WebCore::SimpleFontData::platformDestroy):
53976         (WebCore::SimpleFontData::smallCapsFontData):
53977         (WebCore::SimpleFontData::containsCharacters):
53978         (WebCore::SimpleFontData::determinePitch):
53979         (WebCore::SimpleFontData::platformWidthForGlyph):
53980         * platform/graphics/chromium/SimpleFontDataLinux.cpp: Added.
53981         (WebCore::SimpleFontData::platformInit):
53982         (WebCore::SimpleFontData::platformDestroy):
53983         (WebCore::SimpleFontData::smallCapsFontData):
53984         (WebCore::SimpleFontData::containsCharacters):
53985         (WebCore::SimpleFontData::determinePitch):
53986         (WebCore::SimpleFontData::platformWidthForGlyph):
53987         * platform/graphics/chromium/ThemeHelperChromiumWin.cpp: Added.
53988         (WebCore::ThemeHelperWin::ThemeHelperWin):
53989         (WebCore::ThemeHelperWin::~ThemeHelperWin):
53990         * platform/graphics/chromium/ThemeHelperChromiumWin.h: Added.
53991         (WebCore::ThemeHelperWin::):
53992         (WebCore::ThemeHelperWin::context):
53993         (WebCore::ThemeHelperWin::rect):
53994         * platform/graphics/chromium/UniscribeHelper.cpp: Added.
53995         (WebCore::treatAsSpace):
53996         (WebCore::containsMissingGlyphs):
53997         (WebCore::setLogFontAndStyle):
53998         (WebCore::UniscribeHelper::UniscribeHelper):
53999         (WebCore::UniscribeHelper::~UniscribeHelper):
54000         (WebCore::UniscribeHelper::initWithOptionalLengthProtection):
54001         (WebCore::UniscribeHelper::width):
54002         (WebCore::UniscribeHelper::justify):
54003         (WebCore::UniscribeHelper::characterToX):
54004         (WebCore::UniscribeHelper::xToCharacter):
54005         (WebCore::UniscribeHelper::draw):
54006         (WebCore::UniscribeHelper::firstGlyphForCharacter):
54007         (WebCore::UniscribeHelper::fillRuns):
54008         (WebCore::UniscribeHelper::shape):
54009         (WebCore::UniscribeHelper::fillShapes):
54010         (WebCore::UniscribeHelper::fillScreenOrder):
54011         (WebCore::UniscribeHelper::adjustSpaceAdvances):
54012         (WebCore::UniscribeHelper::applySpacing):
54013         (WebCore::UniscribeHelper::advanceForItem):
54014         * platform/graphics/chromium/UniscribeHelper.h: Added.
54015         (WebCore::UniscribeHelper::directionalOverride):
54016         (WebCore::UniscribeHelper::setDirectionalOverride):
54017         (WebCore::UniscribeHelper::inhibitLigate):
54018         (WebCore::UniscribeHelper::setInhibitLigate):
54019         (WebCore::UniscribeHelper::letterSpacing):
54020         (WebCore::UniscribeHelper::setLetterSpacing):
54021         (WebCore::UniscribeHelper::spaceWidth):
54022         (WebCore::UniscribeHelper::setSpaceWidth):
54023         (WebCore::UniscribeHelper::wordSpacing):
54024         (WebCore::UniscribeHelper::setWordSpacing):
54025         (WebCore::UniscribeHelper::setAscent):
54026         (WebCore::UniscribeHelper::init):
54027         (WebCore::UniscribeHelper::tryToPreloadFont):
54028         (WebCore::UniscribeHelper::Shaping::Shaping):
54029         (WebCore::UniscribeHelper::Shaping::glyphLength):
54030         (WebCore::UniscribeHelper::Shaping::charLength):
54031         (WebCore::UniscribeHelper::Shaping::effectiveAdvances):
54032         (WebCore::UniscribeHelper::nextWinFontData):
54033         (WebCore::UniscribeHelper::resetFontIndex):
54034         * platform/graphics/chromium/UniscribeHelperTextRun.cpp: Added.
54035         (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun):
54036         (WebCore::UniscribeHelperTextRun::tryToPreloadFont):
54037         (WebCore::UniscribeHelperTextRun::nextWinFontData):
54038         (WebCore::UniscribeHelperTextRun::resetFontIndex):
54039         * platform/graphics/chromium/UniscribeHelperTextRun.h: Added.
54040
54041 2009-01-15  Chris Marrin  <cmarrin@apple.com>
54042
54043         Reviewed by Dan Bernstein.
54044
54045         Fixed Windows project file after https://bugs.webkit.org/show_bug.cgi?id=21421
54046
54047         * WebCore.vcproj/WebCore.vcproj:
54048
54049 2009-01-15  Aaron Boodman  <aa@chromium.org>
54050
54051         Reviewed by Adam Roben.
54052
54053         https://bugs.webkit.org/show_bug.cgi?id=15279
54054         Right clicking over text (or multiple spaces) auto selects the word
54055         (or multiple spaces) under it, which is not a desirable effect for some
54056         platforms.
54057
54058         * page/EventHandler.cpp:
54059         (WebCore::EventHandler::sendContextMenuEvent):
54060         Don't select words on right-click on Chromium.
54061
54062 2009-01-15  Darin Fisher  <darin@chromium.org>
54063
54064         Reviewed by Eric Seidel.
54065
54066         https://bugs.webkit.org/show_bug.cgi?id=23345
54067         SharedBuffer.h should include wtf/OwnPtr.h
54068
54069         * platform/SharedBuffer.h:
54070
54071 2009-01-14  David Kilzer  <ddkilzer@apple.com>
54072
54073         Bug 23338: Make "Streamline Inspector Source" build script check for a directory before using it
54074
54075         <https://bugs.webkit.org/show_bug.cgi?id=23338>
54076
54077         Reviewed by Timothy Hatcher.
54078
54079         * WebCore.xcodeproj/project.pbxproj: Check to see if
54080         "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/inspector"
54081         exists before trying to change directories into it and then
54082         deleting, modifying and adding files to it.
54083
54084 2009-01-14  miggilin  <mr.diggilin@gmail.com>
54085
54086         Reviewed by Kevin Ollivier.
54087
54088         Fixing wx compilation for wx 2.9/trunk.
54089
54090         * platform/graphics/wx/FontPlatformData.h:
54091         (WebCore::FontPlatformData::operator==):
54092         (WebCore::FontPlatformData::computeHash):
54093         * platform/graphics/wx/GraphicsContextWx.cpp:
54094         (WebCore::GraphicsContext::clip):
54095         (WebCore::GraphicsContext::setCompositeOperation):
54096         * platform/graphics/wx/ImageSourceWx.cpp:
54097         (WebCore::ImageSource::createFrameAtIndex):
54098         * platform/graphics/wx/PathWx.cpp:
54099         (WebCore::Path::contains):
54100         * platform/wx/RenderThemeWx.cpp:
54101         (WebCore::RenderThemeWx::paintButton):
54102         (WebCore::RenderThemeWx::paintTextField):
54103         (WebCore::RenderThemeWx::paintMenuList):
54104         * platform/wx/wxcode/gtk/non-kerned-drawing.cpp:
54105
54106 2009-01-14  Kevin Ollivier  <kevino@theolliviers.com>
54107
54108         wx build fix. Adding WebKitCSSMatrix.
54109
54110         * WebCoreSources.bkl:
54111
54112 2009-01-14  Adam Treat  <adam.treat@torchmobile.com>
54113
54114         Prospective build fix for Qt following r39922.
54115
54116         * WebCore.pro:
54117
54118 2009-01-14  Darin Adler  <darin@apple.com>
54119
54120         Fix debug build.
54121
54122         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
54123         (WebCore::JSWebKitCSSMatrixConstructor::JSWebKitCSSMatrixConstructor):
54124         Use ASSERT_UNUSED.
54125
54126 2009-01-14  Adele Peterson  <adele@apple.com>
54127
54128         Reviewed by Darin Adler.
54129
54130         Fix for https://bugs.webkit.org/show_bug.cgi?id=23335
54131         <rdar://problem/6247650> Update <input type="search"> for RenderThemeWin
54132
54133         No new tests added.  In the future, we need to update DumpRenderTree to be able to run with different RenderThemes and
54134         we'll need a separate set of results for different themes.
54135
54136         * css/themeWin.css: Renable search fields.  Added new rules for sub-element placement.
54137
54138         * rendering/RenderTextControlSingleLine.cpp:
54139         (WebCore::RenderTextControlSingleLine::textBlockWidth): Consider margin set on the sub-elements when computing the
54140         desired width for the text block.
54141
54142         * rendering/RenderThemeWin.cpp:
54143         (WebCore::RenderThemeWin::supportsFocus): Treat SearchFieldPart the same as TextFieldPart.
54144         (WebCore::RenderThemeWin::determineState): ditto.
54145         (WebCore::RenderThemeWin::getClassicThemeData): ditto.
54146         (WebCore::RenderThemeWin::getThemeData): ditto.
54147         (WebCore::RenderThemeWin::paintSearchFieldCancelButton): Draw a scaled, vertically centered, version of the new artwork.
54148         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration): ditto.
54149         (WebCore::RenderThemeWin::paintSearchFieldResultsButton): ditto.
54150         (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle): Set the scaled width and height.
54151         (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationStyle): ditto.
54152         (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle): ditto.
54153
54154 2009-01-14  Alp Toker  <alp@nuanti.com>
54155
54156         GTK+ build fix following r39922.
54157         Add WebKitCSSMatrix to the build system.
54158
54159         * GNUmakefile.am:
54160
54161 2009-01-14  Chris Marrin  <cmarrin@apple.com>
54162
54163         Reviewed by Sam Weinig.
54164
54165         Implemented 2D WebKitCSSMatrix
54166         https://bugs.webkit.org/show_bug.cgi?id=21421
54167
54168         Test: transforms/2d/cssmatrix-interface.xhtml
54169
54170         * DerivedSources.make:
54171         * WebCore.xcodeproj/project.pbxproj:
54172         * bindings/js/JSDOMWindowBase.cpp:
54173         (jsDOMWindowBaseWebKitCSSMatrix):
54174         (setJSDOMWindowBaseWebKitCSSMatrix):
54175         * bindings/js/JSWebKitCSSMatrixConstructor.cpp: Added.
54176         (WebCore::):
54177         (WebCore::JSWebKitCSSMatrixConstructor::JSWebKitCSSMatrixConstructor):
54178         (WebCore::constructWebKitCSSMatrix):
54179         (WebCore::JSWebKitCSSMatrixConstructor::getConstructData):
54180         * bindings/js/JSWebKitCSSMatrixConstructor.h: Added.
54181         (WebCore::JSWebKitCSSMatrixConstructor::classInfo):
54182         * bindings/objc/DOMInternal.h:
54183         * css/WebKitCSSMatrix.cpp: Added.
54184         (WebCore::WebKitCSSMatrix::WebKitCSSMatrix):
54185         (WebCore::WebKitCSSMatrix::~WebKitCSSMatrix):
54186         (WebCore::WebKitCSSMatrix::setMatrixValue):
54187         (WebCore::WebKitCSSMatrix::multiply):
54188         (WebCore::WebKitCSSMatrix::inverse):
54189         (WebCore::WebKitCSSMatrix::translate):
54190         (WebCore::WebKitCSSMatrix::scale):
54191         (WebCore::WebKitCSSMatrix::rotate):
54192         (WebCore::WebKitCSSMatrix::toString):
54193         * css/WebKitCSSMatrix.h: Added.
54194         (WebCore::WebKitCSSMatrix::create):
54195         (WebCore::WebKitCSSMatrix::a):
54196         (WebCore::WebKitCSSMatrix::b):
54197         (WebCore::WebKitCSSMatrix::c):
54198         (WebCore::WebKitCSSMatrix::d):
54199         (WebCore::WebKitCSSMatrix::e):
54200         (WebCore::WebKitCSSMatrix::f):
54201         (WebCore::WebKitCSSMatrix::setA):
54202         (WebCore::WebKitCSSMatrix::setB):
54203         (WebCore::WebKitCSSMatrix::setC):
54204         (WebCore::WebKitCSSMatrix::setD):
54205         (WebCore::WebKitCSSMatrix::setE):
54206         (WebCore::WebKitCSSMatrix::setF):
54207         (WebCore::WebKitCSSMatrix::transform):
54208         * css/WebKitCSSMatrix.idl: Added.
54209
54210 2009-01-14  Michael Moss  <mmoss@chromium.org>
54211
54212         Reviewed by Eric Seidel.
54213
54214         Workaround a skia limitation on repeated patterns, and remove extra
54215         transformations applied to pattern.
54216         https://bugs.webkit.org/show_bug.cgi?id=23332
54217
54218         Fixes:
54219         LayoutTests/fast/canvas/patternfill-repeat.html
54220         LayoutTests/svg/W3C-SVG-1.1/pservers-grad-06-b.svg
54221
54222         * platform/graphics/skia/PatternSkia.cpp:
54223         (WebCore::Pattern::createPlatformPattern):
54224
54225 2009-01-14  Mark Rowe  <mrowe@apple.com>
54226
54227         Fix https://bugs.webkit.org/show_bug.cgi?id=23334
54228         Bug 23334: Compile failure in XMLTokenizerLibxml2.cpp
54229
54230         Include wtf/UnusedParam.h to get UNUSED_PARAM.
54231
54232         * dom/XMLTokenizerLibxml2.cpp:
54233         (WebCore::hackAroundLibXMLEntityBug):
54234
54235 2009-01-14  David Levin  <levin@chromium.org>
54236
54237         Reviewed by Darin Adler.
54238
54239         https://bugs.webkit.org/show_bug.cgi?id=23333
54240         Platform code fixes. These compensate for changes in platform
54241         callbacks from WebKit and minor API tweaks.
54242
54243         I enumerated a few below.
54244
54245         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
54246         fontExists has been gone since r34794.
54247
54248         * platform/graphics/skia/ImageSkia.cpp:
54249         (WebCore::paintSkBitmap):
54250
54251         (WebCore::FrameData::clear):
54252         r39751 changes this api to take and return a bool.
54253
54254         (WebCore::Image::drawPattern):
54255         * platform/graphics/skia/PathSkia.cpp:
54256         (WebCore::Path::apply):
54257         (WebCore::boundingBoxForCurrentStroke):
54258         (WebCore::Path::strokeContains):
54259         * svg/graphics/skia/RenderPathSkia.cpp: Removed due to r39805.
54260
54261 2009-01-14  Jeremy Moskovich  <jeremy@chromium.org>
54262
54263         Reviewed by Eric Seidel.
54264
54265         <https://bugs.webkit.org/show_bug.cgi?id=16829>
54266         Implement NPN_SetException()
54267
54268         This mirrors the implementation in the obj-c bindings.
54269
54270         Test: plugins/netscape-throw-exception.html
54271
54272         * bridge/NP_jsobject.cpp:
54273         (_NPN_SetException):
54274         * bridge/c/c_instance.cpp:
54275         (JSC::Bindings::getExceptionString):
54276         (JSC::Bindings::CInstance::setGlobalException):
54277         (JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
54278         (JSC::Bindings::CInstance::invokeMethod):
54279         (JSC::Bindings::CInstance::invokeDefaultMethod):
54280         (JSC::Bindings::CInstance::invokeConstruct):
54281         (JSC::Bindings::CInstance::getPropertyNames):
54282         * bridge/c/c_instance.h:
54283
54284 2009-01-14  Pierre-Olivier Latour  <pol@apple.com>
54285
54286         Fixed build warning when LIBXML_VERSION >= 20627.
54287
54288         * dom/XMLTokenizerLibxml2.cpp:
54289         (WebCore::hackAroundLibXMLEntityBug):
54290
54291 2009-01-14  Alexey Proskuryakov  <ap@webkit.org>
54292
54293         Reviewed by Anders Carlsson.
54294
54295         https://bugs.webkit.org/show_bug.cgi?id=23326
54296         Resources are never deleted from application cache disk database
54297
54298         * loader/appcache/ApplicationCacheStorage.cpp:
54299         (WebCore::ApplicationCacheStorage::openDatabase): Create a trigger that deletes resources when
54300         a cache is deleted. Note that this change doesn't require bumping schema version. We should
54301         consider switching to foreign keys and cascade delete instead of triggers in the future.
54302         (WebCore::ApplicationCacheStorage::remove): Added a comment explaining why it's sufficient
54303         to only remove the cache itself.
54304         (WebCore::ApplicationCacheStorage::empty): Don't delete from CacheResources, now that this
54305         is done automatically when a cache is deleted.
54306
54307 2009-01-14  David Kilzer  <ddkilzer@apple.com>
54308
54309         Bug 22795: favicons should be saved to webarchives
54310
54311         <https://bugs.webkit.org/show_bug.cgi?id=22795>
54312
54313         Reviewed by Darin Adler.
54314
54315         Test: webarchive/test-link-rel-icon.html
54316
54317         * html/HTMLLinkElement.cpp:
54318         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): Do not add
54319         favicon URLs to the list since no ArchiveResource or CachedResource
54320         is ever created for them.
54321         * loader/archive/cf/LegacyWebArchive.cpp:
54322         (WebCore::LegacyWebArchive::create): Handle favicons as a special
54323         case for all main resources.
54324         * loader/icon/IconDatabase.cpp:
54325         (WebCore::IconDatabase::close): Actually close the SQLite database
54326         so that isOpen() returns false when called.  Added an ASSERT() for
54327         good measure.
54328
54329 2009-01-14  Dimitri Glazkov  <dglazkov@chromium.org>
54330
54331         Reviewed by Eric Seidel.
54332
54333         https://bugs.webkit.org/show_bug.cgi?id=23321
54334         Upstream more bits of graphics/chromium.
54335
54336         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp: Added.
54337         (WebCore::FontPlatformData::FontPlatformData):
54338         (WebCore::FontPlatformData::operator=):
54339         (WebCore::FontPlatformData::~FontPlatformData):
54340         (WebCore::FontPlatformData::RefCountedHFONT::~RefCountedHFONT):
54341         (WebCore::FontPlatformData::hashTableDeletedFontValue):
54342         (WebCore::FontPlatformData::scriptFontProperties):
54343         * platform/graphics/chromium/FontPlatformDataChromiumWin.h: Added.
54344         (WebCore::FontPlatformData::isHashTableDeletedValue):
54345         (WebCore::FontPlatformData::hfont):
54346         (WebCore::FontPlatformData::size):
54347         (WebCore::FontPlatformData::hash):
54348         (WebCore::FontPlatformData::operator==):
54349         (WebCore::FontPlatformData::scriptCache):
54350         (WebCore::FontPlatformData::RefCountedHFONT::create):
54351         (WebCore::FontPlatformData::RefCountedHFONT::hfont):
54352         (WebCore::FontPlatformData::RefCountedHFONT::hash):
54353         (WebCore::FontPlatformData::RefCountedHFONT::operator==):
54354         (WebCore::FontPlatformData::RefCountedHFONT::RefCountedHFONT):
54355         * platform/graphics/chromium/FontPlatformDataLinux.cpp: Added.
54356         (WebCore::FontPlatformData::FontPlatformData):
54357         (WebCore::FontPlatformData::~FontPlatformData):
54358         (WebCore::FontPlatformData::operator=):
54359         (WebCore::FontPlatformData::setupPaint):
54360         (WebCore::FontPlatformData::operator==):
54361         (WebCore::FontPlatformData::hash):
54362         (WebCore::FontPlatformData::isFixedPitch):
54363         * platform/graphics/chromium/FontPlatformDataLinux.h: Added.
54364         (WebCore::FontPlatformData::FontPlatformData):
54365         (WebCore::FontPlatformData::size):
54366         (WebCore::FontPlatformData::isHashTableDeletedValue):
54367         (WebCore::FontPlatformData::hashTableDeletedFontValue):
54368         * platform/graphics/chromium/FontUtilsChromiumWin.cpp: Added.
54369         (WebCore::):
54370         (WebCore::FontMap::getAscent):
54371         (WebCore::FontMap::FontData::FontData):
54372         (WebCore::getFontFamilyForScript):
54373         (WebCore::getFallbackFamily):
54374         (WebCore::getDerivedFontData):
54375         (WebCore::getStyleFromLogfont):
54376         * platform/graphics/chromium/FontUtilsChromiumWin.h: Added.
54377         (WebCore::):
54378
54379 2009-01-14  Dimitri Glazkov  <dglazkov@chromium.org>
54380
54381         Reviewed by Eric Seidel.
54382
54383         https://bugs.webkit.org/show_bug.cgi?id=23325
54384         Upstream even more graphics/chromium bits.
54385
54386         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp: Added.
54387         (WebCore::fillEmptyGlyphs):
54388         (WebCore::initSpaceGlyph):
54389         (WebCore::fillBMPGlyphs):
54390         (WebCore::fillNonBMPGlyphs):
54391         (WebCore::GlyphPage::fill):
54392         * platform/graphics/chromium/GlyphPageTreeNodeLinux.cpp: Added.
54393         (WebCore::GlyphPage::fill):
54394         * platform/graphics/chromium/IconChromiumLinux.cpp: Added.
54395         (WebCore::Icon::Icon):
54396         (WebCore::Icon::~Icon):
54397         (WebCore::Icon::createIconForFile):
54398         (WebCore::Icon::createIconForFiles):
54399         (WebCore::Icon::paint):
54400         * platform/graphics/chromium/IconChromiumMac.cpp: Added.
54401         (WebCore::Icon::createIconForFile):
54402         (WebCore::Icon::createIconForFiles):
54403         (WebCore::Icon::~Icon):
54404         (WebCore::Icon::paint):
54405         * platform/graphics/chromium/IconChromiumWin.cpp: Added.
54406         (WebCore::Icon::Icon):
54407         (WebCore::Icon::~Icon):
54408         (WebCore::Icon::createIconForFile):
54409         (WebCore::Icon::createIconForFiles):
54410         (WebCore::Icon::paint):
54411         * platform/graphics/chromium/ImageBufferData.h: Added.
54412         * platform/graphics/chromium/ImageChromiumMac.mm: Added.
54413         (WebCore::Image::loadPlatformResource):
54414         (WebCore::BitmapImage::initPlatformData):
54415         (WebCore::BitmapImage::invalidatePlatformData):
54416         * platform/graphics/chromium/MediaPlayerPrivateChromium.h: Added.
54417         * platform/graphics/chromium/PlatformIcon.h: Added.
54418
54419 2009-01-14  Darin Fisher  <darin@chromium.org>
54420
54421         Reviewed by Eric Seidel.
54422
54423         https://bugs.webkit.org/show_bug.cgi?id=23328
54424         Upstream remaining files from platform/chromium/
54425
54426         * platform/chromium/CursorChromium.cpp:
54427         (WebCore::pointerCursor):
54428         (WebCore::crossCursor):
54429         (WebCore::handCursor):
54430         (WebCore::iBeamCursor):
54431         (WebCore::waitCursor):
54432         (WebCore::helpCursor):
54433         (WebCore::eastResizeCursor):
54434         (WebCore::northResizeCursor):
54435         (WebCore::northEastResizeCursor):
54436         (WebCore::northWestResizeCursor):
54437         (WebCore::southResizeCursor):
54438         (WebCore::southEastResizeCursor):
54439         (WebCore::southWestResizeCursor):
54440         (WebCore::westResizeCursor):
54441         (WebCore::northSouthResizeCursor):
54442         (WebCore::eastWestResizeCursor):
54443         (WebCore::northEastSouthWestResizeCursor):
54444         (WebCore::northWestSouthEastResizeCursor):
54445         (WebCore::columnResizeCursor):
54446         (WebCore::rowResizeCursor):
54447         (WebCore::middlePanningCursor):
54448         (WebCore::eastPanningCursor):
54449         (WebCore::northPanningCursor):
54450         (WebCore::northEastPanningCursor):
54451         (WebCore::northWestPanningCursor):
54452         (WebCore::southPanningCursor):
54453         (WebCore::southEastPanningCursor):
54454         (WebCore::southWestPanningCursor):
54455         (WebCore::westPanningCursor):
54456         (WebCore::moveCursor):
54457         (WebCore::verticalTextCursor):
54458         (WebCore::cellCursor):
54459         (WebCore::contextMenuCursor):
54460         (WebCore::aliasCursor):
54461         (WebCore::progressCursor):
54462         (WebCore::noDropCursor):
54463         (WebCore::copyCursor):
54464         (WebCore::noneCursor):
54465         (WebCore::notAllowedCursor):
54466         (WebCore::zoomInCursor):
54467         (WebCore::zoomOutCursor):
54468         * platform/chromium/DragDataRef.h: Added.
54469         * platform/chromium/DragImageChromium.cpp: Added.
54470         (WebCore::dragImageSize):
54471         (WebCore::deleteDragImage):
54472         (WebCore::scaleDragImage):
54473         (WebCore::dissolveDragImageToFraction):
54474         (WebCore::createDragImageFromImage):
54475         (WebCore::createDragImageIconForCachedImage):
54476         * platform/chromium/DragImageRef.h:
54477         * platform/chromium/KeyCodeConversion.h: Added.
54478         * platform/chromium/KeyCodeConversionGtk.cpp: Added.
54479         (WebCore::windowsKeyCodeForKeyEvent):
54480         * platform/chromium/KeyboardCodes.h: Added.
54481         * platform/chromium/KeyboardCodesPosix.h: Added.
54482         (WebCore::):
54483         * platform/chromium/KeyboardCodesWin.h: Added.
54484         (WebCore::):
54485         * platform/chromium/Language.cpp: Added.
54486         (WebCore::defaultLanguage):
54487         * platform/chromium/LinkHashChromium.cpp: Added.
54488         (WebCore::visitedLinkHash):
54489         * platform/chromium/MimeTypeRegistryChromium.cpp: Added.
54490         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
54491         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
54492         (WebCore::MIMETypeRegistry::getMIMETypeForPath):
54493         (WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
54494         (WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType):
54495         (WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
54496         (WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
54497         (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
54498         (WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
54499         (WebCore::MIMETypeRegistry::isJavaAppletMIMEType):
54500         (WebCore::dummyHashSet):
54501         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
54502         (WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
54503         (WebCore::MIMETypeRegistry::getSupportedImageMIMETypesForEncoding):
54504         (WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes):
54505         (WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
54506         * platform/chromium/PasteboardChromium.cpp: Added.
54507         (WebCore::Pasteboard::generalPasteboard):
54508         (WebCore::Pasteboard::Pasteboard):
54509         (WebCore::Pasteboard::clear):
54510         (WebCore::Pasteboard::writeSelection):
54511         (WebCore::Pasteboard::writeURL):
54512         (WebCore::Pasteboard::writeImage):
54513         (WebCore::Pasteboard::canSmartReplace):
54514         (WebCore::Pasteboard::plainText):
54515         (WebCore::Pasteboard::documentFragment):
54516         * platform/chromium/PasteboardPrivate.h:
54517         * platform/chromium/PlatformCursor.h: Added.
54518         (WebCore::PlatformCursor::):
54519         (WebCore::PlatformCursor::PlatformCursor):
54520         (WebCore::PlatformCursor::customImage):
54521         (WebCore::PlatformCursor::hotSpot):
54522         (WebCore::PlatformCursor::type):
54523         * platform/chromium/PlatformKeyboardEventChromium.cpp: Added.
54524         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
54525         (WebCore::PlatformKeyboardEvent::currentCapsLockState):
54526         * platform/chromium/PlatformScreenChromium.cpp: Added.
54527         (WebCore::screenDepth):
54528         (WebCore::screenDepthPerComponent):
54529         (WebCore::screenIsMonochrome):
54530         (WebCore::screenRect):
54531         (WebCore::screenAvailableRect):
54532         * platform/chromium/PlatformWidget.h:
54533         * platform/chromium/PopupMenuChromium.cpp: Added.
54534         (WebCore::PopupListBox::selectedIndex):
54535         (WebCore::PopupListBox::numItems):
54536         (WebCore::PopupListBox::setBaseWidth):
54537         (WebCore::PopupListBox::setTextOnIndexChange):
54538         (WebCore::PopupListBox::setAcceptOnAbandon):
54539         (WebCore::PopupListBox::):
54540         (WebCore::PopupListBox::ListItem::ListItem):
54541         (WebCore::PopupListBox::PopupListBox):
54542         (WebCore::PopupListBox::~PopupListBox):
54543         (WebCore::PopupListBox::disconnectClient):
54544         (WebCore::PopupListBox::scrollToRevealSelection):
54545         (WebCore::constructRelativeMouseEvent):
54546         (WebCore::constructRelativeWheelEvent):
54547         (WebCore::PopupContainer::create):
54548         (WebCore::PopupContainer::PopupContainer):
54549         (WebCore::PopupContainer::~PopupContainer):
54550         (WebCore::PopupContainer::showPopup):
54551         (WebCore::PopupContainer::hidePopup):
54552         (WebCore::PopupContainer::layout):
54553         (WebCore::PopupContainer::handleMouseDownEvent):
54554         (WebCore::PopupContainer::handleMouseMoveEvent):
54555         (WebCore::PopupContainer::handleMouseReleaseEvent):
54556         (WebCore::PopupContainer::handleWheelEvent):
54557         (WebCore::PopupContainer::handleKeyEvent):
54558         (WebCore::PopupContainer::hide):
54559         (WebCore::PopupContainer::paint):
54560         (WebCore::PopupContainer::paintBorder):
54561         (WebCore::PopupContainer::isInterestedInEventForKey):
54562         (WebCore::PopupContainer::show):
54563         (WebCore::PopupContainer::setTextOnIndexChange):
54564         (WebCore::PopupContainer::setAcceptOnAbandon):
54565         (WebCore::PopupContainer::refresh):
54566         (WebCore::PopupListBox::handleMouseDownEvent):
54567         (WebCore::PopupListBox::handleMouseMoveEvent):
54568         (WebCore::PopupListBox::handleMouseReleaseEvent):
54569         (WebCore::PopupListBox::handleWheelEvent):
54570         (WebCore::PopupListBox::isInterestedInEventForKey):
54571         (WebCore::PopupListBox::handleKeyEvent):
54572         (WebCore::PopupListBox::hostWindow):
54573         (WebCore::PopupListBox::invalidateRect):
54574         (WebCore::stripLeadingWhiteSpace):
54575         (WebCore::PopupListBox::typeAheadFind):
54576         (WebCore::PopupListBox::paint):
54577         (WebCore::PopupListBox::paintRow):
54578         (WebCore::PopupListBox::getRowFont):
54579         (WebCore::PopupListBox::abandon):
54580         (WebCore::PopupListBox::pointToRowIndex):
54581         (WebCore::PopupListBox::acceptIndex):
54582         (WebCore::PopupListBox::selectIndex):
54583         (WebCore::PopupListBox::setOriginalIndex):
54584         (WebCore::PopupListBox::getRowHeight):
54585         (WebCore::PopupListBox::getRowBounds):
54586         (WebCore::PopupListBox::invalidateRow):
54587         (WebCore::PopupListBox::scrollToRevealRow):
54588         (WebCore::PopupListBox::isSelectableItem):
54589         (WebCore::PopupListBox::adjustSelectedIndex):
54590         (WebCore::PopupListBox::updateFromElement):
54591         (WebCore::PopupListBox::layout):
54592         (WebCore::PopupListBox::clear):
54593         (WebCore::PopupListBox::isPointInBounds):
54594         (WebCore::PopupMenu::PopupMenu):
54595         (WebCore::PopupMenu::~PopupMenu):
54596         (WebCore::PopupMenu::show):
54597         (WebCore::PopupMenu::hide):
54598         (WebCore::PopupMenu::updateFromElement):
54599         (WebCore::PopupMenu::itemWritingDirectionIsNatural):
54600         * platform/chromium/PopupMenuChromium.h: Added.
54601         (WebCore::PopupContainer::listBox):
54602         * platform/chromium/PopupMenuPrivate.h: Added.
54603         * platform/chromium/SSLKeyGeneratorChromium.cpp: Added.
54604         (WebCore::supportedKeySizes):
54605         * platform/chromium/ScrollbarThemeChromium.cpp: Added.
54606         (WebCore::ScrollbarTheme::nativeTheme):
54607         (WebCore::ScrollbarThemeChromium::ScrollbarThemeChromium):
54608         (WebCore::ScrollbarThemeChromium::~ScrollbarThemeChromium):
54609         (WebCore::ScrollbarThemeChromium::themeChanged):
54610         (WebCore::ScrollbarThemeChromium::hasThumb):
54611         (WebCore::ScrollbarThemeChromium::backButtonRect):
54612         (WebCore::ScrollbarThemeChromium::forwardButtonRect):
54613         (WebCore::ScrollbarThemeChromium::trackRect):
54614         (WebCore::ScrollbarThemeChromium::paintTrackBackground):
54615         (WebCore::ScrollbarThemeChromium::paintTickmarks):
54616         (WebCore::ScrollbarThemeChromium::paintScrollCorner):
54617         (WebCore::ScrollbarThemeChromium::shouldCenterOnThumb):
54618         (WebCore::ScrollbarThemeChromium::buttonSize):
54619         * platform/chromium/ScrollbarThemeChromium.h: Added.
54620         (WebCore::ScrollbarThemeChromium::hasButtons):
54621         * platform/chromium/ScrollbarThemeChromiumLinux.cpp: Added.
54622         (WebCore::ScrollbarThemeChromium::scrollbarThickness):
54623         (WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit):
54624         (WebCore::initMozState):
54625         (WebCore::paintScrollbarWidget):
54626         (WebCore::ScrollbarThemeChromium::paintTrackPiece):
54627         (WebCore::ScrollbarThemeChromium::paintButton):
54628         (WebCore::ScrollbarThemeChromium::paintThumb):
54629         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
54630         * platform/chromium/SearchPopupMenuChromium.cpp: Added.
54631         (WebCore::SearchPopupMenu::SearchPopupMenu):
54632         (WebCore::SearchPopupMenu::enabled):
54633         (WebCore::SearchPopupMenu::saveRecentSearches):
54634         (WebCore::SearchPopupMenu::loadRecentSearches):
54635         * platform/chromium/SharedTimerChromium.cpp: Added.
54636         (WebCore::setSharedTimerFiredFunction):
54637         (WebCore::setSharedTimerFireTime):
54638         (WebCore::stopSharedTimer):
54639         * platform/chromium/TemporaryLinkStubs.cpp: Added.
54640         (WebCore::signedPublicKeyAndChallengeString):
54641         (WebCore::getSupportedKeySizes):
54642         (WebCore::KURL::fileSystemPath):
54643         (WebCore::SharedBuffer::createWithContentsOfFile):
54644         (WTF::scheduleDispatchFunctionsOnMainThread):
54645
54646 2009-01-14  Darin Fisher  <darin@chromium.org>
54647
54648         Reviewed by Eric Seidel.
54649
54650         https://bugs.webkit.org/show_bug.cgi?id=23323
54651         Upstream platform/text/chromium/
54652
54653         * platform/text/chromium: Added.
54654         * platform/text/chromium/TextBreakIteratorInternalICUChromium.cpp: Added.
54655         (WebCore::currentTextBreakLocaleID):
54656
54657 2009-01-14  Steve Falkenburg  <sfalken@apple.com>
54658
54659         Update copyright year in version resources.
54660
54661         Reviewed by Adam Roben.
54662
54663         * WebCore.vcproj/QTMovieWin.rc:
54664
54665 2009-01-14  Darin Fisher  <darin@chromium.org>
54666
54667         Reviewed by Darin Adler.
54668
54669         https://bugs.webkit.org/show_bug.cgi?id=23324
54670         Move platform/chromium/EditorChromium.cpp into editing/chromium/
54671
54672         * editing/chromium: Added.
54673         * editing/chromium/EditorChromium.cpp: Copied from platform/chromium/EditorChromium.cpp.
54674         * platform/chromium/EditorChromium.cpp: Removed.
54675
54676 2009-01-14  Darin Fisher  <darin@chromium.org>
54677
54678         Reviewed by Darin Adler.
54679
54680         https://bugs.webkit.org/show_bug.cgi?id=23320
54681         Make it possible to use notImplemented outside of the WebCore namespace
54682
54683         * platform/NotImplemented.h:
54684
54685 2009-01-14  Nigel Tao  <nigel.tao.gnome@gmail.com>
54686
54687         Reviewed by Darin Adler.
54688
54689         - fix https://bugs.webkit.org/show_bug.cgi?id=22476
54690         Check that the document's SecurityOrigin canLoadLocalResources,
54691         when pages try to put NSFilenamesPboardtype data on the clipboard,
54692         by calling event.dataTransfer.setData('URL', 'file:///foo/bar');
54693
54694         Tests: http/tests/security/dataTransfer-set-data-file-url.html
54695                platform/mac/editing/pasteboard/dataTransfer-set-data-file-url.html
54696
54697         * platform/mac/ClipboardMac.mm:
54698         (WebCore::ClipboardMac::setData):
54699
54700 2009-01-14  Dan Bernstein  <mitz@apple.com>
54701
54702         Reviewed by John Sullivan.
54703
54704         - update copyright
54705
54706         * Info.plist:
54707
54708 2009-01-14  Alexey Proskuryakov  <ap@webkit.org>
54709
54710         Reviewed by Darin Adler.
54711
54712         https://bugs.webkit.org/show_bug.cgi?id=23316
54713         Application cache updating always fails with an assertion
54714
54715         Test: http/tests/appcache/update-cache.html
54716
54717         * loader/appcache/ApplicationCacheGroup.cpp:
54718         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed): Correctly handle the case where
54719         multiple caches survive the last DocumentLoader destruction, preventing a crash in release
54720         builds.
54721         (WebCore::ApplicationCacheGroup::setNewestCache): Removed a bogus assertion.
54722
54723 2009-01-14  Alexey Proskuryakov  <ap@webkit.org>
54724
54725         Release build fix.
54726
54727         * loader/appcache/ApplicationCacheStorage.cpp:
54728         (WebCore::ApplicationCacheStorage::storeUpdatedType): Use ASSERT_UNUSED.
54729
54730 2009-01-13  Alexey Proskuryakov  <ap@webkit.org>
54731
54732         Reviewed by Anders Carlsson.
54733
54734         Test: http/tests/appcache/xhr-foreign-resource.html
54735
54736         https://bugs.webkit.org/show_bug.cgi?id=23256
54737         Implement application cache foreign entries
54738
54739         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
54740         Removed a misplaced check for foreign resources that prevented them from being loaded altogether.
54741
54742         * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::selectCache):
54743         If a document that was loaded from appcache should be associated with a different cache,
54744         mark the resource as foreign in the original cache and start over.
54745
54746         * loader/appcache/ApplicationCacheResource.cpp: (WebCore::ApplicationCacheResource::addType):
54747         This function can now be called after a cache is stored, so it no longer asserts the opposite.
54748
54749         * loader/appcache/ApplicationCacheStorage.cpp:
54750         (WebCore::ApplicationCacheStorage::cacheGroupForURL): Fix database pass to correctly ignore
54751         in-memory caches that were already rejected.
54752         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): Ditto.
54753         (WebCore::ApplicationCacheStorage::storeUpdatedType): Added a function that updates type of
54754         an already stored cached resource.
54755
54756         * loader/appcache/ApplicationCacheStorage.h: Added storeUpdatedType().
54757
54758 2009-01-13  Mark Rowe  <mrowe@apple.com>
54759
54760         Fix the Tiger WebCore build after r39880.
54761
54762         * editing/Editor.cpp:
54763         (WebCore::Editor::markBadGrammar):
54764         * loader/mac/DocumentLoaderMac.cpp:
54765         (WebCore::DocumentLoader::schedule):
54766         (WebCore::DocumentLoader::unschedule):
54767         * platform/mac/PasteboardMac.mm:
54768         (WebCore::Pasteboard::writeSelection):
54769         * platform/mac/WebCoreObjCExtras.mm:
54770         (WebCoreObjCFinalizeOnMainThread):
54771         * platform/network/mac/ResourceHandleMac.mm:
54772         (WebCore::ResourceHandle::schedule):
54773         (WebCore::ResourceHandle::unschedule):
54774
54775 2009-01-13  Darin Adler  <darin@apple.com>
54776
54777         Reviewed by Sam Weinig.
54778
54779         Bug 23102: turn on unused parameter warnings in WebCore
54780         https://bugs.webkit.org/show_bug.cgi?id=23102
54781
54782         Last step: Turn on the warning and fix the last few instances.
54783
54784         * Configurations/Base.xcconfig: Removed -Wno-unused-parameter from
54785         WARNING_CFLAGS_BASE, so the unused parameter warning will fire.
54786
54787         * bindings/js/JSDOMWindowBase.cpp:
54788         (jsDOMWindowBaseMessageChannel): Separate the version for use when
54789         CHANNEL_MESSAGING is turned off, so we can omit the argument names.
54790         It would be better to not even have this property in that case,
54791         rather than having the function return undefined, but I don't know
54792         how to do that with the bindings script.
54793
54794         * bindings/scripts/CodeGeneratorJS.pm: Leave out argument names in
54795         functions where they're not used (the SVG context, and the property
54796         name in the index getter). Use UNUSED_PARAM where arguments are
54797         sometimes not used.
54798
54799         * bridge/runtime_object.cpp:
54800         (JSC::RuntimeObjectImp::put): Use UNUSED_PARAM for non-QT.
54801
54802         * css/MediaQueryEvaluator.cpp:
54803         (WebCore::animationMediaFeatureEval): Omit argument names for style and frame.
54804         (WebCore::transitionMediaFeatureEval): Ditto.
54805         (WebCore::transform_2dMediaFeatureEval): Ditto.
54806         (WebCore::transform_3dMediaFeatureEval): Ditto.
54807
54808         * dom/make_names.pl: Leave out the createdByParser property name in
54809         cases where it's not used.
54810
54811         * inspector/JavaScriptDebugServer.cpp:
54812         (WebCore::JavaScriptDebugServer::setJavaScriptPaused): Separate the
54813         version for the Mac platform so we can omit the argument names.
54814
54815         * loader/EmptyClients.h:
54816         (WebCore::EmptyChromeClient::contentsSizeChanged): Removed argument name.
54817
54818         * loader/FrameLoaderClient.h:
54819         (WebCore::FrameLoaderClient::shouldUsePluginDocument): Commented out
54820         argument name.
54821
54822         * loader/icon/IconFetcher.cpp:
54823         (WebCore::IconFetcher::didReceiveResponse): Use ASSERT_UNUSED.
54824         (WebCore::IconFetcher::didReceiveData): Ditto.
54825         (WebCore::IconFetcher::didFinishLoading): Ditto.
54826         (WebCore::IconFetcher::didFail): Ditto.
54827
54828         * platform/KURL.cpp:
54829         (WebCore::assertProtocolIsGood): Separate out the NDEBUG version so
54830         we can omit the argument names.
54831
54832         * platform/Timer.cpp:
54833         (WebCore::TimerHeapIterator::checkConsistency): Use ASSERT_UNUSED.
54834
54835         * platform/graphics/GlyphBuffer.h:
54836         (WebCore::GlyphBuffer::offsetAt): Use UNUSED_PARAM in the non-WIN case.
54837         (WebCore::GlyphBuffer::add): Use UNUSED_PARAM in the non-CAIRO case.
54838
54839         * platform/graphics/cg/ImageSourceCG.cpp:
54840         (WebCore::ImageSource::clear): Removed argument name.
54841
54842         * rendering/SVGRenderSupport.cpp:
54843         (WebCore::prepareToRenderSVGContent): Use UNUSED_PARAM when SVG_FILTERS
54844         is not enabled.
54845         (WebCore::finishRenderSVGContent): Ditto.
54846
54847 2009-01-13  Chris Marrin  <cmarrin@apple.com>
54848
54849         Reviewed by Darin Adler.
54850
54851         Implemented https://bugs.webkit.org/show_bug.cgi?id=23298
54852         Simple fix to convertToLength to catch style==null cases
54853
54854         * css/CSSStyleSelector.cpp:
54855         (WebCore::convertToLength):
54856
54857 2009-01-13  Eric Seidel  <eric@webkit.org>
54858
54859         Reviewed by Mark Rowe.
54860
54861         Speculative fix for an Uninitialized Memory Read (UMR)
54862         seen by purify in chormium's equivalent V8 file.
54863
54864         * bindings/js/JSSVGPODTypeWrapper.h:
54865         (WebCore::PODTypeWrapperCacheInfo::PODTypeWrapperCacheInfo):
54866
54867 2009-01-13  Dimitri Glazkov  <dglazkov@chromium.org>
54868
54869         Reviewed by Eric Seidel.
54870
54871         Land portions of platform/graphics/chromium.
54872         https://bugs.webkit.org/show_bug.cgi?id=23297
54873
54874         * platform/graphics/chromium/FontCustomPlatformData.cpp: Added.
54875         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
54876         (WebCore::FontCustomPlatformData::fontPlatformData):
54877         (WebCore::EOTStream::EOTStream):
54878         (WebCore::EOTStream::read):
54879         (WebCore::readEmbedProc):
54880         (WebCore::createUniqueFontName):
54881         (WebCore::createFontCustomPlatformData):
54882         * platform/graphics/chromium/FontCustomPlatformData.h: Added.
54883         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
54884         * platform/graphics/chromium/FontLinux.cpp: Added.
54885         (WebCore::Font::drawGlyphs):
54886         (WebCore::Font::drawComplexText):
54887         (WebCore::Font::floatWidthForComplexText):
54888         (WebCore::Font::offsetForPositionForComplexText):
54889         (WebCore::Font::selectionRectForComplexText):
54890         * platform/graphics/chromium/FontPlatformData.h: Added.
54891
54892 2009-01-13  Mark Rowe  <mrowe@apple.com>
54893
54894         Rubber-stamped by Oliver Hunt.
54895
54896         Don't copy DOMStringList.idl into the framework bundle.
54897
54898         * WebCore.xcodeproj/project.pbxproj:
54899
54900 2009-01-13  Christian Dywan  <christian@twotoasts.de>
54901
54902         Build fix, StorageEvent is only defined if we have DOM_STORAGE
54903
54904         * dom/Document.cpp:
54905         (WebCore::Document::createEvent): Conditionalize StorageEvent
54906
54907 2009-01-13  Darin Adler  <darin@apple.com>
54908
54909         Reviewed by Adele Peterson.
54910
54911         Bug 23277: space bar scrolls the page when typed in any text field
54912         https://bugs.webkit.org/show_bug.cgi?id=23277
54913         rdar://problem/6490249
54914
54915         There's already a regression test for this, since bug 16421 was the same problem, but on
54916         Mac. The regression test is fast/events/space-scroll-event.html, so I won't write a new one.
54917
54918         This bug doesn't affect Mac because the canEdit check in -[WebHTMLView insertText:] prevents
54919         a text input event from being generated at all. That difference may in itself be a bug, but
54920         the only symptom is that you get text input events in more cases on platforms other than Mac.
54921
54922         * page/EventHandler.cpp:
54923         (WebCore::EventHandler::handleTextInputEvent): Return whether the event's default was
54924         handled, not the result of the dispatchEvent function, which indicates only whether the
54925         default behavior was prevented, not if the default behavior did some insertion. This fix
54926         makes it so the keyboard event handler can detect that no space was inserted and know that
54927         the space bar keypress event can be treated as a scrolling command.
54928         (WebCore::EventHandler::defaultKeyboardEventHandler): Handle the keypress event, not the
54929         keydown event. Without the change above, making this change would have restored the old
54930         behavior, reintroducing bug 22913 where the space bar doesn't scroll at all on Windows.
54931
54932 2009-01-13  Darin Fisher  <darin@chromium.org>
54933
54934         Reviewed by Eric Seidel.
54935
54936         Landing portions of platform/chromium/, taken from here:
54937         http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/WebKit/WebCore/platform/chromium/
54938
54939         * platform/chromium/ChromiumBridge.h: Added.
54940         * platform/chromium/ChromiumDataObject.cpp: Added.
54941         (WebCore::ChromiumDataObject::clear):
54942         (WebCore::ChromiumDataObject::hasData):
54943         * platform/chromium/ChromiumDataObject.h: Added.
54944         (WebCore::ChromiumDataObject::create):
54945         (WebCore::ChromiumDataObject::ChromiumDataObject):
54946         * platform/chromium/ClipboardChromium.cpp: Added.
54947         (WebCore::):
54948         (WebCore::clipboardTypeFromMIMEType):
54949         (WebCore::ClipboardChromium::ClipboardChromium):
54950         (WebCore::ClipboardChromium::create):
54951         (WebCore::ClipboardChromium::clearData):
54952         (WebCore::ClipboardChromium::clearAllData):
54953         (WebCore::ClipboardChromium::getData):
54954         (WebCore::ClipboardChromium::setData):
54955         (WebCore::ClipboardChromium::types):
54956         (WebCore::ClipboardChromium::setDragImage):
54957         (WebCore::ClipboardChromium::setDragImageElement):
54958         (WebCore::ClipboardChromium::createDragImage):
54959         (WebCore::imageToMarkup):
54960         (WebCore::getCachedImage):
54961         (WebCore::writeImageToDataObject):
54962         (WebCore::ClipboardChromium::declareAndWriteDragImage):
54963         (WebCore::ClipboardChromium::writeURL):
54964         (WebCore::ClipboardChromium::writeRange):
54965         (WebCore::ClipboardChromium::hasData):
54966         * platform/chromium/ClipboardChromium.h: Added.
54967         (WebCore::ClipboardChromium::~ClipboardChromium):
54968         (WebCore::ClipboardChromium::dataObject):
54969         * platform/chromium/ClipboardUtilitiesChromium.cpp: Added.
54970         (WebCore::replaceNewlinesWithWindowsStyleNewlines):
54971         (WebCore::replaceNBSPWithSpace):
54972         (WebCore::urlToMarkup):
54973         * platform/chromium/ClipboardUtilitiesChromium.h: Added.
54974         * platform/chromium/ContextMenuChromium.cpp: Added.
54975         (WebCore::ContextMenu::ContextMenu):
54976         (WebCore::ContextMenu::~ContextMenu):
54977         (WebCore::ContextMenu::itemCount):
54978         (WebCore::ContextMenu::insertItem):
54979         (WebCore::ContextMenu::appendItem):
54980         (WebCore::ContextMenu::itemWithAction):
54981         (WebCore::ContextMenu::itemAtIndex):
54982         (WebCore::ContextMenu::setPlatformDescription):
54983         (WebCore::ContextMenu::platformDescription):
54984         (WebCore::ContextMenu::releasePlatformDescription):
54985         * platform/chromium/ContextMenuItemChromium.cpp: Added.
54986         (WebCore::ContextMenuItem::ContextMenuItem):
54987         (WebCore::ContextMenuItem::~ContextMenuItem):
54988         (WebCore::ContextMenuItem::releasePlatformDescription):
54989         (WebCore::ContextMenuItem::type):
54990         (WebCore::ContextMenuItem::action):
54991         (WebCore::ContextMenuItem::title):
54992         (WebCore::ContextMenuItem::platformSubMenu):
54993         (WebCore::ContextMenuItem::setType):
54994         (WebCore::ContextMenuItem::setAction):
54995         (WebCore::ContextMenuItem::setTitle):
54996         (WebCore::ContextMenuItem::setSubMenu):
54997         (WebCore::ContextMenuItem::setChecked):
54998         (WebCore::ContextMenuItem::setEnabled):
54999         (WebCore::ContextMenuItem::enabled):
55000         * platform/chromium/CursorChromium.cpp: Added.
55001         (WebCore::Cursor::Cursor):
55002         (WebCore::Cursor::~Cursor):
55003         (WebCore::Cursor::operator=):
55004         (WebCore::pointerCursor):
55005         (WebCore::crossCursor):
55006         (WebCore::handCursor):
55007         (WebCore::iBeamCursor):
55008         (WebCore::waitCursor):
55009         (WebCore::helpCursor):
55010         (WebCore::eastResizeCursor):
55011         (WebCore::northResizeCursor):
55012         (WebCore::northEastResizeCursor):
55013         (WebCore::northWestResizeCursor):
55014         (WebCore::southResizeCursor):
55015         (WebCore::southEastResizeCursor):
55016         (WebCore::southWestResizeCursor):
55017         (WebCore::westResizeCursor):
55018         (WebCore::northSouthResizeCursor):
55019         (WebCore::eastWestResizeCursor):
55020         (WebCore::northEastSouthWestResizeCursor):
55021         (WebCore::northWestSouthEastResizeCursor):
55022         (WebCore::columnResizeCursor):
55023         (WebCore::rowResizeCursor):
55024         (WebCore::middlePanningCursor):
55025         (WebCore::eastPanningCursor):
55026         (WebCore::northPanningCursor):
55027         (WebCore::northEastPanningCursor):
55028         (WebCore::northWestPanningCursor):
55029         (WebCore::southPanningCursor):
55030         (WebCore::southEastPanningCursor):
55031         (WebCore::southWestPanningCursor):
55032         (WebCore::westPanningCursor):
55033         (WebCore::moveCursor):
55034         (WebCore::verticalTextCursor):
55035         (WebCore::cellCursor):
55036         (WebCore::contextMenuCursor):
55037         (WebCore::aliasCursor):
55038         (WebCore::progressCursor):
55039         (WebCore::noDropCursor):
55040         (WebCore::copyCursor):
55041         (WebCore::noneCursor):
55042         (WebCore::notAllowedCursor):
55043         (WebCore::zoomInCursor):
55044         (WebCore::zoomOutCursor):
55045         (WebCore::grabCursor):
55046         (WebCore::grabbingCursor):
55047         * platform/chromium/DragDataChromium.cpp: Added.
55048         (WebCore::containsHTML):
55049         (WebCore::DragData::createClipboard):
55050         (WebCore::DragData::containsURL):
55051         (WebCore::DragData::asURL):
55052         (WebCore::DragData::containsFiles):
55053         (WebCore::DragData::asFilenames):
55054         (WebCore::DragData::containsPlainText):
55055         (WebCore::DragData::asPlainText):
55056         (WebCore::DragData::containsColor):
55057         (WebCore::DragData::canSmartReplace):
55058         (WebCore::DragData::containsCompatibleContent):
55059         (WebCore::DragData::asFragment):
55060         (WebCore::DragData::asColor):
55061         * platform/chromium/EditorChromium.cpp: Added.
55062         (WebCore::Editor::newGeneralClipboard):
55063         * platform/chromium/FileChooserChromium.cpp: Added.
55064         (WebCore::FileChooser::basenameForWidth):
55065         * platform/chromium/FileSystemChromium.cpp: Added.
55066         (WebCore::deleteFile):
55067         (WebCore::deleteEmptyDirectory):
55068         (WebCore::getFileSize):
55069         (WebCore::getFileModificationTime):
55070         (WebCore::directoryName):
55071         (WebCore::pathByAppendingComponent):
55072         (WebCore::makeAllDirectories):
55073         (WebCore::fileExists):
55074         * platform/chromium/FileSystemChromiumLinux.cpp: Added.
55075         (WebCore::pathGetFileName):
55076         * platform/chromium/FileSystemChromiumMac.mm: Added.
55077         (WebCore::pathGetFileName):
55078         * platform/chromium/FileSystemChromiumWin.cpp: Added.
55079         (WebCore::pathGetFileName):
55080         * platform/chromium/FramelessScrollView.cpp: Added.
55081         (WebCore::FramelessScrollView::~FramelessScrollView):
55082         (WebCore::FramelessScrollView::invalidateScrollbarRect):
55083         (WebCore::FramelessScrollView::isActive):
55084         (WebCore::FramelessScrollView::invalidateRect):
55085         (WebCore::FramelessScrollView::hostWindow):
55086         (WebCore::FramelessScrollView::windowClipRect):
55087         (WebCore::FramelessScrollView::paintContents):
55088         (WebCore::FramelessScrollView::contentsResized):
55089         (WebCore::FramelessScrollView::visibleContentsResized):
55090         * platform/chromium/FramelessScrollView.h: Added.
55091         (WebCore::FramelessScrollView::FramelessScrollView):
55092         (WebCore::FramelessScrollView::client):
55093         (WebCore::FramelessScrollView::setClient):
55094         * platform/chromium/FramelessScrollViewClient.h: Added.
55095         * platform/chromium/ScrollbarThemeChromiumWin.cpp: Added.
55096         (WebCore::):
55097         (WebCore::ScrollbarThemeChromium::scrollbarThickness):
55098         (WebCore::ScrollbarThemeChromium::invalidateOnMouseEnterExit):
55099         (WebCore::ScrollbarThemeChromium::paintTrackPiece):
55100         (WebCore::ScrollbarThemeChromium::paintButton):
55101         (WebCore::ScrollbarThemeChromium::paintThumb):
55102         (WebCore::ScrollbarThemeChromium::getThemeState):
55103         (WebCore::ScrollbarThemeChromium::getThemeArrowState):
55104         (WebCore::ScrollbarThemeChromium::getClassicThemeState):
55105         * platform/chromium/SoundChromiumPosix.cpp: Added.
55106         (WebCore::systemBeep):
55107         * platform/chromium/SoundChromiumWin.cpp: Added.
55108         (WebCore::systemBeep):
55109         * platform/chromium/SystemTimeChromium.cpp: Added.
55110         (WebCore::currentTime):
55111         (WebCore::userIdleTime):
55112         * platform/chromium/WidgetChromium.cpp: Added.
55113         (WebCore::Widget::Widget):
55114         (WebCore::Widget::~Widget):
55115         (WebCore::Widget::show):
55116         (WebCore::Widget::hide):
55117         (WebCore::Widget::setCursor):
55118         (WebCore::Widget::paint):
55119         (WebCore::Widget::setFocus):
55120         (WebCore::Widget::setIsSelected):
55121         (WebCore::Widget::frameRect):
55122         (WebCore::Widget::setFrameRect):
55123         * platform/chromium/WindowsVersion.cpp: Added.
55124         (WebCore::isVistaOrNewer):
55125         * platform/chromium/WindowsVersion.h: Added.
55126
55127 2009-01-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
55128
55129         Reviewed by Simon Hausmann.
55130
55131         [Qt] Make sure media elements dispatch the 'loaded' event
55132
55133         We assume that when Phonon goes into paused state that we have the
55134         complete media file. Once we do media loading ourselves we can
55135         distinguish between loading the first frame and the complete media.
55136
55137         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
55138         (WebCore::MediaPlayerPrivate::updateStates):
55139
55140 2009-01-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
55141
55142         Reviewed by Simon Hausmann.
55143
55144         [Qt] Add more verbose error output when loading NPAPI plugins
55145
55146         * plugins/qt/PluginPackageQt.cpp:
55147         (WebCore::PluginPackage::load):
55148
55149 2009-01-13  Simon Hausmann  <simon.hausmann@nokia.com>
55150
55151         Reviewed by Tor Arne Vestbø.
55152
55153         Fix crash in the Qt port when deleting a popup from within a
55154         JavaScript onchange handler.
55155
55156         * platform/qt/QWebPopup.cpp:
55157         (WebCore::QWebPopup::QWebPopup): Perform the activation of the
55158         combobox item (i.e. the call to the JS handler) from a different
55159         call stack by using a queued connection.
55160
55161 2009-01-12  Holger Hans Peter Freyther  <zecke@selfish.org>
55162
55163         Reviewed by Tor Arne Vestbø.
55164
55165         [GIO] Make sure to untef the GFile and the GInputStream on destruction
55166
55167         Make sure to call cleanupGioOperation from the ResourceHandleInternal
55168         d'tor. Change the signature of cleanupGioOperation so we can do the
55169         cleanup of GIO next to the cleanup of SOUP.
55170
55171         This is happening with many tests from dom/html/level2/html e.g.
55172         LayoutTests/dom/html/level2/html/HTMLBodyElement07.html.
55173
55174         * platform/network/soup/ResourceHandleSoup.cpp:
55175         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
55176         (WebCore::cleanupGioOperation):
55177         (WebCore::closeCallback):
55178         (WebCore::readCallback):
55179         (WebCore::openCallback):
55180         (WebCore::queryInfoCallback):
55181
55182 2009-01-12  Holger Hans Peter Freyther  <zecke@selfish.org>
55183
55184         Reviewed by Tor Arne Vestbø.
55185
55186         [GIO] Attach the ResourceHandle to the GObject and get it from the GObject
55187
55188         https://bugs.webkit.org/show_bug.cgi?id=23116 discussed with Benjamin Otte
55189
55190         Sometimes it is not possible to cancel a pending GIO operation and the
55191         callback might be invoked with a pointer to an already destructed
55192         ResourceHandle. To avoid this issue we will attach the ResourceHandle
55193         to the GObject* and in the callback attempt to get the ResourceHandle
55194         from the GObject*. If no ResourceHandle is attached we silently fail
55195         as the cleanup has been already done.
55196
55197         This is happening with many tests from dom/html/level2/html e.g.
55198         LayoutTests/dom/html/level2/html/HTMLBodyElement07.html.
55199
55200         * platform/network/soup/ResourceHandleSoup.cpp:
55201         (WebCore::cleanupGioOperation):
55202         (WebCore::closeCallback):
55203         (WebCore::readCallback):
55204         (WebCore::openCallback):
55205         (WebCore::queryInfoCallback):
55206         (WebCore::ResourceHandle::startGio):
55207
55208 2009-01-12  Holger Hans Peter Freyther  <zecke@selfish.org>
55209
55210         Reviewed by Tor Arne Vestbø.
55211
55212         [GIO] Invoke cleanupGioOperation before calling didFail to avoid crashes
55213
55214         https://bugs.webkit.org/show_bug.cgi?id=23116
55215
55216         The ResourceHandle becomes invalid (e.g. got destructed) from within
55217         the invocation of didFail. Avoid this by cleaning up everything before
55218         calling didFail and simply return afterwards.
55219
55220         This is happening with many tests from dom/html/level2/html e.g.
55221         LayoutTests/dom/html/level2/html/HTMLBodyElement07.html.
55222
55223         * platform/network/soup/ResourceHandleSoup.cpp:
55224         (WebCore::readCallback):
55225         (WebCore::openCallback):
55226         (WebCore::queryInfoCallback):
55227
55228 2009-01-13  Tor Arne Vestbø  <tavestbo@trolltech.com>
55229
55230         Reviewed by Simon Hausmann.
55231
55232         Change how themes adjust mediaControls.css to match html4/quicks.css
55233
55234         Instead of providing the full style sheet, the themes provide extra
55235         overrides to the default style defined in UserAgentStyleSheetsData.
55236
55237         https://bugs.webkit.org/show_bug.cgi?id=23210
55238
55239         Also, merge WebKitResources.qrc and WebCoreResources.qrc to speed up
55240         build time for the Qt port.
55241
55242         * Resources/WebKitResources.qrc: Removed. Merged into WebCore.qrc
55243         * WebCore.pro:
55244         * WebCore.qrc: Added.
55245         * css/CSSStyleSelector.cpp:
55246         (WebCore::CSSStyleSelector::styleForElement):
55247         * css/qt/mediaControls-extras.css: Rename from html4-adjustments-qt.css
55248         * platform/qt/RenderThemeQt.cpp:
55249         (WebCore::RenderThemeQt::extraMediaControlsStyleSheet):
55250         * platform/qt/RenderThemeQt.h:
55251         * platform/qt/WebCoreResources.qrc: Removed.
55252         * platform/qt/html4-adjustments-qt.css: Rename to mediaControls-extras.css
55253         * rendering/RenderTheme.cpp:
55254         * rendering/RenderTheme.h:
55255         (WebCore::RenderTheme::extraMediaControlsStyleSheet):
55256
55257 2009-01-12  Gavin Barraclough  <barraclough@apple.com>
55258
55259         Reviewed by Oliver Hunt.
55260
55261         Deprecate JSValuePtr::getNumber() - two ways to get a number should  be enough.
55262
55263         * bindings/js/JSSQLTransactionCustom.cpp:
55264         (WebCore::JSSQLTransaction::executeSql):
55265         * bindings/objc/WebScriptObject.mm:
55266         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
55267
55268 2009-01-12  Chris Marrin  <cmarrin@apple.com>
55269
55270         Reviewed by Dan Bernstein.
55271
55272         Fixed https://bugs.webkit.org/show_bug.cgi?id=22919
55273
55274         I added a common getElapsedTime() function to AnimationBase which uses a combination of
55275         the techniques from KeyframeAnimation and AnimationBase to compute elapsedTime in all
55276         states.
55277
55278         * page/animation/AnimationBase.cpp:
55279         (WebCore::AnimationBase::progress):
55280         (WebCore::AnimationBase::getElapsedTime):
55281         * page/animation/AnimationBase.h:
55282         * page/animation/KeyframeAnimation.cpp:
55283         (WebCore::KeyframeAnimation::animate):
55284
55285 2009-01-12  Robert Blaut  <webkit@blaut.biz>
55286
55287         Reviewed by Darin Adler
55288
55289         Fix for <https://bugs.webkit.org/show_bug.cgi?id=22096>
55290         Bug 22096: REGRESSION (r35879) scrolldelay is counted in seconds
55291         instead of miliseconds
55292
55293         Test: fast/css/webkit-marquee-speed-unit-in-quirksmode.html
55294
55295         * css/CSSParser.cpp:
55296         (WebCore::CSSParser::validUnit): treat unitless values in quirks mode
55297         as miliseconds instead of seconds.
55298
55299 2009-01-12  David Hyatt  <hyatt@apple.com>
55300
55301         Apply the same idea as the previous fix but for matched declarations.
55302
55303         Reviewed by Dan Bernstein
55304
55305         * css/CSSStyleSelector.h:
55306
55307 2009-01-12  Brady Eidson  <beidson@apple.com>
55308
55309         Reviewed by Darin Adler
55310
55311         <rdar://problem/6468274> - Track Non-get requests in global history
55312
55313         * WebCore.base.exp:
55314
55315         * history/HistoryItem.cpp:
55316         (WebCore::HistoryItem::HistoryItem):
55317         * history/HistoryItem.h:
55318         (WebCore::HistoryItem::lastVisitWasHTTPNonGet):
55319         (WebCore::HistoryItem::setLastVisitWasHTTPNonGet):
55320
55321 2009-01-12  Kevin Ollivier  <kevino@theolliviers.com>
55322
55323         !ENABLE(SVG_FONTS) build fix. Move defaultUnitsPerEm into a non-SVG header
55324         so it can be used by all builds.
55325
55326         * platform/graphics/Font.h:
55327         * platform/graphics/SimpleFontData.cpp:
55328         * svg/SVGFontFaceElement.cpp:
55329         * svg/SVGFontFaceElement.h:
55330
55331 2009-01-12  Kevin Ollivier  <kevino@theolliviers.com>
55332
55333         wx build typo fix.
55334
55335         * platform/graphics/wx/TransformationMatrixWx.cpp:
55336         (WebCore::TransformationMatrix::TransformationMatrix):
55337
55338 2009-01-12  David Hyatt  <hyatt@apple.com>
55339
55340         Make sure the set of matched rules has a reserved capacity of 32.  This prevents remalloc thrash as
55341         elements are matched, since the Vector is shrinking and growing over and over.  1% PLT speedup.
55342
55343         Reviewed by Oliver Hunt
55344
55345         * css/CSSStyleSelector.h:
55346
55347 2009-01-12  David Hyatt  <hyatt@apple.com>
55348
55349         Optimize Element::attributeChanged to just check if accessibility is enabled up front before looking at the
55350         two accessibility-related attributes.  This avoids the rest of the code for all attributes on the PLT.
55351         Tiny speedup.
55352
55353         Reviewed by Oliver Hunt
55354
55355         * dom/Element.cpp:
55356         (WebCore::Element::attributeChanged):
55357
55358 2009-01-12  David Hyatt  <hyatt@apple.com>
55359
55360         Optimize the retrieval of line height.  If the document is not using any first-line rules, just immediately
55361         default to the normal case.  Tiny speedup on PLT.
55362
55363         Reviewed by Oliver Hunt
55364
55365         * rendering/RenderFlow.cpp:
55366         (WebCore::RenderFlow::lineHeight):
55367
55368 2009-01-12  David Hyatt  <hyatt@apple.com>
55369
55370         Fix 0.6% regression in PLT.  Make sure not to waste time updating NSScrollView's can blit on scroll state
55371         in the ScrollView constructor, since this is always going to be properly updated by FrameView anyway.
55372
55373         Reviewed by Oliver Hunt
55374
55375         * platform/ScrollView.cpp:
55376         (WebCore::ScrollView::ScrollView):
55377
55378 2009-01-12  Simon Fraser  <simon.fraser@apple.com>
55379
55380         Reviewed by Dan Bernstein
55381
55382         https://bugs.webkit.org/show_bug.cgi?id=23273
55383
55384         In RenderBox::repaintLayerRectsForImage(), the repaint rect does not have
55385         to be computed in absolute coordintes. Instead, we compute a repaintRect
55386         relative to the RenderObject, which can repaint itself.
55387
55388         * rendering/RenderBox.cpp:
55389         (WebCore::RenderBox::repaintLayerRectsForImage):
55390
55391 2009-01-12  Simon Fraser  <simon.fraser@apple.com>
55392
55393         Reviewed by Dan Bernstein
55394
55395         https://bugs.webkit.org/show_bug.cgi?id=23220
55396
55397         Merge layoutDelta into LayoutState. This requires that we
55398         push even when layoutState is disabled, so that layoutDelta
55399         can still be stored.
55400
55401         * rendering/LayoutState.cpp:
55402         (WebCore::LayoutState::LayoutState):
55403         * rendering/LayoutState.h:
55404         (WebCore::LayoutState::LayoutState):
55405         * rendering/RenderBlock.cpp:
55406         (WebCore::RenderBlock::layoutBlock):
55407         (WebCore::RenderBlock::layoutBlockChildren):
55408         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
55409         * rendering/RenderBox.cpp:
55410         (WebCore::RenderBox::localToAbsolute):
55411         (WebCore::RenderBox::absoluteToLocal):
55412         (WebCore::RenderBox::computeAbsoluteRepaintRect):
55413         * rendering/RenderFlexibleBox.cpp:
55414         (WebCore::RenderFlexibleBox::layoutBlock):
55415         * rendering/RenderFlow.cpp:
55416         (WebCore::RenderFlow::absoluteClippedOverflowRect):
55417         * rendering/RenderLayer.cpp:
55418         (WebCore::RenderLayer::updateLayerPositions):
55419         * rendering/RenderTableCell.cpp:
55420         (WebCore::RenderTableCell::computeAbsoluteRepaintRect):
55421         (WebCore::RenderTableCell::localToAbsolute):
55422         * rendering/RenderView.cpp:
55423         (WebCore::RenderView::pushLayoutState):
55424         * rendering/RenderView.h:
55425         (WebCore::RenderView::layoutDelta):
55426         (WebCore::RenderView::addLayoutDelta):
55427         (WebCore::RenderView::doingFullRepaint):
55428         (WebCore::RenderView::pushLayoutState):
55429         (WebCore::RenderView::popLayoutState):
55430         (WebCore::RenderView::layoutStateEnabled):
55431         (WebCore::RenderView::layoutState):
55432         (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
55433         (WebCore::LayoutStateMaintainer::push):
55434         (WebCore::LayoutStateMaintainer::pop):
55435         * rendering/bidi.cpp:
55436         (WebCore::RenderBlock::layoutInlineChildren):
55437
55438 2009-01-12  Julien Chaffraix  <jchaffraix@pleyo.com>
55439
55440         Reviewed by Holger Freyther.
55441
55442         [Qt] Build fix after turning the fontCache to a singleton
55443         https://bugs.webkit.org/show_bug.cgi?id=23253
55444
55445         Add a stub implementation for WebCore::fontCache() and FontCache::FontCache().
55446
55447         * platform/graphics/qt/FontCacheQt.cpp:
55448         (WebCore::fontCache):
55449         (WebCore::FontCache::FontCache):
55450
55451 2009-01-12  Eric Roman  <eroman@chromium.org>
55452
55453         Reviewed by Darin Adler.
55454
55455         Fix some bugs with Selection::appendTrailingWhitespace().
55456         https://bugs.webkit.org/show_bug.cgi?id=23232
55457
55458         Test: editing/selection/doubleclick-whitespace-crash.html
55459
55460         * editing/Selection.cpp:
55461         (WebCore::makeSearchRange):
55462         (WebCore::Selection::appendTrailingWhitespace):
55463
55464 2009-01-12  Dimitri Glazkov  <dglazkov@chromium.org>
55465
55466         Reviewed by Eric Seidel.
55467
55468         Add the first pieces of platform/graphics/chromium
55469         https://bugs.webkit.org/show_bug.cgi?id=23257
55470
55471         * platform/graphics/chromium/ColorChromium.cpp: Added.
55472         (WebCore::focusRingColor):
55473         * platform/graphics/chromium/FontCacheChromiumWin.cpp: Added.
55474         (WebCore::FontCache::platformInit):
55475         (WebCore::isStringASCII):
55476         (WebCore::LookupAltName):
55477         (WebCore::FontCodepage::):
55478         (WebCore::FontCodepage::if):
55479         (WebCore::createFontIndirectAndGetWinName):
55480         (WebCore::fontContainsCharacter):
55481         (WebCore::FontCache::getFontDataForCharacters):
55482         (WebCore::FontCache::alternateFamilyName):
55483         (WebCore::FontCache::getSimilarFontPlatformData):
55484         (WebCore::FontCache::getLastResortFallbackFont):
55485         (WebCore::toGDIFontWeight):
55486         (WebCore::FontCache::getGenericFontForScript):
55487         (WebCore::FillLogFont):
55488         (WebCore::FontCache::fontExists):
55489         (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData):
55490         (WebCore::traitsInFamilyEnumProc):
55491         (WebCore::FontCache::getTraitsInFamily):
55492         (WebCore::FontCache::createFontPlatformData):
55493         * platform/graphics/chromium/FontCacheLinux.cpp: Added.
55494         (WebCore::FontCache::platformInit):
55495         (WebCore::FontCache::getFontDataForCharacters):
55496         (WebCore::FontCache::alternateFamilyName):
55497         (WebCore::FontCache::getSimilarFontPlatformData):
55498         (WebCore::FontCache::getLastResortFallbackFont):
55499         (WebCore::FontCache::getTraitsInFamily):
55500         (WebCore::FontCache::createFontPlatformData):
55501         (WebCore::FontCache::getGenericFontForScript):
55502         * platform/graphics/chromium/FontChromiumWin.cpp: Added.
55503         (WebCore::windowsCanHandleTextDrawing):
55504         (WebCore::skiaDrawText):
55505         (WebCore::PaintSkiaText):
55506         (WebCore::Font::drawGlyphs):
55507         (WebCore::Font::selectionRectForComplexText):
55508         (WebCore::Font::drawComplexText):
55509         (WebCore::Font::floatWidthForComplexText):
55510         (WebCore::Font::offsetForPositionForComplexText):
55511
55512 2009-01-12  Darin Fisher  <darin@chromium.org>
55513
55514         Reviewed by Eric Seidel.
55515
55516         https://bugs.webkit.org/show_bug.cgi?id=23254
55517         Upstream page/chromium/
55518
55519         * page/chromium/AXObjectCacheChromium.cpp: Added.
55520         (WebCore::AXObjectCache::detachWrapper):
55521         (WebCore::AXObjectCache::attachWrapper):
55522         (WebCore::AXObjectCache::postNotification):
55523         (WebCore::AXObjectCache::postNotificationToElement):
55524         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
55525         * page/chromium/AccessibilityObjectChromium.cpp:
55526         * page/chromium/AccessibilityObjectWrapper.h:
55527         * page/chromium/ChromeClientChromium.h: Added.
55528         * page/chromium/DragControllerChromium.cpp: Added.
55529         (WebCore::DragController::dragOperation):
55530         (WebCore::DragController::isCopyKeyDown):
55531         (WebCore::DragController::maxDragImageSize):
55532         (WebCore::DragController::cleanupAfterSystemDrag):
55533         * page/chromium/EventHandlerChromium.cpp: Added.
55534         (WebCore::EventHandler::passMousePressEventToSubframe):
55535         (WebCore::EventHandler::passMouseMoveEventToSubframe):
55536         (WebCore::EventHandler::passMouseReleaseEventToSubframe):
55537         (WebCore::EventHandler::passWheelEventToWidget):
55538         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
55539         (WebCore::EventHandler::passMouseDownEventToWidget):
55540         (WebCore::EventHandler::tabsToAllControls):
55541         (WebCore::EventHandler::eventActivatedView):
55542         (WebCore::EventHandler::createDraggingClipboard):
55543         (WebCore::EventHandler::focusDocumentView):
55544         (WebCore::EventHandler::accessKeyModifiers):
55545         * page/chromium/FrameChromium.cpp: Added.
55546         (WebCore::computePageRectsForFrame):
55547         (WebCore::Frame::dragImageForSelection):
55548         * page/chromium/FrameChromium.h: Added.
55549
55550 2009-01-12  Dimitri Glazkov  <dglazkov@chromium.org>
55551
55552         Reviewed by Darin Adler.
55553
55554         https://bugs.webkit.org/show_bug.cgi?id=22936
55555         Fix uninitialized memory read error, reported by Purify.
55556
55557         * platform/graphics/SimpleFontData.cpp:
55558         (WebCore::SimpleFontData::SimpleFontData): Added initializer for
55559             m_unitsPerEm using cDefaultUnitsPerEm constant.
55560         * svg/SVGFontFaceElement.cpp:
55561         (WebCore::SVGFontFaceElement::unitsPerEm): Replaced literal value with
55562             the constant.
55563         * svg/SVGFontFaceElement.h: Added cDefaultUnitsPerEm constant.
55564
55565 2009-01-12  Adam Treat  <adam.treat@torchmobile.com>
55566
55567         Reviewed by George Staikos.
55568
55569         Do not set fixedLayoutSize for anything other than the mainframe during
55570         the transition as this is a page level state like the viewportSize.
55571
55572         * loader/FrameLoaderClient.cpp:
55573         (WebCore::FrameLoaderClient::transitionToCommittedForNewPage):
55574
55575 2009-01-12  Julien Chaffraix  <jchaffraix@pleyo.com>
55576
55577         Reviewed by Darin Adler.
55578
55579         Bug 22861: Turn the FontCache into a singleton
55580         https://bugs.webkit.org/show_bug.cgi?id=22861
55581
55582         - Added fontCache() to get the global FontCache.
55583
55584         - Made all the methods in FontCache instance method.
55585
55586         - Changed FontCache:: to fontCache()-> in WebCore.
55587
55588         * WebCore.base.exp: Now export fontCache().
55589         * css/CSSFontFaceSource.cpp:
55590         (WebCore::CSSFontFaceSource::getFontData):
55591         * css/CSSFontSelector.cpp:
55592         (WebCore::CSSFontSelector::CSSFontSelector):
55593         (WebCore::CSSFontSelector::~CSSFontSelector):
55594         (WebCore::CSSFontSelector::addFontFaceRule):
55595         (WebCore::fontDataForGenericFamily):
55596         * platform/graphics/Font.cpp:
55597         (WebCore::Font::glyphDataForCharacter):
55598         * platform/graphics/FontCache.cpp:
55599         (WebCore::fontCache):
55600         (WebCore::FontCache::FontCache):
55601         * platform/graphics/FontCache.h:
55602         * platform/graphics/FontFallbackList.cpp:
55603         (WebCore::FontFallbackList::FontFallbackList):
55604         (WebCore::FontFallbackList::invalidate):
55605         (WebCore::FontFallbackList::releaseFontData):
55606         (WebCore::FontFallbackList::fontDataAt):
55607         (WebCore::FontFallbackList::fontDataForCharacters):
55608         (WebCore::FontFallbackList::setPlatformFont):
55609         * platform/graphics/SimpleFontData.cpp:
55610         (WebCore::SimpleFontData::~SimpleFontData):
55611         * platform/graphics/mac/FontCacheMac.mm:
55612         (WebCore::fontCacheATSNotificationCallback):
55613         * platform/graphics/mac/SimpleFontDataMac.mm:
55614         (WebCore::SimpleFontData::smallCapsFontData):
55615         * platform/graphics/win/FontCacheWin.cpp:
55616         (WebCore::getCJKCodePageMasks):
55617         * platform/graphics/win/SimpleFontDataWin.cpp:
55618         (WebCore::SimpleFontData::containsCharacters):
55619
55620 2009-01-11  Darin Adler  <darin@apple.com>
55621
55622         Reviewed by Dan Bernstein.
55623
55624         Bug 23247: createSVGPathSegCurvetoCubicSmoothAbs doesn't set y2 correctly
55625         https://bugs.webkit.org/show_bug.cgi?id=23247
55626
55627         Also fix problems where partially parsed paths will still have an effect
55628         rather than failing parsing and being ignored.
55629
55630         Test: dom/path-segments.html
55631
55632         * platform/graphics/Path.h:
55633         (WebCore::Path::swap): Added.
55634
55635         * svg/SVGParserUtilities.cpp:
55636         (WebCore::SVGPathParser::parseSVG): Removed unneeded special case for empty string.
55637         (WebCore::PathBuilder::build): Changed to not modify the path if parsing fails.
55638         (WebCore::SVGPathSegListBuilder::build): Changed to not modify the segment list if
55639         parsing fails.
55640         (WebCore::SVGPathSegListBuilder::svgMoveTo): Put the path element into the vector,
55641         not directly into the segment list.
55642         (WebCore::SVGPathSegListBuilder::svgLineTo): Ditto.
55643         (WebCore::SVGPathSegListBuilder::svgLineToHorizontal): Ditto.
55644         (WebCore::SVGPathSegListBuilder::svgLineToVertical): Ditto.
55645         (WebCore::SVGPathSegListBuilder::svgCurveToCubic): Ditto.
55646         (WebCore::SVGPathSegListBuilder::svgCurveToCubicSmooth): Ditto.
55647         (WebCore::SVGPathSegListBuilder::svgCurveToQuadratic): Ditto.
55648         (WebCore::SVGPathSegListBuilder::svgCurveToQuadraticSmooth): Ditto.
55649         (WebCore::SVGPathSegListBuilder::svgArcTo): Ditto.
55650         (WebCore::SVGPathSegListBuilder::svgClosePath): Ditto.
55651
55652         * svg/SVGPathSegCurvetoCubicSmooth.h:
55653         (WebCore::SVGPathSegCurvetoCubicSmooth::SVGPathSegCurvetoCubicSmooth):
55654         Set y2 to y2, not to y.
55655
55656 2009-01-11  Darin Adler  <darin@apple.com>
55657
55658         Reviewed by Oliver Hunt.
55659
55660         Bug 23102: turn on unused parameter warnings in WebCore
55661         https://bugs.webkit.org/show_bug.cgi?id=23102
55662
55663         Fourth step: Remove arguments entirely in the many cases where they are not
55664         needed at all. This step is a little less mechanical than the earlier ones.
55665
55666         * dom/DOMImplementation.cpp:
55667         (WebCore::DOMImplementation::isXMLMIMEType): Pass TextCaseSensitive when creating
55668         the regular expression, since we already specify a-zA-Z in our expression.
55669
55670         * dom/Document.cpp:
55671         (WebCore::Document::databaseThread): Don't pass in the document when creating
55672         a DatabaseThread.
55673
55674         * dom/Element.cpp:
55675         (WebCore::Element::createRareData): Don't pass the element when creating an
55676         ElementRareData.
55677         (WebCore::Element::detach): Don't pass the element when calling resetComputedStyle.
55678         (WebCore::Element::recalcStyle): Ditto.
55679
55680         * dom/ElementRareData.h: Remove the unused Element* from the constructor and
55681         the resetComputedStyle function.
55682
55683         * dom/EventTargetNode.cpp:
55684         (WebCore::EventTargetNode::dispatchEvent): Don't pass ec to dispatchGenericEvent.
55685         (WebCore::EventTargetNode::dispatchGenericEvent): Remove the unused ec argument.
55686         (WebCore::EventTargetNode::dispatchWindowEvent): Don't pass ec to dispatchGenericEvent.
55687         * dom/EventTargetNode.h: Remove the ExceptionCode& argument form disaptchGenericEvent.
55688
55689         * editing/ApplyStyleCommand.cpp: Remove the empty removeBlockStyle function.
55690         (WebCore::ApplyStyleCommand::pushDownTextDecorationStyleAroundNode): Remove the unused
55691         start and end arguments.
55692         (WebCore::ApplyStyleCommand::pushDownTextDecorationStyleAtBoundaries): Don't pass start
55693         and end to pushDownTextDecorationStyleAroundNode.
55694
55695         * editing/ApplyStyleCommand.h: Remove the empty removeBlockStyle function. Removed the
55696         unused start and end arguments from pushDownTextDecorationStyleAroundNode.
55697
55698         * editing/htmlediting.cpp: Removed include of unused RegularExpression.h header.
55699
55700         * html/HTMLTokenizer.cpp:
55701         (WebCore::Token::addAttribute): Removed unused Document* argument.
55702         (WebCore::HTMLTokenizer::parseTag): Don't pass document to addAttribute.
55703
55704         * html/HTMLTokenizer.h: Removed unused Document* argument to to addAttribute.
55705
55706         * page/DOMWindow.cpp:
55707         (WebCore::DOMWindow::localStorage): Don't pass the frame to storageArea.
55708
55709         * page/DragController.cpp:
55710         (WebCore::DragController::dragIsMove): Removed unused DragData argument.
55711         (WebCore::DragController::performDrag): Call concludeEditDrag rather than
55712         concludeDrag.
55713         (WebCore::DragController::tryDocumentDrag): Don't pass dragData to dragIsMove.
55714         (WebCore::DragController::concludeEditDrag): Renamed to make it clear this
55715         should only be called for edit drags. Removed the action mask argument. Also
55716         changed dragIsMove call sites to not pass dragData.
55717
55718         * page/DragController.h: Updated for above changes and tweaked comment format.
55719
55720         * page/Frame.cpp:
55721         (WebCore::createRegExpForLabels): Pass TextCaseSensitive and TextCaseInsensitive
55722         when creating regular expressions for clarity. Call match instead of search,
55723         since both do the same thing except for with negative start offsets, and none
55724         used here are negative.
55725         (WebCore::Frame::matchLabelsAgainstElement): Ditto.
55726
55727         * page/Page.h: Moved TextCaseSensitivity from here to StringImpl.h in platform.
55728
55729         * page/mac/AccessibilityObjectWrapper.mm:
55730         (AXAttributeStringSetHeadingLevel): Removed unused object argument.
55731         (AXAttributedStringAppendText): Ditto.
55732         (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Ditto.
55733
55734         * page/mac/FrameMac.mm:
55735         (WebCore::regExpForLabels): Pass TextCaseSensitive and TextCaseInsensitive
55736         when creating regular expressions for clarity. Call match instead of search,
55737         since both do the same thing except for with negative start offsets, and none
55738         used here are negative.
55739         (WebCore::Frame::matchLabelsAgainstElement): Ditto.
55740
55741         * platform/graphics/SegmentedFontData.cpp:
55742         (WebCore::SegmentedFontData::containsCharacter): Added.
55743         (WebCore::SegmentedFontData::containsCharacters): Updated to check all characters
55744         instead of just the first one, using containsCharacter.
55745
55746         * platform/graphics/SegmentedFontData.h: Made more members private.
55747         Added containsCharacter function member.
55748
55749         * platform/mac/DragImageMac.mm:
55750         (WebCore::dragImageSize): Changed to use RetainPtr<NSImage> directly instead of
55751         DragImageRef for clarity, since this is platform-specific code.
55752         (WebCore::deleteDragImage): Ditto. Also remove argument name to get rid of unused
55753         variable warning.
55754         (WebCore::scaleDragImage): Ditto.
55755         (WebCore::dissolveDragImageToFraction): Ditto.
55756         (WebCore::createDragImageFromImage): Ditto.
55757         (WebCore::createDragImageIconForCachedImage): Ditto.
55758
55759         * platform/mac/WebFontCache.mm:
55760         (acceptableChoice): Removed the unused weight-related arguments.
55761         (betterChoice): Ditto.
55762         (+[WebFontCache internalFontWithFamily:traits:weight:size:]): Ditto.
55763
55764         * platform/posix/FileSystemPOSIX.cpp: Removed the implementation of listDirectory
55765         because we'd rather get a link error rather than a runtime error if we use it
55766         for anything, and right now it's not used.
55767
55768         * platform/text/RegularExpression.cpp: Removed unused private data,
55769         including pattern, lastMatchString, lastMatchOffsets, lastMatchCount,
55770         and lastMatchPos. Made the RegularExpression::Private::regex be private
55771         and use an accessor function to get at it.
55772         (WebCore::RegularExpression::RegularExpression): Removed the const char* version
55773         of the constructor because it's not any more efficient. Changed the boolean
55774         constructor argument to use TextCaseSensitivity instead to make it less likely
55775         we'll use it wrong.
55776         (WebCore::RegularExpression::operator=): Since the only member is a single RefPtr,
55777         just use plain old assignment on it. The only reason we do this instead of using
55778         the compiler generated assignment operator is that we want the Private structure
55779         to be internal to the .cpp file.
55780         (WebCore::RegularExpression::match): Added a null check so we won't crash if
55781         we fail to compile the regular expression. Removed the code to handle multiple
55782         match strings, since that was unused.
55783
55784         * platform/text/RegularExpression.h: Changed the case sensitivity argument to use
55785         TextCaseSensitivity and not have a default value. Removed the default constructor,
55786         and the pattern, match, and pos functions.
55787
55788         * platform/text/StringImpl.h: Moved the TextCaseSensitivity enum here from
55789         Page.h, because we should eventually use it in all the places where we have
55790         an argument to control case sensitivity, starting with the functions in this
55791         class.
55792
55793         * platform/text/mac/ShapeArabic.c:
55794         (shapeUnicode): Removed the unused options and pErrorCode arguments. Even though
55795         this is code borrowed from ICU, this seems like a simple safe change to make.
55796         (shapeArabic): Don't pass options or pErrorCode in to shapeUnicode.
55797
55798         * rendering/RenderPath.cpp:
55799         (WebCore::RenderPath::RenderPath): Removed the unused style argument.
55800         Also removed the type check. The argument already has the correct type,
55801         so it's not helpful to upcast it and then check its type again, unless
55802         we have some reason to believe the type is not reliable. And we don't.
55803
55804         * rendering/RenderPath.h: Removed the RenderStyle* argument to the
55805         constructor. Also removed the explicit declaration of the destructor.
55806         It's not helpful or needed.
55807
55808         * rendering/RenderSVGInlineText.cpp:
55809         (WebCore::RenderSVGInlineText::localCaretRect): Updated the comment here to
55810         make it clear that just returning an empty rect is not a good implementation.
55811         Removed the argument names to get rid of the warning.
55812
55813         * rendering/RenderTreeAsText.cpp:
55814         (WebCore::printBorderStyle): Removed the unused RenderObject argument.
55815         (WebCore::operator<<): Updated for the change to printBorderStyle function.
55816
55817         * storage/DatabaseThread.cpp:
55818         (WebCore::DatabaseThread::DatabaseThread): Removed the unused document argument.
55819         * storage/DatabaseThread.h: Ditto.
55820
55821         * storage/LocalStorage.cpp:
55822         (WebCore::LocalStorage::storageArea): Removed the unused Frame* argument.
55823         * storage/LocalStorage.h: Ditto.
55824
55825         * svg/SVGElement.cpp:
55826         (WebCore::SVGElement::sendSVGLoadEventIfPossible): Don't pass an exception
55827         code location to dispatchGenericEvent.
55828         * svg/SVGElementInstance.cpp:
55829         (WebCore::SVGElementInstance::dispatchEvent): Ditto.
55830
55831         * svg/SVGStyledTransformableElement.cpp: Removed include of unused RegularExpression.h.
55832         (WebCore::SVGStyledTransformableElement::createRenderer): Don't pass style in to
55833         the RenderPath constructor.
55834
55835         * svg/SVGTransformable.cpp: Removed include of unused RegularExpression.h.
55836
55837         * xml/XSLTProcessor.cpp:
55838         (WebCore::createFragmentFromSource): Removed unused sourceNode argument.
55839         (WebCore::XSLTProcessor::transformToFragment): Don't pass sourceNode to createFragmentFromSource.
55840
55841 2009-01-11  Alexey Proskuryakov  <ap@webkit.org>
55842
55843         Reviewed by Darin Adler.
55844
55845         https://bugs.webkit.org/show_bug.cgi?id=23165
55846         Disable application cache dynamic entries support.
55847
55848         * bindings/js/JSDOMApplicationCacheCustom.cpp:
55849         * loader/appcache/DOMApplicationCache.idl:
55850
55851 2009-01-11  Adam Treat  <adam.treat@torchmobile.com>
55852
55853         Reviewed by Darin Adler.
55854
55855         Correct coordinate transformation for deeply nested frames on resizing.  This
55856         fixes https://bugs.webkit.org/show_bug.cgi?id=20766.
55857
55858         Test: fast/frames/frame-deep-nested-resize.html
55859
55860         * rendering/RenderFrameSet.cpp:
55861         (WebCore::RenderFrameSet::userResize):
55862
55863 2009-01-11  Mark Rowe  <mrowe@apple.com>
55864
55865         Tiger build fix.  The connection parameter is still used on Tiger in this method.
55866
55867         * platform/network/mac/ResourceHandleMac.mm:
55868         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
55869
55870 2009-01-11  Darin Adler  <darin@apple.com>
55871
55872         Reviewed by Dan Bernstein.
55873
55874         Bug 23102: turn on unused parameter warnings in WebCore
55875         https://bugs.webkit.org/show_bug.cgi?id=23102
55876
55877         Third step: Deal with cases of arguments used only in assertions.
55878
55879         * dom/MessagePort.cpp:
55880         (WebCore::MessagePortCloseEventTask::performTask): Use ASSERT_UNUSED.
55881         * dom/Worker.cpp:
55882         (WebCore::Worker::notifyFinished): Ditto.
55883         * dom/XMLTokenizer.cpp:
55884         (WebCore::XMLTokenizer::notifyFinished): Ditto.
55885         * loader/appcache/ApplicationCacheGroup.cpp:
55886         (WebCore::ApplicationCacheGroup::failedLoadingMainResource): Ditto.
55887         * loader/appcache/ApplicationCacheStorage.cpp:
55888         (WebCore::ApplicationCacheStorage::verifySchemaVersion): Ditto.
55889         * loader/icon/IconLoader.cpp:
55890         (WebCore::IconLoader::didReceiveData): Since loader and size are only
55891         used when logging, use UNUSED_PARAM when logging is disabled.
55892         * platform/mac/WidgetMac.mm:
55893         (WebCore::Widget::beforeMouseDown): Use ASSERT_UNUSED.
55894         * platform/network/mac/ResourceHandleMac.mm:
55895         (WebCore::ResourceHandle::didCancelAuthenticationChallenge): Use the
55896         argument since it's probably a tiny bit more efficient and gets rid
55897         of the unused argument warning.
55898         * rendering/RenderListMarker.cpp:
55899         (WebCore::RenderListMarker::createInlineBox): Use ASSERT_UNUSED.
55900         * rendering/RenderObject.cpp:
55901         (WebCore::RenderObject::createInlineBox): Ditto.
55902         * rendering/RenderSVGInline.cpp:
55903         (WebCore::RenderSVGInline::createInlineBox): Use UNUSED_PARAM.
55904         I couldn't use ASSERT_UNUSED because it's a single assertion, but it's
55905         the only use for two different arguments.
55906         * rendering/RenderText.cpp:
55907         (WebCore::RenderText::createInlineBox): Use ASSERT_UNUSED.
55908         * rendering/RenderThemeMac.mm:
55909         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]): Ditto.
55910
55911 2009-01-11  Simon Fraser  <simon.fraser@apple.com>
55912
55913         Reviewed by Oliver Hunt
55914
55915         https://bugs.webkit.org/show_bug.cgi?id=23242
55916
55917         Fix CanvasRenderingContext2D::transform to do a pre-multiply,
55918         rather than a post-multiply into m_transform. This bug did not affect
55919         drawing, but did cause m_transform to be incorrect, which impacted
55920         willDraw(), and isPointInPath.
55921
55922         Test: fast/canvas/canvas-incremental-repaint-2.html
55923
55924         * html/CanvasRenderingContext2D.cpp:
55925         (WebCore::CanvasRenderingContext2D::transform):
55926
55927 2009-01-11  Darin Adler  <darin@apple.com>
55928
55929         Reviewed by Dan Bernstein.
55930
55931         Bug 23102: turn on unused parameter warnings in WebCore
55932         https://bugs.webkit.org/show_bug.cgi?id=23102
55933
55934         Second step: Fix simple Objective-C cases where we need to use UNUSED_PARAM.
55935         That's because you can't omit an argument name in Objective-C methods.
55936
55937         * bindings/objc/DOMObject.mm:
55938         (-[DOMObject copyWithZone:]): Use UNUSED_PARAM. Also rename argument to include
55939         the word "unused" so we don't just start using it without removing the macro.
55940         * bindings/objc/WebScriptObject.mm:
55941         (+[WebUndefined allocWithZone:]): Ditto.
55942         (-[WebUndefined initWithCoder:]): Ditto.
55943         (-[WebUndefined encodeWithCoder:]): Ditto.
55944         (-[WebUndefined copyWithZone:]): Ditto.
55945         * page/mac/WebDashboardRegion.m:
55946         (-[WebDashboardRegion copyWithZone:]): Ditto.
55947         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
55948         (WebCore::mainThreadSetNeedsDisplay): Omit argument name.
55949         (-[WebCoreMovieObserver loadStateChanged:]): Use UNUSED_PARAM as above.
55950         (-[WebCoreMovieObserver rateChanged:]): Ditto.
55951         (-[WebCoreMovieObserver sizeChanged:]): Ditto.
55952         (-[WebCoreMovieObserver timeChanged:]): Ditto.
55953         (-[WebCoreMovieObserver didEnd:]): Ditto.
55954         (-[WebCoreMovieObserver newImageAvailable:]): Ditto.
55955         * platform/mac/ScrollbarThemeMac.mm:
55956         (+[ScrollbarPrefsObserver appearancePrefsChanged:]): Ditto.
55957         (+[ScrollbarPrefsObserver behaviorPrefsChanged:]): Ditto.
55958         * platform/mac/SharedTimerMac.mm:
55959         (-[WebCorePowerNotifier didWake:]): Ditto.
55960         * platform/mac/WebCoreKeyGenerator.m:
55961         (-[WebCoreKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): Ditto.
55962         * platform/network/mac/ResourceHandleMac.mm:
55963         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Ditto.
55964         (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]): Ditto.
55965         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
55966         (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
55967         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Ditto.
55968         (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]): Ditto.
55969         (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]): Ditto.
55970         (-[WebCoreResourceHandleAsDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]): Ditto.
55971         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]): Ditto.
55972         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]): Ditto.
55973         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Ditto.
55974         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Ditto.
55975         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Ditto.
55976         (-[WebCoreSynchronousLoader connection:didReceiveResponse:]): Ditto.
55977         (-[WebCoreSynchronousLoader connection:didReceiveData:]): Ditto.
55978         (-[WebCoreSynchronousLoader connectionDidFinishLoading:]): Ditto.
55979         (-[WebCoreSynchronousLoader connection:didFailWithError:]): Ditto.
55980
55981 2009-01-11  Dirk Schulze  <krit@webkit.org>
55982
55983         Reviewed by Darin Adler.
55984
55985         Move platform dependent strokeContains back to RenderPath, Path and delete
55986         unneeded Code in svg.
55987
55988         RenderPath clean-up for strokeContains
55989         [https://bugs.webkit.org/show_bug.cgi?id=22957]
55990
55991         * GNUmakefile.am:
55992         * WebCore.pro:
55993         * WebCore.vcproj/WebCore.vcproj:
55994         * WebCore.xcodeproj/project.pbxproj:
55995         * platform/graphics/Path.h:
55996         * platform/graphics/cairo/PathCairo.cpp:
55997         (WebCore::Path::strokeContains):
55998         * platform/graphics/cg/PathCG.cpp:
55999         (WebCore::Path::strokeContains):
56000         * platform/graphics/qt/PathQt.cpp:
56001         (WebCore::Path::strokeContains):
56002         * rendering/RenderPath.cpp:
56003         (WebCore::RenderPath::strokeContains):
56004         * svg/graphics/cairo/RenderPathCairo.cpp: Removed.
56005         * svg/graphics/cg/CgSupport.cpp: Removed.
56006         * svg/graphics/cg/CgSupport.h: Removed.
56007         * svg/graphics/cg/RenderPathCg.cpp: Removed.
56008         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
56009         * svg/graphics/cg/SVGResourceMaskerCg.mm:
56010         * svg/graphics/qt/RenderPathQt.cpp: Removed.
56011
56012 2009-01-11  Holger Hans Peter Freyther  <zecke@selfish.org>
56013
56014         Reviewed by Anders Carlsson.
56015
56016         [GTK] make distcheck complains that distclean is not deleting JSWorkerContextBase.lut.h
56017
56018         make distcheck pass by adding JSWorkerContextBase.lut.h to the
56019         CLEANFILES that will be cleaned on a make distclean.
56020
56021         * GNUmakefile.am:
56022
56023 2009-01-11  Zalan Bujtas  <zbujtas@gmail.com>
56024
56025         Reviewed by Alexey Proskuryakov.
56026
56027         https://bugs.webkit.org/show_bug.cgi?id=23235
56028         Build fix for non-VIDEO builds.
56029
56030         * rendering/RenderTheme.cpp:
56031         * rendering/RenderTheme.h:
56032
56033 2009-01-11  Gabriella Toth  <gtoth@inf.u-szeged.hu>
56034
56035         Reviewed by Darin Adler.
56036
56037         https://bugs.webkit.org/show_bug.cgi?id=19287
56038         return value of malloc() is not checked in npruntime.cpp
56039
56040         Checking whether malloc can allocate memory or not. If it can't, CRASH macro is invoked
56041         (like in fastMalloc).
56042
56043         * bridge/npruntime.cpp:
56044         (_NPN_GetStringIdentifier):
56045         (_NPN_GetIntIdentifier):
56046         (NPN_InitializeVariantWithStringCopy):
56047         (_NPN_CreateObject):
56048
56049 2009-01-11  Glenn Wilson  <gwilson@google.com>
56050
56051         Reviewed by Darin Adler.
56052
56053         Changes radio buttons so they can be 'checked' even if they
56054         don't have the name attribute set.
56055
56056         See https://bugs.webkit.org/show_bug.cgi?id=21534
56057
56058         Test: fast/html/select-unnamed-radio.html
56059
56060         * html/HTMLInputElement.cpp:
56061         (WebCore::HTMLInputElement::preDispatchEventHandler):
56062
56063 2009-01-11  Bernhard Rosenkraenzer <bero@arklinux.ch>
56064
56065         Reviewed by Darin Adler.
56066
56067         https://bugs.webkit.org/show_bug.cgi?id=22205
56068         Fix compatibility with bison 2.4, partially based on older patch by
56069         Priit Laes <amd@store20.com>
56070
56071         * WebCore/css/CSSGrammar.y: Made compatible with bison 2.4
56072
56073 2009-01-11  Jeremy Moskovich  <jeremy@chromium.org>
56074
56075         Reviewed by Darin Adler.
56076
56077         https://bugs.webkit.org/show_bug.cgi?id=16001
56078         Incorrect assumption that selection is always contiguous LTR.
56079
56080         Test: editing/selection/extend-selection-bidi.html
56081
56082         * rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::fillLineSelectionGap):
56083         Make this function  not assume a contiguous visual LTR selection range.
56084
56085 2009-01-11  Dmitry Titov  <dimich@chromium.org>
56086
56087         Reviewed by Darin Adler.
56088
56089         https://bugs.webkit.org/show_bug.cgi?id=23207
56090         Moved currentTime() to from WebCore to WTF.
56091
56092         Most of these files only have a different header file included.
56093         Various build files reflect removal of SystemTimeGtk, Wx, Qt and Linux
56094         which were removed since they only implemented currentTime().
56095
56096         * ForwardingHeaders/wtf/CurrentTime.h: Added.
56097         * GNUmakefile.am:
56098         * WebCore.base.exp:
56099         * WebCore.pro:
56100         * dom/ContainerNode.cpp:
56101         * dom/Document.cpp:
56102         * dom/Event.cpp:
56103         * history/CachedPage.cpp:
56104         * history/PageCache.cpp:
56105         * html/HTMLMediaElement.cpp:
56106         (WebCore::HTMLMediaElement::load):
56107         (WebCore::HTMLMediaElement::progressEventTimerFired):
56108         * html/HTMLTokenizer.cpp:
56109         * html/PreloadScanner.cpp:
56110         * inspector/InspectorController.cpp:
56111         * loader/Cache.cpp:
56112         (WebCore::Cache::pruneLiveResources):
56113         * loader/CachedImage.cpp:
56114         * loader/CachedResource.cpp:
56115         * loader/FrameLoader.cpp:
56116         * loader/ProgressTracker.cpp:
56117         * loader/icon/IconDatabase.cpp:
56118         * loader/icon/IconRecord.cpp:
56119         * page/DragController.cpp:
56120         * page/Frame.cpp:
56121         * page/FrameView.cpp:
56122         * page/animation/AnimationBase.cpp:
56123         * page/animation/AnimationController.cpp:
56124         * page/animation/KeyframeAnimation.cpp:
56125         * platform/SystemTime.h:
56126         * platform/Timer.cpp:
56127         * platform/graphics/BitmapImage.cpp:
56128         * platform/gtk/MouseEventGtk.cpp:
56129         * platform/gtk/SharedTimerGtk.cpp:
56130         * platform/gtk/SystemTimeGtk.cpp: Removed.
56131         * platform/gtk/SystemTimeLinux.cpp: Removed.
56132         * platform/mac/SystemTimeMac.cpp:
56133         * platform/qt/PlatformMouseEventQt.cpp:
56134         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
56135         * platform/qt/SharedTimerQt.cpp:
56136         * platform/qt/SharedTimerQt.h:
56137         * platform/qt/SystemTimeQt.cpp: Removed.
56138         * platform/win/SharedTimerWin.cpp:
56139         * platform/win/SystemTimeWin.cpp:
56140         * platform/wx/MouseEventWx.cpp:
56141         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
56142         * platform/wx/SharedTimerWx.cpp:
56143         * platform/wx/SystemTimeWx.cpp: Removed.
56144         * rendering/RenderImage.cpp:
56145         * rendering/RenderMedia.cpp:
56146         * svg/animation/SMILTimeContainer.cpp:
56147         * webcore-wx.bkl:
56148         * xml/XMLHttpRequest.cpp:
56149
56150 2009-01-11  Dmitry Titov  <dimich@chromium.org>
56151
56152         Reviewed by Darin Adler.
56153
56154         Make ScheduledAction (Timeout callback) able to execute the callback under WorkerContext.
56155         Part of 'Timers in Workers' work.
56156         https://bugs.webkit.org/show_bug.cgi?id=23223
56157
56158         * bindings/js/ScheduledAction.cpp:
56159         (WebCore::ScheduledAction::execute): new method that takes WorkerContext.
56160         (WebCore::ScheduledAction::executeFunctionInContext): Executes a JSFunction in proper context with 'this' object.
56161         * bindings/js/ScheduledAction.h:
56162
56163 2009-01-10  Eric Carlson  <eric.carlson@apple.com>
56164
56165         Reviewed by Eric Seidel.
56166
56167         https://bugs.webkit.org/show_bug.cgi?id=23210
56168         Make it easier for ports to define custom UI for media controls
56169
56170         * css/CSSStyleSelector.cpp:
56171         (WebCore::CSSStyleSelector::styleForElement): call theme()->styleSheetForMediaControls to
56172         get the media controller style sheet
56173
56174         * rendering/MediaControlElements.cpp:
56175         (WebCore::MediaControlInputElement::hitTest): Added
56176         * rendering/MediaControlElements.h: Updated
56177
56178         * rendering/RenderMedia.cpp:
56179         (WebCore::RenderMedia::forwardEvent): Call element hitTest() method instead of local function
56180         so control elements don't necessarily have to be rectangular
56181
56182         * rendering/RenderTheme.cpp:
56183         (WebCore::RenderTheme::styleSheetForMediaControls):  Added
56184         (WebCore::RenderTheme::hitTestMediaControlPart):  Added
56185         * rendering/RenderTheme.h: Updated
56186
56187 2009-01-10  Simon Fraser  <simon.fraser@apple.com>
56188
56189         Reviewed by Dan Bernstein
56190
56191         https://bugs.webkit.org/show_bug.cgi?id=23222
56192
56193         We need to disable LayoutState when an object has transforms,
56194         because LayoutState is not transform-aware and therefore
56195         repaint rects can be computed incorrectly.
56196
56197         Test: fast/repaint/transform-disable-layoutstate.html
56198
56199         * rendering/RenderBlock.cpp:
56200         (WebCore::RenderBlock::layoutBlock):
56201         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
56202         * rendering/RenderFlexibleBox.cpp:
56203         (WebCore::RenderFlexibleBox::layoutBlock):
56204
56205 2009-01-09  Holger Hans Peter Freyther  <zecke@selfish.org>
56206
56207         Reviewed by Simon Hausmann.
56208
56209         [QT] Make SharedTimer use QBasicTimer
56210
56211         Kill the SharedTimerQt.h and the usage of signal and slots
56212         by using QBasicTimer.
56213
56214         * WebCore.pro:
56215         * platform/qt/SharedTimerQt.cpp:
56216         (WebCore::SharedTimerQt::SharedTimerQt):
56217         (WebCore::SharedTimerQt::inst):
56218         (WebCore::SharedTimerQt::start):
56219         (WebCore::SharedTimerQt::stop):
56220         (WebCore::SharedTimerQt::timerEvent):
56221         (WebCore::setSharedTimerFiredFunction):
56222         (WebCore::setSharedTimerFireTime):
56223         (WebCore::stopSharedTimer):
56224         * platform/qt/SharedTimerQt.h: Removed.
56225
56226 2009-01-09  Adam Bergkvist <adam.bergkvist@ericsson.com>
56227
56228         Reviewed by Holger Freyther.
56229
56230         [CURL] POST without body becomes GET
56231         https://bugs.webkit.org/show_bug.cgi?id=23182
56232
56233         Make sure that method is always set to POST even when the body is
56234         empty. Cleaned up httpBody null check.
56235
56236         * platform/network/curl/ResourceHandleManager.cpp:
56237         (WebCore::ResourceHandleManager::setupPOST):
56238
56239 2009-01-09  Adam Treat  <adam.treat@torchmobile.com>
56240
56241         Build fix.
56242
56243         * plugins/PluginView.cpp:
56244
56245 2009-01-09  Adele Peterson  <adele@apple.com>
56246
56247         Reviewed by Darin Adler.
56248
56249         Fix infinite recursion in clientPaddingLeft and clientPaddingRight.  This changes the code back to
56250         how it was before RenderTextControlSingleLine was split out from RenderTextControl.
56251
56252         No test added since this code is only exercised when trying to place a search field's recent searches popup menu.
56253
56254         * rendering/RenderTextControlSingleLine.cpp:
56255         (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
56256         (WebCore::RenderTextControlSingleLine::clientPaddingRight):
56257
56258 2009-01-09  Darin Adler  <darin@apple.com>
56259
56260         Reviewed by Jon Honeycutt.
56261
56262         Bug 22913: REGRESSION: Space bar doesn't scroll on windows
56263         https://bugs.webkit.org/show_bug.cgi?id=22913
56264         rdar://problem/6479834
56265
56266         * page/EventHandler.cpp:
56267         (WebCore::EventHandler::defaultKeyboardEventHandler): Added code to call
56268         defaultSpaceEventHandler.
56269         (WebCore::EventHandler::defaultSpaceEventHandler): Added. Scrolls down or up based
56270         on the shift key.
56271         * page/EventHandler.h: Added defaultSpaceEventHandler.
56272
56273         * platform/mac/ScrollViewMac.mm:
56274         (WebCore::ScrollView::platformScroll): Return false, because this function does
56275         not scroll. In an earlier version of this patch, I used this to prevent the
56276         patch from affecting the Mac, but I decided to use #if instead.
56277
56278 2009-01-09  Gavin Barraclough  <barraclough@apple.com>
56279
56280         Reviewed by Oliver Hunt.
56281
56282         Delete references to JSValue, removing this class.
56283
56284         * bindings/js/JSWorkerContextCustom.cpp:
56285         (WebCore::JSWorkerContext::self):
56286         * bindings/js/ScriptCallStack.h:
56287
56288 2009-01-09  Dimitri Glazkov  <dglazkov@chromium.org>
56289
56290         Reviewed by Eric Seidel.
56291
56292         Add svg/graphics/skia files.
56293         https://bugs.webkit.org/show_bug.cgi?id=23147
56294
56295         * svg/graphics/skia/RenderPathSkia.cpp: Added.
56296         (WebCore::RenderPath::strokeContains):
56297         * svg/graphics/skia/SVGPaintServerPatternSkia.cpp: Added.
56298         (WebCore::SVGPaintServerPattern::setup):
56299         * svg/graphics/skia/SVGPaintServerSkia.cpp: Added.
56300         (WebCore::SVGPaintServer::draw):
56301         (WebCore::SVGPaintServer::teardown):
56302         (WebCore::SVGPaintServer::renderPath):
56303         * svg/graphics/skia/SVGResourceFilterSkia.cpp: Added.
56304         (WebCore::SVGResourceFilter::createPlatformData):
56305         (WebCore::SVGResourceFilter::prepareFilter):
56306         (WebCore::SVGResourceFilter::applyFilter):
56307         * svg/graphics/skia/SVGResourceMaskerSkia.cpp: Added.
56308         (WebCore::SVGResourceMasker::applyMask):
56309
56310 2009-01-09  Dimitri Glazkov  <dglazkov@chromium.org>
56311
56312         Reviewed by Eric Seidel.
56313
56314         Add SkiaFontWin to platform/graphics/chromium
56315         https://bugs.webkit.org/show_bug.cgi?id=23215
56316
56317         * platform/graphics/skia/SkiaFontWin.cpp: Added.
56318         (WebCore::CachedOutlineKey::CachedOutlineKey):
56319         (WebCore::operator==):
56320         (WebCore::CachedOutlineKeyHash::hash):
56321         (WebCore::CachedOutlineKeyHash::equal):
56322         (WebCore::FIXEDToSkScalar):
56323         (WebCore::deleteOutline):
56324         (WebCore::addPolyCurveToPath):
56325         (WebCore::getPathForGlyph):
56326         (WebCore::SkiaWinOutlineCache::lookupOrCreatePathForGlyph):
56327         (WebCore::SkiaWinOutlineCache::removePathsForFont):
56328         * platform/graphics/skia/SkiaFontWin.h: Added.
56329
56330 2009-01-09  Anders Carlsson  <andersca@apple.com>
56331
56332         Fix build.
56333
56334         * WebCore.LP64.exp:
56335
56336 2009-01-09  Dimitri Glazkov  <dglazkov@chromium.org>
56337
56338         Reviewed by Eric Seidel.
56339
56340         Add PlatformContextSkia and PlatformGraphics.h to platform/graphics/skia
56341         https://bugs.webkit.org/show_bug.cgi?id=23215
56342
56343         * platform/graphics/skia/PlatformContextSkia.cpp: Added.
56344         (PlatformContextSkia::State::State):
56345         (PlatformContextSkia::State::~State):
56346         (PlatformContextSkia::State::applyAlpha):
56347         (PlatformContextSkia::PlatformContextSkia):
56348         (PlatformContextSkia::~PlatformContextSkia):
56349         (PlatformContextSkia::setCanvas):
56350         (PlatformContextSkia::save):
56351         (PlatformContextSkia::restore):
56352         (PlatformContextSkia::drawRect):
56353         (PlatformContextSkia::setupPaintCommon):
56354         (PlatformContextSkia::setupPaintForFilling):
56355         (PlatformContextSkia::setupPaintForStroking):
56356         (PlatformContextSkia::setDrawLooper):
56357         (PlatformContextSkia::setMiterLimit):
56358         (PlatformContextSkia::setAlpha):
56359         (PlatformContextSkia::setLineCap):
56360         (PlatformContextSkia::setLineJoin):
56361         (PlatformContextSkia::setPorterDuffMode):
56362         (PlatformContextSkia::setFillColor):
56363         (PlatformContextSkia::getDrawLooper):
56364         (PlatformContextSkia::getStrokeStyle):
56365         (PlatformContextSkia::setStrokeStyle):
56366         (PlatformContextSkia::setStrokeColor):
56367         (PlatformContextSkia::getStrokeThickness):
56368         (PlatformContextSkia::setStrokeThickness):
56369         (PlatformContextSkia::getTextDrawingMode):
56370         (PlatformContextSkia::setTextDrawingMode):
56371         (PlatformContextSkia::setUseAntialiasing):
56372         (PlatformContextSkia::fillColor):
56373         (PlatformContextSkia::beginPath):
56374         (PlatformContextSkia::addPath):
56375         (PlatformContextSkia::setFillRule):
56376         (PlatformContextSkia::setGradient):
56377         (PlatformContextSkia::setPattern):
56378         (PlatformContextSkia::setDashPathEffect):
56379         (PlatformContextSkia::paintSkPaint):
56380         (PlatformContextSkia::bitmap):
56381         (PlatformContextSkia::isPrinting):
56382         * platform/graphics/skia/PlatformContextSkia.h: Added.
56383         (PlatformContextSkia::currentPath):
56384         (PlatformContextSkia::canvas):
56385         (PlatformContextSkia::gdk_skia):
56386         * platform/graphics/skia/PlatformGraphics.h: Added.
56387
56388 2009-01-09  Dimitri Glazkov  <dglazkov@chromium.org>
56389
56390         Reviewed by Eric Seidel.
56391
56392         Add TransformationMatrixSkia to platform/graphics/skia
56393         https://bugs.webkit.org/show_bug.cgi?id=23215
56394
56395         * platform/graphics/skia/TransformationMatrixSkia.cpp: Added.
56396         (WebCore::TransformationMatrix::TransformationMatrix):
56397         (WebCore::TransformationMatrix::setMatrix):
56398         (WebCore::TransformationMatrix::map):
56399         (WebCore::TransformationMatrix::mapRect):
56400         (WebCore::TransformationMatrix::isIdentity):
56401         (WebCore::TransformationMatrix::reset):
56402         (WebCore::TransformationMatrix::scale):
56403         (WebCore::TransformationMatrix::rotate):
56404         (WebCore::TransformationMatrix::translate):
56405         (WebCore::TransformationMatrix::shear):
56406         (WebCore::TransformationMatrix::det):
56407         (WebCore::TransformationMatrix::inverse):
56408         (WebCore::TransformationMatrix::operator SkMatrix):
56409         (WebCore::TransformationMatrix::operator==):
56410         (WebCore::TransformationMatrix::operator*=):
56411         (WebCore::TransformationMatrix::operator*):
56412         (WebCore::TransformationMatrix::a):
56413         (WebCore::TransformationMatrix::setA):
56414         (WebCore::TransformationMatrix::b):
56415         (WebCore::TransformationMatrix::setB):
56416         (WebCore::TransformationMatrix::c):
56417         (WebCore::TransformationMatrix::setC):
56418         (WebCore::TransformationMatrix::d):
56419         (WebCore::TransformationMatrix::setD):
56420         (WebCore::TransformationMatrix::e):
56421         (WebCore::TransformationMatrix::setE):
56422         (WebCore::TransformationMatrix::f):
56423         (WebCore::TransformationMatrix::setF):
56424
56425 2009-01-09  Alexey Proskuryakov  <ap@webkit.org>
56426
56427         Reviewed by Darin Adler.
56428
56429         <rdar://problem/6477502> Repro crash reloading page using HTML5 AppCache on Windows
56430
56431         Test: http/tests/appcache/reload.html
56432
56433         On Windows, reloading resulted in the following sequence of events:
56434         1) A new main resource loader was created and associated with the cache. Its document loader
56435         was not associated with the cache yet.
56436         2) The old document loader was destroyed, and since it was the last one, ApplicationCacheGroup
56437         teardown started, with newestCache being zeroed out.
56438         3) The new document loader was associated with the cache group, and cache update started.
56439         4) Since newestCache was null, this caused many problems.
56440
56441         * loader/appcache/ApplicationCacheGroup.cpp:
56442         (WebCore::ApplicationCacheGroup::documentLoaderDestroyed): Improve comments and assertions,
56443         no functional changes.
56444         (WebCore::ApplicationCacheGroup::associateDocumentLoaderWithCache): Revive the cache group
56445         if its newest cache pointer is already saved for teardown. Note that the cache pointer
56446         validity is ensured by MainResourceLoader that holds a reference to it.
56447
56448 2009-01-09  Darin Fisher  <darin@chromium.org>
56449
56450         Reviewed by Eric Seidel.
56451
56452         https://bugs.webkit.org/show_bug.cgi?id=23214
56453         Upstream platform/network/chromium/
56454
56455         * platform/network/chromium/AuthenticationChallenge.h: Added.
56456         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
56457         (WebCore::AuthenticationChallenge::sourceHandle):
56458         * platform/network/chromium/AuthenticationChallengeChromium.cpp: Added.
56459         (WebCore::AuthenticationChallenge::platformCompare):
56460         * platform/network/chromium/CookieJarChromium.cpp: Added.
56461         (WebCore::setCookies):
56462         (WebCore::cookies):
56463         (WebCore::cookiesEnabled):
56464         * platform/network/chromium/DNSChromium.cpp: Added.
56465         (WebCore::prefetchDNS):
56466         * platform/network/chromium/NetworkStateNotifierChromium.cpp: Added.
56467         (WebCore::NetworkStateNotifier::updateState):
56468         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
56469         * platform/network/chromium/NetworkStateNotifierPrivate.h: Added.
56470         * platform/network/chromium/ResourceError.h: Added.
56471         (WebCore::ResourceError::ResourceError):
56472         * platform/network/chromium/ResourceRequest.h: Added.
56473         (WebCore::ResourceRequest::):
56474         (WebCore::ResourceRequest::ResourceRequest):
56475         (WebCore::ResourceRequest::frame):
56476         (WebCore::ResourceRequest::setFrame):
56477         (WebCore::ResourceRequest::setTargetType):
56478         (WebCore::ResourceRequest::targetType):
56479         (WebCore::ResourceRequest::originPid):
56480         (WebCore::ResourceRequest::setOriginPid):
56481         (WebCore::ResourceRequest::securityInfo):
56482         (WebCore::ResourceRequest::setSecurityInfo):
56483         (WebCore::ResourceRequest::doUpdatePlatformRequest):
56484         (WebCore::ResourceRequest::doUpdateResourceRequest):
56485         * platform/network/chromium/ResourceResponse.h:
56486         (WebCore::ResourceResponse::ResourceResponse):
56487         (WebCore::ResourceResponse::getSecurityInfo):
56488         (WebCore::ResourceResponse::setSecurityInfo):
56489         (WebCore::ResourceResponse::isContentFiltered):
56490         (WebCore::ResourceResponse::setIsContentFiltered):
56491         (WebCore::ResourceResponse::doUpdateResourceResponse):
56492
56493 2009-01-09  Peter Kasting  <pkasting@google.com>
56494
56495         Reviewed by David Hyatt.
56496
56497         https://bugs.webkit.org/show_bug.cgi?id=22995
56498         Fix flaky image animation by resetting the metadata for a frame when
56499         we get new data for that frame.  This fixes animations that halted
56500         when the next frame of the animation wasn't complete by the time the
56501         current frame's duration expired.
56502
56503         * platform/graphics/BitmapImage.cpp:
56504         (WebCore::BitmapImage::destroyDecodedData):
56505         (WebCore::BitmapImage::dataChanged):
56506         * platform/graphics/BitmapImage.h:
56507         (WebCore::FrameData::~FrameData):
56508         * platform/graphics/cairo/ImageCairo.cpp:
56509         (WebCore::FrameData::clear):
56510         * platform/graphics/cg/ImageCG.cpp:
56511         (WebCore::FrameData::clear):
56512         * platform/graphics/qt/ImageQt.cpp:
56513         (WebCore::FrameData::clear):
56514         * platform/graphics/wx/ImageWx.cpp:
56515         (WebCore::FrameData::clear):
56516
56517 2009-01-09  Simon Hausmann  <simon.hausmann@nokia.com>
56518
56519         Rubber-stamped by Tor Arne Vestbø.
56520
56521         Swap the .h and the .cpp output in the Qt build for the
56522         UserAgentStyleSheetData files, to put the definition in the .cpp file
56523         and the declaration in the header file.
56524
56525         * WebCore.pro:
56526
56527 2009-01-09  David Levin  <levin@chromium.org>
56528
56529         Reviewed by Oliver Hunt.
56530
56531         https://bugs.webkit.org/show_bug.cgi?id=23175
56532
56533         Added forwarding header.
56534
56535         * ForwardingHeaders/wtf/PtrAndFlags.h: Added.
56536
56537 2009-01-09  Tor Arne Vestbø  <tavestbo@trolltech.com>
56538
56539         Reviewed by Simon Hausmann.
56540
56541         Prevent qmake from generating duplicate rules for embedded stylesheets
56542
56543         The STYLESHEETS_EMBED variable used to contain only one file name, but
56544         now that it is a list of files we need to change it to be a dependency
56545         for the stylesheet generator instead of the input.
56546
56547         * WebCore.pro:
56548
56549 2009-01-09  Simon Hausmann  <simon.hausmann@nokia.com>
56550
56551         Reviewed by Tor Arne Vestbø.
56552
56553         Fix qmake warning about missing test function, a contains() call was
56554         missing.
56555
56556         * WebCore.pro:
56557
56558 2009-01-09  Simon Hausmann  <simon.hausmann@nokia.com>
56559
56560         Rubber-stamped by Tor Arne Vestbø.
56561
56562         Add the Qt API headers to HEADERS, too, for improved completion in IDEs.
56563
56564         * WebCore.pro:
56565
56566 2009-01-09  David Levin  <levin@chromium.org>
56567
56568         Reviewed by Alexey Proskuryakov.
56569
56570         https://bugs.webkit.org/show_bug.cgi?id=23199
56571
56572         Fix deref's of string happening on two different threads.
56573
56574         No observable change in behavior, so no test.  However, there are asserts
56575         being added for https://bugs.webkit.org/show_bug.cgi?id=23175 which
56576         will detect this issue while running the normal worker tests.
56577
56578         * dom/WorkerThread.cpp:
56579         (WebCore::WorkerThreadStartupData::create):
56580         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
56581         (WebCore::WorkerThread::WorkerThread):
56582         (WebCore::WorkerThread::workerThread):
56583         * dom/WorkerThread.h:
56584
56585 2009-01-08  Dan Bernstein  <mitz@apple.com>
56586
56587         Reviewed by Adam Roben.
56588
56589         - use native glyph support in Core Graphics when available
56590
56591         * platform/graphics/win/FontCGWin.cpp:
56592         (WebCore::Font::drawGlyphs): Changed to use drawGDIGlyphs() only if
56593         native glyph support is not available or stroking is required. Changed
56594         to pass the font's useGDI() flag to wkSetCGContextFontRenderingStyle to
56595         request the use of native glyphs.
56596         * platform/graphics/win/FontCustomPlatformData.cpp:
56597         (WebCore::FontCustomPlatformData::fontPlatformData): Added a call to
56598         wkSetFontPlatformInfo to attach the LOGFONT to the CGFont.
56599         * platform/graphics/win/FontPlatformDataCGWin.cpp:
56600         (WebCore::FontPlatformData::platformDataInit): Ditto.
56601
56602 2009-01-08  Peter Kasting  <pkasting@google.com>
56603
56604         Reviewed by Sam Weinig.
56605
56606         https://bugs.webkit.org/show_bug.cgi?id=22929
56607         Fix memory regression when decoding large animated GIFs.
56608
56609         * platform/graphics/cg/ImageSourceCG.cpp:
56610         (WebCore::ImageSource::clear):
56611
56612 2009-01-08  Scott Violet  <sky@chromium.org>
56613
56614         Reviewed by Eric Seidel (and Adam Barth).
56615
56616         Fix Images to return their file extension
56617         http://code.google.com/p/chromium/issues/detail?id=5827
56618
56619         * platform/graphics/skia/ImageSourceSkia.cpp:
56620         (WebCore::ImageSource::filenameExtension):
56621
56622 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56623
56624         Reviewed by Eric Seidel.
56625
56626         Add PathSkia and PatternSkia implementations to WebCore
56627         https://bugs.webkit.org/show_bug.cgi?id=23200
56628
56629         * platform/graphics/skia/PathSkia.cpp: Added.
56630         (WebCore::Path::Path):
56631         (WebCore::Path::~Path):
56632         (WebCore::Path::operator=):
56633         (WebCore::Path::isEmpty):
56634         (WebCore::Path::contains):
56635         (WebCore::Path::translate):
56636         (WebCore::Path::boundingRect):
56637         (WebCore::Path::moveTo):
56638         (WebCore::Path::addLineTo):
56639         (WebCore::Path::addQuadCurveTo):
56640         (WebCore::Path::addBezierCurveTo):
56641         (WebCore::Path::addArcTo):
56642         (WebCore::Path::closeSubpath):
56643         (WebCore::Path::addArc):
56644         (WebCore::Path::addRect):
56645         (WebCore::Path::addEllipse):
56646         (WebCore::Path::clear):
56647         (WebCore::convertPathPoints):
56648         (WebCore::Path::apply):
56649         (WebCore::Path::transform):
56650         (WebCore::Path::debugString):
56651         (WebCore::boundingBoxForCurrentStroke):
56652         (WebCore::Path::strokeBoundingRect):
56653         * platform/graphics/skia/PatternSkia.cpp: Added.
56654         (WebCore::shaderRule):
56655         (WebCore::Pattern::createPlatformPattern):
56656
56657 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56658
56659         Reviewed by Eric Seidel.
56660
56661         Add ImageSourceSkia to platform/graphics/skia
56662         https://bugs.webkit.org/show_bug.cgi?id=23200
56663
56664         ImageSourceSkia is mostly a hack to support our
56665         ICO decoder model.  See ImageSourceSkia.h for more
56666         explanation.  Eventually we'd like to make our ICO
56667         decoder lazy.
56668
56669         * platform/graphics/ImageSource.h: mark m_decoder as protected
56670         * platform/graphics/skia/ImageSourceSkia.cpp: Added.
56671         (WebCore::createDecoder):
56672         (WebCore::ImageSource::ImageSource):
56673         (WebCore::ImageSource::~ImageSource):
56674         (WebCore::ImageSource::clear):
56675         (WebCore::ImageSource::initialized):
56676         (WebCore::ImageSource::setData):
56677         (WebCore::ImageSource::isSizeAvailable):
56678         (WebCore::ImageSource::size):
56679         (WebCore::ImageSource::frameSizeAtIndex):
56680         (WebCore::ImageSource::repetitionCount):
56681         (WebCore::ImageSource::frameCount):
56682         (WebCore::ImageSource::createFrameAtIndex):
56683         (WebCore::ImageSource::frameIsCompleteAtIndex):
56684         (WebCore::ImageSource::frameDurationAtIndex):
56685         (WebCore::ImageSource::frameHasAlphaAtIndex):
56686         (WebCore::ImageSourceSkia::setData):
56687         (WebCore::ImageSource::filenameExtension):
56688         * platform/graphics/skia/ImageSourceSkia.h: Added.
56689
56690 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56691
56692         Reviewed by Eric Seidel.
56693
56694         Add NativeImageSkia (PlatformImagePtr) to platform/graphics/skia
56695         https://bugs.webkit.org/show_bug.cgi?id=23200
56696
56697         * platform/graphics/skia/NativeImageSkia.cpp: Added.
56698         (NativeImageSkia::NativeImageSkia):
56699         (NativeImageSkia::decodedSize):
56700         (NativeImageSkia::hasResizedBitmap):
56701         (NativeImageSkia::resizedBitmap):
56702         (NativeImageSkia::shouldCacheResampling):
56703         * platform/graphics/skia/NativeImageSkia.h: Added.
56704         (NativeImageSkia::setDataComplete):
56705         (NativeImageSkia::isDataComplete):
56706
56707 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56708
56709         Reviewed by Eric Seidel.
56710
56711         Add ImageBufferSkia and ImageSkia files.
56712         https://bugs.webkit.org/show_bug.cgi?id=23200
56713         For now we've left BitmapImage and BitmapImageSingleFrameSkia
56714         implementations in the ImageSkia file (like ImageCG has), but
56715         we intend to break them out into their own files.
56716
56717         * platform/graphics/skia/ImageBufferSkia.cpp: Added.
56718         (WebCore::ImageBufferData::ImageBufferData):
56719         (WebCore::ImageBuffer::ImageBuffer):
56720         (WebCore::ImageBuffer::~ImageBuffer):
56721         (WebCore::ImageBuffer::context):
56722         (WebCore::ImageBuffer::image):
56723         (WebCore::ImageBuffer::getImageData):
56724         (WebCore::ImageBuffer::putImageData):
56725         (WebCore::ImageBuffer::toDataURL):
56726         * platform/graphics/skia/ImageSkia.cpp: Added.
56727         (WebCore::):
56728         (WebCore::FrameData::clear):
56729         (WebCore::Image::loadPlatformResource):
56730         (WebCore::Image::drawPattern):
56731         (WebCore::BitmapImage::initPlatformData):
56732         (WebCore::BitmapImage::invalidatePlatformData):
56733         (WebCore::BitmapImage::checkForSolidColor):
56734         (WebCore::BitmapImage::draw):
56735         (WebCore::BitmapImageSingleFrameSkia::draw):
56736         (WebCore::BitmapImageSingleFrameSkia::create):
56737
56738 2009-01-08  James Robinson  <jamesr@google.com>
56739
56740         Reviewed by Mark Rowe.
56741         Landed by Pamela Greene.
56742
56743         WebCore::Event::timeStamp() is a simple accessor and should be const
56744
56745         https://bugs.webkit.org/show_bug.cgi?id=23176
56746
56747         * dom/Event.h:
56748         (WebCore::Event::timeStamp):
56749
56750 2009-01-08  Antti Koivisto  <antti@apple.com>
56751
56752         Reviewed by Oliver Hunt.
56753
56754         Fix <rdar://problem/6467206>
56755         Resources loaded from the memory cache do not get correctly inserted into the DocLoader resource map (22994)
56756
56757         Use CachedResourceHandle in document resource map so resources get updated correctly when using
56758         using cache validation conditionals.
56759
56760         * loader/Cache.cpp:
56761         (WebCore::Cache::evict):
56762         * loader/DocLoader.cpp:
56763         (WebCore::DocLoader::~DocLoader):
56764         (WebCore::DocLoader::requestResource):
56765         (WebCore::DocLoader::setAutoLoadImages):
56766         (WebCore::DocLoader::removeCachedResource):
56767         * loader/DocLoader.h:
56768         (WebCore::DocLoader::cachedResource):
56769         (WebCore::DocLoader::allCachedResources):
56770         * loader/DocumentLoader.cpp:
56771         (WebCore::DocumentLoader::getSubresources):
56772         * loader/ImageLoader.cpp:
56773         (WebCore::ImageLoader::updateFromElement):
56774
56775 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56776
56777         Reviewed by Eric Seidel.
56778
56779         Add a cleaned-up GraphicsContextSkia implementation to WebKit.
56780         https://bugs.webkit.org/show_bug.cgi?id=23191
56781
56782         * platform/graphics/skia/GraphicsContextSkia.cpp: Added.
56783         (WebCore::):
56784         (WebCore::GraphicsContext::GraphicsContext):
56785         (WebCore::GraphicsContext::~GraphicsContext):
56786         (WebCore::GraphicsContext::platformContext):
56787         (WebCore::GraphicsContext::savePlatformState):
56788         (WebCore::GraphicsContext::restorePlatformState):
56789         (WebCore::GraphicsContext::beginTransparencyLayer):
56790         (WebCore::GraphicsContext::endTransparencyLayer):
56791         (WebCore::GraphicsContext::addInnerRoundedRectClip):
56792         (WebCore::GraphicsContext::addPath):
56793         (WebCore::GraphicsContext::beginPath):
56794         (WebCore::GraphicsContext::clearPlatformShadow):
56795         (WebCore::GraphicsContext::clearRect):
56796         (WebCore::GraphicsContext::clip):
56797         (WebCore::GraphicsContext::clipOut):
56798         (WebCore::GraphicsContext::clipOutEllipseInRect):
56799         (WebCore::GraphicsContext::clipPath):
56800         (WebCore::GraphicsContext::clipToImageBuffer):
56801         (WebCore::GraphicsContext::concatCTM):
56802         (WebCore::GraphicsContext::drawConvexPolygon):
56803         (WebCore::GraphicsContext::drawEllipse):
56804         (WebCore::GraphicsContext::drawFocusRing):
56805         (WebCore::GraphicsContext::drawLine):
56806         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
56807         (WebCore::GraphicsContext::drawLineForText):
56808         (WebCore::GraphicsContext::drawRect):
56809         (WebCore::GraphicsContext::fillPath):
56810         (WebCore::GraphicsContext::fillRect):
56811         (WebCore::GraphicsContext::fillRoundedRect):
56812         (WebCore::GraphicsContext::getCTM):
56813         (WebCore::GraphicsContext::roundToDevicePixels):
56814         (WebCore::GraphicsContext::scale):
56815         (WebCore::GraphicsContext::setAlpha):
56816         (WebCore::GraphicsContext::setCompositeOperation):
56817         (WebCore::GraphicsContext::setImageInterpolationQuality):
56818         (WebCore::GraphicsContext::setLineCap):
56819         (WebCore::GraphicsContext::setLineDash):
56820         (WebCore::GraphicsContext::setLineJoin):
56821         (WebCore::GraphicsContext::setMiterLimit):
56822         (WebCore::GraphicsContext::setPlatformFillColor):
56823         (WebCore::GraphicsContext::setPlatformShadow):
56824         (WebCore::GraphicsContext::setPlatformStrokeColor):
56825         (WebCore::GraphicsContext::setPlatformStrokeStyle):
56826         (WebCore::GraphicsContext::setPlatformStrokeThickness):
56827         (WebCore::GraphicsContext::setPlatformTextDrawingMode):
56828         (WebCore::GraphicsContext::setURLForRect):
56829         (WebCore::GraphicsContext::setUseAntialiasing):
56830         (WebCore::GraphicsContext::strokeArc):
56831         (WebCore::GraphicsContext::strokePath):
56832         (WebCore::GraphicsContext::strokeRect):
56833         (WebCore::GraphicsContext::rotate):
56834         (WebCore::GraphicsContext::translate):
56835
56836 2009-01-08  David Hyatt  <hyatt@apple.com>
56837
56838         Fix for <rdar://problem/6465682> REGRESSION: In Mail, can't force a message to auto scroll.
56839
56840         Make scrollRectIntoViewRecursively call out to the HostWindow to continue the recursive scroll for
56841         any scrollable views that may contain a WebView.  Does nothing on platforms other than the Mac, but
56842         might eventually be of interest to other platforms.
56843
56844         Reviewed by Oliver Hunt
56845
56846         * WebCore.base.exp:
56847         * page/Chrome.cpp:
56848         (WebCore::Chrome::scrollRectIntoView):
56849         * page/Chrome.h:
56850         * page/ChromeClient.h:
56851         (WebCore::ChromeClient::scrollRectIntoView):
56852         * platform/HostWindow.h:
56853         * platform/ScrollView.cpp:
56854         (WebCore::ScrollView::scrollRectIntoViewRecursively):
56855
56856 2009-01-08  Adam Treat  <adam.treat@torchmobile.com>
56857
56858         Reviewed by David Hyatt.
56859
56860         No need to make this part of HostWindow and moreover HostWindow should
56861         not have any reference to non-platform parts of WebCore.
56862
56863         * page/Chrome.h:
56864         * page/FrameView.cpp:
56865         (WebCore::FrameView::setContentsSize):
56866         * platform/HostWindow.h:
56867
56868 2009-01-08  Eric Carlson  <eric.carlson@apple.com>
56869
56870         Reviewed by Adele Peterson.
56871
56872         Simplify Mac interfaces for drawing media controller elements
56873
56874         <rdar://problem/6293969>
56875
56876         * WebCore.base.exp: update for changed WebKitSystemInterface media controller functions
56877
56878         * platform/mac/WebCoreSystemInterface.h: Ditto
56879         * platform/mac/WebCoreSystemInterface.mm: Ditto
56880
56881         * rendering/MediaControlElements.h:
56882         (WebCore::): Add MediaControlElements enum
56883
56884         * rendering/RenderThemeMac.mm:
56885         (WebCore::RenderThemeMac::paintMediaFullscreenButton):  update for changed WebKitSystemInterface
56886         media controller functions
56887         (WebCore::RenderThemeMac::paintMediaMuteButton): Ditto
56888         (WebCore::RenderThemeMac::paintMediaPlayButton): Ditto
56889         (WebCore::RenderThemeMac::paintMediaSeekBackButton): Ditto
56890         (WebCore::RenderThemeMac::paintMediaSeekForwardButton): Ditto
56891         (WebCore::RenderThemeMac::paintMediaSliderTrack): Ditto
56892         (WebCore::RenderThemeMac::paintMediaSliderThumb): Ditto
56893
56894 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56895
56896         Reviewed by Eric Seidel.
56897
56898         Add two more files for platform/graphics/skia.
56899         https://bugs.webkit.org/show_bug.cgi?id=23191
56900
56901         * platform/graphics/skia/GradientSkia.cpp: Added.
56902         (WebCore::Gradient::platformDestroy):
56903         (WebCore::F2B):
56904         (WebCore::makeSkColor):
56905         (WebCore::totalStopsNeeded):
56906         (WebCore::fillStops):
56907         (WebCore::compareStops):
56908         (WebCore::Gradient::platformGradient):
56909         (WebCore::Gradient::fill):
56910         * platform/graphics/skia/GraphicsContextPlatformPrivate.h: Copied from WebCore/bindings/js/ScriptValue.h.
56911         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
56912         (WebCore::GraphicsContextPlatformPrivate::context):
56913
56914 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56915
56916         Reviewed by Eric Seidel.
56917
56918         Commit the right files this time!  (Instead of the ugly unfixed ones.)
56919         https://bugs.webkit.org/show_bug.cgi?id=23191
56920
56921         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
56922         * platform/graphics/skia/FloatPointSkia.cpp:
56923         * platform/graphics/skia/FloatRectSkia.cpp:
56924         * platform/graphics/skia/IntPointSkia.cpp:
56925         * platform/graphics/skia/IntRectSkia.cpp:
56926         (WebCore::IntRect::operator SkRect):
56927         * platform/graphics/skia/SkiaUtils.cpp:
56928         (WebCore::):
56929         (WebCore::WebCoreCompositeToSkiaComposite):
56930         (WebCore::SkPMColorToWebCoreColor):
56931         (WebCore::IntersectRectAndRegion):
56932         (WebCore::ClipRectToCanvas):
56933         (WebCore::SkPathContainsPoint):
56934         (WebCore::scratchContext):
56935         * platform/graphics/skia/SkiaUtils.h:
56936         (WebCore::WebCoreFloatToSkScalar):
56937         (WebCore::WebCoreDoubleToSkScalar):
56938
56939 2009-01-08  Dimitri Glazkov  <dglazkov@chromium.org>
56940
56941         Reviewed by Eric Seidel.
56942
56943         Add the first few files from platform/graphics/skia
56944         https://bugs.webkit.org/show_bug.cgi?id=23191
56945
56946         These are all pretty simple.
56947         Eventually BitmapImageSingleFrameSkia might grow a .cpp file, for now it's just a header.
56948         SkiaUtils needs to die, but that can come later, no need to block up-streaming now.
56949
56950         * platform/graphics/skia/BitmapImageSingleFrameSkia.h: Added.
56951         (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
56952         (WebCore::BitmapImageSingleFrameSkia::size):
56953         (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
56954         (WebCore::BitmapImageSingleFrameSkia::decodedSize):
56955         (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
56956         (WebCore::BitmapImageSingleFrameSkia::BitmapImageSingleFrameSkia):
56957         * platform/graphics/skia/FloatPointSkia.cpp: Copied from WebCore/platform/graphics/mac/FloatPointMac.mm.
56958         (WebCore::FloatPoint::FloatPoint):
56959         (WebCore::FloatPoint::operator SkPoint):
56960         * platform/graphics/skia/FloatRectSkia.cpp: Copied from WebCore/platform/graphics/qt/IntRectQt.cpp.
56961         (WebCore::FloatRect::FloatRect):
56962         (WebCore::FloatRect::operator SkRect):
56963         * platform/graphics/skia/IntPointSkia.cpp: Copied from WebCore/platform/graphics/win/IntPointWin.cpp.
56964         (WebCore::IntPoint::IntPoint):
56965         (WebCore::IntPoint::operator SkIPoint):
56966         (WebCore::IntPoint::operator SkPoint):
56967         * platform/graphics/skia/IntRectSkia.cpp: Copied from WebCore/platform/graphics/qt/IntRectQt.cpp.
56968         (WebCore::IntRect::operator SkIRect):
56969         (WebCore::IntRect::operator SkRect):
56970         (WebCore::IntRect::IntRect):
56971         * platform/graphics/skia/SkiaUtils.cpp: Added.
56972         (WebCore::WebCorePointToSkiaPoint):
56973         (WebCore::WebCoreRectToSkiaRect):
56974         (WebCore::):
56975         (WebCore::WebCoreCompositeToSkiaComposite):
56976         (WebCore::InvScaleByte):
56977         (WebCore::SkPMColorToColor):
56978         (WebCore::SkPMColorToWebCoreColor):
56979         (WebCore::IntersectRectAndRegion):
56980         (WebCore::ClipRectToCanvas):
56981         (WebCore::SkPathContainsPoint):
56982         (WebCore::scratchContext):
56983         * platform/graphics/skia/SkiaUtils.h: Added.
56984         (WebCore::WebCoreFloatToSkScalar):
56985         (WebCore::WebCoreDoubleToSkScalar):
56986
56987 2009-01-08  Pierre-Olivier Latour  <pol@apple.com>
56988
56989         Reviewed by Dan Bernstein.
56990
56991         Fixed CSS Transitions with zero-duration but non-zero-delay not starting or ending properly.
56992
56993         Also updated AnimationController::numberOfActiveAnimations() which now returns the number of "active" animations,
56994         instead of simply the "running" ones.
56995
56996         https://bugs.webkit.org/show_bug.cgi?id=23177
56997
56998         Tests: transitions/zero-duration-with-non-zero-delay-end.html
56999                transitions/zero-duration-with-non-zero-delay-start.html
57000
57001         * page/animation/AnimationBase.cpp:
57002         (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
57003         * page/animation/AnimationController.cpp:
57004         (WebCore::AnimationControllerPrivate::animationTimerFired):
57005         * page/animation/CompositeAnimation.cpp:
57006         (WebCore::CompositeAnimationPrivate::numberOfActiveAnimations):
57007
57008 2009-01-08  Alexey Proskuryakov  <ap@webkit.org>
57009
57010         Reviewed by Oliver Hunt.
57011
57012         <rdar://problem/6477501> Repro crash loading HTML5 AppCache manifest directly
57013
57014         The crash happened whenever a cached resource was downloaded, as opposed to used directly.
57015
57016         No test, as downloading cannot be tested automatically.
57017
57018         * loader/MainResourceLoader.cpp: (WebCore::MainResourceLoader::continueAfterContentPolicy):
57019         Cancel downloads that do not have an associated ResourceHandle, such as downloads from the
57020         application cache. Activity window shows "The URL can't be shown", and the frame remains empty.
57021
57022 2009-01-08  Justin McPherson <justin.mcpherson@nokia.com>
57023
57024         Reviewed by Simon Hausmann.
57025
57026         Fix the Qt build on older X11 systems with special X paths.
57027
57028         * WebCore.pro: Use the x11 qmake config to pull in extra paths
57029         needed for NPAPI.
57030
57031 2009-01-08  Adam Roben  <aroben@apple.com>
57032
57033         Windows build fix after r39699
57034
57035         * DerivedSources.cpp: Added JSDOMStringList.cpp.
57036
57037 2009-01-08  Kent Hansen  <khansen@trolltech.com>
57038
57039         Reviewed by Simon Hausmann.
57040
57041         Fix copy & paste of images in the Qt port.
57042
57043         Store the QPixmap itself in the mimedata, not a QPixmap* converted to bool.
57044
57045         * platform/qt/ClipboardQt.cpp:
57046         (WebCore::ClipboardQt::declareAndWriteDragImage):
57047
57048 2009-01-08  Hiroyuki Ikezoe  <poincare@ikezoe.net>
57049
57050         Reviewed by Holger Freyther.
57051
57052         https://bugs.webkit.org/show_bug.cgi?id=23127
57053
57054         Invoke pango_coverage_get with each Unicode character.
57055
57056         * platform/graphics/gtk/SimpleFontDataPango.cpp:
57057         (WebCore::SimpleFontData::containsCharacters):
57058
57059 2009-01-07  Alexey Proskuryakov  <ap@webkit.org>
57060
57061         Reviewed by Darin Adler.
57062
57063         Part one of
57064         https://bugs.webkit.org/show_bug.cgi?id=23165
57065         Add support for application cache dynamic entries
57066
57067         Test: http/tests/appcache/dynamic-entries-no-cache.html
57068
57069         * DerivedSources.make:
57070         * GNUmakefile.am:
57071         * WebCore.pro:
57072         * WebCore.scons:
57073         * WebCore.vcproj/WebCore.vcproj:
57074         * WebCore.xcodeproj/project.pbxproj:
57075         * WebCoreSources.bkl:
57076         Added new files.
57077
57078         * bindings/js/JSDOMApplicationCacheCustom.cpp: (WebCore::JSDOMApplicationCache::hasItem):
57079         Added binding for hasItem(). Like other DOMApplicationCache methods, it needs to be custom
57080         to resolve relative URLs correctly.
57081
57082         * bindings/js/JSDOMStringListCustom.cpp: Added.
57083         * dom/DOMStringList.cpp: Added.
57084         * dom/DOMStringList.h: Added.
57085         * dom/DOMStringList.idl: Added.
57086         Added an implementation of DOM 3 Core DOMStringList interface, which is returned by
57087         DOMApplicationCache items attribute.
57088
57089         * dom/StaticStringList.cpp: Added.
57090         * dom/StaticStringList.h: Added.
57091         An implementation of DOMStringList that makes a snapshot (for DOMApplicationCache, this
57092         matches Firefox, as the spec doesn't say whether the returned list should be live or not).
57093
57094         * loader/appcache/ApplicationCache.h: Added a list of pending dynamic entry actions, to be
57095         used in the near future.
57096
57097         * loader/appcache/DOMApplicationCache.idl: Updated for spec changes. Instead of length
57098         attribute and item(), we now have an items attribute that returns a DOMStringList, and a
57099         hasItem convenience method.
57100
57101         * loader/appcache/DOMApplicationCache.cpp:
57102         (WebCore::DOMApplicationCache::items):
57103         (WebCore::DOMApplicationCache::hasItem):
57104         * loader/appcache/DOMApplicationCache.h:
57105         Added implementations of items attribute and hasItem() (note that underlying ApplicationCache
57106         methods are still unimplemented though).
57107
57108         * page/DOMWindow.idl: Expose a DOMStringList global constructor.
57109
57110 2009-01-07  Chris Marrin  <cmarrin@apple.com>
57111
57112         Reviewed by Eric Seidel.
57113
57114         https://bugs.webkit.org/show_bug.cgi?id=23122
57115
57116         This completes the removal of dependencies on WebKit from the platform code
57117
57118         * css/CSSComputedStyleDeclaration.cpp:
57119         (WebCore::getDelayValue):
57120         (WebCore::getDurationValue):
57121         (WebCore::getTimingFunctionValue):
57122         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
57123         * css/CSSHelper.h:
57124         * css/CSSStyleSelector.cpp:
57125         (WebCore::CSSStyleSelector::mapAnimationDelay):
57126         (WebCore::CSSStyleSelector::mapAnimationDirection):
57127         (WebCore::CSSStyleSelector::mapAnimationDuration):
57128         (WebCore::CSSStyleSelector::mapAnimationIterationCount):
57129         (WebCore::CSSStyleSelector::mapAnimationName):
57130         (WebCore::CSSStyleSelector::mapAnimationPlayState):
57131         (WebCore::CSSStyleSelector::mapAnimationProperty):
57132         (WebCore::CSSStyleSelector::mapAnimationTimingFunction):
57133         * platform/animation/Animation.cpp:
57134         (WebCore::Animation::Animation):
57135         * platform/animation/Animation.h:
57136         (WebCore::Animation::initialAnimationDelay):
57137         (WebCore::Animation::initialAnimationDirection):
57138         (WebCore::Animation::initialAnimationDuration):
57139         (WebCore::Animation::initialAnimationIterationCount):
57140         (WebCore::Animation::initialAnimationName):
57141         (WebCore::Animation::initialAnimationPlayState):
57142         (WebCore::Animation::initialAnimationProperty):
57143         (WebCore::Animation::initialAnimationTimingFunction):
57144         * rendering/style/RenderStyle.h:
57145
57146 2008-01-07  Peter Kasting  <pkasting@google.com>
57147
57148         Reviewed by Sam Weinig.
57149
57150         https://bugs.webkit.org/show_bug.cgi?id=22929
57151
57152         Fix errors while decoding GIFs by not calling setData() repeatedly
57153         when it's not necessary.  Pushes the responsibility for calling
57154         setData() after clear() into the ImageSource which presumably knows
57155         better than BitmapImage what needs to be done.
57156
57157         NOTE: The above bug is mainly about a memory regression, which this
57158         patch does not fix.
57159
57160         * platform/graphics/BitmapImage.cpp:
57161         (WebCore::BitmapImage::destroyDecodedData):
57162         * platform/graphics/ImageSource.h:
57163         * platform/graphics/cairo/ImageSourceCairo.cpp:
57164         (WebCore::ImageSource::clear):
57165         * platform/graphics/cg/ImageSourceCG.cpp:
57166         (WebCore::ImageSource::clear):
57167         * platform/graphics/qt/ImageSourceQt.cpp:
57168         (WebCore::ImageSource::~ImageSource):
57169         (WebCore::ImageSource::clear):
57170         * platform/graphics/wx/ImageSourceWx.cpp:
57171         (WebCore::ImageSource::~ImageSource):
57172         (WebCore::ImageSource::clear):
57173
57174 2009-01-07  Justin Garcia  <justin.garcia@apple.com>
57175
57176         Reviewed by Darin Adler.
57177
57178         <rdar://problem/6355786> Find fails for queries that contain a line break
57179
57180         * editing/TextIterator.cpp:
57181         (WebCore::findPlainText): Allow find with queries that contain newlines.
57182
57183 2009-01-07  Dean Jackson  <dino@apple.com>
57184
57185         Reviewed by Dan Bernstein.
57186
57187         Allow removal of inline shorthand properties for
57188         animation, transition and transform origin. Also
57189         add getter for shorthand animation property.
57190
57191         https://bugs.webkit.org/show_bug.cgi?id=22605
57192
57193         Test: fast/css/transform-inline-style-remove.html
57194
57195         * css/CSSMutableStyleDeclaration.cpp:
57196         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
57197             Getter for animation property shorthand
57198         (WebCore::initShorthandMap):
57199             Adds initialisation for transform-origin, animation and transition
57200
57201 2009-01-07  Benjamin Otte  <otte@gnome.org>
57202
57203         Reviewed by Holger Freyther.
57204
57205         * platform/network/ResourceHandleInternal.h:
57206         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
57207         * platform/network/soup/ResourceHandleSoup.cpp:
57208         (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
57209         (WebCore::parseDataUrl):
57210         (WebCore::ResourceHandle::startData): keep track of the idle handler
57211         we add and remove it in the destructor
57212
57213 2009-01-07  Dean Jackson  <dino@apple.com>
57214
57215         Reviewed by Darin Adler.
57216
57217         Finish renaming of AffineTransform to TransformationMatrix, this
57218         time ensuring that the platform implementations get the correct
57219         name. Also, clean up some whitespace cruft in old content.
57220
57221         https://bugs.webkit.org/show_bug.cgi?id=23151
57222
57223         * GNUmakefile.am:
57224         * WebCore.pro:
57225         * WebCore.scons:
57226         * WebCore.vcproj/WebCore.vcproj:
57227         * WebCore.xcodeproj/project.pbxproj:
57228         * platform/graphics/cairo/AffineTransformCairo.cpp: Removed.
57229         * platform/graphics/cairo/TransformationMatrixCairo.cpp: Copied from WebCore/platform/graphics/cairo/AffineTransformCairo.cpp.
57230         * platform/graphics/cg/AffineTransformCG.cpp: Removed.
57231         * platform/graphics/cg/TransformationMatrixCG.cpp: Copied from WebCore/platform/graphics/cg/AffineTransformCG.cpp.
57232         * platform/graphics/qt/AffineTransformQt.cpp: Removed.
57233         * platform/graphics/qt/TransformationMatrixQt.cpp: Copied from WebCore/platform/graphics/qt/AffineTransformQt.cpp.
57234         * platform/graphics/transforms/TransformationMatrix.cpp:
57235         * platform/graphics/transforms/TransformationMatrix.h:
57236         * platform/graphics/wx/AffineTransformWx.cpp: Removed.
57237         * platform/graphics/wx/TransformationMatrixWx.cpp: Copied from WebCore/platform/graphics/wx/AffineTransformWx.cpp.
57238         * webcore-wx.bkl:
57239
57240 2009-01-07  Anders Carlsson  <andersca@apple.com>
57241
57242         Another build fix.
57243
57244         * WebCore.LP64.exp:
57245
57246 2008-12-16  David Hyatt  <hyatt@apple.com>
57247
57248         Make Safari RSS behave nicely with full page zoom.  Need to add a new value to enable resetting of zoom
57249         back to the document-level default.
57250
57251         Reviewed by Darin Adler
57252
57253         * css/CSSParser.cpp:
57254         (WebCore::CSSParser::parseValue):
57255         * css/CSSStyleSelector.cpp:
57256         (WebCore::CSSStyleSelector::applyProperty):
57257         * css/CSSValueKeywords.in:
57258
57259 2009-01-07  Darin Adler  <darin@apple.com>
57260
57261         Reviewed by Oliver Hunt.
57262
57263         Bug 23160: add setMemoryCacheClientCallsEnabled SPI so Safari can be faster with activity window closed
57264         https://bugs.webkit.org/show_bug.cgi?id=23160
57265
57266         * WebCore.base.exp: Added Page::setMemoryCacheClientCallsEnabled.
57267
57268         * inspector/InspectorController.cpp:
57269         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Updated to take a CachedResource
57270         so that there's no extra work the caller has to do when the inspector is disabled.
57271         * inspector/InspectorController.h: Ditto.
57272
57273         * loader/DocumentLoader.h: Added recordMemoryCacheLoadForFutureClientNotification,
57274         takeMemoryCacheLoadsForClientNotification, and m_resourcesLoadedFromMemoryCacheForClientNotification.
57275
57276         * loader/FrameLoader.cpp:
57277         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Streamlined code so less work is done when
57278         there's no inspector or client call needed. Added code to check areMemoryCacheClientCallsEnabled
57279         and if it's false, use recordMemoryCacheLoadForFutureClientNotification.
57280         (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Added.
57281         * loader/FrameLoader.h: Ditto.
57282
57283         * page/Page.cpp:
57284         (WebCore::Page::Page): Initialize m_areMemoryCacheClientCallsEnabled to be compatible with old behavior.
57285         (WebCore::Page::setMemoryCacheClientCallsEnabled): Added.
57286         * page/Page.h: Added setMemoryCacheClientCallsEnabled, areMemoryCacheClientCallsEnabled,
57287         and m_areMemoryCacheClientCallsEnabled.
57288
57289 2009-01-07  Ariya Hidayat  <ariya.hidayat@trolltech.com>
57290
57291         Rubber-stamped by Simon Hausmann.
57292
57293         Qt build fix after r39670.
57294
57295         * bridge/qt/qt_class.cpp:
57296         (JSC::Bindings::QtClass::fallbackObject):
57297         * bridge/qt/qt_class.h:
57298         * bridge/qt/qt_instance.cpp:
57299         (JSC::Bindings::QtInstance::mark):
57300         (JSC::Bindings::QtInstance::invokeMethod):
57301         (JSC::Bindings::QtInstance::defaultValue):
57302         (JSC::Bindings::QtInstance::stringValue):
57303         (JSC::Bindings::QtInstance::numberValue):
57304         (JSC::Bindings::QtInstance::booleanValue):
57305         (JSC::Bindings::QtInstance::valueOf):
57306         (JSC::Bindings::QtField::valueFromInstance):
57307         (JSC::Bindings::QtField::setValueToInstance):
57308         * bridge/qt/qt_instance.h:
57309         * bridge/qt/qt_runtime.cpp:
57310         (JSC::Bindings::valueRealType):
57311         (JSC::Bindings::convertValueToQVariant):
57312         (JSC::Bindings::convertQVariantToValue):
57313         (JSC::Bindings::findMethodIndex):
57314         (JSC::Bindings::QtRuntimeMetaMethod::call):
57315         (JSC::Bindings::QtRuntimeMetaMethod::lengthGetter):
57316         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
57317         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
57318         (JSC::Bindings::QtRuntimeConnectionMethod::call):
57319         (JSC::Bindings::QtRuntimeConnectionMethod::lengthGetter):
57320         (JSC::Bindings::::setValueAt):
57321         (JSC::Bindings::::valueAt):
57322         * bridge/qt/qt_runtime.h:
57323         (JSC::Bindings::QtRuntimeMethod::createStructure):
57324
57325 2009-01-06  Justin Garcia  <justin.garcia@apple.com>
57326
57327         Reviewed by Oliver Hunt.
57328
57329         <rdar://problem/6391734> SnowLeopard: Crash doing Copy Image from context menu
57330
57331         Can't create an automated test case for specific contextual menu items yet and
57332         a normal Copy doesn't cause a crash.
57333
57334         * platform/mac/PasteboardMac.mm:
57335         (WebCore::fileWrapperForImage): The SharedBuffer may not have platform data.  It may,
57336         for example, have a purgeable or regular buffer.
57337
57338 2009-01-06  Mark Rowe  <mrowe@apple.com>
57339
57340         Reviewed by Geoff Garen.
57341
57342         Fix <https://bugs.webkit.org/show_bug.cgi?id=23157>.
57343         Bug 23157: Crashes on Acid 3
57344
57345         * dom/Document.cpp:
57346         (WebCore::Document::recalcStyle): Null-check the frame.
57347
57348 2009-01-05  Gavin Barraclough  <baraclough@apple.com>
57349
57350         Rubber Stamped by Oliver Hunt.
57351
57352         Replace all uses of JSValue* with new wrapper class, JSValuePtr.
57353         See JavaScriptCore/ChangeLog for more detailed description.
57354
57355         * bindings/js/JSAttrCustom.cpp:
57356         (WebCore::JSAttr::setValue):
57357         * bindings/js/JSCSSRuleCustom.cpp:
57358         (WebCore::toJS):
57359         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
57360         (WebCore::JSCSSStyleDeclaration::nameGetter):
57361         (WebCore::JSCSSStyleDeclaration::customPut):
57362         * bindings/js/JSCSSValueCustom.cpp:
57363         (WebCore::toJS):
57364         * bindings/js/JSCanvasPixelArrayCustom.h:
57365         (WebCore::JSCanvasPixelArray::getByIndex):
57366         (WebCore::JSCanvasPixelArray::indexSetter):
57367         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
57368         (WebCore::toJS):
57369         (WebCore::toHTMLCanvasStyle):
57370         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
57371         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
57372         (WebCore::JSCanvasRenderingContext2D::fillStyle):
57373         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
57374         (WebCore::JSCanvasRenderingContext2D::setFillColor):
57375         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
57376         (WebCore::JSCanvasRenderingContext2D::strokeRect):
57377         (WebCore::JSCanvasRenderingContext2D::drawImage):
57378         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
57379         (WebCore::JSCanvasRenderingContext2D::setShadow):
57380         (WebCore::JSCanvasRenderingContext2D::createPattern):
57381         (WebCore::JSCanvasRenderingContext2D::putImageData):
57382         (WebCore::JSCanvasRenderingContext2D::fillText):
57383         (WebCore::JSCanvasRenderingContext2D::strokeText):
57384         * bindings/js/JSClipboardCustom.cpp:
57385         (WebCore::JSClipboard::types):
57386         (WebCore::JSClipboard::clearData):
57387         (WebCore::JSClipboard::getData):
57388         (WebCore::JSClipboard::setData):
57389         (WebCore::JSClipboard::setDragImage):
57390         * bindings/js/JSConsoleCustom.cpp:
57391         (WebCore::JSConsole::profiles):
57392         * bindings/js/JSCustomPositionCallback.cpp:
57393         (WebCore::JSCustomPositionCallback::handleEvent):
57394         * bindings/js/JSCustomPositionErrorCallback.cpp:
57395         (WebCore::JSCustomPositionErrorCallback::handleEvent):
57396         * bindings/js/JSCustomSQLStatementCallback.cpp:
57397         (WebCore::JSCustomSQLStatementCallback::handleEvent):
57398         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
57399         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
57400         * bindings/js/JSCustomSQLTransactionCallback.cpp:
57401         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
57402         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
57403         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
57404         * bindings/js/JSCustomVoidCallback.cpp:
57405         (WebCore::JSCustomVoidCallback::handleEvent):
57406         (WebCore::toVoidCallback):
57407         * bindings/js/JSCustomVoidCallback.h:
57408         * bindings/js/JSCustomXPathNSResolver.cpp:
57409         (WebCore::JSCustomXPathNSResolver::create):
57410         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
57411         * bindings/js/JSCustomXPathNSResolver.h:
57412         * bindings/js/JSDOMApplicationCacheCustom.cpp:
57413         (WebCore::JSDOMApplicationCache::add):
57414         (WebCore::JSDOMApplicationCache::remove):
57415         (WebCore::JSDOMApplicationCache::addEventListener):
57416         (WebCore::JSDOMApplicationCache::removeEventListener):
57417         * bindings/js/JSDOMBinding.cpp:
57418         (WebCore::jsStringOrNull):
57419         (WebCore::jsOwnedStringOrNull):
57420         (WebCore::jsStringOrUndefined):
57421         (WebCore::jsStringOrFalse):
57422         (WebCore::valueToStringWithNullCheck):
57423         (WebCore::valueToStringWithUndefinedOrNullCheck):
57424         (WebCore::reportException):
57425         (WebCore::reportCurrentException):
57426         (WebCore::setDOMException):
57427         (WebCore::objectToStringFunctionGetter):
57428         * bindings/js/JSDOMBinding.h:
57429         (WebCore::getDOMObjectWrapper):
57430         (WebCore::getDOMNodeWrapper):
57431         (WebCore::toJS):
57432         * bindings/js/JSDOMGlobalObject.cpp:
57433         (WebCore::JSDOMGlobalObject::findJSEventListener):
57434         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
57435         (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
57436         (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
57437         * bindings/js/JSDOMGlobalObject.h:
57438         * bindings/js/JSDOMWindowBase.cpp:
57439         (WebCore::createWindow):
57440         (WebCore::showModalDialog):
57441         (jsDOMWindowBaseCrypto):
57442         (jsDOMWindowBaseEvent):
57443         (jsDOMWindowBaseImage):
57444         (jsDOMWindowBaseMessageChannel):
57445         (jsDOMWindowBaseOption):
57446         (jsDOMWindowBaseXMLHttpRequest):
57447         (jsDOMWindowBaseAudio):
57448         (jsDOMWindowBaseWorker):
57449         (jsDOMWindowBaseXSLTProcessor):
57450         (setJSDOMWindowBaseEvent):
57451         (setJSDOMWindowBaseAudio):
57452         (setJSDOMWindowBaseImage):
57453         (setJSDOMWindowBaseMessageChannel):
57454         (setJSDOMWindowBaseOption):
57455         (setJSDOMWindowBaseWorker):
57456         (setJSDOMWindowBaseXMLHttpRequest):
57457         (setJSDOMWindowBaseXSLTProcessor):
57458         (WebCore::JSDOMWindowBase::childFrameGetter):
57459         (WebCore::JSDOMWindowBase::indexGetter):
57460         (WebCore::JSDOMWindowBase::namedItemGetter):
57461         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
57462         (WebCore::JSDOMWindowBase::put):
57463         (WebCore::JSDOMWindowBase::clear):
57464         (windowProtoFuncOpen):
57465         (windowProtoFuncShowModalDialog):
57466         (windowProtoFuncNotImplemented):
57467         (WebCore::JSDOMWindowBase::setReturnValueSlot):
57468         (WebCore::JSDOMWindowBase::installTimeout):
57469         (WebCore::toJS):
57470         (WebCore::toJSDOMWindow):
57471         * bindings/js/JSDOMWindowBase.h:
57472         * bindings/js/JSDOMWindowCustom.cpp:
57473         (WebCore::JSDOMWindow::lookupGetter):
57474         (WebCore::JSDOMWindow::lookupSetter):
57475         (WebCore::JSDOMWindow::setLocation):
57476         (WebCore::JSDOMWindow::postMessage):
57477         (WebCore::setTimeoutOrInterval):
57478         (WebCore::JSDOMWindow::setTimeout):
57479         (WebCore::JSDOMWindow::clearTimeout):
57480         (WebCore::JSDOMWindow::setInterval):
57481         (WebCore::JSDOMWindow::clearInterval):
57482         (WebCore::JSDOMWindow::atob):
57483         (WebCore::JSDOMWindow::btoa):
57484         (WebCore::JSDOMWindow::addEventListener):
57485         (WebCore::JSDOMWindow::removeEventListener):
57486         (WebCore::toDOMWindow):
57487         (WebCore::nonCachingStaticCloseFunctionGetter):
57488         (WebCore::nonCachingStaticBlurFunctionGetter):
57489         (WebCore::nonCachingStaticFocusFunctionGetter):
57490         (WebCore::nonCachingStaticPostMessageFunctionGetter):
57491         * bindings/js/JSDOMWindowCustom.h:
57492         (WebCore::JSDOMWindow::customPut):
57493         * bindings/js/JSDOMWindowShell.cpp:
57494         (WebCore::JSDOMWindowShell::put):
57495         (WebCore::JSDOMWindowShell::putWithAttributes):
57496         (WebCore::JSDOMWindowShell::lookupGetter):
57497         (WebCore::JSDOMWindowShell::lookupSetter):
57498         (WebCore::toJS):
57499         * bindings/js/JSDOMWindowShell.h:
57500         (WebCore::JSDOMWindowShell::createStructure):
57501         * bindings/js/JSDatabaseCustom.cpp:
57502         (WebCore::JSDatabase::changeVersion):
57503         (WebCore::JSDatabase::transaction):
57504         * bindings/js/JSDocumentCustom.cpp:
57505         (WebCore::JSDocument::location):
57506         (WebCore::JSDocument::setLocation):
57507         (WebCore::toJS):
57508         * bindings/js/JSElementCustom.cpp:
57509         (WebCore::JSElement::setAttribute):
57510         (WebCore::JSElement::setAttributeNode):
57511         (WebCore::JSElement::setAttributeNS):
57512         (WebCore::JSElement::setAttributeNodeNS):
57513         (WebCore::toJSNewlyCreated):
57514         * bindings/js/JSEventCustom.cpp:
57515         (WebCore::JSEvent::clipboardData):
57516         (WebCore::toJS):
57517         * bindings/js/JSEventListener.cpp:
57518         (WebCore::JSAbstractEventListener::handleEvent):
57519         (WebCore::eventParameterName):
57520         (WebCore::JSLazyEventListener::parseCode):
57521         * bindings/js/JSEventTarget.cpp:
57522         (WebCore::toJS):
57523         * bindings/js/JSEventTarget.h:
57524         * bindings/js/JSEventTargetBase.h:
57525         * bindings/js/JSEventTargetNodeCustom.cpp:
57526         (WebCore::JSEventTargetNode::addEventListener):
57527         (WebCore::JSEventTargetNode::removeEventListener):
57528         * bindings/js/JSGeolocationCustom.cpp:
57529         (WebCore::createPositionOptions):
57530         (WebCore::JSGeolocation::getCurrentPosition):
57531         (WebCore::JSGeolocation::watchPosition):
57532         * bindings/js/JSHTMLAllCollection.h:
57533         (WebCore::JSHTMLAllCollection::createStructure):
57534         * bindings/js/JSHTMLAppletElementCustom.cpp:
57535         (WebCore::JSHTMLAppletElement::customPut):
57536         (WebCore::JSHTMLAppletElement::nameGetter):
57537         * bindings/js/JSHTMLCollectionCustom.cpp:
57538         (WebCore::getNamedItems):
57539         (WebCore::callHTMLCollection):
57540         (WebCore::JSHTMLCollection::nameGetter):
57541         (WebCore::JSHTMLCollection::item):
57542         (WebCore::JSHTMLCollection::namedItem):
57543         (WebCore::toJS):
57544         * bindings/js/JSHTMLDocumentCustom.cpp:
57545         (WebCore::JSHTMLDocument::nameGetter):
57546         (WebCore::JSHTMLDocument::all):
57547         (WebCore::JSHTMLDocument::setAll):
57548         (WebCore::JSHTMLDocument::open):
57549         (WebCore::JSHTMLDocument::write):
57550         (WebCore::JSHTMLDocument::writeln):
57551         * bindings/js/JSHTMLEmbedElementCustom.cpp:
57552         (WebCore::JSHTMLEmbedElement::customPut):
57553         (WebCore::JSHTMLEmbedElement::nameGetter):
57554         * bindings/js/JSHTMLFormElementCustom.cpp:
57555         (WebCore::JSHTMLFormElement::nameGetter):
57556         * bindings/js/JSHTMLFrameElementCustom.cpp:
57557         (WebCore::JSHTMLFrameElement::setSrc):
57558         (WebCore::JSHTMLFrameElement::setLocation):
57559         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
57560         (WebCore::JSHTMLFrameSetElement::nameGetter):
57561         * bindings/js/JSHTMLIFrameElementCustom.cpp:
57562         (WebCore::JSHTMLIFrameElement::setSrc):
57563         * bindings/js/JSHTMLInputElementCustom.cpp:
57564         (WebCore::JSHTMLInputElement::selectionStart):
57565         (WebCore::JSHTMLInputElement::selectionEnd):
57566         * bindings/js/JSHTMLObjectElementCustom.cpp:
57567         (WebCore::JSHTMLObjectElement::customPut):
57568         (WebCore::JSHTMLObjectElement::nameGetter):
57569         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
57570         (WebCore::JSHTMLOptionsCollection::length):
57571         (WebCore::JSHTMLOptionsCollection::setLength):
57572         (WebCore::JSHTMLOptionsCollection::indexSetter):
57573         (WebCore::JSHTMLOptionsCollection::add):
57574         (WebCore::JSHTMLOptionsCollection::remove):
57575         * bindings/js/JSHTMLSelectElementCustom.cpp:
57576         (WebCore::JSHTMLSelectElement::remove):
57577         (WebCore::selectIndexSetter):
57578         (WebCore::JSHTMLSelectElement::indexSetter):
57579         * bindings/js/JSHTMLSelectElementCustom.h:
57580         * bindings/js/JSHistoryCustom.cpp:
57581         (WebCore::nonCachingStaticBackFunctionGetter):
57582         (WebCore::nonCachingStaticForwardFunctionGetter):
57583         (WebCore::nonCachingStaticGoFunctionGetter):
57584         (WebCore::JSHistory::customPut):
57585         * bindings/js/JSImageDataCustom.cpp:
57586         (WebCore::toJS):
57587         * bindings/js/JSInspectedObjectWrapper.cpp:
57588         (WebCore::JSInspectedObjectWrapper::wrap):
57589         (WebCore::JSInspectedObjectWrapper::prepareIncomingValue):
57590         * bindings/js/JSInspectedObjectWrapper.h:
57591         (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
57592         * bindings/js/JSInspectorCallbackWrapper.cpp:
57593         (WebCore::JSInspectorCallbackWrapper::wrap):
57594         (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
57595         * bindings/js/JSInspectorCallbackWrapper.h:
57596         (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
57597         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
57598         (WebCore::JSJavaScriptCallFrame::evaluate):
57599         (WebCore::JSJavaScriptCallFrame::thisObject):
57600         (WebCore::JSJavaScriptCallFrame::type):
57601         (WebCore::JSJavaScriptCallFrame::scopeChain):
57602         * bindings/js/JSLocationCustom.cpp:
57603         (WebCore::nonCachingStaticReplaceFunctionGetter):
57604         (WebCore::nonCachingStaticReloadFunctionGetter):
57605         (WebCore::nonCachingStaticAssignFunctionGetter):
57606         (WebCore::JSLocation::customPut):
57607         (WebCore::JSLocation::setHref):
57608         (WebCore::JSLocation::setProtocol):
57609         (WebCore::JSLocation::setHost):
57610         (WebCore::JSLocation::setHostname):
57611         (WebCore::JSLocation::setPort):
57612         (WebCore::JSLocation::setPathname):
57613         (WebCore::JSLocation::setSearch):
57614         (WebCore::JSLocation::setHash):
57615         (WebCore::JSLocation::replace):
57616         (WebCore::JSLocation::reload):
57617         (WebCore::JSLocation::assign):
57618         (WebCore::JSLocation::toString):
57619         * bindings/js/JSMessageChannelConstructor.h:
57620         * bindings/js/JSMessagePortCustom.cpp:
57621         (WebCore::JSMessagePort::startConversation):
57622         (WebCore::JSMessagePort::addEventListener):
57623         (WebCore::JSMessagePort::removeEventListener):
57624         * bindings/js/JSMimeTypeArrayCustom.cpp:
57625         (WebCore::JSMimeTypeArray::nameGetter):
57626         * bindings/js/JSNamedNodeMapCustom.cpp:
57627         (WebCore::JSNamedNodeMap::nameGetter):
57628         * bindings/js/JSNamedNodesCollection.cpp:
57629         (WebCore::JSNamedNodesCollection::lengthGetter):
57630         (WebCore::JSNamedNodesCollection::indexGetter):
57631         * bindings/js/JSNamedNodesCollection.h:
57632         (WebCore::JSNamedNodesCollection::createStructure):
57633         * bindings/js/JSNavigatorCustom.cpp:
57634         (WebCore::needsYouTubeQuirk):
57635         (WebCore::JSNavigator::appVersion):
57636         * bindings/js/JSNodeCustom.cpp:
57637         (WebCore::JSNode::insertBefore):
57638         (WebCore::JSNode::replaceChild):
57639         (WebCore::JSNode::removeChild):
57640         (WebCore::JSNode::appendChild):
57641         (WebCore::createWrapper):
57642         (WebCore::toJSNewlyCreated):
57643         (WebCore::toJS):
57644         * bindings/js/JSNodeFilterCondition.cpp:
57645         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
57646         (WebCore::JSNodeFilterCondition::acceptNode):
57647         * bindings/js/JSNodeFilterCondition.h:
57648         (WebCore::JSNodeFilterCondition::create):
57649         * bindings/js/JSNodeFilterCustom.cpp:
57650         (WebCore::JSNodeFilter::acceptNode):
57651         (WebCore::toNodeFilter):
57652         * bindings/js/JSNodeIteratorCustom.cpp:
57653         (WebCore::JSNodeIterator::nextNode):
57654         (WebCore::JSNodeIterator::previousNode):
57655         * bindings/js/JSNodeListCustom.cpp:
57656         (WebCore::callNodeList):
57657         (WebCore::JSNodeList::nameGetter):
57658         * bindings/js/JSPluginArrayCustom.cpp:
57659         (WebCore::JSPluginArray::nameGetter):
57660         * bindings/js/JSPluginCustom.cpp:
57661         (WebCore::JSPlugin::nameGetter):
57662         * bindings/js/JSPluginElementFunctions.cpp:
57663         (WebCore::runtimeObjectGetter):
57664         (WebCore::runtimeObjectPropertyGetter):
57665         (WebCore::runtimeObjectCustomPut):
57666         (WebCore::callPlugin):
57667         * bindings/js/JSPluginElementFunctions.h:
57668         * bindings/js/JSQuarantinedObjectWrapper.cpp:
57669         (WebCore::JSQuarantinedObjectWrapper::asWrapper):
57670         (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter):
57671         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
57672         (WebCore::JSQuarantinedObjectWrapper::put):
57673         (WebCore::JSQuarantinedObjectWrapper::construct):
57674         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
57675         (WebCore::JSQuarantinedObjectWrapper::call):
57676         * bindings/js/JSQuarantinedObjectWrapper.h:
57677         (WebCore::JSQuarantinedObjectWrapper::createStructure):
57678         * bindings/js/JSRGBColor.cpp:
57679         (WebCore::getJSRGBColor):
57680         (jsRGBColorRed):
57681         (jsRGBColorGreen):
57682         (jsRGBColorBlue):
57683         * bindings/js/JSRGBColor.h:
57684         (WebCore::JSRGBColor::createStructure):
57685         * bindings/js/JSSQLResultSetRowListCustom.cpp:
57686         (WebCore::JSSQLResultSetRowList::item):
57687         * bindings/js/JSSQLTransactionCustom.cpp:
57688         (WebCore::JSSQLTransaction::executeSql):
57689         * bindings/js/JSSVGElementInstanceCustom.cpp:
57690         (WebCore::JSSVGElementInstance::addEventListener):
57691         (WebCore::JSSVGElementInstance::removeEventListener):
57692         * bindings/js/JSSVGLengthCustom.cpp:
57693         (WebCore::JSSVGLength::value):
57694         (WebCore::JSSVGLength::convertToSpecifiedUnits):
57695         * bindings/js/JSSVGMatrixCustom.cpp:
57696         (WebCore::JSSVGMatrix::multiply):
57697         (WebCore::JSSVGMatrix::inverse):
57698         (WebCore::JSSVGMatrix::translate):
57699         (WebCore::JSSVGMatrix::scale):
57700         (WebCore::JSSVGMatrix::scaleNonUniform):
57701         (WebCore::JSSVGMatrix::rotate):
57702         (WebCore::JSSVGMatrix::rotateFromVector):
57703         (WebCore::JSSVGMatrix::flipX):
57704         (WebCore::JSSVGMatrix::flipY):
57705         (WebCore::JSSVGMatrix::skewX):
57706         (WebCore::JSSVGMatrix::skewY):
57707         * bindings/js/JSSVGPathSegCustom.cpp:
57708         (WebCore::toJS):
57709         * bindings/js/JSSVGPathSegListCustom.cpp:
57710         (WebCore::JSSVGPathSegList::clear):
57711         (WebCore::JSSVGPathSegList::initialize):
57712         (WebCore::JSSVGPathSegList::getItem):
57713         (WebCore::JSSVGPathSegList::insertItemBefore):
57714         (WebCore::JSSVGPathSegList::replaceItem):
57715         (WebCore::JSSVGPathSegList::removeItem):
57716         (WebCore::JSSVGPathSegList::appendItem):
57717         * bindings/js/JSSVGPointListCustom.cpp:
57718         (WebCore::finishGetter):
57719         (WebCore::finishSetter):
57720         (WebCore::finishSetterReadOnlyResult):
57721         (WebCore::JSSVGPointList::clear):
57722         (WebCore::JSSVGPointList::initialize):
57723         (WebCore::JSSVGPointList::getItem):
57724         (WebCore::JSSVGPointList::insertItemBefore):
57725         (WebCore::JSSVGPointList::replaceItem):
57726         (WebCore::JSSVGPointList::removeItem):
57727         (WebCore::JSSVGPointList::appendItem):
57728         * bindings/js/JSSVGTransformListCustom.cpp:
57729         (WebCore::finishGetter):
57730         (WebCore::finishSetter):
57731         (WebCore::finishSetterReadOnlyResult):
57732         (WebCore::JSSVGTransformList::clear):
57733         (WebCore::JSSVGTransformList::initialize):
57734         (WebCore::JSSVGTransformList::getItem):
57735         (WebCore::JSSVGTransformList::insertItemBefore):
57736         (WebCore::JSSVGTransformList::replaceItem):
57737         (WebCore::JSSVGTransformList::removeItem):
57738         (WebCore::JSSVGTransformList::appendItem):
57739         * bindings/js/JSStorageCustom.cpp:
57740         (WebCore::JSStorage::nameGetter):
57741         (WebCore::JSStorage::deleteProperty):
57742         (WebCore::JSStorage::customPut):
57743         * bindings/js/JSStyleSheetCustom.cpp:
57744         (WebCore::toJS):
57745         * bindings/js/JSStyleSheetListCustom.cpp:
57746         (WebCore::JSStyleSheetList::nameGetter):
57747         * bindings/js/JSTextCustom.cpp:
57748         (WebCore::toJSNewlyCreated):
57749         * bindings/js/JSTreeWalkerCustom.cpp:
57750         (WebCore::JSTreeWalker::parentNode):
57751         (WebCore::JSTreeWalker::firstChild):
57752         (WebCore::JSTreeWalker::lastChild):
57753         (WebCore::JSTreeWalker::nextSibling):
57754         (WebCore::JSTreeWalker::previousSibling):
57755         (WebCore::JSTreeWalker::previousNode):
57756         (WebCore::JSTreeWalker::nextNode):
57757         * bindings/js/JSWorkerContextBase.cpp:
57758         (WebCore::JSWorkerContextBase::put):
57759         * bindings/js/JSWorkerContextBase.h:
57760         * bindings/js/JSWorkerContextCustom.cpp:
57761         (WebCore::JSWorkerContext::self):
57762         (WebCore::JSWorkerContext::setSelf):
57763         (WebCore::JSWorkerContext::addEventListener):
57764         (WebCore::JSWorkerContext::removeEventListener):
57765         * bindings/js/JSWorkerCustom.cpp:
57766         (WebCore::JSWorker::addEventListener):
57767         (WebCore::JSWorker::removeEventListener):
57768         * bindings/js/JSXMLHttpRequestCustom.cpp:
57769         (WebCore::JSXMLHttpRequest::open):
57770         (WebCore::JSXMLHttpRequest::setRequestHeader):
57771         (WebCore::JSXMLHttpRequest::send):
57772         (WebCore::JSXMLHttpRequest::getResponseHeader):
57773         (WebCore::JSXMLHttpRequest::overrideMimeType):
57774         (WebCore::JSXMLHttpRequest::addEventListener):
57775         (WebCore::JSXMLHttpRequest::removeEventListener):
57776         (WebCore::JSXMLHttpRequest::responseText):
57777         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
57778         (WebCore::JSXMLHttpRequestUpload::addEventListener):
57779         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
57780         * bindings/js/JSXSLTProcessorCustom.cpp:
57781         (WebCore::JSXSLTProcessor::importStylesheet):
57782         (WebCore::JSXSLTProcessor::transformToFragment):
57783         (WebCore::JSXSLTProcessor::transformToDocument):
57784         (WebCore::JSXSLTProcessor::setParameter):
57785         (WebCore::JSXSLTProcessor::getParameter):
57786         (WebCore::JSXSLTProcessor::removeParameter):
57787         * bindings/js/ScheduledAction.cpp:
57788         (WebCore::ScheduledAction::ScheduledAction):
57789         (WebCore::ScheduledAction::execute):
57790         * bindings/js/ScheduledAction.h:
57791         * bindings/js/ScriptCallStack.cpp:
57792         (WebCore::ScriptCallStack::ScriptCallStack):
57793         (WebCore::ScriptCallStack::initialize):
57794         * bindings/js/ScriptController.cpp:
57795         (WebCore::ScriptController::createScriptObjectForPluginElement):
57796         * bindings/js/ScriptValue.cpp:
57797         (WebCore::ScriptValue::getString):
57798         (WebCore::ScriptValue::isNull):
57799         (WebCore::ScriptValue::isUndefined):
57800         * bindings/js/ScriptValue.h:
57801         (WebCore::ScriptValue::ScriptValue):
57802         (WebCore::ScriptValue::jsValue):
57803         * bindings/objc/WebScriptObject.mm:
57804         (-[WebScriptObject callWebScriptMethod:withArguments:]):
57805         (-[WebScriptObject evaluateWebScript:]):
57806         (-[WebScriptObject valueForKey:]):
57807         (-[WebScriptObject webScriptValueAtIndex:]):
57808         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
57809         * bindings/objc/WebScriptObjectPrivate.h:
57810         * bindings/scripts/CodeGeneratorJS.pm:
57811         * bridge/NP_jsobject.cpp:
57812         (_NPN_InvokeDefault):
57813         (_NPN_Invoke):
57814         (_NPN_Evaluate):
57815         (_NPN_GetProperty):
57816         (_NPN_HasMethod):
57817         (_NPN_Construct):
57818         * bridge/c/c_instance.cpp:
57819         (JSC::Bindings::CInstance::invokeMethod):
57820         (JSC::Bindings::CInstance::invokeDefaultMethod):
57821         (JSC::Bindings::CInstance::invokeConstruct):
57822         (JSC::Bindings::CInstance::defaultValue):
57823         (JSC::Bindings::CInstance::stringValue):
57824         (JSC::Bindings::CInstance::numberValue):
57825         (JSC::Bindings::CInstance::booleanValue):
57826         (JSC::Bindings::CInstance::valueOf):
57827         * bridge/c/c_instance.h:
57828         * bridge/c/c_runtime.cpp:
57829         (JSC::Bindings::CField::valueFromInstance):
57830         (JSC::Bindings::CField::setValueToInstance):
57831         * bridge/c/c_runtime.h:
57832         * bridge/c/c_utility.cpp:
57833         (JSC::Bindings::convertValueToNPVariant):
57834         (JSC::Bindings::convertNPVariantToValue):
57835         * bridge/c/c_utility.h:
57836         * bridge/jni/jni_instance.cpp:
57837         (JavaInstance::stringValue):
57838         (JavaInstance::numberValue):
57839         (JavaInstance::booleanValue):
57840         (JavaInstance::invokeMethod):
57841         (JavaInstance::defaultValue):
57842         (JavaInstance::valueOf):
57843         * bridge/jni/jni_instance.h:
57844         * bridge/jni/jni_jsobject.h:
57845         * bridge/jni/jni_jsobject.mm:
57846         (JavaJSObject::call):
57847         (JavaJSObject::eval):
57848         (JavaJSObject::getMember):
57849         (JavaJSObject::getSlot):
57850         (JavaJSObject::convertValueToJObject):
57851         (JavaJSObject::convertJObjectToValue):
57852         * bridge/jni/jni_objc.mm:
57853         (JSC::Bindings::dispatchJNICall):
57854         * bridge/jni/jni_runtime.cpp:
57855         (JavaArray::convertJObjectToArray):
57856         (JavaField::dispatchValueFromInstance):
57857         (JavaField::valueFromInstance):
57858         (JavaField::dispatchSetValueToInstance):
57859         (JavaField::setValueToInstance):
57860         (JavaArray::setValueAt):
57861         (JavaArray::valueAt):
57862         * bridge/jni/jni_runtime.h:
57863         * bridge/jni/jni_utility.cpp:
57864         (JSC::Bindings::convertArrayInstanceToJavaArray):
57865         (JSC::Bindings::convertValueToJValue):
57866         * bridge/jni/jni_utility.h:
57867         * bridge/objc/WebScriptObject.h:
57868         * bridge/objc/objc_class.h:
57869         * bridge/objc/objc_class.mm:
57870         (JSC::Bindings::ObjcClass::fallbackObject):
57871         * bridge/objc/objc_instance.h:
57872         * bridge/objc/objc_instance.mm:
57873         (ObjcInstance::invokeMethod):
57874         (ObjcInstance::invokeDefaultMethod):
57875         (ObjcInstance::setValueOfUndefinedField):
57876         (ObjcInstance::getValueOfUndefinedField):
57877         (ObjcInstance::defaultValue):
57878         (ObjcInstance::stringValue):
57879         (ObjcInstance::numberValue):
57880         (ObjcInstance::booleanValue):
57881         (ObjcInstance::valueOf):
57882         * bridge/objc/objc_runtime.h:
57883         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
57884         * bridge/objc/objc_runtime.mm:
57885         (JSC::Bindings::ObjcField::valueFromInstance):
57886         (JSC::Bindings::convertValueToObjcObject):
57887         (JSC::Bindings::ObjcField::setValueToInstance):
57888         (JSC::Bindings::ObjcArray::setValueAt):
57889         (JSC::Bindings::ObjcArray::valueAt):
57890         (JSC::Bindings::ObjcFallbackObjectImp::put):
57891         (JSC::Bindings::callObjCFallbackObject):
57892         (JSC::Bindings::ObjcFallbackObjectImp::defaultValue):
57893         * bridge/objc/objc_utility.h:
57894         * bridge/objc/objc_utility.mm:
57895         (JSC::Bindings::convertValueToObjcValue):
57896         (JSC::Bindings::convertNSStringToString):
57897         (JSC::Bindings::convertObjcValueToValue):
57898         * bridge/runtime.cpp:
57899         (JSC::Bindings::Instance::getValueOfField):
57900         (JSC::Bindings::Instance::setValueOfField):
57901         * bridge/runtime.h:
57902         (JSC::Bindings::Class::fallbackObject):
57903         (JSC::Bindings::Instance::getValueOfUndefinedField):
57904         (JSC::Bindings::Instance::setValueOfUndefinedField):
57905         (JSC::Bindings::Instance::invokeDefaultMethod):
57906         (JSC::Bindings::Instance::invokeConstruct):
57907         (JSC::Bindings::Instance::valueOf):
57908         * bridge/runtime_array.cpp:
57909         (JSC::RuntimeArray::lengthGetter):
57910         (JSC::RuntimeArray::indexGetter):
57911         (JSC::RuntimeArray::put):
57912         * bridge/runtime_array.h:
57913         (JSC::RuntimeArray::createStructure):
57914         * bridge/runtime_method.cpp:
57915         (JSC::RuntimeMethod::lengthGetter):
57916         (JSC::callRuntimeMethod):
57917         * bridge/runtime_method.h:
57918         (JSC::RuntimeMethod::createStructure):
57919         * bridge/runtime_object.cpp:
57920         (JSC::RuntimeObjectImp::fallbackObjectGetter):
57921         (JSC::RuntimeObjectImp::fieldGetter):
57922         (JSC::RuntimeObjectImp::methodGetter):
57923         (JSC::RuntimeObjectImp::put):
57924         (JSC::RuntimeObjectImp::defaultValue):
57925         (JSC::callRuntimeObject):
57926         (JSC::callRuntimeConstructor):
57927         * bridge/runtime_object.h:
57928         (JSC::RuntimeObjectImp::createStructure):
57929         * inspector/InspectorController.cpp:
57930         * inspector/JavaScriptCallFrame.cpp:
57931         (WebCore::JavaScriptCallFrame::evaluate):
57932         * inspector/JavaScriptCallFrame.h:
57933         * inspector/JavaScriptProfile.cpp:
57934         (WebCore::toJS):
57935         * inspector/JavaScriptProfile.h:
57936         * inspector/JavaScriptProfileNode.cpp:
57937         (WebCore::toJS):
57938         * inspector/JavaScriptProfileNode.h:
57939         * xml/XMLHttpRequest.cpp:
57940         (WebCore::XMLHttpRequest::dropProtection):
57941
57942 2009-01-06  Pierre-Olivier Latour  <pol@apple.com>
57943
57944         Reviewed by Darin Adler.
57945
57946         Added new API on AnimationController::numberOfActiveAnimations() to be used by DRT.
57947
57948         https://bugs.webkit.org/show_bug.cgi?id=23126
57949
57950         Test: animations/animation-controller-drt-api.html
57951
57952         * WebCore.base.exp:
57953         * page/animation/AnimationController.cpp:
57954         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
57955         (WebCore::AnimationController::numberOfActiveAnimations):
57956         * page/animation/AnimationController.h:
57957         * page/animation/CompositeAnimation.cpp:
57958         (WebCore::CompositeAnimationPrivate::numberOfActiveAnimations):
57959         (WebCore::CompositeAnimation::numberOfActiveAnimations):
57960         * page/animation/CompositeAnimation.h:
57961
57962 2009-01-06  Eric Seidel  <eric@webkit.org>
57963
57964         Reviewed by Gavin Barraclough.
57965
57966         Upstream 3 more files to get the WebCore-Chromium build a bit further.
57967
57968         * WebCore.scons:
57969         * page/chromium/AccessibilityObjectChromium.cpp: Added.
57970         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
57971         * page/chromium/AccessibilityObjectWrapper.h: Added.
57972         (WebCore::AccessibilityObjectWrapper::~AccessibilityObjectWrapper):
57973         (WebCore::AccessibilityObjectWrapper::attached):
57974         (WebCore::AccessibilityObjectWrapper::accessibilityObject):
57975         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):
57976         * platform/chromium/PasteboardPrivate.h: Added.
57977         (WebCore::PasteboardPrivate::):
57978
57979 2009-01-06  Chris Marrin  <cmarrin@apple.com>
57980
57981         Reviewed by David Hyatt.
57982
57983         Tests: animations/simultaneous-start-left.html
57984                animations/simultaneous-start-transform.html
57985
57986         Fixed https://bugs.webkit.org/show_bug.cgi?id=22870
57987
57988         I added calls beginAnimationUpdate() and endAnimationUpdate() calls
57989         to AnimationController. These are called by Document at the start
57990         and end of the recalcStyle cycle. Right now, I'm just using the
57991         beginAnimationUpdate() method to reset an animation time value.
57992         The first time the animation time is accessed after this reset I set
57993         it to the currentTime. So all animations in that cycle get the same
57994         start time.
57995
57996         The test cases checked in test this, but in the case of the 'left'
57997         test it actually doesn't make any difference in most cases. This is
57998         because values are clamped to whole pixels, so the start times would
57999         have to be pretty far off for the test to fail using the old
58000         currentTime() model. Still, under really heavy load, it's possible for
58001         the test to fail without these changes.
58002
58003         The 'transform' test is another story. It animates to the full resolution
58004         of a floating point number, so the test fails miserably without this
58005         fix.
58006
58007         * dom/Document.cpp:
58008         (WebCore::Document::recalcStyle):
58009         * page/animation/AnimationBase.cpp:
58010         (WebCore::AnimationBase::updateStateMachine):
58011         (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
58012         (WebCore::AnimationBase::willNeedService):
58013         (WebCore::AnimationBase::progress):
58014         (WebCore::AnimationBase::goIntoEndingOrLoopingState):
58015         (WebCore::AnimationBase::beginAnimationUpdateTime):
58016         * page/animation/AnimationBase.h:
58017         * page/animation/AnimationController.cpp:
58018         (WebCore::AnimationControllerPrivate::beginAnimationUpdateTime):
58019         (WebCore::AnimationControllerPrivate::setBeginAnimationUpdateTime):
58020         (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
58021         (WebCore::AnimationController::updateAnimations):
58022         (WebCore::AnimationController::beginAnimationUpdateTime):
58023         (WebCore::AnimationController::beginAnimationUpdate):
58024         (WebCore::AnimationController::endAnimationUpdate):
58025         * page/animation/AnimationController.h:
58026         * page/animation/KeyframeAnimation.cpp:
58027         (WebCore::KeyframeAnimation::animate):
58028
58029 2009-01-06  Julien Chaffraix  <jchaffraix@webkit.org>
58030
58031         Reviewed by Nikolas Zimmermann.
58032
58033         Bug 22858: Simplify make_names.pl code for avoiding multiple definitions or inclusions
58034         https://bugs.webkit.org/show_bug.cgi?id=22858
58035
58036         I had introduced an awkward situation using hasCustomJSWrapper and
58037         sometimes boolean parameter in order to ensure JS wrapper generated once
58038         or header included once.
58039
58040         Simplified the code by using a %seenTag hash to detect multiple definitions
58041         or inclusions and skipping it.
58042
58043         Also cleaned up a bit make_names.pl by using more explicit names and moving
58044         code to where it belongs.
58045
58046         * dom/make_names.pl:
58047         * html/HTMLTagNames.in: Necessary changes that were not detected by
58048         the previous syntax but will be required for autogenerating HTMLElementFactory.
58049
58050 2009-01-06  Anders Carlsson  <andersca@apple.com>
58051
58052         Reviewed by Sam Weinig.
58053
58054         Add a way for frame loader clients to always create a PluginDocument, regardless of
58055         the real document MIME type.
58056
58057         * loader/FrameLoader.cpp:
58058         (WebCore::FrameLoader::begin):
58059         (WebCore::FrameLoader::shouldUsePlugin):
58060         * loader/FrameLoaderClient.h:
58061         (WebCore::FrameLoaderClient::shouldUsePluginDocument):
58062
58063 2009-01-06  Dean Jackson  <dino@apple.com>
58064
58065         Reviewed by Dave Hyatt.
58066
58067         Extend Media Queries to cover transitions,
58068         animations, transform-2d and transform-3d
58069         http://webkit.org/specs/MediaQueriesExtensions.html
58070         Note that the implementation uses -webkit- prefixes
58071         even though the spec doesn't have them.
58072         https://bugs.webkit.org/show_bug.cgi?id=22494
58073
58074         Tests: fast/media/mq-animation.html
58075                fast/media/mq-transform-01.html
58076                fast/media/mq-transform-02.html
58077                fast/media/mq-transform-03.html
58078                fast/media/mq-transform-04.html
58079                fast/media/mq-transition.html
58080
58081         * css/MediaFeatureNames.h:
58082         * css/MediaQueryEvaluator.cpp:
58083         (WebCore::animationMediaFeatureEval):
58084         (WebCore::transitionMediaFeatureEval):
58085         (WebCore::transform_2dMediaFeatureEval):
58086         (WebCore::transform_3dMediaFeatureEval):
58087
58088 2009-01-06  Eric Seidel  <eric@webkit.org>
58089
58090         Reviewed by Oliver Hunt.
58091
58092         Bring the Chromium-WebCore build closer to building
58093         by upstreaming PlatformWidget.h add adding the JSC
58094         plugin bridge files to the build.
58095
58096         * WebCore.scons:
58097         * platform/chromium/PlatformWidget.h: Added.
58098
58099 2009-01-06  Eric Seidel  <eric@webkit.org>
58100
58101         Build fix only, no review.
58102
58103         Bring the Chromium-WebCore build back closer to building
58104         by adding files from recent commits.
58105
58106         * WebCore.scons:
58107
58108 2009-01-06  Alexey Proskuryakov  <ap@webkit.org>
58109
58110         Reviewed by Darin Adler.
58111
58112         <rdar://problem/6474973> REGRESSION: PLT ~2% slower due to 39465 (consolidate thread data)
58113
58114         I could not reproduce the slowdown on my PowerPC test machine, but the change should bring
58115         performance back.
58116
58117         * platform/ThreadGlobalData.cpp: (WebCore::threadGlobalData): Don't use AtomicallyInitializedStatic.
58118         Prior to r39465, it was only used for cached converters, which was necessary because the
58119         first access to ICU or TEC one could happen on a secondary thread, but now they are all
58120         initialized from ThreadGlobalData constructor.
58121
58122 2009-01-06  David Smith  <catfish.man@gmail.com>
58123
58124         Reviewed by Darin Adler.
58125
58126         https://bugs.webkit.org/show_bug.cgi?id=23129
58127         Devirtualize Node::childNodes().
58128
58129 2009-01-06  Simon Hausmann  <simon.hausmann@nokia.com>
58130
58131         Unreviewed build fix.
58132
58133         Fix the Qt build with Qt 4.4.x, the HTTP-only cookie support was
58134         added in Qt 4.5.
58135
58136         * platform/qt/CookieJarQt.cpp:
58137         (WebCore::setCookies):
58138         (WebCore::cookies):
58139
58140 2009-01-06  Zalan Bujtas  <zbujtas@gmail.com>
58141
58142         Reviewed by David Kilzer.
58143
58144         https://bugs.webkit.org/show_bug.cgi?id=23133
58145         Fix SVG disabled build. Move 'pointer-events' from SVGCSSPropertyNames.in to
58146         CSSPropertyNames.in and move PointerEvents functions out of #if ENABLE(SVG)
58147
58148         NOTE: Property name fixes landed as part of r39648.
58149
58150         * css/CSSPrimitiveValueMappings.h:
58151         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
58152         (WebCore::CSSPrimitiveValue::operator EPointerEvents):
58153         * css/CSSPropertyNames.in:
58154         * css/SVGCSSPropertyNames.in:
58155
58156 2009-01-06  David Kilzer  <ddkilzer@apple.com>
58157
58158         BUILD FIX (r39634): Fix build for non-SVG builds (Wx)
58159
58160         * css/CSSPropertyNames.in: Added 'pointer-events'.
58161         * css/SVGCSSPropertyNames.in: Commented out pointer-events
58162         since it's now a plain CSS property.
58163
58164 2009-01-06  Simon Hausmann  <simon.hausmann@nokia.com>
58165
58166         Reviewed by Lars Knoll.
58167
58168         Added support for HTTP-only cookies to the Qt build.
58169
58170         * platform/qt/CookieJarQt.cpp:
58171         (WebCore::setCookies): Don't set HTTP-only cookies through the DOM.
58172         (WebCore::cookies): Don't return HTTP-only cookies to the DOM.
58173
58174 2009-01-05  David Smith  <catfish.man@gmail.com>
58175
58176         Reviewed by Oliver Hunt.
58177
58178         https://bugs.webkit.org/show_bug.cgi?id=23084
58179         Avoid redundant AtomicString conversions
58180
58181         * dom/Node.cpp: Create an AtomicString early to avoid converting twice
58182         (WebCore::Node::getElementsByTagNameNS):
58183         * dom/QualifiedName.h: Use the appropriate AtomicString constructor instead of converting from a String
58184
58185 2009-01-05  Simon Fraser  <simon.fraser@apple.com>
58186
58187         Reviewed by Dave Hyatt
58188
58189         https://bugs.webkit.org/show_bug.cgi?id=22985
58190
58191         Add an assertion that clip rects are being used when painting with the same
58192         rootLayer that they were computed with.
58193
58194         Fix two issues detected by the assertion:
58195
58196         RenderLayer::updateClipRects() should not unconditionally update the clip rects
58197         on its parent, but stop when reaching rootLayer (just like calculateClipRects()).
58198
58199         We need to pass the temporaryClipRects flag down through reflection painting
58200         to handle the case of nested reflections.
58201
58202         Also use temporary clip rects in RenderTreeAsText, since that code does not
58203         reset the painting root for transformed layers, so cached clip rects will not
58204         match those used for painting.
58205
58206         * rendering/RenderLayer.cpp:
58207         (WebCore::RenderLayer::RenderLayer):
58208         (WebCore::RenderLayer::paintLayer):
58209         (WebCore::RenderLayer::updateClipRects):
58210         (WebCore::RenderLayer::clearClipRects):
58211         * rendering/RenderLayer.h:
58212         * rendering/RenderTreeAsText.cpp:
58213         (WebCore::writeLayers):
58214
58215 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
58216
58217         Fix the Qt build
58218
58219         * platform/graphics/qt/AffineTransformQt.cpp:
58220         (WebCore::TransformationMatrix::TransformationMatrix):
58221
58222 2009-01-05  Mark Rowe  <mrowe@apple.com>
58223
58224         Fix the build some more.
58225
58226         * platform/graphics/cairo/AffineTransformCairo.cpp:
58227         (WebCore::TransformationMatrix::TransformationMatrix):
58228
58229 2009-01-05  Oliver Hunt  <oliver@apple.com>
58230
58231         Reviewed by NOBODY (Build fix).
58232
58233         Fix Cairo/Gtk build
58234
58235         * platform/graphics/cairo/ImageBufferCairo.cpp:
58236         (WebCore::ImageBuffer::putImageData):
58237
58238 2009-01-05  Dean Jackson  <dino@apple.com>
58239
58240         Reviewed by Darin Adler.
58241
58242         Rename AffineTransform to TransformationMatrix in
58243         preparation for future enhancements (non-affine matrices)
58244
58245         https://bugs.webkit.org/show_bug.cgi?id=22943
58246
58247         * GNUmakefile.am:
58248         * WebCore.pro:
58249         * WebCore.scons:
58250         * WebCore.vcproj/WebCore.vcproj:
58251         * WebCore.xcodeproj/project.pbxproj:
58252         * WebCoreSources.bkl:
58253         * platform/graphics/transforms/AffineTransform.cpp: Removed.
58254         * platform/graphics/transforms/AffineTransform.h: Removed.
58255         * platform/graphics/transforms/TransformationMatrix.cpp: Copied from WebCore/platform/graphics/transforms/AffineTransform.cpp.
58256         * platform/graphics/transforms/TransformationMatrix.h: Copied from WebCore/platform/graphics/transforms/AffineTransform.h.
58257         * lots of other files with s/AffineTransform/TransformationMatrix/g
58258
58259 2008-01-05  Dean Jackson  <dino@apple.com>
58260
58261         Reviewed by David Hyatt.
58262
58263         Implement 'pointer-events' for HTML content. This involved
58264         adding a new value 'auto' which behaves as 'visiblePainted'
58265         in SVG content.
58266
58267         Moved the property out of the SVG CSS code and into
58268         the general CSS (both parsing and RenderStyle).
58269
58270         Changes to the hit testing functionality of the Render tree,
58271         specifically the nodeAtPoint methods. Where they used to
58272         test for visibility, they now use a helper function defined
58273         on base classes (RenderObject and InlineBox) that checks both
58274         visibility and pointer-events.
58275
58276         https://bugs.webkit.org/show_bug.cgi?id=11395
58277
58278         Tests: fast/events/pointer-events-2.html
58279                fast/events/pointer-events.html
58280
58281         * css/CSSComputedStyleDeclaration.cpp:
58282         (WebCore::):
58283         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
58284         * css/CSSParser.cpp:
58285         (WebCore::CSSParser::parseValue):
58286         * css/CSSPrimitiveValueMappings.h:
58287         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
58288         (WebCore::CSSPrimitiveValue::operator EPointerEvents):
58289         * css/CSSStyleSelector.cpp:
58290         (WebCore::CSSStyleSelector::applyProperty):
58291         * css/SVGCSSComputedStyleDeclaration.cpp:
58292         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
58293         * css/SVGCSSStyleSelector.cpp:
58294         (WebCore::CSSStyleSelector::applySVGProperty):
58295         * manual-tests/pointer-events.html: Added.
58296         * rendering/EllipsisBox.cpp:
58297         (WebCore::EllipsisBox::nodeAtPoint):
58298         * rendering/InlineBox.h:
58299         (WebCore::InlineBox::visibleToHitTesting):
58300         * rendering/InlineFlowBox.cpp:
58301         (WebCore::InlineFlowBox::nodeAtPoint):
58302         * rendering/InlineTextBox.cpp:
58303         (WebCore::InlineTextBox::nodeAtPoint):
58304         * rendering/PointerEventsHitRules.cpp:
58305         (WebCore::PointerEventsHitRules::PointerEventsHitRules):
58306         * rendering/PointerEventsHitRules.h:
58307         (WebCore::PointerEventsHitRules::):
58308         * rendering/RenderBlock.cpp:
58309         (WebCore::RenderBlock::nodeAtPoint):
58310         * rendering/RenderBox.cpp:
58311         (WebCore::RenderBox::nodeAtPoint):
58312         * rendering/RenderObject.h:
58313         (WebCore::RenderObject::visibleToHitTesting):
58314         * rendering/RenderPath.cpp:
58315         (WebCore::RenderPath::nodeAtPoint):
58316         * rendering/RenderSVGImage.cpp:
58317         (WebCore::RenderSVGImage::nodeAtPoint):
58318         * rendering/RenderSVGText.cpp:
58319         (WebCore::RenderSVGText::nodeAtPoint):
58320         * rendering/RootInlineBox.cpp:
58321         (WebCore::RootInlineBox::nodeAtPoint):
58322         * rendering/TextControlInnerElements.cpp:
58323         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
58324         * rendering/style/RenderStyle.h:
58325         (WebCore::):
58326         (WebCore::InheritedFlags::setBitDefaults):
58327         (WebCore::InheritedFlags::pointerEvents):
58328         (WebCore::InheritedFlags::setPointerEvents):
58329         (WebCore::InheritedFlags::initialPointerEvents):
58330         * rendering/style/RenderStyleConstants.h:
58331         (WebCore::):
58332         * rendering/style/SVGRenderStyle.h:
58333         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
58334         (WebCore::SVGRenderStyle::setBitDefaults):
58335         * rendering/style/SVGRenderStyleDefs.h:
58336         * css/CSSValueKeywords.in:
58337         * css/SVGCSSValueKeywords.in:
58338
58339 2009-01-05  Oliver Hunt  <oliver@apple.com>
58340
58341         Reviewed by NOBODY (Build fix).
58342
58343         Fix Cairo/Gtk build
58344
58345         * platform/graphics/cairo/ImageBufferCairo.cpp:
58346         (WebCore::ImageBuffer::getImageData):
58347
58348 2009-01-05  Oliver Hunt  <oliver@apple.com>
58349
58350         Reviewed by Gavin Barraclough.
58351
58352         CanvasPixelArray performance is too slow
58353         <https://bugs.webkit.org/show_bug.cgi?id=23123>
58354
58355         Remove the WebCore CanvasPixelArray implementation and replace
58356         CPA usage with JSC::ByteArray.  Replace the JSCanvasPixelArray
58357         wrapper with an explicitly instantiated JSByteArray put on the
58358         JSImageData object as an ordinary ReadOnly, DontDelete property.
58359
58360         * DerivedSources.make:
58361         * ForwardingHeaders/runtime/ByteArray.h: Added.
58362         * ForwardingHeaders/runtime/JSByteArray.h: Added.
58363         * GNUmakefile.am:
58364         * WebCore.pro:
58365         * WebCore.scons:
58366         * WebCore.vcproj/WebCore.vcproj:
58367         * WebCore.xcodeproj/project.pbxproj:
58368         * bindings/js/JSCanvasPixelArrayCustom.h: Removed.
58369         * bindings/js/JSImageDataCustom.cpp:
58370         (WebCore::toJS):
58371         * html/CanvasPixelArray.cpp: Removed.
58372         * html/CanvasPixelArray.h: Removed.
58373         * html/CanvasPixelArray.idl: Removed.
58374         * html/CanvasRenderingContext2D.cpp:
58375         (WebCore::createEmptyImageData):
58376         * html/ImageData.cpp:
58377         (WebCore::ImageData::ImageData):
58378         * html/ImageData.h:
58379         (WebCore::ImageData::data):
58380         * html/ImageData.idl:
58381         * platform/graphics/cg/ImageBufferCG.cpp:
58382         (WebCore::ImageBuffer::getImageData):
58383         (WebCore::ImageBuffer::putImageData):
58384
58385 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
58386
58387         Reviewed by George Staikos.
58388
58389         Add notification for contentsSizeChanged which the Qt API will
58390         introduce.
58391
58392         * loader/EmptyClients.h:
58393         (WebCore::EmptyChromeClient::contentsSizeChanged):
58394         * page/Chrome.cpp:
58395         (WebCore::Chrome::contentsSizeChanged):
58396         * page/Chrome.h:
58397         * page/ChromeClient.h:
58398         * page/FrameView.cpp:
58399         (WebCore::FrameView::setContentsSize):
58400         * page/FrameView.h:
58401         * platform/HostWindow.h:
58402         * platform/ScrollView.h:
58403
58404 2009-01-05  Anders Carlsson  <andersca@apple.com>
58405
58406         Build fix.
58407
58408         * plugins/PluginView.h:
58409         (WebCore::PluginManualLoader::~PluginManualLoader):
58410
58411 2009-01-05  Anders Carlsson  <andersca@apple.com>
58412
58413         Reviewed by Kevin Decker.
58414
58415         Add an abstract PluginManualLoader class and make PluginView inherit from it.
58416
58417         Add some error checking that currently exists in WebKit (but not for long!)
58418
58419         * plugins/PluginView.cpp:
58420         (WebCore::PluginView::didReceiveResponse):
58421         (WebCore::PluginView::didReceiveData):
58422         (WebCore::PluginView::didFinishLoading):
58423         (WebCore::PluginView::didFail):
58424         * plugins/PluginView.h:
58425
58426 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
58427
58428         Reviewed by George Staikos.
58429
58430         Fixes FrameView to respect the state of scrollbarmode when it is explicitly
58431         set programatically via a webkit API.
58432
58433         * loader/FrameLoaderClient.cpp:
58434         (WebCore::FrameLoaderClient::transitionToCommittedForNewPage):
58435         * loader/FrameLoaderClient.h:
58436         * page/FrameView.cpp:
58437         (WebCore::FrameView::initScrollbars):
58438         (WebCore::FrameView::updateDefaultScrollbarState):
58439         * page/FrameView.h:
58440
58441 2009-01-05  Darin Adler  <darin@apple.com>
58442
58443         Reviewed by Dan Bernstein.
58444
58445         Bug 23109: REGRESSION: Backwards search in a long document matches incorrectly
58446         https://bugs.webkit.org/show_bug.cgi?id=23109
58447
58448         Test: fast/text/find-backwards.html
58449
58450         * editing/TextIterator.cpp:
58451         (WebCore::SearchBuffer::append): Fix incorrect size passed to memcpy.
58452         (WebCore::SearchBuffer::search): Handle case where we have an empty buffer but
58453         we're at a break; must not try to search because ICU will give us an error.
58454         Fix incorrect size passed to memcpy and memmove.
58455         (WebCore::findPlainText): Fix case where we found a match and need to search
58456         again because we want to find the last match. We need to try again without
58457         adding any more text or handling the break before moving on.
58458
58459 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
58460
58461         Fix the Qt build
58462
58463         * bridge/runtime_object.cpp:
58464         (JSC::RuntimeObjectImp::put):
58465
58466 2009-01-05  Alexey Proskuryakov  <ap@webkit.org>
58467
58468         Reviewed by Sam Weinig.
58469
58470         Fix platforms that don't have Workers enabled.
58471
58472         * platform/ThreadGlobalData.cpp: (WebCore::threadGlobalData): Create ThreadGlobalData in
58473         two stages, so that EventNames constructor can access the just-created atomic string table.
58474         This matches what happens in ThreadSpecific case.
58475
58476 2009-01-05  Alexey Proskuryakov  <ap@webkit.org>
58477
58478         Suggested by Dave Levin.
58479
58480         Mac release build fix.
58481
58482         * WebCore.base.exp: Remove ThreadGlobalData::eventNames(), which is now inline.
58483
58484 2009-01-05  Darin Adler  <darin@apple.com>
58485
58486         * dom/Document.cpp: Fix build. Oops again.
58487
58488 2009-01-05  Darin Adler  <darin@apple.com>
58489
58490         Reviewed by Anders Carlsson.
58491
58492         Fix hang whenever following an anchor.
58493
58494         * dom/Document.cpp:
58495         (WebCore::Document::findAnchor): Oops!
58496
58497 2009-01-05  Alexey Proskuryakov  <ap@webkit.org>
58498
58499         Reviewed by Darin Adler.
58500
58501         https://bugs.webkit.org/show_bug.cgi?id=23073
58502         <rdar://problem/6471129> Workers crash on Windows Release builds
58503
58504         * platform/ThreadGlobalData.cpp: (WebCore::ThreadGlobalData::ThreadGlobalData):
58505         * platform/ThreadGlobalData.h: (WebCore::ThreadGlobalData::eventNames):
58506         Now that ThreadSpecific sets up the pointer before invoking data constructor, we can
58507         initialize EventNames right away.
58508
58509 2009-01-05  Darin Adler  <darin@apple.com>
58510
58511         Reviewed by Anders Carlsson.
58512
58513         Bug 23106: HTMLFormCollection::namedItem ignores caseSensitive argument
58514         https://bugs.webkit.org/show_bug.cgi?id=23106
58515
58516         This led me to a bunch of dead code. It turns out that HTML collections
58517         were carrying the case-insensitive code just so they could be used to
58518         find anchors, something we can do more simply and efficiently without
58519         creating a DOM HTMLCollection object.
58520
58521         No behavior change. Just adding a new function findAnchor function and
58522         removing some dead code.
58523
58524         * dom/Document.cpp:
58525         (WebCore::Document::findAnchor): Added.
58526         * dom/Document.h: Ditto.
58527
58528         * html/HTMLAnchorElement.cpp:
58529         (WebCore::HTMLAnchorElement::accessKey): Take and return AtomicString
58530         references for better efficiency.
58531         (WebCore::HTMLAnchorElement::setAccessKey): Ditto.
58532         (WebCore::HTMLAnchorElement::charset): Ditto.
58533         (WebCore::HTMLAnchorElement::setCharset): Ditto.
58534         (WebCore::HTMLAnchorElement::coords): Ditto.
58535         (WebCore::HTMLAnchorElement::setCoords): Ditto.
58536         (WebCore::HTMLAnchorElement::setHref): Ditto.
58537         (WebCore::HTMLAnchorElement::hreflang): Ditto.
58538         (WebCore::HTMLAnchorElement::setHreflang): Ditto.
58539         (WebCore::HTMLAnchorElement::name): Ditto.
58540         (WebCore::HTMLAnchorElement::setName): Ditto.
58541         (WebCore::HTMLAnchorElement::rel): Ditto.
58542         (WebCore::HTMLAnchorElement::setRel): Ditto.
58543         (WebCore::HTMLAnchorElement::rev): Ditto.
58544         (WebCore::HTMLAnchorElement::setRev): Ditto.
58545         (WebCore::HTMLAnchorElement::shape): Ditto.
58546         (WebCore::HTMLAnchorElement::setShape): Ditto.
58547         (WebCore::HTMLAnchorElement::setTarget): Ditto.
58548         (WebCore::HTMLAnchorElement::type): Ditto.
58549         (WebCore::HTMLAnchorElement::setType): Ditto.
58550         * html/HTMLAnchorElement.h: Ditto.
58551
58552         * html/HTMLCollection.cpp:
58553         (WebCore::HTMLCollection::checkForNameMatch): Changed argument to an
58554         AtomicString and removed the caseSensitive boolean, since we're now always
58555         case sensitive.
58556         (WebCore::HTMLCollection::namedItem): Ditto.
58557         (WebCore::HTMLCollection::nextNamedItem): Ditto.
58558         * html/HTMLCollection.h: Ditto.
58559         * html/HTMLFormCollection.cpp:
58560         (WebCore::HTMLFormCollection::getNamedItem): Ditto.
58561         (WebCore::HTMLFormCollection::getNamedFormItem): Ditto.
58562         (WebCore::HTMLFormCollection::nextNamedItemInternal): Ditto.
58563         (WebCore::HTMLFormCollection::namedItem): Ditto.
58564         (WebCore::HTMLFormCollection::nextNamedItem): Ditto.
58565         * html/HTMLFormCollection.h: Ditto.
58566         * html/HTMLSelectElement.cpp:
58567         (WebCore::HTMLSelectElement::namedItem): Ditto.
58568         * html/HTMLSelectElement.h: Ditto.
58569
58570         * loader/FrameLoader.cpp:
58571         (WebCore::FrameLoader::gotoAnchor): Use the new findAnchor function.
58572         * page/AccessibilityRenderObject.cpp:
58573         (WebCore::AccessibilityRenderObject::internalLinkElement): Ditto.
58574
58575 2009-01-05  Darin Adler  <darin@apple.com>
58576
58577         Reviewed by Anders Carlsson.
58578
58579         Bug 23104: minor mistakes in init functions for animation and transition events
58580         https://bugs.webkit.org/show_bug.cgi?id=23104
58581
58582         Test: fast/events/init-events.html
58583
58584         Also fixed two StorageEvent problems the test case uncovered:
58585
58586             Made document.createEvent("StorageEvent") work.
58587             Allow null values for StorageEvent.oldValue and StorageEvent.newValue.
58588
58589         * dom/Document.cpp:
58590         (WebCore::Document::createEvent): Sorted alphabetically by the name of the event
58591         class. Added StorageEvent.
58592
58593         * dom/UIEvent.idl: Fixed typo in a comment.
58594
58595         * dom/WebKitAnimationEvent.cpp:
58596         (WebCore::WebKitAnimationEvent::initWebKitAnimationEvent): Use all the arguments.
58597         * dom/WebKitTransitionEvent.cpp:
58598         (WebCore::WebKitTransitionEvent::initWebKitTransitionEvent): Ditto.
58599
58600         * storage/StorageEvent.idl: Use the ConvertNullToNullString keyword on the
58601         arguments to initStorageEvent so it can create events with null values for the
58602         oldValue and newValue, just like the real storage events. Note that the properties
58603         already had ConvertNullStringTo=Null, so this is just the other half of that.
58604
58605 2009-01-05  Darin Adler  <darin@apple.com>
58606
58607         Reviewed by Alexey Proskuryakov.
58608
58609         Bug 23102: turn on unused parameter warnings in WebCore
58610         https://bugs.webkit.org/show_bug.cgi?id=23102
58611
58612         First step: Fix the simple cases where we can just remove an argument name.
58613         Also made a few more things protected and private.
58614
58615         * many files
58616
58617 2009-01-05  Alexey Proskuryakov  <ap@webkit.org>
58618
58619         Reviewed by Darin Adler.
58620
58621         https://bugs.webkit.org/show_bug.cgi?id=23115
58622         Create a version of ASSERT for use with otherwise unused variables
58623
58624         * loader/appcache/ApplicationCacheStorage.cpp:
58625         (WebCore::ApplicationCacheStorage::verifySchemaVersion): Use the new ASSERT_UNUSED macro.
58626
58627 2009-01-05  Alexey Proskuryakov  <ap@webkit.org>
58628
58629         Non-Mac build fix.
58630
58631         * loader/appcache/ApplicationCacheStorage.cpp: Include wtf/StringExtras.h for snprintf.
58632
58633 2009-01-05  Adam Treat  <adam.treat@torchmobile.com>
58634
58635         Reviewed by George Staikos.
58636
58637         Remove unnecessary methods from EmptyFrameLoaderClient
58638
58639         * loader/EmptyClients.h:
58640
58641 2009-01-05  Alexey Proskuryakov  <ap@webkit.org>
58642
58643         Reviewed by Darin Adler.
58644
58645         https://bugs.webkit.org/show_bug.cgi?id=23077
58646         Make application cache use SQLite built-in user_version
58647
58648         * loader/appcache/ApplicationCacheStorage.cpp:
58649         (WebCore::ApplicationCacheStorage::verifySchemaVersion): Changed to track versions with
58650         PRAGMA user_version.
58651
58652         * loader/appcache/ApplicationCacheResource.h: (WebCore::ApplicationCacheResource::):
58653         Used the occasion to get rid of the hole in bitmask that was a leftover from opportunistic
58654         cache entries.
58655
58656 2009-01-04  David Smith  <catfish.man@gmail.com>
58657
58658         Reviewed by Oliver Hunt.
58659
58660         https://bugs.webkit.org/show_bug.cgi?id=23084
58661         Avoid redundant AtomicString conversions
58662
58663         * dom/Node.cpp:
58664         (WebCore::Node::getElementsByTagName): Pass starAtom instead of "*"
58665         (WebCore::Node::getElementsByTagNameNS): Take an AtomicString for the namespace URI
58666         (WebCore::Node::isDefaultNamespace): Ditto
58667         (WebCore::Node::lookupPrefix): Ditto
58668         (WebCore::Node::lookupNamespacePrefix): Ditto
58669         * dom/Node.h: Ditto
58670
58671 2009-01-04  Darin Adler  <darin@apple.com>
58672
58673         Reviewed by Oliver Hunt.
58674
58675         Bug 23105: canvas setFillColor function ignores alpha argument
58676         https://bugs.webkit.org/show_bug.cgi?id=23105
58677
58678         Test: fast/canvas/set-colors.html
58679
58680         * html/CanvasRenderingContext2D.cpp:
58681         (WebCore::CanvasRenderingContext2D::setFillColor): Pass alpha value through instead
58682         of ignoring it and always passing 1.
58683
58684         * html/CanvasStyle.cpp:
58685         (WebCore::CanvasStyle::applyStrokeColor): Fix spelling of transparent in comments.
58686         (WebCore::CanvasStyle::applyFillColor): Ditto.
58687
58688 2009-01-04  Darin Adler  <darin@apple.com>
58689
58690         Bug 23086: REGRESSION(r39540/r39541): Windows build fails due to ICU errors
58691         https://bugs.webkit.org/show_bug.cgi?id=23086
58692
58693         * editing/TextIterator.cpp: Check UCONFIG_NO_COLLATION and don't compile
58694         in the new search path if it's 0.
58695
58696 2009-01-04  David Kilzer  <ddkilzer@apple.com>
58697
58698         Don't install *.idl and *.in files as resources
58699
58700         Reviewed by Oliver Hunt.
58701
58702         Don't install these files as resources in the WebCore framework:
58703         - WMLAttributeNames.in
58704         - WMLTagNames.in
58705         - WorkerContext.idl
58706         - WorkerLocation.idl
58707         - WorkerNavigator.idl
58708
58709         * WebCore.xcodeproj/project.pbxproj: Removed resources.
58710
58711 2009-01-04  Simon Fraser  <simon.fraser@apple.com>
58712
58713         Reviewed by Darin Adler
58714
58715         https://bugs.webkit.org/show_bug.cgi?id=23090
58716
58717         If an object gets a Layout hint, and the style change will result in
58718         the creation of a RenderLayer, then we need to repaint the old position
58719         of the object. This was done for transform, but we have to test opacity too.
58720
58721         Test: fast/repaint/create-layer-repaint.html
58722
58723         * rendering/RenderObject.cpp:
58724         (WebCore::RenderObject::styleWillChange):
58725
58726 2009-01-04  Darin Adler  <darin@apple.com>
58727
58728         Reviewed by Dan Bernstein.
58729
58730         Bug 23103: Safari's auto-fill no longer works for <select> elements
58731         https://bugs.webkit.org/show_bug.cgi?id=23103
58732         rdar://problem/6472061
58733
58734         * bindings/objc/DOMHTML.mm:
58735         (-[DOMHTMLSelectElement _activateItemAtIndex:]): Implemented this.
58736
58737 2009-01-04  Adam Treat  <adam.treat@torchmobile.com>
58738
58739         Reviewed by George Staikos.
58740
58741         Add fixedLayoutSize feature to ScrollView to allow for controlling the
58742         layout beyond the constraint of the current viewports dynamic size
58743
58744         * css/MediaQueryEvaluator.cpp:
58745         (WebCore::heightMediaFeatureEval):
58746         (WebCore::widthMediaFeatureEval):
58747         * dom/Element.cpp:
58748         (WebCore::Element::clientWidth):
58749         (WebCore::Element::clientHeight):
58750         * loader/FrameLoaderClient.cpp:
58751         (WebCore::FrameLoaderClient::transitionToCommittedForNewPage):
58752         * loader/FrameLoaderClient.h:
58753         * page/FrameView.cpp:
58754         (WebCore::FrameView::layout):
58755         * platform/ScrollView.cpp:
58756         (WebCore::ScrollView::ScrollView):
58757         (WebCore::ScrollView::layoutWidth):
58758         (WebCore::ScrollView::layoutHeight):
58759         (WebCore::ScrollView::fixedLayoutSize):
58760         (WebCore::ScrollView::setFixedLayoutSize):
58761         (WebCore::ScrollView::useFixedLayout):
58762         (WebCore::ScrollView::setUseFixedLayout):
58763         * platform/ScrollView.h:
58764         * rendering/RenderView.cpp:
58765         (WebCore::RenderView::viewHeight):
58766         (WebCore::RenderView::viewWidth):
58767         * rendering/RenderView.h:
58768
58769 2009-01-03  Rob Buis  <rwlbuis@gmail.com>
58770
58771         Reviewed by Darin.
58772
58773         https://bugs.webkit.org/show_bug.cgi?id=22660
58774         SVG elements that are moved are nor fully invalidated/earsed
58775
58776         Mark the SVG root as needing a layout when its position changes.
58777
58778         Tests: svg/custom/circle-move-invalidation.svg
58779
58780         * rendering/RenderSVGRoot.cpp:
58781         (WebCore::RenderSVGRoot::position):
58782         * rendering/RenderSVGRoot.h:
58783
58784 2009-01-03  Steve Falkenburg  <sfalken@apple.com>
58785
58786         Build fix.
58787
58788         * loader/FrameLoader.h:
58789
58790 2009-01-02  Cary Clark  <caryclark@google.com>
58791
58792         Reviewed and landed by Darin Adler.
58793
58794         Bug 22963: write icons before reading them
58795         https://bugs.webkit.org/show_bug.cgi?id=22963
58796
58797         Reverse the order in the icon database main thread loop to
58798         write the pending icons to the database before trying
58799         to read any requested icons. This ensures that a requested icon
58800         has the correct data when read.
58801
58802         * loader/icon/IconDatabase.cpp:
58803         (WebCore::IconDatabase::syncThreadMainLoop):
58804
58805 2009-01-02  Darin Adler  <darin@apple.com>
58806
58807         * loader/FrameLoader.cpp:
58808         (WebCore::FrameLoader::loadItem): One small thing I forgot in my last check-in.
58809         This cuts down on the number of hash table operations during loading.
58810
58811 2009-01-02  Dmitry Titov  <dimich@chromium.org>
58812
58813         Reviewed and landed by Darin Adler.
58814
58815         https://bugs.webkit.org/show_bug.cgi?id=23025
58816         DOMTimer lifetime cleanup: timeoutMap methods on Document now do not delete the timer.
58817         Instead, all 3 places that delete timers do it directly calling 'delete' and then timer's dtor removes the ID from the timeoutMap.
58818         Note that in case the context is destroyed and timers are deleted at once, the check in ~DOMTimer() prevents
58819         unnecessary HashMap remove in case the Document is being destroyed.
58820
58821         * bindings/js/DOMTimer.cpp:
58822         (WebCore::DOMTimer::~DOMTimer): removes the id from the timeoutMap.
58823         (WebCore::DOMTimer::install):
58824         (WebCore::DOMTimer::removeById): simply uses 'delete this'.
58825         (WebCore::DOMTimer::fired): same.
58826         (WebCore::DOMTimer::contextDestroyed): same.
58827         * dom/Document.cpp:
58828         (WebCore::Document::removeTimeout): now it only removes the id from the map, does not delete the timer.
58829
58830 2009-01-02  Darin Adler  <darin@apple.com>
58831
58832         Reviewed by Sam Weinig.
58833
58834         Bug 23072: REGRESSION (r37371): In the Dictionary application, scroll bar appears
58835         inside its web view when resizing its window
58836         https://bugs.webkit.org/show_bug.cgi?id=23072
58837         rdar://problem/6368028
58838
58839         The first attempt at fixing this did not work.
58840         This time I was able to reproduce the bug and test the fix.
58841
58842         Bug 11212: REGRESSION: Activity window doesn't always list all files until refresh
58843         https://bugs.webkit.org/show_bug.cgi?id=11212
58844         rdar://problem/4959702
58845
58846         I had to fix this second bug because otherwise the WebKit code to trigger the first
58847         fix didn't run.
58848
58849         Also fixes memory use that kept growing as we maintained a set of all URLs loaded in
58850         a particular frame. Bad idea! It's bad enough that we do it for each document, but
58851         the old version kept the set around forever as you moved from one document to the next.
58852
58853         * html/HTMLFrameElementBase.cpp:
58854         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Change this so that we allow
58855         turning off scrolling when the quirk is enabled. We just don't allow turning it on.
58856         This fixes one of the two problems with the initial patch; the other fix is in WebKit.
58857
58858         * loader/DocumentLoader.h: Moved didTellClientAboutLoad and haveToldClientAboutLoad
58859         here from FrameLoader. The old way meant that a given frame would forever remember
58860         the URL of any resources loaded in that frame and never send any "loaded from cache"
58861         client calls about those URLs.
58862
58863         * loader/FrameLoader.cpp:
58864         (WebCore::FrameLoader::loadResourceSynchronously): Removed call to didTellCientAboutLoad.
58865         This is now handled by dispatchWillSendRequest, which is safer since that's the actual
58866         function that tells the client about the load.
58867         (WebCore::FrameLoader::loadedResourceFromMemoryCache): Changed calls to
58868         haveToldClientAboutLoad and didTellClientAboutLoad to call the document loader.
58869         Also removed the call in the case where we don't load from the cache, since
58870         dispatchWillSendRequest now takes care of it.
58871         (WebCore::FrameLoader::dispatchWillSendRequest): Put calls to didTellClientAboutLoad
58872         here. Call it both on the URL we pass in and the URL the client returns; we won't
58873         tell the client about either if it's loaded from the memory cache.
58874
58875         * loader/FrameLoader.h: Removed didTellClientAboutLoad, haveToldClientAboutLoad, and
58876         m_urlsClientKnowsAbout.
58877
58878         * loader/SubresourceLoader.cpp: Removed unneeded load function that called
58879         didTellClientAboutLoad. That's now taken care of in dispatchWillSendRequest.
58880
58881         * loader/SubresourceLoader.h: Removed load function. Also made all members private
58882         except for create and clearClient.
58883
58884 2009-01-02  Simon Fraser  <simon.fraser@apple.com>
58885
58886         Reviewed by Darin Adler
58887
58888         https://bugs.webkit.org/show_bug.cgi?id=23082
58889
58890         Fix GIF animation by ensuring that the signature of
58891         startAnimation() in the base class matches the method in BitmapImage.
58892
58893         Test: fast/backgrounds/animated-gif-as-background.html
58894
58895         * platform/graphics/Image.h:
58896         (WebCore::Image::startAnimation):
58897
58898 2009-01-02  David Smith  <catfish.man@gmail.com>
58899
58900         Reviewed by Darin Adler.
58901
58902         https://bugs.webkit.org/show_bug.cgi?id=22699
58903         Enable NodeList caching for getElementsByTagName
58904
58905         test: fast/dom/getelementsbytagnamens-mixed-namespaces.html
58906
58907         * dom/Document.cpp:
58908         (WebCore::FormElementKeyHash::hash): Use WTF::stringHashingStartValue
58909         * dom/Node.cpp:
58910         (WebCore::Node::getElementsByTagNameNS): Ensure rare data and add a node list cache
58911         (WebCore::NodeListsNodeData::invalidateCaches): Invalidate the tag name node list cache as well as the others
58912         (WebCore::NodeListsNodeData::isEmpty): Check the tag name node list cache as well as the others
58913         * dom/NodeRareData.h: Add m_tagNodeListCaches
58914         * dom/QualifiedName.cpp:
58915         * dom/QualifiedName.h: Move QNameHash to the header, make it work on QualifiedNames, and rename to QualifiedNameHash
58916         * dom/StyledElement.cpp:
58917         (WebCore::MappedAttributeHash::hash): Use WTF::stringHashingStartValue
58918         * dom/TagNodeList.cpp:
58919         (WebCore::TagNodeList::TagNodeList): Add a NodeList cache argument
58920         * dom/TagNodeList.h:
58921         (WebCore::TagNodeList::create): Add a NodeList cache argument
58922         * platform/text/StringHash.h:
58923         (WebCore::CaseFoldingHash::hash): Use WTF::stringHashingStartValue
58924         * platform/text/TextEncodingRegistry.cpp:
58925         (WebCore::TextEncodingNameHash::hash): Use WTF::stringHashingStartValue
58926
58927 2009-01-02  Eric Carlson  <eric.carlson@apple.com>
58928
58929         Reviewed by Darin Adler
58930
58931         Fix for https://bugs.webkit.org/show_bug.cgi?id=23066 & <rdar://problem/6028417>
58932         Full Page Zoom: a <video> element that doesn't include width/height attribute does not scale
58933
58934         * rendering/RenderVideo.cpp:
58935         (WebCore::RenderVideo::calcReplacedWidth): Multiply aspect ratio width by style()->effectiveZoom()
58936         (WebCore::RenderVideo::calcReplacedHeight): Multiply aspect ratio height by style()->effectiveZoom()
58937
58938 2009-01-02  David Kilzer  <ddkilzer@apple.com>
58939
58940         BUILD FIX (r39552): Add mediaControls.css to other build files
58941
58942         * GNUmakefile.am:
58943         * WebCore.pro:
58944         * WebCore.vcproj/WebCore.vcproj:
58945
58946 2009-01-02  David Kilzer  <ddkilzer@apple.com>
58947
58948         Try to fix Wx build after r39427
58949
58950         * platform/graphics/wx/PathWx.cpp:
58951         (WebCore::Path::strokeBoundingRect): Added stub.
58952
58953 2009-01-02  Alexey Proskuryakov  <ap@webkit.org>
58954
58955         Reviewed by Adele Peterson.
58956
58957         <rdar://problem/6471356> Failed assertion on quit
58958
58959         * platform/ThreadGlobalData.cpp: (WebCore::ThreadGlobalData::~ThreadGlobalData):
58960         Only assert that empty string are all removed on secondary threads.
58961
58962 2009-01-02  David Kilzer  <ddkilzer@apple.com>
58963
58964         Bug 23081: These files are no longer part of the KDE libraries
58965
58966         <https://bugs.webkit.org/show_bug.cgi?id=23081>
58967
58968         Reviewed by Darin Adler.
58969
58970         Removed "This file is part of the KDE libraries" comment from
58971         source files.  Added or updated Apple copyrights as well.
58972
58973         No tests since there are only changes to comments.
58974
58975         * bridge/testbindings.cpp:
58976         * html/HTMLEntityNames.gperf:
58977         * loader/Cache.h:
58978         * loader/CachedCSSStyleSheet.h:
58979         * loader/CachedResourceClient.h:
58980         * loader/CachedResourceClientWalker.cpp:
58981         * loader/CachedResourceClientWalker.h:
58982         * loader/CachedScript.cpp:
58983         * loader/CachedScript.h:
58984         * loader/CachedXBLDocument.cpp:
58985         * loader/CachedXBLDocument.h:
58986         * loader/CachedXSLStyleSheet.cpp:
58987         * loader/CachedXSLStyleSheet.h:
58988         * rendering/GapRects.h:
58989         * xml/XMLSerializer.cpp:
58990
58991 2009-01-02  Simon Fraser  <simon.fraser@apple.com>
58992
58993         Reviewed by Darin Adler
58994
58995         Use an OwnPtr for m_chromeClient.
58996
58997         * svg/graphics/SVGImage.cpp:
58998         (WebCore::SVGImage::~SVGImage):
58999         (WebCore::SVGImage::dataChanged):
59000         * svg/graphics/SVGImage.h:
59001
59002 2009-01-02  Simon Fraser  <simon.fraser@apple.com>
59003
59004         Reviewed by Darin Adler
59005
59006         https://bugs.webkit.org/show_bug.cgi?id=22981
59007
59008         Repaints inside of an SVGImage were thrown on the floor,
59009         which broke incremental painting due to loading, or SVG animation.
59010         Fix this by assigning the SVGImage a ChromeClient subclass that passes
59011         along repaints via a new method on ImageObserver, which also takes
59012         a rect parameter for the changed rect, allowing incremental repaints.
59013         Fix RenderImage::imageChanged to take advantage of this changedRect to
59014         only repaint the changed parts of the image.
59015
59016         This also enables incremental painting for canvas-as-image, so
59017         add tests for that too.
59018
59019         Tests: fast/backgrounds/animated-svg-as-background.html
59020                fast/backgrounds/animated-svg-as-mask.html
59021                fast/canvas/canvas-as-image-incremental-repaint.html
59022                fast/canvas/canvas-as-image.html
59023                fast/images/animated-svg-as-image.html
59024
59025         * css/CSSCanvasValue.cpp:
59026         (WebCore::CSSCanvasValue::canvasChanged):
59027         * loader/CachedImage.cpp:
59028         (WebCore::CachedImage::notifyObservers):
59029         (WebCore::CachedImage::data):
59030         (WebCore::CachedImage::changedInRect):
59031         * loader/CachedImage.h:
59032         * loader/CachedResourceClient.h:
59033         (WebCore::CachedResourceClient::imageChanged):
59034         * platform/graphics/ImageObserver.h:
59035         * rendering/RenderBox.cpp:
59036         (WebCore::RenderBox::imageChanged):
59037         * rendering/RenderBox.h:
59038         * rendering/RenderImage.cpp:
59039         (WebCore::RenderImage::imageChanged):
59040         * rendering/RenderImage.h:
59041         * rendering/RenderListMarker.cpp:
59042         (WebCore::RenderListMarker::imageChanged):
59043         * rendering/RenderListMarker.h:
59044         * rendering/RenderObject.cpp:
59045         (WebCore::RenderObject::imageChanged):
59046         * rendering/RenderObject.h:
59047         (WebCore::RenderObject::imageChanged):
59048         * rendering/RenderSVGImage.cpp:
59049         (WebCore::RenderSVGImage::imageChanged):
59050         * rendering/RenderSVGImage.h:
59051         * rendering/RenderScrollbarPart.cpp:
59052         (WebCore::RenderScrollbarPart::imageChanged):
59053         * rendering/RenderScrollbarPart.h:
59054         * rendering/RenderTableCol.cpp:
59055         (WebCore::RenderTableCol::imageChanged):
59056         * rendering/RenderTableCol.h:
59057         * rendering/RenderTableRow.cpp:
59058         (WebCore::RenderTableRow::imageChanged):
59059         * rendering/RenderTableRow.h:
59060         * rendering/RenderTableSection.cpp:
59061         (WebCore::RenderTableSection::imageChanged):
59062         * rendering/RenderTableSection.h:
59063         * svg/graphics/SVGImage.cpp:
59064         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
59065         (WebCore::SVGImageChromeClient::image):
59066         (WebCore::SVGImageChromeClient::chromeDestroyed):
59067         (WebCore::SVGImageChromeClient::repaint):
59068         (WebCore::SVGImage::SVGImage):
59069         (WebCore::SVGImage::~SVGImage):
59070         (WebCore::SVGImage::dataChanged):
59071         * svg/graphics/SVGImage.h:
59072
59073 2009-01-02  Eric Carlson  <eric.carlson@apple.com>
59074
59075         Reviewed by Darin Adler
59076
59077         https://bugs.webkit.org/show_bug.cgi?id=23043
59078
59079         Pull media controls css out of html4.css into separate file. Don't generate
59080         wml, svg, or media css globals unless the feature is enabled.
59081
59082         * DerivedSources.make:
59083             Don't include css for unused features.
59084
59085         * WebCore.xcodeproj/project.pbxproj:
59086             include mediaControls.css
59087
59088         * css/CSSStyleSelector.cpp:
59089         (WebCore::CSSStyleSelector::styleForElement):
59090             don't parse or add media css unless VIDEO feature is enabled and the target
59091             element is video or audio
59092
59093         * css/html4.css:
59094             moved media controls css to mediaControls.css
59095
59096         * css/mediaControls.css: Added.
59097
59098 2009-01-02  Alexey Proskuryakov  <ap@webkit.org>
59099
59100         Reviewed by Darin Adler.
59101
59102         https://bugs.webkit.org/show_bug.cgi?id=23022
59103         Fix multiple issues with appcache online whitelist handling
59104
59105         Test: http/tests/appcache/online-whitelist.html
59106
59107         * loader/appcache/ApplicationCache.cpp:
59108         (WebCore::ApplicationCache::isURLInOnlineWhitelist): Test whitelist entries as prefixes,
59109         making it possible to use them for CGI invocation (as required by HTML5).
59110
59111         * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
59112         Re-ordered checks, so that resources that are cached, but are also listed in online whitelist
59113         are loaded from the cache. This is required by HTML5, although Firefox doesn't match.
59114
59115         * loader/appcache/ManifestParser.cpp:
59116         (WebCore::parseManifest):
59117         * loader/appcache/ManifestParser.h:
59118         * loader/appcache/ApplicationCache.h:
59119         (WebCore::ApplicationCache::onlineWhitelist):
59120         * loader/appcache/ApplicationCacheStorage.cpp:
59121         (WebCore::ApplicationCacheStorage::store):
59122         (WebCore::ApplicationCacheStorage::loadCache):
59123         Changed online whitelist to be a vector of URLs, which is better suited for the new algorithm.
59124
59125 2009-01-02  Darin Adler  <darin@apple.com>
59126
59127         Reviewed by Oliver Hunt.
59128
59129         Bug 23072: REGRESSION (r37371): In the Dictionary application, scroll bar appears inside its web view when resizing its window
59130         https://bugs.webkit.org/show_bug.cgi?id=23072
59131         rdar://problem/6368028
59132
59133         * WebCore.base.exp: Updated.
59134         * WebCore.xcodeproj/project.pbxproj: Mark HTMLHeadElement.h Private so it can be used in WebKit.
59135
59136         * dom/Document.cpp:
59137         (WebCore::Document::Document): Initialize m_frameElementsShouldIgnoreScrolling to false.
59138         * dom/Document.h: Added setFrameElementsShouldIgnoreScrolling, frameElementsShouldIgnoreScrolling,
59139         and m_frameElementsShouldIgnoreScrolling.
59140
59141         * html/HTMLFrameElementBase.cpp:
59142         (WebCore::HTMLFrameElementBase::parseMappedAttribute): Don't allow changes to the scrolling attribute
59143         to affect the scrolling mode if frameElementsShouldIgnoreScrolling() returns true. This is only
59144         triggered on Mac OS X when running the Dictionary application.
59145
59146 2009-01-02  Alexey Proskuryakov  <ap@webkit.org>
59147
59148         Reviewed by Darin Adler.
59149
59150         https://bugs.webkit.org/show_bug.cgi?id=23036
59151         <rdar://problem/6451666> Implement AppCache fallback entries (23036)
59152
59153         Test: http/tests/appcache/fallback.html
59154
59155         * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously): Use fallback
59156         entries if normal loading fails.
59157
59158         * loader/DocumentLoader.cpp:
59159         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache): Do not prevent normal
59160         loading for resources that match fallback namespaces - they are only loaded from the cache
59161         if that fails.
59162         (WebCore::DocumentLoader::getApplicationCacheFallbackResource): Get a fallback entry for
59163         resource from associated appcache, or from passed in one, if any.
59164         (WebCore::DocumentLoader::scheduleLoadFallbackResourceFromApplicationCache): If a fallback
59165         entry for resourse exists, add it to pending substitute loads.
59166
59167         * loader/DocumentLoader.h: Added new functions for loading fallback data for resources.
59168
59169         * loader/ResourceLoader.h:
59170         * loader/ResourceLoader.cpp:
59171         (WebCore::ResourceLoader::scheduleLoadFallbackResourceFromApplicationCache): This function
59172         is called when normal loading fails (which includes network failures, 4xx and 5xx responses,
59173         and cross-origin redirects) to load appcache fallback data instead. It can use either the
59174         cache that is associated with the browsing context, or a custom one if association is yet
59175         to take place.
59176         (WebCore::ResourceLoader::willSendRequest): Try using fallback data.
59177         (WebCore::ResourceLoader::didReceiveResponse): Ditto.
59178         (WebCore::ResourceLoader::didFail): Ditto.
59179
59180         * loader/MainResourceLoader.cpp:
59181         (WebCore::MainResourceLoader::didReceiveResponse): Locate an appropriate cache and load
59182         fallback data from it if loading fails. The browsing context may still be associated with
59183         its previous document here, so the cache to load from must be passed explicitly.
59184         (WebCore::MainResourceLoader::didFail): Ditto.
59185         (WebCore::MainResourceLoader::load): Remove unnecessary check and FIXME.
59186
59187         * loader/appcache/ApplicationCache.cpp:
59188         (WebCore::ApplicationCache::setFallbackURLs):
59189         (WebCore::ApplicationCache::urlMatchesFallbackNamespace):
59190         * loader/appcache/ApplicationCache.h:
59191         (WebCore::ApplicationCache::fallbackURLs):
59192         * loader/appcache/ApplicationCacheStorage.cpp:
59193         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
59194         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
59195         (WebCore::ApplicationCacheStorage::store):
59196         (WebCore::ApplicationCacheStorage::loadCache):
59197         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
59198         * loader/appcache/ApplicationCacheStorage.h:
59199         * loader/appcache/ApplicationCacheGroup.cpp:
59200         (WebCore::ApplicationCacheGroup::fallbackCacheForMainRequest):
59201         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
59202         * loader/appcache/ApplicationCacheGroup.h:
59203         Implement fallback map saving and loading, pass it to the cache.
59204
59205         * loader/appcache/ManifestParser.h: Use a correct data structure for fallback map - keys
59206         are matched by prefix, so HAshMap cannot be used.
59207
59208         * loader/appcache/ManifestParser.cpp: (WebCore::parseManifest): Fix bugs in fallback section
59209         parsing.
59210
59211 2009-01-01  Oliver Hunt  <oliver@apple.com>
59212
59213         Reviewed by Dan Bernstein.
59214
59215         <rdar://problem/6450530> WebCore::FontPlatformData should not leak
59216
59217         Whoops, previous patch should also have fixed the font referencing in
59218         the constructor.
59219
59220         * WebCore.xcodeproj/project.pbxproj:
59221         * platform/graphics/mac/FontPlatformDataMac.mm:
59222         (WebCore::FontPlatformData::FontPlatformData):
59223
59224 2009-01-01  Oliver Hunt  <oliver@apple.com>
59225
59226         Reviewed by Dan Bernstein.
59227
59228         <rdar://problem/6450530> WebCore::FontPlatformData should not leak
59229
59230         Make sure we only adopt the new font, rather than re-referencing (and so leaking).
59231
59232         * platform/graphics/mac/FontPlatformDataMac.mm:
59233         (WebCore::FontPlatformData::setFont):
59234
59235 2009-01-01  Darin Adler  <darin@apple.com>
59236
59237         Reviewed by Dan Bernstein.
59238
59239         Bug 23071: REGRESSION (r39536): New test failures after committing patch in bug 23051 (ICU search)
59240         https://bugs.webkit.org/show_bug.cgi?id=23071
59241
59242         Also fix some things that Dan suggested during review of the ICU search patch that I forgot
59243         the first time around.
59244
59245         * editing/TextIterator.cpp: Use ICU search on all platforms that use ICU, now that
59246         we've double checked it works everywhere, removing HAVE_ICU_SEARCH entirely.
59247         Removed unused m_atBreak data member from the non-ICU code path.
59248         (WebCore::TextIterator::TextIterator): Move null check up.
59249         (WebCore::TextIterator::handleTextBox): Fix mistake that made the iterator include
59250         collapsed whitespace. This was left over from an earlier version of the patch.
59251         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
59252         Move null check up.
59253
59254 2009-01-01  Simon Fraser  <simon.fraser@apple.com>
59255
59256         Reviewed by Darin Adler, Oliver Hunt
59257
59258         https://bugs.webkit.org/show_bug.cgi?id=23065
59259
59260         Enable incremental painting of canvas. This turns incremental painting
59261         back on, and fixes issues with stroke width and miters, calling willDraw()
59262         for strokeText and fillText, and taking shadows into account.
59263
59264         Test: fast/canvas/canvas-incremental-repaint.html
59265
59266         * html/CanvasRenderingContext2D.cpp:
59267         (WebCore::CanvasStrokeStyleApplier::CanvasStrokeStyleApplier):
59268         (WebCore::CanvasStrokeStyleApplier::strokeStyle):
59269         (WebCore::CanvasRenderingContext2D::stroke):
59270         (WebCore::CanvasRenderingContext2D::willDraw):
59271         (WebCore::CanvasRenderingContext2D::putImageData):
59272         (WebCore::CanvasRenderingContext2D::drawTextInternal):
59273         * html/CanvasRenderingContext2D.h:
59274         * html/HTMLCanvasElement.cpp:
59275         (WebCore::HTMLCanvasElement::willDraw):
59276         * platform/graphics/FloatRect.h:
59277         (WebCore::mapRect): new method to map a rect contained
59278         in one rect to an equivalent rect inside another rect.
59279
59280 2008-12-29  Konstantin Käfer  <kkaefer@gmail.com>
59281
59282         Reviewed by Tim Hatcher.
59283
59284         Fix for https://bugs.webkit.org/show_bug.cgi?id=17229
59285         <rdar://problem/5732829> Inspector should show properties of all JS objects in Console
59286
59287         Prints objects not as plain text but makes them expandable so that
59288         they can be inspected.
59289
59290         * inspector/front-end/Console.js:
59291         (): added a parameter "inline" to the WebInspector.Console._format function which indicates
59292             whether the object is printed in the context of another string (with console.log()) or
59293             as sole element.
59294         (.): objects and DOM nodes are now printed in an expandable form when they are printed alone
59295             (i.e. not in the context of a console.log() string) so that they can be inspected.
59296         * inspector/front-end/PropertiesSection.js:
59297         (WebInspector.PropertiesSection.prototype.set title): Allow DOM Nodes as title instead of strings
59298             in that case, the Node is inserted into the title instead of the string value of the passed
59299             object. This is used for displaying linkified titles, for example when inspecting DOM nodes,
59300             the syntax highlighted HTML representation is shown instead of the plain source code.
59301         * inspector/front-end/inspector.css: correct the offsetParent for the expandable object inspector.
59302
59303 2009-01-01  Darin Adler  <darin@apple.com>
59304
59305         Reviewed by Dan Bernstein.
59306
59307         Bug 23051: web page searching should use ICU's search so it can ignore diacritical differences
59308         https://bugs.webkit.org/show_bug.cgi?id=23051
59309         rdar://problem/3574497
59310
59311         Test: editing/execCommand/findString-diacriticals.html
59312
59313         * editing/TextIterator.cpp: Changed the CircularSearchBuffer class to have a new
59314         name, since it doesn't always use a circular buffer any more. Changed the interface
59315         so it can work well in the new chunky comparison mode for ICU search, and also
59316         added private data members for both the ICU-search and non-ICU-search code paths.
59317         (WebCore::TextIterator::TextIterator): Use the versions of the Range functions
59318         that don't take an exception code.
59319         (WebCore::TextIterator::handleTextBox): Added a special case to handle the position
59320         of a collapsed-away space better. This is not needed for search mechanism, but was
59321         helpful in an earlier version of this patch, and is still an improvement.
59322         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Use the
59323         versions of the Range functions that don't take an exception code.
59324         (WebCore::CharacterIterator::range): Ditto.
59325         (WebCore::characterSubrange): Added. Helper function used in both places below where
59326         we want to convert a range and character offsets into a subrange.
59327         (WebCore::WordAwareIterator::advance): Use the versions of the Range functions that
59328         don't take an exception code.
59329         (WebCore::createSearcher): Added.
59330         (WebCore::searcher): Added.
59331         (WebCore::lockSearcher): Added.
59332         (WebCore::unlockSearcher): Added.
59333         (WebCore::SearchBuffer::SearchBuffer): Added.
59334         (WebCore::SearchBuffer::~SearchBuffer): Added.
59335         (WebCore::SearchBuffer::append): Added.
59336         (WebCore::SearchBuffer::atBreak): Added.
59337         (WebCore::SearchBuffer::reachedBreak): Added.
59338         (WebCore::SearchBuffer::search): Added.
59339         (WebCore::SearchBuffer::length): Added.
59340         (WebCore::TextIterator::subrange): Changed to call the characterSubrange
59341         function above.
59342         (WebCore::TextIterator::rangeFromLocationAndLength): Use the versions of the
59343         Range functions that don't take an exception code. Also tweak some other details
59344         of the code.
59345         (WebCore::isAllCollapsibleWhitespace): Added.
59346         (WebCore::collapsedToBoundary): Added.
59347         (WebCore::findPlainText): Rewrote to use new interface and streamline the
59348         logic a bit.
59349
59350         Add the relevant files in the icu directory. As icu/README says, the "icu"
59351         directory is really just for Mac OS X, where we have the ICU library but not
59352         the headers installed. It should be moved inside platform/mac at some point
59353         to make this more clear (and the copy in JavaScriptCore should be moved
59354         somewhere similar for the same reason).
59355
59356         * icu/unicode/ucoleitr.h: Added.
59357         * icu/unicode/usearch.h: Added.
59358
59359 2009-01-01  Oliver Hunt  <oliver@apple.com>
59360
59361         Reviewed by Cameron Zwarich.
59362
59363         CrashTracer: [REGRESSION] 1090 crashes in Safari at com.apple.JavaScriptCore: KJS::JSGlobalObject::stopTimeoutCheck + 0
59364         <rdar://problem/5821130>
59365
59366         This was caused by a plugin instance calling into JS code that removed the plugin
59367         object.  This fix is to cache the global object locally in a ProtectedPtr so we don't
59368         need to rely on the continued existence of the plugin instance.
59369
59370         * bridge/NP_jsobject.cpp:
59371         (_NPN_InvokeDefault):
59372         (_NPN_Invoke):
59373         (_NPN_Evaluate):
59374         (_NPN_Construct):
59375
59376 2008-12-31  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
59377
59378         Reviewed by Holger Freyther.
59379
59380         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22964
59381
59382         MinGW build failure.
59383
59384         * platform/graphics/qt/SimpleFontDataQt.cpp:
59385         (WebCore::SimpleFontData::containsCharacters):
59386
59387 2008-12-31  Alexander V. Butenko  <alex@digiqube.com>
59388
59389         Reviewed by Holger Freyther.
59390
59391         https://bugs.webkit.org/show_bug.cgi?id=22750
59392         [gtk] webkit up to r39121 crash on image urls like
59393         http:///sitename.com
59394
59395         * platform/network/soup/ResourceHandleSoup.cpp:
59396         (WebCore::ResourceHandle::start):
59397
59398 2008-12-31  Hiroyuki Ikezoe  <poincare@ikezoe.net>
59399
59400         Reviewed by Holger Freyther.
59401
59402         https://bugs.webkit.org/show_bug.cgi?id=18310
59403
59404         * platform/graphics/gtk/SimpleFontDataPango.cpp:
59405         (WebCore::SimpleFontData::determinePitch): Do not invoke
59406         isFixedPitch() when the font is a custom font.
59407
59408 2008-12-31  Oliver Hunt  <oliver@apple.com>
59409
59410         Reviewed by Cameron Zwarich.
59411
59412         More work on Bug 3781: Animation via canvas could be faster
59413         <https://bugs.webkit.org/show_bug.cgi?id=3781>
59414
59415         Make use of the fast path parsing of color strings that Color
59416         uses.  This improves performance of '#rgb', '#rrggbb', etc and
59417         named (eg. 'green') colors.
59418
59419         Improves frame rate of test by around 40%
59420
59421         * html/CanvasStyle.cpp:
59422         (WebCore::CanvasStyle::applyStrokeColor):
59423         (WebCore::CanvasStyle::applyFillColor):
59424
59425 2008-12-30  Simon Fraser  <simon.fraser@apple.com>
59426
59427         Reviewed by Darin Adler
59428
59429         https://bugs.webkit.org/show_bug.cgi?id=23042
59430
59431         Rather than doing a repaint() inside of computeAbsoluteRepaintRect()
59432         when there is a reflection, compute the location of the rect inside
59433         the reflection and take the union of the unreflected and reflected rects.
59434
59435         Test: fast/repaint/reflection-redraw.html
59436
59437         * rendering/RenderBox.cpp:
59438         (WebCore::RenderBox::computeAbsoluteRepaintRect):
59439         * rendering/RenderObject.cpp:
59440         (WebCore::RenderObject::reflectedRect):
59441         * rendering/RenderObject.h:
59442
59443 2008-12-30  Dan Bernstein  <mitz@apple.com>
59444
59445         Reviewed by Adele Peterson.
59446
59447         - fix <rdar://problem/6469944> REGRESSION(3.2.1-ToT): Repro crash in WebCore::HTMLInputElement::updatePlaceholderVisibility opening http://billshrink.com
59448
59449         Test: fast/forms/placeholder-non-textfield.html
59450
59451         * html/HTMLInputElement.cpp:
59452         (WebCore::HTMLInputElement::parseMappedAttribute): Only call
59453         updatePlaceholderVisibility() when the placeholder attribute changes if
59454         the element is a text field.
59455
59456 2008-12-30  Oliver Hunt  <oliver@apple.com>
59457
59458         Reviewed by Antti Koivisto.
59459
59460         First step of Bug 3781: Animation via canvas could be faster
59461
59462         Amortise the cost of calling repaint by coalescing repaint rects
59463         while the canvas is drawn to.  In a later step we'll stop calling
59464         repaint() directly, and instead have all dirty canvases repaint
59465         at the end of JS execution.
59466
59467         * html/HTMLCanvasElement.cpp:
59468         (WebCore::HTMLCanvasElement::willDraw):
59469         (WebCore::HTMLCanvasElement::paint):
59470         * html/HTMLCanvasElement.h:
59471
59472 2008-12-30  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
59473
59474         Reviewed by Antti Koivisto.
59475
59476         Bug 22931: Using the inspector with purgeable resources leads to assertion failures
59477         <https://bugs.webkit.org/show_bug.cgi?id=22931>
59478
59479         Change InspectorResource::sourceString() so that it doesn't attempt to
59480         unsafely get the data of a purgeable CachedResource.
59481
59482         * inspector/InspectorController.cpp:
59483         (WebCore::InspectorResource::sourceString): Attempt to make a purgeable
59484         resource unpurgeable, and if this not possible, return an empty string.
59485         * loader/CachedResource.h: Make InspectorResource a friend of CachedResource.
59486
59487 2008-12-29  Alexey Proskuryakov  <ap@webkit.org>
59488
59489         Reviewed by Sam Weinig.
59490
59491         https://bugs.webkit.org/show_bug.cgi?id=23023
59492         Remove incomplete support for opportunistic appcache entries
59493
59494         No change in behavior, thus no test.
59495
59496         * loader/appcache/ApplicationCacheResource.h:
59497         (WebCore::ApplicationCacheResource::Type): Removed Opportunistic bit, will re-use when schema
59498         version changes.
59499
59500         * loader/DocumentLoader.cpp:
59501         (WebCore::DocumentLoader::scheduleApplicationCacheLoad):
59502         * loader/appcache/ApplicationCacheGroup.cpp:
59503         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
59504         * loader/appcache/ApplicationCacheResource.cpp:
59505         (WebCore::ApplicationCacheResource::dumpType):
59506
59507 2008-12-29  Dirk Schulze  <krit@webkit.org>
59508
59509         Reviewed by Oliver Hunt.
59510
59511         Add arcTo support for Cairo. This is needed by Canvas.
59512         Cairo has no native support for arcTo. We have to make our
59513         own implementation.
59514
59515         [Canvas] Cairo needs arcTo
59516         https://bugs.webkit.org/show_bug.cgi?id=23003
59517
59518         * platform/graphics/cairo/PathCairo.cpp:
59519         (WebCore::Path::addArcTo):
59520
59521 2008-12-29  Oliver Hunt  <oliver@apple.com>
59522
59523         Reviewed by Cameron Zwarich.
59524
59525         Bug 23030: Cannot setTransform with a non-invertible ctm
59526
59527         Removed a series of unnecessary and incorrect checks for an invertible
59528         transform.
59529
59530         Test: fast/canvas/canvas-set-properties-with-non-invertible-ctm.html
59531
59532         * html/CanvasRenderingContext2D.cpp:
59533         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
59534         (WebCore::CanvasRenderingContext2D::setFillStyle):
59535             These properties are not effected by the current CTM, so there
59536             is no need to prevent them from being assigned.
59537
59538         (WebCore::CanvasRenderingContext2D::setTransform):
59539             The whole point of tracking whether the current CTM was expected to be
59540             non-invertible was to allow setTransform to be used when the CTM had become
59541             non-invertible.
59542
59543         (WebCore::CanvasRenderingContext2D::beginPath):
59544         (WebCore::CanvasRenderingContext2D::closePath):
59545             beginPath and closePath change the state of the path, but not any of
59546             its coordinates so there is no need prevent them from being called.
59547
59548 2008-12-29  Josh Roesslein  <jroesslein@gmail.com>
59549
59550         Reviewed by Oliver Hunt.
59551
59552         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22968
59553
59554         Context menu rendering error when full page zoomed
59555
59556         * page/ContextMenuController.cpp:
59557         (WebCore::ContextMenuController::handleContextMenuEvent):
59558
59559 2008-12-29  Sam Weinig  <sam@webkit.org>
59560
59561         Reviewed by Mark Rowe.
59562
59563         Add some basic memory statistic logging for Node.
59564
59565         * dom/Node.cpp:
59566         (WebCore::Node::dumpStatistics):
59567         (WebCore::Node::Node):
59568         (WebCore::Node::~Node):
59569         (WebCore::Node::setDocument):
59570         * dom/Node.h:
59571
59572 2008-12-29  Sam Weinig  <sam@webkit.org>
59573
59574         Reviewed by Anders Carlsson.
59575
59576         Remove one use of DeprecatedPtrList.
59577
59578         * css/CSSRuleList.cpp:
59579         (WebCore::CSSRuleList::~CSSRuleList):
59580         (WebCore::CSSRuleList::length):
59581         (WebCore::CSSRuleList::item):
59582         (WebCore::CSSRuleList::deleteRule):
59583         (WebCore::CSSRuleList::append):
59584         (WebCore::CSSRuleList::insertRule):
59585         * css/CSSRuleList.h: Change m_lstCSSRules from using DeprecatedPtrList to a Vector.
59586         I measured no performance change and was comforted by the fact that we use a Vector
59587         for StyleList, which serves the exact same purpose.
59588
59589 2008-12-29  Adele Peterson  <adele@apple.com>
59590
59591         Reviewed by Brady Eidson.
59592
59593         Fix for https://bugs.webkit.org/show_bug.cgi?id=21797
59594         <rdar://problem/6310682> REGRESSION: Crash in CFHTTPCookieStorageCopy beneath WebCore::cookies() when
59595         running fast/dom/document-attribute-js-null.html and http/tests/security/cookies/create-document.html
59596
59597         Return early if the document is trying to get or set a cookie with an empty cookie url.
59598
59599         * dom/Document.cpp:
59600         (WebCore::Document::cookie):
59601         (WebCore::Document::setCookie):
59602
59603 2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
59604
59605         Reviewed by Sam Weinig.
59606
59607         Bug 23016: JavaScriptDebugServer::recompileAllJSFunctions() should not execute JS while reparsing all functions
59608         <https://bugs.webkit.org/show_bug.cgi?id=23016>
59609         <rdar://problem/6425077>
59610
59611         JavaScriptDebugServer::recompileAllJSFunctions() calls sourceParsed() while
59612         reparsing all JS functions, which will execute JS in the inspector. Depending
59613         on the order in which functions are recompiled, a function could have a new
59614         body but other functions that have not been recompiled could have an optimized
59615         (in the sense of inline caching) call to it, bypassing the check of whether or
59616         not there is generated bytecode. This leads to a crash caused by accessing
59617         indices off of a null pointer.
59618
59619         To fix the problem, simply delay calling sourceParsed() until after all functions
59620         have been reparsed. The crash isn't 100% reproducible, but on the one test case
59621         I have, this makes it impossible to reproduce after a large number of attempts,
59622         when it used to happen every few attempts.
59623
59624         * inspector/JavaScriptDebugServer.cpp:
59625         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
59626
59627 2008-12-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
59628
59629         Rubber-stamped by Antti Koivisto.
59630         Oops, remove some last minute ASSERTS that are obviously wrong.
59631
59632         * rendering/RenderTextControlMultiLine.cpp:
59633         (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
59634         * rendering/RenderTextControlSingleLine.cpp:
59635         (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
59636
59637 2008-12-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
59638
59639         Reviewed by Antti Koivisto.
59640
59641         Fixes: https://bugs.webkit.org/show_bug.cgi?id=23015
59642
59643         Don't rely on HTMLFormControlElement in RenderTextControl.
59644
59645         Introduce an abstract FormControlElement class, containing the
59646         valueMatchesRenderer/setValueMatchesRenderer, the only HTMLFormControlElement
59647         specific methods that RenderTextControl relies on.
59648
59649         This makes it possible for WML to reuse RenderTextControl.
59650         RenderTextControlSingleLine still relies on HTMLInputElement,
59651         this will change if WMLInputElement is introduced.
59652
59653         * GNUmakefile.am:
59654         * WebCore.vcproj/WebCore.vcproj:
59655         * WebCore.xcodeproj/project.pbxproj:
59656         * dom/FormControlElement.h: Added.
59657         (WebCore::FormControlElement::~FormControlElement):
59658         (WebCore::FormControlElement::FormControlElement):
59659         * html/HTMLFormControlElement.h:
59660         (WebCore::HTMLFormControlElement::valueMatchesRenderer):
59661         (WebCore::HTMLFormControlElement::setValueMatchesRenderer):
59662         * html/HTMLTextAreaElement.cpp:
59663         (WebCore::HTMLTextAreaElement::updateValue):
59664         * rendering/RenderTextControl.cpp:
59665         (WebCore::RenderTextControl::adjustInnerTextStyle):
59666         (WebCore::RenderTextControl::updateFromElement):
59667         (WebCore::RenderTextControl::setInnerTextValue):
59668         (WebCore::RenderTextControl::selectionChanged):
59669         (WebCore::RenderTextControl::formControlElement):
59670         * rendering/RenderTextControl.h:
59671         * rendering/RenderTextControlMultiLine.cpp:
59672         (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
59673         (WebCore::RenderTextControlMultiLine::subtreeHasChanged):
59674         * rendering/RenderTextControlSingleLine.cpp:
59675         (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
59676         (WebCore::RenderTextControlSingleLine::updateFromElement):
59677
59678 2008-12-28  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
59679
59680         Reviewed by Darin Adler.
59681
59682         Bug 23006: Many Loader::Host member functions are not safe to use reentrantly
59683         <https://bugs.webkit.org/show_bug.cgi?id=23006>
59684         <rdar://problem/6216106>
59685
59686         Many Loader::Host member functions set m_processingResource to true when they
59687         begin processing a resource and set it to false when they are done. Thanks to
59688         JavaScript and the web inspector, almost anything can happen during the
59689         processing of a resource, including these functions being called reentrantly,
59690         which is unsafe due to this way of using m_processingResource.
59691
59692         This can theoretically cause a Loader::Host to be used after it is freed,
59693         because when Loader::servedPendingRequests() is called, it will free Hosts
59694         that have m_processingResource set to false.
59695
59696         To fix this, we replace m_processingResource with m_numResourcesProcessing,
59697         which is incremented and decremented using a helper object, ProcessingResource.
59698
59699         There are no occurrences of crashes caused by this bug that are reproducible
59700         by multiple people, but this fixes the problem of m_processingResource being
59701         set to false while a Host is still alive.
59702
59703         * loader/loader.cpp:
59704         (WebCore::Loader::Host::Host):
59705         (WebCore::Loader::Host::didFinishLoading): Change to use ProcessingResource
59706         instead of manually setting m_processingResource.
59707         (WebCore::Loader::Host::didFail): Ditto.
59708         (WebCore::Loader::Host::didReceiveData): Ditto.
59709         * loader/loader.h:
59710         (WebCore::Loader::Host::ProcessingResource::ProcessingResource): Added.
59711         (WebCore::Loader::Host::ProcessingResource::~ProcessingResource): Added.
59712         (WebCore::Loader::Host::processingResource): Change to use m_numResourcesProcessing
59713         instead of just getting m_processingResource.
59714
59715 2008-12-28  Alexey Proskuryakov  <ap@webkit.org>
59716
59717         Reviewed by Darin Adler.
59718
59719         https://bugs.webkit.org/show_bug.cgi?id=23007
59720         REGRESSION: Timer-related crash when closing Web Inspector
59721
59722         Test: fast/dom/Window/remove-timeout-crash.html
59723
59724         * bindings/js/DOMTimer.cpp: (WebCore::DOMTimer::fired): Besides deleting the timer, make
59725         sure to remove it from a Document map.
59726
59727 2008-12-28  Alexey Proskuryakov  <ap@webkit.org>
59728
59729         Reviewed by Anders Carlsson.
59730
59731         https://bugs.webkit.org/show_bug.cgi?id=23012
59732         Bring application cache manifest parsing up to date
59733
59734         Test: http/tests/appcache/manifest-parsing.html
59735
59736         * loader/appcache/ManifestParser.cpp:
59737         (WebCore::Mode): Added a constant for unknown sections, which are ignored when parsing. This
59738         is necessary for future extensions.
59739         (WebCore::parseManifest): Parse unknown sections correctly. Ignore trailing tokens in
59740         supported sections.
59741
59742 2008-12-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
59743
59744         Reviewed by Darin Adler.
59745
59746         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22996
59747
59748         RenderTextControl heavily depends on HTMLInputElement & HTMLTextAreaElement.
59749         It handles multi & single line text control rendering in one class. Split up
59750         in two new classes: RenderTextControlSingleLine & RenderTextControlMultiLine.
59751
59752         This has several benefits - code is more readable now, the memory usage
59753         for RenderTextControlMultiLine is reduced, as all stuff related to search fields
59754         lives in RenderTextControlSingleLine, and it's easier to introduce an
59755         abstraction for input/textarea-like elements for other HTML flavours like WML.
59756
59757         * GNUmakefile.am:
59758         * WebCore.order:
59759         * WebCore.pro:
59760         * WebCore.scons:
59761         * WebCore.vcproj/WebCore.vcproj:
59762         * WebCore.xcodeproj/project.pbxproj:
59763         * WebCoreSources.bkl:
59764         * html/HTMLInputElement.cpp:
59765         (WebCore::HTMLInputElement::createRenderer):
59766         (WebCore::HTMLInputElement::defaultEventHandler):
59767         (WebCore::HTMLInputElement::updatePlaceholderVisibility):
59768         (WebCore::HTMLInputElement::addSearchResult):
59769         (WebCore::HTMLInputElement::onSearch):
59770         * html/HTMLTextAreaElement.cpp:
59771         (WebCore::HTMLTextAreaElement::createRenderer):
59772         (WebCore::HTMLTextAreaElement::defaultEventHandler):
59773         * rendering/RenderTextControl.cpp:
59774         (WebCore::RenderTextControl::RenderTextControl):
59775         (WebCore::RenderTextControl::~RenderTextControl):
59776         (WebCore::RenderTextControl::styleDidChange):
59777         (WebCore::RenderTextControl::adjustInnerTextStyle):
59778         (WebCore::RenderTextControl::createSubtreeIfNeeded):
59779         (WebCore::RenderTextControl::textBlockHeight):
59780         (WebCore::RenderTextControl::textBlockWidth):
59781         (WebCore::RenderTextControl::updateFromElement):
59782         (WebCore::RenderTextControl::setInnerTextValue):
59783         (WebCore::RenderTextControl::setSelectionRange):
59784         (WebCore::RenderTextControl::visiblePositionForIndex):
59785         (WebCore::RenderTextControl::indexForVisiblePosition):
59786         (WebCore::RenderTextControl::subtreeHasChanged):
59787         (WebCore::RenderTextControl::scrollbarThickness):
59788         (WebCore::RenderTextControl::calcHeight):
59789         (WebCore::RenderTextControl::hitInnerTextBlock):
59790         (WebCore::RenderTextControl::forwardEvent):
59791         (WebCore::RenderTextControl::calcPrefWidths):
59792         (WebCore::RenderTextControl::selectionChanged):
59793         (WebCore::RenderTextControl::innerTextElement):
59794         * rendering/RenderTextControl.h:
59795         (WebCore::RenderTextControl::hasControlClip):
59796         (WebCore::RenderTextControl::canHaveChildren):
59797         (WebCore::RenderTextControl::avoidsFloats):
59798         (WebCore::RenderTextControl::isEdited):
59799         (WebCore::RenderTextControl::setEdited):
59800         * rendering/RenderTextControlMultiLine.cpp: Added.
59801         (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
59802         (WebCore::RenderTextControlMultiLine::~RenderTextControlMultiLine):
59803         (WebCore::RenderTextControlMultiLine::subtreeHasChanged):
59804         (WebCore::RenderTextControlMultiLine::layout):
59805         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
59806         (WebCore::RenderTextControlMultiLine::forwardEvent):
59807         (WebCore::RenderTextControlMultiLine::preferredContentWidth):
59808         (WebCore::RenderTextControlMultiLine::adjustControlHeightBasedOnLineHeight):
59809         (WebCore::RenderTextControlMultiLine::baselinePosition):
59810         (WebCore::RenderTextControlMultiLine::updateFromElement):
59811         (WebCore::RenderTextControlMultiLine::cacheSelection):
59812         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
59813         * rendering/RenderTextControlMultiLine.h: Added.
59814         (WebCore::RenderTextControlMultiLine::isTextArea):
59815         * rendering/RenderTextControlSingleLine.cpp: Added.
59816         (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
59817         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
59818         (WebCore::RenderTextControlSingleLine::placeholderShouldBeVisible):
59819         (WebCore::RenderTextControlSingleLine::updatePlaceholderVisibility):
59820         (WebCore::RenderTextControlSingleLine::addSearchResult):
59821         (WebCore::RenderTextControlSingleLine::stopSearchEventTimer):
59822         (WebCore::RenderTextControlSingleLine::showPopup):
59823         (WebCore::RenderTextControlSingleLine::hidePopup):
59824         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
59825         (WebCore::RenderTextControlSingleLine::paint):
59826         (WebCore::RenderTextControlSingleLine::layout):
59827         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
59828         (WebCore::RenderTextControlSingleLine::forwardEvent):
59829         (WebCore::RenderTextControlSingleLine::styleDidChange):
59830         (WebCore::RenderTextControlSingleLine::capsLockStateMayHaveChanged):
59831         (WebCore::RenderTextControlSingleLine::textBlockWidth):
59832         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
59833         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
59834         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
59835         (WebCore::RenderTextControlSingleLine::updateFromElement):
59836         (WebCore::RenderTextControlSingleLine::cacheSelection):
59837         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
59838         (WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
59839         (WebCore::RenderTextControlSingleLine::createResultsButtonStyle):
59840         (WebCore::RenderTextControlSingleLine::createCancelButtonStyle):
59841         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
59842         (WebCore::RenderTextControlSingleLine::autosaveName):
59843         (WebCore::RenderTextControlSingleLine::startSearchEventTimer):
59844         (WebCore::RenderTextControlSingleLine::searchEventTimerFired):
59845         (WebCore::RenderTextControlSingleLine::valueChanged):
59846         (WebCore::RenderTextControlSingleLine::itemText):
59847         (WebCore::RenderTextControlSingleLine::itemIsEnabled):
59848         (WebCore::RenderTextControlSingleLine::itemStyle):
59849         (WebCore::RenderTextControlSingleLine::menuStyle):
59850         (WebCore::RenderTextControlSingleLine::clientInsetLeft):
59851         (WebCore::RenderTextControlSingleLine::clientInsetRight):
59852         (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
59853         (WebCore::RenderTextControlSingleLine::clientPaddingRight):
59854         (WebCore::RenderTextControlSingleLine::listSize):
59855         (WebCore::RenderTextControlSingleLine::selectedIndex):
59856         (WebCore::RenderTextControlSingleLine::itemIsSeparator):
59857         (WebCore::RenderTextControlSingleLine::itemIsLabel):
59858         (WebCore::RenderTextControlSingleLine::itemIsSelected):
59859         (WebCore::RenderTextControlSingleLine::setTextFromItem):
59860         (WebCore::RenderTextControlSingleLine::fontSelector):
59861         (WebCore::RenderTextControlSingleLine::hostWindow):
59862         (WebCore::RenderTextControlSingleLine::createScrollbar):
59863         * rendering/RenderTextControlSingleLine.h: Added.
59864         (WebCore::RenderTextControlSingleLine::hasControlClip):
59865         (WebCore::RenderTextControlSingleLine::isTextField):
59866         (WebCore::RenderTextControlSingleLine::placeholderIsVisible):
59867         (WebCore::RenderTextControlSingleLine::popupIsVisible):
59868         (WebCore::RenderTextControlSingleLine::shouldPopOver):
59869         (WebCore::RenderTextControlSingleLine::valueShouldChangeOnHotTrack):
59870         * rendering/TextControlInnerElements.cpp:
59871         (WebCore::RenderTextControlInnerBlock::nodeAtPoint):
59872         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
59873
59874 2008-12-28  Dmitry Titov  <dimich@chromium.org>
59875
59876         Reviewed by Darin Adler.
59877
59878         https://bugs.webkit.org/show_bug.cgi?id=22755
59879         Prepare to add create/remove timeout methods to JSWorkerContext by moving
59880         timer-specific code from JSDOMWindowBase to DOMTimer.
59881         Moved everything JS-related from DOMTimer to ScheduledAction.
59882         Now ScheduledAction is what it wanted to be all the time: a JS engine-specific
59883         container for timer callback that knows how to invoke it.
59884         DOMTimer is not anymore JS-specific.
59885
59886         This is mostly moving the code around. No intended functional changes.
59887
59888         * bindings/js/DOMTimer.cpp:
59889         (WebCore::DOMTimer::DOMTimer):
59890         (WebCore::DOMTimer::~DOMTimer):
59891         (WebCore::DOMTimer::install):
59892         (WebCore::DOMTimer::removeById):
59893         (WebCore::DOMTimer::fired):
59894         (WebCore::DOMTimer::stop):
59895         * bindings/js/DOMTimer.h:
59896         * bindings/js/JSDOMWindowBase.cpp:
59897         (WebCore::JSDOMWindowBase::installTimeout):
59898         (WebCore::JSDOMWindowBase::removeTimeout):
59899         * bindings/js/JSDOMWindowBase.h:
59900         * bindings/js/ScheduledAction.cpp:
59901         (WebCore::ScheduledAction::execute):
59902         * bindings/js/ScheduledAction.h:
59903         * dom/Document.cpp:
59904         (WebCore::Document::addTimeout):
59905
59906 2008-12-26  Zalan Bujtas  <zbujtas@gmail.com>
59907
59908         Reviewed by Darin Adler.
59909
59910         https://bugs.webkit.org/show_bug.cgi?id=22999
59911         Check if database thread exists.
59912
59913         * storage/Database.cpp:
59914         (WebCore::Database::openAndVerifyVersion):
59915         (WebCore::Database::markAsDeletedAndClose):
59916         (WebCore::Database::tableNames):
59917
59918 2008-12-26  Alexey Proskuryakov  <ap@webkit.org>
59919
59920         Reviewed by Darin Adler.
59921
59922         https://bugs.webkit.org/show_bug.cgi?id=23001
59923         A call to applicationCache.update() from a cached event listener should be ignored
59924
59925         Test: http/tests/appcache/idempotent-update.html
59926
59927         * loader/appcache/ApplicationCacheGroup.cpp:
59928         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Only reset m_status after
59929         dispatching events.
59930
59931 2008-12-26  Alexey Proskuryakov  <ap@webkit.org>
59932
59933         Reviewed by Darin Adler.
59934
59935         https://bugs.webkit.org/show_bug.cgi?id=22997
59936         ASSERTION FAILED: !m_resources.contains(url) in ApplicationCache::addResource()
59937
59938         Tests: http/tests/appcache/top-frame-1.html
59939                http/tests/appcache/top-frame-2.html
59940                http/tests/appcache/top-frame-3.html
59941                http/tests/appcache/top-frame-4.html
59942
59943         * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::cacheForMainRequest):
59944         Fixed one more instance of top level frame being used for caching purposes.
59945
59946 2008-12-26  Dmitry Titov  <dimich@chromium.org>
59947
59948         Reviewed by Darin Adler.
59949
59950         https://bugs.webkit.org/show_bug.cgi?id=22987
59951         Fix for broken test editing/execCommand/5763082.html
59952
59953         * editing/CompositeEditCommand.cpp:
59954         (WebCore::CompositeEditCommand::mergeIdenticalElements): Used local RefPtr to hold onto
59955         function parameter across multiple calls.
59956
59957 2008-12-25  Alexey Proskuryakov  <ap@webkit.org>
59958
59959         Reviewed by Darin Adler.
59960
59961         https://bugs.webkit.org/show_bug.cgi?id=22993
59962         Application cache shouldn't be inherited by subframes
59963
59964         <rdar://problem/6284708> AppCache crashes in ApplicationCacheResource::addType()
59965         This crash happened because main resource for subframe was looked up in top frame's
59966         appcache. If not for the spec change, it could have been fixed by preventing the load
59967         altogether.
59968
59969         Test: http/tests/appcache/foreign-iframe-main.html
59970         I intend to write additional tests for the behavior change.
59971
59972         * loader/DocumentLoader.cpp:
59973         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
59974         * loader/DocumentLoader.h:
59975         (WebCore::DocumentLoader::applicationCache):
59976         * loader/MainResourceLoader.cpp:
59977         (WebCore::MainResourceLoader::load):
59978         * loader/appcache/DOMApplicationCache.cpp:
59979         (WebCore::DOMApplicationCache::associatedCache):
59980         Removed DocumentLoader::topLevelApplicationCache(), and changed callers accordingly.
59981
59982         * loader/appcache/ApplicationCacheGroup.cpp:
59983         (WebCore::ApplicationCacheGroup::selectCache):
59984         (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
59985         Removed checks for the frame being top-level one, now that subframes are cached independently.
59986
59987 2008-12-25  Antti Koivisto  <antti@apple.com>
59988
59989         Reviewed by Oliver Hunt.
59990
59991         <rdar://problem/6465669> Frequent !isPurgeable() assertion in WebCore::CachedResource::addClient
59992
59993         Disallow turning resources that are being revalidated to purgable state.
59994
59995         No test, the condition is difficult to produce in DRT.
59996
59997         * loader/CachedCSSStyleSheet.cpp:
59998         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
59999         * loader/CachedImage.cpp:
60000         (WebCore::CachedImage::destroyDecodedData):
60001         * loader/CachedResource.cpp:
60002         (WebCore::CachedResource::isSafeToMakePurgeable):
60003         (WebCore::CachedResource::makePurgeable):
60004         * loader/CachedResource.h:
60005         * loader/CachedScript.cpp:
60006         (WebCore::CachedScript::destroyDecodedData):
60007
60008 2008-12-25  Alexey Proskuryakov  <ap@webkit.org>
60009
60010         Qt build fix.
60011
60012         * WebCore.pro: Added ThreadGlobalData.cpp.
60013
60014 2008-12-24  Mark Rowe  <mrowe@apple.com>
60015
60016         Build fix.
60017
60018         * WebCore.base.exp:  Remove a symbol from the export file now that it is no longer generated.
60019
60020 2008-12-24  Holger Hans Peter Freyther  <zecke@selfish.org>
60021
60022         Unreviewed build fix to find addSubresourceURL
60023
60024         This is needed to compile on WebKit/Gtk+
60025
60026         * css/CSSFontFaceSrcValue.cpp:
60027
60028 2008-12-23  Alexey Proskuryakov  <ap@webkit.org>
60029
60030         Reviewed by Darin Adler.
60031
60032         https://bugs.webkit.org/show_bug.cgi?id=22980
60033         WebCore uses more thread specific keys than it really needs
60034
60035         Consolidated ThreadSpecific data into a single ThreadGlobalData structure.
60036
60037         * GNUmakefile.am:
60038         * WebCore.base.exp:
60039         * WebCore.scons:
60040         * WebCore.vcproj/WebCore.vcproj:
60041         * WebCore.xcodeproj/project.pbxproj:
60042         * WebCoreSources.bkl:
60043         * dom/EventNames.cpp:
60044         * dom/EventNames.h:
60045         (WebCore::eventNames):
60046         * page/Frame.cpp:
60047         (WebCore::Frame::Frame):
60048         * platform/ThreadGlobalData.cpp: Added.
60049         (WebCore::threadGlobalData):
60050         (WebCore::ThreadGlobalData::ThreadGlobalData):
60051         (WebCore::ThreadGlobalData::~ThreadGlobalData):
60052         * platform/ThreadGlobalData.h: Added.
60053         (WebCore::ThreadGlobalData::eventNames):
60054         (WebCore::ThreadGlobalData::emptyString):
60055         (WebCore::ThreadGlobalData::atomicStringTable):
60056         (WebCore::ThreadGlobalData::cachedConverterICU):
60057         (WebCore::ThreadGlobalData::cachedConverterTEC):
60058         * platform/text/AtomicString.cpp:
60059         (WebCore::stringTable):
60060         (WebCore::AtomicString::add):
60061         (WebCore::AtomicString::remove):
60062         (WebCore::AtomicString::find):
60063         (WebCore::AtomicString::init):
60064         * platform/text/StringImpl.cpp:
60065         (WebCore::StringImpl::empty):
60066         * platform/text/StringImpl.h:
60067         * platform/text/TextCodecICU.cpp:
60068         (WebCore::ICUConverterWrapper::~ICUConverterWrapper):
60069         (WebCore::cachedConverterICU):
60070         * platform/text/TextCodecICU.h:
60071         (WebCore::ICUConverterWrapper::ICUConverterWrapper):
60072         * platform/text/mac/TextCodecMac.cpp:
60073         (WebCore::cachedConverterTEC):
60074         * platform/text/mac/TextCodecMac.h:
60075         (WebCore::TECConverterWrapper::TECConverterWrapper):
60076         (WebCore::TECConverterWrapper::~TECConverterWrapper):
60077
60078 2008-12-23  Mark Rowe  <mrowe@apple.com>
60079
60080         Build fix.
60081
60082         * WebCore.xcodeproj/project.pbxproj: CSSPropertyNames.h is a generated file so it needs to be explicitly copied
60083         into the PrivateHeaders directory, rather than relying on the automatic copying of headers which runs before the
60084         derived sources are generated.
60085
60086 2008-12-23  Simon Fraser  <simon.fraser@apple.com>
60087
60088         Reviewed by Dan Bernstein
60089
60090         https://bugs.webkit.org/show_bug.cgi?id=22941
60091
60092         If the document element has opacity, we need to erase the view background to
60093         white before painting.
60094
60095         Test: fast/backgrounds/opacity-on-document-element.html
60096
60097         * rendering/RenderView.cpp:
60098         (WebCore::rendererObscuresBackground):
60099
60100 2008-12-23  Simon Fraser  <simon.fraser@apple.com>
60101
60102         Reviewed by Dan Bernstein
60103
60104         https://bugs.webkit.org/show_bug.cgi?id=21910
60105
60106         Fix SVGImage painting by ensuring that the SVGImage resizes its FrameView correctly.
60107         Otherwise the FrameView is left at 0x0, and nothing paints.
60108
60109         * svg/graphics/SVGImage.cpp:
60110         (WebCore::SVGImage::draw):
60111
60112 2008-12-23  Darin Adler  <darin@apple.com>
60113
60114         Reviewed by John Sullivan.
60115
60116         - improve robustness of undo/redo in HTML editing to fix the following bugs
60117           <https://bugs.webkit.org/show_bug.cgi?id=19703> Crash in WebCore::InsertNodeBeforeCommand::doUnapply()
60118           <rdar://problem/4059423> DOM operations performed on editable HTML can cause a crash later during Undo
60119
60120         Major categories of improvements:
60121
60122             1) Added null checks.
60123             2) Eliminated type casts without corresponding type checks.
60124             3) Avoided possible infinite loops by building up lists of nodes to operate on
60125                before starting to make DOM changes.
60126             4) Use more RefPtr.
60127
60128         No test at this time, but test cases should follow in separate patches.
60129
60130         * WebCore.xcodeproj/project.pbxproj: Set the role of CSSPropertyNames.h to Private so it
60131         can be used in other Private headers, specifically editing ones.
60132
60133         * css/CSSStyleSelector.cpp:
60134         (WebCore::CSSStyleSelector::locateCousinList): Adopt parentElement.
60135         (WebCore::CSSStyleSelector::locateSharedStyle): Ditto.
60136         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto.
60137
60138         * dom/Element.cpp: (WebCore::Element::cloneElement): Added.
60139         * dom/Element.h: Added cloneElement and an implementation of parentElement.
60140         * dom/Node.h: Moved parentElement from here to Element.h and changed its
60141         implementation so it will return 0 when the parent is not an element
60142         (document, document fragment, etc.).
60143
60144         * editing/AppendNodeCommand.cpp:
60145         (WebCore::AppendNodeCommand::AppendNodeCommand): Made parent be an Element.
60146         Moved assertions from doApply in here.
60147         (WebCore::AppendNodeCommand::doApply): Simplified to just a single unchecked
60148         appendChild call.
60149         (WebCore::AppendNodeCommand::doUnapply): Simplified to just a single remove call.
60150         * editing/AppendNodeCommand.h: Updated.
60151
60152         * editing/ApplyStyleCommand.cpp:
60153         (WebCore::createStyleSpanElement): Eliminate casting by creating an element in a more
60154         direct way with new instead of createElementNS.
60155         (WebCore::ApplyStyleCommand::ApplyStyleCommand): Use PassRefPtr.
60156         (WebCore::ApplyStyleCommand::removeCSSStyle): Use CSSPropertyID.
60157         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): Use cloneElement.
60158         * editing/ApplyStyleCommand.h:
60159
60160         * editing/BreakBlockquoteCommand.cpp:
60161         (WebCore::BreakBlockquoteCommand::doApply): Use Element* and cloneElement.
60162
60163         * editing/CompositeEditCommand.cpp:
60164         (WebCore::CompositeEditCommand::applyStyledElement): Use PassRefPtr and unsigned.
60165         (WebCore::CompositeEditCommand::removeStyledElement): Ditto.
60166         (WebCore::CompositeEditCommand::insertNodeBefore): Ditto.
60167         (WebCore::CompositeEditCommand::insertNodeAfter): Ditto.
60168         (WebCore::CompositeEditCommand::insertNodeAt): Ditto.
60169         (WebCore::CompositeEditCommand::appendNode): Ditto.
60170         (WebCore::CompositeEditCommand::removeChildrenInRange): Ditto. Also use a vector to
60171         make the list of children in case removing them has side effects.
60172         (WebCore::CompositeEditCommand::removeNode): Ditto.
60173         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
60174         (WebCore::CompositeEditCommand::removeNodeAndPruneAncestors): Ditto.
60175         (WebCore::CompositeEditCommand::splitTextNode): Ditto.
60176         (WebCore::CompositeEditCommand::splitElement): Ditto.
60177         (WebCore::CompositeEditCommand::mergeIdenticalElements): Ditto.
60178         (WebCore::CompositeEditCommand::wrapContentsInDummySpan): Ditto.
60179         (WebCore::CompositeEditCommand::splitTextNodeContainingElement): Ditto.
60180         (WebCore::CompositeEditCommand::joinTextNodes): Ditto.
60181         (WebCore::CompositeEditCommand::inputText): Ditto.
60182         (WebCore::CompositeEditCommand::insertTextIntoNode): Ditto.
60183         (WebCore::CompositeEditCommand::deleteTextFromNode): Ditto.
60184         (WebCore::CompositeEditCommand::replaceTextInNode): Ditto.
60185         (WebCore::CompositeEditCommand::insertNodeAtTabSpanPosition): Ditto.
60186         (WebCore::CompositeEditCommand::removeCSSProperty): Ditto.
60187         (WebCore::CompositeEditCommand::removeNodeAttribute): Ditto. Implement by calling
60188         setNodeAttribute instead of with its own SimpleEditCommand.
60189         (WebCore::CompositeEditCommand::setNodeAttribute): Ditto.
60190         (WebCore::CompositeEditCommand::deleteInsignificantText): Ditto.
60191         (WebCore::CompositeEditCommand::appendBlockPlaceholder): Ditto.
60192         (WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded): Ditto.
60193         (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto. Don't
60194         bother using an undoable operation to put the break element into the paragraph
60195         element because there's no need to split them and redo this when doing undo/redo.
60196         (WebCore::CompositeEditCommand::moveParagraphs): Ditto.
60197         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
60198         * editing/CompositeEditCommand.h: Ditto.
60199
60200         * editing/DeleteFromTextNodeCommand.cpp:
60201         (WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand): Use unsigned.
60202         (WebCore::DeleteFromTextNodeCommand::doApply): Eliminated inappropriate assertions.
60203         (WebCore::DeleteFromTextNodeCommand::doUnapply): Ditto.
60204         * editing/DeleteFromTextNodeCommand.h:
60205
60206         * editing/DeleteSelectionCommand.cpp:
60207         (WebCore::DeleteSelectionCommand::removeNode): Use PassRefPtr.
60208         (WebCore::DeleteSelectionCommand::deleteTextFromNode): Ditto.
60209         * editing/DeleteSelectionCommand.h:
60210
60211         * editing/FormatBlockCommand.cpp:
60212         (WebCore::FormatBlockCommand::FormatBlockCommand): Use AtomicString.
60213         (WebCore::FormatBlockCommand::doApply): Use Element.
60214         * editing/FormatBlockCommand.h:
60215
60216         * editing/IndentOutdentCommand.cpp:
60217         (WebCore::createIndentBlockquoteElement): Use new to create the element
60218         instead of calling a function so we have a more specific type.
60219         (WebCore::IndentOutdentCommand::prepareBlockquoteLevelForInsertion):
60220         Use RefPtr and Element.
60221         (WebCore::IndentOutdentCommand::indentRegion): Ditto.
60222         (WebCore::IndentOutdentCommand::outdentParagraph): Ditto.
60223         * editing/IndentOutdentCommand.h:
60224
60225         * editing/InsertIntoTextNodeCommand.cpp:
60226         (WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
60227         Use unsigned. Added an assertion.
60228         (WebCore::InsertIntoTextNodeCommand::doApply): Eliminated inappropriate assertions.
60229         (WebCore::InsertIntoTextNodeCommand::doUnapply): Ditto.
60230         * editing/InsertIntoTextNodeCommand.h:
60231
60232         * editing/InsertLineBreakCommand.cpp:
60233         (WebCore::InsertLineBreakCommand::insertNodeAfterPosition): Use Element.
60234         (WebCore::InsertLineBreakCommand::insertNodeBeforePosition): Ditto.
60235
60236         * editing/InsertListCommand.cpp:
60237         (WebCore::InsertListCommand::doApply): Use Element.
60238
60239         * editing/InsertNodeBeforeCommand.cpp:
60240         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Moved assertions
60241         here from doApply.
60242         (WebCore::InsertNodeBeforeCommand::doApply): Eliminated inappropriate assertions.
60243         Added a null check.
60244         (WebCore::InsertNodeBeforeCommand::doUnapply): Simplified to just a single remove call.
60245
60246         * editing/InsertParagraphSeparatorCommand.cpp:
60247         (WebCore::InsertParagraphSeparatorCommand::doApply): Use Element and cloneElement.
60248
60249         * editing/JoinTextNodesCommand.cpp:
60250         (WebCore::JoinTextNodesCommand::doApply): Eliminated inappropriate assertions.
60251         Added some runtime checks. Don't store anything in m_offset.
60252         (WebCore::JoinTextNodesCommand::doUnapply): Ditto.
60253         * editing/JoinTextNodesCommand.h:
60254
60255         * editing/MergeIdenticalElementsCommand.cpp:
60256         (WebCore::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand): Moved
60257         an assertion here from doApply.
60258         (WebCore::MergeIdenticalElementsCommand::doApply): Eliminated inappropriate assertions.
60259         Added a null check. Changed implementation to use remove to avoid null parent issue.
60260         Use a vector of nodes to avoid possible infinite loop if mutation happens while iterating.
60261         (WebCore::MergeIdenticalElementsCommand::doUnapply): Ditto.
60262
60263         * editing/ModifySelectionListLevel.cpp:
60264         (WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange): Use Element*.
60265         (WebCore::IncreaseSelectionListLevelCommand::doApply): Ditto.
60266         * editing/ModifySelectionListLevel.h:
60267
60268         * editing/RemoveCSSPropertyCommand.cpp:
60269         (WebCore::RemoveCSSPropertyCommand::RemoveCSSPropertyCommand): Use PassRefPtr and
60270         CSSPropertyID. Also renamed m_decl to m_style.
60271         (WebCore::RemoveCSSPropertyCommand::doApply): Eliminated inappropriate assertions.
60272         (WebCore::RemoveCSSPropertyCommand::doUnapply): Ditto.
60273
60274         * editing/RemoveNodeAttributeCommand.cpp: Removed contents of this file. To be deleted.
60275         Use SetNodeAttributeCommand instead.
60276         * editing/RemoveNodeAttributeCommand.h: Ditto.
60277
60278         * editing/RemoveNodeCommand.cpp:
60279         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Moved assertions here from doApply.
60280         Don't initialize m_refChild here; rather do it in doApply.
60281         (WebCore::RemoveNodeCommand::doApply): Eliminated inappropriate assertions. Added
60282         checks and streamlined implementation.
60283         (WebCore::RemoveNodeCommand::doUnapply): Ditto.
60284         * editing/RemoveNodeCommand.h:
60285
60286         * editing/RemoveNodePreservingChildrenCommand.cpp:
60287         (WebCore::RemoveNodePreservingChildrenCommand::doApply): Use a vector.
60288
60289         * editing/ReplaceSelectionCommand.cpp:
60290         (WebCore::ReplacementFragment::insertFragmentForTestRendering): Removed now-unneeded cast.
60291
60292         * editing/SetNodeAttributeCommand.cpp:
60293         (WebCore::SetNodeAttributeCommand::SetNodeAttributeCommand): Use AtomicString.
60294         Removed assertion that prevents us from using this to remove an attribute.
60295         (WebCore::SetNodeAttributeCommand::doApply): Eliminated inappropriate assertions.
60296         (WebCore::SetNodeAttributeCommand::doUnapply): Ditto.
60297         * editing/SetNodeAttributeCommand.h:
60298
60299         * editing/SplitElementCommand.cpp:
60300         (WebCore::SplitElementCommand::SplitElementCommand): Moved assertion here from doApply.
60301         (WebCore::SplitElementCommand::doApply): Check some more invariants and use a vector
60302         to avoid possible infinite loops.
60303         (WebCore::SplitElementCommand::doUnapply): Ditto.
60304
60305         * editing/SplitTextNodeCommand.cpp:
60306         (WebCore::SplitTextNodeCommand::SplitTextNodeCommand): Moved assertions and comment
60307         here from doApply.
60308         (WebCore::SplitTextNodeCommand::doApply): Check for null and failures when applying.
60309         (WebCore::SplitTextNodeCommand::doUnapply): Ditto.
60310
60311         * editing/SplitTextNodeContainingElementCommand.cpp:
60312         (WebCore::SplitTextNodeContainingElementCommand::doApply): Use Element.
60313
60314         * editing/WrapContentsInDummySpanCommand.cpp:
60315         (WebCore::WrapContentsInDummySpanCommand::doApply): Check for null and ignore failures.
60316         Don't reuse the dummy span. Simplified logic.
60317         (WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.
60318
60319         * editing/htmlediting.cpp:
60320         (WebCore::isBlock): Make sure this returns true only for elements.
60321         (WebCore::enclosingBlock): Return an Element*.
60322         (WebCore::enclosingTableCell): Ditto.
60323         (WebCore::enclosingList): Return an HTMLElement*.
60324         (WebCore::outermostEnclosingList): Return an HTMLElement*.
60325         (WebCore::createDefaultParagraphElement): Return an HTMLElement*.
60326         (WebCore::createBreakElement): Return an HTMLElement*.
60327         (WebCore::createOrderedListElement): Return an HTMLElement*.
60328         (WebCore::createUnorderedListElement): Return an HTMLElement*.
60329         (WebCore::createListItemElement): Return an HTMLElement*.
60330         (WebCore::createHTMLElement): Return an HTMLElement*.
60331         * editing/htmlediting.h:
60332
60333         * editing/markup.cpp:
60334         (WebCore::createFragmentFromText): Use createBreakElement and use Element*.
60335
60336         * page/MouseEventWithHitTestResults.cpp:
60337         (WebCore::MouseEventWithHitTestResults::targetNode): Use parentElement.
60338
60339 2008-12-23  Darin Adler  <darin@apple.com>
60340
60341         Reviewed by Dan Bernstein.
60342
60343         * dom/Node.h: Tweak comments and order of bits that Sam moved
60344         here last night.
60345         * dom/Node.cpp: Ditto.
60346
60347 2008-12-22  Julien Chaffraix  <jchaffraix@webkit.org>
60348
60349         Reviewed by Darin Adler.
60350
60351         Bug 11106: Some XMLHttpRequest URI resolving tests fail
60352         https://bugs.webkit.org/show_bug.cgi?id=11106
60353
60354         Use the ScriptExecutionContext to resolve the URI when calling open in JavaScript.
60355         The previous code was using the containing DOMWindow to do so which would fail for
60356         XMLHttpRequest object being passed between iframe.
60357
60358         Tests: http/tests/xmlhttprequest/uri-resolution-opera-open-004.html
60359                http/tests/xmlhttprequest/uri-resolution-opera-open-005.html
60360                http/tests/xmlhttprequest/uri-resolution-opera-open-006.html
60361                http/tests/xmlhttprequest/uri-resolution-opera-open-007.html
60362                http/tests/xmlhttprequest/uri-resolution-opera-open-008.html
60363                http/tests/xmlhttprequest/uri-resolution-opera-open-009.html
60364                http/tests/xmlhttprequest/uri-resolution-opera-open-010.html
60365
60366         * bindings/js/JSXMLHttpRequestCustom.cpp:
60367         (WebCore::JSXMLHttpRequest::open): Use the ScriptExecutionContext
60368         to resolve the URL.
60369
60370         * dom/Document.cpp:
60371         (WebCore::Document::virtualCompleteURL): Virtual method added to
60372         avoid performance hit on completeURL call.
60373
60374         * dom/Document.h:
60375         * dom/ScriptExecutionContext.h:
60376         (WebCore::ScriptExecutionContext::completeURL): Non-virtual method
60377         that wrap the call to the virtual call.
60378         * dom/WorkerContext.cpp:
60379         (WebCore::WorkerContext::virtualCompleteURL): Pure virtual method.
60380         * dom/WorkerContext.h:
60381
60382 2008-12-23  Darin Adler  <darin@apple.com>
60383
60384         Reviewed by Dan Bernstein.
60385
60386         - https://bugs.webkit.org/show_bug.cgi?id=22978
60387           a couple tweaks to the new strokeBoundingRect functions
60388
60389         * platform/graphics/cairo/PathCairo.cpp:
60390         (WebCore::Path::strokeBoundingRect): Only create a GraphicsContext
60391         if the applier is non-null.
60392
60393         * platform/graphics/cg/PathCG.cpp:
60394         (WebCore::putBytesNowhere): Added.
60395         (WebCore::createScratchContext): Changed to use a "/dev/null" type
60396         function to discard bytes rather than using a data object. This
60397         eliminates the possibility that memory will be used if someone draws
60398         into the scratch context by accident. Also moved to the top of the
60399         file; it was in a slightly strange place before.
60400         (WebCore::Path::strokeBoundingRect): Only create a GraphicsContext
60401         if the applier is non-null. Simplify the empty path special case.
60402
60403 2008-12-22  Sam Weinig  <sam@webkit.org>
60404
60405         Reviewed by Mark Rowe.
60406
60407         Save a word in all Elements by moving the 5 loose bits to Node,
60408         where we had 16 spare.
60409
60410         * dom/Element.cpp:
60411         (WebCore::Element::Element):
60412         * dom/Element.h:
60413         * dom/Node.cpp:
60414         (WebCore::Node::Node):
60415         * dom/Node.h:
60416
60417 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60418
60419         Reviewed by George Staikos.
60420
60421         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22972
60422
60423         Add WML <meta> element support. All needed functionality is present
60424         in Document::processHttpEquiv, already covered by tests.
60425
60426         * GNUmakefile.am:
60427         * WebCore.pro:
60428         * WebCore.vcproj/WebCore.vcproj:
60429         * WebCore.xcodeproj/project.pbxproj:
60430         * wml/WMLMetaElement.cpp: Added.
60431         (WebCore::WMLMetaElement::WMLMetaElement):
60432         (WebCore::WMLMetaElement::parseMappedAttribute):
60433         (WebCore::WMLMetaElement::insertedIntoDocument):
60434         * wml/WMLMetaElement.h: Added.
60435         * wml/WMLTagNames.in:
60436
60437 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60438
60439         Rubber-stamped by Darin Adler.
60440
60441         Don't reference specific layout tests in comments.
60442
60443         * html/HTMLFormElement.cpp:
60444         (WebCore::HTMLFormElement::createFormData):
60445
60446 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60447
60448         Reviewed by George Staikos.
60449
60450         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22965
60451
60452         Add WML <head> element support. Doesn't require a WMLHeadElement.
60453         No functional behaviour, as we already created a WMLElement for headTag, by default.
60454         It's just cleaner to list <head> in WMLTagNames, forwarding to a WMLElement constructor.
60455
60456         * wml/WMLTagNames.in:
60457
60458 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60459
60460         Reviewed by George Staikos.
60461
60462         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22971
60463
60464         Fix regression caused by the HTMLFormElement refactorization.
60465         File form elements without a name have to be included in multipart/form-data
60466         submission. Cover this behaviour with a new test case.
60467
60468         Test: http/tests/misc/empty-file-formdata.html
60469
60470         * html/HTMLFormElement.cpp:
60471         (WebCore::HTMLFormElement::createFormData):
60472         * wml/WMLTagNames.in:
60473
60474 2008-12-22  David Kilzer  <ddkilzer@apple.com>
60475
60476         <rdar://problem/6438298> Bump schema version for app cache
60477
60478         Reviewed by Alexey Proskuryakov.
60479
60480         * loader/appcache/ApplicationCacheStorage.cpp: Increment
60481         SchemaVersion from 2 to 3.
60482
60483 2008-12-22  David Kilzer  <ddkilzer@apple.com>
60484
60485         Use Deque in CSSStyleSheet::addSubresourceStyleURLs()
60486
60487         Reviewed by Darin Adler.
60488
60489         * css/CSSStyleSheet.cpp:
60490         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Replaced
60491         use of ListHashSet with more efficient Deque.
60492
60493 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60494
60495         Reviewed by Sam Weinig.
60496
60497         Fix obvious crash fix for WML enabled builds.
60498
60499         * css/CSSStyleSelector.cpp:
60500         (WebCore::CSSStyleSelector::adjustRenderStyle):
60501
60502 2008-12-22  David Kilzer  <ddkilzer@apple.com>
60503
60504         Bug 11850: Webarchive fails to save images referenced in CSS
60505
60506         <https://bugs.webkit.org/show_bug.cgi?id=11850>
60507
60508         Reviewed by Darin Adler.
60509
60510         This entry contains two parts since the tests for adding a
60511         completeURL() method to StyleSheet and CSSStyleSheet (part 1) depend
60512         on Bug 11850 being fixed (part 2).
60513
60514         --
60515
60516         Tests: http/tests/webarchive/test-css-url-encoding-shift-jis.html
60517                http/tests/webarchive/test-css-url-encoding-utf-8.html
60518                http/tests/webarchive/test-css-url-encoding.html
60519
60520         Added completeURL() methods to StyleSheet and CSSStyleSheet that
60521         match the behavior of Document::completeURL().  Most notably,
60522         CSSStyleSheet::completeURL() uses the charset of the stylesheet
60523         (if it exists) to construct URLs, just like Document::completeURL().
60524
60525         * css/CSSParser.cpp:
60526         (WebCore::CSSParser::parseValue): Use CSSStyleSheet::completeURL().
60527         (WebCore::CSSParser::parseContent): Ditto.
60528         (WebCore::CSSParser::parseFillImage): Ditto.
60529         (WebCore::CSSParser::parseFontFaceSrc): Ditto.
60530         (WebCore::CSSParser::parseBorderImage): Ditto.
60531
60532         * css/CSSStyleSheet.cpp:
60533         (WebCore::CSSStyleSheet::completeURL): Added.
60534         * css/CSSStyleSheet.h:
60535         (WebCore::CSSStyleSheet::completeURL): Added declaration.
60536
60537         * css/StyleSheet.cpp:
60538         (WebCore::StyleSheet::completeURL): Added.
60539         * css/StyleSheet.h:
60540         (WebCore::StyleSheet::completeURL): Added declaration.
60541
60542         * dom/Document.cpp:
60543         (WebCore::Document::completeURL): Added comment referring to the new
60544         completeURL() methods in StyleSheet and CSSStyleSheet.
60545
60546         --
60547
60548         Tests: webarchive/test-css-url-resources-in-stylesheets.html
60549                webarchive/test-css-url-resources-inline-styles.html
60550
60551         Walk stylesheets and inline style attributes for url() references
60552         when building a list of URLs to include in a webarchive.  Note that
60553         not all URLs found this way will be included in the webarchive if
60554         they were not used (and thus not downloaded) when laying out the
60555         page.
60556
60557         The key method for CSS stylesheets is
60558         CSSStyleSheet::addSubresourceStyleURLs() which iterates over all
60559         CSSStyleSheet objects recursively referenced from its own stylesheet
60560         through @import rules.  Starting with the CSSRule objects in each
60561         sheet and continuing down through the CSSMutableStyleDeclaration and
60562         CSSValue objects, addSubresourceStyleURLs() methods are called to
60563         gather URLs.
60564
60565         For inline style attributes in HTML DOM elements,
60566         StyledElement::addSubresourceAttributeURLs() calls
60567         CSSMutableStyleDeclaration::addSubresourceStyleURLs() to gather URLs
60568         from each element, hence the need to call
60569         addSubresourceAttributeURLs() on superclasses when the method is
60570         implemented on the element class itself.
60571
60572         * css/CSSBorderImageValue.cpp:
60573         (WebCore::CSSBorderImageValue::addSubresourceStyleURLs): Added.
60574         * css/CSSBorderImageValue.h:
60575         (WebCore::CSSBorderImageValue::addSubresourceStyleURLs): Added
60576         declaration.
60577
60578         * css/CSSFontFaceRule.cpp:
60579         (WebCore::CSSFontFaceRule::addSubresourceStyleURLs): Added.
60580         * css/CSSFontFaceRule.h:
60581         (WebCore::CSSFontFaceRule::addSubresourceStyleURLs): Added
60582         declaration.
60583
60584         * css/CSSFontFaceSrcValue.cpp:
60585         (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs): Added.
60586         * css/CSSFontFaceSrcValue.h:
60587         (WebCore::CSSFontFaceSrcValue::addSubresourceStyleURLs): Added
60588         declaration.
60589
60590         * css/CSSImportRule.cpp:
60591         (WebCore::CSSImportRule::addSubresourceStyleURLs): Added.
60592         * css/CSSImportRule.h:
60593         (WebCore::CSSImportRule::addSubresourceStyleURLs): Added
60594         declaration.
60595
60596         * css/CSSMutableStyleDeclaration.cpp:
60597         (WebCore::CSSMutableStyleDeclaration::addSubresourceStyleURLs): Added.
60598         Iterates over m_properties vector of CSSProperty objects calling
60599         addSubresourceStyleURLs() on each property's CSSValue object.
60600         * css/CSSMutableStyleDeclaration.h:
60601         (WebCore::CSSMutableStyleDeclaration::addSubresourceStyleURLs): Added
60602         declaration.
60603
60604         * css/CSSPrimitiveValue.cpp:
60605         (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs): Added.
60606         * css/CSSPrimitiveValue.h:
60607         (WebCore::CSSPrimitiveValue::addSubresourceStyleURLs): Added
60608         declaration.
60609
60610         * css/CSSReflectValue.cpp:
60611         (WebCore::CSSReflectValue::addSubresourceStyleURLs): Added.
60612         * css/CSSReflectValue.h:
60613         (WebCore::CSSReflectValue::addSubresourceStyleURLs): Added
60614         declaration.
60615
60616         * css/CSSRule.h:
60617         (WebCore::CSSRule::addSubresourceStyleURLs): Added.  Virtual
60618         method with empty implementation that's overridden by subclasses
60619         as needed.
60620
60621         * css/CSSStyleRule.cpp:
60622         (WebCore::CSSStyleRule::addSubresourceStyleURLs): Added.
60623         * css/CSSStyleRule.h:
60624         (WebCore::CSSStyleRule::addSubresourceStyleURLs): Added
60625         declaration.
60626
60627         * css/CSSStyleSheet.cpp:
60628         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Updated to
60629         call CSSRule::addSubresourceStyleURLs on each rule to extract
60630         URLs.  Removed unneeded baseURL parameter now that the
60631         completeURL() method exists.
60632         * css/CSSStyleSheet.h:
60633         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Updated
60634         declaration.
60635
60636         * css/CSSValue.h:
60637         (WebCore::CSSValue::addSubresourceStyleURLs): Added.  Virtual
60638         method with empty implementation that's overridden by subclasses
60639         as needed.
60640
60641         * css/CSSValueList.cpp:
60642         (WebCore::CSSValueList::addSubresourceStyleURLs): Added.
60643         Iterates over m_values vector of CSSValue objects calling
60644         addSubresourceStyleURLs() on each.
60645         * css/CSSValueList.h:
60646         (WebCore::CSSValueList::addSubresourceStyleURLs): Added
60647         declaration.
60648
60649         * css/StyleSheet.h:
60650         (WebCore::StyleSheet::addSubresourceStyleURLs): Updated
60651         declaration to remove unneeded baseURL parameter.
60652
60653         * dom/ProcessingInstruction.cpp:
60654         (WebCore::ProcessingInstruction::addSubresourceAttributeURLs):
60655         Fixed to use the StyleBase::baseURL() method to get the
60656         stylesheet's URL instead of calling Document::completeURL().
60657
60658         * dom/StyledElement.cpp:
60659         (WebCore::StyledElement::addSubresourceAttributeURLs): Added method
60660         to extract URLs from inline style declarations.
60661         * dom/StyledElement.h:
60662         (WebCore::StyledElement::addSubresourceAttributeURLs): Added
60663         declaration.
60664
60665         * html/HTMLBodyElement.cpp:
60666         (WebCore::HTMLBodyElement::addSubresourceAttributeURLs): Call
60667         addSubresourceAttributeURLs() in superclass to extract URLs
60668         from inline style declarations.
60669         * html/HTMLEmbedElement.cpp:
60670         (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs): Ditto.
60671         * html/HTMLImageElement.cpp:
60672         (WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.
60673         * html/HTMLInputElement.cpp:
60674         (WebCore::HTMLInputElement::addSubresourceAttributeURLs): Ditto.
60675         * html/HTMLLinkElement.cpp:
60676         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): Ditto.
60677         * html/HTMLObjectElement.cpp:
60678         (WebCore::HTMLObjectElement::addSubresourceAttributeURLs): Ditto.
60679         * html/HTMLParamElement.cpp:
60680         (WebCore::HTMLParamElement::addSubresourceAttributeURLs): Ditto.
60681         * html/HTMLScriptElement.cpp:
60682         (WebCore::HTMLScriptElement::addSubresourceAttributeURLs): Ditto.
60683         * html/HTMLStyleElement.cpp:
60684         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs): Ditto.
60685         * html/HTMLTableCellElement.cpp:
60686         (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs): Ditto.
60687         * html/HTMLTableElement.cpp:
60688         (WebCore::HTMLTableElement::addSubresourceAttributeURLs): Ditto.
60689         * svg/SVGCursorElement.cpp:
60690         (WebCore::SVGCursorElement::addSubresourceAttributeURLs): Ditto.
60691         * svg/SVGFEImageElement.cpp:
60692         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Ditto.
60693         * svg/SVGImageElement.cpp:
60694         (WebCore::SVGImageElement::addSubresourceAttributeURLs): Ditto.
60695         * svg/SVGScriptElement.cpp:
60696         (WebCore::SVGScriptElement::addSubresourceAttributeURLs): Ditto.
60697
60698 2008-12-22  Dhananjoy Chutia  <dhanrd@gmail.com>
60699
60700         Reviewed by David Kilzer.
60701
60702         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22959
60703         Memory leak fixes for WebKit+soup
60704
60705         * platform/network/soup/ResourceHandleSoup.cpp:
60706         (WebCore::finishedCallback):
60707
60708 2008-12-22  Alexey Proskuryakov  <ap@webkit.org>
60709
60710         Reviewed by Darin Adler.
60711
60712         <rdar://problem/6277060> ASSERTION FAILED: !m_cacheBeingUpdated if the manifest is not available
60713
60714         Tests: http/tests/appcache/404-manifest.html
60715                http/tests/appcache/fail-on-update.html
60716
60717         * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::stopLoading):
60718         Removed the incorrect assertion.
60719
60720         * loader/appcache/ApplicationCacheGroup.h: Added an explanation of somewhat nonintuitive
60721         m_currentHandle handling.
60722
60723 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60724
60725         Reviewed by Alexey Proskuryakov & George Staikos.
60726
60727         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22961
60728
60729         Add WML <fieldset> element support.
60730         Unlike HTML's <fieldset> element, WML doesn't provide a <legend> child element
60731         to describe the <fieldset>. WML instead offers a 'title' attribute on the <fieldset>
60732         element. To integrate within the existing RenderFieldset code, we just create an
60733         internal <insertedLegend> element as first child for a WML <fieldset> element, containing
60734         the title attribute value.
60735
60736         * GNUmakefile.am:
60737         * WebCore.pro:
60738         * WebCore.vcproj/WebCore.vcproj:
60739         * WebCore.xcodeproj/project.pbxproj:
60740         * css/CSSStyleSelector.cpp:
60741         (WebCore::CSSStyleSelector::adjustRenderStyle):
60742         * css/wml.css:
60743         * rendering/RenderFieldset.cpp:
60744         (WebCore::RenderFieldset::RenderFieldset):
60745         (WebCore::RenderFieldset::findLegend):
60746         * rendering/RenderFieldset.h:
60747         * rendering/RenderLegend.cpp:
60748         (WebCore::RenderLegend::RenderLegend):
60749         * rendering/RenderLegend.h:
60750         * wml/WMLFieldSetElement.cpp: Added.
60751         (WebCore::WMLFieldSetElement::WMLFieldSetElement):
60752         (WebCore::WMLFieldSetElement::~WMLFieldSetElement):
60753         (WebCore::WMLFieldSetElement::parseMappedAttribute):
60754         (WebCore::WMLFieldSetElement::insertedIntoDocument):
60755         (WebCore::WMLFieldSetElement::removedFromDocument):
60756         (WebCore::WMLFieldSetElement::createRenderer):
60757         * wml/WMLFieldSetElement.h: Added.
60758         * wml/WMLInsertedLegendElement.cpp: Added.
60759         (WebCore::WMLInsertedLegendElement::WMLInsertedLegendElement):
60760         (WebCore::WMLInsertedLegendElement::~WMLInsertedLegendElement):
60761         (WebCore::WMLInsertedLegendElement::createRenderer):
60762         * wml/WMLInsertedLegendElement.h: Added.
60763         * wml/WMLTagNames.in:
60764
60765 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60766
60767         Not reviewed. Try to fix clean Mac builds, set role=private for FormDataBuilder.h
60768
60769         * WebCore.xcodeproj/project.pbxproj:
60770
60771 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60772
60773         Rubber-stamped by George Staikos.
60774
60775         Unify all TorchMobile copyright lines. Consolidate in a single line, as requested by Mark Rowe, some time ago.
60776
60777         * css/CSSStyleSelector.cpp:
60778         * css/wml.css:
60779         * dom/DOMImplementation.cpp:
60780         * dom/Document.cpp:
60781         * dom/Document.h:
60782         * dom/XMLTokenizer.cpp:
60783         * dom/XMLTokenizerLibxml2.cpp:
60784         * dom/XMLTokenizerQt.cpp:
60785         * history/BackForwardList.cpp:
60786         * history/BackForwardList.h:
60787         * loader/FrameLoader.cpp:
60788         * loader/FrameLoader.h:
60789         * loader/MainResourceLoader.cpp:
60790         * page/Page.cpp:
60791         * page/Page.h:
60792         * platform/MIMETypeRegistry.cpp:
60793         * platform/network/FormDataBuilder.cpp:
60794         * platform/network/FormDataBuilder.h:
60795         * platform/qt/MIMETypeRegistryQt.cpp:
60796         * wml/WMLAElement.cpp:
60797         * wml/WMLAElement.h:
60798         * wml/WMLAccessElement.cpp:
60799         * wml/WMLAccessElement.h:
60800         * wml/WMLAnchorElement.cpp:
60801         * wml/WMLAnchorElement.h:
60802         * wml/WMLBRElement.cpp:
60803         * wml/WMLBRElement.h:
60804         * wml/WMLCardElement.cpp:
60805         * wml/WMLCardElement.h:
60806         * wml/WMLDoElement.cpp:
60807         * wml/WMLDoElement.h:
60808         * wml/WMLDocument.cpp:
60809         * wml/WMLDocument.h:
60810         * wml/WMLElement.cpp:
60811         * wml/WMLElement.h:
60812         * wml/WMLErrorHandling.cpp:
60813         * wml/WMLErrorHandling.h:
60814         * wml/WMLEventHandlingElement.cpp:
60815         * wml/WMLEventHandlingElement.h:
60816         * wml/WMLGoElement.cpp:
60817         * wml/WMLGoElement.h:
60818         * wml/WMLImageElement.cpp:
60819         * wml/WMLImageElement.h:
60820         * wml/WMLImageLoader.cpp:
60821         * wml/WMLImageLoader.h:
60822         * wml/WMLIntrinsicEvent.cpp:
60823         * wml/WMLIntrinsicEvent.h:
60824         * wml/WMLIntrinsicEventHandler.cpp:
60825         * wml/WMLIntrinsicEventHandler.h:
60826         * wml/WMLNoopElement.cpp:
60827         * wml/WMLNoopElement.h:
60828         * wml/WMLOnEventElement.cpp:
60829         * wml/WMLOnEventElement.h:
60830         * wml/WMLPElement.cpp:
60831         * wml/WMLPElement.h:
60832         * wml/WMLPageState.cpp:
60833         * wml/WMLPageState.h:
60834         * wml/WMLPostfieldElement.cpp:
60835         * wml/WMLPostfieldElement.h:
60836         * wml/WMLPrevElement.cpp:
60837         * wml/WMLPrevElement.h:
60838         * wml/WMLRefreshElement.cpp:
60839         * wml/WMLRefreshElement.h:
60840         * wml/WMLSetvarElement.cpp:
60841         * wml/WMLSetvarElement.h:
60842         * wml/WMLTableElement.cpp:
60843         * wml/WMLTableElement.h:
60844         * wml/WMLTaskElement.cpp:
60845         * wml/WMLTaskElement.h:
60846         * wml/WMLTemplateElement.cpp:
60847         * wml/WMLTemplateElement.h:
60848         * wml/WMLTimerElement.cpp:
60849         * wml/WMLTimerElement.h:
60850         * wml/WMLVariables.cpp:
60851         * wml/WMLVariables.h:
60852
60853 2008-12-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60854
60855         Reviewed by George Staikos.
60856
60857         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22638
60858
60859         Add POST method support to WMLGoElement. GET & POST over HTTP
60860         covered by a new set of WML HTTP layout tests.
60861
60862         Tests: http/tests/wml/go-task-get-method-accept-charset.html
60863                http/tests/wml/go-task-get-method.html
60864                http/tests/wml/go-task-post-method-accept-charset.html
60865                http/tests/wml/go-task-post-method.html
60866
60867         * wml/WMLGoElement.cpp:
60868         (WebCore::WMLGoElement::WMLGoElement):
60869         (WebCore::WMLGoElement::registerPostfieldElement):
60870         (WebCore::WMLGoElement::parseMappedAttribute):
60871         (WebCore::WMLGoElement::executeTask):
60872         (WebCore::WMLGoElement::preparePOSTRequest):
60873         (WebCore::WMLGoElement::prepareGETRequest):
60874         (WebCore::WMLGoElement::createFormData):
60875         * wml/WMLGoElement.h:
60876         * wml/WMLPostfieldElement.cpp:
60877         (WebCore::encodedString):
60878         (WebCore::WMLPostfieldElement::encodeData):
60879         * wml/WMLPostfieldElement.h:
60880
60881 2008-12-21  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
60882
60883         Reviewed by Darin Adler and George Staikos.
60884
60885         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22949
60886
60887         Refactor HTMLFormElement to share a maximum level of code between HTMLFormElement & WMLGoElement.
60888         Create a new helper class 'FormDataBuilder', which is hold as member variable in those classes.
60889         It encapsulates all functionality needed to generate a FormData object, usable for HTML/WML form
60890         submission, including boundary string generation, multi-part form handling etc.
60891
60892         No functional changes, no test cases affected.
60893         WMLGoElement will be converted in a follow-up patch.
60894
60895         * GNUmakefile.am:
60896         * WebCore.pro:
60897         * WebCore.scons:
60898         * WebCore.vcproj/WebCore.vcproj:
60899         * WebCore.xcodeproj/project.pbxproj:
60900         * WebCoreSources.bkl:
60901         * html/HTMLFormElement.cpp:
60902         (WebCore::HTMLFormElement::HTMLFormElement):
60903         (WebCore::HTMLFormElement::dataEncoding):
60904         (WebCore::HTMLFormElement::createFormData):
60905         (WebCore::HTMLFormElement::submit):
60906         (WebCore::HTMLFormElement::parseMappedAttribute):
60907         * html/HTMLFormElement.h:
60908         (WebCore::HTMLFormElement::enctype):
60909         (WebCore::HTMLFormElement::encoding):
60910         (WebCore::HTMLFormElement::setEncoding):
60911         (WebCore::HTMLFormElement::acceptCharset):
60912         * platform/network/FormDataBuilder.cpp: Added.
60913         (WebCore::FormDataBuilder::FormDataBuilder):
60914         (WebCore::FormDataBuilder::~FormDataBuilder):
60915         (WebCore::FormDataBuilder::parseEncodingType):
60916         (WebCore::FormDataBuilder::parseMethodType):
60917         (WebCore::FormDataBuilder::dataEncoding):
60918         (WebCore::appendString):
60919         (WebCore::FormDataBuilder::beginMultiPartHeader):
60920         (WebCore::FormDataBuilder::addBoundaryToMultiPartHeader):
60921         (WebCore::FormDataBuilder::addFileNameToMultiPartHeader):
60922         (WebCore::FormDataBuilder::addContentTypeToMultiPartHeader):
60923         (WebCore::FormDataBuilder::finishMultiPartHeader):
60924         (WebCore::FormDataBuilder::clear):
60925         (WebCore::FormDataBuilder::addKeyValuePairAsFormData):
60926         (WebCore::FormDataBuilder::encodeStringAsFormData):
60927         (WebCore::FormDataBuilder::generateUniqueBoundaryString):
60928         * platform/network/FormDataBuilder.h: Added.
60929         (WebCore::FormDataBuilder::isPostMethod):
60930         (WebCore::FormDataBuilder::setIsPostMethod):
60931         (WebCore::FormDataBuilder::isMultiPartForm):
60932         (WebCore::FormDataBuilder::setIsMultiPartForm):
60933         (WebCore::FormDataBuilder::encodingType):
60934         (WebCore::FormDataBuilder::setEncodingType):
60935         (WebCore::FormDataBuilder::acceptCharset):
60936         (WebCore::FormDataBuilder::setAcceptCharset):
60937         (WebCore::FormDataBuilder::encodedData):
60938         (WebCore::FormDataBuilder::multiPartData):
60939
60940 2008-12-21  Dirk Schulze  <krit@webkit.org>
60941
60942         Reviewed by Darin Adler, Nikolas Zimmermann.
60943
60944         Move the the platform dependent strokeBBox functionality out of RenderPath
60945         into Path with strokeBoundingRect.
60946
60947         RenderPath clean-up for strokeBoundingBox
60948         [https://bugs.webkit.org/show_bug.cgi?id=22902]
60949
60950         * GNUmakefile.am:
60951         * WebCore.xcodeproj/project.pbxproj:
60952         * platform/graphics/GraphicsContext.h:
60953         * platform/graphics/Path.h:
60954         * platform/graphics/StrokeStyleApplier.h: Added.
60955         (WebCore::StrokeStyleApplier::~StrokeStyleApplier):
60956         * platform/graphics/cairo/PathCairo.cpp:
60957         (WebCore::Path::strokeBoundingRect):
60958         * platform/graphics/cg/PathCG.cpp:
60959         (WebCore::createScratchContext):
60960         (WebCore::scratchContext):
60961         (WebCore::Path::strokeBoundingRect):
60962         * platform/graphics/qt/GraphicsContextQt.cpp:
60963         (WebCore::GraphicsContext::pen):
60964         * platform/graphics/qt/PathQt.cpp:
60965         (WebCore::Path::strokeBoundingRect):
60966         * rendering/RenderPath.cpp:
60967         (WebCore::StrokeBoundingRectStyleApplier::StrokeBoundingRectStyleApplier):
60968         (WebCore::StrokeBoundingRectStyleApplier::strokeStyle):
60969         (WebCore::RenderPath::relativeBBox):
60970         * rendering/RenderPath.h:
60971         * svg/graphics/cairo/RenderPathCairo.cpp:
60972         * svg/graphics/cg/RenderPathCg.cpp:
60973         * svg/graphics/qt/RenderPathQt.cpp:
60974
60975 2008-12-20  David Kilzer  <ddkilzer@apple.com>
60976
60977         Fix typo "CSSAferRuleValue" to "CSSAfterRuleValue"
60978
60979         * html/PreloadScanner.cpp:
60980         (WebCore::PreloadScanner::tokenizeCSS):
60981         * html/PreloadScanner.h:
60982         (WebCore::PreloadScanner::CSSState):
60983
60984 2008-12-19  Alexey Proskuryakov  <ap@webkit.org>
60985
60986         Reviewed by Geoff Garen.
60987
60988         <rdar://problem/6454076> Random crashes on JS raytracer
60989
60990         No test, because the crash is not readily reproducible.
60991
60992         * platform/text/StringImpl.cpp:
60993         (WebCore::StringImpl::empty):
60994         * platform/text/StringImpl.h:
60995         Made empty string per-thread.
60996
60997 2008-12-19  Anders Carlsson  <andersca@apple.com>
60998
60999         Reviewed by Sam Weinig.
61000
61001         Replace some uses of HardRetain etc with RetainPtr.
61002
61003         * platform/mac/DragImageMac.mm:
61004         * platform/mac/SharedBufferMac.mm:
61005         (WebCore::SharedBuffer::createCFData):
61006         * rendering/RenderThemeMac.mm:
61007         * svg/graphics/cg/SVGResourceFilterCg.mm:
61008         (WebCore::SVGResourceFilter::prepareFilter):
61009         (WebCore::SVGResourceFilter::applyFilter):
61010         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
61011         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
61012         (WebCore::SVGResourceFilterPlatformDataMac::SVGResourceFilterPlatformDataMac):
61013
61014 2008-12-19  miggilin  <mr.diggilin@gmail.com>
61015
61016         Reviewed by Kevin Ollivier.
61017
61018         Add Context Menu support to wx bindings.
61019
61020         https://bugs.webkit.org/show_bug.cgi?id=22675
61021
61022         * platform/ContextMenu.h:
61023         * platform/ContextMenuItem.h:
61024         (WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
61025         * platform/wx/ContextMenuItemWx.cpp: Added.
61026         * platform/wx/ContextMenuWx.cpp: Added.
61027         * platform/wx/LocalizedStringsWx.cpp:
61028         * platform/wx/TemporaryLinkStubs.cpp:
61029         * webcore-wx.bkl:
61030
61031
61032 2008-12-19  Beth Dakin  <bdakin@apple.com>
61033
61034         Reviewed by Darin Adler.
61035
61036         Temporary band-aide fix for <rdar://problem/6372481> In Gmail, a
61037         crash occurs at
61038         AccessibilityTable::isTableExposableThroughAccessibility() when
61039         attempting to create a link in a rich text message
61040
61041         We need to disable Accessibility Tables until we get this fixed for
61042         real to prevent rampant crashing.
61043
61044         * page/AccessibilityTable.cpp:
61045         (WebCore::AccessibilityTable::AccessibilityTable):
61046
61047 2008-12-19  Simon Fraser  <simon.fraser@apple.com>
61048
61049         Reviewed by Darin Adler
61050
61051         https://bugs.webkit.org/show_bug.cgi?id=22938
61052
61053         When the document element is transformed, we need to paint
61054         the view background to avoid unpainted areas.
61055
61056         Test: fast/transforms/transformed-document-element.html
61057
61058         * rendering/RenderView.cpp:
61059         (WebCore::RenderView::paintBoxDecorations):
61060
61061 2008-12-19  Steve Falkenburg  <sfalken@apple.com>
61062
61063         Fix build.
61064
61065         * WebCore.vcproj/WebCore.vcproj:
61066
61067 2008-12-19  Kevin Ollivier  <kevino@theolliviers.com>
61068
61069         wx build fixes after recent changes.
61070
61071         * WebCoreSources.bkl:
61072         * platform/graphics/wx/ImageSourceWx.cpp:
61073         (WebCore::ImageSource::clear):
61074         * webcore-base.bkl:
61075
61076 2008-12-19  Holger Hans Peter Freyther  <zecke@selfish.org>
61077
61078         Reviewed by Sam Weinig.
61079
61080         [GTK] Fix make distcheck again
61081
61082         These files were moved to WebCore/platform/animation
61083         and WebCore/platform/graphics/transforms.
61084
61085         * GNUmakefile.am:
61086
61087 2008-12-19  Gustavo Noronha Silva  <gns@gnome.org>
61088
61089         Reviewed by Holger Freyther.
61090
61091         https://bugs.webkit.org/show_bug.cgi?id=22900
61092
61093         Fix AtomicString usage, so that building works.
61094
61095         * platform/network/soup/ResourceHandleSoup.cpp:
61096
61097 2008-12-19  Adam Roben  <aroben@apple.com>
61098
61099         Windows build fix on older versions of CFNetwork after r39393
61100
61101         * platform/network/cf/ResourceHandleCFNet.cpp:
61102         (WebCore::highestSupportedCFURLConnectionClientVersion): Changed
61103         preprocessor directives not to leave in unreachable code on old
61104         versions of CFNetwork.
61105
61106 2008-12-19  Antti Koivisto  <antti@apple.com>
61107
61108         Comment fix.
61109
61110         * platform/PurgeableBuffer.h:
61111
61112 2008-12-19  Holger Hans Peter Freyther  <zecke@selfish.org>
61113
61114         [GTK] Build fix by adding the new files.
61115
61116         * GNUmakefile.am:
61117
61118 2008-12-19  Jade Han <jade.han@nokia.com>
61119
61120         Reviewed by Tor Arne Vestbø.
61121
61122         [Qt] Allow conversion of JavaScript Number and Boolean types to Qt types
61123
61124         https://bugs.webkit.org/show_bug.cgi?id=22880
61125
61126         * bridge/qt/qt_runtime.cpp:
61127         (JSC::Bindings::convertValueToQVariant):
61128
61129 2008-12-19  Tor Arne Vestbø  <tavestbo@trolltech.com>
61130
61131         Reviewed by Holger Freyther.
61132
61133         Implement ImageDecoder::filenameExtension() for Qt
61134
61135         * platform/graphics/qt/ImageDecoderQt.cpp:
61136         (WebCore::ImageDecoderQt::filenameExtension):
61137         * platform/graphics/qt/ImageDecoderQt.h:
61138         * platform/graphics/qt/ImageSourceQt.cpp:
61139         (WebCore::ImageSource::filenameExtension):
61140
61141 2008-12-19  Adam Barth  <abarth@webkit.org>
61142
61143         Reviewed by Darin Alder.
61144
61145         Implement ImageSource::filenameExtension for Cario
61146           https://bugs.webkit.org/show_bug.cgi?id=22905
61147
61148         * platform/graphics/cairo/ImageSourceCairo.cpp:
61149         (WebCore::ImageSource::filenameExtension):
61150         * platform/image-decoders/ImageDecoder.h:
61151         * platform/image-decoders/bmp/BMPImageDecoder.h:
61152         (WebCore::BMPImageDecoder::filenameExtension):
61153         * platform/image-decoders/gif/GIFImageDecoder.h:
61154         (WebCore::GIFImageDecoder::filenameExtension):
61155         * platform/image-decoders/ico/ICOImageDecoder.h:
61156         (WebCore::ICOImageDecoder::filenameExtension):
61157         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
61158         (WebCore::JPEGImageDecoder::filenameExtension):
61159         * platform/image-decoders/png/PNGImageDecoder.h:
61160         (WebCore::PNGImageDecoder::filenameExtension):
61161         * platform/image-decoders/xbm/XBMImageDecoder.h:
61162         (WebCore::XBMImageDecoder::filenameExtension):
61163
61164 2008-12-18  Dan Bernstein  <mitz@apple.com>
61165
61166         Reviewed by Sam Weinig.
61167
61168         - avoid using the ResourceHandle-level credential storage, if any,
61169           unless the client opts to use it; when use of the credential
61170           storage is disallowed, all authentication challenges are sent to
61171           the client.
61172         - let the FrameLoaderClient decide whether to use the credential
61173           storage.
61174
61175         * loader/EmptyClients.h:
61176         (WebCore::EmptyFrameLoaderClient::shouldUseCredentialStorage): Added.
61177         Returns false.
61178         * loader/FrameLoader.cpp:
61179         (WebCore::FrameLoader::shouldUseCredentialStorage): Added. Calls through
61180         to the FrameLoaderClient.
61181         * loader/FrameLoader.h: Declared shouldUseCredentialStorage().
61182         * loader/FrameLoaderClient.h: Declared shouldUseCredentialStorage().
61183         * loader/ResourceLoader.cpp:
61184         (WebCore::ResourceLoader::shouldUseCredentialStorage): Added. Calls
61185         through to the FrameLoader.
61186         * loader/ResourceLoader.h:
61187         (WebCore::ResourceLoader::shouldUseCredentialStorage): Implemented this
61188         ResourceHandleClient method.
61189         * loader/SubresourceLoader.cpp:
61190         (WebCore::SubresourceLoader::shouldUseCredentialStorage): Added.
61191         Overrides the ResourceLoader implementation by letting the client
61192         supply the return value. If the client does not do this, continues
61193         with the ResourceLoader behavior of asking the FrameLoader.
61194         * loader/SubresourceLoader.h: Removed an unused #include and declared
61195         shouldUseCredentialStorage().
61196         * loader/SubresourceLoaderClient.h:
61197         (WebCore::SubresourceLoaderClient::getShouldUseCredentialStorage):
61198         Added a default implementation which returns false, meaning the client
61199         does not wish to decide whether the credential storage should be used.
61200         * platform/network/ResourceHandle.h: Removed unused forward declarations.
61201         Declared a new member function, shouldUseCredentialStorage(), on Mac and
61202         CFNetwork-using builds.
61203         * platform/network/ResourceHandleClient.h:
61204         (WebCore::ResourceHandleClient::shouldUseCredentialStorage): Added this
61205         default implementation that returns false.
61206         * platform/network/cf/ResourceHandleCFNet.cpp:
61207         (WebCore::findCFNetworkModule): Added. Returns a handle to the CFNetwork
61208         module.
61209         (WebCore::cfNetworkVersion): Added. Returns the high word of the
61210         CFNetwork library's product version.
61211         (WebCore::highestSupportedCFURLConnectionClientVersion): Added. Returns
61212         the highest version of the CFURLConnectionClient structure supported by
61213         the CFNetwork library. The only reason to check this at runtime is
61214         that WebKit may be linking at runtime against an older version of
61215         CFNetwork than the one it was built with, as is the case with nightly
61216         builds.
61217         (WebCore::shouldUseCredentialStorageCallback): Added this
61218         CFURLConnection callback which calls through to
61219         ResourceHandle::shouldUseCredentialStorage().
61220         (WebCore::ResourceHandle::start): Pass a version 3 CFURLConnectionClient
61221         including the shouldUseCredentialStorage callback. At runtime, clamp the
61222         client structure version down to the highest supported by CFNetwork.
61223         (WebCore::ResourceHandle::shouldUseCredentialStorage): Added. Calls through
61224         to the client if there is one. Otherwise returns false.
61225         * platform/network/mac/ResourceHandleMac.mm:
61226         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
61227         (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
61228         Added this delegate method which callls through to
61229         ResourceHandle::shouldUseCredentialStorage().
61230
61231 2008-12-18  David Kilzer  <ddkilzer@apple.com>
61232
61233         Reset role to "Private" on 6 header files to fix clean builds after r39378
61234
61235         Reviewed by BUILD FIX.
61236
61237         * WebCore.xcodeproj/project.pbxproj: Added back "Private" role
61238         that was lost on 6 headers when they were "moved":
61239         AffineTransform.h, Animation.h, AnimationList.h,
61240         TimingFunction.h, TransformOperation.h and
61241         TransformOperations.h.
61242
61243 2008-12-18  Pamela Greene  <pam@chromium.org>
61244
61245         Reviewed by Dan Bernstein.
61246
61247         Add initializer for m_textDirectionSubmenuInclusionBehavior.
61248         https://bugs.webkit.org/show_bug.cgi?id=22926
61249
61250         * page/Settings.cpp:
61251         (WebCore::Settings::Settings): Initialize m_textDirectionSubmenuInclusionBehavior
61252
61253 2008-12-18  Sam Weinig  <sam@webkit.org>
61254
61255         Reviewed by John Sullivan.
61256
61257         Add new FrameLoaderClient method to indicate the first visually
61258         non-empty layout based on an heuristic.  Right now that heuristic
61259         is the first layout after an image, text or plugin has been added
61260         to the render tree, but I can imagine it becoming much smarter.
61261
61262         * loader/EmptyClients.h:
61263         (WebCore::EmptyFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout):
61264         * loader/FrameLoader.cpp:
61265         (WebCore::FrameLoader::didFirstVisuallyNonEmptyLayout):
61266         * loader/FrameLoader.h:
61267         * loader/FrameLoaderClient.h:
61268         * page/FrameView.cpp:
61269         (WebCore::FrameViewPrivate::reset):
61270         (WebCore::FrameView::layout):
61271         (WebCore::FrameView::performPostLayoutTasks):
61272         (WebCore::FrameView::setIsVisuallyNonEmpty):
61273         * page/FrameView.h:
61274         * rendering/RenderImage.cpp:
61275         (WebCore::RenderImage::RenderImage):
61276         * rendering/RenderPartObject.cpp:
61277         (WebCore::RenderPartObject::RenderPartObject):
61278         * rendering/RenderText.cpp:
61279         (WebCore::RenderText::RenderText):
61280
61281 2008-12-18  Darin Adler  <darin@apple.com>
61282
61283         Reviewed by Sam Weinig.
61284
61285         - fix <rdar://problem/6449841> reduce memory use of ResourceResponseBase by removing two maps
61286
61287         We were parsing the cache-control and pragma header field values into maps.
61288         I changed that so instead we only cache two bits with the data we were actually
61289         using. Later we might want to move this responsibility out of this class entirely;
61290         we can cache it at the higher level instead.
61291
61292         * loader/CachedResource.cpp:
61293         (WebCore::CachedResource::mustRevalidate): Changed to call a specific API to get at
61294         the bits in quest instead of a general "cache control directives" API.
61295
61296         * platform/network/ResourceResponseBase.cpp:
61297         (WebCore::ResourceResponseBase::setHTTPHeaderField): Remove the logic for the
61298         pragma header field since no one is using this for now.
61299         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Eliminated the return
61300         value and made this function have side effects only. Changed it so it's the caller's
61301         responsibility to check m_haveParsedCacheControl. Set m_cacheControlContainsNoCache
61302         and m_cacheControlContainsMustRevalidate rather than keeping a map around.
61303
61304         * platform/network/ResourceResponseBase.h:
61305         (WebCore::ResourceResponseBase::cacheControlContainsNoCache): Added.
61306         (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate): Added.
61307         (WebCore::ResourceResponseBase::ResourceResponseBase): Updated since I removed
61308         m_haveParsedCacheControl and renamed m_haveParsedCacheControlHeader to remove
61309         the imprecise use of the term "header".
61310
61311 2008-12-18  Steve Falkenburg  <sfalken@apple.com>
61312
61313         Build fix.
61314         Delete 2nd copy of code in these files.
61315
61316         * platform/animation/Animation.cpp:
61317         * platform/animation/Animation.h:
61318         * platform/animation/AnimationList.cpp:
61319         * platform/animation/AnimationList.h:
61320         * platform/animation/TimingFunction.h:
61321         * platform/graphics/transforms/AffineTransform.cpp:
61322         * platform/graphics/transforms/AffineTransform.h:
61323         * platform/graphics/transforms/IdentityTransformOperation.h:
61324         * platform/graphics/transforms/MatrixTransformOperation.cpp:
61325         * platform/graphics/transforms/MatrixTransformOperation.h:
61326         * platform/graphics/transforms/RotateTransformOperation.cpp:
61327         * platform/graphics/transforms/RotateTransformOperation.h:
61328         * platform/graphics/transforms/ScaleTransformOperation.cpp:
61329         * platform/graphics/transforms/ScaleTransformOperation.h:
61330         * platform/graphics/transforms/SkewTransformOperation.cpp:
61331         * platform/graphics/transforms/SkewTransformOperation.h:
61332         * platform/graphics/transforms/TransformOperation.h:
61333         * platform/graphics/transforms/TransformOperations.cpp:
61334         * platform/graphics/transforms/TransformOperations.h:
61335         * platform/graphics/transforms/TranslateTransformOperation.cpp:
61336         * platform/graphics/transforms/TranslateTransformOperation.h:
61337
61338 2008-12-18  Dimitri Glazkov  <dglazkov@chromium.org>
61339
61340         Reviewed by Geoffrey Garen.
61341
61342         https://bugs.webkit.org/show_bug.cgi?id=22859
61343         Abstract away the use of JSDOMWindow in CachedPage and introduce
61344         ScriptCachedPageData abstraction.
61345
61346         * GNUmakefile.am: Added ScriptCachedPageData to project.
61347         * WebCore.pro: Added ScriptCachedPageData to project.
61348         * WebCore.vcproj/WebCore.vcproj: Added ScriptCachedPageData to project.
61349         * WebCore.xcodeproj/project.pbxproj: Added ScriptCachedPageData to
61350             project.
61351         * bindings/js/ScriptCachedPageData.cpp: Added.
61352         (WebCore::ScriptCachedPageData::ScriptCachedPageData):
61353         (WebCore::ScriptCachedPageData::~ScriptCachedPageData):
61354         (WebCore::ScriptCachedPageData::restore):
61355         (WebCore::ScriptCachedPageData::clear):
61356         * bindings/js/ScriptCachedPageData.h: Added.
61357         * history/CachedPage.cpp: Replaced JSDOMWindow and ProtectedPtr with
61358             ScriptCachedPageData.
61359         (WebCore::CachedPage::CachedPage):
61360         (WebCore::CachedPage::domWindow):
61361         (WebCore::CachedPage::restore):
61362         (WebCore::CachedPage::clear):
61363         * history/CachedPage.h: Replaced JSDOMWindow and ProtectedPtr with
61364             ScriptCachedPageData.
61365
61366 2008-12-18  Chris Marrin  <cmarrin@apple.com>
61367
61368         Reviewed by Dave Hyatt.
61369
61370         https://bugs.webkit.org/show_bug.cgi?id=22888
61371
61372         To avoid future dependency issues, all the TransformOperations and Animation related files need to be moved to platform
61373
61374         * WebCore.xcodeproj/project.pbxproj:
61375         * platform/animation: Added.
61376         * platform/animation/Animation.cpp: Copied from WebCore/rendering/style/Animation.cpp.
61377         * platform/animation/Animation.h: Copied from WebCore/rendering/style/Animation.h.
61378         * platform/animation/AnimationList.cpp: Copied from WebCore/rendering/style/AnimationList.cpp.
61379         * platform/animation/AnimationList.h: Copied from WebCore/rendering/style/AnimationList.h.
61380         * platform/animation/TimingFunction.h: Copied from WebCore/rendering/style/TimingFunction.h.
61381         * platform/graphics/AffineTransform.cpp: Removed.
61382         * platform/graphics/AffineTransform.h: Removed.
61383         * platform/graphics/transforms: Added.
61384         * platform/graphics/transforms/AffineTransform.cpp: Copied from WebCore/platform/graphics/AffineTransform.cpp.
61385         * platform/graphics/transforms/AffineTransform.h: Copied from WebCore/platform/graphics/AffineTransform.h.
61386         * platform/graphics/transforms/IdentityTransformOperation.h: Copied from WebCore/rendering/style/IdentityTransformOperation.h.
61387         * platform/graphics/transforms/MatrixTransformOperation.cpp: Copied from WebCore/rendering/style/MatrixTransformOperation.cpp.
61388         * platform/graphics/transforms/MatrixTransformOperation.h: Copied from WebCore/rendering/style/MatrixTransformOperation.h.
61389         * platform/graphics/transforms/RotateTransformOperation.cpp: Copied from WebCore/rendering/style/RotateTransformOperation.cpp.
61390         * platform/graphics/transforms/RotateTransformOperation.h: Copied from WebCore/rendering/style/RotateTransformOperation.h.
61391         * platform/graphics/transforms/ScaleTransformOperation.cpp: Copied from WebCore/rendering/style/ScaleTransformOperation.cpp.
61392         * platform/graphics/transforms/ScaleTransformOperation.h: Copied from WebCore/rendering/style/ScaleTransformOperation.h.
61393         * platform/graphics/transforms/SkewTransformOperation.cpp: Copied from WebCore/rendering/style/SkewTransformOperation.cpp.
61394         * platform/graphics/transforms/SkewTransformOperation.h: Copied from WebCore/rendering/style/SkewTransformOperation.h.
61395         * platform/graphics/transforms/TransformOperation.h: Copied from WebCore/rendering/style/TransformOperation.h.
61396         * platform/graphics/transforms/TransformOperations.cpp: Copied from WebCore/rendering/style/TransformOperations.cpp.
61397         * platform/graphics/transforms/TransformOperations.h: Copied from WebCore/rendering/style/TransformOperations.h.
61398         * platform/graphics/transforms/TranslateTransformOperation.cpp: Copied from WebCore/rendering/style/TranslateTransformOperation.cpp.
61399         * platform/graphics/transforms/TranslateTransformOperation.h: Copied from WebCore/rendering/style/TranslateTransformOperation.h.
61400         * rendering/style/Animation.cpp: Removed.
61401         * rendering/style/Animation.h: Removed.
61402         * rendering/style/AnimationList.cpp: Removed.
61403         * rendering/style/AnimationList.h: Removed.
61404         * rendering/style/IdentityTransformOperation.h: Removed.
61405         * rendering/style/MatrixTransformOperation.cpp: Removed.
61406         * rendering/style/MatrixTransformOperation.h: Removed.
61407         * rendering/style/RotateTransformOperation.cpp: Removed.
61408         * rendering/style/RotateTransformOperation.h: Removed.
61409         * rendering/style/ScaleTransformOperation.cpp: Removed.
61410         * rendering/style/ScaleTransformOperation.h: Removed.
61411         * rendering/style/SkewTransformOperation.cpp: Removed.
61412         * rendering/style/SkewTransformOperation.h: Removed.
61413         * rendering/style/TimingFunction.h: Removed.
61414         * rendering/style/TransformOperation.h: Removed.
61415         * rendering/style/TransformOperations.cpp: Removed.
61416         * rendering/style/TransformOperations.h: Removed.
61417         * rendering/style/TranslateTransformOperation.cpp: Removed.
61418         * rendering/style/TranslateTransformOperation.h: Removed.
61419
61420 2008-12-18  Cameron Zwarich  <zwarich@apple.com>
61421
61422         Reviewed by Geoff Garen.
61423
61424         Bug 21855: REGRESSION (r37323): Gmail complains about popup blocking when opening a link
61425         <https://bugs.webkit.org/show_bug.cgi?id=21855>
61426         <rdar://problem/6278244>
61427
61428         If JavaScript is not currently executing, the handleEvent member function
61429         of JSAbstractEventListener should set the dynamic global object to the
61430         global object of the context in which the event occurred.
61431
61432         If this is not set, then JavaScriptCore will simply take the global object
61433         of the context where the event handler function was created, which may be
61434         a different frame. This will cause the popup blocker to incorrectly block
61435         windows opened from onclick events inside of an iframe whose handler was
61436         created in the outer frame, as it will check the outer frame and see that
61437         it is not processing any events.
61438
61439         * bindings/js/JSEventListener.cpp:
61440         (WebCore::JSAbstractEventListener::handleEvent):
61441
61442 2008-12-17  Simon Fraser  <simon.fraser@apple.com>
61443
61444         Reviewed by Dave Hyatt
61445
61446         https://bugs.webkit.org/show_bug.cgi?id=22570
61447
61448         Add the ability to compute clip rects independently from
61449         caching them on the RenderLayer. When painting reflections, use
61450         such temporarily computed clipRects, otherwise the layer may cache
61451         clipRects which are invalid, since they have been computed with
61452         a rootLayer that is not the one usually used to paint.
61453
61454         Test: fast/reflections/reflection-overflow-hidden.html
61455
61456         * rendering/RenderLayer.cpp:
61457         (WebCore::RenderLayer::paintLayer):
61458         (WebCore::RenderLayer::hitTestLayer):
61459         (WebCore::RenderLayer::updateClipRects):
61460         (WebCore::RenderLayer::calculateClipRects):
61461         (WebCore::RenderLayer::calculateRects):
61462         * rendering/RenderLayer.h:
61463         (WebCore::ClipRects::ClipRects):
61464         (WebCore::ClipRects::reset):
61465         (WebCore::ClipRects::overflowClipRect):
61466         (WebCore::ClipRects::setOverflowClipRect):
61467         (WebCore::ClipRects::fixedClipRect):
61468         (WebCore::ClipRects::setFixedClipRect):
61469         (WebCore::ClipRects::posClipRect):
61470         (WebCore::ClipRects::setPosClipRect):
61471         (WebCore::ClipRects::setFixed):
61472         (WebCore::ClipRects::operator==):
61473         (WebCore::ClipRects::operator=):
61474         * rendering/RenderReplica.cpp:
61475         (WebCore::RenderReplica::paint):
61476
61477 2008-12-17  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
61478
61479         Reviewed by Simon Hausmann.
61480
61481         https://bugs.webkit.org/show_bug.cgi?id=22618
61482
61483         Fix MinGW QtWebKit linking problems and also make the
61484         QtWebKit build system more robust.
61485
61486         * WebCore.pro:
61487
61488 2008-12-17  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
61489
61490         Reviewed by Maciej Stachowiak.
61491
61492         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22866
61493
61494         wml.css is based on an older copy of html4.css. Synchronize them.
61495         Remove all entries, that are irrelevant for WML.
61496
61497         Fix <do> appearance: should behave like HTMLs <button>.
61498
61499         * css/wml.css:
61500
61501 2008-12-17  Yury Semikhatsky <yurys@google.com>
61502
61503         Reviewed by Timothy Hatcher.
61504         Landed by Adam Barth.
61505
61506         Added more checks that WebInspector.panels.{resources,scripts} are
61507         defined where they are accessed from other panels and WebInspector
61508         (some panels are not yet supported in Chrome).
61509
61510         * inspector/front-end/Console.js:
61511         (WebInspector.Console.prototype.addMessage):
61512         (WebInspector.Console.prototype.clearMessages):
61513         (WebInspector.Console.prototype.completions):
61514         * inspector/front-end/ObjectPropertiesSection.js:
61515         (WebInspector.ObjectPropertyTreeElement.prototype.evaluateExpression):
61516         * inspector/front-end/ScriptsPanel.js:
61517         (WebInspector.ScriptsPanel.prototype.get searchableViews):
61518         (WebInspector.ScriptsPanel.prototype._sourceViewForScriptOrResource):
61519         (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource):
61520         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
61521         * inspector/front-end/SourceView.js:
61522         (WebInspector.SourceView.prototype._addBreakpoint):
61523         * inspector/front-end/inspector.js:
61524         (WebInspector.addResource):
61525         (WebInspector.removeResource):
61526         (WebInspector.showResourceForURL):
61527
61528 2008-12-17  Cary Clark  < caryclark@google.com>
61529
61530         Reviewed by Darin Adler.
61531         Landed by Adam Barth.
61532
61533         Add ENABLE_TEXT_CARET to permit the ANDROID platform
61534         to invalidate and draw the caret in a separate thread.
61535
61536         * page/Frame.cpp:
61537         (WebCore::Frame::clearCaretRectIfNeeded): Body of
61538         function does nothing if text caret is disabled.
61539         (WebCore::Frame::selectionLayoutChanged): Do nothing
61540         if text caret is disabled and the caret only blinked.
61541         (WebCore::Frame::caretBlinkTimerFired):
61542         (WebCore::Frame::paintCaret):
61543         (WebCore::Frame::paintDragCaret): Body of
61544         functions does nothing if text caret is disabled.
61545
61546 2008-12-16  Darin Adler  <darin@apple.com>
61547
61548         Reviewed and landed by Cameron Zwarich.
61549
61550         Change the style of AtomicString::add() to match Identifier:add().
61551
61552         * platform/text/AtomicString.cpp:
61553         (WebCore::AtomicString::add):
61554
61555 2008-12-16  Adele Peterson  <adele@apple.com>
61556
61557         Reviewed by Darin Adler.
61558
61559         Fix for https://bugs.webkit.org/show_bug.cgi?id=22827
61560         <rdar://problem/6247724> RenderThemeWin buttons have weird heavy text
61561
61562         * rendering/RenderThemeWin.cpp:
61563         (WebCore::fillFontDescription): Add version that takes a font size.
61564         (WebCore::RenderThemeWin::systemFont): Use the default GUI font for control fonts, but specify the size.
61565         This will match Firefox.
61566
61567 2008-12-16  Stephanie Lewis  <slewis@apple.com>
61568
61569         Another build fix.
61570
61571         * platform/text/AtomicString.h:
61572         (WebCore::AtomicString::AtomicString):
61573
61574 2008-12-16  Stephanie Lewis  <slewis@apple.com>
61575
61576         Windows Build Fix.
61577
61578         * platform/text/AtomicString.h:
61579         (WebCore::AtomicString::AtomicString):
61580         (WebCore::AtomicString::createCFString):
61581
61582 2008-12-16  Peter Kasting  <pkasting@google.com>
61583
61584         Reviewed by David Hyatt.
61585
61586         https://bugs.webkit.org/show_bug.cgi?id=22885
61587         Fix memory corruption in GIFImageDecoder.cpp with certain GIFs.
61588
61589         * platform/image-decoders/gif/GIFImageDecoder.cpp:
61590         (WebCore::GIFImageDecoder::frameComplete):
61591
61592 2008-12-16  Stephanie Lewis  <slewis@apple.com>
61593
61594         Reviewed by Geoff Garen.
61595
61596         Change HTTPHeaderMap to use an AtomicString as its key.
61597         Shaves ~1MB off of the Mozilla Memory Test
61598         No functionality difference
61599
61600         * WebCore.xcodeproj/project.pbxproj:
61601         * inspector/InspectorController.cpp:
61602         (WebCore::addHeaders):
61603         * loader/appcache/ApplicationCacheStorage.cpp:
61604         (WebCore::parseHeader):
61605         * platform/network/HTTPHeaderMap.h:
61606         * platform/network/ResourceRequestBase.cpp:
61607         (WebCore::ResourceRequestBase::httpHeaderField):
61608         (WebCore::ResourceRequestBase::setHTTPHeaderField):
61609         (WebCore::ResourceRequestBase::addHTTPHeaderField):
61610         * platform/network/ResourceRequestBase.h:
61611         * platform/network/ResourceResponseBase.cpp:
61612         (WebCore::ResourceResponseBase::httpHeaderField):
61613         (WebCore::ResourceResponseBase::setHTTPHeaderField):
61614         * platform/network/ResourceResponseBase.h:
61615         * platform/text/StringHash.h:
61616         (WebCore::CaseFoldingHash::hash):
61617         (WebCore::CaseFoldingHash::equal):
61618         * xml/XMLHttpRequest.cpp:
61619         (WebCore::isSetCookieHeader):
61620         (WebCore::XMLHttpRequest::setRequestHeader):
61621         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
61622         (WebCore::XMLHttpRequest::getRequestHeader):
61623         (WebCore::XMLHttpRequest::getResponseHeader):
61624         * xml/XMLHttpRequest.h:
61625
61626 2008-12-16  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
61627
61628         Reviewed by Darin Adler.
61629
61630         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22876
61631
61632         Remove legacy randomNumber() functionality from HTMLFormElement, and use the new wtf/RandomNumber.h.
61633         Also remove an uneeded QFileInfo include while I'm at it - there is no Qt usage in this file.
61634
61635         * ForwardingHeaders/wtf/RandomNumber.h: Added.
61636         * html/HTMLFormElement.cpp:
61637         (WebCore::getUniqueBoundaryString):
61638
61639 2008-12-16 Yael Aharon <yael.aharon@nokia.com>
61640
61641         Reviewed by Tor Arne Vestbø.
61642
61643         Qt/Win build fix
61644
61645         * platform/win/SystemTimeWin.cpp:
61646
61647 2008-12-16  Kalle Vahlman  <kalle.vahlman@movial.com>
61648
61649         Reviewed by Holger Freyther.
61650
61651         [CURL] memory leak of ResouceHandles
61652         http://bugs.webkit.org/show_bug.cgi?id=20777
61653
61654         Fix ResourceHandle ref management to be consistent and correct.
61655         Original patch from Marco Barisione.
61656
61657         * platform/network/curl/ResourceHandleCurl.cpp:
61658         (WebCore::ResourceHandle::start):
61659         * platform/network/curl/ResourceHandleManager.cpp:
61660         (WebCore::ResourceHandleManager::removeFromCurl):
61661         (WebCore::ResourceHandleManager::add):
61662         (WebCore::ResourceHandleManager::removeScheduledJob):
61663
61664 2008-12-16  Simon Hausmann  <simon.hausmann@nokia.com>
61665
61666         Fix the Qt build.
61667
61668         * platform/graphics/qt/ImageSourceQt.cpp:
61669         (WebCore::ImageSource::clear): Adjust to new signature.
61670
61671 2008-12-15  Mark Rowe  <mrowe@apple.com>
61672
61673         Rubber-stamped by Cameron Zwarich.
61674
61675         <rdar://problem/6289933> Change WebKit-related projects to build with GCC 4.2 on Leopard.
61676
61677         * Configurations/Base.xcconfig:
61678         * Configurations/DebugRelease.xcconfig:
61679
61680 2008-12-15  Adele Peterson  <adele@apple.com>
61681
61682         Reviewed by Darin Adler.
61683
61684         Fix for https://bugs.webkit.org/show_bug.cgi?id=22871
61685         <rdar://problem/6417316> RenderThemeWin buttons are too short/thin
61686
61687         * rendering/RenderButton.cpp: (WebCore::RenderButton::setupInnerStyle):
61688         Check if the button's style (not the new inner style) has appearance set to determine whether we should set padding on the inner style.
61689
61690 2008-12-15  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
61691
61692         Reviewed by Oliver Hunt.
61693
61694         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22865
61695
61696         Add complete WML <table> / <tr> / <td> element support.
61697         Proper handling of all table related attributes, including tests.
61698
61699         Tests: fast/wml/table-element-align-attribute-invalid.wml (variable reference in 'align' attribute, raises error)
61700                fast/wml/table-element-columns-attribute-invalid-number.wml (columns='0', raises error)
61701                fast/wml/table-element-columns-attribute-invalid.wml (non-numeric 'columns' attribute value, raises error)
61702                fast/wml/table-element-columns-attribute-missing.wml (missing 'columns')
61703                fast/wml/table-element-columns-attribute.wml (test 'columns' attribute and <td> count mismatches)
61704
61705         * GNUmakefile.am:
61706         * WebCore.pro:
61707         * WebCore.vcproj/WebCore.vcproj:
61708         * WebCore.xcodeproj/project.pbxproj:
61709         * rendering/RenderObject.cpp:
61710         (WebCore::RenderObject::offsetParent):
61711         * rendering/RenderTableRow.cpp:
61712         (WebCore::RenderTableRow::addChild):
61713         * wml/WMLTableElement.cpp: Added.
61714         (WebCore::WMLTableElement::WMLTableElement):
61715         (WebCore::WMLTableElement::~WMLTableElement):
61716         (WebCore::WMLTableElement::mapToEntry):
61717         (WebCore::WMLTableElement::parseMappedAttribute):
61718         (WebCore::WMLTableElement::finishParsingChildren):
61719         * wml/WMLTableElement.h: Added.
61720         * wml/WMLTagNames.in:
61721
61722 2008-12-15  Darin Adler  <darin@apple.com>
61723
61724         Reviewed by Sam Weinig.
61725
61726         - fix <rdar://problem/6427048> crash due to infinite recursion after setting window.__proto__ = window
61727
61728         Test: fast/dom/Window/window-custom-prototype.html
61729
61730         Replaced toGlobalObject with the more generally useful unwrappedObject.
61731
61732         * bindings/js/JSDOMWindowShell.cpp:
61733         (WebCore::JSDOMWindowShell::unwrappedObject): Added.
61734         * bindings/js/JSDOMWindowShell.h: Declared unwrappedObject.
61735         * bindings/js/JSQuarantinedObjectWrapper.h:
61736         (WebCore::JSQuarantinedObjectWrapper::unwrappedObject): Ditto.
61737
61738 2008-12-15  Gustavo Noronha Silva  <kov@kov.eti.br>
61739
61740         Reviewed by Mark Rowe.
61741
61742         https://bugs.webkit.org/show_bug.cgi?id=22686
61743
61744         GTK+ build fix.
61745
61746         * GNUmakefile.am:
61747
61748 2008-12-15  Sam Weinig  <sam@webkit.org>
61749
61750         Reviewed by Darin Adler.
61751
61752         Fix for https://bugs.webkit.org/show_bug.cgi?id=22847
61753         Geolocation PositionOptions cannot be an arbitrary object.
61754
61755         Allow the PositionOptions to be a vanilla JS object and parse it
61756         appropriately.
61757
61758         * DerivedSources.make: Remove PositionOptions.
61759         * GNUmakefile.am: Ditto.
61760         * WebCore.pro: Ditto.
61761         * WebCore.vcproj/WebCore.vcproj: Ditto.
61762         * WebCore.xcodeproj/project.pbxproj: Ditto.
61763         * WebCoreSources.bkl: Ditto.
61764
61765         * bindings/js/JSGeolocationCustom.cpp:
61766         (WebCore::createPositionOptions): Added. Extracts the enableHighAccuracy
61767         and timeout fields from a vanilla JS object in order to create the
61768         PositionOptions object, checking for exceptions as necessary.
61769         (WebCore::JSGeolocation::getCurrentPosition): Use createPositionOptions
61770         instead of toPositionOptions.
61771         (WebCore::JSGeolocation::watchPosition): Ditto.
61772         * page/PositionOptions.idl: Removed
61773
61774 2008-12-15  Peter Kasting  <pkasting@google.com>
61775
61776         Reviewed by David Hyatt.
61777
61778         https://bugs.webkit.org/show_bug.cgi?id=22108
61779         Large animated GIFs weren't always animating.  The code that deleted
61780         the entire decoder after each frame of a large image was resulting in
61781         us forgetting the loop count, breaking animations intermittently.
61782
61783         Instead of throwing the whole decoder away, we're more careful to just
61784         delete frames we don't care about.  This additionally addresses
61785         problems in the Cairo and Chromium ports with excessive peak memory
61786         use and CPU use when decoding large animated GIFs because it leads to
61787         much less redecoding (O(n) instead of O(n^2) CPU, and O(1) instead of
61788         O(n) memory).
61789
61790         This change has less impact on the CG decoder, which seems to throw
61791         away frames automatically when their external references are dropped;
61792         this means the CG decoder didn't suffer from the peak memory usage
61793         issue before (and still doesn't), but it also still burns excessive
61794         CPU redecoding earlier frames, that in theory it wouldn't need to
61795         redecode if it would judiciously save the most recent frames.  At
61796         least this patch plumbs some useful info to the ImageSource so it can
61797         help guide the CG decoder heuristics in the future.
61798
61799         * platform/graphics/BitmapImage.cpp:
61800         (WebCore::frameBytes):
61801         (WebCore::BitmapImage::destroyDecodedData):
61802         (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
61803         (WebCore::BitmapImage::destroyMetadataAndNotify):
61804         (WebCore::BitmapImage::clearFrame):
61805         (WebCore::BitmapImage::cacheFrame):
61806         (WebCore::BitmapImage::dataChanged):
61807         (WebCore::BitmapImage::startAnimation):
61808         (WebCore::BitmapImage::resetAnimation):
61809         (WebCore::BitmapImage::internalAdvanceAnimation):
61810         * platform/graphics/BitmapImage.h:
61811         * platform/graphics/GeneratedImage.h:
61812         (WebCore::GeneratedImage::destroyDecodedData):
61813         * platform/graphics/Image.h:
61814         * platform/graphics/ImageSource.h:
61815         * platform/graphics/cairo/ImageSourceCairo.cpp:
61816         (WebCore::ImageSource::~ImageSource):
61817         (WebCore::ImageSource::clear):
61818         * platform/graphics/cg/ImageSourceCG.cpp:
61819         (WebCore::ImageSource::~ImageSource):
61820         (WebCore::ImageSource::clear):
61821         * platform/graphics/cg/PDFDocumentImage.h:
61822         (WebCore::PDFDocumentImage::destroyDecodedData):
61823         * platform/graphics/qt/StillImageQt.h:
61824         (WebCore::StillImage::destroyDecodedData):
61825         * platform/image-decoders/ImageDecoder.h:
61826         (WebCore::RGBA32Buffer::clear):
61827         (WebCore::ImageDecoder::clearFrameBufferCache):
61828         * platform/image-decoders/gif/GIFImageDecoder.cpp:
61829         (WebCore::GIFImageDecoder::repetitionCount):
61830         (WebCore::GIFImageDecoder::clearFrameBufferCache):
61831         (WebCore::GIFImageDecoder::initFrameBuffer):
61832         * platform/image-decoders/gif/GIFImageDecoder.h:
61833         * platform/image-decoders/gif/GIFImageReader.h:
61834         (GIFImageReader::GIFImageReader):
61835         * svg/graphics/SVGImage.h:
61836         (WebCore::SVGImage::destroyDecodedData):
61837
61838 2008-12-15  Cameron Zwarich  <zwarich@apple.com>
61839
61840         Reviewed by Darin Adler.
61841
61842         Bug 22562: REGRESSION (r37971): events not firing after going back in back/forward cache
61843         <https://bugs.webkit.org/show_bug.cgi?id=22562>
61844         <rdar://problem/6414593>
61845
61846         Restore the Frame's DOMWindow to its previous value when going back in
61847         the back/forward cache. The fact that it was not getting set before may
61848         have always caused some subtle bugs with the back/forward cache, but
61849         after r37971, it causes no events to fire after restoring a page.
61850
61851         Previously, ScriptController::clearScriptObjects() was calling
61852         clearPlatformScriptObjects(), which was not actually clearing any
61853         objects, only updating them to reflect some change in state. Since the
61854         window shell was not updated until after the call to clearScriptObjects(),
61855         this didn't actually make that much sense.
61856
61857         We rename clearPlatformScriptObjects() to reflect its actual purpose and
61858         call it after the window shell has been updated rather than before.
61859
61860         Unfortunately, there is no way to test this with a layout test because
61861         it involves the back/forward cache.
61862
61863         * bindings/js/ScriptController.cpp:
61864         (WebCore::ScriptController::updatePlatformScriptObjects): Renamed from
61865         clearPlatformScriptObjects(), because the only nonempty implementation
61866         doesn't actually clear any objects, it updates them. Also made public.
61867         (WebCore::ScriptController::clearScriptObjects): Remove the call to
61868         clearPlatformScriptObjects().
61869         * bindings/js/ScriptController.h:
61870         * bindings/js/ScriptControllerMac.mm:
61871         (WebCore::ScriptController::updatePlatformScriptObjects):
61872         * history/CachedPage.cpp:
61873         (WebCore::CachedPage::domWindow): Added.
61874         * history/CachedPage.h:
61875         * loader/FrameLoader.cpp:
61876         (WebCore::FrameLoader::cancelAndClear): Added call to updatePlatformScriptObjects().
61877         (WebCore::FrameLoader::begin): Added call to updatePlatformScriptObjects().
61878         (WebCore::FrameLoader::open): Added call to updatePlatformScriptObjects().
61879         * page/Frame.cpp:
61880         (WebCore::Frame::setDOMWindow): Added.
61881         (WebCore::Frame::pageDestroyed): Added call to updatePlatformScriptObjects().
61882         * page/Frame.h:
61883
61884 2008-12-15  Antti Koivisto  <antti@apple.com>
61885
61886         Reviewed by Darin Adler.
61887
61888         When a resource is cached locally, WebKit should follow RFC 2616 "Specific end-to-end revalidation" instead of "Unspecified end-to-end revalidation"
61889         https://bugs.webkit.org/show_bug.cgi?id=17998
61890
61891         - Enable conditional revalidation for reloads by default.
61892         - Add a parameter to FrameLoader::reload() for forcing end-to-end reload.
61893         - To avoid duplicating state remove m_cachePolicy variables from FrameLoader and DocLoader.
61894           Instead synthezise the policy on demand.
61895
61896         This speeds up reloads and makes them use way less bandwidth.
61897
61898         * WebCore.base.exp:
61899         * loader/CachePolicy.h: Rename CachePolicyRefresh to CachePolicyRevalidate.
61900         (WebCore::):
61901         * loader/DocLoader.cpp:
61902         (WebCore::DocLoader::DocLoader):
61903         (WebCore::DocLoader::checkForReload): Support CachePolicyRevalidate.
61904         (WebCore::DocLoader::requestResource):
61905         (WebCore::DocLoader::cachePolicy):
61906         * loader/DocLoader.h: Get rid of m_cachePolicy member.
61907         * loader/FrameLoader.cpp:
61908         (WebCore::ScheduledRedirection::ScheduledRedirection):
61909             Add parameter to differentiate refresh from other types of redirects.
61910             m_cachePolicy was used for signaling this before.
61911         (WebCore::isBackForwardLoadType):
61912         (WebCore::FrameLoader::FrameLoader):
61913         (WebCore::FrameLoader::changeLocation):
61914         (WebCore::FrameLoader::stopLoading):
61915         (WebCore::FrameLoader::receivedFirstData):
61916         (WebCore::FrameLoader::write):
61917         (WebCore::FrameLoader::startIconLoader):
61918         (WebCore::FrameLoader::restoreDocumentState):
61919         (WebCore::FrameLoader::scheduleHTTPRedirection):
61920         (WebCore::FrameLoader::scheduleLocationChange):
61921         (WebCore::FrameLoader::scheduleRefresh):
61922         (WebCore::FrameLoader::redirectionTimerFired):
61923         (WebCore::FrameLoader::canCachePage):
61924         (WebCore::FrameLoader::loadURL):
61925         (WebCore::FrameLoader::reload):
61926             Differentiate between revalidation and reload.
61927             No need to use setHTTPHeaderField here, addExtraFieldsToRequest will set the headers.
61928         (WebCore::FrameLoader::transitionToCommitted):
61929         (WebCore::FrameLoader::cachePolicy): Determine the cache policy based on current load type.
61930         (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
61931         (WebCore::FrameLoader::addExtraFieldsToRequest): Set Cache-control: no-cache for FrameLoadTypeReloadFromOrigin
61932         (WebCore::FrameLoader::shouldScrollToAnchor):
61933         (WebCore::FrameLoader::loadItem):
61934         (WebCore::FrameLoader::updateHistoryForReload):
61935         (WebCore::FrameLoader::updateHistoryForCommit):
61936         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
61937         * loader/FrameLoader.h:
61938         * loader/FrameLoaderTypes.h: Add FrameLoadTypeReloadFromOrigin
61939         (WebCore::):
61940         * loader/NavigationAction.cpp:
61941         (WebCore::navigationType):  Support FrameLoadTypeReloadFromOrigin
61942         * loader/loader.cpp:
61943         (WebCore::Loader::Host::servePendingRequests):
61944
61945 2008-12-15  Holger Hans Peter Freyther  <zecke@selfish.org>
61946
61947         Reviewed by Simon Hausmann.
61948
61949         Add null checks to PlatformScreenQt
61950
61951         The other ports do the null checks and JSDOMWindowBase is
61952         at least one caller that is passing 0.
61953
61954         * platform/qt/PlatformScreenQt.cpp:
61955         (WebCore::screenDepth):
61956         (WebCore::screenDepthPerComponent):
61957         (WebCore::screenIsMonochrome):
61958         (WebCore::screenRect):
61959         (WebCore::screenAvailableRect):
61960
61961 2008-12-15  Alexey Proskuryakov  <ap@webkit.org>
61962
61963         Reviewed by Oliver Hunt.
61964
61965         <rdar://problem/6444455> Worker Thread crash running multiple workers for a moderate amount of time
61966
61967         * dom/WorkerThread.cpp: (WebCore::WorkerThread::workerThread):
61968         Detach the thread. Without this, one page of its stack was never unmmaped, and fragmentation
61969         made RegisterFile allocaiton fail after a while.
61970
61971 2008-12-13  Darin Adler  <darin@apple.com>
61972
61973         Reviewed by Sam Weinig.
61974
61975         - half of https://bugs.webkit.org/show_bug.cgi?id=17425
61976           eliminate DeprecatedPtrList
61977
61978         * dom/Document.cpp:
61979         (WebCore::Document::removeImage): Change to set slots in the vector
61980         to 0 rather than removing items from a list.
61981         (WebCore::Document::dispatchImageLoadEventsNow): Rewrite to process
61982         the list. Since we now use a "set to zero" design, we don't need to
61983         be careful about where the iterator points while iterating the list,
61984         instead we just have to skip zeros.
61985
61986         * dom/Document.h: Use Vector instead of DeprecatedPtrList.
61987
61988         * dom/EventTargetNode.cpp:
61989         (WebCore::EventTargetNode::dispatchGenericEvent): Use a Vector instead
61990         of a DeprecatedPtrList for the list of nodes to handle. Also streamlined
61991         the logic a bit and used goto in a couple key places.
61992
61993         * dom/Node.cpp:
61994         (WebCore::Node::eventParentNode): Moved this function into this file
61995         because it's a virtual function so already can't be inlined. Also updated
61996         to return a ContainerNode, so it needs to be in a place where the
61997         definition of ContainerNode is visible, not the header file.
61998
61999         * dom/Node.h: Changed return type of eventParentNode to ContainerNode
62000         and moved its definition into the cpp file.
62001
62002         * dom/XMLTokenizerLibxml2.cpp:
62003         (WebCore::PendingCallbacks::~PendingCallbacks): Added a call to
62004         deleteAllValues here instead of setAutoDelete in the constructor, since
62005         we're using Deque instead of DeprecatedPtrList.
62006         (WebCore::PendingCallbacks::callAndRemoveFirstCallback): Changed the
62007         code to use an OwnPtr since the deque won't delete the callback object.
62008
62009         * editing/ApplyStyleCommand.cpp:
62010         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): Use a
62011         Vector instead of a DeprecatedPtrList.
62012
62013         * svg/SVGElement.cpp:
62014         (WebCore::SVGElement::eventParentNode): Moved this function into this file
62015         because it's a virtual function so already can't be inlined. Also updated
62016         to return a ContainerNode.
62017
62018         * svg/SVGElement.h: Changed setShadowParentNode to take a ContainerNode*,
62019         made eventParentNode return a ContainerNode*, and made m_shadowParent a
62020         ContainerNode*.
62021
62022 2008-12-14  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
62023
62024         Reviewed by George Staikos.
62025
62026         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22857
62027
62028         Jumps within a WML deck using <go> task elements fail. Manual reloading
62029         is necessary to display the page - fix cache-policy in WMLGoElement::executeTask
62030         to prevent the problem.
62031
62032         Refactor setActiveCardInDocument in two new functions: findNamedCardInDocument
62033         and determineActiveCard, to fix a side-effect of executing a <go> task:
62034         when switching cards within a deck the active card was changed before the load
62035         was fired which resulted in a flash effect on the screen, and doing unnecessary work.
62036
62037         Test: wml/go-task-animation.html
62038
62039         * wml/WMLCardElement.cpp:
62040         (WebCore::WMLCardElement::findNamedCardInDocument):
62041         (WebCore::WMLCardElement::determineActiveCard):
62042         * wml/WMLCardElement.h:
62043         * wml/WMLDocument.cpp:
62044         (WebCore::WMLDocument::finishedParsing):
62045         * wml/WMLGoElement.cpp:
62046         (WebCore::WMLGoElement::executeTask):
62047         (WebCore::WMLGoElement::prepareGETRequest):
62048         * wml/WMLGoElement.h:
62049
62050 2008-12-14  Dirk Schulze  <krit@webkit.org>
62051
62052         Reviewed by Oliver Hunt.
62053
62054         Fixes an issue in cairo. A fully transparent color can cause wrong
62055         drawings on canvas' composite.
62056
62057         https://bugs.webkit.org/show_bug.cgi?id=22846
62058         [CAIRO] Canvas: transparent color and composite
62059
62060         Test: fast/canvas/canvas-transparency-and-composite.html
62061
62062         * platform/graphics/cairo/GraphicsContextCairo.cpp:
62063         (WebCore::GraphicsContext::fillPath):
62064         (WebCore::GraphicsContext::strokePath):
62065
62066 2008-12-13  Julien Chaffraix  <jchaffraix@webkit.org>
62067
62068         Reviewed by Darin Adler.
62069
62070         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
62071         https://bugs.webkit.org/show_bug.cgi?id=22665
62072
62073         Remove setCreatedByParser from frame and iframe.
62074
62075         * html/HTMLElementFactory.cpp:
62076         (WebCore::frameConstructor):
62077         (WebCore::iframeConstructor):
62078         (WebCore::objectConstructor):
62079         * html/HTMLFrameElement.cpp:
62080         (WebCore::HTMLFrameElement::HTMLFrameElement):
62081         * html/HTMLFrameElement.h:
62082         * html/HTMLFrameElementBase.cpp:
62083         (WebCore::HTMLFrameElementBase::HTMLFrameElementBase):
62084         * html/HTMLFrameElementBase.h:
62085         * html/HTMLFrameOwnerElement.cpp:
62086         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
62087         * html/HTMLFrameOwnerElement.h:
62088         (WebCore::HTMLFrameOwnerElement::createdByParser):
62089         * html/HTMLIFrameElement.cpp:
62090         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
62091         * html/HTMLIFrameElement.h:
62092         * html/HTMLPlugInElement.cpp:
62093         (WebCore::HTMLPlugInElement::HTMLPlugInElement):
62094         * html/HTMLTagNames.in:
62095
62096 2008-12-13  Alexey Proskuryakov  <ap@webkit.org>
62097
62098         Reviewed by Darin Adler.
62099
62100         https://bugs.webkit.org/show_bug.cgi?id=22843
62101         Auto-generate JSWorkerContext
62102
62103         * bindings/scripts/CodeGeneratorJS.pm:
62104         * dom/WorkerContext.idl: Added.
62105         * page/DOMWindow.idl:
62106         Added ExtendsDOMGlobalObject, a new attribute for behaviors common to DOMWindow and
62107         WorkerContext.
62108
62109         * bindings/js/WorkerScriptController.cpp:
62110         (WebCore::WorkerScriptController::initScript):
62111         Made JSWorkerContext creation look more like JSDOMWindow creation, to work with generated code.
62112
62113         * DerivedSources.make:
62114         * GNUmakefile.am:
62115         * WebCore.pro:
62116         * WebCore.scons:
62117         * WebCore.vcproj/WebCore.vcproj:
62118         * WebCore.xcodeproj/project.pbxproj:
62119         * bindings/js/JSWorkerContext.cpp: Removed.
62120         * bindings/js/JSWorkerContext.h: Removed.
62121         * bindings/js/JSWorkerContextBase.cpp: Copied from WebCore/bindings/js/JSWorkerContext.cpp.
62122         (WebCore::JSWorkerContextBase::JSWorkerContextBase):
62123         (WebCore::JSWorkerContextBase::~JSWorkerContextBase):
62124         (WebCore::JSWorkerContextBase::scriptExecutionContext):
62125         (WebCore::getJSWorkerContextBaseTable):
62126         (WebCore::):
62127         (WebCore::JSWorkerContextBase::put):
62128         * bindings/js/JSWorkerContextBase.h: Copied from WebCore/bindings/js/JSWorkerContext.h.
62129         * bindings/js/JSWorkerContextCustom.cpp: Added.
62130         (WebCore::JSWorkerContext::customGetOwnPropertySlot):
62131         (WebCore::JSWorkerContext::mark):
62132         (WebCore::JSWorkerContext::self):
62133         (WebCore::JSWorkerContext::setSelf):
62134         (WebCore::JSWorkerContext::addEventListener):
62135         (WebCore::JSWorkerContext::removeEventListener):
62136         Moved code around. Note that currently, JSWorkerContextBase lookup table is empty, but we'll
62137         need to add some global objects to it in the future, as it is done in JSDOMWindowBase.
62138
62139         * page/WorkerNavigator.cpp:
62140         * page/WorkerNavigator.h:
62141         Added ENABLE(WORKERS) ifdefs.
62142
62143 2008-12-13  Darin Adler  <darin@apple.com>
62144
62145         - fix Release build
62146
62147         * dom/Node.cpp:
62148         (WebCore::Node::rareData): Remove inappropriate inline directive.
62149
62150 2008-12-13  Darin Adler  <darin@apple.com>
62151
62152         Reviewed by Dan Bernstein.
62153
62154         - fix https://bugs.webkit.org/show_bug.cgi?id=18734
62155           REGRESSION (r31081): Focus problems in Gmail 2/Plain text message text
62156           <rdar://problem/5892415>
62157
62158         Test: fast/forms/textarea-selection-preservation.html
62159
62160         The regression reported was caused by the fact that the renderer code had
62161         a bug where it would constantly think the newline at the end of text was
62162         missing, and so it would replace all the text even though it wasn't changing,
62163         which would destroy the selection.
62164
62165         When writing the regression test I discovered another problem: The value
62166         property in HTMLTextAreaElement was intentionally changing the selection
62167         to the end of the textarea, but doing that even when the value wasn't changing.
62168
62169         This patch fixes both and the test checks both.
62170
62171         * html/HTMLTextAreaElement.cpp:
62172         (WebCore::HTMLTextAreaElement::setValue): Exit early if the value is
62173         not changing.
62174
62175         * rendering/RenderTextControl.cpp:
62176         (WebCore::RenderTextControl::text): Add a newline character for each <br>
62177         element encountered in the control
62178
62179 2008-12-13  Darin Adler  <darin@apple.com>
62180
62181         - file deletion part of https://bugs.webkit.org/show_bug.cgi?id=17497
62182           eliminate DeprecatedValueList
62183
62184         * GNUmakefile.am: Removed references to deleted files.
62185         * WebCore.pro: Ditto.
62186         * WebCore.scons: Ditto.
62187         * WebCore.vcproj/WebCore.vcproj: Ditto.
62188         * WebCore.xcodeproj/project.pbxproj: Ditto.
62189         * WebCoreSources.bkl: Ditto.
62190
62191         * platform/DeprecatedPtrQueue.h: Removed.
62192         * platform/DeprecatedValueList.h: Removed.
62193         * platform/DeprecatedValueListImpl.cpp: Removed.
62194         * platform/DeprecatedValueListImpl.h: Removed.
62195
62196 2008-12-13  Darin Adler  <darin@apple.com>
62197
62198         Reviewed by Anders Carlsson.
62199
62200         - https://bugs.webkit.org/show_bug.cgi?id=17497
62201           eliminate DeprecatedValueList
62202
62203         * css/CSSStyleDeclaration.cpp: Removed unneeded include.
62204
62205         * dom/Document.cpp:
62206         (WebCore::Document::removeAllEventListenersFromAllNodes):
62207         Set the removed flag on the window event listeners in case we
62208         are in the middle of dispatching events on this window.
62209         (WebCore::Document::clear): Ditto.
62210         (WebCore::Document::handleWindowEvent): Changed to use a vector
62211         instead of a DeprecatedPtrList.
62212         (WebCore::Document::windowInlineEventListenerForType): Ditto.
62213         (WebCore::Document::removeWindowInlineEventListenerForType): Ditto.
62214         Also added a call to setRemoved, which is needed here just as in
62215         other functions that remove.
62216         (WebCore::Document::removeWindowEventListener): Ditto.
62217         (WebCore::Document::hasWindowEventListener): Ditto.
62218
62219         * dom/Document.h: Changed RegisteredEventListenerList to
62220         RegisteredEventListeners.
62221
62222         * dom/Element.cpp:
62223         (WebCore::Element::attach): Use a function to access rare data instead
62224         of getting directly at the data field.
62225         (WebCore::Element::focus): Ditto.
62226         (WebCore::Element::cancelFocusAppearanceUpdate): Ditto.
62227
62228         * dom/ElementRareData.h: Use "using" to make things that are protected
62229         in NodeRareData be public here.
62230
62231         * dom/EventTarget.h: Removed include of DeprecatedValueList and
62232         related declearations that weren't needed. Tweaked the definitions
62233         of the forbidEventDispatch functions too.
62234
62235         * dom/EventTargetNode.cpp:
62236         (WebCore::EventTargetNode::EventTargetNode): Eliminated code that
62237         was used to initialized m_regdListeners.
62238         (WebCore::EventTargetNode::~EventTargetNode): Elminated delete of
62239         m_regdListeners. Changed code to use eventListeners() instead of
62240         m_regdListeners.
62241         (WebCore::EventTargetNode::eventListeners): Added.
62242         (WebCore::EventTargetNode::insertedIntoDocument): Use eventListeners.
62243         (WebCore::EventTargetNode::removedFromDocument): Ditto.
62244         (WebCore::EventTargetNode::willMoveToNewOwnerDocument): Ditto.
62245         (WebCore::EventTargetNode::didMoveToNewOwnerDocument): Ditto.
62246         (WebCore::EventTargetNode::addEventListener): Ditto.
62247         (WebCore::EventTargetNode::removeEventListener): Ditto.
62248         (WebCore::EventTargetNode::removeAllEventListeners): Ditto.
62249         Also added code to call setRemoved on all the listeners.
62250         (WebCore::EventTargetNode::handleLocalEvents): Ditto.
62251         (WebCore::EventTargetNode::dispatchGenericEvent): Fixed indentation.
62252         (WebCore::EventTargetNode::removeInlineEventListenerForType): Use
62253         the new event listeners vector. Also added missing call to setRemoved.
62254         (WebCore::EventTargetNode::inlineEventListenerForType): Ditto.
62255
62256         * dom/EventTargetNode.h: Added a new RegisteredEventListenerVector
62257         type and replaced the old localEventListeners function with a new
62258         eventListeners function. Removed m_regdListeners.
62259
62260         * dom/Node.cpp:
62261         (WebCore::Node::childNodes): Removed unneeded std prefix.
62262         (WebCore::Node::setFocus): Use function instead of going directly
62263         at rare data.
62264         (WebCore::Node::rareDataFocused): Ditto.
62265         (WebCore::Node::registerDynamicNodeList): Removed unneeded std prefix.
62266         (WebCore::Node::getElementsByName): Ditto.
62267         (WebCore::Node::getElementsByClassName): Ditto.
62268         (WebCore::Node::compareDocumentPosition): Ditto.
62269
62270         * dom/Node.h: Removed unneeded forward declaration of
62271         RegisteredEventListener. This is now in EventTargetNode.
62272
62273         * dom/NodeRareData.h: Renamed m_focused to m_isFocused and made it
62274         private. Made m_needsFocusAppearanceUpdateSoonAfterAttach private.
62275         Added listeners and ensureListeners functions as well as isFocused,
62276         setFocused, and focus-appearance functions. Made all data members private.
62277
62278         * dom/RegisteredEventListener.cpp: Removed operator ==.
62279         * dom/RegisteredEventListener.h: Removed operator == and !=.
62280
62281         * svg/SVGElement.cpp:
62282         (WebCore::hasLoadListener): Rewrote to work with the vector.
62283         * svg/SVGUseElement.cpp:
62284         (WebCore::SVGUseElement::transferEventListenersToShadowTree): Ditto.
62285
62286 2008-12-13  Holger Hans Peter Freyther  <zecke@selfish.org>
62287
62288         Reviewed by Dan Bernstein.
62289
62290         https://bugs.webkit.org/show_bug.cgi?id=22824
62291
62292         Change ENABLE(FONT_FAST_PATH) to USE(FONT_FAST_PATH). With r39206
62293         floatWidth always used the complex path causing a regression
62294         in the pixel tests.
62295
62296         * platform/graphics/Font.cpp:
62297         (WebCore::Font::floatWidth): Use the fast path again
62298
62299 2008-12-13  Dirk Schulze  <krit@webkit.org>
62300
62301         Reviewed by Darin Adler.
62302
62303         Fixes behavior of gradients on empty path in canvas/Cg
62304
62305         https://bugs.webkit.org/show_bug.cgi?id=22844
62306         [Cg] Canvas fill() draws gradients even without a path
62307
62308         Test: fast/canvas/canvas-gradient-without-path.html
62309
62310         * html/CanvasRenderingContext2D.cpp:
62311         (WebCore::CanvasRenderingContext2D::fill):
62312         (WebCore::CanvasRenderingContext2D::stroke):
62313
62314 2008-12-13  Kevin Ollivier  <kevino@theolliviers.com>
62315
62316         wx build fix.
62317
62318         * platform/graphics/wx/ImageSourceWx.cpp:
62319         (WebCore::ImageSource::filenameExtension):
62320
62321 2008-12-12  Brent Fulgham  <bfulgham@gmail.com>
62322
62323         Reviewed by Oliver Hunt.
62324
62325         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22805
62326
62327         Provides implementation of image dragging logic for Windows Cairo
62328         back-end.
62329
62330         * platform/win/DragImageCGWin.cpp:
62331         (WebCore::deallocContext): Add a generic CGContextRef destructor.
62332         * platform/win/DragImageCairoWin.cpp:
62333         (WebCore::deallocContext): Add a generic cairo_* destructor.
62334         (WebCore::allocImage):  New implementation to allocate a Cairo
62335         surface of a specified size.
62336         (WebCore::createCairoContextFromBitmap): New implementation to
62337         create a Cairo surface from a Windows BITMAP.
62338         (WebCore::scaleDragImage): Replace stub with implementation to
62339         actually create a scaled image.
62340         (WebCore::createDragImageFromImage): Replace stub with implementation
62341         to actually create an image.
62342
62343 2008-12-12  Dean Jackson  <dino@apple.com>
62344
62345         Reviewed by Darin Adler.
62346
62347         Expose WebKitAnimationEvent, WebKitTransitionEvent,
62348         WebKitCSSTransformValue, WebKitCSSKeyframeRule and
62349         WebKitCSSKeyframesRule to Window object.
62350         This required generating constructors for the event
62351         interfaces.
62352
62353         https://bugs.webkit.org/show_bug.cgi?id=20560
62354
62355         * dom/WebKitAnimationEvent.idl:
62356         * dom/WebKitTransitionEvent.idl:
62357         * page/DOMWindow.idl:
62358
62359 2008-12-12  Dave Moore  <davemoore@google.com>
62360
62361         Reviewed by Eric Seidel.
62362
62363         Fixed https://bugs.webkit.org/show_bug.cgi?id=22798
62364
62365         In Font::drawTextUsingSVGFont() a variable of type SVGTextRunWalkerDrawTextData
62366         is created on the stack (called data). One of its fields, charsConsumed, is
62367         unitialized, leading to random values after calling walk() on the
62368         SVGTextRunWalker created with it. I now initialize the variable
62369
62370         This bug was revealed in our Purify run. I don't know of any specific incorrect
62371         behavior caused by it but it would lead to the charsConsumed field having a
62372         a wrong value.
62373
62374         * svg/SVGFont.cpp:
62375         (WebCore::Font::drawTextUsingSVGFont):
62376
62377 2008-12-12  Beth Dakin  <bdakin@apple.com>
62378
62379         Rubber Stamped by Steve Falkenburg.
62380
62381         Build fix.
62382
62383         * platform/KURL.h:
62384
62385 2008-12-12  Brett Wilson  <brettw@chromium.org>
62386
62387         Reviewed by Darin Adler.
62388
62389         Add the ability so that Google-URL can optionally be used in a build
62390         of WebKit without changing the shared header. The guts of KURL are
62391         optionally ifdefed out, and the replacement code goes in a different
62392         header to avoid polluting KURL.h
62393
62394         * platform/KURL.cpp:
62395         * platform/KURL.h:
62396         (WebCore::KURL::string):
62397         (WebCore::KURL::operator const String&):
62398         (WebCore::KURL::operator JSC::UString):
62399         (WebCore::KURL::operator NSString*):
62400         (WebCore::KURL::parsed):
62401         (WebCore::KURL::utf8String):
62402         (WebCore::KURL::isNull):
62403         (WebCore::KURL::isEmpty):
62404         (WebCore::KURL::isValid):
62405         (WebCore::KURL::hostStart):
62406         (WebCore::KURL::hostEnd):
62407         (WebCore::KURL::pathStart):
62408         (WebCore::KURL::pathEnd):
62409         (WebCore::KURL::pathAfterLastSlash):
62410
62411 2008-12-11  Steve Falkenburg  <sfalken@apple.com>
62412
62413         Delete the previous timer-queue timer in the main thread, just prior to scheduling a new timer.
62414         The code previously called DeleteTimerQueueTimer in the timer callback proc.
62415
62416         The new technique simplifies the code, since we now create and delete timers on the
62417         same thread, and don't access the timer queue or timer handles in the callback.
62418         This allows us to remove some mutex use, and more importantly, it solves a race
62419         condition that was occuring between ChangeTimerQueueTimer and DeleteTimerQueueTimer.
62420
62421         Since the timer callback isn't passed the timer handle, we were retrieving that handle
62422         via a global. If the timer callback code was entered, but then a new timer was immediately
62423         scheduled (prior to the callback acquiring the mutex and calling DeleteTimerQueueTimer),
62424         there was a small window where the timer could be re-scheduled via ChangeTimerQueueTimer
62425         and then immediately deleted once the already running callback acquired the mutex and
62426         then called DeleteTimerQueueTimer. This resulted in the newly scheduled timer never firing.
62427
62428         Reviewed by Oliver Hunt.
62429
62430         * platform/win/SharedTimerWin.cpp:
62431         (WebCore::queueTimerProc): Don't delete the timer in the callback.
62432         (WebCore::setSharedTimerFireTime): Always delete and create the timer instead of using ChangeTimerQueueTimer.
62433         (WebCore::stopSharedTimer): Call DeleteTimerQueueTimer directly.
62434
62435 2008-12-12  Kai Brüning  <kai@granus.net>
62436
62437         Reviewed and tweaked by Darin Adler.
62438
62439         - fix https://bugs.webkit.org/show_bug.cgi?id=18205
62440           DOMNode objects are garbage collected although there are strong references
62441           <rdar://problem/6441200>
62442
62443         Fixes resurrection bug for wrapper objects by using an NSMapTable with zeroing weak
62444         memory for the wrapper reference for DOMWrapperCache (DOMInternal.mm),
62445         JSWrapperCache (WebScriptObject.mm) and wrapperCache (DOMRGBColor.mm).
62446         BUILDING_ON_TIGER is used to create a Leopard-only NSMapTable or an old-style
62447         procedural map table for Tiger systems.
62448
62449         No regression tests yet since we don't currently run any tests in GC mode.
62450
62451         * bindings/objc/DOMInternal.h: added WebCore::createWrapperCache for use by all three caches
62452         * bindings/objc/DOMInternal.mm:
62453         (WebCore::createWrapperCache): Contains the compile-time check for map table creation
62454         (WebCore::getDOMWrapper): HashMap -> NSMapTable
62455         (WebCore::addDOMWrapper): ditto
62456         (WebCore::removeDOMWrapper): ditto
62457         * bindings/objc/DOMObject.mm: removed [DOMObject finalize]
62458         * bindings/objc/DOMRGBColor.mm: removed [DOMRGBColor finalize]
62459         (WebCore::getWrapperForRGB): CFMutableDictionaryRef -> NSMapTable
62460         (WebCore::setWrapperForRGB): ditto
62461         (WebCore::removeWrapperForRGB): ditto
62462         * bindings/objc/WebScriptObject.mm:
62463         (WebCore::getJSWrapper): HashMap -> NSMapTable
62464         (WebCore::addJSWrapper): ditto
62465         (WebCore::removeJSWrapper): ditto
62466         (-[WebScriptObject finalize]): removed call of removeJSWrapper()
62467
62468 2008-12-12  Dimitri Glazkov  <dglazkov@chromium.org>
62469
62470         Reviewed by Alexey Proskuryakov.
62471
62472         https://bugs.webkit.org/show_bug.cgi?id=22813
62473         Remove unused references to JSDOMBinding, CallFrame, and JSLock.
62474
62475         * dom/Node.cpp: Removed CallFrame and JSLock header includes.
62476         * loader/FrameLoader.cpp: Removed JSDOMBinding header include.
62477
62478 2008-12-12  Holger Hans Peter Freyther  <zecke@selfish.org>
62479
62480         Reviewed by Simon Hausmann.
62481
62482         Update the WebKit.qrc and add a script to automatically generate the file.
62483
62484         With the way rcc and qmake work this can not be done at build time
62485         as the WebKit.qrc must sit inside the directory that contains the files
62486         and at build time we may not change the content of the source directory.
62487
62488         * inspector/front-end/WebKit.qrc: Updated with new script
62489
62490 2008-12-12  Oliver Hunt  <oliver@apple.com>
62491
62492         Reviewed by Alexey Proskuryakov.
62493
62494         REGRESSION: Canvas is broken in high dpi mode
62495         <rdar://problem/6432739> <https://bugs.webkit.org/show_bug.cgi?id=22823>
62496
62497         Simply made sure that we correctly scale the graphics context to
62498         account for the difference between logical and buffer resolution.
62499
62500         * html/HTMLCanvasElement.cpp:
62501         (WebCore::HTMLCanvasElement::createImageBuffer):
62502         (WebCore::HTMLCanvasElement::baseTransform):
62503
62504 2008-12-12  Tor Arne Vestbø  <tavestbo@trolltech.com>
62505
62506         Rubber-stamped by Oliver Hunt.
62507
62508         Share PluginView::paintMissingPluginIcon() between ports
62509
62510         Also, enable this feature for Qt/X11, Qt/Mac and GTK
62511
62512         * plugins/PluginView.cpp:
62513         (WebCore::PluginView::paintMissingPluginIcon):
62514         * plugins/gtk/PluginViewGtk.cpp:
62515         (WebCore::PluginView::paint):
62516         * plugins/mac/PluginViewMac.cpp:
62517         (WebCore::PluginView::paint):
62518         * plugins/qt/PluginViewQt.cpp:
62519         (WebCore::PluginView::paint):
62520         * plugins/win/PluginViewWin.cpp:
62521
62522 2008-12-12  Tor Arne Vestbø  <tavestbo@trolltech.com>
62523
62524         Reviewed by Simon Hausmann.
62525
62526         [Qt/Mac] Implement PluginView::updatePluginWidget()
62527
62528         We should update the window and clip rect regardless of whether or
62529         not the plugin has been loaded, for example to ensure that the
62530         missing plugin image is placed correctly.
62531
62532         * plugins/mac/PluginViewMac.cpp:
62533         (WebCore::PluginView::setNPWindowIfNeeded):
62534         (WebCore::PluginView::updatePluginWidget):
62535
62536 2008-12-12  Tor Arne Vestbø  <tavestbo@trolltech.com>
62537
62538         Rubber-stamped by Oliver Hunt.
62539
62540         Make PluginView::updatePluginWidget() non-const
62541
62542         We can do this now since frameRectsChanged() is no longer const. This
62543         also allows us to get rid of the mutables in the PluginView.
62544
62545         * platform/qt/TemporaryLinkStubs.cpp:
62546         (PluginView::updatePluginWidget):
62547         * plugins/PluginView.h:
62548         * plugins/gtk/PluginViewGtk.cpp:
62549         (WebCore::PluginView::updatePluginWidget):
62550         * plugins/mac/PluginViewMac.cpp:
62551         (WebCore::PluginView::updatePluginWidget):
62552         * plugins/qt/PluginViewQt.cpp:
62553         (WebCore::PluginView::updatePluginWidget):
62554         * plugins/win/PluginViewWin.cpp:
62555         (WebCore::PluginView::updatePluginWidget):
62556         * plugins/wx/PluginViewWx.cpp:
62557         (WebCore::PluginView::updatePluginWidget):
62558
62559 2008-12-12  Tor Arne Vestbø  <tavestbo@trolltech.com>
62560
62561         Reviewed by Simon Hausmann.
62562
62563         Implement ImageSource::filenameExtension() for the Qt port
62564
62565         We're using QImageReader::imageFormat().toLower() to check
62566         that the image format is supported, and if it is we store
62567         the resulting extension when creating the ImageDecoderQt.
62568
62569         * platform/graphics/qt/ImageDecoderQt.cpp:
62570         (WebCore::ImageDecoderQt::create):
62571         (WebCore::ImageDecoderQt::ImageDecoderQt):
62572         (WebCore::ImageDecoderQt::imageFormat):
62573         * platform/graphics/qt/ImageDecoderQt.h:
62574         * platform/graphics/qt/ImageSourceQt.cpp:
62575         (WebCore::ImageSource::setData):
62576         (WebCore::ImageSource::filenameExtension):
62577
62578 2008-12-11  Stephanie Lewis  <slewis@apple.com>
62579
62580         Reviewed by Geoff Garen
62581
62582         Account for the size of the response and request headers as well as other overhead
62583         when calculating the size a resource takes up in the cache.  Halts unbounded
62584         growth in the cache.  Reduced stress test memory high water marks by > 50%.
62585
62586         Uses estimates gathered from the stress test to set the overhead size.
62587         A version of the patch was created that calculated most of the sizes, but it was
62588         decided that the patch was still at a basic level an estimate.  What gains it made
62589         in accuracy was offset by the complexity involved in creating and updating the
62590         estimate.
62591
62592         * loader/Cache.cpp:
62593         (WebCore::Cache::resourceAccessed):
62594         (WebCore::Cache::TypeStatistic::addResource):
62595         (WebCore::Cache::dumpLRULists):
62596         * loader/CachedResource.cpp:
62597         (WebCore::CachedResource::overheadSize):
62598         * loader/CachedResource.h:
62599         (WebCore::CachedResource::size):
62600
62601 2008-12-11  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
62602
62603         Reviewed by Holger Freyther.
62604
62605         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22814
62606
62607         Add <wml> image element support. Based on HTML/SVGImage{Element/Loader}, with
62608         the only difference that WML defines a second source attribute 'localsrc', that
62609         takes precedence over the 'src' attribute. If loading the 'localsrc' attribute
62610         fails, the user agent should try loading the 'src' attribute. If both fail the
62611         'alt' fallback content will be used - just like in HTML.
62612
62613         Fixes: fast/wml/img-localsrc.wml (<img> and 'localsrc' attribute)
62614                fast/wml/img-src-localsrc-alt.wml ('localsrc'/'src' fallback handling)
62615                fast/wml/img-src.wml (<img> and 'src' attribute)
62616
62617         * GNUmakefile.am:
62618         * WebCore.vcproj/WebCore.vcproj:
62619         * WebCore.xcodeproj/project.pbxproj:
62620         * rendering/HitTestResult.cpp:
62621         (WebCore::HitTestResult::altDisplayString):
62622         (WebCore::HitTestResult::absoluteImageURL):
62623         * rendering/RenderImage.cpp:
62624         (WebCore::RenderImage::updateAltText):
62625         * wml/WMLImageElement.cpp: Added.
62626         (WebCore::WMLImageElement::WMLImageElement):
62627         (WebCore::WMLImageElement::~WMLImageElement):
62628         (WebCore::WMLImageElement::mapToEntry):
62629         (WebCore::WMLImageElement::parseMappedAttribute):
62630         (WebCore::WMLImageElement::attach):
62631         (WebCore::WMLImageElement::createRenderer):
62632         (WebCore::WMLImageElement::insertedIntoDocument):
62633         (WebCore::WMLImageElement::isURLAttribute):
62634         (WebCore::WMLImageElement::imageSourceAttributeName):
62635         (WebCore::WMLImageElement::altText):
62636         * wml/WMLImageElement.h: Added.
62637         (WebCore::WMLImageElement::useFallbackAttribute):
62638         (WebCore::WMLImageElement::setUseFallbackAttribute):
62639         * wml/WMLImageLoader.cpp: Added.
62640         (WebCore::WMLImageLoader::WMLImageLoader):
62641         (WebCore::WMLImageLoader::~WMLImageLoader):
62642         (WebCore::WMLImageLoader::dispatchLoadEvent):
62643         (WebCore::WMLImageLoader::sourceURI):
62644         (WebCore::WMLImageLoader::notifyFinished):
62645         * wml/WMLImageLoader.h: Added.
62646         * wml/WMLTagNames.in:
62647
62648 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
62649
62650         Reviewed by Darin Adler.
62651
62652         https://bugs.webkit.org/show_bug.cgi?id=22043
62653
62654         Do not run into the WebCore::DocumentLoader::updateLoading
62655         ASSERT on Gtk+/CURL when trying to load tests from our LayoutTests.
62656
62657         Do not call setPrimaryLoadComplete when the
62658         activeDocumentLoader has already been replaced. This can happen
62659         when a script executed from within FramerLoader::didFinishLoading will
62660         navigate to another URL.
62661
62662         The assertion is caused by existing tests (e.g.
62663         fast/history/clicked-link-is-visited.html) reproducing this with
62664         network backends not equal to curl is tough or maybe not
62665         even possible.
62666
62667         * loader/DocumentLoader.cpp:
62668         (WebCore::DocumentLoader::setPrimaryLoadComplete):
62669
62670 2008-12-11  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
62671
62672         Reviewed by Eric Seidel.
62673
62674         - Remove some dead, commented-out code from WMLAElement.
62675         - Add missing virtual destructor for <noop>, as suggested by Alexey.
62676         - Refactor addHTMLAlignment in a static helper function to share with WML.
62677
62678         * html/HTMLElement.cpp:
62679         (WebCore::HTMLElement::addHTMLAlignment):
62680         (WebCore::HTMLElement::addHTMLAlignmentToStyledElement):
62681         * html/HTMLElement.h:
62682         * wml/WMLAElement.cpp:
62683         (WebCore::WMLAElement::defaultEventHandler):
62684         * wml/WMLNoopElement.cpp:
62685         (WebCore::WMLNoopElement::~WMLNoopElement):
62686         * wml/WMLNoopElement.h:
62687
62688 2008-12-10  Oliver Hunt  <oliver@apple.com>
62689
62690         Reviewed by Adele Peterson.
62691
62692         <rdar://problem/6302405> Crash (null-deref) when using :before pseudoselector with content CSS rule in SVG
62693         <https://bugs.webkit.org/show_bug.cgi?id=22804>
62694
62695         This issue was caused by css generated content resulting in non-svg flowboxes
62696         being injected into SVG content.  As SVG spec does not describe behaviour in
62697         this case, and neither Opera nor Firefox displays such generated content, so
62698         now we make svg text layout and rendering just ignore any such content.
62699
62700         Test: svg/css/crash-css-generated-content.xhtml
62701
62702         * rendering/SVGRootInlineBox.cpp:
62703         (WebCore::SVGRootInlineBox::buildLayoutInformation):
62704         (WebCore::SVGRootInlineBox::layoutInlineBoxes):
62705         (WebCore::SVGRootInlineBox::buildTextChunks):
62706
62707 2008-12-11  Cameron Zwarich  <zwarich@apple.com>
62708
62709         Reviewed by Dave Hyatt.
62710
62711         Bug 21256: REGRESSION (r36906): horizontally repeating image leaves ghosts when vertical scrolling
62712         <https://bugs.webkit.org/show_bug.cgi?id=21256>
62713         <rdar://problem/6362978>
62714
62715         The ScrollView refactoring in r36906 caused the ScrollView and the
62716         platform widget to disagree about whether optimizing scrolling via
62717         blitting is allowed. The easiest way to fix this is to make ScrollView
62718         simply ask the platform widget whether this is safe on platforms that
62719         are affected.
62720
62721         It is not possible to write a layout test for this bug because it
62722         involves the back/forward cache.
62723
62724         * platform/ScrollView.cpp:
62725         (WebCore::ScrollView::ScrollView):
62726         (WebCore::ScrollView::setCanBlitOnScroll):
62727         (WebCore::ScrollView::canBlitOnScroll):
62728         (WebCore::ScrollView::platformSetCanBlitOnScroll):
62729         (WebCore::ScrollView::platformCanBlitOnScroll):
62730         * platform/ScrollView.h:
62731         * platform/mac/ScrollViewMac.mm:
62732         (WebCore::ScrollView::platformSetCanBlitOnScroll):
62733         (WebCore::ScrollView::platformCanBlitOnScroll):
62734         * platform/wx/ScrollViewWx.cpp:
62735         (WebCore::ScrollView::platformSetCanBlitOnScroll):
62736         (WebCore::ScrollView::platformCanBlitOnScroll):
62737
62738 2008-12-11  Brent Fulgham  <bfulgham@gmail.com>
62739
62740         Reviewed by Adam Roben.
62741
62742         https://bugs.webkit.org/show_bug.cgi?id=22808
62743
62744         Correct build break due to malformed XML in Visual Studio project
62745         following @r39205 change.
62746
62747         * WebCore.vcproj/WebCore.vcproj: Correct file entry so project loads.
62748
62749 2008-12-10  Chris Marrin  <cmarrin@apple.com>
62750
62751         Reviewed by Dave Hyatt.
62752
62753         Fixed https://bugs.webkit.org/show_bug.cgi?id=22738
62754
62755         This gets rid of the per-animation timers which were used when an animation
62756         started, ended and looped. Their job is now done by the main AnimationController's
62757         timer. It is now set to fire as needed. For instance, if there is a delay, it will
62758         fire after the delay time and then every 30ms to run the animation. The start, loop
62759         and end events are generated as needed during the firing of this timer.
62760
62761         I had to add one more bit of code. When animation timers used to fire the animation events.
62762         This would always happen from the RunLoop, so any style changes that happened in the
62763         event handler would get picked up on the next updateRendering() call. But now the start
62764         event is generated during the styleIsAvailable() call, which is in the middle of the
62765         updateRendering() cycle. And calling an event handler in the middle of updateRendering()
62766         is not allowed and causes style changes to get missed. We already have a mechanism in
62767         AnimationController to defer updateRendering() calls. So I added logic to defer all
62768         event handling to there. Now, I put any request for event handling into a list and ask
62769         for a deferred updateRendering() call. When that deferred timer fires, I go through that
62770         list, send all the events and then call updateRendering().
62771
62772         * page/animation/AnimationBase.cpp:
62773         (WebCore::AnimationBase::AnimationBase):
62774         (WebCore::AnimationBase::updateStateMachine):
62775         (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
62776         (WebCore::AnimationBase::willNeedService):
62777         (WebCore::AnimationBase::goIntoEndingOrLoopingState):
62778         * page/animation/AnimationBase.h:
62779         * page/animation/AnimationController.cpp:
62780         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
62781         (WebCore::AnimationControllerPrivate::updateRenderingDispatcherFired):
62782         (WebCore::AnimationControllerPrivate::addEventToDispatch):
62783         (WebCore::AnimationControllerPrivate::animationTimerFired):
62784         (WebCore::AnimationController::addEventToDispatch):
62785         * page/animation/AnimationController.h:
62786         * page/animation/CompositeAnimation.cpp:
62787         (WebCore::CompositeAnimationPrivate::updateTransitions):
62788         (WebCore::CompositeAnimationPrivate::willNeedService):
62789         (WebCore::CompositeAnimationPrivate::getAnimationForProperty):
62790         (WebCore::CompositeAnimation::willNeedService):
62791         (WebCore::CompositeAnimation::getAnimationForProperty):
62792         * page/animation/CompositeAnimation.h:
62793         * page/animation/ImplicitAnimation.cpp:
62794         (WebCore::ImplicitAnimation::animate):
62795         (WebCore::ImplicitAnimation::onAnimationEnd):
62796         (WebCore::ImplicitAnimation::sendTransitionEvent):
62797         * page/animation/ImplicitAnimation.h:
62798         * page/animation/KeyframeAnimation.cpp:
62799         (WebCore::KeyframeAnimation::animate):
62800         (WebCore::KeyframeAnimation::sendAnimationEvent):
62801         * page/animation/KeyframeAnimation.h:
62802         (WebCore::KeyframeAnimation::setUnanimatedStyle):
62803
62804 2008-12-11  Simon Hausmann  <simon.hausmann@nokia.com>
62805
62806         Fix the Qt build with an empty filenameExtension() implementation.
62807
62808         * platform/graphics/qt/ImageSourceQt.cpp:
62809         (WebCore::ImageSource::filenameExtension):
62810
62811 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
62812
62813         Reviewed by Simon Hausmann.
62814
62815         Fix crash in the cairo implementation of the SVGPaintServer
62816
62817         For SVGFonts the RenderObject can be zero. The existing SVGFont
62818         test cases is exposing this bug. Qt and other ports have fixed
62819         this issue by adding null checks as well.
62820
62821         * svg/graphics/cairo/SVGPaintServerCairo.cpp:
62822         (WebCore::SVGPaintServer::renderPath):
62823
62824 2008-12-11  Holger Freyther  <zecke@selfish.org>
62825
62826         Reviewed by Simon Hausmann.
62827
62828         https://bugs.webkit.org/show_bug.cgi?id=20953
62829
62830         Make the Qt port follow the Win, Mac, Gtk+ port in regard to Font
62831         handling. FontQt.cpp from now on is only implementing the complex path. Create
62832         FontFallbackListQt.cpp and FontPlatformDataQt.cpp to work within
62833         the framework set by the Font code.
62834
62835         Sharing the Font.cpp implementation allows the Qt port to support
62836         the CSS font faces and SVG fonts.
62837
62838         Split out the Qt4.3 Font handling into FonQt43.cpp to allow to more
62839         easily deprecate it.
62840
62841         This commit is removing a lot of #ifdefs from Font.h as the Qt Font
62842         implementation is now in line with the rest of WebCore.
62843
62844         * WebCore.pro:
62845         * platform/graphics/Font.h: Remove #ifdefs
62846         (WebCore::Font::letterSpacing):
62847         (WebCore::Font::setLetterSpacing):
62848         (WebCore::Font::isPlatformFont):
62849         * platform/graphics/FontFallbackList.h:
62850         * platform/graphics/SimpleFontData.cpp:
62851         (WebCore::SimpleFontData::SimpleFontData):
62852         (WebCore::SimpleFontData::platformGlyphInit): There is no GlyphCache
62853         on Qt, move the initialisation over.
62854         (WebCore::SimpleFontData::~SimpleFontData):
62855         * platform/graphics/SimpleFontData.h:
62856         (WebCore::SimpleFontData::getQtFont):
62857         * platform/graphics/qt/FontCacheQt.cpp:
62858         (WebCore::FontCache::getCachedFontPlatformData): Remove unused parameter
62859         (WebCore::FontCache::releaseFontData): Add to build
62860         * platform/graphics/qt/FontCustomPlatformData.cpp:
62861         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
62862         (WebCore::FontCustomPlatformData::fontPlatformData):
62863         (WebCore::createFontCustomPlatformData):
62864         * platform/graphics/qt/FontCustomPlatformData.h:
62865         * platform/graphics/qt/FontFallbackListQt.cpp: Added.
62866         (WebCore::FontFallbackList::FontFallbackList):
62867         (WebCore::FontFallbackList::invalidate):
62868         (WebCore::FontFallbackList::releaseFontData):
62869         (WebCore::FontFallbackList::determinePitch):
62870         (WebCore::FontFallbackList::fontDataAt):
62871         (WebCore::FontFallbackList::fontDataForCharacters):
62872         (WebCore::FontFallbackList::setPlatformFont):
62873         * platform/graphics/qt/FontPlatformData.h:
62874         (WebCore::FontPlatformData::font):
62875         (WebCore::FontPlatformData::size):
62876         * platform/graphics/qt/FontPlatformDataQt.cpp: Added.
62877         (WebCore::FontPlatformData::FontPlatformData):
62878         * platform/graphics/qt/FontQt.cpp:
62879         (WebCore::Font::drawComplexText):
62880         (WebCore::Font::floatWidthForComplexText):
62881         (WebCore::Font::offsetForPositionForComplexText):
62882         (WebCore::Font::selectionRectForComplexText):
62883         (WebCore::Font::font):
62884         * platform/graphics/qt/FontQt43.cpp: Added. Moved Qt4.3 code from FontQt.cpp
62885         (WebCore::Font::drawComplexText):
62886         (WebCore::Font::floatWidthForComplexText):
62887         (WebCore::Font::offsetForPositionForComplexText):
62888         (WebCore::Font::selectionRectForComplexText):
62889         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
62890         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
62891         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
62892         * platform/graphics/qt/SimpleFontDataQt.cpp:
62893         (WebCore::SimpleFontData::determinePitch):
62894         (WebCore::SimpleFontData::containsCharacters):
62895         (WebCore::SimpleFontData::platformInit):
62896         (WebCore::SimpleFontData::platformGlyphInit):
62897         (WebCore::SimpleFontData::platformDestroy):
62898         * platform/qt/RenderThemeQt.cpp:
62899         (WebCore::RenderThemeQt::adjustButtonStyle): Avoid crashes.
62900
62901 2008-12-11  Holger Freyther  <zecke@selfish.org>
62902
62903         Reviewed by Simon Hausmann.
62904
62905         https://bugs.webkit.org/show_bug.cgi?id=20953
62906
62907         For Qt it is not pratical to have a FontCache and GlyphPageTreeNode
62908         implementation. This is one of the reasons why the Qt port is currently not
62909         using WebCore/platform/graphics/Font.cpp. By allowing to not use
62910         the simple/fast-path the Qt port will be able to use it.
62911
62912         Introduce USE(FONT_FAST_PATH) and define it for every port but the
62913         Qt one.
62914
62915         * platform/graphics/Font.cpp:
62916         (WebCore::Font::drawText):
62917         (WebCore::Font::floatWidth):
62918         (WebCore::Font::selectionRectForText):
62919         (WebCore::Font::offsetForPosition):
62920         * platform/graphics/Font.h:
62921
62922 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
62923
62924         Reviewed by Darin Adler.
62925
62926         https://bugs.webkit.org/show_bug.cgi?id=20953
62927
62928         Split out the font fast path from Fast.cpp into FontFastPath.cpp. This
62929         will allow the Qt port to share most of WebCore::Font
62930         implementation but the fast path. Qt does not provide the API to get
62931         individual Glyphs making the fast path hard to support.
62932
62933
62934         * GNUmakefile.am:
62935         * WebCore.vcproj/WebCore.vcproj:
62936         * WebCore.xcodeproj/project.pbxproj:
62937         * WebCoreSources.bkl:
62938         * platform/graphics/Font.cpp:
62939         * platform/graphics/FontFastPath.cpp: Added.
62940         (WebCore::Font::glyphDataForCharacter):
62941
62942 2008-12-11  Robert Carr  <racarr@svn.gnome.org>
62943
62944         Reviewed by Holger Freyther.
62945
62946         https://bugs.webkit.org/show_bug.cgi?id=22560
62947
62948         Code in PlatformScreenGtk for screenDepth and screenRect can not
62949         assume that the platformWindow for the widget has a valid "window"
62950         member. For example in the case of, a new browser view opening as a
62951         child of a GtkNotebook, but never being switched to, or manually
62952         realized. Solve by using the toplevel window of the widget, rather
62953         than the widget itself.
62954
62955         * platform/gtk/PlatformScreenGtk.cpp:
62956         (WebCore::screenDepth):
62957         (WebCore::screenRect):
62958
62959 2008-12-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
62960
62961         Reviewed by Darin Adler and Holger Freyther.
62962
62963         Make Widget::frameRectsChanged() and overrides non-const
62964
62965         This will hopefully allow us to get rid of some of the mutables in
62966         the classes that react to the callback by changing their own state.
62967
62968         * platform/ScrollView.cpp:
62969         (WebCore::ScrollView::frameRectsChanged):
62970         * platform/ScrollView.h:
62971         * platform/Widget.h:
62972         (WebCore::Widget::frameRectsChanged):
62973         * platform/gtk/ScrollbarGtk.cpp: Remove non-const version since
62974         this was more complex and did the same thing, changed const of
62975         the leftover frameRectsChanged() method.
62976         (ScrollbarGtk::frameRectsChanged):
62977         * platform/gtk/ScrollbarGtk.h:
62978         * plugins/PluginView.cpp:
62979         (WebCore::PluginView::frameRectsChanged):
62980         * plugins/PluginView.h:
62981
62982 2008-12-11  Holger Hans Peter Freyther  <zecke@selfish.org>
62983
62984         Reviewed and implemented with Tor Arne Vestbø.
62985
62986         Reimplement RenderTheme::caretBlinkInterval for Qt.
62987
62988         The QApplication::cursorFlashTime is in milliseconds and describes
62989         the whole cycle while WebCore expects half a cycle.
62990
62991         * platform/qt/RenderThemeQt.cpp:
62992         (WebCore::RenderThemeQt::caretBlinkInterval):
62993         * platform/qt/RenderThemeQt.h:
62994
62995 2008-12-09  Trenton Schulz <trenton.schulz@nokia.com>
62996
62997         Reviewed by Tor Arne Vestbø.
62998
62999         [Qt/Mac] Don't call HIGetScaleFactor() if we're not on Tiger or better
63000
63001         * plugins/mac/PluginViewMac.cpp:
63002         (WebCore::tigerOrBetter):
63003         (WebCore::PluginView::globalMousePosForPlugin):
63004
63005 2008-12-10  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
63006
63007         Reviewed by Eric Seidel and George Staikos.
63008
63009         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22799
63010
63011         Add WML <template> support. The <template> element is specified at deck-level
63012         and declares a template for all <card> elements in the document.
63013
63014         * GNUmakefile.am:
63015         * WebCore.vcproj/WebCore.vcproj:
63016         * WebCore.xcodeproj/project.pbxproj:
63017         * editing/htmlediting.cpp:
63018         (WebCore::canHaveChildrenForEditing): Treat <do> just like a <button>.
63019         * wml/WMLCardElement.cpp:
63020         (WebCore::WMLCardElement::WMLCardElement):
63021         (WebCore::WMLCardElement::setTemplateElement):
63022         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
63023         (WebCore::WMLCardElement::handleDeckLevelTaskOverridesIfNeeded):
63024         * wml/WMLCardElement.h:
63025         (WebCore::WMLCardElement::templateElement):
63026         * wml/WMLDoElement.cpp:
63027         (WebCore::WMLDoElement::insertedIntoDocument):
63028         * wml/WMLDocument.cpp:
63029         (WebCore::WMLDocument::finishedParsing):
63030         * wml/WMLErrorHandling.cpp:
63031         (WebCore::errorMessageForErrorCode):
63032         * wml/WMLErrorHandling.h:
63033         (WebCore::):
63034         * wml/WMLEventHandlingElement.cpp:
63035         (WebCore::WMLEventHandlingElement::~WMLEventHandlingElement):
63036         * wml/WMLEventHandlingElement.h:
63037         (WebCore::WMLEventHandlingElement::doElements):
63038         * wml/WMLTagNames.in:
63039         * wml/WMLTemplateElement.cpp: Added.
63040         (WebCore::WMLTemplateElement::WMLTemplateElement):
63041         (WebCore::WMLTemplateElement::~WMLTemplateElement):
63042         (WebCore::WMLTemplateElement::parseMappedAttribute):
63043         (WebCore::WMLTemplateElement::registerTemplatesInDocument):
63044         * wml/WMLTemplateElement.h: Added.
63045         * wml/WMLTimerElement.cpp:
63046         (WebCore::WMLTimerElement::timerFired):
63047
63048 2008-12-09  Dmitry Titov  <dimich@chromium.org>
63049
63050         Reviewed by Darin Adler.
63051
63052         Fix memory leak - need to call stopActiveDOMObjects
63053         when cached pages get destroyed.
63054         https://bugs.webkit.org/show_bug.cgi?id=22753
63055
63056         * dom/Document.cpp:
63057         (WebCore::Document::detach):
63058
63059 2008-12-10  Alice Liu  <alice.liu@apple.com>
63060
63061         Manual test for https://bugs.webkit.org/show_bug.cgi?id=20685
63062
63063         Reviewed by Darin Adler.
63064
63065         * manual-tests/drag-image-to-desktop.html: Added.
63066
63067 2008-12-10  Alice Liu  <alice.liu@apple.com>
63068
63069         fixed https://bugs.webkit.org/show_bug.cgi?id=20685
63070
63071         Reviewed by Darin Adler.
63072
63073         Manual test case is manual-tests/drag-image-to-desktop.html
63074
63075         Added new files to projects
63076         * WebCore.vcproj/WebCore.vcproj:
63077         * WebCore.xcodeproj/project.pbxproj:
63078
63079         * page/DragController.cpp:
63080         (WebCore::DragController::startDrag):
63081         * platform/MIMETypeRegistry.cpp:
63082         (WebCore::initializeSupportedImageMIMETypes):
63083         (WebCore::initializeSupportedImageMIMETypesForEncoding):
63084
63085         These changes add a method to obtain the extension for an image
63086         * platform/graphics/BitmapImage.cpp:
63087         (WebCore::BitmapImage::filenameExtension):
63088         * platform/graphics/BitmapImage.h:
63089         * platform/graphics/Image.h:
63090         (WebCore::Image::filenameExtension):
63091         * platform/graphics/ImageSource.h:
63092         * platform/graphics/cairo/ImageSourceCairo.cpp:
63093         (WebCore::ImageSource::filenameExtension):
63094         * platform/graphics/cg/ImageSourceCG.cpp:
63095         (WebCore::ImageSource::filenameExtension):
63096
63097         These changes added a utility that returns the preferred extension for a UTI
63098         * platform/graphics/cg/ImageSourceCG.h: Added.
63099         * platform/graphics/cg/ImageSourceCGMac.mm: Added.
63100         (WebCore::MIMETypeForImageSourceType):
63101         (WebCore::preferredExtensionForImageSourceType):
63102         * platform/graphics/cg/ImageSourceCGWin.cpp: Added.
63103         (WebCore::MIMETypeForImageSourceType):
63104         (WebCore::preferredExtensionForImageSourceType):
63105
63106         * platform/mac/MIMETypeRegistryMac.mm:
63107         moved getMIMETypeForUTI to ImageSourceCGMac.mm
63108
63109         Ask image for its file extension instead of relying on MIME type and file path
63110         * platform/win/ClipboardWin.cpp:
63111         (WebCore::createGlobalImageFileDescriptor):
63112
63113         Remove extraneous code from getPreferredExtensionForMIMEType.
63114         Also moved getMIMETypeForUTI to ImageSourceCGWin.cpp
63115         * platform/win/MIMETypeRegistryWin.cpp:
63116         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
63117
63118 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
63119
63120         Reviewed by Antti Koivisto
63121
63122         <rdar://problem/6431224>
63123
63124         When updating the value of a slider, don't mark the parents
63125         as needing layout, because the size of the slider can never
63126         change. This fixes full-page repaints in some cases.
63127
63128         * rendering/RenderSlider.cpp:
63129         (WebCore::RenderSlider::updateFromElement):
63130
63131 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
63132
63133         Potential build fix. The forward declaration of FloatPoint should
63134         be inside the WebCore namespace.
63135
63136         * platform/graphics/FloatPoint3D.h:
63137
63138 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
63139
63140         Reviewed by Sam Weinig.
63141
63142         https://bugs.webkit.org/show_bug.cgi?id=22793
63143
63144         Cleanup FloatPoint3D: inline the getters and setters,
63145         fix a potential divide-by-zero in normalize(), and add
63146         a FloatPoint constructor.
63147
63148         * platform/graphics/FloatPoint3D.cpp:
63149         (WebCore::FloatPoint3D::FloatPoint3D):
63150         (WebCore::FloatPoint3D::normalize):
63151         * platform/graphics/FloatPoint3D.h:
63152         (WebCore::FloatPoint3D::x):
63153         (WebCore::FloatPoint3D::setX):
63154         (WebCore::FloatPoint3D::y):
63155         (WebCore::FloatPoint3D::setY):
63156         (WebCore::FloatPoint3D::z):
63157         (WebCore::FloatPoint3D::setZ):
63158
63159 2008-12-09  Julien Chaffraix  <jchaffraix@webkit.org>
63160
63161         Reviewed by Eric Seidel.
63162
63163         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
63164         https://bugs.webkit.org/show_bug.cgi?id=22665
63165
63166         - Removed setCreatedByParser from style and link elements.
63167
63168         - Removed XMLTokenizer::eventuallyMarkAsCreatedByParser.
63169
63170         * dom/XMLTokenizer.cpp:
63171         * dom/XMLTokenizer.h:
63172         * dom/XMLTokenizerLibxml2.cpp:
63173         (WebCore::XMLTokenizer::startElementNs):
63174         * dom/XMLTokenizerQt.cpp:
63175         (WebCore::XMLTokenizer::parseStartElement):
63176         * html/HTMLElementFactory.cpp:
63177         (WebCore::linkConstructor):
63178         (WebCore::styleConstructor):
63179         * html/HTMLLinkElement.cpp:
63180         (WebCore::HTMLLinkElement::HTMLLinkElement):
63181         * html/HTMLLinkElement.h:
63182         * html/HTMLStyleElement.cpp:
63183         (WebCore::HTMLStyleElement::HTMLStyleElement):
63184         * html/HTMLStyleElement.h:
63185         * html/HTMLTagNames.in:
63186         * svg/SVGStyleElement.cpp:
63187         (WebCore::SVGStyleElement::SVGStyleElement):
63188         * svg/SVGStyleElement.h:
63189         * svg/svgtags.in:
63190
63191 2008-12-10  Brady Eidson  <beidson@apple.com>
63192
63193         Reviewed by Darin
63194
63195         https://bugs.webkit.org/show_bug.cgi?id=22194 and <rdar://problem/6388378> -
63196         Dialog when going back to a page from whence you submitted a form
63197
63198         http://trac.webkit.org/changeset/37317 changed the manner in which headers are added to
63199         http requests, which caused the networking layer to have an incomplete set of headers
63200         just before consulting the Policy Delegate.  This caused a cache miss and incorrectly made
63201         us believe we'd be resubmitting the form.
63202
63203         * loader/FrameLoader.cpp:
63204         (WebCore::FrameLoader::loadItem):  Being careful to maintain the new behavior required by
63205           the Origin header mechanism as discussed in bug 22194, restore the previous behavior of
63206           setting all the headers before the networking layer is asked about the cache lookup.
63207
63208 2008-12-10  Dimitri Glazkov  <dglazkov@chromium.org>
63209
63210         Reviewed by Timothy Hatcher.
63211
63212         Add back ability to end all profiling via console by invoking profileEnd
63213         with no arguments.
63214
63215         * page/Console.cpp:
63216         (WebCore::Console::profileEnd): Removed title null-checking and
63217             subsequent early exit.
63218
63219 2008-12-10  Pierre-Olivier Latour  <pol@apple.com>
63220
63221         Reviewed by Darin Adler.
63222
63223         KeyframeAnimation::animate() needs to compute the elapsed animation time
63224         properly taking into account its paused state.
63225
63226         https://bugs.webkit.org/show_bug.cgi?id=22773
63227
63228         Test: animations/animation-drt-api-multiple-keyframes.html
63229
63230         * page/animation/KeyframeAnimation.cpp:
63231         (WebCore::KeyframeAnimation::animate):
63232
63233 2008-12-10  Simon Fraser  <simon.fraser@apple.com>
63234
63235         Reviewed by Dan Bernstein
63236
63237         Part of
63238         https://bugs.webkit.org/show_bug.cgi?id=22570
63239
63240         Rename methods on RenderLayer for clarity:
63241             clearClipRects -> clearClipRectsIncludingDescendants
63242             clearClipRect  -> clearClipRects
63243
63244         * rendering/RenderBox.cpp:
63245         (WebCore::RenderBox::destroy):
63246         * rendering/RenderLayer.cpp:
63247         (WebCore::RenderLayer::updateLayerPosition):
63248         (WebCore::RenderLayer::removeOnlyThisLayer):
63249         (WebCore::RenderLayer::insertOnlyThisLayer):
63250         (WebCore::RenderLayer::clearClipRectsIncludingDescendants):
63251         (WebCore::RenderLayer::clearClipRects):
63252         * rendering/RenderLayer.h:
63253         * rendering/RenderObject.cpp:
63254         (WebCore::RenderObject::styleWillChange):
63255         * rendering/RenderWidget.cpp:
63256         (WebCore::RenderWidget::destroy):
63257
63258 2008-12-10  Kevin Ollivier  <kevino@theolliviers.com>
63259
63260         wx build fix after the script call stack/frame additions.
63261
63262         * WebCoreSources.bkl:
63263
63264 2008-12-10   Srinivasa Rao M. Hamse  <msrinirao@gmail.com>
63265
63266         Reviewed by Holger Freyther.
63267
63268         F1-F12 key mappings for WebKit Gtk Port
63269
63270         * platform/gtk/KeyEventGtk.cpp:
63271         (WebCore::windowsKeyCodeForKeyEvent):
63272
63273 2008-12-10  Enrico Ros  <enrico.ros@m31.com>
63274
63275         Reviewed by Simon Hausmann.
63276
63277         Fix the Qt build when SVG is disabled. A broken dependancy caused
63278         unnecessary rebuilds even with no changes.
63279
63280         * WebCore.pro: fix a broken build dependancy
63281
63282 2008-12-10  Hironori Bono  <hbono@chromium.org>
63283
63284         Reviewed by Alexey Proskuryakov.
63285
63286         Bug 21820: Unable to enter the Tamil UNICODE Characters via Thamizha Phonetic IME
63287         https://bugs.webkit.org/show_bug.cgi?id=21820
63288
63289         <rdar://problem/5683248> Typing backspace to delete a diacritical mark also deletes the character before (Arabic)
63290         <rdar://problem/5702038> Backspace removes Thai Character in wrong sequence
63291
63292         Tests: editing/deleting/delete-ligature-001.html
63293                editing/deleting/delete-ligature-002.html
63294                editing/deleting/delete-ligature-003.html
63295
63296         * editing/TypingCommand.cpp:
63297         (WebCore::TypingCommand::deleteKeyPressed): Delete only the last character
63298         of a ligature which consists of multiple Unicode characters when deleting it with
63299         a backspace key.
63300
63301 2008-12-10  David Levin  <levin@chromium.org>
63302
63303         Reviewed by Alexey Proskuryakov.
63304
63305         https://bugs.webkit.org/show_bug.cgi?id=22177
63306         Fix the windows build by removing calls to notifyFormStateChanged
63307         where they didn't appear in the original reviewed patch.
63308
63309         * html/HTMLInputElement.cpp:
63310         (WebCore::HTMLInputElement::type):
63311         (WebCore::HTMLInputElement::attach):
63312
63313 2008-12-09  Adam Barth  <abarth@webkit.org>
63314
63315         Reviewed by Sam Weinig.
63316
63317         Add ScriptController::updateSecurityOrigin to notify the bindings
63318         that a document's securityOrigin has been updated.  This is used by
63319         V8 to update its security context.
63320
63321         * bindings/js/ScriptController.cpp:
63322         (WebCore::ScriptController::updateSecurityOrigin):
63323         * bindings/js/ScriptController.h:
63324         * dom/Document.cpp:
63325         (WebCore::Document::setDomain):
63326
63327 2008-12-09  Eric Seidel  <eric@webkit.org>
63328
63329         No review, build fix only.
63330
63331         Fix a few config issues to let the Chromium Windows WebCore build get further.
63332
63333         * WebCore.scons:
63334
63335 2008-12-09  Brett Wilson  <brettw@chromium.org>
63336
63337         Reviewed by Dave Hyatt.
63338
63339         https://bugs.webkit.org/show_bug.cgi?id=22177
63340
63341         Add a callback on ChromeClient that the state of form elements on
63342         the page has changed. This is to allow clients implementing session
63343         saving to know when the current state is dirty.
63344
63345         * html/HTMLInputElement.cpp:
63346         (WebCore::notifyFormStateChanged):
63347         (WebCore::HTMLInputElement::setInputType):
63348         (WebCore::HTMLInputElement::type):
63349         (WebCore::HTMLInputElement::attach):
63350         (WebCore::HTMLInputElement::setValue):
63351         (WebCore::HTMLInputElement::setValueFromRenderer):
63352         (WebCore::HTMLInputElement::setFileListFromRenderer):
63353         * html/HTMLSelectElement.cpp:
63354         (WebCore::HTMLSelectElement::setSelectedIndex):
63355         * html/HTMLTextAreaElement.cpp:
63356         (WebCore::notifyFormStateChanged):
63357         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
63358         (WebCore::HTMLTextAreaElement::updateValue):
63359         (WebCore::HTMLTextAreaElement::setValue):
63360         * loader/EmptyClients.h:
63361         (WebCore::EmptyChromeClient::formStateDidChange):
63362         * page/ChromeClient.h:
63363
63364 2008-12-09  Sam Weinig  <sam@webkit.org>
63365
63366         Reviewed by Darin Adler.
63367
63368         https://bugs.webkit.org/show_bug.cgi?id=19762
63369
63370         Fix intermittent crash in buildbot. The CSSCursorImageValues and
63371         SVGCursorElements held onto raw SVGElement pointers without any
63372         guarantee that the element is still around.
63373
63374         We did not fix the design that resulted in this issue, we just fixed
63375         the pointer lifetimes.
63376
63377         * css/CSSCursorImageValue.cpp:
63378         (WebCore::CSSCursorImageValue::~CSSCursorImageValue): Zero out the back pointers.
63379         (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Set up a back pointer.
63380         (WebCore::CSSCursorImageValue::removeReferencedElement): Added. Used when the element
63381         is destroyed.
63382         * css/CSSCursorImageValue.h: Added removeReferencedElement.
63383
63384         * svg/SVGCursorElement.cpp:
63385         (WebCore::SVGCursorElement::~SVGCursorElement): Zero out the back pointers.
63386         (WebCore::SVGCursorElement::addClient): Set up a back pointer.
63387         (WebCore::SVGCursorElement::removeClient): Zero out the back pointer.
63388
63389         * svg/SVGElement.cpp:
63390         (WebCore::SVGElement::SVGElement): Initialize back pointers to zero.
63391         (WebCore::SVGElement::~SVGElement): Call both the element and cursor image value
63392         to remove the element from their sets.
63393         * svg/SVGElement.h:
63394         (WebCore::SVGElement::setCursorElement): Added.
63395         (WebCore::SVGElement::setCursorImageValue): Added.
63396
63397 2008-12-09  David Hyatt  <hyatt@apple.com>
63398
63399         Add code that will create custom CSS scrollbars from the <body>, the document element (<html>) and the owning
63400         frame/iframe.  If any of them set a custom style, it will be used.  The scrollbars do not update dynamically
63401         yet as you switch from page to page (until they are destroyed and recreated).
63402
63403         Reviewed by Adele
63404
63405         * page/FrameView.cpp:
63406         (WebCore::FrameView::createScrollbar):
63407
63408 2008-12-09  Ojan Vafai  <ojan@chromium.org>
63409
63410         Reviewed by Dave Hyatt.
63411
63412         https://bugs.webkit.org/show_bug.cgi?id=22689
63413         Match Firefox button metrics on Windows.
63414
63415         * rendering/RenderButton.cpp:
63416         (WebCore::RenderButton::addChild):
63417         (WebCore::RenderButton::styleDidChange):
63418         (WebCore::RenderButton::setupInnerStyle):
63419         * rendering/RenderButton.h:
63420         * rendering/RenderTheme.cpp:
63421         (WebCore::RenderTheme::adjustButtonInnerStyle):
63422         * rendering/RenderTheme.h:
63423         * rendering/RenderThemeWin.cpp:
63424         (WebCore::RenderThemeWin::adjustSliderThumbSize):
63425         (WebCore::RenderThemeWin::adjustButtonInnerStyle):
63426         * rendering/RenderThemeWin.h:
63427
63428 2008-12-09  Darin Fisher  <darin@chromium.org>
63429
63430         Fixes bustages.
63431
63432         https://bugs.webkit.org/show_bug.cgi?id=22631
63433         Adding missing files from previous commit.
63434
63435         * bindings/js/ScriptCallFrame.cpp: Added.
63436         (WebCore::ScriptCallFrame::ScriptCallFrame):
63437         (WebCore::ScriptCallFrame::~ScriptCallFrame):
63438         (WebCore::ScriptCallFrame::argumentAt):
63439         * bindings/js/ScriptCallFrame.h: Added.
63440         (WebCore::ScriptCallFrame::functionName):
63441         (WebCore::ScriptCallFrame::sourceURL):
63442         (WebCore::ScriptCallFrame::lineNumber):
63443         (WebCore::ScriptCallFrame::argumentCount):
63444         * bindings/js/ScriptCallStack.cpp: Added.
63445         (WebCore::ScriptCallStack::ScriptCallStack):
63446         (WebCore::ScriptCallStack::~ScriptCallStack):
63447         (WebCore::ScriptCallStack::at):
63448         (WebCore::ScriptCallStack::size):
63449         (WebCore::ScriptCallStack::initialize):
63450         * bindings/js/ScriptCallStack.h: Added.
63451         (WebCore::ScriptCallStack::state):
63452
63453 2008-12-09  Dimitri Glazkov  <dglazkov@chromium.org>
63454
63455         Reviewed by Timothy Hatcher.
63456
63457         https://bugs.webkit.org/show_bug.cgi?id=22631
63458         Streamline Console.cpp, abstract out the use of JSC::ExecState and
63459         JSC::ArgList by introducing ScriptCallFrame and ScriptCallStack
63460         abstractions.
63461
63462         * GNUmakefile.am: Added ScriptCallFrame and ScriptCallStack to build
63463         * WebCore.pro:  Added ScriptCallFrame and ScriptCallStack to build
63464         * WebCore.vcproj/WebCore.vcproj: Added ScriptCallFrame and
63465         ScriptCallStack to project
63466         * WebCore.xcodeproj/project.pbxproj: Added ScriptCallFrame and
63467         ScriptCallStack to project
63468         * bindings/js/JSConsoleCustom.cpp: Remove custom bindings.
63469         * bindings/js/ScriptCallFrame.cpp: Added.
63470         (WebCore::ScriptCallFrame::ScriptCallFrame):
63471         (WebCore::ScriptCallFrame::~ScriptCallFrame):
63472         (WebCore::ScriptCallFrame::argumentAt):
63473         * bindings/js/ScriptCallFrame.h: Added.
63474         (WebCore::ScriptCallFrame::functionName):
63475         (WebCore::ScriptCallFrame::sourceURL):
63476         (WebCore::ScriptCallFrame::lineNumber):
63477         (WebCore::ScriptCallFrame::argumentCount):
63478         * bindings/js/ScriptCallStack.cpp: Added.
63479         (WebCore::ScriptCallStack::ScriptCallStack):
63480         (WebCore::ScriptCallStack::~ScriptCallStack):
63481         (WebCore::ScriptCallStack::at):
63482         (WebCore::ScriptCallStack::size):
63483         (WebCore::ScriptCallStack::initialize):
63484         * bindings/js/ScriptCallStack.h: Added.
63485         (WebCore::ScriptCallStack::ScriptCallStack):
63486         (WebCore::ScriptCallStack::~ScriptCallStack):
63487         (WebCore::ScriptCallStack::state):
63488         (WebCore::ScriptCallStack::at):
63489         (WebCore::ScriptCallStack::size):
63490         (WebCore::ScriptCallStack::initialize):
63491         * bindings/js/ScriptString.h: Added missing PlatformString include.
63492         (WebCore::ScriptString::ScriptString): Added default constructor.
63493         (WebCore::ScriptString::operator==): Added equality operator.
63494         (WebCore::ScriptString::operator!=):
63495         * bindings/js/ScriptValue.cpp: Added isNull and isUndefined.
63496         (WebCore::ScriptValue::isNull):
63497         (WebCore::ScriptValue::isUndefined):
63498         * bindings/js/ScriptValue.h: Added isNull and isUndefined
63499         * bindings/scripts/CodeGeneratorJS.pm: Add handling for
63500         CustomArgumentHandling attribute.
63501         * inspector/InspectorController.cpp: Refactored to use
63502         ScriptCallFrame and ScriptCallStack.
63503         (WebCore::ConsoleMessage::ConsoleMessage):
63504         (WebCore::InspectorController::addMessageToConsole):
63505         (WebCore::InspectorController::startGroup):
63506         (WebCore::InspectorController::addScriptConsoleMessage):
63507         (WebCore::InspectorController::count):
63508         (WebCore::InspectorController::startTiming):
63509         (WebCore::InspectorController::stopTiming):
63510         * inspector/InspectorController.h: Refactored to use ScriptCallFrame and
63511         ScriptCallStack.
63512         * inspector/front-end/Console.js: Modified to use argument value itself
63513         rather than f.name for stack trace.
63514         * page/Console.cpp: Refactored to use ScriptCallFrame and
63515         ScriptCallStack.
63516         (WebCore::getFirstArgumentAsString):
63517         (WebCore::Console::addMessage):
63518         (WebCore::Console::debug):
63519         (WebCore::Console::error):
63520         (WebCore::Console::info):
63521         (WebCore::Console::log):
63522         (WebCore::Console::dir):
63523         (WebCore::Console::dirxml):
63524         (WebCore::Console::trace):
63525         (WebCore::Console::assertCondition):
63526         (WebCore::Console::count):
63527         (WebCore::Console::profile):
63528         (WebCore::Console::profileEnd):
63529         (WebCore::Console::time):
63530         (WebCore::Console::timeEnd):
63531         (WebCore::Console::group):
63532         (WebCore::Console::warn):
63533         * page/Console.h:
63534         * page/Console.idl: Removed Custom attributes, added
63535         CustomArgumentHandling attributes, and tweaked argument defs.
63536
63537 2008-12-09  Darin Adler  <darin@apple.com>
63538
63539         Try to fix non-Mac builds.
63540
63541         * GNUmakefile.am: Added NavigatorBase.
63542         * WebCore.pro: Ditto.
63543         * WebCore.scons: Ditto.
63544         * WebCore.vcproj/WebCore.vcproj: Ditto.
63545         * WebCoreSources.bkl: Ditto.
63546
63547         Unrelated tweak sitting in my tree.
63548
63549         * bindings/objc/DOMAbstractView.mm: Remove pointless override of finalize method.
63550
63551 2008-12-09  Darin Adler  <darin@apple.com>
63552
63553         Try to fix Tiger build.
63554
63555         * platform/network/mac/NetworkStateNotifierMac.cpp: Declare CFRunLoopGetMain.
63556
63557 2008-12-09  Alexey Proskuryakov  <ap@webkit.org>
63558
63559         Reviewed by Darin Adler.
63560
63561         https://bugs.webkit.org/show_bug.cgi?id=22719
63562         Implement Navigator object in Workers
63563
63564         Test: fast/workers/worker-navigator.html
63565
63566         * DerivedSources.make:
63567         * GNUmakefile.am:
63568         * WebCore.pro:
63569         * WebCore.vcproj/WebCore.vcproj:
63570         * WebCore.xcodeproj/project.pbxproj:
63571         Added WorkerNavigator sources.
63572
63573         * bindings/js/JSWorkerContext.cpp: (WebCore::jsWorkerContextNavigator):
63574         Worker.navigator returns a WoerkerNavigator object (it is named just Navigator in the spec,
63575         but it is not the same interface that is available on Windows).
63576
63577         * dom/Worker.cpp:
63578         (WebCore::Worker::notifyFinished):
63579         * dom/WorkerContext.cpp:
63580         (WebCore::WorkerContext::WorkerContext):
63581         (WebCore::WorkerContext::navigator):
63582         * dom/WorkerContext.h:
63583         (WebCore::WorkerContext::create):
63584         * dom/WorkerThread.cpp:
63585         (WebCore::WorkerThread::create):
63586         (WebCore::WorkerThread::WorkerThread):
63587         (WebCore::WorkerThread::workerThread):
63588         * dom/WorkerThread.h:
63589         Pass a pre-computed user agent string into worker, because it cannot call a client method
63590         directly, and pre-computing is easier than sending a synchronous message to the main thread.
63591
63592         * page/Navigator.cpp:
63593         * page/Navigator.h:
63594         * page/NavigatorBase.cpp: Added.
63595         * page/NavigatorBase.h: Added.
63596         Factor out common (and uncommon, but very similar) functionality into a base class.
63597
63598         * page/WorkerNavigator.cpp: Added.
63599         * page/WorkerNavigator.h: Added.
63600         * page/WorkerNavigator.idl: Added.
63601         Per Web Workers and HTML5, implement a small subset of what we currently have in Window.Navigator.
63602
63603         * platform/network/NetworkStateNotifier.cpp: (WebCore::networkStateNotifier):
63604         Make networkStateNotifier() static constructor thread safe. The object is created on the
63605         thread it is first called from, while callbacks are registered on the main thread. Calls to
63606         onLine() from other threads are safe, because it is just loading a boolean.
63607
63608         * platform/network/mac/NetworkStateNotifierMac.cpp: (WebCore::NetworkStateNotifier::NetworkStateNotifier):
63609         Schedule notifications on main event loop, not the current one.
63610
63611 2008-12-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
63612
63613         Rubber-stamped by Alexey Proskuryakov.
63614
63615         Forgot to update Qt/WML build - add some new files to the build.
63616
63617         * WebCore.pro:
63618
63619 2008-12-09  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
63620
63621         Reviewed by Alexey Proskuryakov.
63622
63623         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22637
63624
63625         Implement the GET method for WMLGoElement, and some test covering it's behaviour.
63626         Update all build systems supporting WML that haven't been updated since a while.
63627
63628         Add WMLPostField stub implementation, needed for implementing POST method.
63629
63630         Tests: wml/go-task-get-method-external-deck-with-href.html
63631                wml/go-task-get-method-external-deck.html
63632                wml/go-task-get-method-same-deck.html
63633
63634         * GNUmakefile.am:
63635         * WebCore.vcproj/WebCore.vcproj:
63636         * WebCore.xcodeproj/project.pbxproj:
63637         * dom/Document.cpp:
63638         (WebCore::Document::resetWMLPageState):
63639         * wml/WMLCardElement.cpp:
63640         * wml/WMLCardElement.h:
63641         * wml/WMLEventHandlingElement.cpp:
63642         (WebCore::WMLCardElement::registerDoElement):
63643         * wml/WMLEventHandlingElement.h:
63644         * wml/WMLGoElement.cpp:
63645         (WebCore::WMLGoElement::WMLGoElement):
63646         (WebCore::WMLGoElement::registerPostfieldElement):
63647         (WebCore::WMLGoElement::parseMappedAttribute):
63648         (WebCore::WMLGoElement::executeTask):
63649         (WebCore::WMLGoElement::parseContentType):
63650         (WebCore::WMLGoElement::preparePOSTRequest):
63651         (WebCore::WMLGoElement::prepareGETRequest):
63652         * wml/WMLGoElement.h:
63653         * wml/WMLPostfieldElement.cpp: Added.
63654         (WebCore::WMLPostfieldElement::WMLPostfieldElement):
63655         (WebCore::WMLPostfieldElement::parseMappedAttribute):
63656         (WebCore::WMLPostfieldElement::insertedIntoDocument):
63657         * wml/WMLPostfieldElement.h: Added.
63658         (WebCore::WMLPostfieldElement::name):
63659         (WebCore::WMLPostfieldElement::value):
63660         * wml/WMLTagNames.in:
63661
63662 2008-12-08  Peter Kasting  <pkasting@google.com>
63663
63664         Reviewed by Anders Carlsson.
63665
63666         https://bugs.webkit.org/show_bug.cgi?id=16814
63667         Allow ports to disable ActiveX->NPAPI conversion for Media Player.
63668         Improve handling of miscellaneous ActiveX objects.
63669
63670         * rendering/RenderPartObject.cpp:
63671         (WebCore::mapClassIdToServiceType):
63672         (WebCore::shouldUseChildEmbedOfObject):
63673         (WebCore::RenderPartObject::updateWidget):
63674
63675 2008-12-08  Darin Adler  <darin@apple.com>
63676
63677         Reviewed by John Sullivan.
63678
63679         - fix https://bugs.webkit.org/show_bug.cgi?id=22409
63680           REGRESSION: cmd-shift-left/right don't switch tabs, instead select text
63681
63682         Tests: editing/execCommand/enabling-and-selection-2.html
63683                editing/execCommand/enabling-and-selection.html
63684
63685         * editing/EditorCommand.cpp: Updated table to use these functions by their new names.
63686         (WebCore::enabledVisibleSelection): Renamed this to reflect its new algorithm.
63687         An invisible selection with a position that selects no characters doesn't count
63688         as a visible selection.
63689         (WebCore::enabledVisibleSelectionAndMark): Ditto.
63690
63691 2008-12-08  David Kilzer  <ddkilzer@apple.com>
63692
63693         Remove duplicate entries from WebCore project.
63694
63695         Reviewed by Eric Seidel.
63696
63697         Bug 22555: Sort "children" sections in Xcode project files.
63698         <https://bugs.webkit.org/show_bug.cgi?id=22555>
63699
63700         Recipe for removing duplicates:
63701         $ ./WebKitTools/Scripts/sort-Xcode-project-file project.pbxproj
63702         $ uniq < project.pbxproj | diff -u project.pbxproj - | patch -p0 project.pbxproj
63703
63704         * WebCore.xcodeproj/project.pbxproj: Removed duplicates.
63705
63706 2008-12-08  Julien Chaffraix  <jchaffraix@webkit.org>
63707
63708         Reviewed by Darin Adler.
63709
63710         Bug 22665: Remove setCreatedByParser(bool) from the few elements that use it
63711         https://bugs.webkit.org/show_bug.cgi?id=22665
63712
63713         Remove setCreatedByParser from the script elements (HTML and SVG).
63714
63715         * dom/XMLTokenizer.cpp:
63716         (WebCore::XMLTokenizer::eventuallyMarkAsParserCreated): Removed
63717         call to setCreatedByParser for the 2 elements.
63718
63719         * dom/make_names.pl: Modified to call the constructor with
63720         the createByParser parameter if 'constructorNeedsCreatedByParser'
63721         is set.
63722
63723         * html/HTMLElementFactory.cpp:
63724         (WebCore::scriptConstructor):
63725         * html/HTMLScriptElement.cpp:
63726         (WebCore::HTMLScriptElement::HTMLScriptElement):
63727         * html/HTMLScriptElement.h:
63728         * html/HTMLTagNames.in: Added constructorNeedsCreatedByParser
63729         to script.
63730         * svg/SVGScriptElement.cpp:
63731         (WebCore::SVGScriptElement::SVGScriptElement):
63732         * svg/SVGScriptElement.h:
63733         * svg/svgtags.in: Added constructorNeedsCreatedByParser
63734         to script.
63735
63736 2008-12-08  David Kilzer  <ddkilzer@apple.com>
63737
63738         Bug 22555: Sort "children" sections in Xcode project files
63739
63740         <https://bugs.webkit.org/show_bug.cgi?id=22555>
63741
63742         Reviewed by Eric Seidel.
63743
63744         * WebCore.xcodeproj/project.pbxproj: Sorted.
63745         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj: Sorted.
63746
63747 2008-12-08  Tony Chang  <tony@chromium.org>
63748
63749         Reviewed by Eric Seidel.
63750
63751         Add a bool to GraphicsContext so that shadows can ignore
63752         transformations.  This is needed by HTML canvas element
63753         where the spec says shadows are applied w/o transformations.
63754         https://bugs.webkit.org/show_bug.cgi?id=22580
63755
63756         No functional changes, thus no tests.
63757
63758         * html/CanvasRenderingContext2D.cpp:
63759         (WebCore::CanvasRenderingContext2D::setShadow):
63760         (WebCore::CanvasRenderingContext2D::applyShadow):
63761         * html/HTMLCanvasElement.cpp:
63762         (WebCore::HTMLCanvasElement::createImageBuffer):
63763         * platform/graphics/GraphicsContext.cpp:
63764         (WebCore::GraphicsContext::setShadowsIgnoreTransforms):
63765         * platform/graphics/GraphicsContext.h:
63766         * platform/graphics/GraphicsContextPrivate.h:
63767         (WebCore::GraphicsContextState::GraphicsContextState):
63768         * platform/graphics/cg/GraphicsContextCG.cpp:
63769         (WebCore::GraphicsContext::setPlatformShadow):
63770
63771 2008-12-08  Julien Chaffraix  <jchaffraix@webkit.org>
63772
63773         Reviewed by Darin Adler.
63774
63775         Bug 17897: Not Rendering Images Imported from XHTML Document
63776         <rdar://problem/5827614>
63777
63778         When we were loading document with XMLHttpRequest that contained images, the images
63779         would not be fetched as they would not be displayed. However if we inserted such
63780         an image element into a rendered document, we would not fetch the image and thus never
63781         display it.
63782
63783         Now we check if the image has been loaded when we insert an HTMLImageElement into a
63784         document.
63785         To enable this, the image loader has an error flag. To avoid doing several attempts
63786         when we know that the image is in error, we store the failed URL.
63787         However Firefox and Opera ignore errors when the 'src' attribute changes and thus
63788         we also have an updateFromElementIgnoringPreviousError to match the other browser.
63789
63790         Tests: http/tests/misc/image-blocked-src-change.html
63791                http/tests/misc/image-blocked-src-no-change.html
63792                http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded-svg.svg
63793                http/tests/xmlhttprequest/xmlhttprequest-image-not-loaded.html
63794
63795         * html/HTMLEmbedElement.cpp:
63796         (WebCore::HTMLEmbedElement::parseMappedAttribute): Changed to call updateFromElementIgnoringPreviousError.
63797         * html/HTMLImageElement.cpp:
63798         (WebCore::HTMLImageElement::parseMappedAttribute): Ditto.
63799         (WebCore::HTMLImageElement::insertedIntoDocument): Call updateFromElement if we do not have
63800         an image.
63801
63802         * html/HTMLInputElement.cpp:
63803         (WebCore::HTMLInputElement::parseMappedAttribute): Changed to call updateFromElementIgnoringPreviousError.
63804         * html/HTMLObjectElement.cpp:
63805         (WebCore::HTMLObjectElement::parseMappedAttribute): Ditto.
63806         * html/HTMLVideoElement.cpp:
63807         (WebCore::HTMLVideoElement::parseMappedAttribute): Ditto.
63808         * loader/ImageLoader.cpp:
63809         (WebCore::ImageLoader::setImage): Added an assertion.
63810         (WebCore::ImageLoader::updateFromElement): Added a check for load error (to avoid displaying
63811         multiple errors in the console for a single image load).
63812
63813         (WebCore::ImageLoader::updateFromElementIgnoringPreviousError): This method clears previous error
63814         before calling updateFromElement.
63815
63816         (WebCore::ImageLoader::notifyFinished): Added an assertion.
63817         * loader/ImageLoader.h:
63818         * svg/SVGImageElement.cpp:
63819         (WebCore::SVGImageElement::svgAttributeChanged): Changed to call updateFromElementIgnoringPreviousError.
63820
63821 2008-12-08  David Hyatt  <hyatt@apple.com>
63822
63823         Make scrollbar creation virtual on ScrollView so that FrameView can have the capability to create
63824         custom CSS scrollbars.
63825
63826         Reviewed by Eric Seidel
63827
63828         * page/FrameView.cpp:
63829         (WebCore::FrameView::createScrollbar):
63830         * page/FrameView.h:
63831         * platform/ScrollView.cpp:
63832         (WebCore::ScrollView::setHasHorizontalScrollbar):
63833         (WebCore::ScrollView::setHasVerticalScrollbar):
63834         (WebCore::ScrollView::createScrollbar):
63835         * platform/ScrollView.h:
63836
63837 2008-12-08  Dan Bernstein  <mitz@apple.com>
63838
63839         Reviewed by John Sullivan.
63840
63841         - WebCore part of tracking the global history item for a WebView
63842
63843         * loader/FrameLoader.cpp:
63844         (WebCore::FrameLoader::checkLoadCompleteForThisFrame): Set the page's
63845         global history item to the current back/forward list item, respecting
63846         private browsing mode.
63847         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Ditto in this
63848         case.
63849         (WebCore::FrameLoader::goToItem): Ditto in this case.
63850         (WebCore::FrameLoader::updateHistoryForStandardLoad): If this load
63851         creates a new global history item, set the page's global history item
63852         to it.
63853         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory):
63854         Ditto.
63855         * page/Page.cpp:
63856         (WebCore::Page::setGlobalHistoryItem): Added this setter.
63857         * page/Page.h: Added a m_globalHistoryItem data member.
63858         (WebCore::Page::globalHistoryItem): Added this getter.
63859
63860 2008-12-08  Antti Koivisto  <antti@apple.com>
63861
63862         Reviewed by Dave Kilzer.
63863
63864         A few stylistic fixes suggested by Dave Kilzer.
63865
63866         * css/CSSPrimitiveValue.cpp:
63867         (WebCore::CSSPrimitiveValue::createIdentifier):
63868         (WebCore::CSSPrimitiveValue::create):
63869
63870 2008-12-08  Alexey Proskuryakov  <ap@webkit.org>
63871
63872         Reviewed by Darin Adler.
63873
63874         https://bugs.webkit.org/show_bug.cgi?id=22737
63875         Try debug version when locating CFNetwork
63876
63877         * platform/network/cf/ResourceRequestCFNet.cpp:
63878         (WebCore::findCFNetworkModule):
63879         (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
63880         (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
63881         * platform/network/win/CookieJarCFNetWin.cpp:
63882         (WebCore::findCFNetworkModule):
63883         (WebCore::findIsHTTPOnlyFunction):
63884
63885 2008-12-08  Aaron Boodman  <aa@chromium.org>
63886
63887         Reviewed by Stephanie Lewis.
63888
63889         https://bugs.webkit.org/show_bug.cgi?id=22301
63890         Make dispatchDidFinishLoading() always fire before didFinishLoadForFrame().
63891
63892         * loader/FrameLoader.cpp:
63893         (WebCore::FrameLoader::finishedParsing):
63894
63895 2008-12-08  Trenton Schulz <trenton.schulz@nokia.com>
63896
63897         Rubber-stamped by Tor Arne Vestbø.
63898
63899         Fix build warning on Mac
63900
63901         * platform/text/mac/StringImplMac.mm:
63902
63903 2008-12-08  Simon Hausmann  <simon.hausmann@nokia.com>
63904
63905         Fix the Qt build.
63906
63907         * bridge/qt/qt_runtime.cpp:
63908         (JSC::Bindings::convertQVariantToValue): Pass JSGlobalData to RegExp
63909           constructor.
63910
63911 2008-12-08  Oliver Hunt  <oliver@apple.com>
63912
63913         Reviewed by Alexey Proskuryakov.
63914
63915         Bug 22398: r39059: Crash when clearing webkitTransitionDuration in webkitTransitionEnd event handler
63916         <rdar://problem/6426245> REGRESSION(r39059): Reproducible crash when clearing webkitTransitionDuration in webkitTransitionEnd event handler (22398)
63917
63918         This regression was caused by r39059 replacing the protector on the active
63919         animation with a protector on just the composition.  It turns out that both
63920         protectors are necessary.
63921
63922         Test: transitions/transition-duration-cleared-in-transitionend-crash.html
63923
63924         * page/animation/AnimationBase.cpp:
63925         (WebCore::AnimationBase::animationTimerCallbackFired):
63926
63927 2008-12-08  Dmitry Titov  <dimich@chromium.org>
63928
63929         Reviewed by Alexey Proskuryakov.
63930
63931         https://bugs.webkit.org/show_bug.cgi?id=22732
63932         Remove unused files PausedTimeouts.h,.cpp
63933         The change that deprecated this code was https://bugs.webkit.org/show_bug.cgi?id=22620
63934
63935         * GNUmakefile.am:
63936         * WebCore.pro:
63937         * WebCore.scons:
63938         * WebCore.vcproj/WebCore.vcproj:
63939         * WebCore.xcodeproj/project.pbxproj:
63940         * WebCoreSources.bkl:
63941           These are build files which had PausedTimeouts referenced.
63942
63943         * bindings/js/PausedTimeouts.cpp: Removed.
63944         * bindings/js/PausedTimeouts.h: Removed.
63945         * bindings/js/ScriptController.cpp: Removed '#include'
63946         * page/Chrome.cpp: Removed '#include' and unused variable.
63947
63948 2008-12-07  Simon Fraser  <simon.fraser@apple.com>
63949
63950         Reviewed by Dan Bernstein
63951
63952         https://bugs.webkit.org/show_bug.cgi?id=22594
63953
63954         Fix issues which break reading inline style for -webkit-transition
63955         and -webkit-transform-origin.
63956
63957         Test: fast/css/transform-inline-style.html
63958
63959         * css/CSSMutableStyleDeclaration.cpp:
63960         (WebCore::CSSMutableStyleDeclaration::getPropertyValue): Add cases
63961         for CSSPropertyWebkitTransformOrigin and CSSPropertyWebkitTransition
63962         so that these shorthand properties are returned correctly.
63963         * css/CSSParser.cpp:
63964         (WebCore::CSSParser::parseAnimationProperty): Create CSSPrimitiveValues
63965         with the correct CSSValueAll and CSSValueNone identifiers, not the
63966         RenderStyle-level cAnimateAll, cAnimateNone.
63967         * css/CSSStyleSelector.cpp:
63968         (WebCore::CSSStyleSelector::mapAnimationProperty): Special-case CSSValueAll
63969         and CSSValueNone values to set cAnimateAll and cAnimateNone transition properties.
63970
63971 2008-12-07  Antti Koivisto  <antti@apple.com>
63972
63973         Reviewed by Darin Adler.
63974
63975         https://bugs.webkit.org/show_bug.cgi?id=22717
63976         Make CSS values use less memory
63977
63978         Share CSSPrimitiveValue objects for commonly used values including
63979         - idents
63980         - colors
63981         - small integers
63982
63983         This reduces the amount CSSPrimitiveValue instances by > 80%.
63984
63985         * css/CSSPrimitiveValue.cpp:
63986         (WebCore::CSSPrimitiveValue::createIdentifier):
63987         (WebCore::CSSPrimitiveValue::createColor):
63988         (WebCore::CSSPrimitiveValue::create):
63989         * css/CSSPrimitiveValue.h:
63990         (WebCore::CSSPrimitiveValue::create):
63991
63992 2008-12-07  Antti Koivisto  <antti@apple.com>
63993
63994         Reviewed by Darin Adler.
63995
63996         https://bugs.webkit.org/show_bug.cgi?id=22717
63997         Make CSS values use less memory
63998
63999         Get CSSValues off from the common StyleBase base class. They don't
64000         need a parent pointer or anything else there and there is no real
64001         reason to have them in same data structures with other CSSOM objects.
64002
64003         Disabled (instead of refactoring around the lack of common base) the ability
64004         to have style declaration blocks as CSS variable values. They don't exist in
64005         the spec so I wasn't sure if they have future or not. It would not be hard to
64006         get them back. CSS variables are in any case an experimental feature and
64007         not enabled by default.
64008
64009         * css/CSSInitialValue.h:
64010         (WebCore::CSSInitialValue::createExplicit):
64011         (WebCore::CSSInitialValue::createImplicit):
64012         * css/CSSParser.cpp:
64013         (WebCore::CSSParser::addVariableDeclarationBlock):
64014         * css/CSSParser.h:
64015         * css/CSSValue.h:
64016         (WebCore::CSSValue::~CSSValue):
64017         (WebCore::CSSValue::parserValue):
64018         * css/CSSVariablesDeclaration.cpp:
64019         (WebCore::CSSVariablesDeclaration::CSSVariablesDeclaration):
64020         (WebCore::CSSVariablesDeclaration::getVariableValue):
64021         (WebCore::CSSVariablesDeclaration::removeVariable):
64022         (WebCore::CSSVariablesDeclaration::addParsedVariable):
64023         (WebCore::CSSVariablesDeclaration::getParsedVariable):
64024         (WebCore::CSSVariablesDeclaration::getParsedVariableDeclarationBlock):
64025         * css/CSSVariablesDeclaration.h:
64026         (WebCore::CSSVariablesDeclaration::create):
64027         * css/StyleBase.h:
64028
64029 2008-12-07  Dirk Schulze  <krit@webkit.org>
64030
64031         Reviewed by Oliver Hunt.
64032
64033         Add gradient and pattern support for strokeRect on canvas/Cg.
64034
64035         Canvas strokeRect() doesn't support gradients
64036         https://bugs.webkit.org/show_bug.cgi?id=19790
64037
64038         Test: fast/canvas/canvas-strokeRect.html
64039
64040         * platform/graphics/cg/GraphicsContextCG.cpp:
64041         (WebCore::GraphicsContext::strokeRect):
64042
64043 2008-12-06  Dirk Schulze  <krit@webkit.org>
64044
64045         Reviewed by Oliver Hunt.
64046
64047         Add support for setTransform() in canvas.
64048
64049         <canvas> lacks transform() and setTransform()
64050         https://bugs.webkit.org/show_bug.cgi?id=16604
64051
64052         Test: fast/canvas/canvas-setTransform.html
64053
64054         * html/CanvasRenderingContext2D.cpp:
64055         (WebCore::CanvasRenderingContext2D::State::State):
64056         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
64057         (WebCore::CanvasRenderingContext2D::setFillStyle):
64058         (WebCore::CanvasRenderingContext2D::scale):
64059         (WebCore::CanvasRenderingContext2D::rotate):
64060         (WebCore::CanvasRenderingContext2D::translate):
64061         (WebCore::CanvasRenderingContext2D::transform):
64062         (WebCore::CanvasRenderingContext2D::setTransform):
64063         (WebCore::CanvasRenderingContext2D::beginPath):
64064         (WebCore::CanvasRenderingContext2D::closePath):
64065         (WebCore::CanvasRenderingContext2D::moveTo):
64066         (WebCore::CanvasRenderingContext2D::lineTo):
64067         (WebCore::CanvasRenderingContext2D::quadraticCurveTo):
64068         (WebCore::CanvasRenderingContext2D::bezierCurveTo):
64069         (WebCore::CanvasRenderingContext2D::arcTo):
64070         (WebCore::CanvasRenderingContext2D::arc):
64071         (WebCore::CanvasRenderingContext2D::rect):
64072         (WebCore::CanvasRenderingContext2D::fill):
64073         (WebCore::CanvasRenderingContext2D::stroke):
64074         (WebCore::CanvasRenderingContext2D::clip):
64075         (WebCore::CanvasRenderingContext2D::isPointInPath):
64076         (WebCore::CanvasRenderingContext2D::clearRect):
64077         (WebCore::CanvasRenderingContext2D::fillRect):
64078         (WebCore::CanvasRenderingContext2D::strokeRect):
64079         (WebCore::CanvasRenderingContext2D::drawImage):
64080         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
64081         (WebCore::CanvasRenderingContext2D::willDraw):
64082         (WebCore::CanvasRenderingContext2D::drawTextInternal):
64083         * html/CanvasRenderingContext2D.h:
64084         * html/CanvasRenderingContext2D.idl:
64085         * html/HTMLCanvasElement.cpp:
64086         (WebCore::HTMLCanvasElement::baseTransform):
64087         * html/HTMLCanvasElement.h:
64088         * platform/graphics/ImageBuffer.h:
64089         (WebCore::ImageBuffer::baseTransform):
64090
64091 2008-12-06  Antti Koivisto  <antti@apple.com>
64092
64093         Reviewed by Darin Adler.
64094
64095         Also copy m_implicit field. Darin wanted this change commited separately.
64096
64097         * css/CSSProperty.h:
64098         (WebCore::CSSProperty::operator=):
64099
64100 2008-12-06  Antti Koivisto  <antti@apple.com>
64101
64102         Reviewed by Darin Adler.
64103
64104         https://bugs.webkit.org/show_bug.cgi?id=22379
64105         Make CSSOM use less memory
64106
64107         Use vector instead of a double linked list for properties in CSSMutableStyleDeclaration.
64108
64109         Taught setter functions to use existing slots to avoid memory moves, plus some
64110         other optimizations.
64111
64112         * WebCore.xcodeproj/project.pbxproj:
64113         * css/CSSMutableStyleDeclaration.cpp:
64114         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
64115         (WebCore::CSSMutableStyleDeclaration::operator=):
64116         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
64117         (WebCore::CSSMutableStyleDeclaration::removeShorthandProperty):
64118         (WebCore::CSSMutableStyleDeclaration::removeProperty):
64119         (WebCore::CSSMutableStyleDeclaration::getPropertyPriority):
64120         (WebCore::CSSMutableStyleDeclaration::getPropertyShorthand):
64121         (WebCore::CSSMutableStyleDeclaration::isPropertyImplicit):
64122         (WebCore::CSSMutableStyleDeclaration::setProperty):
64123         (WebCore::CSSMutableStyleDeclaration::setPropertyInternal):
64124         (WebCore::CSSMutableStyleDeclaration::setStringProperty):
64125         (WebCore::CSSMutableStyleDeclaration::setImageProperty):
64126         (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
64127         (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
64128         (WebCore::CSSMutableStyleDeclaration::addParsedProperty):
64129         (WebCore::CSSMutableStyleDeclaration::setLengthProperty):
64130         (WebCore::CSSMutableStyleDeclaration::length):
64131         (WebCore::CSSMutableStyleDeclaration::item):
64132         (WebCore::CSSMutableStyleDeclaration::cssText):
64133         (WebCore::CSSMutableStyleDeclaration::setCssText):
64134         (WebCore::CSSMutableStyleDeclaration::merge):
64135         (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
64136         (WebCore::CSSMutableStyleDeclaration::copy):
64137         (WebCore::CSSMutableStyleDeclaration::findPropertyWithId):
64138         * css/CSSMutableStyleDeclaration.h:
64139         (WebCore::CSSMutableStyleDeclarationConstIterator::operator*):
64140         (WebCore::CSSMutableStyleDeclarationConstIterator::operator->):
64141         (WebCore::CSSMutableStyleDeclarationConstIterator::operator!=):
64142         (WebCore::CSSMutableStyleDeclarationConstIterator::operator==):
64143         (WebCore::CSSMutableStyleDeclaration::create):
64144         (WebCore::CSSMutableStyleDeclaration::begin):
64145         (WebCore::CSSMutableStyleDeclaration::end):
64146         (WebCore::CSSMutableStyleDeclarationConstIterator::CSSMutableStyleDeclarationConstIterator):
64147         (WebCore::CSSMutableStyleDeclarationConstIterator::~CSSMutableStyleDeclarationConstIterator):
64148         (WebCore::CSSMutableStyleDeclarationConstIterator::operator=):
64149         (WebCore::CSSMutableStyleDeclarationConstIterator::operator++):
64150         (WebCore::CSSMutableStyleDeclarationConstIterator::operator--):
64151         * css/CSSProperty.h:
64152         (WTF::):
64153         * css/CSSStyleDeclaration.cpp:
64154         (WebCore::CSSStyleDeclaration::diff):
64155         (WebCore::CSSStyleDeclaration::copyPropertiesInSet):
64156         * css/CSSStyleSelector.cpp:
64157         (WebCore::CSSStyleSelector::resolveVariablesForDeclaration):
64158         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
64159         (WebCore::CSSStyleSelector::applyDeclarations):
64160         * dom/EventTarget.h:
64161         * editing/ApplyStyleCommand.cpp:
64162         (WebCore::StyleChange::init):
64163         (WebCore::ApplyStyleCommand::isHTMLStyleNode):
64164         (WebCore::ApplyStyleCommand::removeHTMLFontStyle):
64165         (WebCore::ApplyStyleCommand::removeCSSStyle):
64166         * editing/Editor.cpp:
64167         (WebCore::Editor::selectionStartHasStyle):
64168         (WebCore::updateState):
64169         * editing/ReplaceSelectionCommand.cpp:
64170         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
64171         * editing/markup.cpp:
64172         (WebCore::appendStartMarkup):
64173
64174 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
64175
64176         Reviewed by Antti Koivisto, Dan Bernstein
64177
64178         https://bugs.webkit.org/show_bug.cgi?id=22088
64179
64180         Fix logic related to repainting when transform changes:
64181         If an object has a layer, and the transform changes, then we need
64182         to do a repaintIncludingDescendants(), not just a repaint.
64183
64184         Test: fast/repaint/transform-repaint-descendants.html
64185
64186         * rendering/RenderObject.cpp:
64187         (WebCore::RenderObject::styleWillChange):
64188
64189 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
64190
64191         Reviewed by Dan Bernstein
64192
64193         https://bugs.webkit.org/show_bug.cgi?id=15739
64194
64195         When painting the selection on a replaced element, paint
64196         using local coordinates so that the selection is correctly
64197         painted for transformed elements.
64198
64199         Test: fast/replaced/selection-rect-transform.html
64200
64201         * rendering/RenderReplaced.cpp:
64202         (WebCore::RenderReplaced::paint):
64203
64204 2008-12-06  Simon Fraser  <simon.fraser@apple.com>
64205
64206         Reviewed by Dave Hyatt
64207
64208         https://bugs.webkit.org/show_bug.cgi?id=15671
64209
64210         Fix caret rendering to behave correctly with transforms:
64211         * Rename caretRect() methods to localCaretRect() and
64212           absoluteCaretBounds() as appropriate
64213         * Fix localCaretRect() methods to return a rect in the
64214           appropriate coordinates.
64215         * Pass tx, ty down through the paintCaret() methods, after fixing them
64216           up to account for differences between contents coords, and renderer-local
64217           coords (via RenderBlock::offsetForContents()).
64218         * Remove m_caretPositionOnLayout from SelectionController, and instead
64219           call invalidateSelection() from RenderLayer::scrollToOffset(), because
64220           we can no longer assume simple x/y offsets from scrolling with transforms.
64221         * Move the logic to compute which RenderObject actually paints the caret into
64222           SelectionController::caretRenderer(), rather than having it in RenderBlock.
64223         * SelectionController now computes and caches a local caret rect. For invalidation,
64224           it computes the absolute bounds of that (possibly transformed) local rect.
64225           The local rect is computed in the coordinate system of the RenderObject that
64226           will paint the caret (this may require offsetting from the actual renderer
64227           at the start of the selection).
64228         * Fix LayoutState(RenderObject* root) to take transforms into account
64229         * Make offsetFromContainer() a virtual method on RenderObject, and implement
64230           the RenderObject version. It's used to map from selection start renderer
64231           to caret renderer.
64232
64233         Test: fast/transforms/transformed-caret.html
64234
64235         * WebCore.base.exp:
64236         * editing/DeleteSelectionCommand.cpp:
64237         (WebCore::DeleteSelectionCommand::mergeParagraphs):
64238         * editing/SelectionController.cpp:
64239         (WebCore::SelectionController::SelectionController):
64240         (WebCore::absoluteCaretY):
64241         (WebCore::SelectionController::modify):
64242         (WebCore::SelectionController::xPosForVerticalArrowNavigation):
64243         (WebCore::SelectionController::layout):
64244         (WebCore::SelectionController::caretRenderer):
64245         (WebCore::SelectionController::localCaretRect):
64246         (WebCore::SelectionController::absoluteCaretBounds):
64247         (WebCore::SelectionController::caretRepaintRect):
64248         (WebCore::SelectionController::recomputeCaretRect):
64249         (WebCore::SelectionController::invalidateCaretRect):
64250         (WebCore::SelectionController::paintCaret):
64251         (WebCore::SelectionController::caretRendersInsideNode):
64252         * editing/SelectionController.h:
64253         * editing/VisiblePosition.cpp:
64254         (WebCore::VisiblePosition::localCaretRect):
64255         (WebCore::VisiblePosition::absoluteCaretBounds):
64256         (WebCore::VisiblePosition::xOffsetForVerticalNavigation):
64257         * editing/VisiblePosition.h:
64258         * editing/mac/SelectionControllerMac.mm:
64259         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
64260         * html/HTMLElement.cpp:
64261         (WebCore::HTMLElement::isContentEditable):
64262         * page/AccessibilityRenderObject.cpp:
64263         (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
64264         * page/Frame.cpp:
64265         (WebCore::Frame::firstRectForRange):
64266         (WebCore::Frame::selectionLayoutChanged):
64267         (WebCore::Frame::paintCaret):
64268         (WebCore::Frame::paintDragCaret):
64269         (WebCore::Frame::revealSelection):
64270         (WebCore::Frame::revealCaret):
64271         * page/Frame.h:
64272         * rendering/LayoutState.cpp:
64273         (WebCore::LayoutState::LayoutState):
64274         * rendering/RenderBlock.cpp:
64275         (WebCore::RenderBlock::paintCaret):
64276         (WebCore::RenderBlock::paintObject):
64277         (WebCore::RenderBlock::positionForCoordinates):
64278         (WebCore::RenderBlock::offsetForContents):
64279         * rendering/RenderBlock.h:
64280         * rendering/RenderBox.cpp:
64281         (WebCore::RenderBox::localCaretRect):
64282         * rendering/RenderBox.h:
64283         * rendering/RenderFlow.cpp:
64284         (WebCore::RenderFlow::localCaretRect):
64285         * rendering/RenderFlow.h:
64286         * rendering/RenderLayer.cpp:
64287         (WebCore::RenderLayer::scrollToOffset):
64288         * rendering/RenderObject.cpp:
64289         (WebCore::RenderObject::localCaretRect):
64290         * rendering/RenderObject.h:
64291         * rendering/RenderSVGInlineText.cpp:
64292         (WebCore::RenderSVGInlineText::localCaretRect):
64293         * rendering/RenderSVGInlineText.h:
64294         * rendering/RenderText.cpp:
64295         (WebCore::RenderText::RenderText):
64296         (WebCore::RenderText::localCaretRect):
64297         * rendering/RenderText.h:
64298
64299 2008-12-06  David Kilzer  <ddkilzer@apple.com>
64300
64301         Bug 22711: Current svn (build 39065) fails to compile
64302
64303         <https://bugs.webkit.org/show_bug.cgi?id=22711>
64304
64305         BUILD FIX for r39065: Forgot parentheses after "document".
64306
64307         Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
64308         <https://bugs.webkit.org/show_bug.cgi?id=22666>
64309
64310         * svg/SVGFEImageElement.cpp:
64311         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Changed
64312         document to document().
64313
64314 2008-12-06  Dmitry Titov  <dimich@chromium.org>
64315
64316         Reviewed by Alexey Proskuryakov.
64317
64318         https://bugs.webkit.org/show_bug.cgi?id=22710
64319         Memory leak due to circular reference Document->DOMTimer->ScheduledAction->[JS objects]->Document
64320
64321         * bindings/js/DOMTimer.cpp:
64322         (WebCore::DOMTimer::stop): Delete ScheduledAction, which contains a protected object.
64323
64324 2008-12-06  David Kilzer  <ddkilzer@apple.com>
64325
64326         Bug 22666: Clean up data structures used when collecting URLs of subresources for webarchives
64327
64328         <https://bugs.webkit.org/show_bug.cgi?id=22666>
64329
64330         Reviewed by Darin Adler.
64331
64332         When creating a webarchive from WebCore::LegacyWebArchive::create(),
64333         HashSet<String>, Vector<KURL> and Vector<String> were all used to
64334         store a list of URLs for resources found in the document.  Instead
64335         use a single ListHashSet<KURL> to store the list and resolve the
64336         relative URLs as they're added.  We use a new inline method called
64337         WebCore::addSubresourceURL() to add KURL objects to the ListHashSet
64338         to prevent "null" KURL objects from crashing in the KURL hashing
64339         function.
64340
64341         * WebCore.base.exp: Changed export of
64342         WebCore::Node::getSubresourceURLs() to take a ListHashSet<KURL>
64343         argument instead of a Vector<KURL>.
64344
64345         * WebCore.xcodeproj/project.pbxproj: Marked KURLHash.h as a private
64346         header for use in WebKit.
64347
64348         * css/CSSStyleSheet.cpp:
64349         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Renamed from
64350         addSubresourceURLStrings().  Changed to use ListHashSet<KURL>
64351         instead of HashSet<String>.  Cleaned up code.
64352         * css/CSSStyleSheet.h:
64353         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Ditto.
64354         * css/StyleSheet.h:
64355         (WebCore::StyleSheet::addSubresourceStyleURLs): Ditto.
64356
64357         * dom/Node.cpp:
64358         (WebCore::Node::getSubresourceURLs): Changed to use
64359         ListHashSet<KURL> instead of Vector<KURL>.  Cleaned up code.
64360         * dom/Node.h:
64361         (WebCore::Node::getSubresourceURLs): Ditto.
64362         (WebCore::Node::addSubresourceAttributeURLs): Renamed from
64363         getSubresourceAttributeStrings().  Changed to use ListHashSet<KURL>
64364         instead of Vector<String>.
64365         (WebCore::addSubresourceURL): Added.  Safely adds new KURL objects
64366         to a ListHashSet<KURL> object.  A "null" KURL object will cause the
64367         hash function to crash since it contains a null StringImpl.  Used in
64368         Node::addSubresourceAttributeURLs() and addSubresourceStyleURLs() in
64369         the style subsystem.
64370
64371         * dom/ProcessingInstruction.cpp:
64372         (WebCore::ProcessingInstruction::addSubresourceAttributeURLs):
64373         Renamed from getSubresourceAttributeStrings().  Changed to use
64374         ListHashSet<KURL> instead of Vector<String>.  Use
64375         WebCore::addSubresourceURL() to add new KURL objects.
64376         * dom/ProcessingInstruction.h: Ditto.
64377         * html/HTMLBodyElement.cpp:
64378         (WebCore::HTMLBodyElement::addSubresourceAttributeURLs): Ditto.
64379         * html/HTMLBodyElement.h: Ditto.
64380         * html/HTMLEmbedElement.cpp:
64381         (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs): Ditto.
64382         * html/HTMLEmbedElement.h: Ditto.
64383         * html/HTMLImageElement.cpp:
64384         (WebCore::HTMLImageElement::addSubresourceAttributeURLs): Ditto.
64385         * html/HTMLImageElement.h: Ditto.
64386         * html/HTMLInputElement.cpp:
64387         (WebCore::HTMLInputElement::addSubresourceAttributeURLs): Ditto.
64388         * html/HTMLInputElement.h: Ditto.
64389         * html/HTMLLinkElement.cpp:
64390         (WebCore::HTMLLinkElement::addSubresourceAttributeURLs): Ditto.
64391         * html/HTMLLinkElement.h: Ditto.
64392         * html/HTMLObjectElement.cpp:
64393         (WebCore::HTMLObjectElement::addSubresourceAttributeURLs): Ditto.
64394         * html/HTMLObjectElement.h: Ditto.
64395         * html/HTMLParamElement.cpp:
64396         (WebCore::HTMLParamElement::addSubresourceAttributeURLs): Ditto.
64397         * html/HTMLParamElement.h: Ditto.
64398         * html/HTMLScriptElement.cpp:
64399         (WebCore::HTMLScriptElement::addSubresourceAttributeURLs): Ditto.
64400         * html/HTMLScriptElement.h: Ditto.
64401         * html/HTMLStyleElement.cpp:
64402         (WebCore::HTMLStyleElement::addSubresourceAttributeURLs): Ditto.
64403         * html/HTMLStyleElement.h: Ditto.
64404         * html/HTMLTableCellElement.cpp:
64405         (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs): Ditto.
64406         * html/HTMLTableCellElement.h: Ditto.
64407         * html/HTMLTableElement.cpp:
64408         (WebCore::HTMLTableElement::addSubresourceAttributeURLs): Ditto.
64409         * html/HTMLTableElement.h: Ditto.
64410
64411         * loader/archive/cf/LegacyWebArchive.cpp:
64412         (WebCore::LegacyWebArchive::create): Changed from using
64413         HashSet<String> to ListHashSet<KURL> for tracking unique
64414         subresources.  Changed from using Vector<KURL> to ListHashSet<KURL>
64415         when calling WebCore::Node::getSubresourceURLs().  Cleaned up code.
64416
64417         * svg/SVGCursorElement.cpp:
64418         (WebCore::SVGCursorElement::addSubresourceAttributeURLs): Renamed
64419         from getSubresourceAttributeStrings().  Changed to use
64420         ListHashSet<KURL> instead of Vector<String>.  Use
64421         WebCore::addSubresourceURL() to add new KURL objects.
64422         * svg/SVGCursorElement.h: Ditto.
64423         * svg/SVGFEImageElement.cpp:
64424         (WebCore::SVGFEImageElement::addSubresourceAttributeURLs): Ditto.
64425         * svg/SVGFEImageElement.h: Ditto.
64426         * svg/SVGImageElement.cpp:
64427         (WebCore::SVGImageElement::addSubresourceAttributeURLs): Ditto.
64428         * svg/SVGImageElement.h: Ditto.
64429         * svg/SVGScriptElement.cpp:
64430         (WebCore::SVGScriptElement::addSubresourceAttributeURLs): Ditto.
64431         * svg/SVGScriptElement.h: Ditto.
64432
64433 2008-12-05  Brett Wilson  <brettw@chromium.org>
64434
64435         Reviewed by Darin Adler.
64436
64437         Make the page group use the proper link hashing functions rather than
64438         calling the string hash functions directly. Add Chromium-specfic ifdefs
64439         in the visited link computation functions to allow integration.
64440
64441         * page/PageGroup.cpp:
64442         (WebCore::PageGroup::isLinkVisited):
64443         (WebCore::PageGroup::addVisitedLink):
64444         * platform/LinkHash.cpp:
64445         (WebCore::visitedLinkHash):
64446         * platform/LinkHash.h:
64447
64448 2008-12-05  Chris Marrin  <cmarrin@apple.com>
64449
64450         Reviewed by Dave Hyatt.
64451
64452         Fix for https://bugs.webkit.org/show_bug.cgi?id=22635
64453         For iteration and end events, previous fixes to prevent the deletion of
64454         Animation objects (ref counting and hanging onto a ref during event callbacks)
64455         was sufficient to prevent dangling pointers. But start events are sent in
64456         the styleAvailable() call, which iterates over CompositeAnimation objects,
64457         which are not ref counted. So that object can get destroyed in the event
64458         handler while still active. So I added refcounting for CompositeAnimations.
64459
64460         Additionally, when am iterating over the CompositingAnimation list, it can
64461         be deleted, which mutates the list. So I now make one pass over the list
64462         building a vector of CompositeAnimation objects that need to be called and
64463         then iterate over that vector to make the actual calls.
64464
64465         Finally, to make sure the lifetime of the CompositeAnimation exceeds that of
64466         the Animation objects it owns, I now keep a ref to the CompositeAnimation
64467         in the timer callback for the iteration and end events. That means I no
64468         longer need to keep a ref to the Animation objects themselves in that timer
64469         callback, since the CompositeAnimation already has one.
64470
64471         Tests: animations/animation-iteration-event-destroy-renderer.html
64472                animations/animation-start-event-destroy-renderer.html
64473
64474         * page/animation/AnimationBase.cpp:
64475         (WebCore::AnimationBase::updateStateMachine):
64476         (WebCore::AnimationBase::animationTimerCallbackFired):
64477         * page/animation/AnimationController.cpp:
64478         (WebCore::AnimationControllerPrivate::~AnimationControllerPrivate):
64479         (WebCore::AnimationControllerPrivate::accessCompositeAnimation):
64480         (WebCore::AnimationControllerPrivate::clear):
64481         (WebCore::AnimationControllerPrivate::styleAvailable):
64482         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
64483         (WebCore::AnimationControllerPrivate::animationTimerFired):
64484         (WebCore::AnimationControllerPrivate::isAnimatingPropertyOnRenderer):
64485         (WebCore::AnimationControllerPrivate::suspendAnimations):
64486         (WebCore::AnimationControllerPrivate::resumeAnimations):
64487         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
64488         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
64489         (WebCore::AnimationController::updateAnimations):
64490         (WebCore::AnimationController::setAnimationStartTime):
64491         (WebCore::AnimationController::setTransitionStartTime):
64492         * page/animation/CompositeAnimation.cpp:
64493         (WebCore::CompositeAnimationPrivate::animationController):
64494         (WebCore::CompositeAnimationPrivate::isWaitingForStyleAvailable):
64495         (WebCore::CompositeAnimationPrivate::~CompositeAnimationPrivate):
64496         (WebCore::CompositeAnimationPrivate::clearRenderer):
64497         (WebCore::CompositeAnimation::clearRenderer):
64498         (WebCore::CompositeAnimation::animationController):
64499         (WebCore::CompositeAnimation::isWaitingForStyleAvailable):
64500         * page/animation/CompositeAnimation.h:
64501         (WebCore::CompositeAnimation::create):
64502
64503 2008-12-05  David Kilzer  <ddkilzer@apple.com>
64504
64505         Bug 22609: Provide a build-time choice when generating hash tables for properties of built-in DOM objects
64506
64507         <https://bugs.webkit.org/show_bug.cgi?id=22609>
64508         <rdar://problem/6331749>
64509
64510         Reviewed by Darin Adler.
64511
64512         Initial patch by Yosen Lin.  Adapted for ToT WebKit by David Kilzer.
64513
64514         Added back the code that generates a "compact" hash (instead of a
64515         perfect hash) as a build-time option using the
64516         ENABLE(PERFECT_HASH_SIZE) macro as defined in Lookup.h.
64517
64518         * bindings/scripts/CodeGeneratorJS.pm:
64519         (GenerateImplementation): Compute the number of elements that will
64520         be stored in each hash table and pass it to GenerateHashTable().
64521         (GenerateHashTable): Added new second parameter representing the
64522         number of elements to store in the compact hash table.  Added back
64523         code to compute compact hash tables.  Generate both hash table sizes
64524         and emit conditionalized code based on ENABLE(PERFECT_HASH_SIZE).
64525
64526 2008-12-05  Brett Wilson  <brettw@chromium.org>
64527
64528         Fix build bustage from previous patch.
64529
64530         * css/CSSSelector.h:
64531
64532 2008-12-05  Brett Wilson  <brettw@chromium.org>
64533
64534         Reviewed by Eric Seidel.
64535
64536         Add a missing include for OwnPtr to make CSSSelector compile without
64537         precompiled headers.
64538
64539         * css/CSSSelector.h:
64540
64541 2008-12-05  Finnur Thorarinsson  <finnur.webkit@gmail.com>
64542
64543         Reviewed by Darin Adler.
64544
64545         Bug 22579: Providing a function to ScrollbarClient.h which allows us to get at the tickmarks
64546         without relying on high-level WebCore types, as requested by Dave Hyatt.
64547
64548         No functional changes, thus no test cases.
64549
64550         * page/FrameView.cpp:
64551         (WebCore::FrameView::getTickmarks):
64552         * page/FrameView.h:
64553         * platform/ScrollbarClient.h:
64554
64555 2008-12-05  Dean Jackson  <dino@apple.com>
64556
64557         Reviewed by David Hyatt.
64558
64559         Make sure Window event listeners also tell the
64560         Document about the event type, so noisy events
64561         will be dispatched even if nothing in the document
64562         is listening.
64563         https://bugs.webkit.org/show_bug.cgi?id=20572
64564
64565         * dom/Document.cpp:
64566         (WebCore::Document::addWindowEventListener):
64567
64568 2008-12-05  Adam Roben  <aroben@apple.com>
64569
64570         Windows build fix after r39026
64571
64572         * platform/network/cf/ResourceRequestCFNet.cpp:
64573         (WebCore::ResourceRequest::doUpdatePlatformRequest):
64574         (WebCore::ResourceRequest::doUpdateResourceRequest):
64575         Add some missing .get()s.
64576
64577 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
64578
64579         Tiger build fix.
64580
64581         * platform/network/mac/ResourceRequestMac.mm: Define NSUInteger.
64582
64583 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
64584
64585         Reviewed by Darin Adler.
64586
64587         <rdar://problem/6405599> Tiger Mail crashes when using "Mail Contents of This Page"
64588         in Safari before opening a mail message in Mail
64589
64590         * platform/mac/WebCoreObjCExtras.mm:
64591         (WebCoreObjCFinalizeOnMainThread):
64592         Don't call initializeThreading: we now expect the caller to do it, to simplify keeping
64593         Tiger and post-Tiger behavior in line.
64594
64595         * bindings/objc/DOMRGBColor.mm:
64596         (+[DOMRGBColor initialize]):
64597         * bindings/objc/WebScriptObject.mm:
64598         (+[WebScriptObject initialize]):
64599         * page/mac/AccessibilityObjectWrapper.mm:
64600         (+[AccessibilityObjectWrapper initialize]):
64601         * platform/mac/SharedBufferMac.mm:
64602         (+[WebCoreSharedBufferData initialize]):
64603         Call JSC::initializeThreading();
64604
64605 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
64606
64607         Reviewed by Darin Adler.
64608
64609         <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled
64610
64611         * platform/network/ResourceRequestBase.cpp:
64612         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
64613         * platform/network/ResourceRequestBase.h:
64614         * platform/network/cf/ResourceRequestCFNet.cpp:
64615         (WebCore::findCFURLRequestSetContentDispositionEncodingFallbackArrayFunction):
64616         (WebCore::findCFURLRequestCopyContentDispositionEncodingFallbackArrayFunction):
64617         (WebCore::setContentDispositionEncodingFallbackArray):
64618         (WebCore::copyContentDispositionEncodingFallbackArray):
64619         (WebCore::ResourceRequest::doUpdatePlatformRequest):
64620         (WebCore::ResourceRequest::doUpdateResourceRequest):
64621         * platform/network/mac/ResourceRequestMac.mm:
64622         (WebCore::ResourceRequest::doUpdateResourceRequest):
64623         (WebCore::ResourceRequest::doUpdatePlatformRequest):
64624         Added a way to specify encoding fallback list for Content-Disposition header.
64625
64626         * loader/FrameLoader.cpp: (WebCore::FrameLoader::addExtraFieldsToRequest): Generate and
64627         pass a list of encodings to try when decoding Content-Disposition header, as described
64628         in comments.
64629
64630 2008-12-05  Alexey Proskuryakov  <ap@webkit.org>
64631
64632         Reviewed by Darin Adler.
64633
64634         https://bugs.webkit.org/show_bug.cgi?id=22672
64635         ASSERT(m_table) when xhr.onabort creates another xhr or calls setTimeout
64636
64637         Test: http/tests/xmlhttprequest/send-on-abort.html
64638
64639         * dom/ScriptExecutionContext.cpp:
64640         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
64641         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
64642         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
64643         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
64644         Add a comment explaining that ActiveDOMObject methods shouldn't execute arbitrary JS.
64645
64646         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::stop): Don't dispatch events. This
64647         reverts a recent change that made the behavior slightly closer to Firefox - but the
64648         compatibility effect should be very minor if any, and Firefox itself behaves inconsistently.
64649
64650 2008-12-05  Tobias König <tobias.koenig@nokia.com>
64651
64652         Reviewed by Simon Hausmann.
64653
64654         Record required package dependencies for the Qt build for a correct
64655         pkg-config file.
64656
64657         * WebCore.pro:
64658
64659 2008-12-05  Tor Arne Vestbø  <tavestbo@trolltech.com>
64660
64661         Rubber-stamped by Simon Hausmann.
64662
64663         [Qt/Mac] Blacklist QuickTime plugin until we support the QuickDraw drawing model
64664
64665         * plugins/mac/PluginPackageMac.cpp:
64666         (WebCore::PluginPackage::fetchInfo):
64667         (WebCore::PluginPackage::isPluginBlacklisted):
64668
64669 2008-12-05  Jungshik Shin  <jshin@chromium.org>
64670
64671         Reviewed by Alexey Proskuryakov.
64672
64673         https://bugs.webkit.org/show_bug.cgi?id=22472
64674
64675         Revises charset alias map for TextCodecICU.
64676         - Uses windows-949 and windows-874 instead of windows-949-2000 and windows-874-2000
64677         - Replaces 'windows874' in a couple of place with 'windows-874' (for the canonical name)
64678         - Maps 'dos-874' to 'windows-874'. Currently, it's aliases to 'cp874', which is in turn
64679           mapped to 'TIS-620'. 'TIS-620' is manually aliased to 'windows-874'. We'd better directly
64680           alias 'dos-874' to 'windows-874'.
64681         - Replaces 'EUC-CN' with 'GBK' when it's used as the canonical name.
64682           Similar to the above case, we're getting rid of indirection that eventually leads to 'GBK' by
64683           directly going to 'GBK'.
64684         - Adds 'x-uhc' as an alias for 'windows-949'. It's used in some web pages.
64685
64686         Tests: fast/encoding/char-decoding-mac.html
64687                fast/encoding/char-decoding.html
64688
64689         * platform/text/TextCodecICU.cpp:
64690         (WebCore::TextCodecICU::registerExtendedEncodingNames):
64691
64692 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
64693
64694         Reviewed by Kevin Ollivier.
64695
64696         Add a MIME mapping for the .htm extension to wx and GTK ports.
64697
64698         https://bugs.webkit.org/show_bug.cgi?id=22668
64699
64700         * platform/gtk/MIMETypeRegistryGtk.cpp:
64701         (WebCore::):
64702         * platform/wx/MimeTypeRegistryWx.cpp:
64703         (WebCore::):
64704
64705 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
64706
64707         Reviewed by Kevin Ollivier.
64708
64709         Implement basic text paste support in wx and add notImplemented stubs
64710         to catch other methods.
64711
64712         https://bugs.webkit.org/show_bug.cgi?id=22667
64713
64714         * platform/wx/PasteboardWx.cpp:
64715         (WebCore::Pasteboard::canSmartReplace):
64716         (WebCore::Pasteboard::plainText):
64717         (WebCore::Pasteboard::documentFragment):
64718         (WebCore::Pasteboard::writeImage):
64719
64720 2008-12-04  Kevin Ollivier  <kevino@theolliviers.com>
64721
64722         wx build fix for !USE(WXGC) build config.
64723
64724         * platform/graphics/wx/PathWx.cpp:
64725         (WebCore::Path::contains):
64726         (WebCore::Path::addLineTo):
64727         (WebCore::Path::addQuadCurveTo):
64728         (WebCore::Path::addBezierCurveTo):
64729         (WebCore::Path::addArcTo):
64730         (WebCore::Path::closeSubpath):
64731         (WebCore::Path::addArc):
64732         (WebCore::Path::addRect):
64733         (WebCore::Path::addEllipse):
64734         (WebCore::Path::transform):
64735         (WebCore::Path::apply):
64736         (WebCore::Path::isEmpty):
64737
64738 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
64739
64740         Reviewed by Kevin Ollivier.
64741
64742         Turn off styled controls until we can implement them properly.
64743
64744         https://bugs.webkit.org/show_bug.cgi?id=22662
64745
64746         * platform/wx/RenderThemeWx.cpp:
64747         (WebCore::RenderThemeWx::isControlStyled):
64748
64749 2008-12-04  Kevin Watters  <kevinwatters@gmail.com>
64750
64751         Reviewed by Kevin Ollivier.
64752
64753         wx implementations for Path API.
64754
64755         https://bugs.webkit.org/show_bug.cgi?id=22661
64756
64757         * platform/graphics/wx/PathWx.cpp:
64758         (WebCore::Path::~Path):
64759         (WebCore::Path::contains):
64760         (WebCore::Path::addLineTo):
64761         (WebCore::Path::addQuadCurveTo):
64762         (WebCore::Path::addBezierCurveTo):
64763         (WebCore::Path::addArcTo):
64764         (WebCore::Path::closeSubpath):
64765         (WebCore::Path::addArc):
64766         (WebCore::Path::addRect):
64767         (WebCore::Path::addEllipse):
64768         (WebCore::Path::transform):
64769         (WebCore::Path::isEmpty):
64770
64771 2008-12-04  Julien Chaffraix  <jchaffraix@webkit.org>
64772
64773         Reviewed by Eric Seidel.
64774
64775         Bug 22564: Make HTML elements' constructors take a QualifiedName
64776         https://bugs.webkit.org/show_bug.cgi?id=22564
64777
64778         Updated the remaining constructors.
64779
64780         * bindings/js/JSImageConstructor.cpp:
64781         (WebCore::constructImage):
64782         * dom/Document.cpp:
64783         (WebCore::Document::getCSSCanvasElement):
64784         * editing/DeleteButton.cpp:
64785         (WebCore::DeleteButton::DeleteButton):
64786         * html/HTMLAppletElement.cpp:
64787         (WebCore::HTMLAppletElement::HTMLAppletElement):
64788         * html/HTMLAppletElement.h:
64789         * html/HTMLAreaElement.cpp:
64790         (WebCore::HTMLAreaElement::HTMLAreaElement):
64791         * html/HTMLAreaElement.h:
64792         * html/HTMLBaseFontElement.cpp:
64793         (WebCore::HTMLBaseFontElement::HTMLBaseFontElement):
64794         * html/HTMLBaseFontElement.h:
64795         * html/HTMLCanvasElement.cpp:
64796         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
64797         * html/HTMLCanvasElement.h:
64798         * html/HTMLElementFactory.cpp:
64799         (WebCore::hrConstructor):
64800         (WebCore::paragraphConstructor):
64801         (WebCore::basefontConstructor):
64802         (WebCore::fontConstructor):
64803         (WebCore::anchorConstructor):
64804         (WebCore::imageConstructor):
64805         (WebCore::mapConstructor):
64806         (WebCore::areaConstructor):
64807         (WebCore::canvasConstructor):
64808         (WebCore::appletConstructor):
64809         (WebCore::embedConstructor):
64810         (WebCore::objectConstructor):
64811         (WebCore::paramConstructor):
64812         (WebCore::scriptConstructor):
64813         (WebCore::tableConstructor):
64814         (WebCore::tableCaptionConstructor):
64815         (WebCore::tableRowConstructor):
64816         * html/HTMLEmbedElement.cpp:
64817         (WebCore::HTMLEmbedElement::HTMLEmbedElement):
64818         * html/HTMLEmbedElement.h:
64819         * html/HTMLFontElement.cpp:
64820         (WebCore::HTMLFontElement::HTMLFontElement):
64821         * html/HTMLFontElement.h:
64822         * html/HTMLHRElement.cpp:
64823         (WebCore::HTMLHRElement::HTMLHRElement):
64824         * html/HTMLHRElement.h:
64825         * html/HTMLImageElement.cpp:
64826         (WebCore::HTMLImageElement::HTMLImageElement):
64827         * html/HTMLImageElement.h:
64828         * html/HTMLMapElement.cpp:
64829         (WebCore::HTMLMapElement::HTMLMapElement):
64830         * html/HTMLMapElement.h:
64831         * html/HTMLObjectElement.cpp:
64832         (WebCore::HTMLObjectElement::HTMLObjectElement):
64833         * html/HTMLObjectElement.h:
64834         * html/HTMLParagraphElement.cpp:
64835         (WebCore::HTMLParagraphElement::HTMLParagraphElement):
64836         * html/HTMLParagraphElement.h:
64837         * html/HTMLParamElement.cpp:
64838         (WebCore::HTMLParamElement::HTMLParamElement):
64839         * html/HTMLParamElement.h:
64840         * html/HTMLParser.cpp:
64841         (WebCore::HTMLParser::handleError):
64842         (WebCore::HTMLParser::mapCreateErrorCheck):
64843         (WebCore::HTMLParser::handleIsindex):
64844         * html/HTMLScriptElement.cpp:
64845         (WebCore::HTMLScriptElement::HTMLScriptElement):
64846         * html/HTMLScriptElement.h:
64847         * html/HTMLTableCaptionElement.cpp:
64848         (WebCore::HTMLTableCaptionElement::HTMLTableCaptionElement):
64849         * html/HTMLTableCaptionElement.h:
64850         * html/HTMLTableElement.cpp:
64851         (WebCore::HTMLTableElement::HTMLTableElement):
64852         (WebCore::HTMLTableElement::createCaption):
64853         (WebCore::HTMLTableElement::insertRow):
64854         * html/HTMLTableElement.h:
64855         * html/HTMLTableRowElement.cpp:
64856         (WebCore::HTMLTableRowElement::HTMLTableRowElement):
64857         * html/HTMLTableRowElement.h:
64858         * html/HTMLTableSectionElement.cpp:
64859         (WebCore::HTMLTableSectionElement::insertRow):
64860         * html/HTMLViewSourceDocument.cpp:
64861         (WebCore::HTMLViewSourceDocument::createContainingTable):
64862         (WebCore::HTMLViewSourceDocument::addLine):
64863         * loader/ImageDocument.cpp:
64864         (WebCore::ImageDocumentElement::ImageDocumentElement):
64865
64866 2008-12-04  Eric Seidel  <eric@webkit.org>
64867
64868         No review, build fix only.
64869
64870         Add file missing from last commit.
64871
64872         * bindings/js/ScriptState.h: Added.
64873
64874 2008-12-04  Dimitri Glazkov  <dglazkov@chromium.org>
64875
64876         Reviewed by Geoff Garen.
64877
64878         Implement ScriptState abstraction (initially, a simple typedef)
64879         as means of carrying exception information across bindings boundaries
64880         and in a script engine-independent way.
64881
64882         * WebCore.vcproj/WebCore.vcproj:
64883         * WebCore.xcodeproj/project.pbxproj:
64884         * bindings/js/JSDOMBinding.cpp:
64885         (WebCore::scriptStateFromNode):
64886         * bindings/js/JSDOMBinding.h:
64887         * bindings/js/JSNodeFilterCondition.h:
64888         * bindings/js/ScriptState.h: Added.
64889         * dom/NodeFilter.cpp:
64890         (WebCore::NodeFilter::acceptNode):
64891         * dom/NodeFilter.h:
64892         (WebCore::NodeFilter::acceptNode):
64893         * dom/NodeFilterCondition.cpp:
64894         (WebCore::NodeFilterCondition::acceptNode):
64895         * dom/NodeFilterCondition.h:
64896         * dom/NodeIterator.cpp:
64897         (WebCore::NodeIterator::nextNode):
64898         (WebCore::NodeIterator::previousNode):
64899         * dom/NodeIterator.h:
64900         (WebCore::NodeIterator::nextNode):
64901         (WebCore::NodeIterator::previousNode):
64902         * dom/Traversal.cpp:
64903         (WebCore::Traversal::acceptNode):
64904         * dom/Traversal.h:
64905         * dom/TreeWalker.cpp:
64906         (WebCore::TreeWalker::parentNode):
64907         (WebCore::TreeWalker::firstChild):
64908         (WebCore::TreeWalker::lastChild):
64909         (WebCore::TreeWalker::previousSibling):
64910         (WebCore::TreeWalker::nextSibling):
64911         (WebCore::TreeWalker::previousNode):
64912         (WebCore::TreeWalker::nextNode):
64913         * dom/TreeWalker.h:
64914         (WebCore::TreeWalker::parentNode):
64915         (WebCore::TreeWalker::firstChild):
64916         (WebCore::TreeWalker::lastChild):
64917         (WebCore::TreeWalker::previousSibling):
64918         (WebCore::TreeWalker::nextSibling):
64919         (WebCore::TreeWalker::previousNode):
64920         (WebCore::TreeWalker::nextNode):
64921
64922 2008-12-04  Pierre-Olivier Latour  <pol@apple.com>
64923
64924         Reviewed by Dan Bernstein.
64925
64926         Fixed pauseTransitionAtTimeOnElementWithId() in DRT asserting when passed invalid property name
64927         and potential similar issue with pauseAnimationAtTimeOnElementWithId().
64928
64929         https://bugs.webkit.org/show_bug.cgi?id=22641
64930
64931         * page/animation/CompositeAnimation.cpp:
64932         (WebCore::CompositeAnimationPrivate::pauseAnimationAtTime):
64933         (WebCore::CompositeAnimationPrivate::pauseTransitionAtTime):
64934
64935 2008-12-04  Dimitri Glazkov  <dglazkov@chromium.org>
64936
64937         Reviewed by Darin Adler.
64938
64939         Remove unused Completion.h include.
64940
64941         * html/CanvasRenderingContext2D.cpp: Removed Completion.h include.
64942
64943 2008-11-13  David Hyatt  <hyatt@apple.com>
64944
64945         Fix a bug in ScrollView's refactoring.  An isVisible check should have been isSelfVisible.
64946
64947         Reviewed by Darin Adler
64948
64949         * platform/ScrollView.cpp:
64950         (WebCore::ScrollView::setParentVisible):
64951
64952 2008-12-04  Friedemann Kleint  <friedemann.kleint@nokia.com>
64953
64954         Reviewed by Tor Arne Vestbø.
64955
64956         Fix small translation glitch in the Qt file chooser.
64957
64958         * platform/qt/FileChooserQt.cpp:
64959         (WebCore::FileChooser::basenameForWidth):
64960
64961 2008-12-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
64962
64963         Rubber-stamped by Simon Hausmann.
64964
64965         Blacklist Silverlight plugin on Qt/Mac until supported
64966
64967         Currently the plugin crashes with a corrupted stack trace, possibly
64968         related to https://bugs.webkit.org/show_bug.cgi?id=20635
64969
64970         * plugins/mac/PluginPackageMac.cpp:
64971         (WebCore::PluginPackage::fetchInfo):
64972         (WebCore::PluginPackage::isPluginBlacklisted):
64973
64974 2008-12-03  Dmitry Titov  <dimich@chromium.org>
64975
64976         Reviewed by Alexey Proskuryakov.
64977
64978         Fix non-Mac build.
64979
64980         * page/Chrome.cpp: (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
64981
64982 2008-12-03  David Levin  <levin@chromium.org>
64983
64984         Reviewed by Alexey Proskuryakov.
64985
64986         Remove uses of document() in XMLHttpRequest where simple.
64987         https://bugs.webkit.org/show_bug.cgi?id=22619
64988
64989         * xml/XMLHttpRequest.cpp:
64990         (WebCore::XMLHttpRequest::responseXML):
64991         Return NULL in the worker case which is according to spec (and avoids using document()).
64992
64993         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
64994         (WebCore::XMLHttpRequest::initSend):
64995         Use scriptExecutionContext() instead of document().
64996
64997 2008-12-03  David Levin  <levin@chromium.org>
64998
64999         Reviewed by Alexey Proskuryakov.
65000
65001         Make ScriptExecutionContextTaskWorkerTask::performTask a pure virtual function.
65002         https://bugs.webkit.org/show_bug.cgi?id=22642
65003
65004         * dom/Document.cpp:
65005         (WebCore::ScriptExecutionContextTaskTimer::ScriptExecutionContextTaskTimer):
65006         (WebCore::ScriptExecutionContextTaskTimer::fired):
65007         (WebCore::PerformTaskContext::PerformTaskContext):
65008         (WebCore::performTask):
65009         (WebCore::Document::postTask):
65010         * dom/Document.h:
65011         * dom/ScriptExecutionContext.cpp:
65012         * dom/ScriptExecutionContext.h:
65013         * dom/WorkerContext.cpp:
65014         (WebCore::ScriptExecutionContextTaskWorkerTask::create):
65015         (WebCore::ScriptExecutionContextTaskWorkerTask::ScriptExecutionContextTaskWorkerTask):
65016         (WebCore::ScriptExecutionContextTaskWorkerTask::performTask):
65017         (WebCore::WorkerContext::postTask):
65018         * dom/WorkerContext.h:
65019
65020 2008-12-03  Dmitry Titov  <dimich@chromium.org>
65021
65022         Reviewed by Alexey Proskuryakov.
65023
65024         Using ActiveDOMObject as base class for DOMTimer.
65025         https://bugs.webkit.org/show_bug.cgi?id=22620
65026
65027         Using ActiveDOMObject simplifies the code because ActiveDOMObject
65028         is wired for stop/pause/resume on loading/unloading/caching the page etc
65029         so the timer-specific code that does the same can be removed.
65030         In addition, timers can be now paused/resumed 'in place' which
65031         makes it unnecessary to 'serialize' them into special PausedTimeouts
65032         instance, so pause/resumeTimeouts implementation in JSDOMWindowBase can also be removed.
65033         Also, moving TimeoutMap from JSDOMWindowBase to Document matches lifetime
65034         of timeouts and makes it possible to not roundtrip them via PausedTimeouts
65035         every time when JSDOMWindow wrapper is destroyed while the page is in the b/f cache.
65036
65037         Timeouts are now paused with other ActiveDOMObjects:
65038         - before creating CachedPage in FrameLoader::commitProvisionalLoad()
65039         - in JavaScriptDebugServer::setJavaScriptPaused
65040         - during modal UI operations in Chrome::*
65041         this is equivalent to previous usage of JSDOMWindowBase::pauseTimeouts()
65042
65043         Timeouts are stopped to prevent future firing from:
65044         - FrameLoader::clear()
65045         - FrameLoader::frameDetached()
65046         this is equivalent to previous usage of JSDOMWindowBase::clearAllTimeouts()
65047
65048         This is also one of the steps to having timers in Workers. See the plan of
65049         the next steps in the bug above.
65050
65051         * bindings/js/DOMTimer.cpp:
65052         (WebCore::DOMTimer::DOMTimer):
65053         (WebCore::DOMTimer::fired):
65054         (WebCore::DOMTimer::hasPendingActivity):
65055         (WebCore::DOMTimer::contextDestroyed):
65056         (WebCore::DOMTimer::stop):
65057         (WebCore::DOMTimer::suspend):
65058         (WebCore::DOMTimer::resume):
65059         (WebCore::DOMTimer::canSuspend): Implemented ActiveDOMObject methods.
65060
65061         * bindings/js/DOMTimer.h:
65062         * bindings/js/JSDOMBinding.cpp: ActiveDOMObject can have no JS wrapper
65063         (WebCore::markActiveObjectsForContext):
65064
65065         * bindings/js/JSDOMWindowBase.cpp:
65066         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
65067         (WebCore::JSDOMWindowBase::clear):
65068         (WebCore::JSDOMWindowBase::installTimeout):
65069         (WebCore::JSDOMWindowBase::removeTimeout):
65070         (WebCore::JSDOMWindowBase::timerFired):
65071         (WebCore::JSDOMWindowBase::disconnectFrame):
65072         * bindings/js/JSDOMWindowBase.h:
65073         * bindings/js/ScriptController.cpp:
65074         * bindings/js/ScriptController.h:
65075
65076         * dom/Document.cpp: Document now holds a hash map id->timeout
65077         (WebCore::Document::addTimeout):
65078         (WebCore::Document::removeTimeout):
65079         (WebCore::Document::findTimeout):
65080         * dom/Document.h:
65081         * history/CachedPage.cpp:
65082         (WebCore::CachedPage::CachedPage):
65083         (WebCore::CachedPage::restore):
65084         (WebCore::CachedPage::clear):
65085         * history/CachedPage.h:
65086         * inspector/JavaScriptDebugServer.cpp:
65087         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
65088         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
65089         * inspector/JavaScriptDebugServer.h:
65090
65091         * loader/FrameLoader.cpp:
65092         (WebCore::FrameLoader::commitProvisionalLoad):
65093         removed clearAllTimeouts since all ActiveDOMObjects will be stopped in FrameLoader::clear();
65094         I don't see how the old comment can be correct - the code in the same method proceeds to invoke 'onunload'
65095         and then calls into client which can be external code and can cause any active object created in onunload
65096         to fire. We can stop them all before firing onunload but it does not make a lot of sense.
65097         I have a test to go with the next patch which verifies that timers set in onunload do not fire.
65098
65099         (WebCore::FrameLoader::open):
65100         * page/Chrome.cpp:
65101         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
65102         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
65103
65104 2008-12-03  Justin Garcia  <justin.garcia@apple.com>
65105
65106         Reviewed by Beth Dakin.
65107
65108         <rdar://problem/6018653> Extra blank line when pasting paragraph in plain text
65109
65110         In SnowLeopard, Mail occasionally adds an empty, unstyled paragraph at the
65111         end of pasted content so that users don't get stuck with non-standard pargraph
65112         spacing.  This content threw off our handling of interchange newlines.  Any interchange
65113         newline, regardless of it's position in the incoming fragment was considered to be
65114         "at the start" of the fragment, and would result in us inserting in a newline before
65115         inserted content.  This patch makes the checks for interchange newlines more strict,
65116         and treats interchange newlines found elsewhere as normal <br>s.
65117
65118         * editing/ReplaceSelectionCommand.cpp:
65119         (WebCore::ReplacementFragment::ReplacementFragment):
65120         (WebCore::ReplacementFragment::removeInterchangeNodes):
65121         * editing/VisiblePosition.cpp:
65122         (WebCore::VisiblePosition::init):
65123         (WebCore::VisiblePosition::canonicalPosition):
65124         * editing/VisiblePosition.h:
65125
65126 2008-12-03  Eric Seidel  <eric@webkit.org>
65127
65128         Rubber-stamped by David Hyatt.
65129
65130         Bring the WebCore chromium build a couple steps closer to building.
65131
65132         * WebCore.scons:
65133
65134 2008-12-03  Kevin Ollivier  <kevino@theolliviers.com>
65135
65136         wx build fix.
65137
65138         * WebCoreSources.bkl:
65139
65140 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65141
65142         Reviewed by George Staikos.
65143
65144         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22636
65145
65146         Implement WML variable substitution & validation.
65147         Created a framework for scriptable WML layout tests, that are able to test variable substiution & validation.
65148
65149         Tests: wml/variable-reference-invalid-character.html
65150                wml/variable-reference-valid.html
65151
65152         * wml/WMLVariables.cpp:
65153         (WebCore::isValidFirstVariableNameCharacter):
65154         (WebCore::isValidVariableNameCharacter):
65155         (WebCore::isValidVariableEscapingModeString):
65156         (WebCore::isValidVariableName):
65157         (WebCore::containsVariableReference):
65158         (WebCore::substituteVariableReferences):
65159         * wml/WMLVariables.h:
65160
65161 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65162
65163         Reviewed by Cameron Zwarich.
65164
65165         Further preparations for WML layout tests.
65166         - Enable variable substitution in Text.cpp - if the parent is a WMLElement derived class.
65167         - Dump WMLMessageSource messages to the console, just like it's done for JSMessageSource
65168         - Add helper method in Document.idl, to reset the WML page state to a well-known default state.
65169           (will be used in the upcoming LayoutTests/wml testcases)
65170
65171          * dom/Document.cpp:
65172         (WebCore::Document::resetWMLPageState):
65173         * dom/Document.h:
65174         * dom/Document.idl:
65175         * dom/Text.cpp:
65176         (WebCore::Text::insertedIntoDocument):
65177         * dom/Text.h:
65178         * page/Console.cpp:
65179         (WebCore::Console::addMessage):
65180         * wml/WMLPageState.h: Readd heper function
65181         (WebCore::WMLPageState::hasVariables):
65182
65183 2008-12-03  Antti Koivisto  <antti@apple.com>
65184
65185         Reviewed by Sam Weinig.
65186
65187         Don't leak selectors in case selector list parsing failed.
65188
65189         * css/CSSGrammar.y:
65190         * css/CSSParser.cpp:
65191         (WebCore::CSSParser::~CSSParser):
65192
65193 2008-12-03  Chris Marrin  <cmarrin@apple.com>
65194
65195         Reviewed by Dave Hyatt.
65196
65197         Fix https://bugs.webkit.org/show_bug.cgi?id=22520
65198
65199         This is a regression (causes a crash of LayoutTests/animations/transform-animation-event-destroy-element.html).
65200         This patch fixes the testcase.
65201
65202         This is another case of animations getting destroyed in the end animation callback and causing dangling
65203         pointers on return. This one involves iterating over the CompositeAnimation, which has been destroyed.
65204         So I now check for a null m_object pointer (which is nullified when the CompositeAnimation is destroyed)
65205         and skip that call.
65206
65207         * page/animation/AnimationBase.cpp:
65208         (WebCore::AnimationBase::updateStateMachine):
65209
65210 2008-12-03  Antti Koivisto  <antti@apple.com>
65211
65212         Reviewed by Darin Adler.
65213
65214         https://bugs.webkit.org/show_bug.cgi?id=22379
65215         Make CSSOM use less memory
65216
65217         Reduce size of the CSSSelector by one more pointer by using an array
65218         instead of a linked list to store them.
65219
65220         * WebCore.xcodeproj/project.pbxproj:
65221         * css/CSSGrammar.y:
65222         * css/CSSParser.cpp:
65223         (WebCore::CSSParser::CSSParser):
65224         (WebCore::CSSParser::parseSelector):
65225         (WebCore::CSSParser::createStyleRule):
65226         * css/CSSParser.h:
65227         (WebCore::CSSParser::reusableSelectorVector):
65228         * css/CSSSelector.h:
65229         (WebCore::CSSSelector::CSSSelector):
65230         (WebCore::CSSSelector::~CSSSelector):
65231         (WebCore::CSSSelector::isLastInSelectorList):
65232         (WebCore::CSSSelector::setLastInSelectorList):
65233         * css/CSSStyleRule.cpp:
65234         (WebCore::CSSStyleRule::CSSStyleRule):
65235         (WebCore::CSSStyleRule::~CSSStyleRule):
65236         (WebCore::CSSStyleRule::selectorText):
65237         * css/CSSStyleRule.h:
65238         (WebCore::CSSStyleRule::adoptSelectorVector):
65239         (WebCore::CSSStyleRule::selectorList):
65240         * css/CSSStyleSelector.cpp:
65241         (WebCore::CSSRuleSet::addRulesFromSheet):
65242         * dom/Node.cpp:
65243         (WebCore::forEachSelector):
65244         (WebCore::selectorNeedsNamespaceResolution):
65245         (WebCore::Node::querySelector):
65246         (WebCore::Node::querySelectorAll):
65247         * dom/SelectorNodeList.cpp:
65248         (WebCore::createSelectorNodeList):
65249         * dom/SelectorNodeList.h:
65250
65251 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
65252
65253         Reviewed by Darin Adler.
65254
65255         https://bugs.webkit.org/show_bug.cgi?id=22630
65256         Assertion failure in XMLHttpRequest::contextDestroyed
65257
65258         Test: http/tests/xmlhttprequest/close-window.html
65259
65260         * loader/FrameLoader.cpp:
65261         (WebCore::FrameLoader::clear):
65262         (WebCore::FrameLoader::commitProvisionalLoad):
65263         Move stopping active objects to clear(), so that closing a window is also covered.
65264
65265         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::abort): Protect the object in abort(),
65266         because internalAbort() deref()'s.
65267
65268 2008-12-03  Dean Jackson  <dino@apple.com>
65269
65270         Reviewed by Dan Bernstein.
65271
65272         Implement CSS 3 <angle> turn unit and support it
65273         in rotations.
65274         https://bugs.webkit.org/show_bug.cgi?id=22497
65275
65276         * css/CSSGrammar.y:
65277         * css/CSSParser.cpp:
65278         (WebCore::CSSParser::validUnit):
65279         (WebCore::unitFromString):
65280         (WebCore::CSSParser::lex):
65281         * css/CSSPrimitiveValue.cpp:
65282         (WebCore::CSSPrimitiveValue::cssText):
65283         (WebCore::CSSPrimitiveValue::parserValue):
65284         * css/CSSPrimitiveValue.h:
65285         (WebCore::CSSPrimitiveValue::):
65286         * css/CSSStyleSelector.cpp:
65287         (WebCore::CSSStyleSelector::createTransformOperations):
65288         * css/tokenizer.flex:
65289
65290 2008-12-03  Dirk Schulze  <krit@webkit.org>
65291
65292         Reviewed by Nikolas Zimmermann.
65293
65294         Make use of the gradient code in GraphicsContext and get rid of most of the
65295         platform dependent code.
65296
65297         SVG should use the new Gradient support on GraphicsContext
65298         https://bugs.webkit.org/show_bug.cgi?id=20543
65299
65300         * GNUmakefile.am:
65301         * WebCore.pro:
65302         * WebCore.vcproj/WebCore.vcproj:
65303         * WebCore.xcodeproj/project.pbxproj:
65304         * platform/graphics/FloatSize.h:
65305         (WebCore::FloatSize::shrunkTo):
65306         * svg/SVGLinearGradientElement.cpp:
65307         (WebCore::SVGLinearGradientElement::buildGradient):
65308         * svg/SVGRadialGradientElement.cpp:
65309         (WebCore::SVGRadialGradientElement::buildGradient):
65310         * svg/graphics/SVGPaintServer.h:
65311         * svg/graphics/SVGPaintServerGradient.cpp:
65312         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
65313         (WebCore::SVGPaintServerGradient::~SVGPaintServerGradient):
65314         (WebCore::SVGPaintServerGradient::gradient):
65315         (WebCore::SVGPaintServerGradient::setGradient):
65316         (WebCore::findTextRootObject):
65317         (WebCore::createMaskAndSwapContextForTextGradient):
65318         (WebCore::clipToTextMask):
65319         (WebCore::SVGPaintServerGradient::setup):
65320         (WebCore::SVGPaintServerGradient::renderPath):
65321         (WebCore::SVGPaintServerGradient::teardown):
65322         * svg/graphics/SVGPaintServerGradient.h:
65323         (WebCore::SVGPaintServerGradient::setGradientStops):
65324         (WebCore::SVGPaintServerGradient::gradientStops):
65325         * svg/graphics/SVGPaintServerLinearGradient.h:
65326         * svg/graphics/SVGPaintServerRadialGradient.h:
65327         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp: Removed.
65328         * svg/graphics/cg/SVGPaintServerCg.cpp:
65329         * svg/graphics/cg/SVGPaintServerGradientCg.cpp: Removed.
65330         * svg/graphics/qt/SVGPaintServerGradientQt.cpp: Removed.
65331         * svg/graphics/qt/SVGPaintServerLinearGradientQt.cpp: Removed.
65332         * svg/graphics/qt/SVGPaintServerRadialGradientQt.cpp: Removed.
65333
65334 2008-12-03  Sam Weinig  <sam@webkit.org>
65335
65336         Reviewed by Mark Rowe.
65337
65338         Fix formatting.
65339
65340         * css/CSSSelector.h:
65341         (WebCore::CSSSelector::createRareData):
65342
65343 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65344
65345         Reviewed by Adam Roben.
65346
65347         As Adam Roben noticed, synchronize MessageSource enum with Console.js, and add a comment.
65348
65349         * inspector/front-end/Console.js:
65350         * page/Console.h:
65351
65352 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65353
65354         Reviewed by Alexey Proskuryakov.
65355
65356         Next steps to make LayoutTests work:
65357         Never access the main frame from WMLRefreshElement/WMLCardElement, but
65358         the current documents frame (WML layout tests will run in an <iframe>)
65359
65360         Prepare WMLErrorHandling for the case that no tokenizer is available anymore
65361         -> report errors through Console::addMessage(), so they get logged in the
65362            expected layout test results.
65363
65364         * wml/WMLCardElement.cpp:
65365         (WebCore::WMLCardElement::setActiveCardInDocument):
65366         * wml/WMLErrorHandling.cpp:
65367         (WebCore::reportWMLError):
65368         (WebCore::errorMessageForErrorCode):
65369         * wml/WMLErrorHandling.h:
65370         * wml/WMLRefreshElement.cpp:
65371         (WebCore::WMLRefreshElement::executeTask):
65372         * page/Console.cpp: Handle WMLMessageSource.
65373         (WebCore::printMessageSourceAndLevelPrefix):
65374         * page/Console.h: Add WMLMessageSource.
65375         (WebCore::):
65376
65377 2008-12-03  Tor Arne Vestbø  <tavestbo@trolltech.com>
65378
65379         Reviewed by Simon Hausmann.
65380
65381         Allow passing jsNull and jsUndefined to Qt plugins
65382
65383         Currently limited to functions with QString and QVariant arguments,
65384         and properties of these types. Both jsNull and jsUndefined ends up
65385         as default-constructed QStrings and QVariants, which means you can
65386         check for isEmpty() and isValid() in the native plugin code.
65387
65388         Based on patches by Jade Han <jade.han@nokia.com>
65389
65390         * bridge/qt/qt_runtime.cpp:
65391         (JSC::Bindings::convertValueToQVariant):
65392         (JSC::Bindings::findMethodIndex):
65393
65394 2008-12-03  Trenton Schulz  <trenton.schulz@nokia.com>
65395
65396         Reviewed by Simon Hausmann.
65397
65398         Fix the build with Qt for Mac OS X.
65399
65400         * platform/PurgeableBuffer.h: Use the dummy wrappers for now.
65401
65402 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65403
65404         Reviewed by Alexey Proskuryakov.
65405
65406         Fix error handling in WMLSetvarElement. If an invalid variable reference is contained
65407         in the 'name' attribute of <setvar>, a 'WMLErrorInvalidVariableName' error should be
65408         reported, instead of 'WMLErrorInvalidVariableReference'.
65409
65410         * wml/WMLElement.cpp:
65411         (WebCore::WMLElement::parseValueSubstitutingVariableReferences):
65412         (WebCore::WMLElement::parseValueForbiddingVariableReferences):
65413         * wml/WMLElement.h:
65414         * wml/WMLSetvarElement.cpp:
65415         (WebCore::WMLSetvarElement::parseMappedAttribute):
65416         * wml/WMLSetvarElement.h:
65417         (WebCore::WMLSetvarElement::name):
65418         (WebCore::WMLSetvarElement::value):
65419
65420 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65421
65422         Reviewed by Alexey Proskuryakov.
65423
65424         Preparations to get WML layout tests going.
65425         Make WMLPageState an OwnPtr to Page, and let Page create it on demand.
65426
65427         * page/Page.cpp:
65428         (WebCore::Page::Page):
65429         (WebCore::Page::wmlPageState):
65430         * page/Page.h:
65431         * wml/WMLDocument.cpp:
65432         (WebCore::WMLDocument::WMLDocument):
65433         (WebCore::WMLDocument::finishedParsing):
65434         (WebCore::wmlPageStateForDocument):
65435         * wml/WMLPageState.h: Don't inherit from RefCounted anymore.
65436         (WebCore::WMLPageState::hasVariables): Remove helper function.
65437
65438 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
65439
65440         Reviewed by Mark Rowe.
65441
65442         https://bugs.webkit.org/show_bug.cgi?id=22627
65443         fast/workers/worker-terminate.html fails randomly
65444
65445         The problem is that worker termination uses script timeouts, so an InterruptedExecutionError
65446         is raised, and it sometimes reaches the main thread.
65447
65448         * dom/WorkerMessagingProxy.cpp:
65449         (WebCore::WorkerExceptionTask::create):
65450         (WebCore::WorkerExceptionTask::WorkerExceptionTask):
65451         (WebCore::WorkerExceptionTask::performTask):
65452         (WebCore::WorkerMessagingProxy::postWorkerException):
65453         * dom/WorkerMessagingProxy.h:
65454         Ignore exceptions that happen in terminated workers.
65455
65456 2008-12-03  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65457
65458         Reviewed by Alexey Proskuryakov.
65459
65460         Remove some unncessary includes.
65461
65462         * wml/WMLAccessElement.cpp:
65463         * wml/WMLDocument.h:
65464         * wml/WMLRefreshElement.cpp:
65465
65466 2008-12-03  Alexey Proskuryakov  <ap@webkit.org>
65467
65468         Rubber-stamped by Cameron Zwarich and Adam Roben.
65469
65470         Fix a typo: m_executionForbidded.
65471
65472         * bindings/js/WorkerScriptController.cpp:
65473         (WebCore::WorkerScriptController::WorkerScriptController):
65474         (WebCore::WorkerScriptController::evaluate):
65475         (WebCore::WorkerScriptController::forbidExecution):
65476         * bindings/js/WorkerScriptController.h:
65477
65478 2008-12-03  Dean McNamee  <deanm@chromium.org>
65479
65480         Bug 22623: Uninitialized memory access in cache parsing code
65481         <https://bugs.webkit.org/show_bug.cgi?id=22623>
65482
65483         Reviewed by David Kilzer.
65484
65485         Initialize m_haveParsedCacheControlHeader and m_haveParsedPragmaHeader.
65486
65487         * platform/network/ResourceResponseBase.h:
65488         (WebCore::ResourceResponseBase::ResourceResponseBase):
65489
65490 2008-12-03  Antti Koivisto  <antti@apple.com>
65491
65492         Probable build fix.
65493
65494         * WebCoreSources.bkl:
65495
65496 2008-12-03  Antti Koivisto  <antti@apple.com>
65497
65498         Forgot to commit these.
65499
65500         * dom/Node.cpp:
65501         (WebCore::forEachTagSelector):
65502         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
65503         (WebCore::Node::querySelector):
65504         * dom/SelectorNodeList.cpp:
65505         (WebCore::createSelectorNodeList):
65506
65507 2008-12-03  Antti Koivisto  <antti@apple.com>
65508
65509         Reviewed by Dan Bernstein and Mark Rowe.
65510
65511         https://bugs.webkit.org/show_bug.cgi?id=22379
65512         Make CSSOM use less memory
65513
65514         Reduce size of the CSSSelector by 3/8 by moving rarely used fields to a rare data
65515         struct. Browsing around with some instrumentation showed that ~0.1% of all selectors
65516         encountered had rare data.
65517
65518         This also eliminates the CSSNthSelector subclass which will make possible to store
65519         CSSSelectors in an array instead of a linked list for futher memory savings.
65520
65521         * css/CSSGrammar.y:
65522         * css/CSSNthSelector.cpp: Removed.
65523         * css/CSSNthSelector.h: Removed.
65524         * css/CSSParser.cpp:
65525         (WebCore::CSSParser::createFloatingSelector):
65526         * css/CSSParser.h:
65527         * css/CSSSelector.cpp:
65528         (WebCore::CSSSelector::specificity):
65529         (WebCore::CSSSelector::operator==):
65530         (WebCore::CSSSelector::selectorText):
65531         (WebCore::CSSSelector::setTagHistory):
65532         (WebCore::CSSSelector::attribute):
65533         (WebCore::CSSSelector::setAttribute):
65534         (WebCore::CSSSelector::setArgument):
65535         (WebCore::CSSSelector::setSimpleSelector):
65536         (WebCore::CSSSelector::parseNth):
65537         (WebCore::CSSSelector::matchNth):
65538         (WebCore::CSSSelector::RareData::parseNth):
65539         (WebCore::CSSSelector::RareData::matchNth):
65540         * css/CSSSelector.h:
65541         (WebCore::CSSSelector::CSSSelector):
65542         (WebCore::CSSSelector::~CSSSelector):
65543         (WebCore::CSSSelector::tagHistory):
65544         (WebCore::CSSSelector::hasAttribute):
65545         (WebCore::CSSSelector::argument):
65546         (WebCore::CSSSelector::simpleSelector):
65547         (WebCore::CSSSelector::RareData::RareData):
65548         (WebCore::CSSSelector::createRareData):
65549         (WebCore::CSSSelector::):
65550         * css/CSSStyleSelector.cpp:
65551         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
65552         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
65553
65554 2008-12-03  Jian Li  <jianli@chromium.org>
65555
65556         Reviewed by Alexey Proskuryakov.
65557
65558         Remove unneeded included file in WorkerThread.cpp.
65559         https://bugs.webkit.org/show_bug.cgi?id=22613
65560
65561         * dom/WorkerThread.cpp: No need to include JSWorkerContext.h.
65562
65563 2008-12-02  Alexey Proskuryakov  <ap@webkit.org>
65564
65565         Reviewed by Maciej Stachowiak.
65566
65567         https://bugs.webkit.org/show_bug.cgi?id=22543
65568         Consolidate ActiveDOMObject page cache interaction
65569
65570         Test: http/tests/xmlhttprequest/abort-on-leaving-page.html
65571
65572         * dom/ActiveDOMObject.cpp:
65573         (WebCore::ActiveDOMObject::canSuspend):
65574         (WebCore::ActiveDOMObject::suspend):
65575         (WebCore::ActiveDOMObject::resume):
65576         * dom/ActiveDOMObject.h:
65577         * dom/ScriptExecutionContext.cpp:
65578         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
65579         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
65580         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
65581         * dom/ScriptExecutionContext.h:
65582         Added methods for suspending and resuming active objects.
65583
65584         * dom/Worker.cpp:
65585         (WebCore::Worker::canSuspend):
65586         (WebCore::Worker::stop):
65587         * dom/Worker.h:
65588         Workers cannot be suspended yet. This is a change in behavior, as workers used to keep
65589         running until their owner was destroyed.
65590
65591         * loader/FrameLoader.cpp:
65592         (WebCore::FrameLoader::stopLoading): No longer call stopActiveDOMObjects() here, because
65593         their activity is not necessarily loading.
65594         (WebCore::FrameLoader::canCachePage): Can only cache if all active objects can be suspended.
65595         Previously, stopLoading() cancelled outstanding XMLHttpRequests, which made the page
65596         uncacheable due to no-null main document error.
65597         (WebCore::FrameLoader::commitProvisionalLoad): Suspend or stop active objects, depending on
65598         whether the document will be cached.
65599         (WebCore::FrameLoader::frameDetached): Stop active objects to let them clean up before their
65600         context is destroyed.
65601
65602         * xml/XMLHttpRequest.h: added canSuspend().
65603         * xml/XMLHttpRequest.cpp:
65604         (WebCore::XMLHttpRequest::canSuspend): Only XHRs that are not loading can be suspended.
65605         (WebCore::XMLHttpRequest::stop): Call abort() instead of internalAbort() to dispatch events
65606         for Firefox compatibility. This is a change in behavior that helps test that requests do
65607         get aborted.
65608         (WebCore::XMLHttpRequest::contextDestroyed): The request must have been stopped by now, so
65609         assert that.
65610
65611 2008-12-02  Chris Fleizach  <cfleizach@apple.com>
65612
65613         Reviewed by Beth Dakin.
65614
65615         Bug 22606: Can <th> serves as the AXTitleUIElement for <td>?
65616
65617         Test: accessibility/th-as-title-ui.html
65618
65619         * page/AccessibilityObject.h:
65620         (WebCore::AccessibilityObject::isGroup):
65621         * page/AccessibilityRenderObject.cpp:
65622         (WebCore::AccessibilityRenderObject::isGroup):
65623         * page/AccessibilityRenderObject.h:
65624         * page/AccessibilityTableCell.cpp:
65625         (WebCore::AccessibilityTableCell::rowIndexRange):
65626         (WebCore::AccessibilityTableCell::columnIndexRange):
65627         (WebCore::AccessibilityTableCell::titleUIElement):
65628         * page/AccessibilityTableCell.h:
65629         * page/mac/AccessibilityObjectWrapper.mm:
65630         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
65631
65632 2008-12-02  Simon Fraser  <simon.fraser@apple.com>
65633
65634         Reviewed by Dave Hyatt
65635
65636         https://bugs.webkit.org/show_bug.cgi?id=22472
65637
65638         Override absoluteClippedOverflowRect() in RenderReplaced to return a rect
65639         that is large enough to encompass the selection, so that the repainting of
65640         selected replaced elements works correctly.
65641
65642         Test: fast/repaint/selected-replaced.html
65643
65644         * rendering/RenderReplaced.cpp:
65645         (WebCore::RenderReplaced::selectionRect):
65646         (WebCore::RenderReplaced::localSelectionRect):
65647         (WebCore::RenderReplaced::absoluteClippedOverflowRect):
65648         * rendering/RenderReplaced.h:
65649
65650 2008-12-02  Gregory Hughes  <ghughes@apple.com>
65651
65652         Reviewed by Beth Dakin.
65653
65654         Bug 22513: ZOOM: text selection does not send correct zoom bounds
65655
65656         When zoomed, text selection must send the zoom bounds in flipped
65657         screen coordinates.
65658
65659         * editing/mac/SelectionControllerMac.mm:
65660         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
65661         * page/mac/WebCoreViewFactory.h:
65662
65663 2008-12-02  Dean Jackson  <dino@apple.com>
65664
65665         Reviewed by Sam Weinig.
65666
65667         Remove support for 'now' from CSS (was
65668         erroneously added to transition and animation delay)
65669         https://bugs.webkit.org/show_bug.cgi?id=22571
65670
65671         * css/CSSParser.cpp:
65672         (WebCore::CSSParser::parseAnimationDelay):
65673         * css/CSSStyleSelector.cpp:
65674         (WebCore::CSSStyleSelector::mapAnimationDelay):
65675         * css/CSSValueKeywords.in:
65676
65677 2008-12-02  Eric Seidel  <eric@webkit.org>
65678
65679         Build fix, no review.
65680
65681         Fix the Mac and gtk builds:
65682         Don't use a float to hold a double.
65683         Remove a now duplicate symbol.
65684
65685         * page/Frame.cpp:
65686         (WebCore::Frame::selectionLayoutChanged):
65687         * platform/gtk/TemporaryLinkStubs.cpp:
65688
65689 2008-12-02  Chris Fleizach  <cfleizach@apple.com>
65690
65691         Bug 22596: Some elements don't report AXBlockQuoteLevel
65692         https://bugs.webkit.org/show_bug.cgi?id=22596
65693
65694         Reviewed by John Sullivan.
65695
65696         * page/mac/AccessibilityObjectWrapper.mm:
65697         (blockquoteLevel):
65698         (AXAttributeStringSetBlockquoteLevel):
65699         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
65700         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
65701
65702 2008-12-02  Dean McNamee  <deanm@chromium.org>
65703
65704         Reviewed by Eric Seidel.
65705
65706         Correctly handle a theme returning a non-blinking interval.  We should
65707         not set any timers when the interval is 0 (non-blinking), otherwise we
65708         repeatedly set and destroy a blinking timer, causing a paint and timer
65709         storm.  This is applicable to GTK and Windows, where a user can set a
65710         non-blinking caret in their system preferences.
65711
65712         Renamed caretBlinkFrequency to the more accurate caretBlinkInterval.
65713
65714         * page/Frame.cpp:
65715         (WebCore::Frame::selectionLayoutChanged):
65716         * platform/Theme.h:
65717         (WebCore::Theme::caretBlinkInterval):
65718         * platform/gtk/RenderThemeGtk.cpp:
65719         (WebCore::RenderThemeGtk::caretBlinkInterval):
65720         * platform/gtk/RenderThemeGtk.h:
65721         * rendering/RenderTheme.h:
65722         (WebCore::RenderTheme::caretBlinkInterval):
65723
65724 2008-12-02  David Levin  <levin@chromium.org>
65725
65726         Reviewed by Eric Seidel.
65727
65728         https://bugs.webkit.org/show_bug.cgi?id=22538
65729
65730         startsWith uses find which searches through the whole string if no match is found.
65731         Using reverseFind with an index of 0 has the benefit of only searching for the match
65732         at the beginning of the string.  This may only be a small benefit in the overall program,
65733         but it may help in some cases when the string is big.
65734
65735         No observable change in behavior, so no test.
65736
65737         * platform/text/StringImpl.h:
65738         (WebCore::StringImpl::startsWith):
65739
65740 2008-10-29  Eric Seidel  <eric@webkit.org>
65741
65742         Reviewed by Darin Adler.
65743
65744         Wrap a JSC-only hack in a USE(JSC) block to fix the v8 build.
65745         https://bugs.webkit.org/show_bug.cgi?id=21951
65746
65747         * svg/SVGElementInstance.cpp:
65748         (WebCore::SVGElementInstance::forgetWrapper):
65749
65750 2008-12-02  Eric Seidel  <eric@webkit.org>
65751
65752         Reviewed by Darin Adler.
65753
65754         Add an ASSERT to try and catch the root cause of:
65755         https://bugs.webkit.org/show_bug.cgi?id=22168
65756         http://code.google.com/p/chromium/issues/detail?id=4122
65757
65758         * editing/TextIterator.cpp:
65759         (WebCore::TextIterator::emitText):
65760
65761 2008-12-02  Brent Fulgham  <bfulgham@gmail.com>
65762
65763         Reviewed by Adam Roben.
65764
65765         Remove some CG-specific code from the Windows Cairo build.
65766         https://bugs.webkit.org/show_bug.cgi?id=22586
65767
65768         No new test cases since this update should create no user-visible
65769         changes, and should be fully covered by the existing regression
65770         tests.
65771
65772         * WebCore.vcproj/WebCore.vcproj: Remove FontDatabase from
65773         * platform/graphics/cairo/GraphicsContextCairo.cpp:
65774         (WebCore::focusRingColor): Add stub method
65775         * platform/win/TemporaryLinkStubs.cpp:
65776         (WebCore::populateFontDatabase): Add stub method.
65777
65778 2008-12-01 Laszlo Gombos <laszlo.1.gombos@nokia.com>
65779
65780         Reviewed by Tor Arne Vestbø.
65781
65782         MinGW compilation fix for PluginPackageWin.cpp
65783
65784         https://bugs.webkit.org/show_bug.cgi?id=22585
65785
65786         * plugins/win/PluginPackageWin.cpp:
65787         (WebCore::PluginPackage::fetchInfo):
65788
65789 2008-12-02  Adam Roben  <aroben@apple.com>
65790
65791         Build fix for Windows projects with NOMINMAX defined globally
65792
65793         * platform/win/COMPtr.h: Don't redefine NOMINMAX if it's already
65794         defined.
65795
65796 2008-12-02  Simon Hausmann  <hausmann@webkit.org>
65797
65798         Reviewed by Tor Arne Vestbø.
65799
65800         Build JavaScriptCore into libQtWebKit.so through a direct build
65801         instead of a static library. When linking a static library into
65802         a shared library qmake generates an incorrect .prl file, which
65803         causes all sorts of different build problems when linking against
65804         QtWebKit. Fixing this in qmake requires bigger changes that are
65805         currently not possible, so we need to work around this limitation
65806         for now. The advantages of the separate build did not outweight the
65807         build problems it caused.
65808
65809         * WebCore.pro: include JavaScriptCore.pri, re-enable prl support
65810         and rename the lut generator to domlut to avoid a conflict with
65811         JavaScriptCore.pri's lut generator.
65812
65813 2008-12-02  David Levin  <levin@chromium.org>
65814
65815         Reviewed by Alexey Proskuryakov.
65816
65817         https://bugs.webkit.org/show_bug.cgi?id=22588
65818         Move securityOrigin() from Document and WorkerContext into ScriptExecutionContext.
65819
65820         No observable change in behavior, so no test.
65821
65822         * dom/Document.cpp:
65823         (WebCore::Document::open):
65824         (WebCore::Document::domain):
65825         (WebCore::Document::setDomain):
65826         (WebCore::Document::initSecurityContext):
65827         (WebCore::Document::setSecurityOrigin):
65828         * dom/Document.h:
65829         * dom/ScriptExecutionContext.cpp:
65830         (WebCore::ScriptExecutionContext::setSecurityOrigin):
65831         * dom/ScriptExecutionContext.h:
65832         (WebCore::ScriptExecutionContext::securityOrigin):
65833         * dom/WorkerContext.cpp:
65834         (WebCore::WorkerContext::WorkerContext):
65835         * dom/WorkerContext.h:
65836         These changes are for the move of securityOrigin().
65837
65838         * xml/XMLHttpRequest.cpp:
65839         (WebCore::XMLHttpRequest::createRequest):
65840         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
65841         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
65842         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
65843         (WebCore::XMLHttpRequest::setRequestHeader):
65844         (WebCore::XMLHttpRequest::getAllResponseHeaders):
65845         (WebCore::XMLHttpRequest::getResponseHeader):
65846         (WebCore::XMLHttpRequest::processSyncLoadResults):
65847         (WebCore::XMLHttpRequest::willSendRequest):
65848         (WebCore::XMLHttpRequest::accessControlCheck):
65849         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
65850         Change XMLHttpRequest to use ScriptExecutionContext instead of Document to access securityOrigin().
65851
65852 2008-12-02  André Pönitz  <apoenitz@trolltech.com>
65853
65854         Reviewed by Simon Hausmann.
65855
65856         Disable the creation of debug information for the Qt build when done
65857         inside Qt. With 670 mb it was slowing down gdb start significantly
65858         for third-party applications that usually don't need it.
65859
65860         * WebCore.pro:
65861
65862 2008-12-01  Beth Dakin  <bdakin@apple.com>
65863
65864         Reviewed by Dan Bernstein.
65865
65866         Fix for https://bugs.webkit.org/show_bug.cgi?id=13736 REGRESSION
65867         (r19811): Using the down arrow in a textarea gets "stuck" at the
65868         end of a wrapped line
65869         And corresponding: <rdar://problem/5347931>
65870
65871         The basic problem here is that Position::getInlineBoxAndOffset()
65872         failed to look beyond a single renderer. This patch looks for a
65873         better match beyond the first renderer when the affinity is
65874         downstream and we failed to find a "perfect" match.
65875         * dom/Position.cpp:
65876         (WebCore::isNonTextLeafChild):
65877         (WebCore::searchAheadForBetterMatch):
65878         (WebCore::Position::getInlineBoxAndOffset):
65879
65880         This is a fix I made based on code inspection. It looks like the
65881         old code here and skipped over the parent as a possible match.
65882         * rendering/RenderObject.cpp:
65883         (WebCore::RenderObject::nextInPreOrderAfterChildren):
65884
65885 2008-12-01  Brent Fulgham  <bfulgham@gmail.com>
65886
65887         Reviewed by Adam Roben.
65888
65889         Add WML related files to Visual Studio projects.
65890         https://bugs.webkit.org/show_bug.cgi?id=22561
65891
65892         * WebCore.vcproj/WebCore.vcproj:
65893           1. Add files from the wml directory to the set of windows files.
65894           2. Extend include paths with new wml directory.
65895           3. Add new autogenerated WML files to DerivedSources.
65896           4. Alphabetize preprocesor includes (holdover from earlier debugging).
65897
65898 2008-12-01  Steve Falkenburg  <sfalken@apple.com>
65899
65900         Revise node/selection image fix.
65901         Moved updateLayout call so selection rect is fetched after the layout.
65902
65903         Reviewed by Adam Roben.
65904
65905         * page/win/FrameCGWin.cpp:
65906         (WebCore::imageFromRect):
65907         (WebCore::imageFromSelection):
65908         (WebCore::Frame::nodeImage):
65909
65910 2008-12-01  Steve Falkenburg  <sfalken@apple.com>
65911
65912         Support needed to implement renderedImage for Windows.
65913         https://bugs.webkit.org/show_bug.cgi?25648
65914
65915         Reviewed by Adam Roben.
65916
65917         * page/Frame.h:
65918         * page/win/FrameCGWin.cpp:
65919         (WebCore::imageFromRect):
65920         (WebCore::imageFromSelection):
65921         (WebCore::Frame::nodeImage):
65922         * page/win/FrameCairoWin.cpp:
65923         (WebCore::imageFromNode):
65924
65925 2008-12-01  Simon Fraser  <simon.fraser@apple.com>
65926
65927         Reviewed by Dan Bernstein
65928
65929         https://bugs.webkit.org/show_bug.cgi?id=22581
65930
65931         Fix the painting of the caps lock indicator for transformed text inputs,
65932         by replacing a call to absoluteContentBox() with code that computes the
65933         painting rect for the input contents.
65934
65935         * rendering/RenderTextControl.cpp:
65936         (WebCore::RenderTextControl::paint):
65937
65938 2008-12-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65939
65940         Reviewed by George Staikos.
65941
65942         Add two new helper functions to WMLElement, parseValueSubstitutingVariableReferences/parseValueForbiddingVariableReferences.
65943
65944         Convert all elements to parse their attribute values using these new helper functions. This simplifies the
65945         actual attribute parsing code in all WMLElement derived classes, as most WML attribute values either report
65946         an error if there's a variable reference used in the attribute value, or if it's invalid.
65947
65948         Split the WMLErrorInvalidVariableReference error which covered both 'invalid syntax' / 'wrong location'
65949         in two seperated error codes: WMLErrorInvalidVariableReference / WMLErrorInvalidVariableReferenceLocation.
65950
65951         * wml/WMLAccessElement.cpp:
65952         (WebCore::WMLAccessElement::parseMappedAttribute):
65953         * wml/WMLDoElement.cpp:
65954         (WebCore::WMLDoElement::defaultEventHandler):
65955         (WebCore::WMLDoElement::parseMappedAttribute):
65956         * wml/WMLElement.cpp:
65957         (WebCore::WMLElement::parseValueSubstitutingVariableReferences):
65958         (WebCore::WMLElement::parseValueForbiddingVariableReferences):
65959         * wml/WMLElement.h:
65960         * wml/WMLErrorHandling.cpp:
65961         (WebCore::reportWMLError):
65962         * wml/WMLErrorHandling.h:
65963         (WebCore::):
65964         * wml/WMLOnEventElement.cpp:
65965         (WebCore::WMLOnEventElement::parseMappedAttribute):
65966         * wml/WMLPrevElement.cpp:
65967         (WebCore::WMLPrevElement::executeTask):
65968         * wml/WMLSetvarElement.cpp:
65969         (WebCore::WMLSetvarElement::parseMappedAttribute):
65970         * wml/WMLTimerElement.cpp:
65971         (WebCore::WMLTimerElement::parseMappedAttribute):
65972
65973 2008-12-01  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
65974
65975         Reviewed by George Staikos.
65976
65977         Fix switching active cards within a document. No way to test, until <go> support is implemented.
65978
65979         * wml/WMLCardElement.cpp:
65980         (WebCore::WMLCardElement::showCard):
65981         (WebCore::WMLCardElement::hideCard):
65982         (WebCore::WMLCardElement::setActiveCardInDocument):
65983         * wml/WMLCardElement.h:
65984
65985 2008-12-01  David Kilzer  <ddkilzer@apple.com>
65986
65987         Fix logic error in LegacyWebArchive::create() from r38884.
65988
65989         * loader/archive/cf/LegacyWebArchive.cpp:
65990         (WebCore::LegacyWebArchive::create): Only continue if the
65991         subresource is actually added.
65992
65993 2008-12-01  David Kilzer  <ddkilzer@apple.com>
65994
65995         Bug 22466: REGRESSION (35867): Many resources missing when saving webarchive of webkit.org
65996
65997         <https://bugs.webkit.org/show_bug.cgi?id=22466>
65998         <rdar://problem/6403593>
65999
66000         Reviewed by Brady Eidson.
66001
66002         Test: http/tests/webarchive/test-preload-resources.html
66003
66004         * loader/archive/cf/LegacyWebArchive.cpp:
66005         (WebCore::LegacyWebArchive::create): Check the WebCore cache for
66006         resources if DocumentLoader::subresource() doesn't return them.
66007         Note that the DocumentLoader::subresource() method returned
66008         preloaded resources before r35867, but this caused a regression in
66009         Mail.
66010
66011 2008-12-01  Julien Chaffraix  <jchaffraix@webkit.org>
66012
66013         Reviewed by Eric Seidel.
66014
66015         Bug 22564: Make HTML elements' constructors take a QualifiedName
66016         https://bugs.webkit.org/show_bug.cgi?id=22564
66017
66018         - Modified the remaining HTML elements' constructors to take a QualifiedName.
66019
66020         - Added an assertion that the QualifiedName given corresponds to the element constructed.
66021
66022         * bindings/js/JSAudioConstructor.cpp:
66023         (WebCore::constructAudio):
66024         * html/HTMLAudioElement.cpp:
66025         (WebCore::HTMLAudioElement::HTMLAudioElement):
66026         * html/HTMLAudioElement.h:
66027         * html/HTMLBRElement.cpp:
66028         (WebCore::HTMLBRElement::HTMLBRElement):
66029         * html/HTMLBRElement.h:
66030         * html/HTMLElement.cpp:
66031         (WebCore::HTMLElement::setInnerText):
66032         * html/HTMLElementFactory.cpp:
66033         (WebCore::brConstructor):
66034         (WebCore::quoteConstructor):
66035         (WebCore::marqueeConstructor):
66036         (WebCore::audioConstructor):
66037         (WebCore::videoConstructor):
66038         (WebCore::sourceConstructor):
66039         * html/HTMLMarqueeElement.cpp:
66040         (WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
66041         * html/HTMLMarqueeElement.h:
66042         * html/HTMLQuoteElement.cpp:
66043         (WebCore::HTMLQuoteElement::HTMLQuoteElement):
66044         * html/HTMLQuoteElement.h:
66045         * html/HTMLSourceElement.cpp:
66046         (WebCore::HTMLSourceElement::HTMLSourceElement):
66047         * html/HTMLSourceElement.h:
66048         * html/HTMLVideoElement.cpp:
66049         (WebCore::HTMLVideoElement::HTMLVideoElement):
66050         * html/HTMLVideoElement.h:
66051         * rendering/RenderTextControl.cpp:
66052         (WebCore::RenderTextControl::updateFromElement):
66053
66054 2008-12-01  Julien Chaffraix  <jchaffraix@webkit.org>
66055
66056         Reviewed by Antti Koivisto.
66057
66058         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
66059         https://bugs.webkit.org/show_bug.cgi?id=22441
66060
66061         Add an assertion to the modified HTML elements' constructor
66062         to check that the QualifiedName parameter is the one that
66063         matches the Element's.
66064
66065         * html/HTMLBaseElement.cpp:
66066         (WebCore::HTMLBaseElement::HTMLBaseElement):
66067         * html/HTMLBlockquoteElement.cpp:
66068         (WebCore::HTMLBlockquoteElement::HTMLBlockquoteElement):
66069         * html/HTMLBodyElement.cpp:
66070         (WebCore::HTMLBodyElement::HTMLBodyElement):
66071         * html/HTMLButtonElement.cpp:
66072         (WebCore::HTMLButtonElement::HTMLButtonElement):
66073         * html/HTMLDListElement.cpp:
66074         (WebCore::HTMLDListElement::HTMLDListElement):
66075         * html/HTMLDirectoryElement.cpp:
66076         (WebCore::HTMLDirectoryElement::HTMLDirectoryElement):
66077         * html/HTMLDivElement.cpp:
66078         (WebCore::HTMLDivElement::HTMLDivElement):
66079         * html/HTMLFieldSetElement.cpp:
66080         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
66081         * html/HTMLFormElement.cpp:
66082         (WebCore::HTMLFormElement::HTMLFormElement):
66083         * html/HTMLFrameElement.cpp:
66084         (WebCore::HTMLFrameElement::HTMLFrameElement):
66085         * html/HTMLFrameSetElement.cpp:
66086         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
66087         * html/HTMLHeadElement.cpp:
66088         (WebCore::HTMLHeadElement::HTMLHeadElement):
66089         * html/HTMLHtmlElement.cpp:
66090         (WebCore::HTMLHtmlElement::HTMLHtmlElement):
66091         * html/HTMLIFrameElement.cpp:
66092         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
66093         * html/HTMLInputElement.cpp:
66094         (WebCore::HTMLInputElement::HTMLInputElement):
66095         * html/HTMLIsIndexElement.cpp:
66096         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
66097         * html/HTMLKeygenElement.cpp:
66098         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
66099         * html/HTMLLIElement.cpp:
66100         (WebCore::HTMLLIElement::HTMLLIElement):
66101         * html/HTMLLabelElement.cpp:
66102         (WebCore::HTMLLabelElement::HTMLLabelElement):
66103         * html/HTMLLegendElement.cpp:
66104         (WebCore::HTMLLegendElement::HTMLLegendElement):
66105         * html/HTMLLinkElement.cpp:
66106         (WebCore::HTMLLinkElement::HTMLLinkElement):
66107         * html/HTMLMenuElement.cpp:
66108         (WebCore::HTMLMenuElement::HTMLMenuElement):
66109         * html/HTMLMetaElement.cpp:
66110         (WebCore::HTMLMetaElement::HTMLMetaElement):
66111         * html/HTMLOListElement.cpp:
66112         (WebCore::HTMLOListElement::HTMLOListElement):
66113         * html/HTMLOptGroupElement.cpp:
66114         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
66115         * html/HTMLOptionElement.cpp:
66116         (WebCore::HTMLOptionElement::HTMLOptionElement):
66117         * html/HTMLSelectElement.cpp:
66118         (WebCore::HTMLSelectElement::HTMLSelectElement):
66119         * html/HTMLStyleElement.cpp:
66120         (WebCore::HTMLStyleElement::HTMLStyleElement):
66121         * html/HTMLTextAreaElement.cpp:
66122         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
66123         * html/HTMLTitleElement.cpp:
66124         (WebCore::HTMLTitleElement::HTMLTitleElement):
66125         * html/HTMLUListElement.cpp:
66126         (WebCore::HTMLUListElement::HTMLUListElement):
66127
66128 2008-12-01  Chris Marrin  <cmarrin@apple.com>
66129
66130         Reviewed by Darin Adler.
66131
66132         https://bugs.webkit.org/show_bug.cgi?id=22046
66133
66134         Fixed another case of crashing because the animation object is getting deleted when
66135         it's in the middle of a callback. I actually moved where I am retaining the pointer
66136         up out of the lower level AnimationBase code and into the timer callback that calls
66137         them. So now the pointer is valid throughout the entire sequence of callback code.
66138
66139         The testcase for https://bugs.webkit.org/show_bug.cgi?id=22052 also exhibits a
66140         crash which this patch fixes.
66141
66142         * page/animation/AnimationBase.cpp:
66143         (WebCore::AnimationBase::updateStateMachine):
66144         (WebCore::AnimationBase::animationTimerCallbackFired):
66145         * page/animation/CompositeAnimation.cpp:
66146         (WebCore::CompositeAnimationPrivate::setAnimationStartTime):
66147         (WebCore::CompositeAnimationPrivate::setTransitionStartTime):
66148         (WebCore::CompositeAnimationPrivate::styleAvailable):
66149         * page/animation/ImplicitAnimation.cpp:
66150         (WebCore::ImplicitAnimation::sendTransitionEvent):
66151         * page/animation/KeyframeAnimation.cpp:
66152         (WebCore::KeyframeAnimation::sendAnimationEvent):
66153         (WebCore::KeyframeAnimation::resumeOverriddenAnimations):
66154
66155 2008-12-01  Tor Arne Vestbø  <tavestbo@trolltech.com>
66156
66157         Reviewed by Simon Hausmann.
66158
66159         [Qt/Mac] Initialize NPAPI plugins before getting their entry points
66160
66161         The old behavior (calling NP_GetEntryPoints before NP_Initialize) was
66162         copied from Windows, but caused Silverlight on Mac to crash when loaded.
66163
66164         Apparently the call order of NP_Initialize and NP_GetEntryPoints is
66165         reversed on Mac. See https://bugzilla.mozilla.org/show_bug.cgi?id=344425
66166
66167         Reported-by: Peter Johnson <peter@zattoo.com>
66168
66169         * plugins/mac/PluginPackageMac.cpp:
66170         (WebCore::PluginPackage::load):
66171
66172 2008-11-30  Chris Fleizach  <cfleizach@apple.com>
66173
66174         Reviewed by John Sullivan.
66175
66176         https://bugs.webkit.org/show_bug.cgi?id=22510
66177         Crash at WebCore::AccessibilityRenderObject::activeDescendant() on Google Reader with ARIA (22510)
66178
66179         A nil pointer needed to be checked
66180
66181         * page/AccessibilityRenderObject.cpp:
66182         (WebCore::AccessibilityRenderObject::activeDescendant):
66183
66184 2008-11-30  Alexey Proskuryakov  <ap@webkit.org>
66185
66186         Reviewed by Dan Bernstein.
66187
66188         https://bugs.webkit.org/show_bug.cgi?id=22530
66189         Assertion failures seen on buildbot due to uninitialized WorkerThread::m_threadID
66190
66191         * dom/WorkerThread.cpp:
66192         (WebCore::WorkerThread::start): Protect worker startup with a mutex to ensure that this
66193         function runs to completion before the thread begins execution.
66194         (WebCore::WorkerThread::workerThread): Updated comments.
66195         (WebCore::WorkerThread::stop): Ditto.
66196         * dom/WorkerThread.h: Renamed m_workerContextMutex to m_threadCreationMutex, because it now
66197         protects startup as a whole.
66198
66199         * storage/DatabaseThread.cpp:
66200         * storage/DatabaseThread.h:
66201         * storage/LocalStorageThread.cpp:
66202         * storage/LocalStorageThread.h:
66203         Fixed the same m_threadID problem.
66204
66205 2008-11-29  Brent Fulgham  <bfulgham@gmail.com>
66206
66207         Reviewed by Alexey Proskuryakov.
66208
66209         Remove Visual Studio project dependencies on non-redistributable
66210         components in the Debug_Cairo and Release_Cairo build targets.
66211         See https://bugs.webkit.org/show_bug.cgi?id=22527
66212
66213         * WebCore.vcproj/WebCore.vcproj:
66214
66215 2008-11-29  Sam Weinig  <sam@webkit.org>
66216
66217         Rubber-stamped by Alexey Proskuryakov.
66218
66219         Fix some sorting
66220
66221         * WebCore.xcodeproj/project.pbxproj:
66222
66223 2008-11-28  Sam Weinig  <sam@webkit.org>
66224
66225         Reviewed by Alexey Proskuryakov.
66226
66227         Fix for https://bugs.webkit.org/show_bug.cgi?id=21063
66228         NULL pointer crash in dispatchEvent(null);
66229
66230         Test: fast/events/dispatchEvent-crash.html
66231
66232         * dom/MessagePort.cpp:
66233         (WebCore::MessagePort::dispatchEvent):
66234         * dom/Worker.cpp:
66235         (WebCore::Worker::dispatchEvent):
66236         * dom/WorkerContext.cpp:
66237         (WebCore::WorkerContext::dispatchEvent):
66238         * loader/appcache/DOMApplicationCache.cpp:
66239         (WebCore::DOMApplicationCache::dispatchEvent):
66240         * xml/XMLHttpRequest.cpp:
66241         (WebCore::XMLHttpRequest::dispatchEvent):
66242         * xml/XMLHttpRequestUpload.cpp:
66243         (WebCore::XMLHttpRequestUpload::dispatchEvent):
66244
66245 2008-11-29  Dan Bernstein  <mitz@apple.com>
66246
66247         Reviewed by Alexey Proskuryakov.
66248
66249         - fix https://bugs.webkit.org/show_bug.cgi?id=22454
66250           <rdar://problem/6405550> REGRESSION (3.2-TOT): Crash below FontFallbackList::fontDataAt on jacobian.org
66251
66252         Test: http/tests/misc/font-face-in-multiple-segmented-faces.html
66253
66254         The crash happened because style recalculation was invoked by
66255         CSSFontSelector after one CSSSegmentedFontFace had pruned its tables but
66256         before another CSSSegmentedFontFace using the same CSSFontFace had done
66257         so. The fix is to let all CSSSegmentedFontFaces using the CSSFontFace
66258         prune their tables before telling the CSSFontSelector to recalc style.
66259
66260         * css/CSSFontFace.cpp:
66261         (WebCore::CSSFontFace::fontLoaded):
66262         * css/CSSFontSelector.cpp:
66263         (WebCore::CSSFontSelector::fontLoaded):
66264         * css/CSSFontSelector.h:
66265         * css/CSSSegmentedFontFace.cpp:
66266         (WebCore::CSSSegmentedFontFace::fontLoaded):
66267
66268 2008-11-29  Alexey Proskuryakov  <ap@webkit.org>
66269
66270         Reviewed by Eric Seidel.
66271
66272         https://bugs.webkit.org/show_bug.cgi?id=14968
66273         document.open() erroneously returns void instead of the new Document
66274
66275         Test: fast/dom/HTMLDocument/document-open-return-value.html
66276
66277         * bindings/js/JSHTMLDocumentCustom.cpp: (WebCore::JSHTMLDocument::open):
66278         Return the document on which this method was invoked, per HTML5.
66279
66280 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66281
66282         Reviewed by Cameron Zwarich.
66283
66284         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22550
66285
66286         Add <timer> element support. It provides a way to execute a task with a delay.
66287         The user is notified by firing the task associated with the <card>'s ontimer attribute.
66288         Only one timer element is allowed per <card> (fix wrong error message in reportWMLError)
66289
66290         * WebCore.xcodeproj/project.pbxproj:
66291         * wml/WMLCardElement.cpp:
66292         (WebCore::WMLCardElement::WMLCardElement):
66293         (WebCore::WMLCardElement::setIntrinsicEventTimer):
66294         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
66295         * wml/WMLCardElement.h:
66296         * wml/WMLDoElement.cpp:
66297         (WebCore::WMLDoElement::defaultEventHandler):
66298         * wml/WMLErrorHandling.cpp:
66299         (WebCore::reportWMLError):
66300         * wml/WMLPageState.h:
66301         (WebCore::WMLPageState::getVariable):
66302         * wml/WMLPrevElement.cpp:
66303         (WebCore::WMLPrevElement::executeTask):
66304         * wml/WMLRefreshElement.cpp:
66305         (WebCore::WMLRefreshElement::executeTask):
66306         * wml/WMLTagNames.in:
66307         * wml/WMLTimerElement.cpp: Added.
66308         (WebCore::WMLTimerElement::WMLTimerElement):
66309         (WebCore::WMLTimerElement::parseMappedAttribute):
66310         (WebCore::WMLTimerElement::insertedIntoDocument):
66311         (WebCore::WMLTimerElement::timerFired):
66312         (WebCore::WMLTimerElement::start):
66313         (WebCore::WMLTimerElement::stop):
66314         (WebCore::WMLTimerElement::storeIntervalToPageState):
66315         * wml/WMLTimerElement.h: Added.
66316
66317 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66318
66319         Reviewed by Holger Freyther.
66320
66321         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22549
66322
66323         Add <do> element support. It provides a way to bind a task element to a <template>/<card> element.
66324         Changes numerous of layout tests which contain <do> elements, as they render as buttons now.
66325
66326         * WebCore.xcodeproj/project.pbxproj:
66327         * rendering/RenderButton.cpp:
66328         (WebCore::RenderButton::updateFromElement):
66329         * wml/WMLCardElement.cpp:
66330         (WebCore::WMLCardElement::registerDoElement):
66331         * wml/WMLCardElement.h:
66332         * wml/WMLDoElement.cpp: Added.
66333         (WebCore::WMLDoElement::WMLDoElement):
66334         (WebCore::WMLDoElement::defaultEventHandler):
66335         (WebCore::WMLDoElement::parseMappedAttribute):
66336         (WebCore::WMLDoElement::insertedIntoDocument):
66337         (WebCore::WMLDoElement::createRenderer):
66338         (WebCore::WMLDoElement::recalcStyle):
66339         * wml/WMLDoElement.h: Added.
66340         (WebCore::WMLDoElement::registerTask):
66341         (WebCore::WMLDoElement::isActive):
66342         (WebCore::WMLDoElement::label):
66343         (WebCore::WMLDoElement::name):
66344         (WebCore::WMLDoElement::setActive):
66345         (WebCore::WMLDoElement::setNoop):
66346         * wml/WMLNoopElement.cpp:
66347         (WebCore::WMLNoopElement::insertedIntoDocument):
66348         * wml/WMLTagNames.in:
66349         * wml/WMLTaskElement.cpp:
66350         (WebCore::WMLTaskElement::insertedIntoDocument):
66351
66352 2008-11-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66353
66354         Reviewed by Sam Weinig.
66355
66356         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22545
66357
66358         Add onenterforward/onenterbackward/ontimer support for <card> elements.
66359
66360         No testing possible at the moment because WMLGoElement is not yet implemented.
66361         After that we can add tests covering the <card> event handling.
66362
66363         * wml/WMLCardElement.cpp:
66364         (WebCore::WMLCardElement::WMLCardElement):
66365         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
66366         (WebCore::WMLCardElement::parseMappedAttribute):
66367         (WebCore::WMLCardElement::setActiveCardInDocument):
66368         * wml/WMLCardElement.h:
66369         (WebCore::WMLCardElement::isNewContext):
66370         (WebCore::WMLCardElement::isOrdered):
66371         * wml/WMLDocument.cpp:
66372         (WebCore::WMLDocument::finishedParsing):
66373         * wml/WMLIntrinsicEvent.cpp:
66374         (WebCore::WMLIntrinsicEvent::WMLIntrinsicEvent):
66375         * wml/WMLIntrinsicEvent.h:
66376         (WebCore::WMLIntrinsicEvent::create):
66377
66378 2008-11-27  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
66379
66380         Reviewed by Tor Arne Vestbø.
66381
66382         Regression seen on QtWebKit - causes a build failure on Win using MinGW
66383
66384         https://bugs.webkit.org/show_bug.cgi?id=22536
66385
66386         * WebCore.pro:
66387
66388 2008-11-28  Simon Hausmann  <hausmann@webkit.org>
66389
66390         Reviewed by Tor Arne Vestbø.
66391
66392         Fix compilation and linking on Windows CE.
66393
66394         Use WIN_OS instead of WIN and therefore exclude determineModuleVersionFromDescription()
66395         from the Windows'ish build.
66396
66397         Link against the newly required mmtimer.
66398
66399         * WebCore.pro:
66400         * plugins/PluginPackage.cpp:
66401
66402 2008-11-28  David Levin  <levin@chromium.org>
66403
66404         Reviewed by Alexey Proskuryakov.
66405
66406         http://bugs.webkit.org/show_bug.cgi?id=22524
66407
66408         Made static initializations in XMLHttpRequest.cpp thread-safe in preparation for usage
66409         of XMLHttpRequest by Workers (on threads).
66410
66411         No observable change in behavior, so no test.
66412
66413         * xml/XMLHttpRequest.cpp:
66414         (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):
66415         (WebCore::PreflightResultCacheItem::allowsCrossSiteMethod):
66416         (WebCore::PreflightResultCacheItem::allowsCrossSiteHeaders):
66417         (WebCore::PreflightResultCacheItem::allowsRequest):
66418         (WebCore::createXMLHttpRequestStaticData):
66419         (WebCore::initializeXMLHttpRequestStaticData):
66420         (WebCore::XMLHttpRequest::XMLHttpRequest):
66421         (WebCore::XMLHttpRequest::isSafeRequestHeader):
66422         (WebCore::XMLHttpRequest::isOnAccessControlResponseHeaderWhitelist):
66423         * xml/XMLHttpRequest.h:
66424
66425 2008-11-27  Cameron Zwarich  <zwarich@apple.com>
66426
66427         Not reviewed.
66428
66429         r38825, was committed without checking whether anything in WebCore
66430         uses JSFunction::m_body. Use the appropriate getters and setters
66431         instead.
66432
66433         * inspector/JavaScriptDebugServer.cpp:
66434         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
66435
66436 2008-11-27  Alexey Proskuryakov  <ap@webkit.org>
66437
66438         Reviewed by Dan Bernstein.
66439
66440         https://bugs.webkit.org/show_bug.cgi?id=22529
66441         Crashes seen on buildbots due to trying to stop a worker thread twice
66442
66443         * dom/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
66444         Don't try to stop the thread if it's already stopping.
66445
66446 2008-11-27  Kent Hansen  <khansen@trolltech.com>
66447
66448         Reviewed by Simon Hausmann.
66449
66450         Make JavaScript bindings for Qt plugin widgets work again
66451         this was a regression; need to handle non-NPAPI plugins as in 4.4.
66452
66453         * bindings/js/ScriptControllerQt.cpp:
66454         (WebCore::ScriptController::createScriptInstanceForWidget):
66455
66456 2008-11-26  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66457
66458         Reviewed by George Staikos.
66459
66460         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22522
66461
66462         Catch WML errors (invalid variable name/reference, multiple access elements, etc)
66463         while parsing the document, and stop parsing immediately and wrap the document
66464         fragment in a XHTML error document, just like it's done from XML parsing errors.
66465
66466         Until now all card elements were hidden by default (no renderer created), and
66467         WMLDocument::finishedParsing() took care of showing the right card (either the first,
66468         or any named card in the document, specified by document URL reference). Change this
66469         behaviour to support displaying partially parsed WML document fragments: Mark the first
66470         WMLCardElement inserted into the document as visible. If the document parsing finishes
66471         without problems, WMLDocument::finishedParsing() will be called, which takes care of
66472         showing the desired card (common case: first card in the document, which is already
66473         visible, so nothing actually has to be done). If an error occours, the document is
66474         correctly rendered until the error happened - wrapped in a XHTML document.
66475
66476         Fixes: fast/wml/err-event-binding-conflict.wml
66477                fast/wml/err-invalid-variable-name.wml
66478                fast/wml/err-multi-access.wml
66479                fast/wml/err-unallowed-task-in-anchor.wml
66480
66481         * WebCore.xcodeproj/project.pbxproj:
66482         * wml/WMLAccessElement.cpp:
66483         (WebCore::WMLAccessElement::parseMappedAttribute):
66484         (WebCore::WMLAccessElement::insertedIntoDocument):
66485         * wml/WMLAccessElement.h:
66486         * wml/WMLCardElement.cpp:
66487         (WebCore::WMLCardElement::insertedIntoDocument):
66488         (WebCore::WMLCardElement::setActiveCardInDocument):
66489         * wml/WMLCardElement.h:
66490         * wml/WMLDocument.cpp:
66491         (WebCore::WMLDocument::finishedParsing):
66492         * wml/WMLErrorHandling.cpp: Added.
66493         (WebCore::reportWMLError):
66494         * wml/WMLErrorHandling.h: Added.
66495         (WebCore::):
66496         * wml/WMLIntrinsicEventHandler.cpp:
66497         (WebCore::WMLIntrinsicEventHandler::registerIntrinsicEvent):
66498         * wml/WMLIntrinsicEventHandler.h:
66499         * wml/WMLNoopElement.cpp:
66500         (WebCore::WMLNoopElement::insertedIntoDocument):
66501         * wml/WMLOnEventElement.cpp:
66502         (WebCore::WMLOnEventElement::parseMappedAttribute):
66503         (WebCore::WMLOnEventElement::registerTask):
66504         * wml/WMLPageState.cpp:
66505         (WebCore::WMLPageState::setNeedCheckDeckAccess):
66506         * wml/WMLPageState.h:
66507         * wml/WMLSetvarElement.cpp:
66508         (WebCore::WMLSetvarElement::parseMappedAttribute):
66509
66510 2008-11-26  Glenn Wilson  <gwilson@chromium.org>
66511
66512         Reviewed by Dan Bernstein.
66513
66514         Fixed bug http://bugs.webkit.org/show_bug.cgi?id=21953
66515
66516         This fixes the crash when the small-caps font variant is used
66517         on a lower-case glyph that does not have a corresponding
66518         upper-case glyph defined in the set of available fonts.
66519
66520         This changes Font.cpp to check if the font being used exists before trying to apply the small-caps variant.
66521
66522         Test: fast/css/small-caps-crash.html
66523
66524         * platform/graphics/Font.cpp:
66525         (WebCore::Font::glyphDataForCharacter):
66526
66527 2008-11-26  Tony Chang  <tony@chromium.org>
66528
66529         Reviewed by Oliver Hunt.
66530
66531         Add a new platform specific method cleanupAfterSystemDrag
66532         that platforms can ue to clean up drag state after a
66533         system drag.  Use this method on PLAFORM(MAC).
66534         https://bugs.webkit.org/show_bug.cgi?id=21956
66535
66536         * ChangeLog:
66537         * page/DragController.cpp:
66538         (WebCore::DragController::doSystemDrag):
66539         * page/DragController.h:
66540         * page/gtk/DragControllerGtk.cpp:
66541         (WebCore::DragController::cleanupAfterSystemDrag):
66542         * page/mac/DragControllerMac.mm:
66543         (WebCore::DragController::cleanupAfterSystemDrag):
66544         * page/qt/DragControllerQt.cpp:
66545         (WebCore::DragController::cleanupAfterSystemDrag):
66546         * page/win/DragControllerWin.cpp:
66547         (WebCore::DragController::cleanupAfterSystemDrag):
66548         * page/wx/DragControllerWx.cpp:
66549       (WebCore::DragController::cleanupAfterSystemDrag):
66550
66551 2008-11-26  Nikolas Zimmermann  <zimmermann@kde.org>
66552
66553         Reviewed by Oliver Hunt.
66554
66555         Fix path to string logic, correctly taking closed (sub-)paths into account.
66556         Code was just broken on cg, observed by Dirk Schulze.
66557
66558         QPainterPath doesn't seem to expose any functionality to detect closed sub paths,
66559         using the elementAt() function. There might be a workaround - Dirk will investigate.
66560
66561         * platform/graphics/cg/PathCG.cpp:
66562         (WebCore::CGPathToCFStringApplierFunction):
66563         * platform/graphics/cairo/PathCairo.cpp:
66564         (WebCore::Path::debugString):
66565
66566 2008-11-26  Darin Fisher  <darin@chromium.org>
66567
66568         Reviewed by Eric Seidel.
66569
66570         https://bugs.webkit.org/show_bug.cgi?id=22519
66571         Remove unnecessary include.
66572
66573         * dom/XMLTokenizer.cpp:
66574
66575 2008-11-26  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66576
66577         Reviewed by Oliver Hunt.
66578
66579         Add <noop> element support, completing the task element support.
66580
66581         * WebCore.xcodeproj/project.pbxproj:
66582         * wml/WMLNoopElement.cpp: Added.
66583         (WebCore::WMLNoopElement::WMLNoopElement):
66584         (WebCore::WMLNoopElement::insertedIntoDocument):
66585         * wml/WMLNoopElement.h: Added.
66586         * wml/WMLTagNames.in: Reorganize file a bit.
66587
66588 2008-11-26  Julien Chaffraix  <jchaffraix@webkit.org>
66589
66590         Reviewed by Eric Seidel.
66591
66592         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
66593         https://bugs.webkit.org/show_bug.cgi?id=22441
66594
66595         Make more HTML elements' constructors take a QualifiedName.
66596
66597         * editing/DeleteButtonController.cpp:
66598         (WebCore::DeleteButtonController::createDeletionUI):
66599         * html/HTMLBlockquoteElement.cpp:
66600         (WebCore::HTMLBlockquoteElement::HTMLBlockquoteElement):
66601         * html/HTMLBlockquoteElement.h:
66602         * html/HTMLButtonElement.cpp:
66603         (WebCore::HTMLButtonElement::HTMLButtonElement):
66604         * html/HTMLButtonElement.h:
66605         * html/HTMLDListElement.cpp:
66606         (WebCore::HTMLDListElement::HTMLDListElement):
66607         * html/HTMLDListElement.h:
66608         * html/HTMLDirectoryElement.cpp:
66609         (WebCore::HTMLDirectoryElement::HTMLDirectoryElement):
66610         * html/HTMLDirectoryElement.h:
66611         * html/HTMLDivElement.cpp:
66612         (WebCore::HTMLDivElement::HTMLDivElement):
66613         * html/HTMLDivElement.h:
66614         * html/HTMLElementFactory.cpp:
66615         (WebCore::styleConstructor):
66616         (WebCore::titleConstructor):
66617         (WebCore::frameConstructor):
66618         (WebCore::framesetConstructor):
66619         (WebCore::iframeConstructor):
66620         (WebCore::formConstructor):
66621         (WebCore::buttonConstructor):
66622         (WebCore::inputConstructor):
66623         (WebCore::isindexConstructor):
66624         (WebCore::fieldsetConstructor):
66625         (WebCore::keygenConstructor):
66626         (WebCore::labelConstructor):
66627         (WebCore::legendConstructor):
66628         (WebCore::optgroupConstructor):
66629         (WebCore::optionConstructor):
66630         (WebCore::selectConstructor):
66631         (WebCore::textareaConstructor):
66632         (WebCore::dlConstructor):
66633         (WebCore::ulConstructor):
66634         (WebCore::olConstructor):
66635         (WebCore::dirConstructor):
66636         (WebCore::menuConstructor):
66637         (WebCore::liConstructor):
66638         (WebCore::blockquoteConstructor):
66639         (WebCore::divConstructor):
66640         (WebCore::headingConstructor):
66641         * html/HTMLFieldSetElement.cpp:
66642         (WebCore::HTMLFieldSetElement::HTMLFieldSetElement):
66643         * html/HTMLFieldSetElement.h:
66644         * html/HTMLFormElement.cpp:
66645         (WebCore::HTMLFormElement::HTMLFormElement):
66646         * html/HTMLFormElement.h:
66647         * html/HTMLFrameElement.cpp:
66648         (WebCore::HTMLFrameElement::HTMLFrameElement):
66649         * html/HTMLFrameElement.h:
66650         * html/HTMLFrameSetElement.cpp:
66651         (WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
66652         * html/HTMLFrameSetElement.h:
66653         * html/HTMLIFrameElement.cpp:
66654         (WebCore::HTMLIFrameElement::HTMLIFrameElement):
66655         * html/HTMLIFrameElement.h:
66656         * html/HTMLInputElement.cpp:
66657         * html/HTMLInputElement.h:
66658         * html/HTMLIsIndexElement.cpp:
66659         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
66660         * html/HTMLIsIndexElement.h:
66661         * html/HTMLKeygenElement.cpp:
66662         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
66663         * html/HTMLKeygenElement.h:
66664         * html/HTMLLIElement.cpp:
66665         (WebCore::HTMLLIElement::HTMLLIElement):
66666         * html/HTMLLIElement.h:
66667         * html/HTMLLabelElement.cpp:
66668         (WebCore::HTMLLabelElement::HTMLLabelElement):
66669         * html/HTMLLabelElement.h:
66670         * html/HTMLLegendElement.cpp:
66671         (WebCore::HTMLLegendElement::HTMLLegendElement):
66672         * html/HTMLLegendElement.h:
66673         * html/HTMLMenuElement.cpp:
66674         (WebCore::HTMLMenuElement::HTMLMenuElement):
66675         * html/HTMLMenuElement.h:
66676         * html/HTMLOListElement.cpp:
66677         (WebCore::HTMLOListElement::HTMLOListElement):
66678         * html/HTMLOListElement.h:
66679         * html/HTMLOptGroupElement.cpp:
66680         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
66681         * html/HTMLOptGroupElement.h:
66682         * html/HTMLOptionElement.cpp:
66683         (WebCore::HTMLOptionElement::HTMLOptionElement):
66684         * html/HTMLOptionElement.h:
66685         * html/HTMLParser.cpp:
66686         (WebCore::HTMLParser::formCreateErrorCheck):
66687         (WebCore::HTMLParser::handleIsindex):
66688         * html/HTMLSelectElement.cpp:
66689         * html/HTMLSelectElement.h:
66690         * html/HTMLStyleElement.cpp:
66691         (WebCore::HTMLStyleElement::HTMLStyleElement):
66692         * html/HTMLStyleElement.h:
66693         * html/HTMLTextAreaElement.cpp:
66694         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
66695         * html/HTMLTextAreaElement.h:
66696         * html/HTMLTitleElement.cpp:
66697         (WebCore::HTMLTitleElement::HTMLTitleElement):
66698         * html/HTMLTitleElement.h:
66699         * html/HTMLUListElement.cpp:
66700         (WebCore::HTMLUListElement::HTMLUListElement):
66701         * html/HTMLUListElement.h:
66702         * html/HTMLViewSourceDocument.cpp:
66703         (WebCore::HTMLViewSourceDocument::createContainingTable):
66704         * rendering/MediaControlElements.cpp:
66705         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
66706         (WebCore::MediaControlInputElement::MediaControlInputElement):
66707         * rendering/RenderFileUploadControl.cpp:
66708         (WebCore::HTMLFileUploadInnerButtonElement::HTMLFileUploadInnerButtonElement):
66709         * rendering/RenderMedia.cpp:
66710         (WebCore::RenderMedia::createPanel):
66711         (WebCore::RenderMedia::createTimeDisplay):
66712         * rendering/RenderSlider.cpp:
66713         (WebCore::HTMLSliderThumbElement::HTMLSliderThumbElement):
66714         * rendering/TextControlInnerElements.cpp:
66715         (WebCore::TextControlInnerElement::TextControlInnerElement):
66716
66717 2008-11-26  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66718
66719         Reviewed by Sam Weinig.
66720
66721         Fix obvious problem in WMLPageState constructor, m_page was not set to the passed Page pointer.
66722
66723         * wml/WMLPageState.cpp:
66724         (WebCore::WMLPageState::WMLPageState):
66725
66726 2008-11-26  Matt Perry  <mpcomplete@gmail.com>
66727
66728         Fix Qt bustage.
66729
66730         See https://bugs.webkit.org/show_bug.cgi?id=22051
66731
66732         * platform/qt/RenderThemeQt.cpp:
66733         (WebCore::RenderThemeQt::extraDefaultStyleSheet):
66734
66735 2008-11-26  Matt Perry  <mpcomplete@gmail.com>
66736
66737         Reviewed by Maciej Stachowiak.
66738
66739         Fix https://bugs.webkit.org/show_bug.cgi?id=22051
66740         Renderthemes should be able to supply additional CSS rules to the core
66741         ones.
66742
66743         * DerivedSources.make:
66744         * css/CSSStyleSelector.cpp:
66745         (WebCore::parseUASheet):
66746         (WebCore::loadFullDefaultStyle):
66747         (WebCore::loadSimpleDefaultStyle):
66748         * css/themeWin.css: Added.
66749         * css/themeWinQuirks.css: Added.
66750         * platform/qt/RenderThemeQt.cpp:
66751         (WebCore::RenderThemeQt::extraDefaultStyleSheet):
66752         * platform/qt/RenderThemeQt.h:
66753         * rendering/RenderTheme.cpp:
66754         * rendering/RenderTheme.h:
66755         (WebCore::RenderTheme::extraDefaultStyleSheet):
66756         (WebCore::RenderTheme::extraQuirksStyleSheet):
66757         * rendering/RenderThemeWin.cpp:
66758         (WebCore::RenderThemeWin::extraDefaultStyleSheet):
66759         (WebCore::RenderThemeWin::extraQuirksStyleSheet):
66760         * rendering/RenderThemeWin.h:
66761
66762 2008-11-26  David Kilzer  <ddkilzer@apple.com>
66763
66764         Make CSSStyleSheet::addSubresourceURLStrings() iterative
66765
66766         Part of the fix for Bug 11850: Webarchive fails to save images referenced in CSS
66767         <https://bugs.webkit.org/show_bug.cgi?id=11850>
66768
66769         Reviewed by Brady Eidson.
66770
66771         * css/CSSStyleSheet.cpp:
66772         (WebCore::CSSStyleSheet::addSubresourceURLStrings): Switch algorithm
66773         from recursive to iterative for gathering the list of all CSS
66774         stylesheets referenced in @import statements.
66775
66776 2008-11-26  Dirk Schulze  <krit@webkit.org>
66777
66778         Reviewed by Simon Hausmann.
66779
66780         Transformations to the context shouldn't transform the currentPath.
66781         Fixed this on Qt.
66782
66783         [QT] GraphicsContext's currenPath can be transformed
66784         https://bugs.webkit.org/show_bug.cgi?id=22163
66785
66786         * platform/graphics/GraphicsContextPrivate.h:
66787         * platform/graphics/qt/GraphicsContextQt.cpp:
66788         (WebCore::GraphicsContext::restorePlatformState):
66789         (WebCore::GraphicsContext::fillPath):
66790         (WebCore::GraphicsContext::strokePath):
66791         (WebCore::GraphicsContext::fillRect):
66792         (WebCore::GraphicsContext::translate):
66793         (WebCore::GraphicsContext::rotate):
66794         (WebCore::GraphicsContext::scale):
66795         (WebCore::GraphicsContext::concatCTM):
66796
66797 2008-11-26  Jan Michael Alonzo  <jmalonzo@webkit.org>
66798
66799         Gtk build script minor fixes. Not reviewed.
66800
66801         * GNUmakefile.am:
66802           - Add ScriptInstance.h (introduced in r38774) to
66803         the build.
66804           - Move WML and GEOLOCATION conditionals before the SVG
66805         conditional to be consistent with the style of the script.
66806           - Move GeolocationGtk sources to webcoregtk_sources.
66807
66808 2008-11-26  Dmitry Titov  <dimich@chromium.org>
66809
66810         Reviewed by Darin Adler and Eric Seidel.
66811
66812         https://bugs.webkit.org/show_bug.cgi?id=22469
66813
66814         Move the class DOMWindowTimer from JSDOMWindowBase into its own file in
66815         preparation to making it work for Workers. For now, just move the code and couple
66816         of global variables.
66817
66818         * GNUmakefile.am:
66819         * WebCore.pro:
66820         * WebCore.vcproj/WebCore.vcproj:
66821         * WebCore.xcodeproj/project.pbxproj:
66822         * WebCoreSources.bkl:
66823         * bindings/js/JSDOMWindowBase.cpp:
66824         (WebCore::JSDOMWindowBase::installTimeout):
66825         (WebCore::JSDOMWindowBase::pauseTimeouts):
66826         (WebCore::JSDOMWindowBase::resumeTimeouts):
66827         (WebCore::JSDOMWindowBase::timerFired):
66828         * bindings/js/JSDOMWindowBase.h:
66829         * bindings/js/DOMTimer.cpp: Added.
66830         (WebCore::DOMTimer::DOMTimer):
66831         (WebCore::DOMTimer::~DOMTimer):
66832         (WebCore::DOMTimer::fired):
66833         * bindings/js/DOMTimer.h: Added.
66834         (WebCore::DOMTimer::timeoutId):
66835         (WebCore::DOMTimer::nestingLevel):
66836         (WebCore::DOMTimer::setNestingLevel):
66837         (WebCore::DOMTimer::action):
66838         (WebCore::DOMTimer::takeAction):
66839
66840 2008-11-25  Darin Fisher  <darin@chromium.org>
66841
66842         Fix bustage.
66843
66844         https://bugs.webkit.org/show_bug.cgi?id=22493
66845         Need to expose bridge/*.h to the WebKit build.
66846
66847         * WebCore.vcproj/WebCore.vcproj:
66848
66849 2008-11-25  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66850
66851         Not reviewed. Fix build, by removing some wrong last-minute changes.
66852
66853         * wml/WMLIntrinsicEvent.cpp:
66854         (WebCore::createTaskElement):
66855         * wml/WMLOnEventElement.cpp:
66856         (WebCore::WMLOnEventElement::registerTask):
66857
66858 2008-11-25  Darin Fisher  <darin@chromium.org>
66859
66860         Reviewed by Geoffrey Garen.
66861
66862         https://bugs.webkit.org/show_bug.cgi?id=22493
66863         Abstract away JSC:: usage in WebCore/html
66864
66865         * WebCore.xcodeproj/project.pbxproj:
66866         * bindings/js/JSPluginElementFunctions.cpp:
66867         (WebCore::pluginInstance):
66868         * bindings/js/ScriptController.h:
66869         * bindings/js/ScriptControllerMac.mm:
66870         (WebCore::ScriptController::createScriptInstanceForWidget):
66871         * bindings/js/ScriptInstance.h: Added.
66872         * html/HTMLPlugInElement.cpp:
66873         (WebCore::HTMLPlugInElement::~HTMLPlugInElement):
66874         (WebCore::HTMLPlugInElement::getInstance):
66875         * html/HTMLPlugInElement.h:
66876
66877 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
66878
66879         Reviewed by Sam Weinig.
66880
66881         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22477
66882
66883         A WMLTaskElement checks wheter it's parent is an <anchor>/<do>/<onevent> element, and calls registerTask(this) on the parent.
66884         Add a isWMLTaskElement() function to WMLElement, making it possible to cast to WMLTaskElement directly.
66885
66886         Add WMLEventHandlingElement class, inheriting from WMLElement, to serve as common base WMLTemplate/Option/CardElement,
66887         centralizing the eventHandler() / createEventHandlerIfNeeded() implementation. Add a isWMLEventHandlingElement()
66888         function to WMLElement, so WMLOnEventElement can create event handlers, without knowing wheter it's a
66889         <template>/<option> or <card> element.
66890
66891         Add complete <onevent> support.
66892
66893         * WebCore.xcodeproj/project.pbxproj:
66894         * wml/WMLCardElement.cpp:
66895         (WebCore::WMLCardElement::WMLCardElement):
66896         (WebCore::WMLCardElement::setActiveCardInDocument):
66897         * wml/WMLCardElement.h:
66898         (WebCore::WMLCardElement::isVisible):
66899         (WebCore::WMLCardElement::setVisible):
66900         * wml/WMLElement.h:
66901         (WebCore::WMLElement::isWMLTaskElement):
66902         * wml/WMLEventHandlingElement.cpp: Added.
66903         (WebCore::WMLEventHandlingElement::WMLEventHandlingElement):
66904         (WebCore::WMLEventHandlingElement::createEventHandlerIfNeeded):
66905         * wml/WMLEventHandlingElement.h: Added.
66906         (WebCore::WMLEventHandlingElement::isWMLEventHandlingElement):
66907         (WebCore::WMLEventHandlingElement::eventHandler):
66908         * wml/WMLOnEventElement.cpp: Added.
66909         (WebCore::WMLOnEventElement::WMLOnEventElement):
66910         (WebCore::WMLOnEventElement::parseMappedAttribute):
66911         (WebCore::WMLOnEventElement::registerTask):
66912         * wml/WMLOnEventElement.h: Added.
66913         * wml/WMLSetvarElement.cpp:
66914         (WebCore::WMLSetvarElement::parseMappedAttribute):
66915         (WebCore::WMLSetvarElement::insertedIntoDocument):
66916         * wml/WMLTagNames.in:
66917         * wml/WMLTaskElement.cpp:
66918         (WebCore::WMLTaskElement::insertedIntoDocument):
66919         * wml/WMLTaskElement.h:
66920         (WebCore::WMLTaskElement::isWMLTaskElement):
66921
66922 2008-11-25  Pierre-Olivier Latour  <pol@apple.com>
66923
66924         Reviewed by Mark Rowe.
66925
66926         createFontCustomPlatformData() crashes if CGFontCreateWithPlatformFont() returns NULL
66927
66928         https://bugs.webkit.org/show_bug.cgi?id=22503
66929
66930         * platform/graphics/mac/FontCustomPlatformData.cpp:
66931         (WebCore::createFontCustomPlatformData):
66932
66933 2008-11-25  Julien Chaffraix  <jchaffraix@webkit.org>
66934
66935         Reviewed by Eric Seidel.
66936
66937         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
66938         https://bugs.webkit.org/show_bug.cgi?id=22441
66939
66940         Element's other than HTML ones take a QualifiedName in their constructors.
66941         To make HTMLElementFactory closer to the other ElementFactory, we need
66942         to make them take the same arguments.
66943         This patch only makes the 5 first one in HTMLElementFactory abide by that. The others
66944         will go into the next patch.
66945
66946         * dom/Document.cpp:
66947         (WebCore::Document::implicitClose):
66948         * html/HTMLBaseElement.cpp:
66949         (WebCore::HTMLBaseElement::HTMLBaseElement):
66950         * html/HTMLBaseElement.h:
66951         * html/HTMLBodyElement.cpp:
66952         (WebCore::HTMLBodyElement::HTMLBodyElement):
66953         * html/HTMLBodyElement.h:
66954         * html/HTMLElementFactory.cpp:
66955         (WebCore::htmlConstructor):
66956         (WebCore::headConstructor):
66957         (WebCore::bodyConstructor):
66958         (WebCore::baseConstructor):
66959         (WebCore::linkConstructor):
66960         (WebCore::metaConstructor):
66961         * html/HTMLHeadElement.cpp:
66962         (WebCore::HTMLHeadElement::HTMLHeadElement):
66963         * html/HTMLHeadElement.h:
66964         * html/HTMLHtmlElement.cpp:
66965         (WebCore::HTMLHtmlElement::HTMLHtmlElement):
66966         * html/HTMLHtmlElement.h:
66967         * html/HTMLLinkElement.cpp:
66968         (WebCore::HTMLLinkElement::HTMLLinkElement):
66969         * html/HTMLLinkElement.h:
66970         * html/HTMLMetaElement.cpp:
66971         (WebCore::HTMLMetaElement::HTMLMetaElement):
66972         * html/HTMLMetaElement.h:
66973         * html/HTMLParser.cpp:
66974         (WebCore::HTMLParser::handleError):
66975         (WebCore::HTMLParser::headCreateErrorCheck):
66976         (WebCore::HTMLParser::createHead):
66977         (WebCore::HTMLParser::finished):
66978         * html/HTMLViewSourceDocument.cpp:
66979         (WebCore::HTMLViewSourceDocument::createContainingTable):
66980
66981 2008-11-25  Chris Marrin  <cmarrin@apple.com>
66982
66983         Reviewed by Dan Bernstein.
66984
66985         Fix for https://bugs.webkit.org/show_bug.cgi?id=22487
66986         I was not checking for the case of 0 length keyframe lists and dereffing a null pointer.
66987
66988         Tests: animations/empty-keyframes.html
66989                animations/fill-unset-properties.html
66990
66991         * css/CSSStyleSelector.cpp:
66992         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
66993
66994 2008-11-25  Chris Marrin  <cmarrin@apple.com>
66995
66996         Reviewed by Darin Adler
66997
66998         https://bugs.webkit.org/show_bug.cgi?id=22046
66999
67000         Fix a crash when an animation or transition end event handler
67001         removes the element upon which the transition/animation is running,
67002         by keeping a reference to the AnimationBase object on the stack.
67003
67004         Tests: animations/transform-animation-event-destroy-element.html
67005                transitions/transform-transition-event-destroy-element.html
67006
67007         * page/animation/AnimationBase.cpp:
67008         (WebCore::AnimationBase::setChanged):
67009         (WebCore::AnimationBase::updateStateMachine):
67010         * page/animation/AnimationBase.h:
67011         (WebCore::AnimationBase::clearRenderer):
67012         * page/animation/AnimationController.cpp:
67013         (WebCore::AnimationControllerPrivate::clear):
67014         * page/animation/CompositeAnimation.cpp:
67015         (WebCore::CompositeAnimationPrivate::~CompositeAnimationPrivate):
67016         * page/animation/CompositeAnimation.h:
67017
67018 2008-11-25  Kevin Ollivier  <kevino@theolliviers.com>
67019
67020         Better wx build fix - support PurgeableBuffer on Mac.
67021
67022         * platform/PurgeableBuffer.h:
67023         * webcore-wx.bkl:
67024
67025 2008-11-25  Holger Hans Peter Freyther  <zecke@selfish.org>
67026
67027         Reviewed by David Kilzer.
67028
67029         https://bugs.webkit.org/show_bug.cgi?id=22022
67030
67031         Add GeoleocationServiceGtk stubs and integrate it into the buildsystem
67032
67033         Add stubs for a Gtk Implementation.
67034
67035         * GNUmakefile.am:
67036         * platform/gtk/GeolocationServiceGtk.cpp: Added.
67037         (WebCore::GeolocationService::create):
67038         (WebCore::GeolocationServiceGtk::GeolocationServiceGtk):
67039         (WebCore::GeolocationServiceGtk::startUpdating):
67040         (WebCore::GeolocationServiceGtk::stopUpdating):
67041         (WebCore::GeolocationServiceGtk::suspend):
67042         (WebCore::GeolocationServiceGtk::resume):
67043         (WebCore::GeolocationServiceGtk::lastPosition):
67044         (WebCore::GeolocationServiceGtk::lastError):
67045         * platform/gtk/GeolocationServiceGtk.h: Added.
67046
67047 2008-11-25  Kevin Ollivier  <kevino@theolliviers.com>
67048
67049         wx build fix - we don't support PurgeableBuffer on Leopard for now.
67050
67051         * platform/PurgeableBuffer.h:
67052
67053 2008-11-25  Antti Koivisto  <antti@apple.com>
67054
67055         Reviewed by Mark Rowe.
67056
67057         Fix https://bugs.webkit.org/show_bug.cgi?id=22483
67058         Assertion failure in CachedResource::makePurgeable during layout tests
67059
67060         Deleting SVG image can re-enter destroyDecodedData.
67061
67062         * loader/CachedImage.cpp:
67063         (WebCore::CachedImage::destroyDecodedData):
67064
67065 2008-11-25  David Levin  <levin@chromium.org>
67066
67067         Reviewed by Alexey Proskuryakov.
67068
67069         https://bugs.webkit.org/show_bug.cgi?id=22443
67070         Made the PreflightResultCache thread-safe in preparation for usage of XMLHttpRequest by
67071         Workers on threads.
67072
67073         No observable change in behavior, so no test.
67074
67075         * platform/text/PlatformString.h:
67076         * platform/text/String.cpp:
67077         (WebCore::String::substringCopy):
67078         * platform/text/StringImpl.cpp:
67079         (WebCore::StringImpl::substringCopy):
67080         * platform/text/StringImpl.h:
67081         Added the ability to copy a substring.
67082
67083         * xml/XMLHttpRequest.cpp:
67084         (WebCore::PreflightResultCacheItem::PreflightResultCacheItem):
67085         (WebCore::PreflightResultCache::PreflightResultCache):
67086         (WebCore::PreflightResultCacheItem::addToAccessControlAllowList):
67087         (WebCore::PreflightResultCacheItem::parseAccessControlAllowList):
67088         (WebCore::PreflightResultCacheItem::parseAccessControlMaxAge):
67089         (WebCore::PreflightResultCacheItem::parse):
67090         (WebCore::PreflightResultCacheItem::allowsRequest):
67091         (WebCore::PreflightResultCache::shared):
67092         (WebCore::PreflightResultCache::appendEntry):
67093         (WebCore::PreflightResultCache::canSkipPreflight):
67094         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
67095         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
67096         Made the PreflightResultCache threadsafe.
67097
67098         (WebCore::PreflightResultCacheItem::allowsCrossSiteMethod):
67099         (WebCore::PreflightResultCacheItem::allowsCrossSiteHeaders):
67100         Consolidation of duplicate logic.
67101
67102 2008-11-24  Jungshik Shin  <jshin@chromium.org>
67103
67104         Reviewed by Darin Adler.
67105
67106         For Unicode encodings other than UTF-8, use UTF-8 for
67107         form submission and URL query part encoding.
67108
67109         See https://bugs.webkit.org/show_bug.cgi?id=21635
67110
67111         Tests: http/tests/misc/submit-get-in-utf16be.html
67112                http/tests/misc/submit-get-in-utf16le.html
67113                http/tests/misc/submit-get-in-utf32be.html
67114                http/tests/misc/submit-get-in-utf32le.html
67115                http/tests/misc/submit-get-in-utf7.html
67116                http/tests/misc/submit-post-in-utf16be.html
67117                http/tests/misc/submit-post-in-utf16le.html
67118                http/tests/misc/submit-post-in-utf32be.html
67119                http/tests/misc/submit-post-in-utf32le.html
67120                http/tests/misc/submit-post-in-utf7.html
67121                http/tests/misc/url-in-utf16be.html
67122                http/tests/misc/url-in-utf16le.html
67123                http/tests/misc/url-in-utf32be.html
67124                http/tests/misc/url-in-utf32le.html
67125                http/tests/misc/url-in-utf7.html
67126
67127         * html/HTMLFormElement.cpp:
67128         (WebCore::HTMLFormElement::formData):
67129         * loader/TextResourceDecoder.cpp:
67130         (WebCore::TextResourceDecoder::setEncoding):
67131         * platform/KURL.cpp:
67132         (WebCore::KURL::KURL):
67133         * platform/text/TextEncoding.cpp:
67134         (WebCore::UTF7Encoding):
67135         (WebCore::TextEncoding::isNonByteBasedEncoding):
67136         (WebCore::TextEncoding::closestByteBasedEquivalent):
67137         (WebCore::TextEncoding::encodingForFormSubmission):
67138         * platform/text/TextEncoding.h:
67139
67140 2008-11-24  Julien Chaffraix  <jchaffraix@webkit.org>
67141
67142         Reviewed by Darin Adler.
67143
67144         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
67145         https://bugs.webkit.org/show_bug.cgi?id=22441
67146
67147         - Make the generated ElementFactory constructors return PassRefPtr instead of raw pointers.
67148
67149         - Tweaked the generated files to better match our coding style.
67150
67151         * dom/make_names.pl:
67152
67153 2008-11-24  Antti Koivisto  <antti@apple.com>
67154
67155         Reviewed by Darin Adler.
67156
67157         Fix for https://bugs.webkit.org/show_bug.cgi?id=22073
67158         REGRESSION(r33544): Palace in the Sky crashes WebKit
67159
67160         HTMLTokenizer::m_hasScriptsWaitingForStylesheets would still be set while
67161         there were no scripts left to execute.
67162
67163         If m_hasScriptsWaitingForStylesheets becomes true during script execution
67164         bail out from executing more scripts synchronously.
67165
67166         Test: fast/tokenizer/nested-cached-scripts-and-stylesheet.html
67167
67168         * html/HTMLTokenizer.cpp:
67169         (WebCore::HTMLTokenizer::reset):
67170         (WebCore::HTMLTokenizer::notifyFinished):
67171
67172 2008-11-24  Darin Fisher  <darin@chromium.org>
67173
67174         Reviewed by Geoffrey Garen.
67175
67176         https://bugs.webkit.org/show_bug.cgi?id=22465
67177         Define KURL::copy() and use it in WorkerThread.cpp
67178
67179         * dom/WorkerThread.cpp:
67180         (WebCore::WorkerThread::WorkerThread):
67181         * platform/KURL.cpp:
67182         (WebCore::KURL::copy):
67183         * platform/KURL.h:
67184
67185 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67186
67187         Reviewed by Sam Weinig.
67188
67189         Name enum values in a style guide compatible way.
67190         Allow WMLIntrinsicEvent inclusion, without needing other includes.
67191
67192         * wml/WMLIntrinsicEvent.cpp:
67193         (WebCore::createTaskElement):
67194         * wml/WMLIntrinsicEvent.h:
67195         * wml/WMLIntrinsicEventHandler.cpp:
67196         * wml/WMLIntrinsicEventHandler.h:
67197         (WebCore::):
67198
67199 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67200
67201         Reviewed by Sam Weinig.
67202
67203         Add wmlPageStateForDocument() helper function and use it in some places.
67204
67205         * wml/WMLAccessElement.cpp:
67206         (WebCore::WMLAccessElement::parseMappedAttribute):
67207         * wml/WMLDocument.cpp:
67208         (WebCore::WMLDocument::WMLDocument):
67209         (WebCore::WMLDocument::finishedParsing):
67210         (WebCore::wmlPageStateForDocument):
67211         * wml/WMLDocument.h:
67212         * wml/WMLGoElement.cpp:
67213         (WebCore::WMLGoElement::executeTask):
67214         * wml/WMLPrevElement.cpp:
67215         (WebCore::WMLPrevElement::executeTask):
67216         * wml/WMLRefreshElement.cpp:
67217         (WebCore::WMLRefreshElement::executeTask):
67218         * wml/WMLTaskElement.cpp:
67219         (WebCore::WMLTaskElement::storeVariableState):
67220         * wml/WMLTaskElement.h:
67221
67222 2008-11-24  Antti Koivisto  <antti@apple.com>
67223
67224         Reviewed by Geoff Garen and Sam Weinig.
67225
67226         https://bugs.webkit.org/show_bug.cgi?id=22214
67227         Keep dead resources in memory cache in purgeable memory.
67228         <rdar://problem/6333088>
67229
67230         OS X 10.5 has purgeable memory kernel facility that allows marking reserved memory
67231         areas as less important. Under memory pressure system can steal pages that have
67232         been marked purgeable for (hopefully) better uses. This is ideal for caches.
67233
67234         Only resources larger than 16KB will be moved to the purgeable memory.
67235
67236         * WebCore.base.exp:
67237         * WebCore.vcproj/WebCore.vcproj:
67238         * WebCore.xcodeproj/project.pbxproj:
67239         * loader/Cache.cpp:
67240         (WebCore::Cache::requestResource):
67241         (WebCore::Cache::requestUserCSSStyleSheet):
67242         (WebCore::Cache::resourceForURL):
67243         (WebCore::Cache::pruneDeadResources):
67244         (WebCore::Cache::TypeStatistic::addResource):
67245         (WebCore::Cache::getStatistics):
67246         (WebCore::Cache::dumpStats):
67247         * loader/Cache.h:
67248         (WebCore::Cache::TypeStatistic::TypeStatistic):
67249         * loader/CachedCSSStyleSheet.cpp:
67250         (WebCore::CachedCSSStyleSheet::allClientsRemoved):
67251         (WebCore::CachedCSSStyleSheet::sheetText):
67252         * loader/CachedCSSStyleSheet.h:
67253         * loader/CachedImage.cpp:
67254         (WebCore::CachedImage::addClient):
67255         (WebCore::CachedImage::image):
67256         (WebCore::CachedImage::imageSize):
67257         (WebCore::CachedImage::imageRect):
67258         (WebCore::CachedImage::destroyDecodedData):
67259         * loader/CachedResource.cpp:
67260         (WebCore::CachedResource::addClient):
67261         (WebCore::CachedResource::makePurgeable):
67262         (WebCore::CachedResource::isPurgeable):
67263         (WebCore::CachedResource::wasPurged):
67264         * loader/CachedResource.h:
67265         (WebCore::CachedResource::data):
67266         * loader/CachedScript.cpp:
67267         (WebCore::CachedScript::allClientsRemoved):
67268         (WebCore::CachedScript::script):
67269         (WebCore::CachedScript::destroyDecodedData):
67270         * platform/PurgeableBuffer.h: Added.
67271         (WebCore::PurgeableBuffer::create):
67272         (WebCore::PurgeableBuffer::size):
67273         (WebCore::PurgeableBuffer::):
67274         (WebCore::PurgeableBuffer::purgePriority):
67275         (WebCore::PurgeableBuffer::isPurgeable):
67276         (WebCore::PurgeableBuffer::~PurgeableBuffer):
67277         (WebCore::PurgeableBuffer::data):
67278         (WebCore::PurgeableBuffer::setPurgePriority):
67279         (WebCore::PurgeableBuffer::wasPurged):
67280         (WebCore::PurgeableBuffer::makePurgeable):
67281         * platform/SharedBuffer.cpp:
67282         (WebCore::SharedBuffer::~SharedBuffer):
67283         (WebCore::SharedBuffer::adoptPurgeableBuffer):
67284         (WebCore::SharedBuffer::size):
67285         (WebCore::SharedBuffer::data):
67286         (WebCore::SharedBuffer::append):
67287         (WebCore::SharedBuffer::clear):
67288         (WebCore::SharedBuffer::releasePurgeableBuffer):
67289         * platform/SharedBuffer.h:
67290         (WebCore::SharedBuffer::hasPurgeableBuffer):
67291         * platform/cf/SharedBufferCF.cpp:
67292         * platform/mac/PurgeableBufferMac.cpp: Added.
67293         (WebCore::PurgeableBuffer::PurgeableBuffer):
67294         (WebCore::PurgeableBuffer::~PurgeableBuffer):
67295         (WebCore::PurgeableBuffer::create):
67296         (WebCore::PurgeableBuffer::makePurgeable):
67297         (WebCore::PurgeableBuffer::wasPurged):
67298         (WebCore::PurgeableBuffer::setPurgePriority):
67299         (WebCore::PurgeableBuffer::data):
67300
67301 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67302
67303         Reviewed by George Staikos & Eric Seidel.
67304
67305         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22430
67306
67307         Regenerate WML layout test results after implementing WML specific <card> handling:
67308         Only the first <card> element should be visible after loading the document, others
67309         can be shown by using the <go> task element.
67310
67311         * dom/Document.h: Make 'finishedParsing()' a virtual function.
67312         * wml/WMLCardElement.cpp:
67313         (WebCore::WMLCardElement::WMLCardElement):
67314         (WebCore::WMLCardElement::~WMLCardElement):
67315         (WebCore::WMLCardElement::createRenderer):
67316         (WebCore::WMLCardElement::setActiveCardInDocument):
67317         (WebCore::WMLCardElement::setVisibility):
67318         * wml/WMLCardElement.h:
67319         * wml/WMLDocument.cpp:
67320         (WebCore::WMLDocument::finishedParsing): Execute WML specific logic after tokenzing.
67321         * wml/WMLDocument.h:
67322
67323 2008-11-24  Glenn Wilson  <gwilson@chromium.org>
67324
67325         Reviewed by Alexey Proskuryakov.
67326
67327         http://bugs.webkit.org/show_bug.cgi?id=15643
67328
67329         Added support for clients that wish to disable smart insert/delete
67330         and enable the "trailing whitespace selection" work-around.
67331
67332         Tests: editing/selection/doubleclick-whitespace.html
67333
67334         * editing/Editor.cpp:
67335         (WebCore::Editor::selectTrailingWhitespaceEnabled):
67336         * editing/Editor.h:
67337         * editing/Selection.cpp:
67338         (WebCore::Selection::includeTrailingWhitespace):
67339         * editing/Selection.h:
67340         * loader/EmptyClients.h:
67341         (WebCore::EmptyEditorClient::selectTrailingWhitespaceEnabled):
67342         * page/EditorClient.h:
67343         * page/EventHandler.cpp:
67344         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
67345
67346 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67347
67348         Not reviewed. Forgot to include WMLPageState.h in last commit.
67349
67350         * wml/WMLPageState.h:
67351         (WebCore::WMLPageState::restrictDeckAccessToDomain):
67352         (WebCore::WMLPageState::restrictDeckAccessToPath):
67353
67354 2008-11-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67355
67356         Reviewed by Oliver Hunt & Eric Seidel.
67357
67358         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22431
67359
67360         Implement WMLAccessElement. It just propogates two attributes values to WMLPageState.
67361
67362         * WebCore.xcodeproj/project.pbxproj:
67363         * wml/WMLAccessElement.cpp: Added.
67364         (WebCore::WMLAccessElement::WMLAccessElement):
67365         (WebCore::WMLAccessElement::parseMappedAttribute):
67366         * wml/WMLAccessElement.h: Added.
67367         * wml/WMLTagNames.in:
67368         * wml/WMLPageState.h: Rename functions.
67369         (WebCore::WMLPageState::restrictDeckAccessToDomain):
67370         (WebCore::WMLPageState::restrictDeckAccessToPath):
67371         * wml/WMLVariables.cpp: Add new helper function.
67372         (WebCore::valueContainsVariableReference):
67373         * wml/WMLVariables.h:
67374         (WebCore::):
67375
67376 2008-11-24  Darin Adler  <darin@apple.com>
67377
67378         Reviewed by Dan Bernstein.
67379
67380         - https://bugs.webkit.org/show_bug.cgi?id=22470
67381           remove unneeded URL argument from FrameLoaderClient::updateGlobalHistory
67382
67383         * loader/EmptyClients.h:
67384         (WebCore::EmptyFrameLoaderClient::updateGlobalHistory): Remove argument.
67385         * loader/FrameLoader.cpp:
67386         (WebCore::FrameLoader::updateHistoryForStandardLoad): Don't pass the URL.
67387         (WebCore::FrameLoader::updateHistoryForRedirectWithLockedHistory): Ditto.
67388         * loader/FrameLoaderClient.h: Remove argument.
67389
67390 2008-11-24  Finnur Thorarinsson  <finnur.webkit@gmail.com>
67391
67392         Reviewed by Darin Adler.
67393
67394         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22432
67395
67396         Add plumbing for tickmark support for the scrollbars. The painting code
67397         for the scrollbar just needed to call paintTickmarks at the right time
67398         and a default no-op implementation is provided, which the ports will
67399         need to override.
67400
67401         * platform/ScrollbarThemeComposite.cpp:
67402         (WebCore::ScrollbarThemeComposite::paint):
67403         * platform/ScrollbarThemeComposite.h:
67404         (WebCore::ScrollbarThemeComposite::paintTickmarks):
67405
67406 2008-11-24  Darin Fisher  <darin@chromium.org>
67407
67408         Reviewed by Sam Weinig.
67409
67410         https://bugs.webkit.org/show_bug.cgi?id=22448
67411         Create an abstraction for JSC::SourceCode
67412
67413         * WebCore.vcproj/WebCore.vcproj:
67414         * bindings/js/CachedScriptSourceProvider.h:
67415         * bindings/js/ScriptController.cpp:
67416         (WebCore::ScriptController::evaluate):
67417         * bindings/js/ScriptController.h:
67418         * bindings/js/ScriptSourceCode.h: Added.
67419         (WebCore::ScriptSourceCode::ScriptSourceCode):
67420         (WebCore::ScriptSourceCode::length):
67421         (WebCore::ScriptSourceCode::jsSourceCode):
67422         * bindings/js/WorkerScriptController.cpp:
67423         (WebCore::Workevn ScriptController::evaluate):
67424         * bindings/js/WorkerScriptController.h:
67425         * dom/ScriptElement.cpp:
67426         (WebCore::ScriptElement::insertedIntoDocument):
67427         (WebCore::ScriptElement::childrenChanged):
67428         (WebCore::ScriptElementData::evaluateScript):
67429         (WebCore::ScriptElementData::notifyFinished):
67430         * dom/ScriptElement.h:
67431         * dom/WorkerThread.cpp:
67432         (WebCore::WorkerThread::workerThread):
67433         * dom/WorkerThread.h:
67434         * dom/XMLTokenizer.cpp:
67435         (WebCore::XMLTokenizer::notifyFinished):
67436         * dom/XMLTokenizerLibxml2.cpp:
67437         (WebCore::XMLTokenizer::endElementNs):
67438         * dom/XMLTokenizerQt.cpp:
67439         (WebCore::XMLTokenizer::parseEndElement):
67440         * html/HTMLTokenizer.cpp:
67441         (WebCore::HTMLTokenizer::scriptHandler):
67442         (WebCore::HTMLTokenizer::scriptExecution):
67443         (WebCore::HTMLTokenizer::notifyFinished):
67444         * html/HTMLTokenizer.h:
67445         * loader/FrameLoader.cpp:
67446         (WebCore::FrameLoader::executeScript):
67447         * loader/FrameLoader.h:
67448
67449 2008-11-24  Darin Adler  <darin@apple.com>
67450
67451         Reviewed by Dan Bernstein.
67452
67453         - finish https://bugs.webkit.org/show_bug.cgi?id=22295
67454           track which history items are from page load failures
67455
67456         * WebCore.base.exp: Exported new function.
67457
67458         * loader/DocumentLoader.cpp:
67459         (WebCore::DocumentLoader::urlForHistoryReflectsFailure): Added.
67460         * loader/DocumentLoader.h: Ditto.
67461
67462 2008-11-24  Chris Fleizach  <cfleizach@apple.com>
67463
67464         Reviewed by Beth Dakin.
67465
67466         Bug 22461: AccessibilityListBox::doAccessibilityHitTest() signature does not match the base class
67467         https://bugs.webkit.org/show_bug.cgi?id=22461
67468
67469         Changing AccessibilityListBox to use its parent's signature for hit testing
67470
67471         * page/AccessibilityListBox.cpp:
67472         (WebCore::AccessibilityListBox::doAccessibilityHitTest):
67473         * page/AccessibilityListBox.h:
67474
67475 2008-11-24  Simon Fraser  <simon.fraser@apple.com>
67476
67477         Fix Windows build: selectionRect() -> selectionBounds().
67478
67479         * page/win/FrameCGWin.cpp:
67480         (WebCore::imageFromSelection):
67481
67482 2008-11-24  Glenn Wilson  <gwilson@chromium.org>
67483
67484         Reviewed by Darin Adler.
67485
67486         http://bugs.webkit.org/show_bug.cgi?id=18703
67487         "Changing the 'size' property on a text input does not affect its length"
67488
67489         Text fields would not repaint themselves after having their "size"
67490         attributes modified.  This fix tells the object to recalculate its
67491         width and repaint itself when its "size" attribute is parsed.
67492
67493         Test: fast/js/text-field-resize.html
67494
67495         * html/HTMLInputElement.cpp:
67496         (WebCore::HTMLInputElement::parseMappedAttribute):
67497
67498 2008-11-24  Simon Fraser  <simon.fraser@apple.com>
67499
67500         Reviewed by Darin Adler
67501
67502         Followup from changes for https://bugs.webkit.org/show_bug.cgi?id=22433
67503
67504         Make RenderView::selectionRect() private to cause compile-time
67505         errors if someone tries to call it.
67506
67507         * rendering/RenderView.h:
67508
67509 2008-11-24  Simon Fraser  <simon.fraser@apple.com>
67510
67511         Reviewed by Dan Bernstein
67512
67513         Via: https://bugs.webkit.org/show_bug.cgi?id=22433
67514
67515         Rename RenderView::selectionRect() to selectionBounds(), to remove
67516         longstanding ambiguity with the base class selectionRect() method.
67517         Do the same on Frame for consistency with RenderView. Assert
67518         that RenderView::selectionRect() is never called.
67519
67520         * WebCore.base.exp:
67521         * editing/SelectionController.cpp:
67522         (WebCore::SelectionController::focusedOrActiveStateChanged):
67523         * page/DragController.cpp:
67524         (WebCore::dragLocForSelectionDrag):
67525         * page/Frame.cpp:
67526         (WebCore::Frame::selectionBounds):
67527         (WebCore::Frame::revealSelection):
67528         * page/Frame.h:
67529         * page/mac/FrameMac.mm:
67530         (WebCore::Frame::selectionImage):
67531         * rendering/RenderView.cpp:
67532         (WebCore::RenderView::selectionRect):
67533         (WebCore::RenderView::selectionBounds):
67534         * rendering/RenderView.h:
67535
67536 2008-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
67537
67538         Reviewed by Darin Adler.
67539
67540         Bug 22441: Bridge the gap between the generated ElementFactory and HTMLElementFactory
67541         https://bugs.webkit.org/show_bug.cgi?id=22441
67542
67543         - Make HTMLElementFactory::createHTMLElement take a QualifiedName instead of
67544         an AtomicString.
67545
67546         - Updated the elements' constructors and the callers to reflect the previous change.
67547
67548         * dom/Document.cpp:
67549         (WebCore::Document::createElement):
67550         * html/HTMLDocument.cpp:
67551         (WebCore::HTMLDocument::createElement):
67552         * html/HTMLElement.cpp:
67553         (WebCore::HTMLElement::cloneNode):
67554         * html/HTMLElementFactory.cpp:
67555         (WebCore::htmlConstructor):
67556         (WebCore::headConstructor):
67557         (WebCore::bodyConstructor):
67558         (WebCore::baseConstructor):
67559         (WebCore::linkConstructor):
67560         (WebCore::metaConstructor):
67561         (WebCore::styleConstructor):
67562         (WebCore::titleConstructor):
67563         (WebCore::frameConstructor):
67564         (WebCore::framesetConstructor):
67565         (WebCore::iframeConstructor):
67566         (WebCore::formConstructor):
67567         (WebCore::buttonConstructor):
67568         (WebCore::inputConstructor):
67569         (WebCore::isindexConstructor):
67570         (WebCore::fieldsetConstructor):
67571         (WebCore::keygenConstructor):
67572         (WebCore::labelConstructor):
67573         (WebCore::legendConstructor):
67574         (WebCore::optgroupConstructor):
67575         (WebCore::optionConstructor):
67576         (WebCore::selectConstructor):
67577         (WebCore::textareaConstructor):
67578         (WebCore::dlConstructor):
67579         (WebCore::ulConstructor):
67580         (WebCore::olConstructor):
67581         (WebCore::dirConstructor):
67582         (WebCore::menuConstructor):
67583         (WebCore::liConstructor):
67584         (WebCore::blockquoteConstructor):
67585         (WebCore::divConstructor):
67586         (WebCore::headingConstructor):
67587         (WebCore::hrConstructor):
67588         (WebCore::paragraphConstructor):
67589         (WebCore::preConstructor):
67590         (WebCore::basefontConstructor):
67591         (WebCore::fontConstructor):
67592         (WebCore::modConstructor):
67593         (WebCore::anchorConstructor):
67594         (WebCore::imageConstructor):
67595         (WebCore::mapConstructor):
67596         (WebCore::areaConstructor):
67597         (WebCore::canvasConstructor):
67598         (WebCore::appletConstructor):
67599         (WebCore::embedConstructor):
67600         (WebCore::objectConstructor):
67601         (WebCore::paramConstructor):
67602         (WebCore::scriptConstructor):
67603         (WebCore::tableConstructor):
67604         (WebCore::tableCaptionConstructor):
67605         (WebCore::tableColConstructor):
67606         (WebCore::tableRowConstructor):
67607         (WebCore::tableCellConstructor):
67608         (WebCore::tableSectionConstructor):
67609         (WebCore::brConstructor):
67610         (WebCore::quoteConstructor):
67611         (WebCore::marqueeConstructor):
67612         (WebCore::audioConstructor):
67613         (WebCore::videoConstructor):
67614         (WebCore::sourceConstructor):
67615         (WebCore::HTMLElementFactory::createHTMLElement):
67616         * html/HTMLElementFactory.h:
67617         * html/HTMLParser.cpp:
67618         (WebCore::HTMLParser::getNode):
67619
67620 2008-11-24  Brent Fulgham  <bfulgham@gmail.com>
67621
67622         Reviewed by Alexey Proskuryakov.
67623
67624         https://bugs.webkit.org/show_bug.cgi?id=22444
67625
67626         Correct bad default constructor for Cairo FontPlatformData so that
67627         the m_scaledFont member is initialized.  Previously this would be
67628         set to 0xbaadf00d, which would result in infinite loops while
67629         attempting to deal with the font cache.
67630
67631         * platform/graphics/win/FontPlatformData.h:
67632         (WebCore::FontPlatformData::FontPlatformData): Initialize m_scaledFont to 0
67633
67634 2008-11-24  Alexey Proskuryakov  <ap@webkit.org>
67635
67636         Reviewed by Darin Adler.
67637
67638         https://bugs.webkit.org/show_bug.cgi?id=22455
67639         Add support for Worker.terminate()
67640
67641         Test: fast/workers/worker-terminate.html
67642
67643         * dom/Worker.idl:
67644         * dom/Worker.cpp:
67645         * dom/Worker.h:
67646         Added terminate().
67647
67648         * dom/WorkerMessagingProxy.h: (WebCore::WorkerMessagingProxy::askedToTerminate):
67649         * dom/WorkerMessagingProxy.cpp:
67650         (WebCore::MessageWorkerTask::performTask): Don't dispatch messages if the worker was asked
67651         to terminate (this is not mentioned in draft spec, but makes sense anyway).
67652         (WebCore::WorkerMessagingProxy::WorkerMessagingProxy): The proxy now remembers if it was
67653         asked to terminate in m_askedToTerminate member variable. Also, changed m_unconfirmedMessageCount
67654         to only track messages that were posted to worker thread, avoiding a leak if the script
67655         could not be loaded.
67656         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext): Return early if terminating.
67657         (WebCore::WorkerMessagingProxy::workerThreadCreated): Stop the thread if already asked for.
67658         (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal): Even if worker context
67659         was destroyed, the worker object may still be alive now, so don't delete self in this case.
67660         (WebCore::WorkerMessagingProxy::terminate): Stop the thread if it was already created, or
67661         remember to stop it when it is created.
67662         (WebCore::WorkerMessagingProxy::reportWorkerThreadActivityInternal): Don't track activity
67663         if the thread asked to stop anyway.
67664         (WebCore::WorkerMessagingProxy::workerThreadHasPendingActivity): Ditto.
67665
67666         * dom/WorkerThread.cpp:
67667         * dom/WorkerThread.h:
67668         Fixed a race condition in stop().
67669
67670 2008-11-24  Alexey Proskuryakov  <ap@webkit.org>
67671
67672         Reviewed by Mark Rowe.
67673
67674         https://bugs.webkit.org/show_bug.cgi?id=22439
67675         Won't load stylesheets with filenames less than 2 characters long in xhtml.
67676
67677         Test: http/tests/misc/single-character-pi-stylesheet.xhtml
67678
67679         * dom/ProcessingInstruction.cpp: (WebCore::ProcessingInstruction::checkStyleSheet):
67680         Fix up the logic.
67681
67682 2008-11-24  Holger Hans Peter Freyther  <zecke@selfish.org>
67683
67684         Reviewed by Mark Rowe.
67685
67686         [Gtk+] Add configure option to enable Web Workers and enable it by default
67687
67688         Add --enable-workers to the buildsystem (used by build-webkit) add
67689         the to be build files to the GNUmakefile.am and change build-webkit
67690         to enable Web Workers by default.
67691
67692         * GNUmakefile.am:
67693
67694 2008-11-24  Alexey Proskuryakov  <ap@webkit.org>
67695
67696         Build fix (for Windows Cairo port?)
67697
67698         * page/DOMWindow.idl: Use ENABLE_CHANNEL_MESSAGING instead of ENABLE(CHANNEL_MESSAGING), as
67699         the ENABLE macro is not available in idls.
67700
67701 2008-11-22  Dimitri Glazkov  <dglazkov@chromium.org>
67702
67703         Reviewed by Darin Adler.
67704
67705         https://bugs.webkit.org/show_bug.cgi?id=22421
67706         Added ScriptValue to Visual Studio and XCode projects.
67707
67708         * WebCore.vcproj/WebCore.vcproj:
67709         * WebCore.xcodeproj/project.pbxproj:
67710
67711 2008-11-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67712
67713         Reviewed by Holger Freyther.
67714
67715         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22426
67716
67717         Add WMLInstrinsicEvent/EventHandler implementation. Code not yet used.
67718
67719         * WebCore.xcodeproj/project.pbxproj:
67720         * wml/WMLIntrinsicEvent.cpp: Added.
67721         (WebCore::createTaskElement):
67722         (WebCore::WMLIntrinsicEvent::WMLIntrinsicEvent):
67723         * wml/WMLIntrinsicEvent.h: Added.
67724         (WebCore::WMLIntrinsicEvent::create):
67725         (WebCore::WMLIntrinsicEvent::createWithTask):
67726         (WebCore::WMLIntrinsicEvent::taskElement):
67727         * wml/WMLIntrinsicEventHandler.cpp: Added.
67728         (WebCore::WMLIntrinsicEventHandler::WMLIntrinsicEventHandler):
67729         (WebCore::WMLIntrinsicEventHandler::registerIntrinsicEvent):
67730         (WebCore::WMLIntrinsicEventHandler::triggerIntrinsicEvent):
67731         (WebCore::WMLIntrinsicEventHandler::hasIntrinsicEvent):
67732         * wml/WMLIntrinsicEventHandler.h: Added.
67733         (WebCore::):
67734
67735 2008-11-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67736
67737         Reviewed by Holger Freyther.
67738
67739         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22423
67740
67741         Add <go> stub implementation. Add complete <prev>/<refresh> and <setvar> implementation.
67742         Activate code handling <setvar> registration in WMLTaskElement.
67743
67744         * wml/WMLGoElement.cpp: Added.
67745         (WebCore::WMLGoElement::WMLGoElement):
67746         (WebCore::WMLGoElement::~WMLGoElement):
67747         (WebCore::WMLGoElement::parseMappedAttribute):
67748         (WebCore::WMLGoElement::executeTask):
67749         * wml/WMLGoElement.h: Added.
67750         * wml/WMLPrevElement.cpp: Added.
67751         (WebCore::WMLPrevElement::WMLPrevElement):
67752         (WebCore::WMLPrevElement::~WMLPrevElement):
67753         (WebCore::WMLPrevElement::executeTask):
67754         * wml/WMLPrevElement.h: Added.
67755         * wml/WMLRefreshElement.cpp: Added.
67756         (WebCore::WMLRefreshElement::WMLRefreshElement):
67757         (WebCore::WMLRefreshElement::~WMLRefreshElement):
67758         (WebCore::WMLRefreshElement::executeTask):
67759         * wml/WMLRefreshElement.h: Added.
67760         * wml/WMLSetvarElement.cpp: Added.
67761         (WebCore::WMLSetvarElement::WMLSetvarElement):
67762         (WebCore::WMLSetvarElement::~WMLSetvarElement):
67763         (WebCore::WMLSetvarElement::parseMappedAttribute):
67764         (WebCore::WMLSetvarElement::insertedIntoDocument):
67765         (WebCore::WMLSetvarElement::name):
67766         (WebCore::WMLSetvarElement::value):
67767         * wml/WMLSetvarElement.h: Added.
67768         * wml/WMLTagNames.in:
67769         * wml/WMLTaskElement.cpp:
67770         (WebCore::WMLTaskElement::registerVariableSetter):
67771         (WebCore::WMLTaskElement::storeVariableState):
67772         * wml/WMLTaskElement.h:
67773         * WebCore.xcodeproj/project.pbxproj:
67774
67775 2008-11-22  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
67776
67777         Not reviewed. Forgot to include WMLPageState.* in the last commit.
67778
67779         * wml/WMLPageState.cpp:
67780         (WebCore::WMLPageState::setNeedCheckDeckAccess):
67781         * wml/WMLPageState.h:
67782         (WebCore::WMLPageState::storeVariables):
67783
67784 2008-11-21  Alexey Proskuryakov  <ap@webkit.org>
67785
67786         Reviewed by Darin Adler.
67787
67788         https://bugs.webkit.org/show_bug.cgi?id=22397
67789         Worker threads are not destroyed if running a JS loop
67790
67791         Since the event loop is not ever entered again in this case, the fix necessarily involves
67792         some shared data hackery.
67793
67794         * dom/WorkerThread.cpp: (WebCore::WorkerThread::stop):
67795         * dom/WorkerThread.h:
67796         Added a stop() method, which asks the thread to exit as soon as possible. In the future, it
67797         may need to abort other kinds of synchronous processing, such as importScripts or XHR.
67798
67799         * bindings/js/WorkerScriptController.cpp:
67800         (WebCore::WorkerScriptController::WorkerScriptController):
67801         (WebCore::WorkerScriptController::evaluate):
67802         (WebCore::WorkerScriptController::forbidExecution):
67803         * bindings/js/WorkerScriptController.h:
67804         Added a forbidExecution() method, which interrupts currently running JS, and makes any
67805         future calls to evaluate() return immediately.
67806
67807         * dom/WorkerMessagingProxy.cpp: (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
67808         Call WorkerThread::stop().
67809
67810 2008-11-21  Kevin Watters  <kevinwatters@gmail.com>
67811
67812         Reviewed by Kevin Ollivier.
67813
67814         Improve wx image drawing performance considerably when using wxGraphicsContext
67815         by avoiding unnecessary copies and drawing.
67816
67817         https://bugs.webkit.org/show_bug.cgi?id=22404
67818
67819         * platform/graphics/wx/ImageWx.cpp:
67820         (WebCore::BitmapImage::draw):
67821         (WebCore::BitmapImage::drawPattern):
67822
67823
67824 2008-11-21  Kevin Watters  <kevinwatters@gmail.com>
67825
67826         Reviewed by Kevin Ollivier.
67827
67828         Implementation of AffineTransform::mapRect for wx.
67829
67830         https://bugs.webkit.org/show_bug.cgi?id=22401
67831
67832         * platform/graphics/wx/AffineTransformWx.cpp:
67833         (WebCore::AffineTransform::mapRect):
67834
67835 2008-11-21  Justin Garcia  <justin.garcia@apple.com>
67836
67837         Reviewed by Darin Adler.
67838
67839         <rdar://problem/5381788> Match NSTextView editing behavior at the end of hyperlink text
67840
67841         Change link editing behavior to match TextEdit and MS Word when editing before and after
67842         a link (Pages has two caret positions at link boundaries, Thunderbird and FF behave like we
67843         used to, so it's difficult to get out of link editing mode):
67844         When inserting before or after a link, always insert content outside of the link.  This
67845         makes it impossible to get stuck in link editing mode, while making it slightly more
67846         difficult to edit link labels.  WebKit editors that care about this can add UI for editing
67847         link labels, like GMail and GoogleDocs have done.  We never actually had any bugs complaining
67848         about how it was difficult to edit link labels at the start/end, the code was just introduced
67849         with another bug fix without much thought.
67850
67851         Don't remember removed links anymore, no other editor does this and it made it
67852         difficult/impossible to get out of link editing mode.  This code was added to fix
67853         <rdar://problem/4069359>, which is fixed instead by removing the styles from an
67854         enclosing anchor element from those styles that we remember when we delete content.
67855
67856         * editing/CompositeEditCommand.cpp:
67857         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
67858         * editing/CompositeEditCommand.h:
67859         * editing/DeleteSelectionCommand.cpp:
67860         (WebCore::removeEnclosingAnchorStyle):
67861         (WebCore::DeleteSelectionCommand::saveTypingStyleState):
67862         (WebCore::DeleteSelectionCommand::doApply):
67863         * editing/DeleteSelectionCommand.h:
67864         * editing/EditCommand.cpp:
67865         (WebCore::EditCommand::apply):
67866         * editing/Editor.cpp:
67867         (WebCore::Editor::appliedEditing):
67868         * editing/InsertTextCommand.cpp:
67869         (WebCore::InsertTextCommand::prepareForTextInsertion):
67870         (WebCore::InsertTextCommand::input):
67871         * editing/RemoveFormatCommand.cpp:
67872         (WebCore::RemoveFormatCommand::doApply):
67873         * editing/SelectionController.cpp:
67874         (WebCore::SelectionController::setSelection):
67875         * editing/SelectionController.h:
67876
67877 2008-11-21  Alice Liu  <alice.liu@apple.com>
67878
67879         Rubber-stamped by Dan Bernstein.
67880
67881         fixed <rdar://6340771> crashing on print preview
67882
67883         * platform/graphics/win/GraphicsContextCGWin.cpp:
67884         (WebCore::GraphicsContext::drawWindowsBitmap):
67885
67886 2008-11-21  Darin Fisher  <darin@chromium.org>
67887
67888         Reviewed by Geoffrey Garen.
67889
67890         https://bugs.webkit.org/show_bug.cgi?id=22390
67891         Abstract away JSC:: usage in WebCore/xml
67892
67893         * bindings/js/ScriptString.h: Added.
67894         (WebCore::ScriptString::ScriptString):
67895         (WebCore::ScriptString::operator JSC::UString):
67896         (WebCore::ScriptString::isNull):
67897         (WebCore::ScriptString::size):
67898         (WebCore::ScriptString::operator=):
67899         (WebCore::ScriptString::operator+=):
67900         * inspector/InspectorController.cpp:
67901         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
67902         (WebCore::InspectorResource::setXMLHttpRequestProperties):
67903         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
67904         * inspector/InspectorController.h:
67905         * xml/XMLHttpRequest.cpp:
67906         (WebCore::XMLHttpRequest::responseText):
67907         (WebCore::XMLHttpRequest::clearResponse):
67908         (WebCore::XMLHttpRequest::dropProtection):
67909         (WebCore::XMLHttpRequest::didFinishLoading):
67910         (WebCore::XMLHttpRequest::didReceiveData):
67911         * xml/XMLHttpRequest.h:
67912         (WebCore::XMLHttpRequest::setLastSendURL):
67913
67914 2008-11-21  Sam Weinig  <sam@webkit.org>
67915
67916         Reviewed by Geoffrey Garen.
67917
67918         Destroy script decoded data on a zero-delay timer after
67919         decoding.  This means we now have no decoded script data
67920         at the end of Membuster.
67921
67922         * loader/CachedScript.cpp:
67923         (WebCore::CachedScript::CachedScript):
67924         (WebCore::CachedScript::allClientsRemoved):
67925         (WebCore::CachedScript::script):
67926         (WebCore::CachedScript::decodedDataDeletionTimerFired):
67927         * loader/CachedScript.h:
67928
67929 2008-11-21  Simon Fraser  <simon.fraser@apple.com>
67930
67931         Reviewed by Darin Adler
67932
67933         https://bugs.webkit.org/show_bug.cgi?id=22159
67934
67935         RenderBox::absoluteClippedOverflowRect() needs to inflate the rect by
67936         maximalOutlineSize(), since a child might have an outline which projects
67937         outside the parent overflowRect().
67938
67939         We also need to ensure that maximalOutlineSize() is updated early in styleDidChange,
67940         so that it is valid for these repaints.
67941
67942         Test: fast/repaint/outline-child-repaint.html
67943
67944         * WebCore.xcodeproj/project.pbxproj:
67945         * rendering/RenderBox.cpp:
67946         (WebCore::RenderBox::styleDidChange):
67947         (WebCore::RenderBox::absoluteClippedOverflowRect):
67948
67949 2008-11-21  Jan Michael Alonzo  <jmalonzo@webkit.org>
67950
67951         Gtk, Qt, and Wx build fix.
67952
67953         Add LinkHash.cpp in the build scripts.
67954         Add LinkHash.h to Gtk's build script.
67955
67956         LinkHash.cpp/h was introduced in r38661.
67957
67958         * GNUmakefile.am:
67959         * WebCore.pro:
67960         * WebCoreSources.bkl:
67961
67962 2008-11-21  Sam Weinig  <sam@webkit.org>
67963
67964         Reviewed by Dan Bernstein.
67965
67966         Third step in https://bugs.webkit.org/show_bug.cgi?id=22394
67967         Be more eager in destroying script decoded data
67968
67969         Destroy the decoded data when all clients are removed from a CachedScript.
67970
67971         * loader/CachedScript.cpp:
67972         (WebCore::CachedScript::allClientsRemoved):
67973         * loader/CachedScript.h:
67974         (WebCore::CachedScript::allClientsRemoved):
67975
67976 2008-11-21  Pierre-Olivier Latour  <pol@apple.com>
67977
67978         Reviewed by Dan Bernstein.
67979
67980         WebKit should be using Device RGB colorspace everywhere for
67981         consistency.
67982
67983         https://bugs.webkit.org/show_bug.cgi?id=22300
67984
67985         * page/mac/AccessibilityObjectWrapper.mm:
67986         (CreateCGColorIfDifferent):
67987         * platform/graphics/mac/ColorMac.h:
67988         * platform/graphics/mac/ColorMac.mm:
67989         (WebCore::nsColor):
67990         (+[WebCoreControlTintObserver controlTintDidChange]):
67991         * rendering/RenderThemeMac.mm:
67992         (WebCore::convertNSColorToColor):
67993         (WebCore::menuBackgroundColor):
67994
67995 2008-11-20  Julien Chaffraix  <jchaffraix@webkit.org>
67996
67997         Reviewed by Darin Adler.
67998
67999         Bug 22388: Add JSInterfaceName to the .in files
68000         https://bugs.webkit.org/show_bug.cgi?id=22388
68001
68002         Add JSInterfaceName that is similar to interfaceName but
68003         for the JS wrappers. JSInterfaceName is always equal to interfaceName
68004         unless explicitly set.
68005
68006         * dom/make_names.pl:
68007         * html/HTMLTagNames.in:
68008         * svg/svgtags.in:
68009
68010 2008-11-21  Sam Weinig  <sam@webkit.org>
68011
68012         Reviewed by Geoffrey Garen.
68013
68014         Second step in https://bugs.webkit.org/show_bug.cgi?id=22394
68015         Be more eager in destroying script decoded data
68016
68017         Use a new CachedScriptSourceProvider to keep CachedScripts as
68018         CachedScripts, even down into JSC.  This has the added benefit
68019         of showing the CachedScripts as live in the Caches window.
68020
68021         * GNUmakefile.am:
68022         * WebCore.vcproj/WebCore.vcproj:
68023         * WebCore.xcodeproj/project.pbxproj:
68024         * bindings/js/CachedScriptSourceProvider.h: Added.
68025         (WebCore::CachedScriptSourceProvider::create):
68026         (WebCore::CachedScriptSourceProvider::~CachedScriptSourceProvider):
68027         (WebCore::CachedScriptSourceProvider::getRange):
68028         (WebCore::CachedScriptSourceProvider::data):
68029         (WebCore::CachedScriptSourceProvider::length):
68030         (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
68031         (WebCore::makeSource):
68032         * dom/ScriptElement.cpp:
68033         (WebCore::ScriptElementData::notifyFinished):
68034         * dom/XMLTokenizer.cpp:
68035         (WebCore::XMLTokenizer::notifyFinished):
68036         * html/HTMLTokenizer.cpp:
68037         (WebCore::HTMLTokenizer::notifyFinished):
68038
68039 2008-11-21  Brett Wilson  <brettw@chromium.org>
68040
68041         Fix debug-only build bustage due to a typo in an assert, and add new
68042         files to the Windows build.
68043
68044         * Info.plist:
68045         * WebCore.vcproj/WebCore.vcproj:
68046         * platform/LinkHash.h:
68047         (WebCore::LinkHashHash::avoidDeletedValue):
68048
68049 2008-11-20  Brett Wilson  <brettw@chromium.org>
68050
68051         Reviewed by Eric Seidel.
68052
68053         https://bugs.webkit.org/show_bug.cgi?id=22131
68054
68055         Factor out visited link hashing and types into a new file, LinkHash.
68056         This also changes the hash type to 64 bits, but does not actually use
68057         the extra bits yet.
68058
68059         * WebCore.xcodeproj/project.pbxproj:
68060         (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState):
68061         (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
68062         * css/CSSStyleSelector.h:
68063         (WebCore::CSSStyleSelector::visitedStateChanged):
68064         * dom/Document.cpp:
68065         * dom/Document.h:
68066         * page/Page.cpp:
68067         (WebCore::Page::visitedStateChanged):
68068         * page/Page.h:
68069         * page/PageGroup.cpp:
68070         (WebCore::PageGroup::isLinkVisited):
68071         (WebCore::PageGroup::addVisitedLink):
68072         * page/PageGroup.h:
68073         * platform/LinkHash.cpp: Added.
68074         (WebCore::findSlashDotDotSlash):
68075         (WebCore::findSlashSlash):
68076         (WebCore::findSlashDotSlash):
68077         (WebCore::containsColonSlashSlash):
68078         (WebCore::cleanPath):
68079         (WebCore::matchLetter):
68080         (WebCore::needsTrailingSlash):
68081         (WebCore::visitedLinkHash):
68082         * platform/LinkHash.h: Added
68083         (WebCore::LinkHashHash::hash):
68084         (WebCore::LinkHashHash::equal):
68085         (WebCore::LinkHashHash::avoidDeletedValue):
68086
68087 2008-11-21  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
68088
68089         Reviewed by Alexey Proskuryakov.
68090
68091         No need to use getElementsByTagNameNS() in WML documents. Revert to using getElementByTagName() again.
68092
68093         * wml/WMLPElement.cpp:
68094         (WebCore::WMLPElement::insertedIntoDocument):
68095
68096 2008-11-21  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
68097
68098         Reviewed by Alexey Proskuryakov.
68099
68100         Fix some coding style/formatting issues in WMLAElement.
68101
68102         * wml/WMLAElement.cpp:
68103         (WebCore::WMLAElement::parseMappedAttribute):
68104         (WebCore::WMLAElement::defaultEventHandler):
68105         * wml/WMLAElement.h:
68106
68107 2008-11-21  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
68108
68109         Reviewed by Alexey Proskuryakov.
68110
68111         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22399
68112
68113         Implement <anchor> support for WML, add WMLVariables file containing helper functions
68114         for variable support, and a WMLTaskElement base class for WMLPrev/Go/RefreshElement.
68115
68116         * css/CSSStyleSelector.cpp:
68117         (WebCore::linkAttribute):
68118         * rendering/HitTestResult.cpp:
68119         (WebCore::HitTestResult::absoluteImageURL):
68120         (WebCore::HitTestResult::absoluteLinkURL):
68121         (WebCore::HitTestResult::isLiveLink):
68122         * wml/WMLAnchorElement.cpp: Added.
68123         (WebCore::WMLAnchorElement::WMLAnchorElement):
68124         (WebCore::WMLAnchorElement::~WMLAnchorElement):
68125         (WebCore::WMLAnchorElement::defaultEventHandler):
68126         * wml/WMLAnchorElement.h: Added.
68127         (WebCore::WMLAnchorElement::registerTask):
68128         * wml/WMLTagNames.in:
68129         * wml/WMLTaskElement.cpp: Added.
68130         (WebCore::WMLTaskElement::WMLTaskElement):
68131         (WebCore::WMLTaskElement::~WMLTaskElement):
68132         (WebCore::WMLTaskElement::insertedIntoDocument):
68133         (WebCore::WMLTaskElement::addVariableSetter):
68134         (WebCore::WMLTaskElement::removeVariableSetter):
68135         (WebCore::WMLTaskElement::storeVariableState):
68136         * wml/WMLTaskElement.h: Added.
68137         * wml/WMLVariables.cpp: Added.
68138         (WebCore::isValidVariableCharacter):
68139         (WebCore::isValidVariableReferenceCharacter):
68140         (WebCore::isValidVariableName):
68141         (WebCore::substituteVariableReferences):
68142         * wml/WMLVariables.h: Added.
68143         (WebCore::):
68144
68145 2008-11-21  Julien Chaffraix  <jchaffraix@pleyo.com>
68146
68147         Rubber-stamped by Alexey Proskuryakov.
68148
68149         Build fix when building without WORKERS on non-POSIX, non-WINDOWS
68150         machine.
68151
68152         Spotted by Mario Bensi.
68153
68154         * platform/text/TextCodecICU.cpp:
68155
68156 2008-11-20  Sam Weinig  <sam@webkit.org>
68157
68158         Reviewed by Geoffrey Garen.
68159
68160         First step in https://bugs.webkit.org/show_bug.cgi?id=22394
68161         Be more eager in destroying script decoded data
68162
68163         Pass data to be used in script execution around as JSC::SourceCode instead
68164         of a source, url, and starting line.
68165
68166         * bindings/js/ScriptController.cpp:
68167         (WebCore::ScriptController::evaluate):
68168         * bindings/js/ScriptController.h:
68169         * bindings/js/StringSourceProvider.h:
68170         (WebCore::makeSource):
68171         * bindings/js/WorkerScriptController.cpp:
68172         (WebCore::WorkerScriptController::evaluate):
68173         * bindings/js/WorkerScriptController.h:
68174         * dom/ScriptElement.cpp:
68175         (WebCore::ScriptElement::insertedIntoDocument):
68176         (WebCore::ScriptElement::childrenChanged):
68177         (WebCore::ScriptElementData::evaluateScript):
68178         (WebCore::ScriptElementData::notifyFinished):
68179         * dom/ScriptElement.h:
68180         * dom/WorkerThread.cpp:
68181         (WebCore::WorkerThread::workerThread):
68182         * dom/XMLTokenizer.cpp:
68183         (WebCore::XMLTokenizer::notifyFinished):
68184         * dom/XMLTokenizerLibxml2.cpp:
68185         (WebCore::XMLTokenizer::endElementNs):
68186         * dom/XMLTokenizerQt.cpp:
68187         (WebCore::XMLTokenizer::parseEndElement):
68188         * html/HTMLTokenizer.cpp:
68189         (WebCore::HTMLTokenizer::scriptHandler):
68190         (WebCore::HTMLTokenizer::scriptExecution):
68191         (WebCore::HTMLTokenizer::notifyFinished):
68192         * html/HTMLTokenizer.h:
68193         * loader/FrameLoader.cpp:
68194         (WebCore::FrameLoader::executeScript):
68195         * loader/FrameLoader.h:
68196
68197 2008-11-20  Sam Weinig  <sam@webkit.org>
68198
68199         Reviewed by Geoffrey Garen.
68200
68201         Fix for https://bugs.webkit.org/show_bug.cgi?id=22392
68202         REGRESION: XMLHttpRequest.responseText does unnecessary trip though WebCore::String
68203
68204         - Use jsOwnedStringOrNull to avoid conversion to WebCore::String.
68205
68206         * bindings/js/JSXMLHttpRequestCustom.cpp:
68207         (WebCore::JSXMLHttpRequest::responseText):
68208         * xml/XMLHttpRequest.idl:
68209
68210 2008-11-20  Simon Fraser  <simon.fraser@apple.com>
68211
68212         Reviewed by Dan Bernstein
68213
68214         https://bugs.webkit.org/show_bug.cgi?id=19623
68215
68216         When an non-layer object gained a transform, it would only repaint
68217         the bounds of the new layer, which could result in redraw artifacts
68218         if the new layer was smaller. So if we're gaining a transform, we
68219         repaint.
68220
68221         Test: fast/repaint/change-transform.html
68222
68223         * rendering/RenderObject.cpp:
68224         (WebCore::RenderObject::styleWillChange):
68225
68226 2008-11-20  Adele Peterson  <adele@apple.com>
68227
68228         Reviewed by Darin Adler.
68229
68230         Fix for <rdar://problem/6111436> Support upload progress events on Windows
68231
68232         * platform/network/cf/ResourceHandleCFNet.cpp:
68233         (WebCore::didSendBodyData): Added.
68234         (WebCore::ResourceHandle::start): Hook up didSendBodyData callback.
68235
68236 2008-11-20  Justin Garcia  <justin.garcia@apple.com>
68237
68238         Reviewed by Darin Adler.
68239
68240         <rdar://problem/2610675> Blank line that is quoted can't be deleted
68241
68242         If the caret is in an empty quoted paragraph, and either there is nothing before that
68243         paragraph, or what is before is unquoted, and the user presses delete, unquote that
68244         paragraph.
68245
68246         * editing/CompositeEditCommand.cpp:
68247         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph): Added.
68248         Removes the line break that holds open an empty paragraph and then attempts to
68249         prune the blockquote(s) that held that line break in case they have been emptied
68250         out.  Places a line break to create in empty unquoted paragraph in place of the
68251         quoted one that was removed.
68252         * editing/CompositeEditCommand.h:
68253         * editing/TypingCommand.cpp:
68254         (WebCore::TypingCommand::deleteKeyPressed): Call breakOutOfEmptyBlockquotedParagraph.
68255         * editing/htmlediting.cpp:
68256         (WebCore::highestEnclosingNodeOfType): Added.
68257         * editing/htmlediting.h:
68258
68259 2008-11-20  Dean Jackson  <dino@apple.com>
68260
68261         Reviewed by Antti Koivisto
68262
68263         https://bugs.webkit.org/show_bug.cgi?id=21247
68264
68265         Make transition shorthand property accept transition-delay.
68266
68267         Test: transitions/transition-shorthand-delay.html
68268
68269         * css/CSSParser.cpp:
68270         (WebCore::CSSParser::parseTransitionShorthand):
68271
68272 2008-11-20  Dean Jackson  <dino@apple.com>
68273
68274         Reviewed by Antti Koivisto
68275
68276         https://bugs.webkit.org/show_bug.cgi?id=22368
68277
68278         Make sure pauseTransition API takes transition delay into account.
68279
68280         Test: transitions/transition-drt-api-delay.html
68281
68282         * page/animation/AnimationBase.cpp:
68283         (WebCore::AnimationBase::pauseAtTime):
68284
68285 2008-11-20  Simon Fraser  <simon.fraser@apple.com>
68286
68287         Reviewed by Darin Adler
68288
68289         https://bugs.webkit.org/show_bug.cgi?id=20368
68290
68291         Implement getComputedStyle for animation properties. Remove individual
68292         computed values for transform-origin-x, transform-origin-y, and just
68293         return transform-origin instead. Return "none" for default animation-name,
68294         and fix the initial value.
68295
68296         Tests: animations/computed-style.html
68297                transforms/computed-style-origin.html
68298
68299         * css/CSSComputedStyleDeclaration.cpp:
68300         (WebCore::):
68301         (WebCore::getDelayValue):
68302         (WebCore::getDurationValue):
68303         (WebCore::getTimingFunctionValue):
68304         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
68305         * rendering/style/RenderStyle.h:
68306         (WebCore::InheritedFlags::initialAnimationName):
68307
68308 2008-11-20  Justin Garcia  <justin.garcia@apple.com>
68309
68310         Reviewed by Beth Dakin.
68311
68312         Preparation for:
68313         <rdar://problem/2610675> Blank line that is quoted can't be deleted
68314
68315         To fix this we need to make changes to the code that creates selections to delete
68316         when the user does a backward or forward delete with a caret selection.  For certain
68317         caret positions, we now want to remove something other than the standard "caret extended
68318         backward/forward by one unit".  The problem is that there were two pieces of code
68319         responsible for doing this, one in Editor::deleteWithDirection, and another inside
68320         TypingCommand::deleteKeyPressed.  The code in deleteWithDirection is a recent
68321         addition (r19172), and adding it there caused regressions because it prevented the
68322         code in deleteKeyPressed from ever running.  The regressions were never caught because
68323         JS deletion uses deleteKeyPressed while manual deletion uses deleteWithDirection.
68324
68325         This patch removes selection creation code from deleteWithDirection so that deleteKeyPressed
68326         can handle it.  That required moving code to handle the kill ring down into deleteKeyPressed.
68327
68328         Follow up patches will fix <rdar://problem/2610675>, and attempt to eliminate the rest of the
68329         discrepancies between the behavior of JS deletions and manual deletions, so that we
68330         have better test coverage.
68331
68332         * editing/Editor.cpp:
68333         (WebCore::Editor::deleteWithDirection): Early return if m_frame->document() is null, instead
68334         of checking for that periodically throughout the function.  There's really nothing to be done
68335         if it's null anyway.
68336         Move kill ring code down into deleteKeyPressed.
68337         * editing/Editor.h:
68338         * editing/TypingCommand.cpp:
68339         (WebCore::TypingCommand::TypingCommand):
68340         (WebCore::TypingCommand::deleteKeyPressed):
68341         (WebCore::TypingCommand::forwardDeleteKeyPressed):
68342         (WebCore::TypingCommand::doApply):
68343         * editing/TypingCommand.h:
68344         (WebCore::TypingCommand::create):
68345
68346 2008-11-20  Darin Adler  <darin@apple.com>
68347
68348         Earlier version reviewed by Justin Garcia.
68349
68350         - fix <rdar://problem/4108572> REGRESSION: Can't extend selection with shift-arrow in read only mode
68351
68352         * editing/Editor.cpp:
68353         (WebCore::Editor::handleKeyboardEvent): Remove isContentEditable check -- keyboard events can be
68354         handled even when the selection is not in an editable area.
68355         (WebCore::Editor::handleInputMethodKeydown): Ditto.
68356
68357         * editing/EditorCommand.cpp: Changed the enabled rule for operations that change the selection to
68358         allow use when there's a selection even if it's not in an editable area. This includes commands
68359         like shift-arrow keys to extend the slection, but not commands like arrow keys to move the
68360         insertion point.
68361
68362 2008-11-20  Alexey Proskuryakov  <ap@webkit.org>
68363
68364         Reviewed by Darin Adler.
68365
68366         https://bugs.webkit.org/show_bug.cgi?id=22380
68367         Fix WorkerContext refcounting
68368
68369         * dom/WorkerContext.cpp:
68370         (WebCore::WorkerContext::WorkerContext):
68371         * dom/WorkerContext.h:
68372         (WebCore::WorkerContext::script):
68373         (WebCore::WorkerContext::clearScript):
68374         Added a method to manually destroy WorkerScriptController.
68375
68376         * dom/WorkerThread.cpp: (WebCore::WorkerThread::workerThread):
68377         Destroy WorkerScriptController to release any references to WorkerContext.
68378
68379 2008-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
68380
68381         Reviewed by Darin Adler.
68382
68383         Last part of bug 21106: .in format discussed changes
68384         https://bugs.webkit.org/show_bug.cgi?id=21106
68385
68386         - Renamed isAudioHack to wrapperOnlyIfMediaIsAvailable as requested.
68387
68388         - Cleaned up additionnal function parameters that were unneeded.
68389
68390         * dom/make_names.pl:
68391         * html/HTMLTagNames.in:
68392
68393 2008-11-20  Alexey Proskuryakov  <ap@webkit.org>
68394
68395         Reviewed by Darin Adler.
68396
68397         https://bugs.webkit.org/show_bug.cgi?id=22383
68398         Worker tests spill error messages over to consequent tests
68399
68400         * dom/Worker.cpp: (WebCore::Worker::Worker):
68401         Raise an exception immediately if URL is empty. Dcoument::completeURL() returns document URL
68402         in this case, and there is no sense in starting a thread and trying to parse document source
68403         as JavaScript.
68404
68405         * bindings/js/JSWorkerConstructor.cpp: (WebCore::constructWorker):
68406         Return quickly if toString() raised an exception.
68407
68408 2008-11-19  Simon Fraser  <simon.fraser@apple.com>
68409
68410         Reviewed by Adele Peterson.
68411
68412         https://bugs.webkit.org/show_bug.cgi?id=22190
68413
68414         Fix the painting and event handling in transformed search fields.
68415         When painting the cancel and results button parts,  get the rect from AppKit
68416         relative to the input bounds (rather than in absolute coords), then convert
68417         it into the coords of the part's renderer (which is the one that is painting).
68418         To do this we need to compute an offset relative to some container, so expose
68419         a method on RenderObject for that.
68420
68421         Also fix the location at which the search popup shows up to take transforms
68422         into account, and fix the math that is used to figure out if the search
68423         results button, or the cancel button should get the mouse events.
68424
68425         Test: fast/forms/search-transformed.html
68426
68427         * rendering/RenderBox.h:
68428         * rendering/RenderObject.cpp:
68429         (WebCore::RenderObject::offsetFromContainer):
68430         * rendering/RenderObject.h:
68431         * rendering/RenderTextControl.cpp:
68432         (WebCore::RenderTextControl::forwardEvent):
68433         (WebCore::RenderTextControl::showPopup):
68434         * rendering/RenderThemeMac.h:
68435         * rendering/RenderThemeMac.mm:
68436         (WebCore::RenderThemeMac::convertToPaintingRect):
68437         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
68438         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
68439         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
68440
68441 2008-11-20  Joerg Bornemann  <joerg.bornemann@trolltech.com>
68442
68443         Reviewed by Simon Hausmann.
68444
68445         Steps towards making the the Qt port of WebKit compile on Windows CE
68446
68447         https://bugs.webkit.org/show_bug.cgi?id=20746
68448
68449         * WebCore.pro: Various fixes to include windows specific build options
68450         also in the Windows CE build.
68451         * loader/icon/IconDatabase.cpp: Removed unnecessary errno.h inclusion.
68452         * platform/FileSystem.h: Changed Q_OS_WIN32 to Q_OS_WIN to include CE.
68453         * platform/graphics/qt/GraphicsContextQt.cpp:
68454         (WebCore::GraphicsContext::getWindowsContext): SetWorldTransform is
68455         not available on CE.
68456         * platform/graphics/qt/PathQt.cpp: Added local definition of M_PI.
68457         * platform/qt/FileSystemQt.cpp: Changed Q_OS_WIN32 to Q_OS_WIN to include CE.
68458         * platform/qt/KeyboardCodes.h: Extend #idefs to define the missing OEM
68459         constants on CE.
68460         * platform/qt/TemporaryLinkStubs.cpp: Added stubs for plugins.
68461         * platform/text/RegularExpression.cpp: Removed unused sys/types.h and
68462         pcre.h inclusions.
68463         * platform/win/SystemTimeWin.cpp:
68464         (WebCore::userIdleTime): Don't use GetLastInputInfo on CE, it does not
68465         exist.
68466
68467 2008-11-20  Antti Koivisto  <antti@apple.com>
68468
68469         Reviewed by Maciej Stachowiak.
68470
68471         https://bugs.webkit.org/show_bug.cgi?id=22379
68472         Make CSSOM use less memory
68473
68474         - Shrink CSSProperty by half by using bitfields.
68475         - Get rid of m_strictParsing field in StyleBase by moving it up to CSSStyleSheet
68476           and CSSMutableStyleDeclaration. This reduces size of many highly popular objects.
68477
68478         * css/CSSMutableStyleDeclaration.cpp:
68479         (WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
68480         (WebCore::CSSMutableStyleDeclaration::operator=):
68481         * css/CSSMutableStyleDeclaration.h:
68482         (WebCore::CSSMutableStyleDeclaration::setStrictParsing):
68483         (WebCore::CSSMutableStyleDeclaration::useStrictParsing):
68484         * css/CSSProperty.h:
68485         * css/CSSStyleSheet.cpp:
68486         (WebCore::CSSStyleSheet::CSSStyleSheet):
68487         * css/CSSStyleSheet.h:
68488         (WebCore::CSSStyleSheet::setStrictParsing):
68489         (WebCore::CSSStyleSheet::useStrictParsing):
68490         * css/StyleBase.h:
68491         (WebCore::StyleBase::useStrictParsing):
68492         (WebCore::StyleBase::StyleBase):
68493
68494 2008-11-19  Darin Fisher  <darin@chromium.org>
68495
68496         Fix bustage.
68497
68498         https://bugs.webkit.org/show_bug.cgi?id=22373
68499         Ports busted by addition of ScriptValue.{h,cpp}
68500
68501         * plugins/PluginView.cpp:
68502         (WebCore::PluginView::performRequest):
68503
68504 2008-11-19  Darin Fisher  <darin@chromium.org>
68505
68506         Bustage fix.
68507
68508         https://bugs.webkit.org/show_bug.cgi?id=22373
68509         Ports busted by addition of ScriptValue.{h,cpp}
68510
68511         * GNUmakefile.am:
68512         * WebCore.pro:
68513         * WebCoreSources.bkl:
68514         * dom/XMLTokenizerQt.cpp:
68515         * plugins/PluginView.cpp:
68516
68517 2008-11-19  Darin Fisher  <darin@chromium.org>
68518
68519         Reviewed by Geoff Garen.
68520
68521         https://bugs.webkit.org/show_bug.cgi?id=22345
68522         Define ScriptValue as a thin container for a JSC::Value*.
68523
68524         * WebCore.vcproj/WebCore.vcproj:
68525         * WebCore.xcodeproj/project.pbxproj:
68526         * bindings/js/ScheduledAction.cpp:
68527         * bindings/js/ScriptController.cpp:
68528         (WebCore::ScriptController::evaluate):
68529         * bindings/js/ScriptController.h:
68530         * bindings/js/ScriptValue.cpp: Added.
68531         (WebCore::ScriptValue::getString):
68532         * bindings/js/ScriptValue.h: Added.
68533         (WebCore::ScriptValue::ScriptValue):
68534         (WebCore::ScriptValue::jsValue):
68535         * dom/ScriptElement.cpp:
68536         * dom/XMLTokenizer.cpp:
68537         * dom/XMLTokenizerLibxml2.cpp:
68538         * html/HTMLTokenizer.cpp:
68539         * loader/FrameLoader.cpp:
68540         (WebCore::FrameLoader::executeIfJavaScriptURL):
68541         (WebCore::FrameLoader::executeScript):
68542         * loader/FrameLoader.h:
68543
68544 2008-11-19  Beth Dakin  <bdakin@apple.com>
68545
68546         Reviewed by Justin Garcia.
68547
68548         Fix for <rdar://problem/5472507> Remove color property when a user
68549         sets color to black
68550
68551         This patch prevents us from inserting font nodes during the
68552         ApplyStyleCommand if they will not change the computed style of an
68553         element.
68554
68555         * editing/ApplyStyleCommand.cpp:
68556         (WebCore::fontColorChangesComputedStyle):
68557         (WebCore::fontSizeChangesComputedStyle):
68558         (WebCore::fontFaceChangesComputedStyle):
68559         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
68560
68561 2008-11-19  Simon Fraser  <simon.fraser@apple.com>
68562
68563         Reviewed by Antti Koivisto
68564
68565         https://bugs.webkit.org/show_bug.cgi?id=22111
68566
68567         Fix hit testing in controls on transformed video elements
68568         by replacing absoluteBoundingBoxRect().contains() with
68569         code that maps the point into local coords, taking
68570         transforms into account.
68571
68572         Test: media/video-controls-transformed.html
68573
68574         * platform/graphics/MediaPlayer.h:
68575         * rendering/RenderMedia.cpp:
68576         (WebCore::rendererContainsPoint):
68577         (WebCore::RenderMedia::forwardEvent):
68578
68579 2008-11-19  Simon Fraser  <simon.fraser@apple.com>
68580
68581         Reviewed by Darin Adler
68582
68583         https://bugs.webkit.org/show_bug.cgi?id=22348
68584
68585         Need to educate style sharing about autofill, so that style does not
68586         get shared between input elements that are autofilled, and those
68587         that are not. Setting autofill should also do a setChanged on the node.
68588
68589         * css/CSSStyleSelector.cpp:
68590         (WebCore::CSSStyleSelector::canShareStyleWithElement):
68591         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
68592         * dom/Node.h:
68593         (WebCore::Node::isAutofilled):
68594         * html/HTMLInputElement.cpp:
68595         (WebCore::HTMLInputElement::setAutofilled):
68596         * html/HTMLInputElement.h:
68597         (WebCore::HTMLInputElement::isAutofilled):
68598
68599 2008-11-19  Brett Wilson  <brettw@chromium.org>
68600
68601         Reviewed by Antti Koivisto.
68602
68603         https://bugs.webkit.org/show_bug.cgi?id=22349
68604
68605         Clear the subresource loader client when the client is removed in
68606         response to a 304 (not modified). This prevents an inconsistent state
68607         where the loader thinks it's active and the loader::Host doesn't.
68608
68609         * loader/loader.cpp:
68610         (WebCore::Loader::Host::didReceiveResponse):
68611
68612 2008-11-19  Alexey Proskuryakov  <ap@webkit.org>
68613
68614         Reviewed by Darin Adler.
68615
68616         https://bugs.webkit.org/show_bug.cgi?id=22355
68617         Systematize code for replacing global constructors
68618
68619         Test: fast/workers/worker-replace-global-constructor.html
68620
68621         * bindings/js/JSDOMWindowBase.cpp:
68622         (setJSDOMWindowBaseEvent): Changed to put the value as property, matching what generated
68623         code for global constructor setters does.
68624         (setJSDOMWindowBaseAudio): Ditto.
68625         (setJSDOMWindowBaseImage): Ditto.
68626         (setJSDOMWindowBaseMessageChannel): Ditto.
68627         (setJSDOMWindowBaseOption): Ditto.
68628         (setJSDOMWindowBaseWorker): Ditto.
68629         (setJSDOMWindowBaseXMLHttpRequest): Ditto.
68630         (setJSDOMWindowBaseXSLTProcessor): Ditto.
68631         (WebCore::JSDOMWindowBase::put): Removed special cases for global constructors.
68632
68633         * bindings/js/JSWorkerContext.cpp:
68634         (WebCore::JSWorkerContext::getOwnPropertySlot): Look up overrides before own properties,
68635         as it is done for Window.
68636         (WebCore::setJSWorkerContextMessageEvent): Implemented in the same way as Window global
68637         constructors are.
68638         (WebCore::setJSWorkerContextWorkerLocation): Ditto.
68639
68640 2008-11-19  Alexey Proskuryakov  <ap@webkit.org>
68641
68642         Reviewed by Darin Adler.
68643
68644         https://bugs.webkit.org/show_bug.cgi?id=22341
68645         Text codecs should not use static data without locking
68646
68647         * platform/text/TextCodecICU.cpp:
68648         * platform/text/mac/TextCodecMac.cpp:
68649         Made cached converters per-thread.
68650
68651         * platform/text/TextEncodingRegistry.cpp:
68652         (WebCore::encodingRegistryMutex): Added a mutex for codec maps access.
68653         (WebCore::addToTextCodecMap): Don't use TextEncoding just to canonicalize the name, as it
68654         causes a deadlock due to a recursive call into registry.
68655         (WebCore::buildBaseTextCodecMaps): Added assertions.
68656         (WebCore::newTextCodec): Take a lock to avoid concurrent access to codec maps.
68657         (WebCore::atomicCanonicalTextEncodingName): Ditto.
68658         (WebCore::noExtendedTextEncodingNameUsed): Added a comment, explaining why locking is not
68659         necessary here.
68660
68661 2008-11-19  Alexey Proskuryakov  <ap@webkit.org>
68662
68663         Touch WebCorePrefix.h to force a rebuild, needed because of changed feature defines.
68664
68665         * WebCorePrefix.h:
68666
68667 2008-11-19  Alexey Proskuryakov  <ap@webkit.org>
68668
68669         Reviewed by Darin Adler.
68670
68671         https://bugs.webkit.org/show_bug.cgi?id=22310
68672         Worker exceptions should be printed to console
68673
68674         * dom/Document.cpp: (WebCore::Document::reportException):
68675         * dom/Document.h:
68676         * dom/ScriptExecutionContext.h:
68677         * dom/WorkerContext.cpp: (WebCore::WorkerContext::reportException):
68678         * dom/WorkerContext.h:
68679         Added a reportException() method on ScriptExecutionContext. It forwards the exception info
68680         up until it finds a Document context, and then it prints it to console.
68681
68682         * bindings/js/JSEventListener.cpp:
68683         (WebCore::JSAbstractEventListener::handleEvent): Don't talk to Console directly, use
68684         ScriptExecutionContext::reportException. Also, fixed a bug where Document::updateDocumentsRendering()
68685         could be called from workers.
68686         (WebCore::JSLazyEventListener::parseCode): Moved variable declaration inside if block for clarity.
68687
68688         * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate):
68689         Report exceptions to ScriptExecutionContext.
68690
68691         * dom/WorkerMessagingProxy.cpp:
68692         (WebCore::MessageWorkerTask::performTask):
68693         (WebCore::WorkerExceptionTask::create):
68694         (WebCore::WorkerExceptionTask::WorkerExceptionTask):
68695         (WebCore::WorkerExceptionTask::performTask):
68696         (WebCore::WorkerMessagingProxy::postWorkerException):
68697         * dom/WorkerMessagingProxy.h:
68698         Added a task for posting exception information.
68699
68700         * bindings/js/JSDOMBinding.cpp:
68701         (WebCore::reportException):
68702         (WebCore::reportCurrentException):
68703         * bindings/js/JSDOMBinding.h:
68704         Added helper methods for reporting exceptions via ScriptExecutionContext.
68705
68706         * page/Console.cpp:
68707         * page/Console.h:
68708         Removed methods for directly reporting exceptions to console.
68709
68710         * bindings/js/JSCustomPositionCallback.cpp:
68711         (WebCore::JSCustomPositionCallback::handleEvent):
68712         * bindings/js/JSCustomPositionErrorCallback.cpp:
68713         (WebCore::JSCustomPositionErrorCallback::handleEvent):
68714         * bindings/js/JSCustomSQLStatementCallback.cpp:
68715         (WebCore::JSCustomSQLStatementCallback::handleEvent):
68716         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
68717         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
68718         * bindings/js/JSCustomSQLTransactionCallback.cpp:
68719         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
68720         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
68721         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
68722         * bindings/js/JSCustomVoidCallback.cpp:
68723         (WebCore::JSCustomVoidCallback::handleEvent):
68724         * bindings/js/JSCustomXPathNSResolver.cpp:
68725         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
68726         * bindings/js/ScheduledAction.cpp:
68727         (WebCore::ScheduledAction::execute):
68728         * bindings/js/ScriptController.cpp:
68729         (WebCore::ScriptController::evaluate):
68730         * bindings/objc/WebScriptObject.mm:
68731         (WebCore::addExceptionToConsole):
68732         Switch to JSDOMBinding methods for reporting exceptions.
68733
68734 2008-11-18  Dan Bernstein  <mitz@apple.com>
68735
68736         Reviewed by Mark Rowe.
68737
68738         - WebCore part of https://bugs.webkit.org/show_bug.cgi?id=22331
68739           <rdar://problem/6381657> REGRESSION: Contextual menu no longer has an "Inspect Element" item
68740
68741         * platform/ContextMenuItem.h:
68742         (WebCore::ContextMenuAction): Reorder this enum to keep it in sync with
68743         the one in WebUIDelegate.h.
68744
68745 2008-11-18  Dimitri Glazkov  <dglazkov@chromium.org>
68746
68747         Reviewed by Darin Adler.
68748
68749         https://bugs.webkit.org/show_bug.cgi?id=22346
68750         PlatformString should also include HashSet.h for non-JSC builds
68751
68752         * platform/text/PlatformString.h:
68753
68754 2008-11-18  Adele Peterson  <adele@apple.com>
68755
68756         Reviewed by Holger Hans Peter Freyther.
68757
68758         Flip check added in recent refactoring so the background gets updated when the background color is valid, not invalid.
68759
68760         * loader/FrameLoaderClient.cpp: (WebCore::FrameLoaderClient::transitionToCommittedForNewPage):
68761
68762 2008-11-18  Dimitri Glazkov  <dglazkov@chromium.org>
68763
68764         Reviewed by Sam Weinig.
68765
68766         https://bugs.webkit.org/show_bug.cgi?id=22343
68767         Remove unused runtime/Collector, JSLock includes in Page.cpp
68768
68769         * page/Page.cpp:
68770
68771 2008-11-18  Ada Chan  <adachan@apple.com>
68772
68773         Bug 22344: Make select popup window opaque
68774         https://bugs.webkit.org/show_bug.cgi?id=22344
68775
68776         Reviewed by Steve Falkenburg.
68777
68778         * platform/win/PopupMenuWin.cpp:
68779         (WebCore::PopupMenu::show):
68780
68781 2008-11-18  Dimitri Glazkov  <dglazkov@chromium.org>
68782
68783         Reviewed by Sam Weinig.
68784
68785         https://bugs.webkit.org/show_bug.cgi?id=22342
68786         Remove unused JSLock.h include
68787
68788         * dom/Document.cpp:
68789
68790 2008-11-18  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
68791
68792         Reviewed by Sam Weinig.
68793
68794         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22334
68795
68796         Add WMLBRElement, correcting <br/> behaviour in WML.
68797         Enable entity replacment for WML documents.
68798         Handle WML specific <p> 'mode' attribute.
68799
68800         Generate layout tests results for fast/wml.
68801
68802         Tests cases that pass now:
68803         fast/wml/br-element-in-table.wml
68804         fast/wml/br-element-in-text.wml
68805         fast/wml/case-sensitivity.wml
68806         fast/wml/cdata-section.wml
68807         fast/wml/comment.wml
68808         fast/wml/entity.wml
68809         fast/wml/p-align.wml
68810         fast/wml/p-mode.wml
68811         fast/wml/text-emphasis.wml
68812         fast/wml/validate-dtd.wml
68813
68814         * GNUmakefile.am:
68815         * WebCore.pro:
68816         * WebCore.xcodeproj/project.pbxproj:
68817         * dom/XMLTokenizer.cpp:
68818         (WebCore::XMLTokenizer::isWMLDocument):
68819         (WebCore::XMLTokenizer::insertErrorMessageBlock):
68820         * dom/XMLTokenizer.h:
68821         * dom/XMLTokenizerLibxml2.cpp:
68822         (WebCore::XMLTokenizer::internalSubset):
68823         (WebCore::getEntityHandler):
68824         * dom/XMLTokenizerQt.cpp:
68825         (WebCore::XMLTokenizer::parse):
68826         * wml/WMLBRElement.cpp: Added.
68827         (WebCore::WMLBRElement::WMLBRElement):
68828         (WebCore::WMLBRElement::mapToEntry):
68829         (WebCore::WMLBRElement::parseMappedAttribute):
68830         (WebCore::WMLBRElement::createRenderer):
68831         * wml/WMLBRElement.h: Added.
68832         * wml/WMLPElement.cpp:
68833         (WebCore::WMLPElement::parseMappedAttribute):
68834         (WebCore::WMLPElement::insertedIntoDocument):
68835         * wml/WMLPElement.h:
68836         * wml/WMLTagNames.in:
68837
68838 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
68839
68840         Windows build fix.
68841
68842         * WebCore.vcproj/WebCore.vcproj: Fix relative paths to use $(WebKitOutputDir).
68843
68844 2008-11-18  Darin Adler  <darin@apple.com>
68845
68846         - try to fix Wx build
68847
68848         * WebCoreSources.bkl: Added FrameLoaderClient.cpp.
68849
68850 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
68851
68852         Reviewed by Darin Adler.
68853
68854         https://bugs.webkit.org/show_bug.cgi?id=22337
68855         Enable workers by default
68856
68857         Tests: fast/workers/worker-constructor.html
68858                fast/workers/worker-event-listener.html
68859                fast/workers/worker-gc.html
68860                fast/workers/worker-location.html
68861
68862         * Configurations/WebCore.xcconfig:
68863         * WebCore.vcproj/WebCore.vcproj:
68864         * WebCore.vcproj/build-generated-files.sh:
68865         Define ENABLE_WORKERS.
68866
68867 2008-11-18  Darin Adler  <darin@apple.com>
68868
68869         Reviewed by Alexey Proskuryakov.
68870
68871         - first cut at https://bugs.webkit.org/show_bug.cgi?id=10957
68872           <rdar://problem/5516594> please add support for HTTP-only cookies
68873
68874         Test: http/tests/xmlhttprequest/get-dangerous-headers.html
68875
68876         No test for HTTP-only support in JavaScript yet, since the Mac and Win changes
68877         require an updated CFNetwork.
68878
68879         * platform/mac/CookieJar.mm:
68880         (WebCore::isHTTPOnly): Added.
68881         (WebCore::filterCookies): Added.
68882         (WebCore::cookies): Use filterCookies to prevent getting HTTP-only cookies.
68883         (WebCore::setCookies): Use filterCookies to prevent setting HTTP-only cookies.
68884
68885         * platform/network/win/CookieJarCFNetWin.cpp:
68886         (WebCore::isHTTPOnly): Added.
68887         (WebCore::filterCookies): Added.
68888         (WebCore::setCookies): Use filterCookies to prevent getting HTTP-only cookies.
68889         (WebCore::cookies): Use filterCookies to prevent getting HTTP-only cookies.
68890
68891         * xml/XMLHttpRequest.cpp:
68892         (WebCore::isSetCookieHeader): Added.
68893         (WebCore::XMLHttpRequest::getAllResponseHeaders): Hide Set-Cookie headers from
68894         clients that don't have local-resource privileges.
68895         (WebCore::XMLHttpRequest::getResponseHeader): Ditto.
68896
68897         - clean soup-specific details out of shared cookie jar header
68898
68899         * platform/CookieJar.h: Removed the soup-specific parts of this.
68900         * platform/network/soup/CookieJarSoup.cpp: Changed to include
68901         CookieJarSoup.h. Tweaked implementation a bit to handle UTF-8 better.
68902         * platform/network/soup/CookieJarSoup.h: Added. Has the Soup-specified
68903         part of CookieJar.h.
68904         * platform/network/soup/ResourceHandleSoup.cpp: Changed to include
68905         CookieJarSoup.h.
68906
68907 2008-11-18  Steve Falkenburg  <sfalken@apple.com>
68908
68909         https://bugs.webkit.org/show_bug.cgi?id=22329
68910         Improper bitwise and tests against 0 in Windows context menu code
68911
68912         Reviewed by John Sullivan.
68913
68914         * platform/win/ContextMenuItemWin.cpp:
68915         (WebCore::ContextMenuItem::type):
68916         (WebCore::ContextMenuItem::enabled):
68917
68918 2008-11-18  John Sullivan  <sullivan@apple.com>
68919
68920         Yet more Mac build fixing
68921
68922         * WebCore.base.exp: Export __ZTVN7WebCore17FrameLoaderClientE
68923
68924 2008-11-18  Tor Arne Vestbø  <tavestbo@trolltech.com>
68925
68926         Reviewed by Simon Hausmann.
68927
68928         React properly to frame rect changes for QWidget based plugins
68929
68930         We now set the geometry of the QWidget in frameRectsChanged,
68931         intead of setFrameRect, which means we pick up the changes to
68932         the frame rect when scrolling. We also set a mask on the
68933         widget to keep it from painting over scrollbars and the like
68934
68935         * platform/qt/WidgetQt.cpp:
68936         (WebCore::Widget::setFrameRect):
68937
68938 2008-11-18  Tor Arne Vestbø  <tavestbo@trolltech.com>
68939
68940         Rubber-stamped by Simon Hausmann.
68941
68942         Don't mark scrollbars as focused in QtWebKit
68943
68944         When initing from the widget we also got the focus state,
68945         but this does not make sense for scrollbars.
68946
68947         * platform/qt/ScrollbarThemeQt.cpp:
68948         (WebCore::styleOptionSlider):
68949
68950 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
68951
68952         More Mac build fixing.
68953
68954         * WebCore.base.exp: Export FrameLoaderClient destructor.
68955
68956 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
68957
68958         Mac build fix.
68959
68960         * WebCore.xcodeproj/project.pbxproj: Add FrameLoaderClient.cpp for now.
68961
68962 2008-11-18  Holger Hans Peter Freyther  <zecke@selfish.org>
68963
68964         Reviewed by Simon Hausmann.
68965
68966         https://bugs.webkit.org/show_bug.cgi?id=22056
68967
68968         Attempt to share transitionToCommittedForNewPage of FrameLoaderClient with the different ports
68969
68970         After Hyatt's work on Widget and ScrollView there is little difference
68971         between the implementation of Qt, Gtk+ and Win. In fact any kind of
68972         difference is mostly a bug. Alp has fixed two of such errors for the Gtk+
68973         port and the Qt port has at least one of them left.
68974
68975         The only difference between the implementations is in getting the the
68976         IntSize for the new FrameView, the background color to be applied and
68977         eventually some post processing.
68978
68979         Unify the implementations by providing a static helper function that
68980         takes a Frame, IntSize, color and transparency bit and calling it from
68981         the Gtk+, the Qt and the Windows port.
68982
68983         * GNUmakefile.am:
68984         * WebCore.pro:
68985         * WebCore.vcproj/WebCore.vcproj:
68986         * loader/FrameLoaderClient.cpp: Added.
68987         (WebCore::FrameLoaderClient::~FrameLoaderClient):
68988         (WebCore::FrameLoaderClient::transitionToCommittedForNewPage):
68989         * loader/FrameLoaderClient.h:
68990
68991 2008-11-18  Holger Hans Peter Freyther  <zecke@selfish.org>
68992
68993         Reviewed by Simon Hausmann.
68994
68995         https://bugs.webkit.org/show_bug.cgi?id=22056
68996
68997         Move setting the background color and transparency from WebKit/win
68998         to WebCore. This allows WebKit/win, WebKit/Qt and WebKit/Gtk+
68999         to share this code.
69000
69001         * page/FrameView.cpp:
69002         (WebCore::FrameView::updateBackgroundRecursively):
69003         * page/FrameView.h:
69004
69005 2008-11-18  Ariya Hidayat  <ariya.hidayat@trolltech.com>
69006
69007         Reviewed by Tor Arne Vestbø.
69008
69009         Fix the bug where select elements are painted without border.
69010         http://trolltech.com/developer/task-tracker/index_html?id=218957&method=entry
69011
69012         * platform/qt/RenderThemeQt.cpp:
69013         (WebCore::RenderThemeQt::paintMenuList):
69014
69015 2008-11-18  Jan Michael Alonzo  <jmalonzo@webkit.org>
69016
69017         Gtk build fix. Not reviewed.
69018
69019         * GNUmakefile.am: Fix USER_AGENT_STYLESHEETS, wml.css is in css/,
69020         not in wml/.
69021
69022 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
69023
69024         Reviewed by Darin Adler.
69025
69026         https://bugs.webkit.org/show_bug.cgi?id=22308
69027         Improve Worker GC behavior
69028
69029         * dom/ActiveDOMObject.cpp: (WebCore::ActiveDOMObject::hasPendingActivity):
69030         * dom/ActiveDOMObject.h:
69031         Made hasPendingActivity() virtual, letting Worker add behavior to it.
69032
69033         * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate):
69034         * dom/WorkerThread.cpp: (WebCore::WorkerThread::workerThread):
69035         Tell message proxy whether there are active objects in the worker whenever JS execution
69036         finishes.
69037
69038         * dom/ScriptExecutionContext.h: (WebCore::ScriptExecutionContext::activeDOMObjects):
69039         Added a typedef for activeDOMObjects() return type, necessary to declare iterators.
69040
69041         * dom/Worker.h:
69042         * dom/Worker.cpp: (WebCore::Worker::hasPendingActivity): A Worker is active if it is still
69043         loading, or if it has unconfirmed messages, or it the worker thread has pending activity.
69044
69045         * dom/WorkerContext.h:
69046         * dom/WorkerContext.cpp: (WebCore::WorkerContext::hasPendingActivity): Check all registered
69047         active objects for pending activity.
69048
69049         * dom/WorkerMessagingProxy.cpp:
69050         (WebCore::MessageWorkerContextTask::performTask):
69051         (WebCore::WorkerThreadActivityReportTask::create):
69052         (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask):
69053         (WebCore::WorkerThreadActivityReportTask::performTask):
69054         (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
69055         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
69056         (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
69057         (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):
69058         (WebCore::WorkerMessagingProxy::confirmWorkerThreadMessage):
69059         (WebCore::WorkerMessagingProxy::reportWorkerThreadActivity):
69060         (WebCore::WorkerMessagingProxy::reportWorkerThreadActivityInternal):
69061         (WebCore::WorkerMessagingProxy::workerThreadHasPendingActivity):
69062         * dom/WorkerMessagingProxy.h:
69063         Track outstanding messages, and activity reported by worker thread.
69064
69065 2008-11-18  Alexey Proskuryakov  <ap@webkit.org>
69066
69067         Rubber-stamped by Darin Adler.
69068
69069         https://bugs.webkit.org/show_bug.cgi?id=22306
69070         Disable channel messaging support
69071
69072         * bindings/js/JSDOMWindowBase.cpp:
69073         (jsDOMWindowBaseMessageChannel):
69074         * page/DOMWindow.idl:
69075         Hide MesssagePort and MessageChannel global constructors. Due to the way MessageChannel
69076         constructor is added, it remains enumerable, but undefined.
69077
69078 2008-11-17  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
69079
69080         Reviewed by Mark Rowe.
69081
69082         Remove WBXML code. MainResourceLoader is not an appropriate location.
69083         Revert until we find a better place.
69084
69085         The mime type which belongs to wmlc should be enabled anyway so WML documents get build.
69086         Remove the ENABLE(WBXML) blocks around these types in MIMETypeRegistry / DOMImplementation.
69087
69088         * WebCore.pro:
69089         * dom/DOMImplementation.cpp:
69090         (WebCore::DOMImplementation::createDocument):
69091         * loader/MainResourceLoader.cpp:
69092         (WebCore::MainResourceLoader::addData):
69093         * platform/MIMETypeRegistry.cpp:
69094         (WebCore::initializeSupportedNonImageMimeTypes):
69095
69096 2008-11-17  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
69097
69098         Not reviewed. Build fix.
69099
69100         Oops, disable WML by default on Qt.
69101
69102         * WebCore.pro:
69103
69104 2008-11-17  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
69105
69106         Reviewed by George Staikos.
69107
69108         Fixes: https://bugs.webkit.org/show_bug.cgi?id=22324 (Add basic subset of WML elements)
69109
69110         Add first bits of WML support. Only <card> & <p> and <a> elements are supported in this first patch.
69111         Support for most other elements will be added step-by-step (merging in small chunks from a big patch).
69112
69113         WML is not build by default.
69114
69115         * DerivedSources.make: Handle WMLNames/WMLElementFactory generation.
69116         * GNUmakefile.am: Add new files and generator hooks.
69117         * WebCore.pro: Ditto.
69118         * WebCore.xcodeproj/project.pbxproj: Ditto.
69119         * css/CSSStyleSelector.cpp: Load wml.css on demand, just like it's done for SVG.
69120         (WebCore::linkAttribute):
69121         (WebCore::CSSStyleSelector::styleForElement):c
69122         * css/wml.css: Added.
69123         * dom/DOMImplementation.cpp: Handle WMLDocument creation
69124         (WebCore::DOMImplementation::createDocument):
69125         * dom/Document.cpp: Handle WMLElement creation.
69126         (WebCore::Document::createElement):
69127         * dom/Document.h: Add helper function identifying WML documents.
69128         (WebCore::Document::isWMLDocument):
69129         * dom/Node.h: Add heper function identifying WML elements.
69130         (WebCore::Node::isWMLElement):
69131         * dom/XMLTokenizer.cpp: Handle errors in WML documents
69132         (WebCore::XMLTokenizer::insertErrorMessageBlock):
69133         * dom/XMLTokenizerLibxml2.cpp: Add WML DTD checks.
69134         (WebCore::XMLTokenizer::internalSubset):
69135         * dom/XMLTokenizerQt.cpp: Ditto.
69136         (WebCore::):
69137         * dom/make_names.pl: Force internal linkage for the "tagConstructor" functions, avoiding SVG<->WML clashes.
69138         * history/BackForwardList.cpp: Add WML specific function for clearing the history.
69139         (WebCore::BackForwardList::clearWmlPageHistory):
69140         * history/BackForwardList.h:
69141         * loader/FrameLoader.cpp: Add WML specific 'shouldReload' logic.
69142         (WebCore::FrameLoader::FrameLoader):
69143         (WebCore::FrameLoader::setForceReloadWmlDeck):
69144         (WebCore::FrameLoader::shouldReload):
69145         (WebCore::FrameLoader::loadItem):
69146         * loader/FrameLoader.h:
69147         * loader/MainResourceLoader.cpp: Add WBXML support (only enabled on Linux/Qt at the moment)
69148         (WebCore::MainResourceLoader::addData):
69149         * page/Frame.cpp: Initialize WMLNames.
69150         (WebCore::Frame::Frame):
69151         * page/Page.cpp: Maintain WMLPageState object per Page.
69152         (WebCore::Page::Page):
69153         (WebCore::Page::setWMLPageState):
69154         (WebCore::Page::wmlPageState):
69155         * page/Page.h:
69156         * platform/MIMETypeRegistry.cpp: Recognize WML extensions.
69157         (WebCore::initializeSupportedNonImageMimeTypes):
69158         * platform/gtk/MIMETypeRegistryGtk.cpp: Ditto.
69159         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
69160         * platform/qt/MIMETypeRegistryQt.cpp: Ditto.
69161         (WebCore::):
69162         * platform/win/MIMETypeRegistryWin.cpp: Ditto.
69163         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
69164         * manual-tests/wml: Added.
69165         * manual-tests/wml/a-br-element.wml: Added.
69166         * manual-tests/wml/a-element.wml: Added.
69167         * manual-tests/wml/a-img-element.wml: Added.
69168         * manual-tests/wml/access-target.wml: Added.
69169         * manual-tests/wml/anchor-br-element.wml: Added.
69170         * manual-tests/wml/anchor-element.wml: Added.
69171         * manual-tests/wml/anchor-img-element.wml: Added.
69172         * manual-tests/wml/card-newcontext-attr.wml: Added.
69173         * manual-tests/wml/card-onenterbackward.wml: Added.
69174         * manual-tests/wml/card-onenterforward.wml: Added.
69175         * manual-tests/wml/card-ontimer.wml: Added.
69176         * manual-tests/wml/deck-access-control.wml: Added.
69177         * manual-tests/wml/go-element.wml: Added.
69178         * manual-tests/wml/input-emptyok.wml: Added.
69179         * manual-tests/wml/input-format.wml: Added.
69180         * manual-tests/wml/onevent-go.wml: Added.
69181         * manual-tests/wml/onevent-noop.wml: Added.
69182         * manual-tests/wml/onevent-prev.wml: Added.
69183         * manual-tests/wml/onevent-refresh.wml: Added.
69184         * manual-tests/wml/onevent-shadow.wml: Added.
69185         * manual-tests/wml/postfield-get.wml: Added.
69186         * manual-tests/wml/postfield-post.wml: Added.
69187         * manual-tests/wml/select-element.wml: Added.
69188         * manual-tests/wml/select-onpick-event.wml: Added.
69189         * manual-tests/wml/setvar-element.wml: Added.
69190         * manual-tests/wml/targetdeck.wml: Added.
69191         * manual-tests/wml/task-go-in-anchor.wml: Added.
69192         * manual-tests/wml/task-noop-in-do.wml: Added.
69193         * manual-tests/wml/task-noop-in-onevent.wml: Added.
69194         * manual-tests/wml/task-prev-in-anchor.wml: Added.
69195         * manual-tests/wml/task-refresh-in-anchor.wml: Added.
69196         * manual-tests/wml/template-go.wml: Added.
69197         * manual-tests/wml/template-onevent.wml: Added.
69198         * manual-tests/wml/template-ontimer.wml: Added.
69199         * manual-tests/wml/timer.wml: Added.
69200         * manual-tests/wml/variable-substitution.wml: Added.
69201         * wml: Added.
69202         * wml/WMLAElement.cpp: Added.
69203         (WebCore::WMLAElement::WMLAElement):
69204         (WebCore::WMLAElement::parseMappedAttribute):
69205         (WebCore::WMLAElement::supportsFocus):
69206         (WebCore::WMLAElement::isFocusable):
69207         (WebCore::WMLAElement::isMouseFocusable):
69208         (WebCore::WMLAElement::isKeyboardFocusable):
69209         (WebCore::WMLAElement::defaultEventHandler):
69210         (WebCore::WMLAElement::accessKeyAction):
69211         (WebCore::WMLAElement::isURLAttribute):
69212         (WebCore::WMLAElement::target):
69213         * wml/WMLAElement.h: Added.
69214         * wml/WMLAttributeNames.in: Added.
69215         * wml/WMLCardElement.cpp: Added.
69216         (WebCore::WMLCardElement::WMLCardElement):
69217         * wml/WMLCardElement.h: Added.
69218         * wml/WMLDocument.cpp: Added.
69219         (WebCore::WMLDocument::WMLDocument):
69220         (WebCore::WMLDocument::~WMLDocument):
69221         * wml/WMLDocument.h: Added.
69222         (WebCore::WMLDocument::create):
69223         (WebCore::WMLDocument::isWMLDocument):
69224         * wml/WMLElement.cpp: Added.
69225         (WebCore::WMLElement::WMLElement):
69226         (WebCore::WMLElement::mapToEntry):
69227         (WebCore::WMLElement::parseMappedAttribute):
69228         (WebCore::WMLElement::rendererIsNeeded):
69229         (WebCore::WMLElement::createRenderer):
69230         * wml/WMLElement.h: Added.
69231         (WebCore::WMLElement::isWMLElement):
69232         * wml/WMLPElement.cpp: Added.
69233         (WebCore::WMLPElement::WMLPElement):
69234         (WebCore::WMLPElement::mapToEntry):
69235         (WebCore::WMLPElement::parseMappedAttribute):
69236         * wml/WMLPElement.h: Added.
69237         * wml/WMLPageState.cpp: Added.
69238         (WebCore::WMLPageState::WMLPageState):
69239         (WebCore::WMLPageState::~WMLPageState):
69240         (WebCore::WMLPageState::reset):
69241         (WebCore::WMLPageState::setNeedCheckDeckAccess):
69242         (WebCore::WMLPageState::isDeckAccessible):
69243         * wml/WMLPageState.h: Added.
69244         (WebCore::WMLPageState::storeVariable):
69245         (WebCore::WMLPageState::storeVariables):
69246         (WebCore::WMLPageState::getVaribale):
69247         (WebCore::WMLPageState::hasVariables):
69248         (WebCore::WMLPageState::historyLength):
69249         (WebCore::WMLPageState::setHistoryLength):
69250         (WebCore::WMLPageState::page):
69251         (WebCore::WMLPageState::activeCard):
69252         (WebCore::WMLPageState::setActiveCard):
69253         (WebCore::WMLPageState::setDeckAccessDomain):
69254         (WebCore::WMLPageState::setDeckAccessPath):
69255         (WebCore::WMLPageState::hasDeckAccess):
69256         * wml/WMLTagNames.in: Added.
69257
69258 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
69259
69260         Reviewed by Sam Weinig.
69261
69262         Updated for JavaScriptCore renames.
69263
69264         * WebCore.pro:
69265         * webcore-base.bkl:
69266
69267 2008-11-17  Justin Garcia  <justin.garcia@apple.com>
69268
69269         Reviewed by Beth Dakin.
69270
69271         <rdar://problem/4922709> Copying less than a paragraph of quoted text and pasting it doesn't retain quote level
69272
69273         There was code to intentionally avoid quoting pasted content if less than a paragraph of
69274         it was copied.  That was added for <rdar://problem/5006779>, but was unnecessary because
69275         that bug was about Paste and Match style for single paragraphs.  And quote stripping for
69276         Paste and Match style is handled elsewhere.
69277
69278         * editing/markup.cpp:
69279         (WebCore::createMarkup):
69280
69281 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
69282
69283         Reviewed by Sam Weinig.
69284
69285         Updated for JavaScriptCore rename.
69286
69287         * ForwardingHeaders/interpreter/CallFrame.h: Copied from WebCore/ForwardingHeaders/runtime/ExecState.h.
69288         * ForwardingHeaders/runtime/ExecState.h: Removed.
69289         * bindings/objc/WebScriptObject.mm:
69290         * bridge/c/c_instance.cpp:
69291         * bridge/jni/jni_jsobject.mm:
69292         * dom/Node.cpp:
69293         * dom/NodeFilter.cpp:
69294         * dom/NodeIterator.cpp:
69295         * dom/TreeWalker.cpp:
69296         * inspector/JavaScriptCallFrame.h:
69297
69298 2008-11-17  Pierre-Olivier Latour  <pol@apple.com>
69299
69300         Reviewed by Sam Weinig.
69301
69302         Added functionality to AnimationController to allow pausing a running
69303         animation or transition at a given time for testing purposes.
69304
69305         https://bugs.webkit.org/show_bug.cgi?id=21261
69306
69307         Tests: animations/animation-drt-api.html
69308                transitions/transition-drt-api.html
69309
69310         * WebCore.base.exp:
69311         * WebCore.xcodeproj/project.pbxproj:
69312         * page/animation/AnimationBase.cpp:
69313         (WebCore::AnimationBase::updateStateMachine):
69314         (WebCore::AnimationBase::progress):
69315         (WebCore::AnimationBase::pauseAtTime):
69316         * page/animation/AnimationBase.h:
69317         * page/animation/AnimationController.cpp:
69318         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
69319         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
69320         (WebCore::AnimationController::pauseAnimationAtTime):
69321         (WebCore::AnimationController::pauseTransitionAtTime):
69322         * page/animation/AnimationController.h:
69323         * page/animation/CompositeAnimation.cpp:
69324         (WebCore::CompositeAnimationPrivate::isAnimating):
69325         (WebCore::CompositeAnimationPrivate::pauseAnimationAtTime):
69326         (WebCore::CompositeAnimationPrivate::pauseTransitionAtTime):
69327         (WebCore::CompositeAnimation::pauseAnimationAtTime):
69328         (WebCore::CompositeAnimation::pauseTransitionAtTime):
69329         * page/animation/CompositeAnimation.h:
69330         * page/animation/ImplicitAnimation.cpp:
69331         (WebCore::ImplicitAnimation::animate):
69332
69333 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
69334
69335         Reviewed by Sam Weinig.
69336
69337         Updated for JavaScriptCore renames.
69338
69339         * ForwardingHeaders/VM: Removed.
69340         * ForwardingHeaders/VM/Machine.h: Removed.
69341         * ForwardingHeaders/interpreter: Added.
69342         * ForwardingHeaders/interpreter/Interpreter.h: Copied from ForwardingHeaders/VM/Machine.h.
69343         * WebCore.pro:
69344         * bindings/js/JSXMLHttpRequestCustom.cpp:
69345         * page/Console.cpp:
69346         * webcore-base.bkl:
69347
69348 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
69349
69350         Reviewed by Sam Weinig.
69351
69352         Updated for JavaScriptCore renames.
69353
69354         * ForwardingHeaders/runtime/Interpreter.h: Removed.
69355         * WebCore.vcproj/WebCore.vcproj:
69356         * bindings/js/JSDOMBinding.h:
69357         * bindings/js/WorkerScriptController.cpp:
69358         * bindings/objc/WebScriptObject.mm:
69359         * bridge/NP_jsobject.cpp:
69360         * bridge/jni/jni_jsobject.mm:
69361         * html/CanvasRenderingContext2D.cpp:
69362         * inspector/JavaScriptCallFrame.cpp:
69363         * page/Console.cpp:
69364
69365 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
69366
69367         Not reviewed.
69368
69369         Try to fix wx build.
69370
69371         * webcore-base.bkl:
69372
69373 2008-11-17  Greg Bolsinga  <bolsinga@apple.com>
69374
69375         Reviewed by Darin Adler.
69376
69377         https://bugs.webkit.org/show_bug.cgi?id=21810
69378         Remove use of static C++ objects that are destroyed at exit time (destructors)
69379
69380         Find some missing DEFINE_STATIC_LOCAL use cases.
69381
69382         * bindings/js/JSSVGPODTypeWrapper.h:
69383         (WebCore::PODTypeWrapperCacheInfoTraits::emptyValue):
69384         (WebCore::JSSVGDynamicPODTypeWrapperCache::dynamicWrapperHashMap):
69385         * dom/make_names.pl: Generate code to use DEFINE_STATIC_LOCAL.
69386         * page/AccessibilityRenderObject.cpp:
69387         (WebCore::RoleEntry::): This method is only called once, so the array does not have to be static.
69388         * platform/graphics/FontCache.cpp:
69389         (WebCore::FontPlatformDataCacheKeyTraits::emptyValue):
69390         (WebCore::FontDataCacheKeyTraits::emptyValue):
69391         * rendering/style/RenderStyle.h:
69392         (WebCore::InheritedFlags::initialTransform):
69393
69394 2008-11-17  Geoffrey Garen  <ggaren@apple.com>
69395
69396         Not reviewed.
69397
69398         Try to fix Qt build.
69399
69400         * WebCore.pro:
69401
69402 2008-11-16  Simon Fraser  <simon.fraser@apple.com>
69403
69404         Reviewed by Dan Bernstein
69405
69406         https://bugs.webkit.org/show_bug.cgi?id=22118
69407
69408         Fix resize corner tracking in transformed elements by using
69409         mapping the point into local coords using absoluteToLocal,
69410         rather than convertToLayerCoords.
69411
69412         Test: fast/css/resize-corner-tracking-transformed.html
69413
69414         * page/EventHandler.h:
69415         * rendering/RenderLayer.cpp:
69416         (WebCore::RenderLayer::absoluteToContents):
69417         (WebCore::RenderLayer::offsetFromResizeCorner):
69418         (WebCore::RenderLayer::isPointInResizeControl):
69419         * rendering/RenderLayer.h:
69420
69421 2008-11-16  Geoffrey Garen  <ggaren@apple.com>
69422
69423         Not reviewed.
69424
69425         Try to fix Qt build.
69426
69427         * WebCore.pro:
69428
69429 2008-11-16  Greg Bolsinga  <bolsinga@apple.com>
69430
69431         Reviewed by Geoffrey Garen.
69432
69433         Use RefPtr and PassRefPtr where appropriate.
69434
69435         * loader/FTPDirectoryDocument.cpp:
69436         (WebCore::createTemplateDocumentData):
69437
69438 2008-11-16  Greg Bolsinga  <bolsinga@apple.com>
69439
69440         Fix build break for real.
69441
69442         * loader/FTPDirectoryDocument.cpp:
69443         (WebCore::createTemplateDocumentData):
69444
69445 2008-11-16  Greg Bolsinga  <bolsinga@apple.com>
69446
69447         Fix build break and bug.
69448
69449         * loader/FTPDirectoryDocument.cpp:
69450         (WebCore::createTemplateDocumentData):
69451
69452 2008-11-16  Greg Bolsinga  <bolsinga@apple.com>
69453
69454         Reviewed by Darin Adler.
69455
69456         https://bugs.webkit.org/show_bug.cgi?id=21810
69457         Remove use of static C++ objects that are destroyed at exit time (destructors)
69458
69459         Use DEFINE_STATIC_LOCAL for static RetainPtr<T>, RefPtr<T>. Add additional
69460         uses of DEFINE_STATIC_LOCAL where appropriate.
69461
69462         * html/HTMLTableElement.cpp:
69463         (WebCore::HTMLTableElement::addSharedCellBordersDecl): new the AtomicStrings
69464         * loader/CachedImage.cpp:
69465         (WebCore::brokenImage):
69466         (WebCore::nullImage):
69467         * loader/FTPDirectoryDocument.cpp:
69468         (WebCore::_createTemplateDocumentData): Created so accessor has one line initialization
69469         (WebCore::FTPDirectoryTokenizer::loadDocumentTemplate):
69470         * loader/icon/IconDatabase.cpp:
69471         (WebCore::loadDefaultIconRecord):
69472         * page/AccessibilityObject.cpp:
69473         (WebCore::AccessibilityObject::actionVerb):
69474         * page/AccessibilityRenderObject.cpp:
69475         (WebCore::AccessibilityRenderObject::actionVerb):
69476         * page/mac/EventHandlerMac.mm:
69477         (WebCore::currentEvent):
69478         * platform/ScrollView.cpp:
69479         (WebCore::ScrollView::paint):
69480         * platform/graphics/Image.cpp:
69481         (WebCore::Image::nullImage):
69482         * platform/graphics/mac/ColorMac.mm:
69483         (WebCore::nsColor):
69484         * platform/graphics/mac/FontCacheMac.mm: new the Strings
69485         (WebCore::FontCache::getSimilarFontPlatformData):
69486         * platform/graphics/mac/GraphicsContextMac.mm:
69487         (WebCore::_createPatternColor): Created so accessor has one line initialization
69488         (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
69489         * platform/graphics/mac/SimpleFontDataMac.mm:
69490         (WebCore::webFallbackFontFamily):
69491         * platform/mac/PasteboardMac.mm:
69492         (WebCore::writableTypesForURL):
69493         (WebCore::createWritableTypesForImage): Created so accessor has one line initialization
69494         (WebCore::writableTypesForImage):
69495         (WebCore::stripAttachmentCharacters):
69496         * rendering/RenderLayer.cpp:
69497         (WebCore::RenderLayer::paintResizer):
69498
69499 2008-11-16  Holger Hans Peter Freyther  <zecke@selfish.org>
69500
69501         Reviewed by Darin Adler.
69502
69503         Do not spit Curl errors into the stdout as this is used by DRT
69504
69505         We have failing tests results due the curl errors printed to stdout,
69506         move them to stderr to be able to pass those tests.
69507
69508         * platform/network/curl/ResourceHandleManager.cpp:
69509         (WebCore::ResourceHandleManager::startJob):
69510
69511 2008-11-16  Holger Hans Peter Freyther  <zecke@selfish.org>
69512
69513         - fix the Gtk+ build
69514
69515         * GNUmakefile.am:
69516
69517 2008-11-16  Darin Adler  <darin@apple.com>
69518
69519         - try to fix Qt build
69520
69521         * WebCore.pro: Add the worker-related source files.
69522
69523 2008-11-16  Darin Adler  <darin@apple.com>
69524
69525         Suggested by Alexey Proskuryakov.
69526
69527         - fix the GTK build another way
69528
69529         * GNUmakefile.am: Add the worker-related source files.
69530         * bindings/js/JSEventTarget.cpp: Take the #if back out.
69531
69532 2008-11-16  Darin Adler  <darin@apple.com>
69533
69534         - try to fix GTK build
69535
69536         * bindings/js/JSEventTarget.cpp: Put worker includes inside an #if.
69537
69538 2008-11-16  Darin Adler  <darin@apple.com>
69539
69540         Reviewed by Dan Bernstein.
69541
69542         - https://bugs.webkit.org/show_bug.cgi?id=22295
69543           track which history items are from page load failures
69544
69545         * history/HistoryItem.cpp: Sort includes, add newly needed ones, and remove
69546         no-longer-needed ones.
69547         (WebCore::HistoryItem::HistoryItem): Initialize m_lastVisitWasFailure to false.
69548         (WebCore::HistoryItem::showTreeWithIndent): Rewrote to avoid appending to a
69549         String, since that's not efficient.
69550
69551         * history/HistoryItem.h: Removed unneeded includes. Added lastVisitWasFailure,
69552         setLastVisitWasFailure, and m_lastVisitWasFailure.
69553
69554         * history/mac/HistoryItemMac.mm: Add newly-needed include
69555         (WebCore::HistoryItem::setTransientProperty): Rewrote to avoid keeping a
69556         m_transientProperties map around when it is empty.
69557
69558         * loader/FrameLoader.cpp:
69559         (WebCore::FrameLoader::createHistoryItem): Call setLastVisitWasFailure when
69560         the page was unreachable or an HTTP page with a status code that indicates
69561         failure.
69562
69563 2008-11-16  Yong Li  <yong.li@torchmobile.com>
69564
69565         Reviewed by Timothy Hatcher.
69566         Landed by George Staikos.
69567
69568         Optimization: don't relayout, repaint, or emit a DOM event if the
69569         scroll event didn't scroll anywhere.
69570
69571         * rendering/RenderLayer.cpp:
69572         (WebCore::RenderLayer::scrollToOffset): add early exit
69573
69574 2008-11-16  Alexey Proskuryakov  <ap@webkit.org>
69575
69576         Reviewed by Dan Bernstein.
69577
69578         https://bugs.webkit.org/show_bug.cgi?id=22290
69579         Remove cross-heap GC and MessagePort multi-threading support
69580
69581         It is broken (and may not be implementable at all), and no longer needed, as we
69582         don't use MessagePorts for communication with workers any more.
69583
69584         * bindings/js/JSDOMBinding.cpp:
69585         * bindings/js/JSDOMBinding.h:
69586         * bindings/js/JSDOMWindowBase.cpp:
69587         * bindings/js/JSDOMWindowBase.h:
69588         Removed cross-heap GC implementation.
69589
69590         * dom/MessagePort.cpp:
69591         (WebCore::MessagePort::hasPendingActivity):
69592         * dom/MessagePort.h:
69593         Made objects RefCounted instead of ThreadSafeShared, added FIXME comments for code that is
69594         unnecessarily complicated for single threaded case.
69595
69596 2008-11-14  Alexey Proskuryakov  <ap@webkit.org>
69597
69598         Reviewed by Maciej Stachowiak.
69599
69600         https://bugs.webkit.org/show_bug.cgi?id=22266
69601         Stop using MessagePort for communication with workers
69602
69603         The current MessagePort specification is not well suited for being implemented in a
69604         multi-threaded or multi-process environment, and this doesn't appear to be easily fixable.
69605         This patch implements a simpler Mozilla API for workers instead.
69606
69607         * WebCore.xcodeproj/project.pbxproj:
69608         * DerivedSources.make:
69609         * bindings/js/JSDOMWindowBase.cpp: (jsDOMWindowBaseWorker):
69610         * bindings/js/JSDedicatedWorkerConstructor.cpp: Removed.
69611         * bindings/js/JSDedicatedWorkerConstructor.h: Removed.
69612         * bindings/js/JSDedicatedWorkerCustom.cpp: Removed.
69613         * bindings/js/JSWorkerConstructor.cpp: Copied from WebCore/bindings/js/JSDedicatedWorkerConstructor.cpp.
69614         * bindings/js/JSWorkerConstructor.h: Copied from WebCore/bindings/js/JSDedicatedWorkerConstructor.h.
69615         * bindings/js/JSWorkerCustom.cpp: Copied from WebCore/bindings/js/JSDedicatedWorkerCustom.cpp.
69616         * dom/DedicatedWorker.cpp: Removed.
69617         * dom/DedicatedWorker.h: Removed.
69618         * dom/DedicatedWorker.idl: Removed.
69619         Renamed DedicatedWorker to Worker to match Mozilla and current WHATWG cpec.
69620
69621         * bindings/js/JSEventListener.cpp: (WebCore::JSAbstractEventListener::handleEvent):
69622         Clear worker exceptions to avoid hitting an assertion.
69623
69624         * dom/EventTarget.cpp: (WebCore::EventTarget::toWorker):
69625         * dom/EventTarget.h:
69626         * bindings/js/JSEventTarget.cpp: (WebCore::toJS):
69627         WorkerContext is now an EventTarget, too.
69628
69629         * bindings/js/JSWorkerContext.cpp: Removed onconnect, constructors for MessageChannel and
69630         MessagePort. Added postMessage() and onmessage.
69631
69632         * dom/ScriptExecutionContext.cpp: (WebCore::performTask): Do not reference ScriptExecutionContext
69633         when posting a task - this operation is not thread safe. It is also not necessary any more,
69634         as the context is kept alive by WorkerMessagingProxy.
69635
69636         * dom/Worker.cpp: Copied from WebCore/dom/DedicatedWorker.cpp.
69637         (WebCore::Worker::Worker): Start loading the script right away - there is no reason to do
69638         that on a timer.
69639         (WebCore::Worker::~Worker): Notify messaging proxy.
69640         (WebCore::Worker::postMessage): Just ask the proxy to post the message.
69641         (WebCore::Worker::notifyFinished): Notify messaging proxy when a thread object becomes
69642         available. Also, it is now safe to unsetPendingActivity(), making the object collectable.
69643         I'm not sure if this is the right lifetime for workers, as unreachable workers with event
69644         listeners should probably be kept alive, but it at least lets the object be collected.
69645         (WebCore::Worker::addEventListener): Added an EventTarget implementation.
69646         (WebCore::Worker::removeEventListener): Added an EventTarget implementation.
69647         (WebCore::Worker::dispatchEvent): Added an EventTarget implementation.
69648
69649         * dom/Worker.h: Copied from WebCore/dom/DedicatedWorker.h.
69650         * dom/Worker.idl: Copied from WebCore/dom/DedicatedWorker.idl.
69651         Removed onclose, made an EventListener. Actual messaging is now handled by WorkerMessagingProxy.
69652
69653         * dom/WorkerContext.cpp:
69654         (WebCore::WorkerContext::~WorkerContext): Notify messaging proxy that the context was shut
69655         down successfully.
69656         (WebCore::WorkerContext::postMessage): Added. Post the message via messaging proxy.
69657
69658         * dom/WorkerContext.h: Added postMessage and onmessage, removed onconnect.
69659
69660         * dom/WorkerMessagingProxy.cpp: Added.
69661         * dom/WorkerMessagingProxy.h: Added.
69662         This new class implements actual messaging. It is notified when a Worker is garbage collected,
69663         and asks the thread to shut down. It also owns the thread object, and references script
69664         execution context, making it safe to post messages to it remotely.
69665
69666         * dom/WorkerThread.cpp:
69667         * dom/WorkerThread.h:
69668         Keep a reference to messaging proxy, not to Worker itself. Also, the thread object no longer
69669         keeps itself alive - it is now the job of messaging proxy.
69670
69671 2008-11-15  Darin Adler  <darin@apple.com>
69672
69673         Rubber stamped by Geoff Garen.
69674
69675         - do the long-planned StructureID -> Structure rename
69676
69677         * ForwardingHeaders/runtime/Structure.h: Copied from WebCore/ForwardingHeaders/runtime/StructureID.h.
69678         * ForwardingHeaders/runtime/StructureID.h: Removed.
69679         * bindings/js/JSAudioConstructor.cpp:
69680         (WebCore::JSAudioConstructor::JSAudioConstructor):
69681         * bindings/js/JSDOMBinding.cpp:
69682         (WebCore::getCachedDOMStructure):
69683         (WebCore::cacheDOMStructure):
69684         * bindings/js/JSDOMBinding.h:
69685         (WebCore::DOMObject::DOMObject):
69686         (WebCore::getDOMStructure):
69687         * bindings/js/JSDOMGlobalObject.cpp:
69688         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
69689         * bindings/js/JSDOMGlobalObject.h:
69690         * bindings/js/JSDOMWindowBase.cpp:
69691         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
69692         * bindings/js/JSDOMWindowBase.h:
69693         * bindings/js/JSDOMWindowShell.cpp:
69694         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
69695         (WebCore::JSDOMWindowShell::setWindow):
69696         * bindings/js/JSDOMWindowShell.h:
69697         (WebCore::JSDOMWindowShell::createStructure):
69698         * bindings/js/JSDedicatedWorkerConstructor.cpp:
69699         (WebCore::JSDedicatedWorkerConstructor::JSDedicatedWorkerConstructor):
69700         * bindings/js/JSHTMLAllCollection.h:
69701         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
69702         (WebCore::JSHTMLAllCollection::createStructure):
69703         * bindings/js/JSImageConstructor.cpp:
69704         (WebCore::JSImageConstructor::JSImageConstructor):
69705         * bindings/js/JSInspectedObjectWrapper.cpp:
69706         (WebCore::JSInspectedObjectWrapper::wrap):
69707         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
69708         * bindings/js/JSInspectedObjectWrapper.h:
69709         * bindings/js/JSInspectorCallbackWrapper.cpp:
69710         (WebCore::leakInspectorCallbackWrapperStructure):
69711         (WebCore::JSInspectorCallbackWrapper::wrap):
69712         (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper):
69713         * bindings/js/JSInspectorCallbackWrapper.h:
69714         * bindings/js/JSMessageChannelConstructor.cpp:
69715         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
69716         * bindings/js/JSNamedNodesCollection.h:
69717         (WebCore::JSNamedNodesCollection::createStructure):
69718         * bindings/js/JSOptionConstructor.cpp:
69719         (WebCore::JSOptionConstructor::JSOptionConstructor):
69720         * bindings/js/JSQuarantinedObjectWrapper.cpp:
69721         (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
69722         * bindings/js/JSQuarantinedObjectWrapper.h:
69723         (WebCore::JSQuarantinedObjectWrapper::createStructure):
69724         * bindings/js/JSRGBColor.h:
69725         (WebCore::JSRGBColor::createStructure):
69726         * bindings/js/JSWorkerContext.cpp:
69727         (WebCore::createJSWorkerContextStructure):
69728         (WebCore::JSWorkerContext::JSWorkerContext):
69729         (WebCore::JSWorkerContext::createPrototype):
69730         * bindings/js/JSWorkerContext.h:
69731         (WebCore::JSWorkerContext::createStructure):
69732         (WebCore::JSWorkerContextPrototype::JSWorkerContextPrototype):
69733         (WebCore::JSWorkerContextPrototype::createStructure):
69734         * bindings/js/JSXMLHttpRequestConstructor.cpp:
69735         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
69736         * bindings/js/JSXSLTProcessorConstructor.cpp:
69737         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
69738         * bindings/scripts/CodeGeneratorJS.pm:
69739         * bridge/objc/objc_runtime.h:
69740         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
69741         * bridge/qt/qt_runtime.cpp:
69742         (JSC::Bindings::QtConnectionObject::execute):
69743         * bridge/qt/qt_runtime.h:
69744         (JSC::Bindings::QtRuntimeMethod::createStructure):
69745         * bridge/runtime_array.h:
69746         (JSC::RuntimeArray::createStructure):
69747         * bridge/runtime_method.h:
69748         (JSC::RuntimeMethod::createStructure):
69749         * bridge/runtime_object.cpp:
69750         (JSC::RuntimeObjectImp::RuntimeObjectImp):
69751         * bridge/runtime_object.h:
69752         (JSC::RuntimeObjectImp::createStructure):
69753
69754 2008-11-15  Darin Adler  <darin@apple.com>
69755
69756         Reviewed by Dan Bernstein.
69757
69758         - fix just-introduced crash in the svg/custom/svg-fonts-in-html.html test
69759
69760         This gets rid of the crash. It restores the behavior of the CG case from before Dirk
69761         Shulze removed the platorm-dependent code, but perhaps it should be changed further
69762         in the future so that the default for no style is "no stroke". I think the patch is
69763         fine for fill.
69764
69765         * svg/graphics/SVGPaintServerSolid.cpp:
69766         (WebCore::SVGPaintServerSolid::setup): Added null checks for svgStyle.
69767         (WebCore::SVGPaintServerSolid::renderPath): Added null checks for style and svgStyle.
69768
69769 2008-11-15  Kevin Ollivier  <kevino@theolliviers.com>
69770
69771         Reviewed by Timothy Hatcher.
69772
69773         Initialize m_networkStateChangedFunction to 0 as otherwise the check for null will fail.
69774
69775         https://bugs.webkit.org/show_bug.cgi?id=22284
69776
69777         * platform/network/NetworkStateNotifier.h:
69778         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
69779
69780 2008-11-15  Dirk Schulze  <krit@webkit.org>
69781
69782         Reviewed by Geoffrey Garen.
69783
69784         r38426 caused a wrong drawing of a LayoutTest. Use another
69785         way to set the color to pass this test again.
69786
69787         * svg/graphics/SVGPaintServerSolid.cpp:
69788         (WebCore::SVGPaintServerSolid::setup):
69789
69790 2008-11-15  Dirk Schulze  <krit@webkit.org>
69791
69792         Reviewed by Darin Adler.
69793
69794         Removed platform dependent code on SVGPaintServerSolid.
69795
69796         * GNUmakefile.am:
69797         * WebCore.pro:
69798         * WebCore.vcproj/WebCore.vcproj:
69799         * WebCore.xcodeproj/project.pbxproj:
69800         * svg/graphics/SVGPaintServerSolid.cpp:
69801         (WebCore::SVGPaintServerSolid::setup):
69802         (WebCore::SVGPaintServerSolid::renderPath):
69803         * svg/graphics/SVGPaintServerSolid.h:
69804         * svg/graphics/cairo/SVGPaintServerSolidCairo.cpp: Removed.
69805         * svg/graphics/cg/SVGPaintServerSolidCg.cpp: Removed.
69806         * svg/graphics/qt/SVGPaintServerSolidQt.cpp: Removed.
69807
69808 2008-11-15  Geoffrey Garen  <ggaren@apple.com>
69809
69810         Reviewed by Sam Weinig.
69811
69812         Updated for JavaScriptCore renames.
69813
69814         * bindings/js/JSNodeCustom.cpp:
69815         (WebCore::JSNode::mark):
69816         * bindings/js/JSXMLHttpRequestCustom.cpp:
69817         (WebCore::JSXMLHttpRequest::send):
69818         * bindings/js/ScriptController.cpp:
69819         (WebCore::ScriptController::evaluate):
69820         * bindings/js/WorkerScriptController.cpp:
69821         (WebCore::WorkerScriptController::evaluate):
69822         * bindings/objc/WebScriptObject.mm:
69823         (-[WebScriptObject evaluateWebScript:]):
69824         * bridge/NP_jsobject.cpp:
69825         (_NPN_Evaluate):
69826         * bridge/jni/jni_jsobject.mm:
69827         (JavaJSObject::eval):
69828         * page/Console.cpp:
69829         (WebCore::retrieveLastCaller):
69830         (WebCore::Console::trace):
69831
69832 2008-11-14  Greg Bolsinga  <bolsinga@apple.com>
69833
69834         Reviewed by Darin Adler.
69835
69836         https://bugs.webkit.org/show_bug.cgi?id=21810
69837         Remove use of static C++ objects that are destroyed at exit time (destructors)
69838
69839         Create DEFINE_STATIC_LOCAL macro. Change static local objects to leak to avoid
69840         exit-time destructor. Update code that was changed to fix this issue that ran
69841         into a gcc bug (<rdar://problem/6354696> Codegen issue with C++ static reference
69842         in gcc build 5465). Also typdefs for template types needed to be added in some
69843         cases so the type could make it through the macro successfully.
69844
69845         Basically code of the form:
69846         static T m;
69847         becomes:
69848         DEFINE_STATIC_LOCAL(T, m, ());
69849
69850         Also any code of the form:
69851         static T& m = *new T;
69852         also becomes:
69853         DEFINE_STATIC_LOCAL(T, m, ());
69854
69855         * ForwardingHeaders/wtf/StdLibExtras.h: Added.
69856         * bindings/js/GCController.cpp:
69857         (WebCore::gcController):
69858         * bindings/js/JSDOMBinding.cpp:
69859         (WebCore::wrapperSet):
69860         * bindings/js/JSInspectedObjectWrapper.cpp:
69861         (WebCore::wrappers):
69862         * bindings/js/JSInspectorCallbackWrapper.cpp:
69863         (WebCore::wrappers):
69864         * bindings/js/JSNavigatorCustom.cpp:
69865         (WebCore::needsYouTubeQuirk):
69866         * bridge/runtime_root.cpp:
69867         (JSC::Bindings::rootObjectSet):
69868         * css/CSSMutableStyleDeclaration.cpp:
69869         (WebCore::initShorthandMap):
69870         (WebCore::CSSMutableStyleDeclaration::removeProperty):
69871         * css/CSSPrimitiveValue.cpp:
69872         (WebCore::CSSPrimitiveValue::cssText):
69873         * css/CSSSelector.cpp:
69874         (WebCore::CSSSelector::extractPseudoType):
69875         * css/CSSStyleSelector.cpp:
69876         (WebCore::screenEval):
69877         (WebCore::printEval):
69878         * dom/DOMImplementation.cpp:
69879         (WebCore::addString):
69880         (WebCore::isSVG10Feature):
69881         (WebCore::isSVG11Feature):
69882         (WebCore::DOMImplementation::isXMLMIMEType):
69883         * dom/Document.cpp:
69884         (WebCore::Document::hasPrefixNamespaceMismatch):
69885         * dom/ScriptElement.cpp:
69886         (WebCore::isSupportedJavaScriptLanguage):
69887         * editing/ApplyStyleCommand.cpp:
69888         (WebCore::styleSpanClassString):
69889         * editing/HTMLInterchange.cpp:
69890         (WebCore::):
69891         * editing/IndentOutdentCommand.cpp:
69892         (WebCore::indentBlockquoteString):
69893         * editing/ReplaceSelectionCommand.cpp:
69894         (WebCore::isInterchangeNewlineNode):
69895         (WebCore::isInterchangeConvertedSpaceSpan):
69896         * editing/htmlediting.cpp:
69897         (WebCore::stringWithRebalancedWhitespace):
69898         (WebCore::nonBreakingSpaceString):
69899         * editing/markup.cpp:
69900         (WebCore::appendAttributeValue):
69901         (WebCore::appendEscapedContent):
69902         (WebCore::shouldAddNamespaceAttr):
69903         (WebCore::appendNamespace):
69904         (WebCore::appendStartMarkup):
69905         (WebCore::createMarkup):
69906         * html/HTMLButtonElement.cpp:
69907         (WebCore::HTMLButtonElement::type):
69908         * html/HTMLElement.cpp:
69909         (WebCore::HTMLElement::isRecognizedTagName):
69910         (WebCore::inlineTagList):
69911         (WebCore::blockTagList):
69912         * html/HTMLFieldSetElement.cpp:
69913         (WebCore::HTMLFieldSetElement::type):
69914         * html/HTMLInputElement.cpp:
69915         (WebCore::HTMLInputElement::type):
69916         * html/HTMLKeygenElement.cpp:
69917         (WebCore::HTMLKeygenElement::type):
69918         * html/HTMLLegendElement.cpp:
69919         (WebCore::HTMLLegendElement::type):
69920         * html/HTMLOptGroupElement.cpp:
69921         (WebCore::HTMLOptGroupElement::type):
69922         * html/HTMLOptionElement.cpp:
69923         (WebCore::HTMLOptionElement::type):
69924         * html/HTMLParser.cpp:
69925         (WebCore::HTMLParser::getNode):
69926         (WebCore::HTMLParser::isHeaderTag):
69927         (WebCore::HTMLParser::isResidualStyleTag):
69928         (WebCore::HTMLParser::isAffectedByResidualStyle):
69929         * html/HTMLSelectElement.cpp:
69930         (WebCore::HTMLSelectElement::type):
69931         * html/HTMLTextAreaElement.cpp:
69932         (WebCore::HTMLTextAreaElement::type):
69933         * inspector/InspectorController.cpp:
69934         (WebCore::platform):
69935         * inspector/JavaScriptDebugServer.cpp:
69936         (WebCore::JavaScriptDebugServer::shared):
69937         * inspector/JavaScriptProfile.cpp:
69938         (WebCore::profileCache):
69939         * inspector/JavaScriptProfileNode.cpp:
69940         (WebCore::profileNodeCache):
69941         * loader/FrameLoader.cpp:
69942         (WebCore::localSchemes):
69943         * loader/appcache/ApplicationCacheStorage.cpp:
69944         (WebCore::cacheStorage):
69945         * loader/archive/ArchiveFactory.cpp:
69946         (WebCore::archiveMIMETypes):
69947         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
69948         * loader/icon/IconDatabase.cpp:
69949         (WebCore::IconDatabase::defaultDatabaseFilename):
69950         * page/EventHandler.cpp:
69951         (WebCore::EventHandler::dragState):
69952         * page/Frame.cpp:
69953         (WebCore::createRegExpForLabels):
69954         (WebCore::keepAliveSet):
69955         * page/Page.cpp:
69956         (WebCore::Page::groupName):
69957         * page/SecurityOrigin.cpp:
69958         (WebCore::isDefaultPortForProtocol):
69959         (WebCore::SecurityOrigin::databaseIdentifier):
69960         * page/mac/FrameMac.mm:
69961         (WebCore::regExpForLabels):
69962         * platform/KURL.cpp:
69963         (WebCore::blankURL):
69964         * platform/graphics/FontCache.cpp:
69965         (WebCore::alternateFamilyName):
69966         * platform/graphics/mac/FontCacheMac.mm:
69967         (WebCore::FontCache::getSimilarFontPlatformData):
69968         (WebCore::FontCache::getLastResortFallbackFont):
69969         * platform/mac/CursorMac.mm:
69970         (WebCore::leakNamedCursor):
69971         (WebCore::pointerCursor):
69972         (WebCore::crossCursor):
69973         (WebCore::handCursor):
69974         (WebCore::moveCursor):
69975         (WebCore::verticalTextCursor):
69976         (WebCore::cellCursor):
69977         (WebCore::contextMenuCursor):
69978         (WebCore::aliasCursor):
69979         (WebCore::zoomInCursor):
69980         (WebCore::zoomOutCursor):
69981         (WebCore::copyCursor):
69982         (WebCore::noneCursor):
69983         (WebCore::progressCursor):
69984         (WebCore::noDropCursor):
69985         (WebCore::notAllowedCursor):
69986         (WebCore::iBeamCursor):
69987         (WebCore::waitCursor):
69988         (WebCore::helpCursor):
69989         (WebCore::eastResizeCursor):
69990         (WebCore::northResizeCursor):
69991         (WebCore::northEastResizeCursor):
69992         (WebCore::northWestResizeCursor):
69993         (WebCore::southResizeCursor):
69994         (WebCore::southEastResizeCursor):
69995         (WebCore::southWestResizeCursor):
69996         (WebCore::westResizeCursor):
69997         (WebCore::northSouthResizeCursor):
69998         (WebCore::eastWestResizeCursor):
69999         (WebCore::northEastSouthWestResizeCursor):
70000         (WebCore::northWestSouthEastResizeCursor):
70001         (WebCore::columnResizeCursor):
70002         (WebCore::rowResizeCursor):
70003         (WebCore::grabCursor):
70004         (WebCore::grabbingCursor):
70005         * platform/mac/ScrollbarThemeMac.mm:
70006         (WebCore::ScrollbarTheme::nativeTheme):
70007         * platform/mac/ThemeMac.mm:
70008         (WebCore::platformTheme):
70009         * platform/mac/ThreadCheck.mm:
70010         (WebCoreReportThreadViolation):
70011         * platform/network/NetworkStateNotifier.cpp:
70012         (WebCore::networkStateNotifier):
70013         * platform/network/mac/FormDataStreamMac.mm:
70014         (WebCore::getStreamFormDataMap):
70015         (WebCore::getStreamResourceHandleMap):
70016         * platform/network/mac/ResourceResponseMac.mm:
70017         (WebCore::ResourceResponse::platformLazyInit):
70018         * platform/text/TextEncoding.cpp:
70019         (WebCore::TextEncoding::isJapanese):
70020         * plugins/PluginMainThreadScheduler.cpp:
70021         (WebCore::PluginMainThreadScheduler::scheduler):
70022         * rendering/RenderBlock.cpp:
70023         (WebCore::continuationOutlineTable):
70024         (WebCore::RenderBlock::addContinuationWithOutline):
70025         (WebCore::RenderBlock::paintContinuationOutlines):
70026         * rendering/RenderCounter.cpp:
70027         (WebCore::counterMaps):
70028         * rendering/RenderFlexibleBox.cpp:
70029         (WebCore::RenderFlexibleBox::layoutVerticalBox):
70030         * rendering/RenderListItem.cpp:
70031         (WebCore::RenderListItem::markerText):
70032         * rendering/RenderScrollbarTheme.cpp:
70033         (WebCore::RenderScrollbarTheme::renderScrollbarTheme):
70034         * rendering/RenderThemeMac.mm:
70035         (WebCore::RenderThemeMac::systemFont):
70036         * rendering/bidi.cpp:
70037         (WebCore::RenderBlock::checkLinesForTextOverflow):
70038         * rendering/style/RenderStyle.cpp:
70039         (WebCore::RenderStyle::initialDashboardRegions):
70040         (WebCore::RenderStyle::noneDashboardRegions):
70041         * storage/Database.cpp:
70042         (WebCore::guidMutex):
70043         (WebCore::guidToVersionMap):
70044         (WebCore::guidToDatabaseMap):
70045         (WebCore::Database::databaseInfoTableName):
70046         (WebCore::databaseVersionKey):
70047         (WebCore::Database::getVersionFromDatabase):
70048         (WebCore::Database::setVersionInDatabase):
70049         (WebCore::guidForOriginAndName):
70050         * storage/DatabaseTracker.cpp:
70051         (WebCore::DatabaseTracker::tracker):
70052         (WebCore::notificationMutex):
70053         (WebCore::notificationQueue):
70054         * storage/LocalStorage.cpp:
70055         (WebCore::localStorageMap):
70056         * svg/SVGAnimateMotionElement.cpp:
70057         (WebCore::SVGAnimateMotionElement::rotateMode):
70058         * svg/SVGAnimationElement.cpp:
70059         (WebCore::SVGAnimationElement::calcMode):
70060         (WebCore::SVGAnimationElement::attributeType):
70061         (WebCore::SVGAnimationElement::isAdditive):
70062         (WebCore::SVGAnimationElement::isAccumulated):
70063         * svg/SVGLangSpace.cpp:
70064         (WebCore::SVGLangSpace::xmlspace):
70065         * svg/SVGSVGElement.cpp:
70066         (WebCore::SVGSVGElement::contentScriptType):
70067         (WebCore::SVGSVGElement::contentStyleType):
70068         * svg/SVGStyleElement.cpp:
70069         (WebCore::SVGStyleElement::type):
70070         (WebCore::SVGStyleElement::media):
70071         * svg/SVGTextContentElement.cpp:
70072         (WebCore::SVGTextContentElement::parseMappedAttribute):
70073         * svg/animation/SVGSMILElement.cpp:
70074         (WebCore::SVGSMILElement::parseClockValue):
70075         (WebCore::SVGSMILElement::restart):
70076         (WebCore::SVGSMILElement::fill):
70077         (WebCore::SVGSMILElement::repeatCount):
70078         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged):
70079         * svg/graphics/SVGResource.cpp:
70080         (WebCore::clientMap):
70081         (WebCore::SVGResource::removeClient):
70082         * svg/graphics/SVGResourceMarker.cpp:
70083         (WebCore::SVGResourceMarker::draw):
70084         * xml/XMLHttpRequest.cpp:
70085         (WebCore::PreflightResultCacheItem::PreflightResultCacheItem):
70086         (WebCore::preflightResultCache):
70087         (WebCore::appendPreflightResultCacheEntry):
70088         (WebCore::isSafeRequestHeader):
70089         (WebCore::isOnAccessControlResponseHeaderWhitelist):
70090         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
70091         * xml/XPathExpressionNode.cpp:
70092         (WebCore::XPath::Expression::evaluationContext):
70093         * xml/XPathParser.cpp:
70094         (WebCore::XPath::setUpAxisNamesMap):
70095         (WebCore::XPath::isAxisName):
70096         (WebCore::XPath::isNodeTypeName):
70097         * xml/XPathValue.cpp:
70098         (WebCore::XPath::Value::toNodeSet):
70099
70100 2008-11-14  Dan Bernstein  <mitz@apple.com>
70101
70102         - attempt to fix the Qt build
70103
70104         * platform/qt/Localizations.cpp:
70105         (WebCore::contextMenuItemTagTextDirectionMenu): Added. Maybe this string
70106         needs to go somewhere else in addition to here.
70107
70108 2008-11-14  Kevin Ollivier  <kevino@theolliviers.com>
70109
70110         wx build fix.
70111
70112         * platform/wx/LocalizedStringsWx.cpp:
70113         (WebCore::contextMenuItemTagTextDirectionMenu):
70114
70115 2008-11-14  Dan Bernstein  <mitz@apple.com>
70116
70117         Reviewed by Darin Adler.
70118
70119         - <rdar://problem/6234307> Support action methods for setting and clearing character-level directionality
70120         - WebCore part of <rdar://problem/6234337> Add a Text Direction menu to the default context menu when appropriate
70121
70122         * WebCore.base.exp: Exported
70123         WebCore::Settings::setTextDirectionSubmenuInclusionBehavior().
70124
70125         * editing/ApplyStyleCommand.cpp:
70126         (StyleChange::init): Changed to always include the direction property
70127         in the result if the unicode-bidi property is included.
70128         (ApplyStyleCommand::splitAncestorsWithUnicodeBidi): Added. Finds the
70129         highest ancestor of the given node that establishes bidi embedding. If
70130         that embedding agrees with the given allowed direction, finds the
70131         second-highest embedding ancestor. Splits all nodes through that
70132         ancestor. If the highest embedding ancestor did not need to be split,
70133         it is returned.
70134         (ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock): Added. Removes
70135         bidi embedding attributes and styles from all ancestors of the given
70136         node up to its enclosing block or the given node.
70137         (ApplyStyleCommand::applyInlineStyle): Added code to handle the
70138         unicode-bidi property. Applying style the includes this property
70139         involves removing all bidi embedding in effect, except  for one-level
70140         embedding that agrees with the desired embedding, then applying the
70141         desired embedding where it is not already in effect.
70142         (ApplyStyleCommand::applyInlineStyleToRange): Factored out from
70143         applyInlineStyle().
70144         (ApplyStyleCommand::removeHTMLBidiEmbeddingStyle): Added. Removed the
70145         "dir" attribute if necessary and the element if it becomes an unstyled
70146         style span.
70147         (ApplyStyleCommand::removeCSSStyle): Changed to remove the direction
70148         property when removing the unicode-bidi property.
70149         (ApplyStyleCommand::removeInlineStyle): Added a call to
70150         removeHTMLBidiEmbeddingStyle().
70151
70152         * editing/ApplyStyleCommand.h:
70153         * editing/Editor.cpp:
70154         (Editor::textDirectionForSelection): Added. Returns the character-level
70155         writing direction of the selection if it is uniform and simple (at most
70156         one level of embedding).
70157         (Editor::hasBidiSelection): Added. Returns true if the selection lies
70158         entirely within a single block, and that block has direction:rtl or
70159         contains any inline boxes with non-zero bidi embedding level.
70160
70161         * editing/Editor.h:
70162         * editing/EditorCommand.cpp:
70163         (stateTextWritingDirection): Added this helper function for deciding
70164         the state of Text Direction submenu items.
70165         (executeMakeTextWritingDirectionLeftToRight): Added. Applies
70166         "unicode-bidi: embed; direction: ltr;".
70167         (executeMakeTextWritingDirectionNatural): Added. Applies
70168         "unicode-bidi: normal;"
70169         (executeMakeTextWritingDirectionRightToLeft): Added. Applies
70170         "unicode-bidi: embed; direction: rtl;".
70171         (stateTextWritingDirectionLeftToRight): Added.
70172         (stateTextWritingDirectionNatural): Added.
70173         (stateTextWritingDirectionRightToLeft): Added.
70174         (createCommandMap): Added "MakeTextWritingDirectionLeftToRight",
70175         "MakeTextWritingDirectionNatural",
70176         and "MakeTextWritingDirectionRightToLeft".
70177
70178         * editing/InsertTextCommand.cpp:
70179         (InsertTextCommand::input): Added code to maintain the unicode-bidi
70180         and direction properties in the typing style. Even if they have the
70181         same values as the computed style at the caret, they need to be included
70182         in the typing style so that inserted text will not inherit any nested
70183         embedding.
70184
70185         * page/ContextMenuController.cpp:
70186         (ContextMenuController::contextMenuItemSelected): Added calls to
70187         the editor for the text direction menu items.
70188
70189         * page/Frame.cpp
70190         (Frame::computeAndSetTypingStyle): Added code to maintain the
70191         unicode-bidi and direction properties in the typing style.
70192
70193         * page/Settings.cpp:
70194         (Settings::setTextDirectionSubmenuInclusionBehavior): Added this setter.
70195
70196         * page/Settings.h: Added a TextDirectionSubmenuInclusionBehavior enum,
70197         an m_textDirectionSubmenuInclusionBehavior member, and accessors.
70198
70199         * page/mac/WebCoreViewFactory.h:
70200         * platform/ContextMenu.cpp:
70201         (WebCore::createAndAppendTextDirectionSubMenu): Added.
70202         (ContextMenu::populate): Added the Text Direction submenu item based on
70203         the inclusion behavior and the existence of a bidi selection.
70204         (ContextMenu::checkOrEnableIfNeeded): Added code for the text direction
70205         menu items.
70206
70207         * platform/ContextMenuItem.h:
70208         * platform/LocalizedStrings.h: Declared
70209         contextMenuItemTagTextDirectionMenu().
70210
70211         * platform/mac/LocalizedStringsMac.mm: Defined
70212         contextMenuItemTagTextDirectionMenu().
70213
70214         * rendering/RenderBlock.cpp:
70215         (RenderBlock::containsNonZeroBidiLevel): Added.
70216         * rendering/RenderBlock.h:
70217
70218 2008-11-14  Greg Bolsinga  <bolsinga@apple.com>
70219
70220         Reviewed by Darin Adler.
70221
70222         https://bugs.webkit.org/show_bug.cgi?id=22264
70223         Need to update to latest Geolocation spec (13 November 2008)
70224
70225         Update to new error code constants and values.
70226
70227         * page/Geolocation.cpp: Use new named ErrorCode enums
70228         (WebCore::Geolocation::GeoNotifier::timerFired):
70229         (WebCore::Geolocation::getCurrentPosition):
70230         (WebCore::Geolocation::watchPosition):
70231         * page/PositionError.h: Have ErrorCode enum names match new error constant names and values
70232         (WebCore::PositionError::):
70233         * page/PositionError.idl: Add new named error constants
70234
70235 2008-11-14  Beth Dakin  <bdakin@apple.com>
70236
70237         Reviewed by Justin Garcia.
70238
70239         Fix (again) for <rdar://problem/5089327> Too much indentation when
70240         pasting quoted paragraphs
70241
70242         This patch goes back to Justin's original approach to fix this bug,
70243         written in revision 38273. That fix was mostly rolled out by
70244         revision 38310 because of styling issues created by the addition of
70245         extra blockquote nodes. This patch again goes back to Justin's
70246         original fix because of cases we discovered the newer fix could not
70247         possibly cover. This version of the patch minimizes the styling
70248         issues of extra blockquotes by opting into the merge start code.
70249
70250         * editing/ReplaceSelectionCommand.cpp:
70251         (WebCore::hasMatchingQuoteLevel): We want shouldMergeStart to
70252         return true when the quoting level of the end of the inserted
70253         content matches the quoting level of the end of the existing
70254         content.
70255         (WebCore::ReplaceSelectionCommand::shouldMergeStart): Now calls
70256         hasMatchingQuoteLevel
70257         (WebCore::ReplaceSelectionCommand::doApply):
70258
70259 2008-11-14  Dirk Schulze  <vbs85@gmx.de>
70260
70261         Reviewed by Eric Seidel.
70262
70263         Made SVGResourceClipper platform independent.
70264         https://bugs.webkit.org/show_bug.cgi?id=21444
70265
70266         * GNUmakefile.am:
70267         * WebCore.pro:
70268         * WebCore.vcproj/WebCore.vcproj:
70269         * WebCore.xcodeproj/project.pbxproj:
70270         * platform/graphics/GraphicsContext.h:
70271         * platform/graphics/cairo/GraphicsContextCairo.cpp:
70272         (WebCore::GraphicsContext::clipPath):
70273         * platform/graphics/cg/GraphicsContextCG.cpp:
70274         (WebCore::GraphicsContext::clipPath):
70275         * platform/graphics/qt/GraphicsContextQt.cpp:
70276         (WebCore::GraphicsContext::addPath):
70277         (WebCore::GraphicsContext::clipPath):
70278         * svg/graphics/SVGResourceClipper.cpp:
70279         (WebCore::SVGResourceClipper::applyClip):
70280         * svg/graphics/cairo/SVGResourceClipperCairo.cpp: Removed.
70281         * svg/graphics/cg/SVGResourceClipperCg.cpp: Removed.
70282         * svg/graphics/qt/SVGResourceClipperQt.cpp: Removed.
70283
70284 2008-11-14  Antti Koivisto  <antti@apple.com>
70285
70286         Reviewed by Anders Carlsson.
70287
70288         Combine loadFrameRequestWithFormState to loadFrameRequestWithFormAndValues.
70289
70290         * loader/FrameLoader.cpp:
70291         (WebCore::FrameLoader::loadFrameRequestWithFormAndValues):
70292         * loader/FrameLoader.h:
70293
70294 2008-11-14  Sam Weinig  <sam@webkit.org>
70295
70296         Reviewed by Eric Seidel.
70297
70298         Remove unneeded forward declaration.
70299
70300         * plugins/Plugin.h:
70301
70302 2008-11-14  Darin Fisher  <darin@chromium.org>
70303
70304         Reviewed by Darin Adler.
70305
70306         https://bugs.webkit.org/show_bug.cgi?id=22251
70307         HTMLCanvasElement.cpp unnecessarily includes runtime/Interpreter.h
70308
70309         * html/HTMLCanvasElement.cpp:
70310
70311 2008-11-14  Yael Aharon  <yael.aharon@nokia.com>
70312
70313         Reviewed by Simon Hausmann.
70314
70315         Add new files from the Qt port to the build.
70316
70317         * WebCore.pro:
70318
70319 2008-11-14  Yael Aharon  <yael.aharon@nokia.com>
70320
70321         Reviewed by Simon Hausmann.
70322
70323         Made DatabaseTracker::hasEntryForOrigin() public. This allows the Qt
70324         port to apply a default quota only if there is no entry in the
70325         database for a given origin yet.
70326
70327         * storage/DatabaseTracker.h:
70328
70329 2008-11-14  Yael Aharon  <yael.aharon@nokia.com>
70330
70331         Reviewed by Simon Hausmann.
70332
70333         Make it possible to get the cache directory set in the application
70334         cache storage.
70335
70336         * loader/appcache/ApplicationCacheStorage.cpp:
70337         (WebCore::ApplicationCacheStorage::cacheDirectory): Added.
70338         * loader/appcache/ApplicationCacheStorage.h:
70339
70340 2008-11-14  Justin Garcia  <justin.garcia@apple.com>
70341
70342         Reviewed by Beth Dakin.
70343
70344         <rdar://problem/4230923> "Make Plain Text" doesn't reset text alignment in single paragraph messages
70345
70346         When applying block styles, we would add block properties to the body element, and Mail's
70347         Make Plain Text feature isn't equipped to remove those.  This could have been fixed on our side,
70348         but this change has the advantage that it fixes the bug on Tiger, where Mail does not plan future updates.
70349
70350         We have code that puts the paragraphs that we're operating on into blocks of their own before
70351         adding or removing block properties from the blocks that enclose them.  We need to run this code
70352         when the enclosing block is the body element.
70353
70354         * editing/CompositeEditCommand.cpp:
70355         (WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Added, moved code from moveParagraphContents
70356         to here.
70357         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Renamed some variables for clarity.
70358         Added a few comments.  Fixed bug by not bailing out when the block about to be used is the body element.
70359         * editing/CompositeEditCommand.h:
70360
70361 2008-11-14  Cameron Zwarich  <zwarich@apple.com>
70362
70363         Reviewed by Darin Adler.
70364
70365         Bug 22245: Move wtf/dtoa.h into the WTF namespace
70366         <https://bugs.webkit.org/show_bug.cgi?id=22245>
70367
70368         Move wtf/dtoa.h into the WTF namespace from the JSC namespace.
70369
70370         * platform/text/String.cpp:
70371         (WebCore::charactersToDouble):
70372
70373 2008-11-14  Tor Arne Vestbø  <tavestbo@trolltech.com>
70374
70375         Rubber-stamped by Simon Hausmann.
70376
70377         Make sure Qt scrollbars follow the style with regard to context menus
70378
70379         * platform/qt/ScrollbarQt.cpp:
70380         (WebCore::Scrollbar::contextMenu):
70381
70382 2008-11-14  Tor Arne Vestbø  <tavestbo@trolltech.com>
70383
70384         Rubber-stamped by Simon Hausmann.
70385
70386         Make scrollbar look active when the window is active on Qt/Mac
70387
70388         * platform/qt/ScrollbarThemeQt.cpp:
70389         (WebCore::styleOptionSlider):
70390         (WebCore::ScrollbarThemeQt::paint):
70391
70392 2008-11-13  Eric Seidel  <eric@webkit.org>
70393
70394         Reviewed by Adam Roben.
70395
70396         Add a basic Scons-based build system for building
70397         Chromium-Mac WebCore.
70398         https://bugs.webkit.org/show_bug.cgi?id=21991
70399
70400         The build currently fails due to missing files from our
70401         platform directory (platform skia and platform chromium)
70402         I will be sending those up shortly in separate patches.
70403         I expect it will be a while before our WebCore build links.
70404
70405         * SConstruct: Added.
70406         * WebCore.scons: Added.
70407
70408 2008-11-13  Darin Fisher  <darin@chromium.org>
70409
70410         Reviewed by Darin Adler.
70411
70412         https://bugs.webkit.org/show_bug.cgi?id=22248
70413         AtomicString.cpp uses JSC types outside of #if USE(JSC)
70414
70415         * platform/text/AtomicString.cpp:
70416         (WebCore::AtomicString::add):
70417
70418 2008-11-13  Justin Garcia  <justin.garcia@apple.com>
70419
70420         Reviewed by Darin Adler.
70421
70422         https://bugs.webkit.org/show_bug.cgi?id=18620
70423         Long hang under TextIterator::advance() when loading http://www.lsvd.de/
70424
70425         A huge section at the beginning of this document is invisible.  As we iterate through it,
70426         we create VisiblePositions unnecessarily.
70427
70428         * editing/TextIterator.cpp:
70429         (WebCore::TextIterator::shouldRepresentNodeOffsetZero): Don't proceed to VisiblePosition
70430         creation if m_node is unrendered or invisible.  The answers wouldn't have much meaning
70431         and would be wasteful.  Also fixed some comments to reflect the fact that this function
70432         isn't specifically about emitting a newline.
70433
70434 2008-11-13  Pierre-Olivier Latour  <pol@apple.com>
70435
70436         Reviewed by Sam Weinig.
70437
70438         Remove unused or unnecessary code from AnimationBase class.
70439
70440         * page/animation/AnimationBase.cpp:
70441         (WebCore::AnimationBase::AnimationBase):
70442         (WebCore::AnimationBase::playStatePlaying):
70443         * page/animation/AnimationBase.h:
70444
70445 2008-11-12  Tor Arne Vestbø  <tavestbo@trolltech.com>
70446
70447         Reviewed by Simon Hausmann.
70448
70449         Inital implementation of PluginPackage and PluginView for Mac NPAPI support in WebCore
70450
70451         Currently only used by QtWebKit. See also:
70452
70453         https://bugs.webkit.org/show_bug.cgi?id=21427
70454
70455         * WebCore.pro:
70456         * platform/qt/TemporaryLinkStubs.cpp:
70457         (PluginView::userAgentStatic):
70458         (PluginView::getValueStatic):
70459         * plugins/PluginView.cpp:
70460         (WebCore::PluginView::handleEvent):
70461         (WebCore::PluginView::setValue):
70462         (WebCore::PluginView::PluginView):
70463         * plugins/PluginView.h:
70464         (WebCore::PluginView::setPlatformPluginWidget):
70465         * plugins/mac/PluginPackageMac.cpp: Added.
70466         (WebCore::PluginPackage::determineQuirks):
70467         (WebCore::readPListFile):
70468         (WebCore::stringListFromResourceId):
70469         (WebCore::PluginPackage::fetchInfo):
70470         (WebCore::PluginPackage::load):
70471         (WebCore::PluginPackage::hash):
70472         (WebCore::PluginPackage::equal):
70473         (WebCore::PluginPackage::compareFileVersion):
70474         * plugins/mac/PluginViewMac.cpp: Added.
70475         (WebCore::nativeWindowFor):
70476         (WebCore::cgHandleFor):
70477         (WebCore::topLevelOffsetFor):
70478         (WebCore::PluginView::init):
70479         (WebCore::PluginView::~PluginView):
70480         (WebCore::PluginView::stop):
70481         (WebCore::PluginView::getValueStatic):
70482         (WebCore::PluginView::getValue):
70483         (WebCore::PluginView::setParent):
70484         (WebCore::PluginView::show):
70485         (WebCore::PluginView::hide):
70486         (WebCore::PluginView::setFocus):
70487         (WebCore::PluginView::setParentVisible):
70488         (WebCore::PluginView::setNPWindowRect):
70489         (WebCore::PluginView::setNPWindowIfNeeded):
70490         (WebCore::PluginView::updatePluginWidget):
70491         (WebCore::PluginView::paint):
70492         (WebCore::PluginView::invalidateRect):
70493         (WebCore::PluginView::invalidateRegion):
70494         (WebCore::PluginView::forceRedraw):
70495         (WebCore::PluginView::handleMouseEvent):
70496         (WebCore::PluginView::handleKeyboardEvent):
70497         (WebCore::PluginView::nullEventTimerFired):
70498         (WebCore::modifiersForEvent):
70499         (WebCore::PluginView::globalMousePosForPlugin):
70500         (WebCore::PluginView::dispatchNPEvent):
70501         (WebCore::PluginView::userAgent):
70502         (WebCore::PluginView::userAgentStatic):
70503         (WebCore::PluginView::handlePostReadFile):
70504
70505 2008-11-12  Alexey Proskuryakov  <ap@webkit.org>
70506
70507         Reviewed by Darin Adler.
70508
70509         https://bugs.webkit.org/show_bug.cgi?id=22200
70510         Crash when close event is dispatched to MessagePort due to document destruction
70511
70512         Test: fast/events/message-port-onclose.html
70513
70514         * dom/MessagePort.cpp: (WebCore::MessagePort::contextDestroyed):
70515         Don't dispatch close event, even though HTML5 currently says that we should. It is not
70516         right for GC to have observable effects.
70517
70518 2008-11-12  Alexey Proskuryakov  <ap@webkit.org>
70519
70520         Reviewed by Darin Adler.
70521
70522         https://bugs.webkit.org/show_bug.cgi?id=22203
70523         Implement Worker messaging
70524
70525         No test cases included, because this functionality is disabled by default.
70526
70527         The implementation is known to still have many race condition, but works quite well for
70528         testing.
70529
70530         * WebCore.xcodeproj/project.pbxproj: Added WorkerTask.{h,cpp}.
70531
70532         * bindings/js/JSDOMBinding.cpp:
70533         (WebCore::markActiveObjectsForContext): Re-worded comments a little.
70534         (WebCore::markCrossHeapDependentObjectsForContext): Existing cross-heap GC protocol was
70535         incorrect, changed it to a much simpler (but still incorrect) version.
70536
70537         * dom/WorkerTask.cpp: Added.
70538         (WebCore::WorkerTask::~WorkerTask):
70539         * dom/WorkerTask.h: Added.
70540         Tasks posted to workers implement this new interface.
70541
70542         * bindings/js/JSDedicatedWorkerCustom.cpp:
70543         (WebCore::JSDedicatedWorker::mark):
70544         (WebCore::JSDedicatedWorker::connect):
70545         * dom/DedicatedWorker.h:
70546         * dom/DedicatedWorker.idl:
70547         Auto-generate event listener attributes. Renamed startConversation() to connect(), tracking
70548         WHATWG discussions.
70549
70550         * dom/DedicatedWorker.cpp:
70551         (WebCore::WorkerConnectTask::WorkerConnectTask): A task that performs worker-side connect()
70552         operations.
70553         (WebCore::DedicatedWorker::DedicatedWorker): Initialize WorkerThread pointer.
70554         (WebCore::DedicatedWorker::connect): Connect() creates a pair of entangled ports, and posts
70555         one to worker. Since message port registration in ScriptExecutionContext is not thread safe,
70556         this port starts with a null context pointer.
70557         (WebCore::DedicatedWorker::notifyFinished): Since Worker methods should work immediately
70558         after creation, we have to queue tasks until after a WorkerThread object is created. Then we
70559         forward all queued tasks to its queue.
70560
70561         * dom/EventTarget.cpp: (WebCore::EventTarget::toWorkerContext):
70562         * dom/EventTarget.h:
70563         * bindings/js/JSEventTarget.cpp: (WebCore::toJS):
70564         Added cases for WorkerContext, which is now an EventTarget, too.
70565
70566         * bindings/js/JSWorkerContext.h: Added JSWorkerContext::put() to make onconnect settable.
70567         * bindings/js/JSWorkerContext.cpp:
70568         (WebCore::JSWorkerContext::mark): Mark event listeners.
70569         (WebCore::JSWorkerContext::createPrototype): Fixed a typo, use the right StructureID.
70570         (WebCore::JSWorkerContext::put): Implemented.
70571         (WebCore::jsWorkerContextPrototypeFunctionAddEventListener): Added an EventTarget implementation.
70572         (WebCore::jsWorkerContextPrototypeFunctionRemoveEventListener): Ditto.
70573         (WebCore::jsWorkerContextPrototypeFunctionDispatchEvent): Ditto.
70574         (WebCore::jsWorkerContextOnconnect): Added.
70575         (WebCore::setJSWorkerContextOnconnect): Added.
70576
70577         * bindings/js/WorkerScriptController.cpp: (WebCore::WorkerScriptController::evaluate):
70578         Made it actually work by adding necessary setup.
70579
70580         * bindings/js/WorkerScriptController.h: (WebCore::WorkerScriptController::initScriptIfNeeded):
70581         Check the right variable - it is the wrapper that may not be initialized yet.
70582
70583         * dom/ActiveDOMObject.cpp:
70584         (WebCore::ActiveDOMObject::ActiveDOMObject):
70585         (WebCore::ActiveDOMObject::~ActiveDOMObject):
70586         Assert being called from the correct thread, as active DOM object tracking is not thread safe.
70587
70588         * dom/ScriptExecutionContext.h: Added a Task interface and a postTask() method, to be used
70589         for asynchronously executing tasks in context's thread.
70590
70591         * dom/ScriptExecutionContext.cpp:
70592         (WebCore::ProcessMessagesSoonTask): Changed from a Timer to a Task
70593         (WebCore::ScriptExecutionContext::ScriptExecutionContext): Removed m_firedMessagePortTimer.
70594         It was an optimization that couldn't be easily preserved without introducing race conditions
70595         in multithreading case.
70596         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon): Use postTask().
70597         (WebCore::ScriptExecutionContext::dispatchMessagePortEvents): Added a comment explaining
70598         why it's OK to not ref() ports in a frozen copy.
70599         (WebCore::ScriptExecutionContext::createdMessagePort): Assert that we're not being called
70600         from a wrong thread.
70601         (WebCore::ScriptExecutionContext::destroyedMessagePort): Ditto.
70602         (WebCore::ScriptExecutionContextTaskTimer): Part of
70603         ScriptExecutionContext::Task implementation - use Timer if posting from main thread to main
70604         thread.
70605         (WebCore::ScriptExecutionContextTaskWorkerTask): Another part - use WorkerTask if posting
70606         to a worker.
70607         (WebCore::PerformTaskContext::PerformTaskContext): Finally, use callOnMainThread() if posting
70608         to main thread from a secondary one.
70609         (WebCore::performTask): A helper function for callOnMainThread().
70610         (WebCore::ScriptExecutionContext::postTask): Use one of the above implementations.
70611
70612         * dom/MessagePort.h: Fixed message queue to keep EventData pointers - otherwise, we would
70613         ref/deref EventData::message from different threads, which is not allowed.
70614
70615         * dom/MessagePort.cpp:
70616         (WebCore::MessagePortCloseEventTask): Use a task instead of a timer to work across threads.
70617         (WebCore::MessagePort::EventData::create): Updated for EventData being refcountable now.
70618         (WebCore::MessagePort::EventData::EventData): Ditto.
70619         (WebCore::MessagePort::MessagePort): ScriptExecutionContext is now allowed to be null at
70620         first, because we need to create ports for posting to other threads, and it is not possible
70621         to register in a context from another thread.
70622         (WebCore::MessagePort::clone): Always create ports with null contexts - it is now message
70623         receiver's job to set the context.
70624         (WebCore::MessagePort::postMessage): Enable posting to ports that are not attached to any
70625         context yet.
70626         (WebCore::MessagePort::startConversation): Ditto. Data port is always posted unattached.
70627         (WebCore::MessagePort::contextDestroyed): Assert that we had a context.
70628         (WebCore::MessagePort::attachToContext): Called when receiving a data port to register in
70629         context.
70630         (WebCore::MessagePort::scriptExecutionContext): Moved from header, as the function is virtual.
70631         (WebCore::MessagePort::dispatchMessages): Attach data port to receiving context. Use postTask().
70632         (WebCore::MessagePort::queueCloseEvent): Use postTask().
70633         (WebCore::MessagePort::hasPendingActivity): Reworded comment a little. As mentioned above,
70634         MessagePort cross-heap GC is still quite wrong.
70635
70636         * dom/WorkerContext.h: Made WorkerContext an event target, added onconnect attribute.
70637         * dom/WorkerContext.cpp: Keep a pointer to WorkerThread. It is only used for debug assertions
70638         now, but there is no harm in tracking it in release builds, too.
70639
70640         * dom/WorkerThread.cpp:
70641         (WebCore::WorkerThread::create): WorkerThread is refcountable, construct with create().
70642         (WebCore::WorkerThread::workerThread): Implemented a message loop.
70643         * dom/WorkerThread.h:
70644         (WebCore::WorkerThread::threadID): Also only used for assertions.
70645         (WebCore::WorkerThread::messageQueue): Return a reference to queue, so clients can post to it.
70646
70647         * page/DOMWindow.cpp:
70648         (WebCore::DOMWindow::postMessage): MessagePort::clone() no longer takes a context, as it
70649         always sets it to null.
70650         (WebCore::DOMWindow::postMessageTimerFired): Attach data port to receiving context.
70651
70652 2008-11-12  Dirk Schulze  <vbs85@gmx.de>
70653
70654         Reviewed Darin Adler.
70655
70656         use strokeColor.alpha() instead of fillColor.alpha()
70657         on GraphicsContext::strokePath()
70658
70659         [Canvas] Transparent fillStyle stops line rendering
70660         https://bugs.webkit.org/show_bug.cgi?id=21888
70661
70662         Test: fast/canvas/canvas-stroke-empty-fill.html
70663
70664         * ChangeLog:
70665         * platform/graphics/cg/GraphicsContextCG.cpp:
70666         (WebCore::GraphicsContext::strokePath):
70667
70668 2008-11-12  Stephanie  <slewis@apple.com>
70669
70670         Reviewed by Mark Rowe.
70671
70672         Fix context leak in XSLStyleSheets.
70673         See bug https://bugs.webkit.org/show_bug.cgi?id=15715
70674
70675         * xml/XSLStyleSheet.cpp:
70676         (WebCore::XSLStyleSheet::parseString):
70677
70678 2008-11-12  Alp Toker  <alp@nuanti.com>
70679
70680         autotools: List web worker-related headers needed for a successful
70681         build. distcheck is passing again with this change.
70682
70683         * GNUmakefile.am:
70684
70685 2008-11-12  Alp Toker  <alp@nuanti.com>
70686
70687         autotools build system fix-up only. Add FloatQuad.h to the source
70688         lists and sort them.
70689
70690         * GNUmakefile.am:
70691
70692 2008-11-12  Alp Toker  <alp@nuanti.com>
70693
70694         Build fixes for r38346. FloatQuad.cpp is missing:
70695
70696         1) #include "config.h"
70697         2) #include <algorithm> for various mathematical definitions it uses.
70698
70699         * platform/graphics/FloatQuad.cpp:
70700
70701 2008-11-12  Simon Fraser  <simon.fraser@apple.com>
70702
70703         Reviewed by Dan Bernstein
70704
70705         https://bugs.webkit.org/show_bug.cgi?id=22212
70706
70707         Rename absoluteOutlineBox() to absoluteOutlineBounds(), to indicate that
70708         it may be the bounding outline box of a transformed element, and fix it
70709         to respect transforms by mapping the outline box to an absolute quad and
70710         taking the enclosing rect.
70711
70712         RenderBox::localToAbsoluteQuad() can no longer assert that there is no
70713         LayoutState, but LayoutState cannot be used during quad mapping (it knows
70714         nothing about transforms).
70715
70716         Finally, fix a bug in RenderBox::localToAbsoluteQuad() which was getting
70717         borderTopExtra() from the object, rather than its container (as localToAbsolute()
70718         does).
70719
70720         Test: fast/repaint/transform-absolute-child.html
70721
70722         * rendering/RenderBlock.cpp:
70723         (WebCore::RenderBlock::layoutBlock):
70724         * rendering/RenderBox.cpp:
70725         (WebCore::RenderBox::localToAbsoluteQuad):
70726         * rendering/RenderFlexibleBox.cpp:
70727         (WebCore::RenderFlexibleBox::layoutBlock):
70728         * rendering/RenderForeignObject.cpp:
70729         (WebCore::RenderForeignObject::layout):
70730         * rendering/RenderLayer.cpp:
70731         (WebCore::RenderLayer::updateLayerPositions):
70732         (WebCore::RenderLayer::setHasVisibleContent):
70733         * rendering/RenderObject.cpp:
70734         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
70735         (WebCore::RenderObject::absoluteOutlineBounds):
70736         * rendering/RenderObject.h:
70737         * rendering/RenderPath.cpp:
70738         (WebCore::RenderPath::layout):
70739         * rendering/RenderReplaced.cpp:
70740         (WebCore::RenderReplaced::layout):
70741         * rendering/RenderSVGContainer.cpp:
70742         (WebCore::RenderSVGContainer::layout):
70743         * rendering/RenderSVGImage.cpp:
70744         (WebCore::RenderSVGImage::layout):
70745         * rendering/RenderSVGRoot.cpp:
70746         (WebCore::RenderSVGRoot::layout):
70747         * rendering/RenderSVGText.cpp:
70748         (WebCore::RenderSVGText::layout):
70749         * rendering/RenderSVGViewportContainer.cpp:
70750         (WebCore::RenderSVGViewportContainer::layout):
70751         * rendering/RenderTable.cpp:
70752         (WebCore::RenderTable::layout):
70753
70754 2008-11-12  Simon Fraser  <simon.fraser@apple.com>
70755
70756         Reviewed by Dave Hyatt
70757
70758         https://bugs.webkit.org/show_bug.cgi?id=21942
70759         https://bugs.webkit.org/show_bug.cgi?id=18557
70760
70761         Add methods which can be used to map renderer-local rectangles
70762         to quads in absolute coordinates, taking transforms into account:
70763             localToAbsoluteQuad() converts a local rect into an absolute quad.
70764             collectAbsoluteLineBoxQuads() is an analogue of addLineBoxRects()
70765                 that works with quads.
70766             absoluteQuads() is an analogue of absoluteRects(), for quads.
70767
70768         Use the quad methods to fix the inspector highlight for transformed
70769         elements.
70770
70771         * GNUmakefile.am:
70772         * WebCore.pro:
70773         * WebCore.vcproj/WebCore.vcproj:
70774         * WebCore.xcodeproj/project.pbxproj:
70775         * WebCoreSources.bkl:
70776         * inspector/InspectorController.cpp:
70777         (WebCore::drawOutlinedQuad):
70778         (WebCore::drawHighlightForBoxes):
70779         (WebCore::frameToMainFrameOffset):
70780         (WebCore::InspectorController::drawNodeHighlight):
70781         * platform/graphics/AffineTransform.cpp:
70782         (WebCore::AffineTransform::mapQuad):
70783         * platform/graphics/AffineTransform.h:
70784         * platform/graphics/FloatQuad.cpp: Added.
70785         (WebCore::min4):
70786         (WebCore::max4):
70787         (WebCore::FloatQuad::boundingBox):
70788         * platform/graphics/FloatQuad.h: Added.
70789         (WebCore::FloatQuad::FloatQuad):
70790         (WebCore::FloatQuad::p1):
70791         (WebCore::FloatQuad::p2):
70792         (WebCore::FloatQuad::p3):
70793         (WebCore::FloatQuad::p4):
70794         (WebCore::FloatQuad::setP1):
70795         (WebCore::FloatQuad::setP2):
70796         (WebCore::FloatQuad::setP3):
70797         (WebCore::FloatQuad::setP4):
70798         (WebCore::FloatQuad::isEmpty):
70799         (WebCore::FloatQuad::enclosingBoundingBox):
70800         (WebCore::FloatQuad::move):
70801         (WebCore::operator+=):
70802         (WebCore::operator-=):
70803         (WebCore::operator==):
70804         (WebCore::operator!=):
70805         * rendering/RenderBox.cpp:
70806         (WebCore::RenderBox::localToAbsoluteQuad):
70807         * rendering/RenderBox.h:
70808         * rendering/RenderContainer.cpp:
70809         (WebCore::RenderContainer::collectAbsoluteLineBoxQuads):
70810         * rendering/RenderContainer.h:
70811         * rendering/RenderInline.cpp:
70812         (WebCore::RenderInline::absoluteQuads):
70813         * rendering/RenderInline.h:
70814         * rendering/RenderObject.cpp:
70815         (WebCore::RenderObject::absoluteBoundingBoxRect):
70816         (WebCore::RenderObject::collectAbsoluteLineBoxQuads):
70817         (WebCore::RenderObject::absoluteQuads):
70818         (WebCore::RenderObject::localToAbsoluteQuad):
70819         (WebCore::RenderObject::absoluteContentQuad):
70820         * rendering/RenderObject.h:
70821         * rendering/RenderPath.cpp:
70822         (WebCore::RenderPath::absoluteQuads):
70823         * rendering/RenderPath.h:
70824         * rendering/RenderSVGContainer.cpp:
70825         (WebCore::RenderSVGContainer::absoluteQuads):
70826         * rendering/RenderSVGContainer.h:
70827         * rendering/RenderSVGHiddenContainer.cpp:
70828         (WebCore::RenderSVGHiddenContainer::absoluteQuads):
70829         * rendering/RenderSVGHiddenContainer.h:
70830         * rendering/RenderSVGImage.cpp:
70831         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
70832         (WebCore::RenderSVGImage::absoluteQuads):
70833         * rendering/RenderSVGImage.h:
70834         * rendering/RenderSVGInlineText.cpp:
70835         (WebCore::RenderSVGInlineText::absoluteQuads):
70836         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
70837         * rendering/RenderSVGInlineText.h:
70838         * rendering/RenderSVGRoot.cpp:
70839         (WebCore::RenderSVGRoot::absoluteQuads):
70840         * rendering/RenderSVGRoot.h:
70841         * rendering/RenderSVGTSpan.cpp:
70842         (WebCore::RenderSVGTSpan::absoluteRects):
70843         (WebCore::RenderSVGTSpan::absoluteQuads):
70844         * rendering/RenderSVGTSpan.h:
70845         * rendering/RenderSVGText.cpp:
70846         (WebCore::RenderSVGText::absoluteRects):
70847         (WebCore::RenderSVGText::absoluteQuads):
70848         * rendering/RenderSVGText.h:
70849         * rendering/RenderSVGTextPath.cpp:
70850         (WebCore::RenderSVGTextPath::absoluteRects):
70851         (WebCore::RenderSVGTextPath::absoluteQuads):
70852         * rendering/RenderSVGTextPath.h:
70853         * rendering/RenderTableCell.cpp:
70854         (WebCore::RenderTableCell::localToAbsolute):
70855         (WebCore::RenderTableCell::localToAbsoluteQuad):
70856         * rendering/RenderTableCell.h:
70857         * rendering/RenderText.cpp:
70858         (WebCore::RenderText::absoluteQuads):
70859         (WebCore::RenderText::collectAbsoluteLineBoxQuads):
70860         * rendering/RenderText.h:
70861         * rendering/RenderView.cpp:
70862         (WebCore::RenderView::localToAbsoluteQuad):
70863         (WebCore::RenderView::absoluteQuads):
70864         * rendering/RenderView.h:
70865
70866 2008-11-12  Brent Fulgham <bfulgham@gmail.com>
70867
70868         Fix Bug 22178: Build errors in WebKit Cairo port
70869
70870         <https://bugs.webkit.org/show_bug.cgi?id=22178>
70871
70872         Reviewed by Mark Rowe.
70873
70874         * platform/graphics/cairo/PatternCairo.cpp: Correct build error under
70875         Visual Studio.
70876         (WebCore::Pattern::createPlatformPattern):
70877
70878 2008-11-12  Adam Roben  <aroben@apple.com>
70879
70880         Fix a typo in the include path for the Release_Cairo configuration
70881
70882         * WebCore.vcproj/WebCore.vcproj: Fixed "caro" -> "cairo" typo.
70883
70884 2008-11-12  Simon Fraser  <simon.fraser@apple.com>
70885
70886         Reviewed by Dave Hyatt
70887
70888         https://bugs.webkit.org/show_bug.cgi?id=17840
70889         Patch 2
70890
70891         Code cleanup in RenderBox::computeAbsoluteRepaintRect().
70892
70893         * rendering/RenderBox.cpp:
70894         (WebCore::RenderBox::computeAbsoluteRepaintRect):
70895
70896 2008-11-12  Simon Fraser  <simon.fraser@apple.com>
70897
70898         Reviewed by Dave Hyatt
70899
70900         https://bugs.webkit.org/show_bug.cgi?id=17840
70901
70902         Fix repainting when the transform on a positioned element changes.
70903         In computeAbsoluteRepaintRect(), add the offsets due to relative positioning,
70904         and being in a positioned container after applying the transform to the local
70905         rect.
70906
70907         Tests: fast/repaint/transform-absolute-in-positioned-container.html
70908                fast/repaint/transform-relative-position.html
70909
70910         * rendering/RenderBox.cpp:
70911         (WebCore::RenderBox::computeAbsoluteRepaintRect):
70912
70913 2008-11-12  Justin Garcia  <justin.garcia@apple.com>
70914
70915         Reviewed by Beth Dakin.
70916
70917         <rdar://problem/5495723> Selecting and deleting quoted text quotes other text
70918         <rdar://problem/4775313> Deleting lines from the bottom of a messages leaves the last blank line quoted
70919
70920         We don't want to merge into a block if it will mean changing the quote level of content after deleting
70921         selections that contain a whole number paragraphs plus a line break, since it is unclear to most users
70922         that such a selection actually ends at the start of the next paragraph.  Instead we want to completely
70923         remove the selected paragraph(s) and all evidence of the first one's quote level.  This matches TextEdit behavior
70924         for indented paragraphs.
70925
70926         * editing/DeleteSelectionCommand.cpp:
70927         (WebCore::DeleteSelectionCommand::initializePositionData): For the selections described above, do not
70928         try to merge after the deletion.  Instead try and prune the start block or blocks if they've been emptied
70929         so that we remove evidence of the deleted paragraphs' quote level.
70930         (WebCore::DeleteSelectionCommand::mergeParagraphs): Try and prune the start block(s) if necessary.  Also
70931         make sure that the caret is placed correctly so that it ends up on the same line that the deleted selection
70932         started on, instead of one higher.
70933         * editing/DeleteSelectionCommand.h:
70934         * editing/htmlediting.cpp:
70935         (WebCore::numEnclosingMailBlockquotes): Added.
70936         * editing/htmlediting.h:
70937
70938 2008-11-10  Tor Arne Vestbø  <tavestbo@trolltech.com>
70939
70940         Reviewed by Simon Hausmann.
70941
70942         Move _web_encodingForResource from WebKit into WebCore and change return type
70943
70944         This change is needed to implement NSAPI in WebCore for Mac, see:
70945
70946         https://bugs.webkit.org/show_bug.cgi?id=21427
70947
70948         * WebCore.base.exp:
70949         * platform/mac/WebCoreNSStringExtras.h:
70950         * platform/mac/WebCoreNSStringExtras.mm:
70951         (stringEncodingForResource):
70952
70953 2008-11-10  Tor Arne Vestbø  <tavestbo@trolltech.com>
70954
70955         Reviewed by Simon Hausmann.
70956
70957         Moved the implementation of _webkit_isCaseInsensitiveEqualToString to
70958         WebCore's WebCoreNSStringExtras as _stringIsCaseInsensitiveEqualToString.
70959
70960         This change is needed to implement NSAPI in WebCore for Mac, see:
70961
70962         https://bugs.webkit.org/show_bug.cgi?id=21427
70963
70964         * WebCore.base.exp:
70965         * platform/mac/WebCoreNSStringExtras.h:
70966         * platform/mac/WebCoreNSStringExtras.mm:
70967         (stringIsCaseInsensitiveEqualToString):
70968
70969 2008-11-11  Stephanie  <slewis@apple.com>
70970
70971         Reviewed by Dan Bernstein.
70972
70973         Null check image data before setting it as image source.
70974
70975         Test: fast/images/image-empty-data.html
70976
70977         * platform/graphics/BitmapImage.cpp:
70978         (WebCore::BitmapImage::destroyDecodedData):
70979
70980 2008-11-11  Adele Peterson  <adele@apple.com>
70981
70982         Reviewed by Tim Hatcher.
70983
70984         Remove ifdef so future OS versions can use the new delegate method.
70985
70986         * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::didSendBodyDataDelegateExists):
70987
70988 2008-11-11  Eric Seidel  <eric@webkit.org>
70989
70990         Reviewed by Antti Koivisto and Sam Weinig.
70991
70992         Clean up HTMLTokenizer a litle
70993         https://bugs.webkit.org/show_bug.cgi?id=22188
70994
70995         Rename pendingScripts to m_pendingScripts
70996         Rename scriptNode to m_scriptNode make the type specific
70997         Rename pendingSrc to m_pendingSrc
70998         Rename currentPrependingSrc to m_currentPrependingSrc
70999         Rename noMoreData to m_noMoreData and cBuffer to m_cBuffer
71000         Remove long-since-dead kdDebug and qDebug calls
71001         Rename brokenComments to m_brokenComments
71002         Remove HTMLTokenizer includes and document the rest
71003         Rename src to m_src
71004         Rename parser to m_parser and make it an OwnPtr
71005         Rename inWrite to m_inWrite and jsProxy to scriptController
71006         Rename brokenServer to m_brokenServer
71007         Rename buffer to m_buffer and dest to m_dest
71008         Rename size to m_bufferSize
71009         Rename attrName to m_attrName
71010         Rename searchStopper to m_searchStopper and searchStopperLen to m_searchStopperLen
71011         Rename scriptCode* to m_scriptCode* and change scriptCodeMax to m_scriptCodeCapacity
71012         Rename scriptStartLineno to m_currentScriptTagStartLineNumber and tagStartLineno to m_currentTagStartLineNumber
71013         Rename scriptSrc to m_scriptTagSrcAttrValue and scriptSrcCharset to m_scriptTagCharsetAttrValue -- a bit unwieldy, but more precise
71014         Rename flat to selfClosingTag
71015         Rename currToken to m_currentToken
71016
71017         * css/CSSParser.cpp:
71018         * dom/XMLTokenizer.cpp:
71019         * dom/XMLTokenizerLibxml2.cpp:
71020         * html/HTMLDocument.cpp:
71021         * html/HTMLElement.cpp:
71022         * html/HTMLFormControlElement.cpp:
71023         * html/HTMLParser.h:
71024         * html/HTMLTokenizer.cpp:
71025         (WebCore::Token::addAttribute):
71026         (WebCore::HTMLTokenizer::HTMLTokenizer):
71027         (WebCore::HTMLTokenizer::reset):
71028         (WebCore::HTMLTokenizer::begin):
71029         (WebCore::HTMLTokenizer::processListing):
71030         (WebCore::HTMLTokenizer::parseSpecial):
71031         (WebCore::HTMLTokenizer::scriptHandler):
71032         (WebCore::HTMLTokenizer::scriptExecution):
71033         (WebCore::HTMLTokenizer::parseComment):
71034         (WebCore::HTMLTokenizer::parseServer):
71035         (WebCore::HTMLTokenizer::parseProcessingInstruction):
71036         (WebCore::HTMLTokenizer::parseText):
71037         (WebCore::HTMLTokenizer::parseEntity):
71038         (WebCore::HTMLTokenizer::parseTag):
71039         (WebCore::HTMLTokenizer::write):
71040         (WebCore::HTMLTokenizer::processingData):
71041         (WebCore::HTMLTokenizer::end):
71042         (WebCore::HTMLTokenizer::finish):
71043         (WebCore::HTMLTokenizer::processToken):
71044         (WebCore::HTMLTokenizer::processDoctypeToken):
71045         (WebCore::HTMLTokenizer::~HTMLTokenizer):
71046         (WebCore::HTMLTokenizer::enlargeBuffer):
71047         (WebCore::HTMLTokenizer::enlargeScriptBuffer):
71048         (WebCore::HTMLTokenizer::notifyFinished):
71049         (WebCore::HTMLTokenizer::setSrc):
71050         * html/HTMLTokenizer.h:
71051         (WebCore::Token::Token):
71052         (WebCore::Token::reset):
71053         (WebCore::HTMLTokenizer::processingContentWrittenByScript):
71054         (WebCore::HTMLTokenizer::htmlParser):
71055         (WebCore::HTMLTokenizer::checkBuffer):
71056         (WebCore::HTMLTokenizer::checkScriptBuffer):
71057         * html/HTMLViewSourceDocument.h:
71058         * rendering/RenderBlock.cpp:
71059         (WebCore::RenderBlock::leftRelOffset):
71060         (WebCore::RenderBlock::rightRelOffset):
71061         (WebCore::RenderBlock::lineWidth):
71062         * xml/XSLTProcessor.cpp:
71063
71064 2008-11-11  Sam Weinig  <sam@webkit.org>
71065
71066         Reviewed by Dan Bernstein.
71067
71068         Fix for https://bugs.webkit.org/show_bug.cgi?id=22189
71069         Track CachedScript decoded data
71070
71071         We now track the decoded size of CachedScripts in the Cache allowing
71072         them to accounted for when deciding when to evict data.  The decoded
71073         data itself can be evicted when Cache pressure gets high enough through
71074         CachedScript::destroyDecodedData.
71075
71076         * loader/CachedResource.h:
71077         (WebCore::CachedResource::allClientsRemoved):
71078         (WebCore::CachedResource::destroyDecodedData):
71079         * loader/CachedScript.cpp:
71080         (WebCore::CachedScript::script):
71081         (WebCore::CachedScript::data):
71082         (WebCore::CachedScript::destroyDecodedData):
71083         * loader/CachedScript.h:
71084
71085 2008-11-11  Cameron Zwarich  <zwarich@apple.com>
71086
71087         Reviewed by Geoff Garen.
71088
71089         Remove pointless dependencies on the now-deleted kjs directory and
71090         mentions of it in comments that are no longer relevant.
71091
71092         * WebCore.pro:
71093         * webcore-base.bkl:
71094
71095 2008-11-11  Dan Bernstein  <mitz@apple.com>
71096
71097         Reviewed by Adam Roben.
71098
71099         WebCore part of adding a master volume control for media elements in a WebView
71100
71101         * WebCore.base.exp: Exported WebCore::Page::setMediaVolume().
71102         * dom/Document.cpp:
71103         (WebCore::Document::mediaVolumeDidChange): Added. Called by the Page
71104         when the media volume is changed.
71105         (WebCore::Document::registerForMediaVolumeCallbacks): Added. Allows
71106         elements to register for a callback when the media volume is changed.
71107         (WebCore::Document::unregisterForMediaVolumeCallbacks): Added. Allows
71108         elements to unregister for the callback.
71109         * dom/Document.h:
71110         * dom/Element.h:
71111         (WebCore::Element::mediaVolumeDidChange): Added an empty implementation.
71112         * html/HTMLMediaElement.cpp:
71113         (WebCore::HTMLMediaElement::HTMLMediaElement): Added a call to
71114         registerForMediaVolumeCallbacks().
71115         (WebCore::HTMLMediaElement::~HTMLMediaElement): Added a call to
71116         unregisterForMediaVolumeCallbacks().
71117         (WebCore::HTMLMediaElement::updateVolume): Changed to multiply the
71118         element's intrinsic volume by the master volume from the page.
71119         (WebCore::HTMLMediaElement::mediaVolumeDidChange): Added. Calls
71120         updateVolume().
71121         * html/HTMLMediaElement.h:
71122         * page/Page.cpp:
71123         (WebCore::Page::Page): Initialize m_mediaVolume to 1.
71124         (WebCore::Page::setMediaVolume): Added. Calls mediaVolumeDidChange() on
71125         every document in the page when the master volume changes.
71126         * page/Page.h:
71127         (WebCore::Page::mediaVolume): Added this getter.
71128
71129 2008-11-11  David Hyatt  <hyatt@apple.com>
71130
71131         https://bugs.webkit.org/show_bug.cgi?id=22182
71132
71133         Fix problems with scrollbars when the OS setting for clicks in the track jumping the thumb to that location
71134         is turned on.  Make sure to only jump the thumb if the click happens in the track.  Also fix some math
71135         errors when jumping the thumb that cause dragging after the jump to incorrectly jump the thumb again.
71136
71137         Reviewed by Adele
71138
71139         * platform/Scrollbar.cpp:
71140         (WebCore::Scrollbar::mouseDown):
71141
71142 2008-11-11  Beth Dakin  <bdakin@apple.com>
71143
71144         Reviewed by Darin Adler.
71145
71146         Fix for <rdar://problem/5089327> Too much indentation when pasting
71147         quoted paragraphs
71148
71149         This patch re-addresses pasting blockquotes into blockquotes. It
71150         backs out most of revision 38273. 38273 fixed the bug by inserting
71151         the pasted content as a sibling blockquote node to the pre-existing
71152         blockquote node. The problem with that is that by default,
71153         blockquotes have a giant margin, so visually, this can be weird.
71154         This patch instead inserts the pasted content as siblings of the
71155         the content already inside the outer blockquote, and then removes
71156         the blockquote node from the pasted content itself, so that it
71157         doesn't nest itself into the outer blockquote.
71158         * editing/ReplaceSelectionCommand.cpp:
71159         (WebCore::ReplaceSelectionCommand::doApply):
71160
71161         Move contains() from Element to Node since there is nothing
71162         Element-specific about it.
71163         * dom/Element.cpp:
71164         * dom/Element.h:
71165         * dom/Node.cpp:
71166         (WebCore::Node::contains):
71167         * dom/Node.h:
71168
71169 2008-11-11  David Hyatt  <hyatt@apple.com>
71170
71171         https://bugs.webkit.org/show_bug.cgi?id=17997
71172
71173         Stop using the new Leopard API tiling call for scaled tiles when drawing background images.  The method
71174         is buggy.  Fall back to using the slower (and more correct) pattern tiling that Tiger still uses.  This
71175         is a Leopard-only workaround, since the API has been fixed on Snow Leopard.
71176
71177         Reviewed by John Sullivan
71178
71179         * platform/graphics/cg/ImageCG.cpp:
71180         (WebCore::Image::drawPattern):
71181
71182 2008-11-10  David Hyatt  <hyatt@apple.com>
71183
71184         Disable the Aqua look for menu lists when full page zoom is turned on.  Because the control is buggy
71185         when scaling and because it's impossible to paint into an offscreen bitmap without completely rewriting
71186         how we draw the control on Mac, our only real option for now is to just switch to our styled look when zoomed.
71187
71188         Reviewed by Adam Roben
71189
71190         * rendering/RenderThemeMac.mm:
71191         (WebCore::RenderThemeMac::isControlStyled):
71192
71193 2008-11-11  Darin Adler  <darin@apple.com>
71194
71195         Reviewed by Dan Bernstein.
71196
71197         - https://bugs.webkit.org/show_bug.cgi?id=22160
71198         speculative fix for <rdar://problem/5995450> Nil deref because nextLinePosition
71199         (previousLinePosition, too) uses a nil node
71200
71201         * editing/visible_units.cpp:
71202         (WebCore::nextLinePosition): Use RenderObject::node instead of RenderObject::element
71203         to check editingIgnoresContent. It makes sense to use the associated DOM node for
71204         this, even in cases of anonymous content, and it avoids the case where element() can
71205         be 0.
71206         (WebCore::previousLinePosition): Ditto.
71207
71208 2008-11-11  Dirk Schulze  <vbs85@gmx.de>
71209
71210         Reviewed by Darin Adler.
71211
71212         Removed default: in applySpreadMethod. This causes the problems
71213         in radial gradients. We don't need CAIRO_EXTEND_NONE in SVG, Canvas
71214         or CSS.
71215
71216         * platform/graphics/cairo/GraphicsContextCairo.cpp:
71217         (WebCore::applySpreadMethod):
71218
71219 2008-11-11  Ariya Hidayat  <ariya.hidayat@trolltech.com>
71220
71221         Reviewed by Tor Arne Vestbø.
71222
71223         Fix crash when rendering the file chooser.
71224         Also proper implementation for multi-selected files.
71225
71226         * platform/qt/FileChooserQt.cpp:
71227         (WebCore::FileChooser::basenameForWidth):
71228
71229 2008-11-11  Dirk Schulze  <vbs85@gmx.de>
71230
71231         Reviewed by Oliver Hunt.
71232
71233         PatternCairo needs to invert the pattern matrix because
71234         of transformation from user space to pattern space.
71235         Give a identity matrix to pattern for Qt and Cairo. Because the
71236         context is transformed already.
71237
71238         [CAIRO][QT] Canvas transformations applied twice to Patterns
71239         https://bugs.webkit.org/show_bug.cgi?id=21555
71240
71241         * platform/graphics/cairo/GraphicsContextCairo.cpp:
71242         (WebCore::GraphicsContext::fillPath):
71243         (WebCore::GraphicsContext::strokePath):
71244         * platform/graphics/cairo/PatternCairo.cpp:
71245         (WebCore::Pattern::createPlatformPattern):
71246         * platform/graphics/qt/GraphicsContextQt.cpp:
71247         (WebCore::GraphicsContext::strokePath):
71248         (WebCore::GraphicsContext::fillRect):
71249
71250 2008-11-10  Stephanie Lewis  <slewis@apple.com>
71251
71252         Reviewed by Dan Bernstein.
71253
71254         Clear the image source cache even if we haven't decoded any of the image data.
71255         We use the image source cache when calculating layout.
71256
71257         * loader/Cache.cpp:
71258         (WebCore::Cache::pruneDeadResources):
71259         * platform/graphics/BitmapImage.cpp:
71260         (WebCore::BitmapImage::destroyDecodedData):
71261
71262 2008-11-10  Adam Roben  <aroben@apple.com>
71263
71264         Fix Bug 22161: Assertion failure in RenderThemeWin::systemColor when
71265         loading microsoftpdc.com
71266
71267         <https://bugs.webkit.org/show_bug.cgi?id=22161>
71268
71269         Reviewed by Dan Bernstein.
71270
71271         Test: fast/css/outline-invert-assertion.html
71272
71273         * rendering/RenderThemeWin.cpp:
71274         (WebCore::RenderThemeWin::systemColor): If we can't determine a good
71275         Win32 system color to use, defer to RenderTheme instead of asserting.
71276         This matches what RenderThemeMac does.
71277
71278 2008-11-10  Justin Garcia  <justin.garcia@apple.com>
71279
71280         Reviewed by Beth Dakin.
71281
71282         <rdar://problem/4037481> REGRESSION (Mail): pasting quoted text
71283         into quoted text yields double-quoting
71284
71285         Don't nest inserted content in Mail blockquotes.  Perform a
71286         BreakBlockquoteCommand if we're in
71287         one and insert the incoming fragment between the split blockquotes.
71288
71289         * editing/ReplaceSelectionCommand.cpp:
71290         (WebCore::ReplaceSelectionCommand::shouldMerge): Renamed from ->
71291         source and to -> destination.
71292         (WebCore::ReplaceSelectionCommand::doApply):
71293
71294 2008-11-10  Adam Roben  <aroben@apple.com>
71295
71296         Fix Bug 22158: Would like to turn on WebCore logging channels via an
71297         environment variable
71298
71299         <https://bugs.webkit.org/show_bug.cgi?id=22158>
71300
71301         Logging channels can now be enabled by setting the WebCoreLogLevel
71302         environment variable to a hexadecimal number.
71303
71304         Reviewed by Anders Carlsson.
71305
71306         * WebCore.vcproj/WebCore.vcproj: Added LoggingWin.cpp.
71307         * platform/win/LoggingWin.cpp: Copied from WebCore/platform/mac/LoggingMac.mm.
71308         (WebCore::initializeWithUserDefault): Read in the WebCoreLogLevel
71309         environment variable, parse its value as a hexadecimal number, and
71310         turn the channel on/off based on whether the mask bit is set.
71311         (WebCore::InitializeLoggingChannelsIfNecessary): Initialize each
71312         logging channel in turn.
71313
71314 2008-11-10  Darin Adler  <darin@apple.com>
71315
71316         Reviewed by Adam Roben.
71317
71318         - fix https://bugs.webkit.org/show_bug.cgi?id=22103
71319           Changing fonts in preferences does not immediately update WebViews
71320
71321         This broke when the meaning of FrameView::invalidate changed.
71322         I changed setNeedsReapplyStyles to no longer depend on invalidate.
71323
71324         * dom/Document.cpp: (WebCore::Document::shouldScheduleLayout):
71325         Removed the part of this function that duplicated what's already in
71326         FrameView::needsLayout, since the copy here left out a few key things.
71327         For example, it didn't handle the fact that "needs reapply styles"
71328         counts as needing layout.
71329
71330         * page/Frame.cpp: (WebCore::Frame::setNeedsReapplyStyles): This called
71331         FrameView::invalidate before. There were two things wrong with that.
71332         1) It requested that the entire view repaint even if the style change
71333         didn't necessitate that. 2) FrameView::invalidate no longer causes any
71334         repainting at all in certain cases, because of Hyatt's changes to how
71335         widgets and the host window are involved in the repainting process.
71336         So call FrameView::scheduleRelayout instead, which is more precisely
71337         what we want and need here.
71338
71339         * page/FrameView.cpp:
71340         (WebCore::FrameView::scheduleRelayout): Add a call to needsLayout here
71341         so that Document::shouldScheduleLayout doesn't have to replicate the
71342         logic that's in needsLayout and can instead rely on the fact that it
71343         was already called.
71344         (WebCore::FrameView::needsLayout): Tweaked the comments and formatting
71345         in this function.
71346
71347 2008-11-10  Darin Adler  <darin@apple.com>
71348
71349         Reviewed by Adam Roben.
71350
71351         - speculative fix for <rdar://problem/5557243> crashes in Safari at
71352           WebCore::HTMLSelectElement::updateListBoxSelection + 280
71353
71354         * html/HTMLSelectElement.cpp:
71355         (WebCore::HTMLSelectElement::updateListBoxSelection):
71356         Check index against size of vector before indexing into the vector.
71357
71358 2008-11-10  Tom Cooksey  <thomas.cooksey@trolltech.com>
71359
71360         Reviewed by Tor Arne Vestbø.
71361
71362         Fix QtWebkit build failure on arm.
71363
71364         pen.widthF() is a qreal, which means it's a float on arm.
71365
71366         * platform/graphics/qt/GraphicsContextQt.cpp:
71367         (WebCore::GraphicsContext::setLineDash):
71368
71369 2008-11-10  Morten Sørvig  <msorvig@trolltech.com>
71370
71371         Reviewed by Simon Hausmann.
71372
71373         Improve mouse wheel scolling on Qt/Cocoa.
71374         Cocoa differs from Carbon (and other platforms I think) in that the
71375         mouse wheel events we get have a much higher acceleration factor.
71376
71377         This submit switches over to scroll-per-pixel from scroll-per-line
71378         for most of our scrolling views. This matches the native views
71379         and works well with the increased acceleration.
71380
71381         * platform/qt/WheelEventQt.cpp:
71382
71383 2008-11-09  Cameron Zwarich  <zwarich@apple.com>
71384
71385         Reviewed by Darin Adler.
71386
71387         Bug 19541: Null pointer in showModalDialog()
71388         <https://bugs.webkit.org/show_bug.cgi?id=19541>
71389
71390         Add null frame->page() checks to JSDOMWindowBase::canShowModalDialog()
71391         and JSDOMWindowBase::canShowModalDialogNow()C
71392
71393         * bindings/js/JSDOMWindowBase.cpp:
71394         (WebCore::canShowModalDialog):
71395         (WebCore::canShowModalDialogNow):
71396
71397 2008-11-09  Darin Adler  <darin@apple.com>
71398
71399         - try to fix Windows build
71400
71401         * platform/graphics/Color.cpp: For some reason MSVC doesn't follow the rules
71402         about needed a separate definition for static const integer data members.
71403         Until I get to the bottom of this, put the definitions inside an ifdef.
71404
71405 2008-11-09  David Kilzer  <ddkilzer@apple.com>
71406
71407         BUILD FIX: Qt build broke after r38235.
71408
71409         Added HAVE(ACCESSIBILITY) header guards to platform implementation
71410         source files.
71411
71412         * page/gtk/AccessibilityObjectAtk.cpp: Added HAVE(ACCESSIBILITY)
71413         guards.
71414         * page/gtk/AccessibilityObjectWrapperAtk.cpp: Ditto.
71415         * page/qt/AccessibilityObjectQt.cpp: Ditto.
71416         * page/win/AccessibilityObjectWin.cpp: Ditto.
71417         * page/wx/AccessibilityObjectWx.cpp: Ditto.
71418
71419 2008-11-09  Alexey Proskuryakov  <ap@webkit.org>
71420
71421         Reviewed by Darin Adler.
71422
71423         https://bugs.webkit.org/show_bug.cgi?id=22104
71424         Javascript URL percent encoding/decoding broken by some characters
71425
71426         Test: fast/loader/javascript-url-encoding-2.html
71427
71428         * platform/KURL.cpp: (WebCore::encodeRelativeString): Don't try to break down javascript URLs.
71429
71430 2008-11-09  Holger Hans Peter Freyther  <zecke@selfish.org>
71431
71432         Reviewed and tweaked by Darin Adler.
71433
71434         * platform/graphics/Color.cpp: Added definitions for the static data members
71435         in this class. Static data members need a definition, even when they are the
71436         simple integer constant kind that can be initialized in the header.
71437
71438 2008-11-08  Antti Koivisto  <antti@apple.com>
71439
71440         Reviewed by Sam Weinig.
71441
71442         Fix https://bugs.webkit.org/show_bug.cgi?id=22141
71443         REGRESSION: Safari error page is not fully styled when loaded from cache
71444
71445         Reset text decoder on flush so it does not pass through the BOM when it is reused.
71446
71447         Test: fast/encoding/css-cached-bom.html
71448
71449         * loader/TextResourceDecoder.cpp:
71450         (WebCore::TextResourceDecoder::flush):
71451
71452 2008-11-08  Kevin Ollivier  <kevino@theolliviers.com>
71453
71454         Reviewed by Mark Rowe.
71455
71456         Send URL errors to stderr rather than stdout. While debugging wx DumpRenderTree,
71457         it was causing these errors to end up in the page's text representation.
71458
71459         * platform/network/curl/ResourceHandleManager.cpp:
71460         (WebCore::ResourceHandleManager::downloadTimerCallback):
71461
71462 2008-11-08  Kevin Ollivier  <kevino@theolliviers.com>
71463
71464         wx build fixes after addition of JSCore parser and bycompiler dirs.
71465
71466         * webcore-base.bkl:
71467         * webcore-wx.bkl:
71468
71469 2008-11-08  Simon Fraser  <simon.fraser@apple.com>
71470
71471         Reviewed by Dan Bernstein
71472
71473         https://bugs.webkit.org/show_bug.cgi?id=21906
71474
71475         Override addFocusRingRects() in RenderTextControl to avoid
71476         the RenderFlow behavior of recursing on descendent renderers.
71477         RenderTextControl should only ever need a simple focus rect.
71478
71479         This fixes focus ring issues with transforms on text controls.
71480
71481         Test: fast/transforms/transformed-focused-text-input.html
71482
71483         * rendering/RenderTextControl.cpp:
71484         (WebCore::RenderTextControl::addFocusRingRects):
71485         * rendering/RenderTextControl.h:
71486
71487 2008-11-08  Dimitri Dupuis-Latour  <dupuislatour@apple.com>
71488
71489         Make sure the icon thumbnail width/height is at least 1px in
71490         the Web Inspector's resource panel.
71491
71492         <rdar://problem/5988888>
71493
71494         Reviewed by Tim Hatcher.
71495
71496         * inspector/front-end/inspector.css:
71497
71498 2008-11-08  David Kilzer  <ddkilzer@apple.com>
71499
71500         Bug 22137: PLATFORM(MAC) build broken with HAVE(ACCESSIBILITY) disabled
71501
71502         <https://bugs.webkit.org/show_bug.cgi?id=22137>
71503
71504         Reviewed by Darin Adler.
71505
71506         * page/AccessibilityObject.h:
71507         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
71508         Provide a default implementation when HAVE(ACCESSIBILITY) is false.
71509         * page/mac/AXObjectCacheMac.mm: Added HAVE(ACCESSIBILITY) guard.
71510         * page/mac/AccessibilityObjectMac.mm: Ditto.
71511         * page/mac/AccessibilityObjectWrapper.mm: Ditto.
71512
71513 2008-11-08  Dan Bernstein  <mitz@apple.com>
71514
71515         Reviewed by Darin Adler.
71516
71517         - WebCore part of adding WebPreferences for controlling databases and local storage
71518
71519         * WebCore.base.exp: Exported Settings::setDatabasesEnabled() and
71520         Settings::setLocalStorageEnabled().
71521         * page/DOMWindow.cpp:
71522         (WebCore::DOMWindow::localStorage): Changed to return 0 if local storage
71523         is disabled in settings.
71524         (WebCore::DOMWindow::openDatabase): Changed to return 0 if databases
71525         are disabled in settings.
71526         * page/Settings.cpp:
71527         (WebCore::Settings::Settings): Initialize m_databasesEnabled and
71528         m_localStorageEnabled.
71529         (WebCore::Settings::setDatabasesEnabled): Added.
71530         (WebCore::Settings::setLocalStorageEnabled): Added.
71531         * page/Settings.h:
71532         (WebCore::Settings::databasesEnabled): Added.
71533         (WebCore::Settings::localStorageEnabled): Added.
71534
71535 2008-11-07  Alp Toker  <alp@nuanti.com>
71536
71537         Fix build with bleeding edge GTK+ versions. GTK+ and other libraries
71538         now require that only their top-level header file is included.
71539
71540         Patch tested and still builds fine with older GTK+ versions (back to
71541         2.8).
71542
71543         Future WebKit GTK+ contributions are required to adhere to this
71544         policy.
71545
71546         * platform/gtk/FileSystemGtk.cpp:
71547         * platform/gtk/KeyEventGtk.cpp:
71548         * platform/gtk/MouseEventGtk.cpp:
71549         * platform/gtk/WheelEventGtk.cpp:
71550         * platform/gtk/gtkdrawing.h:
71551         * plugins/gtk/gtk2xtbin.c:
71552         * plugins/gtk/gtk2xtbin.h:
71553
71554 2008-11-07  Anders Carlsson  <andersca@apple.com>
71555
71556         Reviewed by Kevin Decker
71557
71558         Explicitly initialize the NPDrawingModelCoreAnimation.
71559
71560         * bridge/npapi.h:
71561
71562 2008-11-07  Alp Toker  <alp@nuanti.com>
71563
71564         autotools fix. Always use the configured perl binary (which may be
71565         different to the one in $PATH) when generating sources.
71566
71567         * GNUmakefile.am:
71568
71569 2008-11-07  Simon Fraser  <simon.fraser@apple.com>
71570
71571         Reviewed by Dan Bernstein
71572
71573         https://bugs.webkit.org/show_bug.cgi?id=22122
71574
71575         Use a stack-based object to simplify the pushLayoutState/popLayoutState
71576         code. LayoutStateMaintainer either pushes in the constructor, or allows
71577         an explicit push() later. Both cases require an explicit pop().
71578
71579         * rendering/RenderBlock.cpp:
71580         (WebCore::RenderBlock::layoutBlock):
71581         (WebCore::RenderBlock::layoutOnlyPositionedObjects):
71582         * rendering/RenderContainer.cpp:
71583         (WebCore::RenderContainer::layout):
71584         * rendering/RenderFlexibleBox.cpp:
71585         (WebCore::RenderFlexibleBox::layoutBlock):
71586         * rendering/RenderTable.cpp:
71587         (WebCore::RenderTable::layout):
71588         * rendering/RenderTableRow.cpp:
71589         (WebCore::RenderTableRow::layout):
71590         * rendering/RenderTableSection.cpp:
71591         (WebCore::RenderTableSection::setCellWidths):
71592         (WebCore::RenderTableSection::calcRowHeight):
71593         (WebCore::RenderTableSection::layoutRows):
71594         * rendering/RenderView.h:
71595         (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
71596         (WebCore::LayoutStateMaintainer::~LayoutStateMaintainer):
71597         (WebCore::LayoutStateMaintainer::pop):
71598         (WebCore::LayoutStateMaintainer::push):
71599         (WebCore::LayoutStateMaintainer::didPush):
71600
71601 2008-11-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
71602
71603         Fix the QtWebKit build on Mac
71604
71605         * platform/qt/TemporaryLinkStubs.cpp:
71606         (PluginView::invalidateRect):
71607
71608 2008-11-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
71609
71610         Rubber-stamped by Simon Hausmann.
71611
71612         Don't allow Phonon's invisible video widget to keep the app running
71613
71614         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
71615         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
71616
71617 2008-11-07  Henrik Hartz  <henrik.hartz@nokia.com>
71618
71619         Reviewed by Simon Hausmann.
71620
71621         Fix valgrind warning about uninitialized lastStop variable.
71622
71623         * platform/graphics/qt/GradientQt.cpp:
71624         (WebCore::Gradient::platformGradient):
71625
71626 2008-11-07  Alexey Proskuryakov  <ap@webkit.org>
71627
71628         Reviewed by Maciej Stachowiak.
71629
71630         Fix layout test brokenness following r38211.
71631
71632         * page/EventHandler.cpp: (WebCore::EventHandler::handleAccessKey):
71633         Restore old Shift key behavior. We ignore Shift key state when matching access keys (which
71634         matches neither IE nor Firefox), and this patch made WebKit behave like Firefox
71635         inadvertently. This may or may not be a good thing, but it's certainly not something that
71636         should change by accident.
71637
71638 2008-11-06  Antti Koivisto  <antti@apple.com>
71639
71640         Eh, this trivial last minute change was wrong.
71641
71642         * loader/CachedCSSStyleSheet.cpp:
71643         (WebCore::CachedCSSStyleSheet::sheetText):
71644
71645 2008-11-06  Antti Koivisto  <antti@apple.com>
71646
71647         Reviewed by Dan Bernstein.
71648
71649         https://bugs.webkit.org/show_bug.cgi?id=22093
71650
71651         Delaying the text decoding caused regression since the decoding
71652         also determines the encoding in case of @charset rule.
71653
71654         Decode immediately in data() and keep the decoded string around
71655         during the checkNotify().
71656
71657         * loader/CachedCSSStyleSheet.cpp:
71658         (WebCore::CachedCSSStyleSheet::sheetText):
71659         (WebCore::CachedCSSStyleSheet::data):
71660         * loader/CachedCSSStyleSheet.h:
71661
71662 2008-11-06  Alexey Proskuryakov  <ap@webkit.org>
71663
71664         Reviewed by Darin Adler.
71665
71666         https://bugs.webkit.org/show_bug.cgi?id=22097
71667         Expose MessageEvent constructor on WorkerContext
71668
71669         * bindings/js/JSWorkerContext.cpp:
71670         (WebCore::jsWorkerContextMessageEvent):
71671         (WebCore::setJSWorkerContextMessageEvent):
71672
71673 2008-11-06  Alexey Proskuryakov  <ap@webkit.org>
71674
71675         Reviewed by Darin Adler.
71676
71677         https://bugs.webkit.org/show_bug.cgi?id=21107
71678         <rdar://problem/6264219> New access key combination conflicts with VoiceOver
71679
71680         * page/EventHandler.h:
71681         * page/gtk/EventHandlerGtk.cpp:
71682         (WebCore::EventHandler::accessKeyModifiers):
71683         * page/qt/EventHandlerQt.cpp:
71684         (WebCore::EventHandler::accessKeyModifiers):
71685         * page/win/EventHandlerWin.cpp:
71686         (WebCore::EventHandler::accessKeyModifiers):
71687         * page/wx/EventHandlerWx.cpp:
71688         (WebCore::EventHandler::accessKeyModifiers):
71689         Access access key modifiers via a function, not a static variable.
71690
71691         * page/mac/EventHandlerMac.mm: (WebCore::EventHandler::accessKeyModifiers):
71692         Use Ctrl when VoiceOver is enabled, because a conflict with Emacs-style key bindings is
71693         less troublesome than one with VO keys.
71694
71695         * page/EventHandler.cpp: (WebCore::EventHandler::handleAccessKey):
71696         Also fix an access key matching bug introduced in r32424 - Any superset of specified
71697         modifier set invoked access keys. We can use simple equality comparison instead because
71698         CapsLock is not part of modifiers(), so it doesn't need to be ignored explicitly.
71699
71700 2008-11-06  Anders Carlsson  <andersca@apple.com>
71701
71702         Reviewed by Kevin Decker.
71703
71704         https://bugs.webkit.org/show_bug.cgi?id=22115
71705         NPN_HasPropertyUPP and NPN_HasMethodUPP entries in NPNetscapeFuncs are NULL
71706
71707         Export _NPN_HasMethod and _NPN_HasProperty.
71708
71709         * WebCore.NPAPI.exp:
71710
71711 2008-11-06  Simon Fraser  <simon.fraser@apple.com>
71712
71713         Reviewed by Antti Koivisto
71714
71715         https://bugs.webkit.org/show_bug.cgi?id=15678
71716
71717         Fix transformed menu selects to show the popup in the correct
71718         location.
71719
71720         * rendering/RenderMenuList.cpp:
71721         (WebCore::RenderMenuList::showPopup):
71722
71723 2008-11-06  David Kilzer  <ddkilzer@apple.com>
71724
71725         BUILD FIX: Backed out r38189 (and r38203) for Xcode 3.0.
71726
71727         Apparently older versions of gcc have issues with this patch.
71728         Backing out a second time until the issues are resolved.
71729
71730 2008-11-06  Julien Chaffraix  <jchaffraix@pleyo.com>
71731
71732         Reviewed by Maciej Stachowiak.
71733
71734         Bug 21106: .in format discussed changes
71735         https://bugs.webkit.org/show_bug.cgi?id=21106
71736
71737         Include the namespace into the interfaceName.
71738
71739         * dom/make_names.pl: Do not append the namespace when
71740         using the interfaceName.
71741         * html/HTMLTagNames.in: Added namespace prefix for custom
71742         interfaceName.
71743         * svg/svgtags.in: Ditto.
71744
71745 2008-11-06  Cameron Zwarich  <zwarich@apple.com>
71746
71747         Reviewed by Geoff Garen.
71748
71749         Move the remaining files in the kjs subdirectory of JavaScriptCore to
71750         a new parser subdirectory, and remove the kjs subdirectory entirely.
71751
71752         * ForwardingHeaders/kjs: Removed.
71753         * ForwardingHeaders/kjs/Parser.h: Removed.
71754         * ForwardingHeaders/kjs/SavedBuiltins.h: Removed.
71755         * ForwardingHeaders/kjs/SourceCode.h: Removed.
71756         * ForwardingHeaders/kjs/SourceProvider.h: Removed.
71757         * ForwardingHeaders/parser: Added.
71758         * ForwardingHeaders/parser/Parser.h: Copied from ForwardingHeaders/kjs/Parser.h.
71759         * ForwardingHeaders/parser/SourceCode.h: Copied from ForwardingHeaders/kjs/SourceCode.h.
71760         * ForwardingHeaders/parser/SourceProvider.h: Copied from ForwardingHeaders/kjs/SourceProvider.h.
71761         * WebCore.pro:
71762         * WebCore.vcproj/WebCore.vcproj:
71763         * bindings/js/StringSourceProvider.h:
71764         * bindings/js/WorkerScriptController.cpp:
71765         * bridge/NP_jsobject.cpp:
71766         * bridge/jni/jni_jsobject.mm:
71767         * bridge/testbindings.pro:
71768         * inspector/JavaScriptDebugServer.cpp:
71769
71770 2008-11-06  David Kilzer  <ddkilzer@apple.com>
71771
71772         BUILD WAS NOT BROKEN: Rolling r38189 back in.
71773
71774         Please perform a clean build if you see crashes.
71775
71776 2008-11-06  David Kilzer  <ddkilzer@apple.com>
71777
71778         BUILD FIX: Backed out r38189 since it apparently broke the world.
71779
71780 2008-11-06  Chris Fleizach  <cfleizach@apple.com>
71781
71782         Reviewed by Beth Dakin.
71783
71784         Bug 22112: if a <body> has contenteditable=true, it should report a writable AXValue
71785         https://bugs.webkit.org/show_bug.cgi?id=22112
71786
71787         Test: accessibility/content-editable.html
71788
71789         * page/AccessibilityRenderObject.cpp:
71790         (WebCore::AccessibilityRenderObject::isReadOnly):
71791
71792 2008-11-06  Sam Weinig  <sam@webkit.org>
71793
71794         Reviewed by Alice Liu.
71795
71796         Fix failed assert at launch caused by unintialized data member on the mac.
71797
71798         * platform/network/mac/NetworkStateNotifierMac.cpp:
71799         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
71800
71801 2008-11-06  Steve Falkenburg  <sfalken@apple.com>
71802
71803         Fix failed assert at launch caused by unintialized data member.
71804
71805         Reviewed by Maciej Stachowiak.
71806
71807         * platform/network/win/NetworkStateNotifierWin.cpp:
71808         (WebCore::NetworkStateNotifier::NetworkStateNotifier):
71809
71810 2008-11-06  Simon Fraser  <simon.fraser@apple.com>
71811
71812         Reviewed by Antti Koivisto
71813
71814         https://bugs.webkit.org/show_bug.cgi?id=22109
71815         Make <input type="range"> work correctly with transforms
71816
71817         Test: fast/forms/slider-transformed.html
71818
71819         * html/HTMLInputElement.cpp:
71820         (WebCore::HTMLInputElement::defaultEventHandler):
71821             Compute a correct local point when the event is retargeted
71822         * rendering/RenderSlider.cpp:
71823         (WebCore::HTMLSliderThumbElement::defaultEventHandler):
71824             Compute m_initialClickPoint in slider-local coords, so that
71825             deltas are computed correctly with transforms
71826         (WebCore::RenderSlider::mouseEventIsInThumb):
71827             Rather than computing an absolute bounds for the thumb,
71828             convert the point to local coords and compare it with the border box.
71829
71830 2008-11-06  Greg Bolsinga  <bolsinga@apple.com>
71831
71832         Reviewed by Darin Adler.
71833
71834         Bug 21810: Remove use of static C++ objects that are destroyed at exit time (destructors)
71835         https://bugs.webkit.org/show_bug.cgi?id=21810
71836
71837         * bindings/js/GCController.cpp:
71838         (WebCore::gcController): Changed to leak an object to avoid an exit-time destructor.
71839         * bindings/js/JSDOMBinding.cpp:
71840         (WebCore::wrapperSet): Ditto
71841         * bindings/js/JSInspectedObjectWrapper.cpp:
71842         (WebCore::wrappers): Ditto
71843         * bindings/js/JSInspectorCallbackWrapper.cpp:
71844         (WebCore::wrappers): Ditto
71845         * bridge/runtime_root.cpp:
71846         (JSC::Bindings::rootObjectSet): Ditto
71847         * css/CSSMutableStyleDeclaration.cpp:
71848         (WebCore::CSSMutableStyleDeclaration::removeProperty): Ditto
71849         * css/CSSPrimitiveValue.cpp:
71850         (WebCore::CSSPrimitiveValue::cssText): Ditto
71851         * css/CSSSelector.cpp:
71852         (WebCore::CSSSelector::extractPseudoType): Ditto
71853         * css/CSSStyleSelector.cpp:
71854         (WebCore::screenEval): Ditto
71855         (WebCore::printEval): Ditto
71856         * dom/DOMImplementation.cpp:
71857         (WebCore::isSVG10Feature): Ditto
71858         (WebCore::isSVG11Feature): Ditto
71859         (WebCore::DOMImplementation::isXMLMIMEType): Ditto
71860         * dom/Document.cpp:
71861         (WebCore::Document::hasPrefixNamespaceMismatch): Ditto
71862         * dom/ScriptElement.cpp:
71863         (WebCore::isSupportedJavaScriptLanguage): Ditto
71864         * editing/ApplyStyleCommand.cpp:
71865         (WebCore::styleSpanClassString): Ditto
71866         * editing/HTMLInterchange.cpp:
71867         (WebCore::): Ditto
71868         * editing/IndentOutdentCommand.cpp:
71869         (WebCore::indentBlockquoteString): Ditto
71870         * editing/ReplaceSelectionCommand.cpp:
71871         (WebCore::isInterchangeNewlineNode): Ditto
71872         (WebCore::isInterchangeConvertedSpaceSpan): Ditto
71873         * editing/htmlediting.cpp:
71874         (WebCore::stringWithRebalancedWhitespace): Ditto
71875         (WebCore::nonBreakingSpaceString): Ditto
71876         * editing/markup.cpp:
71877         (WebCore::appendAttributeValue): Ditto
71878         (WebCore::appendEscapedContent): Ditto
71879         (WebCore::shouldAddNamespaceAttr): Ditto
71880         (WebCore::appendNamespace): Ditto
71881         (WebCore::appendStartMarkup): Ditto
71882         (WebCore::createMarkup): Ditto
71883         * html/HTMLButtonElement.cpp:
71884         (WebCore::HTMLButtonElement::type): Ditto
71885         * html/HTMLElement.cpp:
71886         (WebCore::HTMLElement::isRecognizedTagName): Ditto
71887         (WebCore::inlineTagList): Ditto
71888         (WebCore::blockTagList): Ditto
71889         * html/HTMLFieldSetElement.cpp:
71890         (WebCore::HTMLFieldSetElement::type): Ditto
71891         * html/HTMLInputElement.cpp:
71892         (WebCore::HTMLInputElement::type): Ditto
71893         * html/HTMLKeygenElement.cpp:
71894         (WebCore::HTMLKeygenElement::type): Ditto
71895         * html/HTMLLegendElement.cpp:
71896         (WebCore::HTMLLegendElement::type): Ditto
71897         * html/HTMLOptGroupElement.cpp:
71898         (WebCore::HTMLOptGroupElement::type): Ditto
71899         * html/HTMLOptionElement.cpp:
71900         (WebCore::HTMLOptionElement::type): Ditto
71901         * html/HTMLParser.cpp:
71902         (WebCore::HTMLParser::getNode): Ditto
71903         (WebCore::HTMLParser::isHeaderTag): Ditto
71904         (WebCore::HTMLParser::isResidualStyleTag): Ditto
71905         (WebCore::HTMLParser::isAffectedByResidualStyle): Ditto
71906         * html/HTMLSelectElement.cpp:
71907         (WebCore::HTMLSelectElement::type): Ditto
71908         * html/HTMLTextAreaElement.cpp:
71909         (WebCore::HTMLTextAreaElement::type): Ditto
71910         * inspector/InspectorController.cpp:
71911         (WebCore::platform): Ditto
71912         * inspector/JavaScriptDebugServer.cpp:
71913         (WebCore::JavaScriptDebugServer::shared): Ditto
71914         * inspector/JavaScriptProfile.cpp:
71915         (WebCore::profileCache): Ditto
71916         * inspector/JavaScriptProfileNode.cpp:
71917         (WebCore::profileNodeCache): Ditto
71918         * loader/FrameLoader.cpp:
71919         (WebCore::localSchemes): Ditto
71920         * loader/appcache/ApplicationCacheStorage.cpp:
71921         (WebCore::cacheStorage): Ditto
71922         * loader/archive/ArchiveFactory.cpp:
71923         (WebCore::archiveMIMETypes): Ditto
71924         * loader/icon/IconDatabase.cpp:
71925         (WebCore::IconDatabase::defaultDatabaseFilename): Ditto
71926         * page/EventHandler.cpp:
71927         (WebCore::EventHandler::dragState): Ditto
71928         * page/Frame.cpp:
71929         (WebCore::createRegExpForLabels): Ditto
71930         (WebCore::keepAliveSet): Ditto
71931         * page/Page.cpp:
71932         (WebCore::Page::groupName): Ditto
71933         * page/SecurityOrigin.cpp:
71934         (WebCore::isDefaultPortForProtocol): Ditto
71935         (WebCore::SecurityOrigin::databaseIdentifier): Ditto
71936         * page/mac/FrameMac.mm:
71937         (WebCore::regExpForLabels): Ditto
71938         * platform/KURL.cpp:
71939         (WebCore::blankURL): Ditto
71940         * platform/graphics/FontCache.cpp:
71941         (WebCore::alternateFamilyName): Ditto
71942         * platform/graphics/mac/FontCacheMac.mm:
71943         (WebCore::FontCache::getSimilarFontPlatformData): Ditto
71944         (WebCore::FontCache::getLastResortFallbackFont): Ditto
71945         * platform/mac/ScrollbarThemeMac.mm:
71946         (WebCore::ScrollbarTheme::nativeTheme): Ditto
71947         * platform/mac/ThemeMac.mm:
71948         (WebCore::platformTheme): Ditto
71949         * platform/mac/ThreadCheck.mm:
71950         (WebCoreReportThreadViolation): Ditto
71951         * platform/network/NetworkStateNotifier.cpp:
71952         (WebCore::networkStateNotifier): Ditto
71953         * platform/network/mac/FormDataStreamMac.mm:
71954         (WebCore::getStreamFormDataMap): Ditto
71955         (WebCore::getStreamResourceHandleMap): Ditto
71956         * platform/network/mac/ResourceResponseMac.mm:
71957         (WebCore::ResourceResponse::platformLazyInit): Ditto
71958         * platform/text/TextEncoding.cpp:
71959         (WebCore::TextEncoding::isJapanese): Ditto
71960         * rendering/RenderBlock.cpp:
71961         (WebCore::continuationOutlineTable): Ditto
71962         * rendering/RenderCounter.cpp:
71963         (WebCore::counterMaps): Ditto
71964         * rendering/RenderFlexibleBox.cpp:
71965         (WebCore::RenderFlexibleBox::layoutVerticalBox): Ditto
71966         * rendering/RenderListItem.cpp:
71967         (WebCore::RenderListItem::markerText): Ditto
71968         * rendering/RenderScrollbarTheme.cpp:
71969         (WebCore::RenderScrollbarTheme::renderScrollbarTheme): Ditto
71970         * rendering/RenderThemeMac.mm:
71971         (WebCore::RenderThemeMac::systemFont): Ditto
71972         * rendering/bidi.cpp:
71973         (WebCore::RenderBlock::checkLinesForTextOverflow): Ditto
71974         * rendering/style/RenderStyle.cpp:
71975         (WebCore::RenderStyle::initialDashboardRegions): Ditto
71976         (WebCore::RenderStyle::noneDashboardRegions): Ditto
71977         * storage/LocalStorage.cpp:
71978         (WebCore::localStorageMap): Ditto
71979         * svg/SVGAnimateMotionElement.cpp:
71980         (WebCore::SVGAnimateMotionElement::rotateMode): Ditto
71981         * svg/SVGAnimationElement.cpp:
71982         (WebCore::SVGAnimationElement::calcMode): Ditto
71983         (WebCore::SVGAnimationElement::attributeType): Ditto
71984         (WebCore::SVGAnimationElement::isAdditive): Ditto
71985         (WebCore::SVGAnimationElement::isAccumulated): Ditto
71986         * svg/SVGLangSpace.cpp:
71987         (WebCore::SVGLangSpace::xmlspace): Ditto
71988         * svg/SVGSVGElement.cpp:
71989         (WebCore::SVGSVGElement::contentScriptType): Ditto
71990         (WebCore::SVGSVGElement::contentStyleType): Ditto
71991         * svg/SVGStyleElement.cpp:
71992         (WebCore::SVGStyleElement::type): Ditto
71993         (WebCore::SVGStyleElement::media): Ditto
71994         * svg/SVGTextContentElement.cpp:
71995         (WebCore::SVGTextContentElement::parseMappedAttribute): Ditto
71996         * svg/animation/SVGSMILElement.cpp:
71997         (WebCore::SVGSMILElement::parseClockValue): Ditto
71998         (WebCore::SVGSMILElement::restart): Ditto
71999         (WebCore::SVGSMILElement::fill): Ditto
72000         (WebCore::SVGSMILElement::repeatCount): Ditto
72001         (WebCore::SVGSMILElement::notifyDependentsIntervalChanged): Ditto
72002         * svg/graphics/SVGResource.cpp:
72003         (WebCore::clientMap): Ditto
72004         * svg/graphics/SVGResourceMarker.cpp:
72005         (WebCore::SVGResourceMarker::draw): Ditto
72006         * xml/XMLHttpRequest.cpp:
72007         (WebCore::preflightResultCache): Ditto
72008         (WebCore::isSafeRequestHeader): Ditto
72009         (WebCore::isOnAccessControlResponseHeaderWhitelist): Ditto
72010         * xml/XPathExpressionNode.cpp:
72011         (WebCore::XPath::Expression::evaluationContext): Ditto
72012         * xml/XPathParser.cpp:
72013         (WebCore::XPath::isAxisName): Ditto
72014         (WebCore::XPath::isNodeTypeName): Ditto
72015         * xml/XPathValue.cpp:
72016         (WebCore::XPath::Value::toNodeSet): Ditto
72017
72018 2008-11-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
72019
72020         Rubber-stamped by Simon Hausmann.
72021
72022         Remove a bunch of unused methods in the Qt media element implementation
72023
72024         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
72025         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
72026         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
72027
72028 2008-11-05  Simon Fraser  <simon.fraser@apple.com>
72029
72030         Reviewed by Dave Hyatt
72031
72032         https://bugs.webkit.org/show_bug.cgi?id=21870
72033
72034         Implement absoluteToLocal() to convert a point from absolute
72035         to local coordinates, optionally taking transforms into account.
72036
72037         Use this to set offsetX/offsetY in mouse events, thus fixing
72038         offsetX/offsetY in events on elements with transforms.
72039
72040         Test: fast/events/offsetX-offsetY.html
72041
72042         * dom/MouseRelatedEvent.cpp:
72043         (WebCore::MouseRelatedEvent::receivedTarget):
72044         * rendering/RenderBox.cpp:
72045         (WebCore::RenderBox::localToAbsolute):
72046         (WebCore::RenderBox::absoluteToLocal):
72047         (WebCore::RenderBox::offsetFromContainer):
72048         * rendering/RenderBox.h:
72049         * rendering/RenderObject.cpp:
72050         (WebCore::RenderObject::absoluteToLocal):
72051         * rendering/RenderObject.h:
72052         * rendering/RenderTableCell.cpp:
72053         (WebCore::RenderTableCell::localToAbsolute):
72054         (WebCore::RenderTableCell::absoluteToLocal):
72055         * rendering/RenderTableCell.h:
72056         * rendering/RenderView.cpp:
72057         (WebCore::RenderView::absoluteToLocal):
72058         * rendering/RenderView.h:
72059
72060 2008-11-06  Alp Toker  <alp@nuanti.com>
72061
72062         Reviewed by Cameron Zwarich.
72063
72064         https://bugs.webkit.org/show_bug.cgi?id=22067
72065         [GTK] Sun Java plugin segfaults at PluginPackage::createPackage()
72066
72067         null-check symbols loaded from plugin modules, initialize the function
72068         table (like Win already does) and update it with the latest
72069         additions. Adjust whitespace for easy diff'ing with the Win port code
72070         from which it was forked.
72071
72072         This fixes crashes with libnspr4.so and any other plugins that don't
72073         provide the symbols we expect.
72074
72075         * plugins/gtk/PluginPackageGtk.cpp:
72076         (WebCore::PluginPackage::fetchInfo):
72077         (WebCore::PluginPackage::load):
72078
72079 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
72080
72081         Reviewed by Simon Hausmann.
72082
72083         Removed dead (and broken) code from an ancient Symbian port.
72084
72085         * config.h:
72086         * platform/text/AtomicString.h:
72087         * platform/text/PlatformString.h:
72088
72089 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
72090
72091         Reviewed by Simon Hausmann.
72092
72093         Use QLibrary as PlatformModule when compiling with Qt for S60.
72094
72095         * platform/FileSystem.h:
72096
72097 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
72098
72099         Reviewed by Simon Hausmann.
72100
72101         Compile fix for Symbian.
72102         The snprintf function is defined in stdio.h, the inclusion
72103         of snprintf.h inside this PLATFORM(SYMBIAN) block does not
72104         compile.
72105
72106         * config.h:
72107
72108 2008-11-06  Kristian Amlie  <kristian.amlie@nokia.com>
72109
72110         Reviewed by Simon Hausmann.
72111
72112         Disable webkit plugins for Symbian.
72113
72114         * WebCore.pro:
72115
72116 2008-11-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
72117
72118         Fix build break in debug mode when XSLT is not enabled
72119
72120         * loader/Cache.cpp:
72121         (WebCore::Cache::dumpStats):
72122
72123 2008-11-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
72124
72125         Reviewed by Simon Hausmann.
72126
72127         Repaint video on UpdateRequest to prevent recursive painting
72128
72129         Calling QWidget::render() to update the video generates a paint
72130         event that's then picked up by the event filter once more :(
72131
72132         We're really only interested in updates from Phonon, which we
72133         get through the UpdateRequest for each new frame.
72134
72135         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
72136         (WebCore::MediaPlayerPrivate::eventFilter):
72137
72138 2008-11-06  Cameron Zwarich  <zwarich@apple.com>
72139
72140         Not reviewed.
72141
72142         Fix the WebCore build for some platforms by changing build scripts to
72143         account for the recent move of the create_hash_table script from the kjs
72144         subdirectory of JavaScriptCore to the root directory.
72145
72146         * WebCore.pro:
72147         * make-generated-sources.sh:
72148
72149 2008-11-06  Cameron Zwarich  <zwarich@apple.com>
72150
72151         Not reviewed.
72152
72153         Fix a case-sensitivity issue in Mac forwarding headers. Strangely
72154         enough, this does not always cause the build to break, even with a
72155         case-sensitive filesystem.
72156
72157         * ForwardingHeaders/runtime/Interpreter.h:
72158
72159 2008-11-05  Alexey Proskuryakov  <ap@webkit.org>
72160
72161         Reviewed by Maciej Stachowiak.
72162
72163         https://bugs.webkit.org/show_bug.cgi?id=22083
72164         MessageEvents cannot be used across threads
72165
72166         * dom/Event.idl:
72167         * dom/MessageEvent.idl:
72168         Add a NoStaticTables attribute - MessageEvent is used in worker threads, so static tables
72169         won't work.
72170
72171         * dom/MessagePort.cpp:
72172         (WebCore::MessagePort::EventData::EventData):
72173         (WebCore::MessagePort::EventData::~EventData):
72174         (WebCore::MessagePort::clone):
72175         (WebCore::MessagePort::postMessage):
72176         (WebCore::MessagePort::startConversation):
72177         (WebCore::MessagePort::dispatchMessages):
72178         * dom/MessagePort.h:
72179         Don't create a MessageEvent until dispatch time - messages can be posted across threads,
72180         but MessageEvents are tied to the thread that they were created in.
72181
72182 2008-11-05  Alexey Proskuryakov  <ap@webkit.org>
72183
72184         Reviewed by Darin Adler.
72185
72186         https://bugs.webkit.org/show_bug.cgi?id=22066
72187         Implement Worker global object
72188
72189         * DerivedSources.make: Added WorkerLocation IDL and JSWorkerContext lookup table.
72190
72191         * WebCore.xcodeproj/project.pbxproj: Only adding files to Mac project for now, as Worker
72192         support is still disabled by default.
72193
72194         * bindings/js/JSDOMGlobalObject.cpp: (WebCore::toJSDOMGlobalObject): Implemented Worker case.
72195
72196         * bindings/js/JSMessageChannelConstructor.cpp:
72197         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor): Ditto.
72198
72199         * bindings/js/JSWorkerContext.cpp: Added.
72200         * bindings/js/JSWorkerContext.h: Added.
72201         * bindings/js/WorkerScriptController.cpp: Added.
72202         * bindings/js/WorkerScriptController.h: Added.
72203         * dom/WorkerContext.cpp: Added.
72204         * dom/WorkerContext.h: Added.
72205         Added an implementation of worker contexts.
72206
72207         * dom/DedicatedWorker.cpp:
72208         (WebCore::DedicatedWorker::startLoad): Fixed a lifetime bug I saw on my tests.
72209         (WebCore::DedicatedWorker::notifyFinished): Create a thread. Currently, object ownership
72210         and lifetime is not clear at all.
72211
72212         * dom/WorkerLocation.cpp: Added.
72213         * dom/WorkerLocation.h: Added.
72214         * dom/WorkerLocation.idl: Added.
72215         Added WorkerLocation, which is one of the objects available to workers.
72216
72217         * dom/WorkerThread.cpp: Added.
72218         (WebCore::WorkerThread::WorkerThread):
72219         (WebCore::WorkerThread::start):
72220         (WebCore::WorkerThread::workerThreadStart):
72221         (WebCore::WorkerThread::workerThread):
72222         * dom/WorkerThread.h: Added.
72223         (WebCore::WorkerThread::create):
72224         Run some code in a worker thread (no message loop yet).
72225
72226 2008-11-05  Antti Koivisto  <antti@apple.com>
72227
72228         Reviewed by Dan Bernstein.
72229
72230         https://bugs.webkit.org/show_bug.cgi?id=22093
72231         Don't keep decoded stylesheet data in cache
72232
72233         <rdar://problem/6343588>
72234
72235         Don't keep decoded stylesheet string around in the cache. There are no sharing benefits and
72236         performance benefits are negligible (no measured PLT impact). Reduces memory consumption of
72237         style sheet data in cache by 2/3 in common case.
72238
72239         * loader/CachedCSSStyleSheet.cpp:
72240         (WebCore::CachedCSSStyleSheet::sheetText):
72241         (WebCore::CachedCSSStyleSheet::data):
72242         * loader/CachedCSSStyleSheet.h:
72243
72244 2008-11-05  David Kilzer  <ddkilzer@apple.com>
72245
72246         Bug 21596: WebCore::Cache should use parsed Pragma and Cache-Control headers
72247
72248         <https://bugs.webkit.org/show_bug.cgi?id=21596>
72249
72250         Reviewed by Antti.
72251
72252         This patch adds real parsing for Pragma and Cache-Control headers
72253         based on RFC 2616, Sections 2, 14.9 and 14.32.  It also adds some
72254         new String and StringImpl methods to assist with the parsing.
72255
72256         * loader/Cache.cpp:
72257         (WebCore::Cache::dumpStats): Added.  Convenience method for dumping
72258         stats outside of Safari.
72259         * loader/Cache.h: Declared dumpStats().
72260
72261         * loader/CachedResource.cpp:
72262         (WebCore::CachedResource::mustRevalidate): Updated to use
72263         ResourceResponseBase::cacheControlDirectives() instead of substring
72264         matching of the entire Cache-Control header.
72265
72266         * loader/loader.cpp:
72267         (WebCore::Loader::Host::didReceiveResponse): Used the local
72268         'resource' variable instead of 'request->cachedResource()'.
72269
72270         * platform/network/ResourceResponseBase.cpp:
72271         (WebCore::ResourceResponseBase::setHTTPHeaderField): Set
72272         m_haveParsedCacheControlHeader to false when a "Cache-Control"
72273         header is set.  Ditto for m_haveParsedPragmaHeader and "Pragma".
72274         (WebCore::ResourceResponseBase::parsePragmaDirectives): Added.
72275         Provides parsed Pragma header directives.
72276         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Added.
72277         Provides parsed Cache-Control header directives.
72278         (WebCore::isCacheHeaderSeparator): Added.  Returns true if a
72279         character is a separator character per RFC 2616, Section 2.2, else
72280         returns false.
72281         (WebCore::isControlCharacter): Added.  Returns true if a character
72282         is a control character per RFC 2616 Section 2.2, else returns false.
72283         (WebCore::trimToNextSeparator): Added.  Returns a string truncated
72284         at the first separator character per isCacheHeaderSeparator().
72285         (WebCore::parseCacheHeader): Added.  This is the main parsing
72286         routine for both Cache-Control and Pragma headers.
72287         (WebCore::parseCacheControlDirectiveValues): Added.  This splits
72288         certain Cache-Control directive values into a vector of strings.
72289         * platform/network/ResourceResponseBase.h:
72290         (WebCore::CacheControlDirectiveMap): Added.  Typedef for a parsed
72291         Cache-Control header.
72292         (WebCore::PragmaDirectiveMap): Added.  Typedef for a parsed Pragma
72293         header.
72294         (WebCore::ResourceResponseBase::parsePragmaDirectives): Added
72295         declaration.
72296         (WebCore::ResourceResponseBase::parseCacheControlDirectives): Ditto.
72297         (WebCore::ResourceResponseBase::m_haveParsedCacheControlHeader):
72298         Added.  Boolean to describe when the "Cache-Control" header needs to
72299         be reparsed.
72300         (WebCore::ResourceResponseBase::m_haveParsedPragmaHeader):  Added.
72301         Boolean to describe when the "Pragma" header needs to be reparsed.
72302         (WebCore::ResourceResponseBase::m_cacheControlDirectiveMap): Added.
72303         Cached map to hold parsed "Cache-Control" headers.
72304         (WebCore::ResourceResponseBase::m_pragmaDirectiveMap): Added.
72305         Cached map to hold parsed "Pragma" headers.
72306
72307         * platform/text/PlatformString.h:
72308         (WebCore::String::find): Added.  Returns the first match based on
72309         the character-matching function pointer passed in.
72310         (WebCore::String::removeCharacters): Added declaration.
72311         (WebCore::find): Added.  Inline method that takes a character-
72312         matching function pointer.  Called by StringImpl::find().
72313         * platform/text/String.cpp:
72314         (WebCore::String::removeCharacters): Added.  Calls
72315         StringImpl::removeCharacters().
72316         * platform/text/StringImpl.cpp:
72317         (WebCore::StringImpl::removeCharacters): Added.  Returns a string
72318         with all characters removed that match the character-matching
72319         function pointer passed in.  If there is no change to the string, it
72320         returns itself.  Based heavily on StringImpl::simplifyWhitespace().
72321         (WebCore::StringImpl::find): Added.  Calls WebCore::find().
72322         * platform/text/StringImpl.h:
72323         (WebCore::FindMatchFunctionPtr): Added.  Typedef for a character-
72324         matching function pointer.
72325         (WebCore::StringImpl::removeCharacters): Added declaration.
72326         (WebCore::StringImpl::find): Ditto.
72327
72328 2008-11-05  Justin Garcia  <justin.garcia@apple.com>
72329
72330         Reviewed by Beth Dakin.
72331
72332         <rdar://problem/5480736> In Mail and Gmail, copied indented text pastes with line break
72333
72334         As a rule, we don't allow merges out of blockquotes.  In the bug, we are inserting a text node
72335         between two blockquotes.  Because the start merge moves the text node into a blockquote, when we
72336         determine whether or not we should do the end merge, it incorrectly appears as though the end merge
72337         is merging out of a blockquote.  The fix is to determine whether or not we should do the end merge
72338         before we do the start merge, so that the start merge doesn't effect our decision.
72339
72340         * editing/ReplaceSelectionCommand.cpp:
72341         (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand): Initialize the new boolean.
72342         (WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): Moved code from doApply() here for clarity.
72343         (WebCore::ReplaceSelectionCommand::doApply): Set m_shouldMergeEnd before we do the start merge.
72344         * editing/ReplaceSelectionCommand.h: Added m_shouldMergeEnd.
72345
72346 2008-11-05  Cameron Zwarich  <zwarich@apple.com>
72347
72348         Not reviewed.
72349
72350         Speculatively fix the Windows build, even though these changes may not
72351         actually matter for anything in the build, because the Windows bots are
72352         behind.
72353
72354         * WebCore.vcproj/WebCore.vcproj:
72355
72356 2008-11-05  Cameron Zwarich  <zwarich@apple.com>
72357
72358         Not reviewed.
72359
72360         Fix the Qt build.
72361
72362         * bridge/qt/qt_class.cpp:
72363         * bridge/qt/qt_runtime.h:
72364
72365 2008-11-05  Cameron Zwarich  <zwarich@apple.com>
72366
72367         Rubber-stamped by Sam Weinig.
72368
72369         Move more files to the runtime subdirectory of JavaScriptCore.
72370
72371         * ForwardingHeaders/kjs/collector.h: Removed.
72372         * ForwardingHeaders/kjs/completion.h: Removed.
72373         * ForwardingHeaders/kjs/identifier.h: Removed.
72374         * ForwardingHeaders/kjs/interpreter.h: Removed.
72375         * ForwardingHeaders/kjs/lookup.h: Removed.
72376         * ForwardingHeaders/kjs/operations.h: Removed.
72377         * ForwardingHeaders/kjs/protect.h: Removed.
72378         * ForwardingHeaders/kjs/ustring.h: Removed.
72379         * ForwardingHeaders/runtime/Collector.h: Copied from ForwardingHeaders/kjs/collector.h.
72380         * ForwardingHeaders/runtime/Completion.h: Copied from ForwardingHeaders/kjs/completion.h.
72381         * ForwardingHeaders/runtime/Identifier.h: Copied from ForwardingHeaders/kjs/identifier.h.
72382         * ForwardingHeaders/runtime/Interpreter.h: Copied from ForwardingHeaders/kjs/interpreter.h.
72383         * ForwardingHeaders/runtime/Lookup.h: Copied from ForwardingHeaders/kjs/lookup.h.
72384         * ForwardingHeaders/runtime/Operations.h: Copied from ForwardingHeaders/kjs/operations.h.
72385         * ForwardingHeaders/runtime/Protect.h: Copied from ForwardingHeaders/kjs/protect.h.
72386         * ForwardingHeaders/runtime/UString.h: Copied from ForwardingHeaders/kjs/ustring.h.
72387         * bindings/js/GCController.cpp:
72388         * bindings/js/JSCustomPositionCallback.h:
72389         * bindings/js/JSCustomPositionErrorCallback.h:
72390         * bindings/js/JSCustomSQLStatementCallback.h:
72391         * bindings/js/JSCustomSQLStatementErrorCallback.h:
72392         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
72393         * bindings/js/JSCustomVoidCallback.h:
72394         * bindings/js/JSDOMBinding.h:
72395         * bindings/js/JSDOMWindowBase.h:
72396         * bindings/js/JSEventListener.h:
72397         * bindings/js/ScheduledAction.h:
72398         * bindings/js/ScriptController.cpp:
72399         * bindings/js/ScriptController.h:
72400         * bindings/objc/WebScriptObject.mm:
72401         * bindings/scripts/CodeGeneratorJS.pm:
72402         * bridge/NP_jsobject.cpp:
72403         * bridge/c/c_class.cpp:
72404         * bridge/jni/jni_class.cpp:
72405         * bridge/jni/jni_jsobject.mm:
72406         * bridge/npruntime.cpp:
72407         * bridge/runtime_root.h:
72408         * history/CachedPage.h:
72409         * html/CanvasRenderingContext2D.cpp:
72410         * html/HTMLCanvasElement.cpp:
72411         * inspector/InspectorController.cpp:
72412         * inspector/JavaScriptCallFrame.cpp:
72413         * page/Console.cpp:
72414         * page/Page.cpp:
72415         * platform/text/AtomicString.cpp:
72416         * platform/text/PlatformString.h:
72417
72418 2008-11-05  Sam Weinig  <sam@webkit.org>
72419
72420         Reviewed by Anders Carlsson.
72421
72422         Fix https://bugs.webkit.org/show_bug.cgi?id=22085
72423         The Plugin JS object should expose item() and namedItem() methods to match Firefox
72424
72425         * bindings/js/JSPluginCustom.cpp:
72426         (WebCore::JSPlugin::nameGetter):
72427         * plugins/Plugin.cpp:
72428         (WebCore::Plugin::namedItem):
72429         * plugins/Plugin.h:
72430         * plugins/Plugin.idl:
72431
72432 2008-11-05  Alexey Proskuryakov  <ap@webkit.org>
72433
72434         Reviewed by Maciej Stachowiak.
72435
72436         https://bugs.webkit.org/show_bug.cgi?id=21060
72437         Range#surroundContents incorrectly throws BAD_BOUNDARYPOINTS_ERR
72438
72439         Test: fast/dom/Range/surroundContents-check-boundary-points.html
72440
72441         * dom/Range.cpp: (WebCore::Range::surroundContents): Fix BAD_BOUNDARYPOINTS_ERR checks.
72442
72443 2008-11-05  Anders Carlsson  <andersca@apple.com>
72444
72445         Reviewed by Dan Bernstein.
72446
72447         Remove two global destructors from CoreTextController.
72448
72449         * platform/graphics/mac/CoreTextController.cpp:
72450         (WebCore::CoreTextController::collectCoreTextRunsForCharacters):
72451
72452 2008-11-05  Darin Fisher  <darin@chromium.org>
72453
72454         Reviewed by Darin Adler.
72455
72456         CRASH at Scrollbar::invalidateRect due to null m_client
72457         https://bugs.webkit.org/show_bug.cgi?id=22080
72458
72459         * platform/Scrollbar.cpp:
72460         (WebCore::Scrollbar::isWindowActive):
72461         (WebCore::Scrollbar::invalidateRect):
72462
72463 2008-11-04  Sam Weinig  <sam@webkit.org>
72464
72465         Reviewed by Simon Hausmann.
72466
72467         Fix https://bugs.webkit.org/show_bug.cgi?id=21648
72468         navigator.mimeTypes and navigator.plugins don't expose item and namedItem to JS
72469
72470         - Also adds constructors for Plugin, PluginArray, MimeType and MimeTypeArray.
72471
72472         * bindings/js/JSMimeTypeArrayCustom.cpp:
72473         (WebCore::JSMimeTypeArray::nameGetter):
72474         * bindings/js/JSPluginArrayCustom.cpp:
72475         (WebCore::JSPluginArray::nameGetter):
72476         * page/DOMWindow.idl:
72477         * plugins/MimeType.idl:
72478         * plugins/MimeTypeArray.cpp:
72479         (WebCore::MimeTypeArray::namedItem):
72480         * plugins/MimeTypeArray.h:
72481         * plugins/MimeTypeArray.idl:
72482         * plugins/Plugin.idl:
72483         * plugins/PluginArray.cpp:
72484         (WebCore::PluginArray::namedItem):
72485         * plugins/PluginArray.h:
72486         * plugins/PluginArray.idl:
72487
72488 2008-11-05  Steve Falkenburg  <sfalken@apple.com>
72489
72490         Build fix.
72491
72492         * plugins/PluginPackage.cpp:
72493
72494 2008-11-05  Jeff Cook  <cookiecaper@gmail.com>
72495
72496         Reviewed by Simon Hausmann and Tor Arne.
72497
72498         Fix crash in the Qt port when unloading swfdec and Flash 10
72499         by reordering window destruction and plugin stop.
72500
72501         See https://bugs.webkit.org/show_bug.cgi?id=20779
72502
72503         * plugins/qt/PluginViewQt.cpp:
72504         (WebCore::PluginView::stop):
72505
72506 2008-11-05  Simon Hausmann  <hausmann@webkit.org>
72507
72508         Reviewed by Tor Arne Vestbø
72509
72510         Fix loading of Flash 10 in the Qt port by faking the toolkit to be Gtk.
72511
72512         Otherwise Flash refuses to load and function :(
72513
72514         * plugins/PluginPackage.cpp:
72515         (WebCore::PluginPackage::determineQuirks):
72516         * plugins/PluginQuirkSet.h:
72517         (WebCore::):
72518         * plugins/qt/PluginViewQt.cpp:
72519         (WebCore::PluginView::getValue):
72520
72521 2008-11-05  Simon Hausmann  <hausmann@webkit.org>
72522
72523         Reviewed by Tor Arne Vestbø
72524
72525         Unify determineQuirks between the Qt and the Gtk PluginPackage.
72526         Share the code for parsing the module version from the description.
72527         This is currently used to determine Flash based quirks.
72528
72529         * plugins/PluginPackage.cpp:
72530         (WebCore::PluginPackage::createPackage):
72531         (WebCore::PluginPackage::determineQuirks):
72532         (WebCore::PluginPackage::determineModuleVersionFromDescription):
72533         * plugins/PluginPackage.h:
72534         * plugins/gtk/PluginPackageGtk.cpp:
72535         (WebCore::PluginPackage::fetchInfo):
72536         * plugins/qt/PluginPackageQt.cpp:
72537         (WebCore::PluginPackage::fetchInfo):
72538
72539 2008-11-04  Cameron Zwarich  <zwarich@apple.com>
72540
72541         Rubber-stamped by Sam Weinig.
72542
72543         Move kjs/dtoa.h to the wtf subdirectory of JavaScriptCore.
72544
72545         * ForwardingHeaders/kjs/dtoa.h: Removed.
72546         * ForwardingHeaders/wtf/dtoa.h: Copied from ForwardingHeaders/kjs/dtoa.h.
72547         * css/CSSParser.cpp:
72548         * platform/text/String.cpp:
72549         * platform/text/StringImpl.cpp:
72550
72551 2008-11-04  Jonathan Haas  <myrdred@gmail.com>
72552
72553         Addiitonal tweaks and patch prep by Pamela Greene <pam@chromium.org>
72554
72555         Reviewed by Darin Adler.
72556
72557         Fixed an issue which could cause memory corruption using ToT libxml.
72558         See https://bugs.webkit.org/show_bug.cgi?id=15715
72559
72560         Test: fast/xsl/xslt-nested-stylesheets.xml
72561
72562         * xml/XSLImportRule.cpp:
72563         (WebCore::XSLImportRule::setXSLStyleSheet): Set parent rather than owner document
72564         * xml/XSLStyleSheet.cpp:
72565         (WebCore::XSLStyleSheet::XSLStyleSheet): Initialize m_parentStyleSheet
72566         (WebCore::XSLStyleSheet::parseString): Make all child stylesheets use parent's dictionary
72567         (WebCore::XSLStyleSheet::setParentStyleSheet): Added
72568         * xml/XSLStyleSheet.h: Added m_parentStyleSheet member
72569
72570 2008-11-04  Simon Fraser  <simon.fraser@apple.com>
72571
72572         No review.
72573
72574         Improved buid fix: include MathExtras.h to get roundf on all platforms.
72575
72576         * platform/graphics/FloatPoint.h:
72577
72578 2008-11-04  Brady Eidson  <beidson@apple.com>
72579
72580         Reviewed by John Sullivan
72581
72582         Add a simple "visited" method to HistoryItem for use by global history
72583
72584         * WebCore.base.exp:
72585
72586         * history/HistoryItem.cpp:
72587         (WebCore::HistoryItem::visited):  Update the title on the item, set last visited time,
72588           and bump the visit count.  All things that should happen when a url is visited again!
72589         * history/HistoryItem.h:
72590
72591 2008-11-04  Jan Michael Alonzo  <jmalonzo@webkit.org>
72592
72593         Build fix. Not reviewed.
72594
72595         * platform/graphics/FloatPoint.h: include math.h.
72596         reported by zdobersek in #webkit.
72597
72598 2008-11-04  Darin Fisher  <darin@chromium.org>
72599
72600         Reviewed by Anders Carlsson.
72601
72602         No need to clobber all ResourceRequest fields in FrameLoader::reload()
72603         https://bugs.webkit.org/show_bug.cgi?id=21949
72604
72605         * loader/FrameLoader.cpp:
72606         (WebCore::FrameLoader::reload):
72607
72608 2008-11-04  Darin Adler  <darin@apple.com>
72609
72610         Reviewed by Tim Hatcher.
72611
72612         * storage/Database.cpp:
72613         (WebCore::databaseVersionKey): Tweaked formatting.
72614
72615 2008-11-03  Darin Adler  <darin@apple.com>
72616
72617         Reviewed by Tim Hatcher.
72618
72619         - https://bugs.webkit.org/show_bug.cgi?id=22061
72620           create script to check for exit-time destructors
72621
72622         * WebCore.xcodeproj/project.pbxproj: Added a script
72623         phase that runs the check-for-exit-time-destructors script.
72624
72625         * html/HTMLAttributeNames.in: Removed some unused attribute names.
72626
72627         * html/HTMLEmbedElement.cpp:
72628         (WebCore::HTMLEmbedElement::parseMappedAttribute): Removed code that
72629         sets the write-only m_pluginPage.
72630         * html/HTMLEmbedElement.h: Ditto.
72631
72632         * platform/mac/CursorMac.mm:
72633         (WebCore::leakNamedCursor): Changed to return a Cursor&.
72634         (WebCore::pointerCursor): Changed to leak an object to avoid an
72635         exit-time destructor.
72636         (WebCore::crossCursor): Ditto.
72637         (WebCore::handCursor): Ditto.
72638         (WebCore::moveCursor): Ditto.
72639         (WebCore::verticalTextCursor): Ditto.
72640         (WebCore::cellCursor): Ditto.
72641         (WebCore::contextMenuCursor): Ditto.
72642         (WebCore::aliasCursor): Ditto.
72643         (WebCore::zoomInCursor): Ditto.
72644         (WebCore::zoomOutCursor): Ditto.
72645         (WebCore::copyCursor): Ditto.
72646         (WebCore::noneCursor): Ditto.
72647         (WebCore::progressCursor): Ditto.
72648         (WebCore::noDropCursor): Ditto.
72649         (WebCore::notAllowedCursor): Ditto.
72650         (WebCore::iBeamCursor): Ditto.
72651         (WebCore::waitCursor): Ditto.
72652         (WebCore::helpCursor): Ditto.
72653         (WebCore::eastResizeCursor): Ditto.
72654         (WebCore::northResizeCursor): Ditto.
72655         (WebCore::northEastResizeCursor): Ditto.
72656         (WebCore::northWestResizeCursor): Ditto.
72657         (WebCore::southResizeCursor): Ditto.
72658         (WebCore::southEastResizeCursor): Ditto.
72659         (WebCore::southWestResizeCursor): Ditto.
72660         (WebCore::westResizeCursor): Ditto.
72661         (WebCore::northSouthResizeCursor): Ditto.
72662         (WebCore::eastWestResizeCursor): Ditto.
72663         (WebCore::northEastSouthWestResizeCursor): Ditto.
72664         (WebCore::northWestSouthEastResizeCursor): Ditto.
72665         (WebCore::columnResizeCursor): Ditto.
72666         (WebCore::rowResizeCursor): Ditto.
72667         (WebCore::grabCursor): Ditto.
72668         (WebCore::grabbingCursor): Ditto.
72669
72670         * storage/Database.cpp:
72671         (WebCore::guidMutex): Changed to leak an object to avoid an
72672         exit-time destructor. Also added a comment explaining why it's
72673         thread safe.
72674         (WebCore::guidToVersionMap): Ditto.
72675         (WebCore::guidToDatabaseMap): Ditto.
72676         (WebCore::Database::databaseInfoTableName): Ditto.
72677         (WebCore::databaseVersionKey): Ditto.
72678         (WebCore::Database::getVersionFromDatabase): Ditto.
72679         (WebCore::Database::setVersionInDatabase): Ditto.
72680         (WebCore::guidForOriginAndName): Ditto.
72681         * storage/DatabaseTracker.cpp:
72682         (WebCore::DatabaseTracker::tracker): Ditto.
72683         (WebCore::notificationMutex): Ditto.
72684         (WebCore::notificationQueue): Ditto.
72685         (WebCore::DatabaseTracker::notifyDatabasesChanged): Ditto.
72686
72687 2008-11-04  Simon Fraser  <simon.fraser@apple.com>
72688
72689         Reviewed by Dave Hyatt
72690
72691         https://bugs.webkit.org/show_bug.cgi?id=21941
72692
72693         Rename absolutePosition() to localToAbsolute(), and add the ability
72694         to optionally take transforms into account (which will eventually be the
72695         default behavior).
72696
72697         * WebCore.base.exp:
72698         * WebCore.xcodeproj/project.pbxproj:
72699         * dom/ContainerNode.cpp:
72700         (WebCore::ContainerNode::getUpperLeftCorner):
72701         (WebCore::ContainerNode::getLowerRightCorner):
72702         (WebCore::ContainerNode::getRect):
72703         * dom/ContainerNode.h:
72704         * dom/MouseRelatedEvent.cpp:
72705         (WebCore::MouseRelatedEvent::receivedTarget):
72706         * dom/Node.cpp:
72707         (WebCore::Node::getRect):
72708         * editing/SelectionController.cpp:
72709         (WebCore::SelectionController::layout):
72710         (WebCore::SelectionController::caretRect):
72711         * editing/visible_units.cpp:
72712         (WebCore::previousLinePosition):
72713         (WebCore::nextLinePosition):
72714         * html/HTMLAnchorElement.cpp:
72715         (WebCore::HTMLAnchorElement::isKeyboardFocusable):
72716         (WebCore::HTMLAnchorElement::defaultEventHandler):
72717         * html/HTMLAreaElement.cpp:
72718         (WebCore::HTMLAreaElement::getRect):
72719         * html/HTMLImageElement.cpp:
72720         (WebCore::HTMLImageElement::x):
72721         (WebCore::HTMLImageElement::y):
72722         * html/HTMLInputElement.cpp:
72723         (WebCore::HTMLInputElement::defaultEventHandler):
72724         * html/HTMLInputElement.h:
72725         * page/AccessibilityRenderObject.cpp:
72726         (WebCore::AccessibilityRenderObject::boundingBoxRect):
72727         * page/EventHandler.cpp:
72728         (WebCore::EventHandler::handleDrag):
72729         * platform/graphics/FloatPoint.h:
72730         (WebCore::roundedIntPoint):
72731         * platform/graphics/IntSize.h:
72732         (WebCore::IntSize::expand):
72733         * rendering/LayoutState.cpp:
72734         (WebCore::LayoutState::LayoutState):
72735         * rendering/RenderBlock.cpp:
72736         (WebCore::RenderBlock::layoutBlock):
72737         (WebCore::RenderBlock::paintObject):
72738         (WebCore::RenderBlock::selectionGapRects):
72739         (WebCore::RenderBlock::fillBlockSelectionGaps):
72740         (WebCore::RenderBlock::nodeAtPoint):
72741         (WebCore::RenderBlock::positionForCoordinates):
72742         * rendering/RenderBox.cpp:
72743         (WebCore::RenderBox::localToAbsolute):
72744         (WebCore::RenderBox::computeAbsoluteRepaintRect):
72745         (WebCore::RenderBox::caretRect):
72746         * rendering/RenderBox.h:
72747         (WebCore::RenderBox::relativePositionOffset):
72748         * rendering/RenderContainer.cpp:
72749         (WebCore::RenderContainer::addLineBoxRects):
72750         * rendering/RenderFlow.cpp:
72751         (WebCore::RenderFlow::absoluteClippedOverflowRect):
72752         (WebCore::RenderFlow::caretRect):
72753         (WebCore::RenderFlow::addFocusRingRects):
72754         * rendering/RenderLayer.cpp:
72755         (WebCore::RenderLayer::updateLayerPosition):
72756         (WebCore::RenderLayer::convertToLayerCoords):
72757         (WebCore::RenderLayer::addScrolledContentOffset):
72758         (WebCore::RenderLayer::subtractScrolledContentOffset):
72759         (WebCore::RenderLayer::scrollRectToVisible):
72760         * rendering/RenderLayer.h:
72761         (WebCore::RenderLayer::scrolledContentOffset):
72762         (WebCore::RenderLayer::relativePositionOffset):
72763         * rendering/RenderListBox.cpp:
72764         (WebCore::RenderListBox::panScroll):
72765         (WebCore::RenderListBox::scrollToward):
72766         * rendering/RenderListMarker.cpp:
72767         (WebCore::RenderListMarker::selectionRect):
72768         * rendering/RenderObject.cpp:
72769         (WebCore::RenderObject::absoluteBoundingBoxRect):
72770         (WebCore::RenderObject::computeAbsoluteRepaintRect):
72771         (WebCore::RenderObject::localToAbsolute):
72772         (WebCore::RenderObject::addDashboardRegions):
72773         (WebCore::RenderObject::absoluteContentBox):
72774         (WebCore::RenderObject::absoluteOutlineBox):
72775         * rendering/RenderObject.h:
72776         (WebCore::RenderObject::localToAbsoluteForContent):
72777         * rendering/RenderPart.cpp:
72778         (WebCore::RenderPart::updateWidgetPosition):
72779         * rendering/RenderReplaced.cpp:
72780         (WebCore::RenderReplaced::selectionRect):
72781         * rendering/RenderSVGInlineText.cpp:
72782         (WebCore::RenderSVGInlineText::computeAbsoluteRectForRange):
72783         * rendering/RenderSVGText.cpp:
72784         (WebCore::RenderSVGText::absoluteRects):
72785         * rendering/RenderTableCell.cpp:
72786         (WebCore::RenderTableCell::localToAbsolute):
72787         * rendering/RenderTableCell.h:
72788         * rendering/RenderText.cpp:
72789         (WebCore::RenderText::addLineBoxRects):
72790         (WebCore::RenderText::caretRect):
72791         (WebCore::RenderText::selectionRect):
72792         * rendering/RenderVideo.cpp:
72793         (WebCore::RenderVideo::updatePlayer):
72794         * rendering/RenderView.cpp:
72795         (WebCore::RenderView::localToAbsolute):
72796         * rendering/RenderView.h:
72797         * rendering/RenderWidget.cpp:
72798         (WebCore::RenderWidget::updateWidgetPosition):
72799         * svg/SVGSVGElement.cpp:
72800         (WebCore::SVGSVGElement::getScreenCTM):
72801
72802 2008-11-03  Yael Aharon  <yael.aharon@nokia.com>
72803
72804         Reviewed by Simon Hausmann.
72805
72806         Add methods for getting and setting user data on History Item.
72807         This change is limited to QT port only. Tests were added in
72808         the patch for https://bugs.webkit.org/show_bug.cgi?id=21864.
72809
72810         Minor change by Simon: made the functions inline and added a missing
72811         const.
72812
72813         * history/HistoryItem.h:
72814
72815 2008-11-01  Alexey Proskuryakov  <ap@webkit.org>
72816
72817         Reviewed by Darin Adler.
72818
72819         https://bugs.webkit.org/show_bug.cgi?id=22030
72820         Make EventNames usable from multiple threads
72821
72822         * platform/text/AtomicString.cpp:
72823         (WebCore::stringTable):
72824         (WebCore::AtomicString::add):
72825         (WebCore::AtomicString::remove):
72826         (WebCore::AtomicString::find):
72827         (WebCore::AtomicString::init):
72828         * platform/text/AtomicString.h:
72829         Atomic string table is now per-thread. Individual strings cannot be shared between threads,
72830         so global AtomicString constants cannot be used from threads other than the main one.
72831
72832         * dom/EventNames.cpp:
72833         (WebCore::EventNames::EventNames):
72834         (WebCore::eventNames):
72835         (WebCore::EventNames::init):
72836         * dom/EventNames.h:
72837         Made EventNames a ThreadSpecific struct. Individual event names are now accessed as
72838         eventNames().fooEvent, not EventNames::fooEvent. This makes EventNames usable from all
72839         threads.
72840
72841         * WebCore.base.exp:
72842         * bindings/js/JSDOMWindowBase.cpp:
72843         * bindings/js/JSEventListener.cpp:
72844         * bindings/js/ScriptController.cpp:
72845         (WebCore::ScriptController::processingUserGesture):
72846         * dom/BeforeTextInsertedEvent.cpp:
72847         (WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent):
72848         * dom/BeforeUnloadEvent.cpp:
72849         (WebCore::BeforeUnloadEvent::BeforeUnloadEvent):
72850         * dom/CharacterData.cpp:
72851         (WebCore::CharacterData::dispatchModifiedEvent):
72852         * dom/ContainerNode.cpp:
72853         (WebCore::dispatchChildInsertionEvents):
72854         (WebCore::dispatchChildRemovalEvents):
72855         * dom/DedicatedWorker.cpp:
72856         (WebCore::DedicatedWorker::dispatchErrorEvent):
72857         * dom/Document.cpp:
72858         (WebCore::Document::implicitClose):
72859         (WebCore::Document::setFocusedNode):
72860         (WebCore::Document::addListenerTypeIfNeeded):
72861         (WebCore::Document::removeWindowInlineEventListenerForType):
72862         (WebCore::Document::addWindowEventListener):
72863         (WebCore::Document::removeWindowEventListener):
72864         (WebCore::Document::finishedParsing):
72865         * dom/EventTargetNode.cpp:
72866         (WebCore::EventTargetNode::dispatchGenericEvent):
72867         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
72868         (WebCore::EventTargetNode::dispatchWindowEvent):
72869         (WebCore::EventTargetNode::dispatchUIEvent):
72870         (WebCore::EventTargetNode::dispatchSimulatedClick):
72871         (WebCore::EventTargetNode::dispatchMouseEvent):
72872         (WebCore::EventTargetNode::dispatchFocusEvent):
72873         (WebCore::EventTargetNode::dispatchBlurEvent):
72874         (WebCore::EventTargetNode::defaultEventHandler):
72875         (WebCore::EventTargetNode::on*): (multiple methods)
72876         (WebCore::EventTargetNode::setOn*): (multiple methods)
72877         * dom/KeyboardEvent.cpp:
72878         (WebCore::eventTypeForKeyboardEventType):
72879         (WebCore::KeyboardEvent::keyCode):
72880         (WebCore::KeyboardEvent::charCode):
72881         * dom/MessageEvent.cpp:
72882         (WebCore::MessageEvent::MessageEvent):
72883         * dom/MessagePort.cpp:
72884         (WebCore::MessagePort::dispatchMessages):
72885         (WebCore::MessagePort::dispatchCloseEvent):
72886         * dom/MouseEvent.cpp:
72887         (WebCore::MouseEvent::isDragEvent):
72888         (WebCore::MouseEvent::toElement):
72889         (WebCore::MouseEvent::fromElement):
72890         * dom/OverflowEvent.cpp:
72891         (WebCore::OverflowEvent::OverflowEvent):
72892         * dom/TextEvent.cpp:
72893         (WebCore::TextEvent::TextEvent):
72894         * dom/WebKitAnimationEvent.cpp:
72895         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
72896         (WebCore::WebKitAnimationEvent::~WebKitAnimationEvent):
72897         (WebCore::WebKitAnimationEvent::initWebKitAnimationEvent):
72898         (WebCore::WebKitAnimationEvent::animationName):
72899         (WebCore::WebKitAnimationEvent::elapsedTime):
72900         * dom/WebKitTransitionEvent.cpp:
72901         (WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
72902         (WebCore::WebKitTransitionEvent::~WebKitTransitionEvent):
72903         (WebCore::WebKitTransitionEvent::initWebKitTransitionEvent):
72904         (WebCore::WebKitTransitionEvent::propertyName):
72905         (WebCore::WebKitTransitionEvent::elapsedTime):
72906         * dom/WheelEvent.cpp:
72907         (WebCore::WheelEvent::WheelEvent):
72908         (WebCore::WheelEvent::initWheelEvent):
72909         * dom/XMLTokenizerLibxml2.cpp:
72910         * dom/XMLTokenizerQt.cpp:
72911         * editing/DeleteButton.cpp:
72912         (WebCore::DeleteButton::defaultEventHandler):
72913         * editing/EditCommand.cpp:
72914         * editing/Editor.cpp:
72915         (WebCore::Editor::canDHTMLCut):
72916         (WebCore::Editor::canDHTMLCopy):
72917         (WebCore::Editor::canDHTMLPaste):
72918         (WebCore::Editor::tryDHTMLCopy):
72919         (WebCore::Editor::tryDHTMLCut):
72920         (WebCore::Editor::tryDHTMLPaste):
72921         (WebCore::dispatchEditableContentChangedEvents):
72922         * editing/ReplaceSelectionCommand.cpp:
72923         (WebCore::ReplacementFragment::ReplacementFragment):
72924         * editing/SelectionController.cpp:
72925         (WebCore::SelectionController::setFocused):
72926         * html/HTMLAnchorElement.cpp:
72927         (WebCore::HTMLAnchorElement::defaultEventHandler):
72928         * html/HTMLBodyElement.cpp:
72929         (WebCore::HTMLBodyElement::parseMappedAttribute):
72930         * html/HTMLButtonElement.cpp:
72931         (WebCore::HTMLButtonElement::parseMappedAttribute):
72932         (WebCore::HTMLButtonElement::defaultEventHandler):
72933         * html/HTMLElement.cpp:
72934         (WebCore::HTMLElement::parseMappedAttribute):
72935         * html/HTMLFormControlElement.cpp:
72936         (WebCore::HTMLFormControlElement::onChange):
72937         * html/HTMLFormElement.cpp:
72938         (WebCore::HTMLFormElement::handleLocalEvents):
72939         (WebCore::HTMLFormElement::prepareSubmit):
72940         (WebCore::HTMLFormElement::reset):
72941         (WebCore::HTMLFormElement::parseMappedAttribute):
72942         * html/HTMLFrameElementBase.cpp:
72943         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
72944         * html/HTMLFrameSetElement.cpp:
72945         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
72946         * html/HTMLImageElement.cpp:
72947         (WebCore::HTMLImageElement::parseMappedAttribute):
72948         * html/HTMLImageLoader.cpp:
72949         (WebCore::HTMLImageLoader::dispatchLoadEvent):
72950         * html/HTMLInputElement.cpp:
72951         (WebCore::HTMLInputElement::parseMappedAttribute):
72952         (WebCore::HTMLInputElement::setValueFromRenderer):
72953         (WebCore::HTMLInputElement::preDispatchEventHandler):
72954         (WebCore::HTMLInputElement::postDispatchEventHandler):
72955         (WebCore::HTMLInputElement::defaultEventHandler):
72956         (WebCore::HTMLInputElement::onSearch):
72957         * html/HTMLLabelElement.cpp:
72958         (WebCore::HTMLLabelElement::defaultEventHandler):
72959         * html/HTMLMediaElement.cpp:
72960         (WebCore::HTMLMediaElement::load):
72961         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
72962         (WebCore::HTMLMediaElement::setReadyState):
72963         (WebCore::HTMLMediaElement::progressEventTimerFired):
72964         (WebCore::HTMLMediaElement::seek):
72965         (WebCore::HTMLMediaElement::setDefaultPlaybackRate):
72966         (WebCore::HTMLMediaElement::setPlaybackRate):
72967         (WebCore::HTMLMediaElement::play):
72968         (WebCore::HTMLMediaElement::pause):
72969         (WebCore::HTMLMediaElement::setVolume):
72970         (WebCore::HTMLMediaElement::setMuted):
72971         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
72972         (WebCore::HTMLMediaElement::documentWillBecomeInactive):
72973         * html/HTMLObjectElement.cpp:
72974         (WebCore::HTMLObjectElement::parseMappedAttribute):
72975         * html/HTMLOptionElement.cpp:
72976         * html/HTMLScriptElement.cpp:
72977         (WebCore::HTMLScriptElement::parseMappedAttribute):
72978         (WebCore::HTMLScriptElement::dispatchLoadEvent):
72979         (WebCore::HTMLScriptElement::dispatchErrorEvent):
72980         * html/HTMLSelectElement.cpp:
72981         (WebCore::HTMLSelectElement::parseMappedAttribute):
72982         (WebCore::HTMLSelectElement::defaultEventHandler):
72983         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
72984         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
72985         * html/HTMLTextAreaElement.cpp:
72986         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
72987         (WebCore::HTMLTextAreaElement::defaultEventHandler):
72988         * html/HTMLTokenizer.cpp:
72989         (WebCore::HTMLTokenizer::notifyFinished):
72990         * loader/FrameLoader.cpp:
72991         (WebCore::FrameLoader::stopLoading):
72992         (WebCore::FrameLoader::canCachePage):
72993         * loader/ImageDocument.cpp:
72994         (WebCore::ImageEventListener::handleEvent):
72995         * loader/ImageLoader.cpp:
72996         * loader/MediaDocument.cpp:
72997         (WebCore::MediaDocument::defaultEventHandler):
72998         * loader/appcache/DOMApplicationCache.cpp:
72999         (WebCore::DOMApplicationCache::callCheckingListener):
73000         (WebCore::DOMApplicationCache::callErrorListener):
73001         (WebCore::DOMApplicationCache::callNoUpdateListener):
73002         (WebCore::DOMApplicationCache::callDownloadingListener):
73003         (WebCore::DOMApplicationCache::callProgressListener):
73004         (WebCore::DOMApplicationCache::callUpdateReadyListener):
73005         (WebCore::DOMApplicationCache::callCachedListener):
73006         * page/AccessibilityObject.cpp:
73007         * page/AccessibilityRenderObject.cpp:
73008         (WebCore::AccessibilityRenderObject::mouseButtonListener):
73009         * page/ContextMenuController.cpp:
73010         (WebCore::ContextMenuController::handleContextMenuEvent):
73011         * page/DOMWindow.cpp:
73012         (WebCore::DOMWindow::on*): (multiple methods)
73013         (WebCore::DOMWindow::setOn*): (multiple methods)
73014         * page/EventHandler.cpp:
73015         (WebCore::EventHandler::handleMousePressEvent):
73016         (WebCore::EventHandler::handleMouseDoubleClickEvent):
73017         (WebCore::EventHandler::handleMouseMoveEvent):
73018         (WebCore::EventHandler::handleMouseReleaseEvent):
73019         (WebCore::EventHandler::updateDragAndDrop):
73020         (WebCore::EventHandler::cancelDragAndDrop):
73021         (WebCore::EventHandler::performDragAndDrop):
73022         (WebCore::EventHandler::updateMouseEventTargetNode):
73023         (WebCore::EventHandler::dispatchMouseEvent):
73024         (WebCore::EventHandler::sendContextMenuEvent):
73025         (WebCore::EventHandler::canMouseDownStartSelect):
73026         (WebCore::EventHandler::canMouseDragExtendSelect):
73027         (WebCore::EventHandler::defaultKeyboardEventHandler):
73028         (WebCore::EventHandler::dragSourceMovedTo):
73029         (WebCore::EventHandler::dragSourceEndedAt):
73030         (WebCore::EventHandler::handleDrag):
73031         (WebCore::EventHandler::handleTextInputEvent):
73032         * page/FocusController.cpp:
73033         * page/Frame.cpp:
73034         (WebCore::Frame::sendResizeEvent):
73035         (WebCore::Frame::sendScrollEvent):
73036         * page/Page.cpp:
73037         (WebCore::networkStateChanged):
73038         * page/animation/AnimationBase.cpp:
73039         (WebCore::AnimationBase::updateStateMachine):
73040         (WebCore::AnimationBase::animationTimerCallbackFired):
73041         (WebCore::AnimationBase::primeEventTimers):
73042         * page/animation/ImplicitAnimation.cpp:
73043         (WebCore::ImplicitAnimation::onAnimationEnd):
73044         (WebCore::ImplicitAnimation::sendTransitionEvent):
73045         * page/animation/KeyframeAnimation.cpp:
73046         (WebCore::KeyframeAnimation::onAnimationStart):
73047         (WebCore::KeyframeAnimation::onAnimationIteration):
73048         (WebCore::KeyframeAnimation::onAnimationEnd):
73049         (WebCore::KeyframeAnimation::sendAnimationEvent):
73050         * page/gtk/EventHandlerGtk.cpp:
73051         * page/mac/EventHandlerMac.mm:
73052         (WebCore::isKeyboardOptionTab):
73053         * page/mac/FrameMac.mm:
73054         * page/qt/EventHandlerQt.cpp:
73055         (WebCore::isKeyboardOptionTab):
73056         * plugins/PluginView.cpp:
73057         * plugins/gtk/PluginViewGtk.cpp:
73058         * plugins/qt/PluginViewQt.cpp:
73059         * plugins/win/PluginViewWin.cpp:
73060         (WebCore::PluginView::handleKeyboardEvent):
73061         (WebCore::PluginView::handleMouseEvent):
73062         * rendering/MediaControlElements.cpp:
73063         (WebCore::MediaControlMuteButtonElement::defaultEventHandler):
73064         (WebCore::MediaControlPlayButtonElement::defaultEventHandler):
73065         (WebCore::MediaControlSeekButtonElement::defaultEventHandler):
73066         (WebCore::MediaControlTimelineElement::defaultEventHandler):
73067         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
73068         * rendering/RenderFrameSet.cpp:
73069         (WebCore::RenderFrameSet::userResize):
73070         * rendering/RenderLayer.cpp:
73071         (WebCore::RenderLayer::scrollToOffset):
73072         * rendering/RenderListBox.cpp:
73073         (WebCore::RenderListBox::valueChanged):
73074         * rendering/RenderMedia.cpp:
73075         (WebCore::RenderMedia::forwardEvent):
73076         * rendering/RenderObject.cpp:
73077         * rendering/RenderSlider.cpp:
73078         (WebCore::HTMLSliderThumbElement::defaultEventHandler):
73079         * rendering/RenderTextControl.cpp:
73080         (WebCore::RenderTextControl::forwardEvent):
73081         (WebCore::RenderTextControl::selectionChanged):
73082         * rendering/RenderWidget.cpp:
73083         * rendering/TextControlInnerElements.cpp:
73084         (WebCore::TextControlInnerTextElement::defaultEventHandler):
73085         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
73086         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
73087         * storage/LocalStorageArea.cpp:
73088         (WebCore::LocalStorageArea::dispatchStorageEvent):
73089         * storage/SessionStorageArea.cpp:
73090         (WebCore::SessionStorageArea::dispatchStorageEvent):
73091         * svg/SVGAElement.cpp:
73092         (WebCore::SVGAElement::defaultEventHandler):
73093         * svg/SVGDocument.cpp:
73094         (WebCore::SVGDocument::dispatchZoomEvent):
73095         (WebCore::SVGDocument::dispatchScrollEvent):
73096         * svg/SVGElement.cpp:
73097         (WebCore::SVGElement::parseMappedAttribute):
73098         (WebCore::hasLoadListener):
73099         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
73100         * svg/SVGElementInstance.cpp:
73101         (WebCore::SVGElementInstance::on*): (multiple methods)
73102         (WebCore::SVGElementInstance::setOn*): (multiple methods)
73103         * svg/SVGImageLoader.cpp:
73104         (WebCore::SVGImageLoader::dispatchLoadEvent):
73105         * svg/SVGSVGElement.cpp:
73106         (WebCore::SVGSVGElement::parseMappedAttribute):
73107         * svg/SVGScriptElement.cpp:
73108         (WebCore::SVGScriptElement::dispatchErrorEvent):
73109         * xml/XMLHttpRequest.cpp:
73110         (WebCore::XMLHttpRequest::dispatchReadyStateChangeEvent):
73111         (WebCore::XMLHttpRequest::dispatchAbortEvent):
73112         (WebCore::XMLHttpRequest::dispatchErrorEvent):
73113         (WebCore::XMLHttpRequest::dispatchLoadEvent):
73114         (WebCore::XMLHttpRequest::dispatchLoadStartEvent):
73115         (WebCore::XMLHttpRequest::dispatchProgressEvent):
73116         * xml/XMLHttpRequestUpload.cpp:
73117         (WebCore::XMLHttpRequestUpload::dispatchAbortEvent):
73118         (WebCore::XMLHttpRequestUpload::dispatchErrorEvent):
73119         (WebCore::XMLHttpRequestUpload::dispatchLoadEvent):
73120         (WebCore::XMLHttpRequestUpload::dispatchLoadStartEvent):
73121         (WebCore::XMLHttpRequestUpload::dispatchProgressEvent):
73122         * xml/XPathResult.cpp:
73123         (WebCore::XPathResult::XPathResult):
73124         (WebCore::XPathResult::~XPathResult):
73125         (WebCore::XPathResult::invalidateIteratorState):
73126         Access event names via eventNames() function.
73127
73128 2008-11-04  Cameron Zwarich  <zwarich@apple.com>
73129
73130         Reviewed by Mark Rowe.
73131
73132         Delete unused forwarding headers.
73133
73134         * ForwardingHeaders/kjs/Activation.h: Removed.
73135         * ForwardingHeaders/kjs/Register.h: Removed.
73136         * ForwardingHeaders/kjs/RegisterID.h: Removed.
73137
73138 2008-11-04  Cameron Zwarich  <zwarich@apple.com>
73139
73140         Not reviewed.
73141
73142         Fix stupid typo in previous build fix.
73143
73144         * bindings/js/JSStorageCustom.cpp:
73145         * bindings/scripts/CodeGeneratorJS.pm:
73146         * bridge/NP_jsobject.cpp:
73147
73148 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
73149
73150         Not reviewed.
73151
73152         Fix the build for all non-Mac platforms.
73153
73154         * ForwardingHeaders/kjs/PropertyNameArray.h: Removed.
73155         * ForwardingHeaders/runtime/PropertyNameArray.h: Copied from ForwardingHeaders/kjs/PropertyNameArray.h.
73156         * bindings/js/JSStorageCustom.cpp:
73157         * bindings/scripts/CodeGeneratorJS.pm:
73158         * bridge/NP_jsobject.cpp:
73159
73160 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
73161
73162         Not reviewed.
73163
73164         Fix the wxWindows build.
73165
73166         * bridge/c/c_instance.cpp:
73167
73168 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
73169
73170         Rubber-stamped by Maciej Stachowiak.
73171
73172         Move more files into the runtime subdirectory of JavaScriptCore.
73173
73174         * ForwardingHeaders/kjs/ArgList.h: Removed.
73175         * ForwardingHeaders/kjs/CollectorHeapIterator.h: Removed.
73176         * ForwardingHeaders/kjs/ExecState.h: Removed.
73177         * ForwardingHeaders/kjs/InitializeThreading.h: Removed.
73178         * ForwardingHeaders/kjs/JSGlobalData.h: Removed.
73179         * ForwardingHeaders/kjs/JSLock.h: Removed.
73180         * ForwardingHeaders/kjs/SymbolTable.h: Removed.
73181         * ForwardingHeaders/runtime/ArgList.h: Copied from ForwardingHeaders/kjs/ArgList.h.
73182         * ForwardingHeaders/runtime/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/CollectorHeapIterator.h.
73183         * ForwardingHeaders/runtime/ExecState.h: Copied from ForwardingHeaders/kjs/ExecState.h.
73184         * ForwardingHeaders/runtime/InitializeThreading.h: Copied from ForwardingHeaders/kjs/InitializeThreading.h.
73185         * ForwardingHeaders/runtime/JSGlobalData.h: Copied from ForwardingHeaders/kjs/JSGlobalData.h.
73186         * ForwardingHeaders/runtime/JSLock.h: Copied from ForwardingHeaders/kjs/JSLock.h.
73187         * ForwardingHeaders/runtime/SymbolTable.h: Copied from ForwardingHeaders/kjs/SymbolTable.h.
73188         * bindings/js/GCController.cpp:
73189         * bindings/js/JSCustomPositionCallback.cpp:
73190         * bindings/js/JSCustomPositionErrorCallback.cpp:
73191         * bindings/js/JSCustomSQLStatementCallback.cpp:
73192         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
73193         * bindings/js/JSCustomSQLTransactionCallback.cpp:
73194         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
73195         * bindings/js/JSCustomVoidCallback.cpp:
73196         * bindings/js/JSCustomXPathNSResolver.cpp:
73197         * bindings/js/JSDOMWindowBase.cpp:
73198         * bindings/js/JSEventCustom.cpp:
73199         * bindings/js/JSEventListener.cpp:
73200         * bindings/js/JSNodeFilterCondition.cpp:
73201         * bindings/js/ScheduledAction.cpp:
73202         * bindings/js/ScriptController.cpp:
73203         * bindings/js/ScriptControllerMac.mm:
73204         * bindings/objc/WebScriptObject.mm:
73205         * bridge/NP_jsobject.cpp:
73206         * bridge/c/c_class.cpp:
73207         * bridge/c/c_instance.cpp:
73208         * bridge/c/c_runtime.cpp:
73209         * bridge/c/c_utility.cpp:
73210         * bridge/jni/jni_class.cpp:
73211         * bridge/jni/jni_instance.cpp:
73212         * bridge/jni/jni_jsobject.mm:
73213         * bridge/jni/jni_objc.mm:
73214         * bridge/jni/jni_runtime.cpp:
73215         * bridge/jni/jni_runtime.h:
73216         * bridge/jni/jni_utility.cpp:
73217         * bridge/npruntime.cpp:
73218         * bridge/objc/objc_instance.mm:
73219         * bridge/objc/objc_runtime.mm:
73220         * bridge/objc/objc_utility.mm:
73221         * bridge/runtime.cpp:
73222         * dom/Document.cpp:
73223         * dom/Node.cpp:
73224         * dom/NodeFilter.cpp:
73225         * dom/NodeIterator.cpp:
73226         * dom/TreeWalker.cpp:
73227         * history/CachedPage.cpp:
73228         * inspector/InspectorController.cpp:
73229         * inspector/JavaScriptCallFrame.cpp:
73230         * inspector/JavaScriptCallFrame.h:
73231         * inspector/JavaScriptDebugServer.cpp:
73232         * inspector/JavaScriptProfileNode.cpp:
73233         * loader/FrameLoader.cpp:
73234         * loader/icon/IconDatabase.cpp:
73235         * page/Console.cpp:
73236         * page/Page.cpp:
73237         * page/mac/FrameMac.mm:
73238         * plugins/PluginView.cpp:
73239         * plugins/gtk/PluginViewGtk.cpp:
73240         * plugins/qt/PluginViewQt.cpp:
73241         * plugins/win/PluginViewWin.cpp:
73242         * storage/Database.cpp:
73243         * xml/XMLHttpRequest.cpp:
73244
73245 2008-11-03  Cameron Zwarich  <zwarich@apple.com>
73246
73247         Reviewed by Sam Weinig.
73248
73249         Remove the forwarding header for FunctionCallProfile, because it was
73250         renamed to ProfileNode in r33466.
73251
73252         * ForwardingHeaders/kjs/FunctionCallProfile.h: Removed.
73253
73254 2008-11-03  Simon Fraser  <simon.fraser@apple.com>
73255
73256         Reviewed by Dave Hyatt
73257
73258         https://bugs.webkit.org/show_bug.cgi?id=22026
73259
73260         When computing the bounds of the transparency layer, we need to
73261         map the clipRect through the enclosing transform.
73262
73263         Test: fast/layers/opacity-transforms.html
73264
73265         * rendering/RenderLayer.cpp:
73266         (WebCore::transparencyClipBox):
73267
73268 2008-11-03  Kevin Decker  <kdecker@apple.com>
73269
73270         Reviewed by Anders Carlsson.
73271
73272         https://bugs.webkit.org/show_bug.cgi?id=22053
73273
73274         Added additional support needed for the NPDrawingModelCoreAnimation drawing model.
73275
73276         * bridge/npapi.h:
73277
73278 2008-11-03  Xan Lopez  <xan@gnome.org>
73279
73280         Reviewed by Alp Toker.
73281
73282         Update parseDataUrl() function in the libsoup http backend with
73283         the one from the curl backend which has recent correctness and crash
73284         fixes.
73285
73286         * platform/network/soup/ResourceHandleSoup.cpp:
73287         (WebCore::parseDataUrl):
73288
73289 2008-11-03  Holger Hans Peter Freyther  <zecke@selfish.org>
73290
73291         Reviewed by Alp Toker.
73292
73293         https://bugs.webkit.org/show_bug.cgi?id=22041
73294         Fix CURL crashes on the test suite
73295
73296         Fix segfault with setDefersLoading(). Do not call into curl when we
73297         don't have a CURL handle.
73298
73299         It is attempted to defer the loading before the load has been
73300         started (no curl handle was allocated yet). If that happens then
73301         just remember that. ResourceHandleManager::startJob is already taking
73302         care of this and in initResourceHandle the the downloading will
73303         be paused if needed.
73304
73305         Fixes fast/loader/simultaneous-reloads-assert.html
73306
73307         * platform/network/curl/ResourceHandleCurl.cpp:
73308         (WebCore::ResourceHandle::setDefersLoading):
73309
73310 2008-11-03  Holger Hans Peter Freyther  <zecke@selfish.org>
73311
73312         Reviewed by Alp Toker.
73313
73314         https://bugs.webkit.org/show_bug.cgi?id=22041
73315         Fix CURL crashes on the test suite
73316
73317         Do not send "no data" to WebCore in parseDataUrl().
73318
73319         Fixes assert on fast/tokenizer/image-empty-crash.html
73320
73321         * platform/network/curl/ResourceHandleManager.cpp:
73322         (WebCore::parseDataUrl):
73323
73324 2008-11-02  Xan Lopez  <xan@gnome.org>
73325
73326         Reviewed by Holger Freyther.
73327
73328         https://bugs.webkit.org/show_bug.cgi?id=22009
73329         HTML5 Video with GStreamer pulls gnome-vfs without using it
73330
73331         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
73332         Remove gnome-vfs include.
73333
73334 2008-11-01  Adam Barth  <abarth@webkit.org>
73335
73336         Reviewed by Sam Weinig.
73337
73338         Be sure to check the final URLs of requested resources to make sure we
73339         don't get fooled by HTTP redirects.
73340
73341         https://bugs.webkit.org/show_bug.cgi?id=21963
73342
73343         Tests: http/tests/security/xss-DENIED-xsl-document-redirect.xml
73344                http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml
73345
73346         * dom/XMLTokenizerLibxml2.cpp:
73347         (WebCore::openFunc):
73348         * loader/DocLoader.cpp:
73349         (WebCore::DocLoader::canRequest):
73350         (WebCore::DocLoader::requestResource):
73351         * loader/DocLoader.h:
73352         * xml/XSLTProcessor.cpp:
73353         (WebCore::docLoaderFunc):
73354
73355 2008-11-01  Alexey Proskuryakov  <ap@webkit.org>
73356
73357         Reviewed by Darin Adler.
73358
73359         https://bugs.webkit.org/show_bug.cgi?id=22001
73360         AtomicStringImpl* keys of event listener maps can outlive their strings
73361
73362         Test: fast/events/destroyed-atomic-string.html
73363
73364         * dom/MessagePort.cpp:
73365         (WebCore::MessagePort::addEventListener):
73366         (WebCore::MessagePort::removeEventListener):
73367         (WebCore::MessagePort::dispatchEvent):
73368         * dom/MessagePort.h:
73369         * loader/appcache/DOMApplicationCache.cpp:
73370         (WebCore::DOMApplicationCache::addEventListener):
73371         (WebCore::DOMApplicationCache::removeEventListener):
73372         (WebCore::DOMApplicationCache::dispatchEvent):
73373         * loader/appcache/DOMApplicationCache.h:
73374         * xml/XMLHttpRequest.cpp:
73375         (WebCore::XMLHttpRequest::addEventListener):
73376         (WebCore::XMLHttpRequest::removeEventListener):
73377         (WebCore::XMLHttpRequest::dispatchEvent):
73378         * xml/XMLHttpRequest.h:
73379         * xml/XMLHttpRequestUpload.cpp:
73380         (WebCore::XMLHttpRequestUpload::addEventListener):
73381         (WebCore::XMLHttpRequestUpload::removeEventListener):
73382         (WebCore::XMLHttpRequestUpload::dispatchEvent):
73383         * xml/XMLHttpRequestUpload.h:
73384         Changed EventListenersMap to use AtomicString as key (instead of AtomicStringImpl*).
73385
73386 2008-10-31  Alexey Proskuryakov  <ap@webkit.org>
73387
73388         Reviewed by Darin Adler.
73389
73390         https://bugs.webkit.org/show_bug.cgi?id=21998
73391         Use JSDOMGlobalObject in EventListener-related bindings
73392
73393         * dom/MessagePort.idl: Auto-generate bindings for onclose and onmessage.
73394
73395         * bindings/scripts/CodeGeneratorJS.pm: Use JSDOMGlobalObject instead of JSDOMWindow in JS
73396         bindings for inline event handlers.
73397
73398         * bindings/js/JSDOMApplicationCacheCustom.cpp:
73399         (WebCore::JSDOMApplicationCache::addEventListener):
73400         (WebCore::JSDOMApplicationCache::removeEventListener):
73401         * bindings/js/JSEventTargetNodeCustom.cpp:
73402         (WebCore::JSEventTargetNode::addEventListener):
73403         (WebCore::JSEventTargetNode::removeEventListener):
73404         * bindings/js/JSMessagePortCustom.cpp:
73405         (WebCore::JSMessagePort::removeEventListener):
73406         * bindings/js/JSSVGElementInstanceCustom.cpp:
73407         (WebCore::JSSVGElementInstance::addEventListener):
73408         (WebCore::JSSVGElementInstance::removeEventListener):
73409         * bindings/js/JSXMLHttpRequestCustom.cpp:
73410         (WebCore::JSXMLHttpRequest::addEventListener):
73411         (WebCore::JSXMLHttpRequest::removeEventListener):
73412         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
73413         (WebCore::JSXMLHttpRequestUpload::addEventListener):
73414         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
73415         Use ScriptExecutionContext and JSDOMGlobalObject in bindings.
73416
73417         * dom/EventTarget.h:
73418         * dom/EventTargetNode.cpp:
73419         (WebCore::EventTargetNode::scriptExecutionContext):
73420         * dom/EventTargetNode.h:
73421         * dom/MessagePort.cpp:
73422         * dom/MessagePort.h:
73423         (WebCore::MessagePort::scriptExecutionContext):
73424         * loader/appcache/DOMApplicationCache.cpp:
73425         (WebCore::DOMApplicationCache::scriptExecutionContext):
73426         * loader/appcache/DOMApplicationCache.h:
73427         * svg/SVGElementInstance.cpp:
73428         (WebCore::SVGElementInstance::scriptExecutionContext):
73429         * svg/SVGElementInstance.h:
73430         * xml/XMLHttpRequest.cpp:
73431         (WebCore::XMLHttpRequest::scriptExecutionContext):
73432         * xml/XMLHttpRequest.h:
73433         * xml/XMLHttpRequestUpload.cpp:
73434         (WebCore::XMLHttpRequestUpload::scriptExecutionContext):
73435         * xml/XMLHttpRequestUpload.h:
73436         Remove associatedFrame() method, and provide scriptExecutionContext() where it wasn't
73437         available yet.
73438
73439 2008-10-31  Cameron Zwarich  <zwarich@apple.com>
73440
73441         Rubber-stamped by Geoff Garen.
73442
73443         Rename SourceRange.h to SourceCode.h.
73444
73445         * ForwardingHeaders/kjs/SourceCode.h: Copied from ForwardingHeaders/kjs/SourceRange.h.
73446         * ForwardingHeaders/kjs/SourceRange.h: Removed.
73447         * bindings/js/StringSourceProvider.h:
73448         * bridge/NP_jsobject.cpp:
73449
73450 2008-10-31  Cameron Zwarich  <zwarich@apple.com>
73451
73452         Reviewed by Darin Adler.
73453
73454         Bug 22019: Move JSC::Interpreter::shouldPrintExceptions() to WebCore::Console
73455         <https://bugs.webkit.org/show_bug.cgi?id=22019>
73456
73457         * WebCore.base.exp:
73458         * page/Console.cpp:
73459         (WebCore::printToStandardOut):
73460         (WebCore::Console::shouldPrintExceptions):
73461         (WebCore::Console::setShouldPrintExceptions):
73462         * page/Console.h:
73463
73464 2008-10-31  Dan Bernstein  <mitz@apple.com>
73465
73466         Reviewed by John Sullivan.
73467
73468         - WebCore part of <rdar://problem/6334641> Add WebView SPI for disabling document.cookie
73469
73470         * dom/Document.cpp:
73471         (WebCore::Document::cookie): Added checking if cookies are disabled.
73472         (WebCore::Document::setCookie): Ditto.
73473         * page/Navigator.cpp:
73474         (WebCore::Navigator::cookieEnabled): Ditto.
73475         * page/Page.cpp:
73476         (WebCore::Page::Page): Initialize m_cookieEnabled to true.
73477         * page/Page.h:
73478         (WebCore::Page::cookieEnabled): Added.
73479         (WebCore::Page::setCookieEnabled): Added.
73480
73481 2008-10-31  Adele Peterson  <adele@apple.com>
73482
73483         Reviewed by Darin Adler.
73484
73485         WebCore Windows part of fix for <rdar://problem/5839256> FILE CONTROL: multi-file upload.
73486         https://bugs.webkit.org/show_bug.cgi?id=22008
73487
73488         * platform/FileChooser.cpp: (WebCore::FileChooser::chooseIcon):
73489         Rename newIconForFile and newIconForFiles to createIconForFile and createIconForFiles.
73490         * platform/graphics/Icon.h: ditto.
73491         * platform/graphics/gtk/IconGtk.cpp:
73492         (WebCore::Icon::createIconForFile): ditto.
73493         (WebCore::Icon::createIconForFiles): ditto.
73494         * platform/graphics/mac/IconMac.mm:
73495         (WebCore::Icon::createIconForFile): ditto.
73496         (WebCore::Icon::createIconForFiles): ditto.
73497         * platform/graphics/qt/IconQt.cpp:
73498         (WebCore::Icon::createIconForFile): ditto.
73499         (WebCore::Icon::createIconForFiles): ditto.
73500         * platform/wx/TemporaryLinkStubs.cpp:
73501         (Icon::createIconForFile): ditto.
73502         (Icon::createIconForFiles): ditto.
73503         * platform/graphics/win/IconWin.cpp:
73504         (WebCore::Icon::createIconForFile): ditto.
73505         (WebCore::Icon::createIconForFiles): Add creation of an icon for multiple files.
73506
73507         * rendering/RenderThemeWin.cpp: (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
73508         Improve icon creation code to match new code in Icon::createIconForFiles
73509
73510 2008-10-31  Timothy Hatcher  <timothy@apple.com>
73511
73512         Add manual tests that check breakpoints on a blockless body of "for" loops.
73513
73514         https://bugs.webkit.org/show_bug.cgi?id=22004
73515
73516         Reviewed by Darin Adler.
73517
73518         * manual-tests/inspector/debugger-pause-on-for-in-statements.html: Added.
73519         * manual-tests/inspector/debugger-pause-on-for-statements.html: Added.
73520
73521 2008-10-31  Darin Adler  <darin@apple.com>
73522
73523         - fix build
73524
73525         * platform/win/WCDataObject.cpp: Added missing include of "config.h".
73526
73527 2008-10-30  Alexey Proskuryakov  <ap@webkit.org>
73528
73529         Reviewed by Darin Adler.
73530
73531         https://bugs.webkit.org/show_bug.cgi?id=21970
73532         Make MessagePort event dispatch work in workers
73533
73534         * bindings/js/JSDOMGlobalObject.cpp:
73535         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
73536         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
73537         (WebCore::JSDOMGlobalObject::findJSEventListener):
73538         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
73539         (WebCore::JSDOMGlobalObject::findJSUnprotectedEventListener):
73540         (WebCore::JSDOMGlobalObject::findOrCreateJSUnprotectedEventListener):
73541         (WebCore::JSDOMGlobalObject::jsEventListeners):
73542         (WebCore::JSDOMGlobalObject::jsInlineEventListeners):
73543         (WebCore::JSDOMGlobalObject::jsUnprotectedEventListeners):
73544         (WebCore::JSDOMGlobalObject::jsUnprotectedInlineEventListeners):
73545         (WebCore::JSDOMGlobalObject::setCurrentEvent):
73546         (WebCore::JSDOMGlobalObject::currentEvent):
73547         (WebCore::toJSDOMGlobalObject):
73548         * bindings/js/JSDOMGlobalObject.h:
73549         * bindings/js/JSDOMWindowBase.cpp:
73550         (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
73551         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
73552         (WebCore::JSDOMWindowBase::clearHelperObjectProperties):
73553         * bindings/js/JSDOMWindowBase.h:
73554         Moved event listener tracking from JSDOMWindow to JSDOMGlobalObject.
73555
73556         * bindings/js/JSEventListener.cpp:
73557         (WebCore::JSAbstractEventListener::handleEvent):
73558         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
73559         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
73560         (WebCore::JSUnprotectedEventListener::globalObject):
73561         (WebCore::JSUnprotectedEventListener::clearGlobalObject):
73562         (WebCore::JSEventListener::JSEventListener):
73563         (WebCore::JSEventListener::~JSEventListener):
73564         (WebCore::JSEventListener::globalObject):
73565         (WebCore::JSEventListener::clearGlobalObject):
73566         (WebCore::JSLazyEventListener::JSLazyEventListener):
73567         (WebCore::JSLazyEventListener::parseCode):
73568         * bindings/js/JSEventListener.h:
73569         (WebCore::JSUnprotectedEventListener::create):
73570         (WebCore::JSEventListener::create):
73571         (WebCore::JSLazyEventListener::create):
73572         Changed to use JSDOMGlobalObject and ScriptExecutionContext.
73573
73574         * bindings/js/JSMessagePortCustom.cpp:
73575         (WebCore::JSMessagePort::startConversation):
73576         (WebCore::JSMessagePort::addEventListener):
73577         (WebCore::JSMessagePort::removeEventListener):
73578         (WebCore::JSMessagePort::setOnmessage):
73579         (WebCore::JSMessagePort::setOnclose):
73580         Updated bindings to work with JSDOMGlobalObject. Next step is to make code generator emit
73581         such code, and stop using a custom implementation for JSMessagePort inline event handler
73582         getters and setters.
73583
73584         * dom/Document.cpp:
73585         (WebCore::Document::virtualURL):
73586         * dom/Document.h:
73587         * dom/ScriptExecutionContext.h:
73588         Expose url() method on ScriptExecutionContext (necessary for compiling scripts in
73589         JSLazyEventListener).
73590
73591 2008-10-31  Cameron Zwarich  <zwarich@apple.com>
73592
73593         Not reviewed.
73594
73595         Speculative wxWindows build fix.
73596
73597         * webcore-base.bkl:
73598
73599 2008-10-30  Mark Rowe  <mrowe@apple.com>
73600
73601         Reviewed by Jon Homeycutt.
73602
73603         Explicitly default to building for only the native architecture in debug and release builds.
73604
73605         * Configurations/DebugRelease.xcconfig:
73606
73607 2008-10-30  Cameron Zwarich  <zwarich@apple.com>
73608
73609         Rubber-stamped by Sam Weinig.
73610
73611         Create a debugger directory in JavaScriptCore and move the relevant
73612         files to it.
73613
73614         * ForwardingHeaders/debugger: Added.
73615         * ForwardingHeaders/debugger/Debugger.h: Copied from ForwardingHeaders/kjs/debugger.h.
73616         * ForwardingHeaders/debugger/DebuggerCallFrame.h: Copied from ForwardingHeaders/kjs/DebuggerCallFrame.h.
73617         * ForwardingHeaders/kjs/DebuggerCallFrame.h: Removed.
73618         * ForwardingHeaders/kjs/debugger.h: Removed.
73619         * WebCore.pro:
73620         * bindings/js/ScriptController.cpp:
73621         * inspector/JavaScriptCallFrame.cpp:
73622         * inspector/JavaScriptCallFrame.h:
73623         * inspector/JavaScriptDebugServer.cpp:
73624         * inspector/JavaScriptDebugServer.h:
73625
73626 2008-10-30  Tony Chang <tony@chromium.org>
73627
73628         Fix 2 Windows theme bugs:
73629         1) Checkboxes marked readonly were rendered incorrectly
73630         2) If a button has focus and is pressed, it was rendered
73631            as focused rather than pressed.
73632
73633         https://bugs.webkit.org/show_bug.cgi?id=21859
73634
73635         Reviewed by Dave Hyatt.
73636
73637         * rendering/RenderThemeWin.cpp:
73638         (WebCore::RenderThemeWin::determineState):
73639         (WebCore::RenderThemeWin::determineButtonState):
73640
73641 2008-10-30  Benjamin K. Stuhl  <bks24@cornell.edu>
73642
73643         gcc 4.3.3/linux-x86 generates "suggest parentheses around && within ||"
73644         warnings; add some parentheses to disambiguate things. No functional
73645         changes, so no tests.
73646
73647         https://bugs.webkit.org/show_bug.cgi?id=21973
73648         Add parentheses to clean up some gcc warnings
73649
73650         Reviewed by Dan Bernstein.
73651
73652         * platform/graphics/Font.h:
73653         (WebCore::Font::treatAsZeroWidthSpace):
73654
73655 2008-10-30  Aaron Boodman  <aa@chromium.org>
73656
73657         Added an explicit dependency on HashMap.h. It was getting pulled in via
73658         <kjs/identifier.h> in the case of JSC, causing errors for the Chromium port.
73659
73660         Reviewed by Darin Adler.
73661
73662         * platform/text/PlatformString.h:
73663
73664 2008-10-30  Greg Bolsinga  <bolsinga@apple.com>
73665
73666         Reviewed by Sam Weinig
73667
73668         https://bugs.webkit.org/show_bug.cgi?id=21967
73669
73670         For some platforms the GeolocationService must be suspended and resumed.
73671
73672         * page/Geolocation.cpp:
73673         (WebCore::Geolocation::clearWatch): now uses Geolocation::hasListeners()
73674         (WebCore::Geolocation::suspend): calls GeolocationService::suspend() if there are listeners
73675         (WebCore::Geolocation::resume): calls GeolocationService::resume() if there are listeners
73676         (WebCore::Geolocation::geolocationServicePositionChanged): now uses Geolocation::hasListeners()
73677         * page/Geolocation.h:
73678         (WebCore::Geolocation::hasListeners): Indicates of the Geolocation has interested GeolocationService listeners
73679         * platform/GeolocationService.h:
73680         (WebCore::GeolocationService::suspend): empty implementation
73681         (WebCore::GeolocationService::resume): empty implementation
73682
73683 2008-10-30  Greg Bolsinga  <bolsinga@apple.com>
73684
73685         Reviewed by Sam Weinig
73686
73687         https://bugs.webkit.org/show_bug.cgi?id=21966
73688
73689         The Geolocation spec was updated on 10/27/2008. This brings WebCore up to date.
73690         http://dev.w3.org/geo/api/spec-source.html
73691
73692         * page/Geolocation.cpp:
73693         (WebCore::Geolocation::GeoNotifier::GeoNotifier): PositionOptions' timeout now unsigned
73694         * page/Geoposition.cpp: velocity is now called speed
73695         (WebCore::Geoposition::toString):
73696         * page/Geoposition.h: velocity is now called speed
73697         (WebCore::Geoposition::create):
73698         (WebCore::Geoposition::speed):
73699         (WebCore::Geoposition::Geoposition):
73700         * page/Geoposition.idl: velocity is now called speed
73701         * page/PositionOptions.h: timeout is now unsigned
73702         (WebCore::PositionOptions::create):
73703         (WebCore::PositionOptions::timeout):
73704         (WebCore::PositionOptions::setTimeout):
73705         (WebCore::PositionOptions::PositionOptions):
73706         * page/PositionOptions.idl: timeout is now unsigned long
73707
73708 2008-10-30  Justin Garcia  <justin.garcia@apple.com>
73709
73710         Also handle preserved newlines.
73711
73712         * editing/BreakBlockquoteCommand.cpp:
73713         (WebCore::BreakBlockquoteCommand::doApply):
73714
73715 2008-10-30  Justin Garcia  <justin.garcia@apple.com>
73716
73717         Reviewed by Beth Dakin.
73718
73719         <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
73720
73721         * editing/BreakBlockquoteCommand.cpp:
73722         (WebCore::BreakBlockquoteCommand::doApply):
73723         Don't store the endingSelection() in selection, just call endingSelection() in the few places it's
73724         needed.  This function is cheap since it just returns a reference to a Selection instead of creating one.
73725         Don't store an affinity.  In the one place that it was used, isLastVisiblePositionInNode(VisiblePosition(pos, affinity), topBlockquote),
73726         we now use visiblePos (in order to avoid VisiblePosition creation).
73727         Set pos after we delete the current selection (if there is one), and be consistent about what we set
73728         pos to.  Before, we upstream()ed it if there was a selection to delete and left it alone otherwise.  In fact...
73729         ...we need to use downstream() for pos so that when a caret is at the boundary between two nodes, pos is
73730         in the first node that we want to move.  This fixes the bug, since it lets code that checks for the case
73731         where the caret is between text and a br work correctly.
73732
73733 2008-10-30  Yael Aharon  <yael.aharon@nokia.com>
73734
73735         Reviewed by Darin Adler.
73736
73737         Fix the Qt build.
73738
73739         https://bugs.webkit.org/show_bug.cgi?id=21969
73740
73741         * inspector/front-end/WebKit.qrc:
73742         * platform/graphics/qt/ImageBufferQt.cpp:
73743         (WebCore::ImageBufferData::ImageBufferData):
73744         (WebCore::ImageBuffer::ImageBuffer):
73745         (WebCore::ImageBuffer::context):
73746         (WebCore::ImageBuffer::image):
73747         (WebCore::ImageBuffer::toDataURL):
73748
73749 2008-10-30  Justin Garcia  <justin.garcia@apple.com>
73750
73751         Reviewed by Darin Adler.
73752
73753         More preparation for:
73754         <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
73755
73756         * editing/BreakBlockquoteCommand.cpp:
73757         (WebCore::BreakBlockquoteCommand::doApply): Added comments.  Don't need to use newStartNode.  If the
73758         startNode needs to change, change it.  Afterwords, check to make sure that it hasn't left topBlockquote.
73759         This is slightly stricter than before, where we just made sure that it still had a topBlockquote.  This
73760         doesn't really fix a bug, since we can't really get into a situation where we move to a different
73761         topBlockquote, but it simplifies the code.
73762
73763 2008-10-30  Dirk Schulze  <vbs85@gmx.de>
73764
73765         Reviewed by Alp Toker.
73766
73767         https://bugs.webkit.org/show_bug.cgi?id=21883
73768         [CAIRO] globalAlpha has to be stored and restored
73769
73770         Cairo's globalAlpha has to be stored and reloaded on calling
73771         save() and restore(). We use the power of GraphicsContextState for this.
73772
73773         * platform/graphics/GraphicsContextPrivate.h:
73774         (WebCore::GraphicsContextState::GraphicsContextState):
73775         * platform/graphics/cairo/GraphicsContextCairo.cpp:
73776         (WebCore::GraphicsContext::fillPath):
73777         (WebCore::GraphicsContext::strokePath):
73778         (WebCore::GraphicsContext::setAlpha):
73779         (WebCore::GraphicsContext::getAlpha):
73780         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
73781         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
73782
73783 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
73784
73785         Reviewed by Maciej Stachowiak.
73786
73787         Rename "attachedToEventTargetNode" to "isInline".
73788
73789         Inline (onXXX) attributes are used not just with event target nodes, but also with Window,
73790         XMLHttpRequest, MessagePort et al.
73791
73792         Also renamed createHTMLEventHandler() (which was a leftover from earlier isHTMLEvent ->
73793         attachedToEventTargetNode rename made for SVG) to createInlineEventListener().
73794         And also renamed EventTargetNode, Document and Window "eventListenerForType" methods to
73795         "inlineEventListenerForType", as they work with inline listeners.
73796
73797         * bindings/js/JSDOMApplicationCacheCustom.cpp:
73798         (WebCore::JSDOMApplicationCache::addEventListener):
73799         (WebCore::JSDOMApplicationCache::removeEventListener):
73800         * bindings/js/JSMessagePortCustom.cpp:
73801         (WebCore::JSMessagePort::setOnmessage):
73802         (WebCore::JSMessagePort::setOnclose):
73803         * bindings/js/JSXMLHttpRequestCustom.cpp:
73804         (WebCore::JSXMLHttpRequest::addEventListener):
73805         (WebCore::JSXMLHttpRequest::removeEventListener):
73806         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
73807         (WebCore::JSXMLHttpRequestUpload::addEventListener):
73808         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
73809         Pass a correct value for this argument - callers used to be confused, because they didn't
73810         consider themselves event target nodes. This doesn't affect behavior however, as the only
73811         difference between inline and non-inline event handlers is that the former treat
73812         "return false" as "event.preventDefault()", which is not important to any of these objects.
73813
73814         * bindings/js/JSEventListener.cpp: (WebCore::JSLazyEventListener::parseCode):
73815         Assert that isInline is true instead of checking its value, as the constructor of this class
73816         always sets it to true.
73817
73818         * bindings/js/JSDOMWindowBase.cpp:
73819         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
73820         (WebCore::JSDOMWindowBase::findJSEventListener):
73821         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
73822         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
73823         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
73824         (WebCore::JSDOMWindowBase::jsInlineEventListeners):
73825         (WebCore::JSDOMWindowBase::jsUnprotectedInlineEventListeners):
73826         * bindings/js/JSDOMWindowBase.h:
73827         * bindings/js/JSEventListener.cpp:
73828         (WebCore::JSAbstractEventListener::handleEvent):
73829         (WebCore::JSAbstractEventListener::isInline):
73830         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
73831         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
73832         (WebCore::JSEventListener::JSEventListener):
73833         (WebCore::JSEventListener::~JSEventListener):
73834         (WebCore::JSLazyEventListener::parseCode):
73835         * bindings/js/JSEventListener.h:
73836         (WebCore::JSAbstractEventListener::JSAbstractEventListener):
73837         (WebCore::JSUnprotectedEventListener::create):
73838         (WebCore::JSEventListener::create):
73839         * bindings/js/ScriptController.cpp:
73840         (WebCore::ScriptController::createInlineEventHandler):
73841         * bindings/js/ScriptController.h:
73842         * dom/Document.cpp:
73843         (WebCore::Document::setWindowInlineEventListenerForType):
73844         (WebCore::Document::windowInlineEventListenerForType):
73845         (WebCore::Document::removeWindowInlineEventListenerForType):
73846         (WebCore::Document::createEventListener):
73847         (WebCore::Document::setWindowInlineEventListenerForTypeAndAttribute):
73848         * dom/Document.h:
73849         * dom/EventListener.h:
73850         (WebCore::EventListener::isInline):
73851         * dom/EventTargetNode.cpp:
73852         (WebCore::EventTargetNode::removeInlineEventListenerForType):
73853         (WebCore::EventTargetNode::setInlineEventListenerForType):
73854         (WebCore::EventTargetNode::setInlineEventListenerForTypeAndAttribute):
73855         (WebCore::EventTargetNode::inlineEventListenerForType):
73856         (WebCore::EventTargetNode::on*): (many methods)
73857         (WebCore::EventTargetNode::setOn*): (many methods)
73858         * dom/EventTargetNode.h:
73859         * editing/ReplaceSelectionCommand.cpp:
73860         (WebCore::ReplacementFragment::ReplacementFragment):
73861         * html/HTMLBodyElement.cpp:
73862         (WebCore::HTMLBodyElement::parseMappedAttribute):
73863         * html/HTMLButtonElement.cpp:
73864         (WebCore::HTMLButtonElement::parseMappedAttribute):
73865         * html/HTMLElement.cpp:
73866         (WebCore::HTMLElement::parseMappedAttribute):
73867         * html/HTMLFormElement.cpp:
73868         (WebCore::HTMLFormElement::parseMappedAttribute):
73869         * html/HTMLFrameElementBase.cpp:
73870         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
73871         * html/HTMLFrameSetElement.cpp:
73872         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
73873         * html/HTMLImageElement.cpp:
73874         (WebCore::HTMLImageElement::parseMappedAttribute):
73875         * html/HTMLInputElement.cpp:
73876         (WebCore::HTMLInputElement::parseMappedAttribute):
73877         * html/HTMLObjectElement.cpp:
73878         (WebCore::HTMLObjectElement::parseMappedAttribute):
73879         * html/HTMLScriptElement.cpp:
73880         (WebCore::HTMLScriptElement::parseMappedAttribute):
73881         * html/HTMLSelectElement.cpp:
73882         (WebCore::HTMLSelectElement::parseMappedAttribute):
73883         * html/HTMLTextAreaElement.cpp:
73884         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
73885         * page/AccessibilityRenderObject.cpp:
73886         (WebCore::AccessibilityRenderObject::mouseButtonListener):
73887         * page/DOMWindow.cpp:
73888         (WebCore::DOMWindow::setInlineEventListenerForType):
73889         (WebCore::DOMWindow::inlineEventListenerForType):
73890         (WebCore::DOMWindow::on*): (many methods)
73891         (WebCore::DOMWindow::setOn*): (many methods)
73892         * page/DOMWindow.h:
73893         * svg/SVGElement.cpp:
73894         (WebCore::SVGElement::parseMappedAttribute):
73895         * svg/SVGElementInstance.cpp:
73896         (WebCore::SVGElementInstance::on*): (many methods)
73897         (WebCore::SVGElementInstance::setOn*): (many methods)
73898         * svg/SVGSVGElement.cpp:
73899         (WebCore::SVGSVGElement::parseMappedAttribute):
73900         Rename things, as described above.
73901
73902 2008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
73903
73904         Reviewed and slightly changed by Holger Freyther.
73905
73906         Added all the files that need to be installed for the Inspector to
73907         work.
73908
73909         * GNUmakefile.am: Invoke the shell to get the files.
73910
73911 2008-10-29  Andrew Scherkus  <scherkus@chromium.org>
73912
73913         Reviewed by Darin Adler
73914
73915         Add MediaPlayerPrivateChromium to MediaPlayer
73916         https://bugs.webkit.org/show_bug.cgi?id=21930
73917
73918         * platform/graphics/MediaPlayer.cpp:
73919
73920 2008-10-29  Justin Garcia  <justin.garcia@apple.com>
73921
73922         Reviewed by Darin Adler.
73923
73924         Some preparation for:
73925         <rdar://problem/6104369> Hitting return at the end of a quoted line creates an extraneous quoted line
73926
73927         Added an early return to avoid a level of if-nesting.  No other changes.  We probably don't
73928         need to rebalance whitespace before the early return but for now don't risk any change in behavior
73929         I'll revisit that later.
73930
73931         * editing/BreakBlockquoteCommand.cpp:
73932         (WebCore::BreakBlockquoteCommand::doApply):
73933
73934 2008-10-29  Kevin Ollivier  <kevino@theolliviers.com>
73935
73936         wx build fixes after addition of runtime and ImageBuffer changes.
73937
73938         * platform/graphics/wx/ImageBufferData.h: Added.
73939         * platform/graphics/wx/ImageBufferWx.cpp:
73940         (WebCore::ImageBufferData::ImageBufferData):
73941         (WebCore::ImageBuffer::ImageBuffer):
73942         (WebCore::ImageBuffer::context):
73943         * webcore-base.bkl:
73944
73945 2008-10-29  Brett Wilson  <brettw@chromium.org>
73946
73947         Reviewed by Darin Adler
73948         https://bugs.webkit.org/attachment.cgi?id=24745
73949
73950         Allow Skia implementations to get text style changed notifications.
73951
73952         * platform/graphics/GraphicsContext.cpp:
73953
73954 2008-10-29  Timothy Hatcher  <timothy@apple.com>
73955
73956         Add a manual test that checks breakpoints on a blockless body of
73957         an "else" statement.
73958
73959         https://bugs.webkit.org/show_bug.cgi?id=21944
73960
73961         Reviewed by Maciej Stachowiak.
73962
73963         * manual-tests/inspector/debugger-pause-on-else-statements.html: Added.
73964
73965 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
73966
73967         Reviewed by Darin Adler.
73968
73969         https://bugs.webkit.org/show_bug.cgi?id=21921
73970         MessagePort messages are dispatched to documents that are not fully active
73971
73972         Covered by corrected fast/events/message-port-inactive-document.html
73973
73974         * bindings/js/JSEventListener.cpp:
73975         (WebCore::JSAbstractEventListener::handleEvent): Don't dispatch messages to contexts
73976         that are not fully active.
73977
73978 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
73979
73980         Reviewed by Sam Weinig.
73981
73982         https://bugs.webkit.org/show_bug.cgi?id=21922
73983         Expose MessagePort global constructor
73984
73985         Covered by existing dumper tests.
73986
73987         * dom/MessagePort.idl:
73988         * page/DOMWindow.idl:
73989
73990 2008-10-29  Alexey Proskuryakov  <ap@webkit.org>
73991
73992         Reviewed by Darin Adler.
73993
73994         https://bugs.webkit.org/show_bug.cgi?id=21924
73995         HashTable internal index is not always deleted
73996
73997         * bindings/js/JSDOMBinding.cpp: (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
73998         Call deleteTable for HashTables that are being deleted.
73999
74000 2008-10-28  Alexey Proskuryakov  <ap@webkit.org>
74001
74002         Reviewed by Darin Adler.
74003
74004         https://bugs.webkit.org/show_bug.cgi?id=21923
74005         Create an abstraction for script execution context
74006
74007         * GNUmakefile.am:
74008         * WebCore.pro:
74009         * WebCore.vcproj/WebCore.vcproj:
74010         * WebCore.xcodeproj/project.pbxproj:
74011         * WebCoreSources.bkl:
74012         Added ScriptExecutionContext.{h,cpp}.
74013
74014         * bindings/js/JSAudioConstructor.cpp:
74015         (WebCore::JSAudioConstructor::JSAudioConstructor):
74016         * bindings/js/JSAudioConstructor.h:
74017         * bindings/js/JSImageConstructor.cpp:
74018         (WebCore::JSImageConstructor::JSImageConstructor):
74019         * bindings/js/JSImageConstructor.h:
74020         * bindings/js/JSOptionConstructor.cpp:
74021         (WebCore::JSOptionConstructor::JSOptionConstructor):
74022         * bindings/js/JSOptionConstructor.h:
74023         * bindings/js/JSXMLHttpRequestConstructor.cpp:
74024         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
74025         * bindings/js/JSXMLHttpRequestConstructor.h:
74026         Pass ScriptExecutionContext instead of Document to make getDOMConstructor() happy.
74027         Since these objects can only work within documents now, it is immediately converted back
74028         to Document.
74029
74030         * bindings/js/JSMessageChannelConstructor.cpp:
74031         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
74032         (WebCore::JSMessageChannelConstructor::construct):
74033         * bindings/js/JSMessageChannelConstructor.h:
74034         (WebCore::JSMessageChannelConstructor::scriptExecutionContext):
74035         MessageChannel needs to be supported in workers right away, so the constructor operates with
74036         it directly.
74037
74038         * dom/ActiveDOMObject.cpp:
74039         (WebCore::ActiveDOMObject::ActiveDOMObject):
74040         (WebCore::ActiveDOMObject::~ActiveDOMObject):
74041         (WebCore::ActiveDOMObject::contextDestroyed):
74042         * dom/ActiveDOMObject.h:
74043         (WebCore::ActiveDOMObject::scriptExecutionContext):
74044         * bindings/js/JSDOMBinding.cpp:
74045         (WebCore::markActiveObjectsForContext):
74046         (WebCore::markCrossHeapDependentObjectsForContext):
74047         Use ScriptExecutionContext instead of Document, now that ActiveDOMObject and MessagePort
74048         tracking is handled by ScriptExecutionContext.
74049
74050         * bindings/js/JSDOMBinding.h: (WebCore::getDOMPrototype): Moved to JSDOMGlobalObject.
74051
74052         * bindings/js/JSDOMGlobalObject.h:
74053         (WebCore::getDOMConstructor): Moved to this file, as constructors live in JSDOMGlobalObject.
74054         Also, the two-argument version that used to be in JSDOMWindowBase.cpp need to be accessible
74055         to worker context implementation.
74056         (WebCore::scriptExecutionContext): Added a pure virtual method to access
74057         ScriptExecutionContext, implemented by subclasses.
74058
74059         * bindings/js/JSDOMWindowBase.h:
74060         * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::scriptExecutionContext):
74061         Implement by returning the associated document. Note that this method currently gives bogus
74062         results after navigation - DOMWindow Frame reference is not zeroed out, so we get a document
74063         that is currently in the frame, not the one associated with this window.
74064
74065         * bindings/js/JSDedicatedWorkerConstructor.cpp: Removed unnecessary include of DOMWindow.h.
74066
74067         * bindings/js/JSDocumentCustom.cpp: (WebCore::JSDocument::mark):
74068         Call markActiveObjectsForContext() by its new name.
74069
74070         * dom/DedicatedWorker.cpp:
74071         (WebCore::DedicatedWorker::DedicatedWorker):
74072         (WebCore::DedicatedWorker::document):
74073         * dom/DedicatedWorker.h:
74074         * xml/XMLHttpRequest.cpp:
74075         (WebCore::XMLHttpRequest::document):
74076         * xml/XMLHttpRequest.h:
74077         Added a document() function that upcasts ScriptExecutionContext, as these objects only work
74078         within documents currently (at least for XMLHttpRequest, this will change soon though).
74079
74080         * dom/Document.cpp:
74081         (WebCore::Document::Document):
74082         (WebCore::Document::~Document):
74083         Moved active object and MessagePort tracking up to ScriptExecutionContext, to share code
74084         with workers.
74085
74086         * dom/Document.h:
74087         (WebCore::Document::isDocument):
74088         (WebCore::Document::refScriptExecutionContext):
74089         (WebCore::Document::derefScriptExecutionContext):
74090         Inherit from ScriptExecutionContext.
74091
74092         * dom/MessageChannel.cpp:
74093         (WebCore::MessageChannel::MessageChannel):
74094         * dom/MessageChannel.h:
74095         (WebCore::MessageChannel::create):
74096         Use ScriptExecutionContext instead of Document.
74097
74098         * dom/MessagePort.cpp:
74099         (WebCore::CloseMessagePortTimer::CloseMessagePortTimer): Make m_port a RefPtr, because
74100         MessagePort doesn't ref() itself when posting this event any more (this is a fix for an
74101         unrelated issue that was causing random crashes in layout tests).
74102         (WebCore::MessagePort::MessagePort):
74103         (WebCore::MessagePort::~MessagePort):
74104         (WebCore::MessagePort::associatedFrame):
74105         (WebCore::MessagePort::clone):
74106         (WebCore::MessagePort::postMessage):
74107         (WebCore::MessagePort::startConversation):
74108         (WebCore::MessagePort::start):
74109         (WebCore::MessagePort::contextDestroyed):
74110         (WebCore::MessagePort::dispatchMessages):
74111         * dom/MessagePort.h:
74112         (WebCore::MessagePort::create):
74113         (WebCore::MessagePort::scriptExecutionContext):
74114         Use ScriptExecutionContext instead of Document. This is a step toward making MessagePort
74115         work in worker contexts - we need to also make some its method thread safe for cross-thread
74116         messaging, and make event dispatching thread safe.
74117
74118         * dom/ScriptExecutionContext.cpp: Added.
74119         * dom/ScriptExecutionContext.h: Added.
74120         ActiveDOMObject and MessagePort tracking is moved from Document.
74121         It is debatable whether ScriptExecutionContext should be a parent of Document or DOMWindow,
74122         but as I'm just moving Document code, and it is Document that is the main context object
74123         in our implementation currently.
74124         Changing ScriptExecutionContext to be a parent of DOMWindow causes a number of bugs that
74125         seem non-trivial to fix, and isn't really a part of this task.
74126
74127 2008-10-28  Alp Toker  <alp@nuanti.com>
74128
74129         List newly-added ImageBufferData.h in build system.
74130
74131         * GNUmakefile.am:
74132
74133 2008-10-28  Alp Toker  <alp@nuanti.com>
74134
74135         Reviewed by Cameron Zwarich.
74136
74137         De-list unused WebCore ForwardingHeaders to fix the dist target.
74138
74139         * GNUmakefile.am:
74140
74141 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
74142
74143         Not reviewed.
74144
74145         Attempt to fix the Windows build by generating Forwardingheaders for the
74146         runtime directory in JavaScriptCore.
74147
74148         * WebCore.vcproj/WebCore.vcproj:
74149
74150 2008-10-28  Justin Garcia  <justin.garcia@apple.com>
74151
74152         Reviewed by Darin Adler.
74153
74154         <rdar://problem/5188560> REGRESSION: Spell checker doesn't clear spelling/grammar marker after error is marked as Ignored
74155
74156         * editing/Editor.cpp:
74157         (WebCore::Editor::ignoreSpelling): Remove misspelling markers from the word.
74158         (WebCore::Editor::learnSpelling): Added a FIXME about <rdar://problem/5396072>, which
74159         will probably require a change more complicated than just marking the learned word as
74160         misspelled.  I'll address it with a separate patch.
74161         * editing/EditorCommand.cpp:
74162         (WebCore::executeIgnoreSpelling): Added.
74163         (WebCore::CommandEntry::): Added an entry for IgnoreSpelling.
74164
74165 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
74166
74167         Reviewed by Mark Rowe.
74168
74169         Move ForwardingHeaders to their correct location after the creation of
74170         the runtime directory in JavaScriptCore.
74171
74172         * ForwardingHeaders/kjs/ArrayPrototype.h: Removed.
74173         * ForwardingHeaders/kjs/BooleanObject.h: Removed.
74174         * ForwardingHeaders/kjs/CallData.h: Removed.
74175         * ForwardingHeaders/kjs/ConstructData.h: Removed.
74176         * ForwardingHeaders/kjs/DateInstance.h: Removed.
74177         * ForwardingHeaders/kjs/Error.h: Removed.
74178         * ForwardingHeaders/kjs/FunctionConstructor.h: Removed.
74179         * ForwardingHeaders/kjs/FunctionPrototype.h: Removed.
74180         * ForwardingHeaders/kjs/InternalFunction.h: Removed.
74181         * ForwardingHeaders/kjs/JSArray.h: Removed.
74182         * ForwardingHeaders/kjs/JSFunction.h: Removed.
74183         * ForwardingHeaders/kjs/JSGlobalObject.h: Removed.
74184         * ForwardingHeaders/kjs/JSNumberCell.h: Removed.
74185         * ForwardingHeaders/kjs/JSObject.h: Removed.
74186         * ForwardingHeaders/kjs/JSString.h: Removed.
74187         * ForwardingHeaders/kjs/JSValue.h: Removed.
74188         * ForwardingHeaders/kjs/ObjectPrototype.h: Removed.
74189         * ForwardingHeaders/kjs/PropertyMap.h: Removed.
74190         * ForwardingHeaders/kjs/PrototypeFunction.h: Removed.
74191         * ForwardingHeaders/kjs/StringObject.h: Removed.
74192         * ForwardingHeaders/kjs/StringObjectThatMasqueradesAsUndefined.h: Removed.
74193         * ForwardingHeaders/kjs/StringPrototype.h: Removed.
74194         * ForwardingHeaders/kjs/StructureID.h: Removed.
74195         * ForwardingHeaders/runtime: Added.
74196         * ForwardingHeaders/runtime/ArrayPrototype.h: Copied from ForwardingHeaders/kjs/ArrayPrototype.h.
74197         * ForwardingHeaders/runtime/BooleanObject.h: Copied from ForwardingHeaders/kjs/BooleanObject.h.
74198         * ForwardingHeaders/runtime/CallData.h: Copied from ForwardingHeaders/kjs/CallData.h.
74199         * ForwardingHeaders/runtime/ConstructData.h: Copied from ForwardingHeaders/kjs/ConstructData.h.
74200         * ForwardingHeaders/runtime/DateInstance.h: Copied from ForwardingHeaders/kjs/DateInstance.h.
74201         * ForwardingHeaders/runtime/Error.h: Copied from ForwardingHeaders/kjs/Error.h.
74202         * ForwardingHeaders/runtime/FunctionConstructor.h: Copied from ForwardingHeaders/kjs/FunctionConstructor.h.
74203         * ForwardingHeaders/runtime/FunctionPrototype.h: Copied from ForwardingHeaders/kjs/FunctionPrototype.h.
74204         * ForwardingHeaders/runtime/InternalFunction.h: Copied from ForwardingHeaders/kjs/InternalFunction.h.
74205         * ForwardingHeaders/runtime/JSArray.h: Copied from ForwardingHeaders/kjs/JSArray.h.
74206         * ForwardingHeaders/runtime/JSFunction.h: Copied from ForwardingHeaders/kjs/JSFunction.h.
74207         * ForwardingHeaders/runtime/JSGlobalObject.h: Copied from ForwardingHeaders/kjs/JSGlobalObject.h.
74208         * ForwardingHeaders/runtime/JSNumberCell.h: Copied from ForwardingHeaders/kjs/JSNumberCell.h.
74209         * ForwardingHeaders/runtime/JSObject.h: Copied from ForwardingHeaders/kjs/JSObject.h.
74210         * ForwardingHeaders/runtime/JSString.h: Copied from ForwardingHeaders/kjs/JSString.h.
74211         * ForwardingHeaders/runtime/JSValue.h: Copied from ForwardingHeaders/kjs/JSValue.h.
74212         * ForwardingHeaders/runtime/ObjectPrototype.h: Copied from ForwardingHeaders/kjs/ObjectPrototype.h.
74213         * ForwardingHeaders/runtime/PropertyMap.h: Copied from ForwardingHeaders/kjs/PropertyMap.h.
74214         * ForwardingHeaders/runtime/PrototypeFunction.h: Copied from ForwardingHeaders/kjs/PrototypeFunction.h.
74215         * ForwardingHeaders/runtime/StringObject.h: Copied from ForwardingHeaders/kjs/StringObject.h.
74216         * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h: Copied from ForwardingHeaders/kjs/StringObjectThatMasqueradesAsUndefined.h.
74217         * ForwardingHeaders/runtime/StringPrototype.h: Copied from ForwardingHeaders/kjs/StringPrototype.h.
74218         * ForwardingHeaders/runtime/StructureID.h: Copied from ForwardingHeaders/kjs/StructureID.h.
74219         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
74220         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
74221         * bindings/js/JSClipboardCustom.cpp:
74222         * bindings/js/JSConsoleCustom.cpp:
74223         * bindings/js/JSCustomPositionCallback.h:
74224         * bindings/js/JSCustomPositionErrorCallback.h:
74225         * bindings/js/JSCustomSQLStatementCallback.h:
74226         * bindings/js/JSCustomSQLStatementErrorCallback.h:
74227         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
74228         * bindings/js/JSCustomVoidCallback.h:
74229         * bindings/js/JSCustomXPathNSResolver.h:
74230         * bindings/js/JSDOMBinding.cpp:
74231         * bindings/js/JSDOMBinding.h:
74232         * bindings/js/JSDOMGlobalObject.h:
74233         * bindings/js/JSDOMWindowBase.cpp:
74234         * bindings/js/JSDOMWindowCustom.cpp:
74235         * bindings/js/JSDOMWindowShell.cpp:
74236         * bindings/js/JSDatabaseCustom.cpp:
74237         * bindings/js/JSEventListener.cpp:
74238         * bindings/js/JSEventTarget.h:
74239         * bindings/js/JSHTMLDocumentCustom.cpp:
74240         * bindings/js/JSHistoryCustom.cpp:
74241         * bindings/js/JSInspectedObjectWrapper.cpp:
74242         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
74243         * bindings/js/JSLocationCustom.cpp:
74244         * bindings/js/JSNodeFilterCondition.h:
74245         * bindings/js/JSQuarantinedObjectWrapper.cpp:
74246         * bindings/js/JSQuarantinedObjectWrapper.h:
74247         * bindings/js/JSXMLHttpRequestCustom.cpp:
74248         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
74249         * bindings/objc/WebScriptObject.mm:
74250         * bindings/objc/WebScriptObjectPrivate.h:
74251         * bindings/scripts/CodeGeneratorJS.pm:
74252         * bridge/NP_jsobject.cpp:
74253         * bridge/c/c_instance.cpp:
74254         * bridge/c/c_utility.cpp:
74255         * bridge/c/c_utility.h:
74256         * bridge/jni/jni_instance.cpp:
74257         * bridge/jni/jni_jsobject.h:
74258         * bridge/jni/jni_jsobject.mm:
74259         * bridge/jni/jni_runtime.cpp:
74260         * bridge/jni/jni_utility.cpp:
74261         * bridge/jni/jni_utility.h:
74262         * bridge/objc/objc_instance.mm:
74263         * bridge/objc/objc_runtime.h:
74264         * bridge/objc/objc_runtime.mm:
74265         * bridge/objc/objc_utility.h:
74266         * bridge/objc/objc_utility.mm:
74267         * bridge/runtime.h:
74268         * bridge/runtime_array.cpp:
74269         * bridge/runtime_array.h:
74270         * bridge/runtime_method.cpp:
74271         * bridge/runtime_method.h:
74272         * bridge/runtime_object.cpp:
74273         * bridge/runtime_object.h:
74274         * bridge/runtime_root.cpp:
74275         * inspector/JavaScriptCallFrame.cpp:
74276         * inspector/JavaScriptProfile.cpp:
74277         * inspector/JavaScriptProfile.h:
74278         * inspector/JavaScriptProfileNode.cpp:
74279         * inspector/JavaScriptProfileNode.h:
74280         * loader/FrameLoader.cpp:
74281         * page/Console.cpp:
74282         * plugins/PluginView.cpp:
74283         * plugins/gtk/PluginViewGtk.cpp:
74284         * plugins/qt/PluginViewQt.cpp:
74285         * plugins/win/PluginViewWin.cpp:
74286
74287 2008-10-28  Adele Peterson  <adele@apple.com>
74288
74289         Windows build fix.  This removes Cairo include directories from non-Cairbo build configurations.
74290
74291         * WebCore.vcproj/WebCore.vcproj:
74292
74293 2008-10-28  Adele Peterson  <adele@apple.com>
74294
74295         Windows build fix.
74296
74297         * platform/graphics/ImageBuffer.h:
74298         (WebCore::ImageBuffer::create):
74299
74300 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
74301
74302         Not reviewed.
74303
74304         Roll out a mistaken attempt at fixing the GTK build in r37947.
74305
74306         * GNUmakefile.am:
74307
74308 2008-10-28  Adele Peterson  <adele@apple.com>
74309
74310         Reviewed by John Sullivan.
74311
74312         Fix for https://bugs.webkit.org/show_bug.cgi?id=21880
74313         "files" string for multifile uploads needs to be localized
74314
74315         * page/mac/WebCoreViewFactory.h:
74316         * platform/LocalizedStrings.h:
74317         * platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth):
74318         * platform/gtk/LocalizedStringsGtk.cpp: (WebCore::multipleFileUploadText):
74319         * platform/mac/FileChooserMac.mm: (WebCore::FileChooser::basenameForWidth):
74320         * platform/mac/LocalizedStringsMac.mm: (WebCore::multipleFileUploadText):
74321         * platform/qt/Localizations.cpp: (WebCore::multipleFileUploadText):
74322         * platform/wx/LocalizedStringsWx.cpp: (WebCore::multipleFileUploadText):
74323
74324 2008-10-28  Brett Wilson  <brettw@chromium.org>
74325
74326         Reviewed by Darin Adler.
74327
74328         https://bugs.webkit.org/show_bug.cgi?id=21816
74329
74330         Remove platform ifdefs in ImageBuffer.h by moving platform specific code
74331         into a new PlatformImageBuffer class. Move the static create function
74332         into the header because it can be cross-platform. Initialization now
74333         happens in the cunstructor which sets a flag that create uses to know
74334         whether it should return null or not. I also made passing of IntSize
74335         more consistent (always by reference).
74336
74337         This change also changes the ifdefs in GraphicsContext to allow Skia
74338         ports to implement text drawing modes.
74339
74340         * platform/graphics/ImageBuffer.h:
74341         (WebCore::ImageBuffer::create):
74342         (WebCore::ImageBuffer::size):
74343         * platform/graphics/cairo/ImageBufferCairo.cpp:
74344         (WebCore::ImageBufferData::ImageBufferData):
74345         (WebCore::ImageBuffer::ImageBuffer):
74346         (WebCore::ImageBuffer::~ImageBuffer):
74347         (WebCore::ImageBuffer::image):
74348         (WebCore::ImageBuffer::getImageData):
74349         (WebCore::ImageBuffer::putImageData):
74350         * platform/graphics/cairo/ImageBufferData.h:
74351         * platform/graphics/cg/ImageBufferCG.cpp:
74352         (WebCore::ImageBufferData::ImageBufferData):
74353         (WebCore::ImageBuffer::ImageBuffer):
74354         (WebCore::ImageBuffer::~ImageBuffer):
74355         (WebCore::ImageBuffer::getImageData):
74356         (WebCore::ImageBuffer::putImageData):
74357         * platform/graphics/cg/ImageBufferData.h:
74358         * platform/graphics/qt/ImageBufferData.h:
74359         * platform/graphics/qt/ImageBufferQt.cpp:
74360         (WebCore::ImageBufferData::ImageBufferData):
74361         (WebCore::ImageBuffer::ImageBuffer):
74362         (WebCore::ImageBuffer::~ImageBuffer):
74363
74364 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
74365
74366         Not reviewed.
74367
74368         Fix the GTK build.
74369
74370         * GNUmakefile.am:
74371
74372 2008-10-28  Cameron Zwarich  <zwarich@apple.com>
74373
74374         Not reviewed.
74375
74376         Another Qt build fix.
74377
74378         * WebCore.pro:
74379
74380 2008-10-28  Greg Bolsinga  <bolsinga@apple.com>
74381
74382         Reviewed by David Kilzer.
74383
74384         https://bugs.webkit.org/show_bug.cgi?id=21932
74385         Add non-pointer constant lookups to SoftLinking.h
74386
74387         * platform/mac/SoftLinking.h:
74388
74389 2008-10-28  Greg Bolsinga  <bolsinga@apple.com>
74390
74391         Reviewed by David Kilzer.
74392
74393         https://bugs.webkit.org/show_bug.cgi?id=2192
74394         Missing semi-colons in Geoposition.idl
74395
74396         * page/Geoposition.idl: Add missing semi-colons
74397
74398 2008-10-28  Timothy Hatcher  <timothy@apple.com>
74399
74400         Make the Profiles panel in the Web Inspector have an enable screen.
74401         Profiling now needs to be enabled before console.profile() works.
74402
74403         <rdar://problem/6211578> Make the JavaScript profiler opt-in, so it does
74404         not slow down JavaScript all the time
74405
74406         Reviewed by Darin Adler and Kevin McCullough.
74407
74408         * English.lproj/localizedStrings.js: New strings.
74409         * WebCore.base.exp: New and changed exports.
74410         * WebCore.vcproj/WebCore.vcproj: Add the PanelEnablerView.js file.
74411         * bindings/js/JSDOMWindowBase.cpp:
74412         (WebCore::JSDOMWindowBase::supportsProfiling): Call InspectorController:profilerEnabled.
74413         * inspector/InspectorController.cpp:
74414         (WebCore::InspectorController::InspectorController): Initialize the m_startProfiling
74415         Timer to call InspectorController::startUserInitiatedProfiling.
74416         (WebCore::InspectorController::startUserInitiatedProfilingSoon): Start a one-shot timer
74417         that calls InspectorController::startUserInitiatedProfiling.
74418         (WebCore::InspectorController::startUserInitiatedProfiling): Recompile all JavaScript
74419         and enable the profiler if the profiler was not enabled.
74420         (WebCore::InspectorController::stopUserInitiatedProfiling): Rearrange code for readability.
74421         (WebCore::InspectorController::enableProfiler): Recompile all the JavaScript functions
74422         if the skipRecompile argument is false. Call the profilerWasEnabled script function.
74423         (WebCore::InspectorController::disableProfiler): Recompile all the JavaScript functions.
74424         Call the profilerWasEnabled script function.
74425         (WebCore::InspectorController::disableDebugger): Set m_attachDebuggerWhenShown to false,
74426         so it won't be started later.
74427         * inspector/InspectorController.h:
74428         (WebCore::InspectorController::profilerEnabled): Return enabled() && m_profilerEnabled.
74429         * inspector/front-end/Images/debuggingButtons.png: Remove.
74430         * inspector/front-end/Images/enableButtons.png: Added.
74431         * inspector/front-end/Images/profilesSilhouette.png: Added.
74432         * inspector/front-end/Images/scriptsSilhouette.png: Added.
74433         * inspector/front-end/PanelEnablerView.js: Added.
74434         (WebInspector.PanelEnablerView):
74435         (WebInspector.PanelEnablerView.prototype._enableButtonCicked): Fire the "enable clicked"
74436         event so listeners can do their thing.
74437         (WebInspector.PanelEnablerView.prototype._windowResized): Test if the icon should be hidden.
74438         * inspector/front-end/ProfilesPanel.js:
74439         (WebInspector.ProfilesPanel): Create the PanelEnablerView and the strings needed for it.
74440         (WebInspector.ProfilesPanel.prototype.get statusBarItems): Include the enableToggleButton.
74441         (WebInspector.ProfilesPanel.prototype.profilerWasEnabled): Call reset and populateInterface.
74442         (WebInspector.ProfilesPanel.prototype.profilerWasDisabled): Call reset.
74443         (WebInspector.ProfilesPanel.prototype.reset): Call _updateInterface.
74444         (WebInspector.ProfilesPanel.prototype.setRecordingProfile): Moved in the code, no changes.
74445         (WebInspector.ProfilesPanel.prototype._updateInterface): Update the toggle button and
74446         show/hide other buttons. Also show/hide the PanelEnablerView.
74447         (WebInspector.ProfilesPanel.prototype._enableProfiling): Call _toggleProfiling if not enabled.
74448         (WebInspector.ProfilesPanel.prototype._toggleProfiling): Call InspectorController's
74449         disableProfiler or enableProfiler.
74450         * inspector/front-end/ScriptsPanel.js:
74451         (WebInspector.ScriptsPanel): Replace the overlay element with a PanelEnablerView. Replace the
74452         debuggingButton with the enableToggleButton.
74453         (WebInspector.ScriptsPanel.prototype.get statusBarItems): Replace the debuggingButton with
74454         the enableToggleButton.
74455         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons): Hide/show the pauseOnExceptionButton
74456         when needed. Replace the overlay element with a PanelEnablerView. Replace the debuggingButton
74457         with the enableToggleButton.
74458         (WebInspector.ScriptsPanel.prototype._enableDebugging): Call _toggleDebugging when not enabled.
74459         (WebInspector.ScriptsPanel.prototype._toggleDebugging): Remove the call to _clearInterface,
74460         since reset is called from debuggerWasEnabled and debuggerWasDisabled.
74461         * inspector/front-end/View.js: Inherit from WebInspector.Object.
74462         * inspector/front-end/WebKit.qrc: Add the PanelEnablerView.js file.
74463         * inspector/front-end/inspector.css: New styles for the PanelEnablerView.
74464         * inspector/front-end/inspector.html: Add the PanelEnablerView.js file.
74465         * inspector/front-end/inspector.js:
74466         (WebInspector.profilerWasEnabled): Added. Calls the ProfilesPanel.
74467         (WebInspector.profilerWasDisabled): Ditto.
74468         * page/Console.cpp:
74469         (WebCore::Console::error): Remove null check for m_frame, since m_frame isn't used.
74470         (WebCore::Console::info): Ditto.
74471         (WebCore::Console::log): Ditto.
74472         (WebCore::Console::assertCondition): Ditto.
74473         (WebCore::Console::dirxml): Remove null check for m_frame and use this->page().
74474         (WebCore::Console::count): Ditto.
74475         (WebCore::Console::profile): Return early if InspectorController::profilerEnabled is false.
74476         (WebCore::Console::profileEnd): Ditto.
74477         (WebCore::Console::warn): Remove null check for m_frame, since m_frame isn't used.
74478         * page/Settings.cpp:
74479         (WebCore::Settings::Settings): Remove initialization of m_didInitializeDeveloperExtrasEnabled.
74480         (WebCore::Settings::setDeveloperExtrasEnabled): Remove code that recompiled functions.
74481         Now just sets the member boolean.
74482         * page/Settings.h: Remove m_didInitializeDeveloperExtrasEnabled.
74483
74484 2008-10-28  Timothy Hatcher  <timothy@apple.com>
74485
74486         Rename a few methods related to attaching and detaching the debugger. Also
74487         adds stub methods for enabling and disabling the profiler.
74488
74489         * Rename attachDebugger to enableDebugger.
74490         * Rename detachDebugger to disableDebugger.
74491         * Rename the debuggerAttached getter to debuggerEnabled.
74492         * Rename the debuggerAttached callback to debuggerWasEnabled.
74493         * Rename the debuggerDetached callback to debuggerWasDisabled.
74494
74495         Reviewed by Darin Adler.
74496
74497         * WebCore.base.exp:
74498         * inspector/InspectorController.cpp:
74499         (WebCore::InspectorController::InspectorController):
74500         (WebCore::InspectorController::setWindowVisible):
74501         (WebCore::InspectorController::windowScriptObjectAvailable):
74502         (WebCore::InspectorController::close):
74503         (WebCore::InspectorController::enableProfiler):
74504         (WebCore::InspectorController::disableProfiler):
74505         (WebCore::InspectorController::enableDebugger):
74506         (WebCore::InspectorController::disableDebugger):
74507         (WebCore::InspectorController::pauseInDebugger):
74508         (WebCore::InspectorController::resumeDebugger):
74509         (WebCore::InspectorController::stepOverStatementInDebugger):
74510         (WebCore::InspectorController::stepIntoStatementInDebugger):
74511         (WebCore::InspectorController::stepOutOfFunctionInDebugger):
74512         * inspector/InspectorController.h:
74513         (WebCore::InspectorController::profilerEnabled):
74514         (WebCore::InspectorController::debuggerEnabled):
74515         * inspector/front-end/BreakpointsSidebarPane.js:
74516         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
74517         (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
74518         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
74519         * inspector/front-end/Object.js:
74520         * inspector/front-end/ProfilesPanel.js:
74521         (WebInspector.ProfilesPanel):
74522         * inspector/front-end/ScriptsPanel.js:
74523         (WebInspector.ScriptsPanel):
74524         (WebInspector.ScriptsPanel.prototype.get statusBarItems):
74525         (WebInspector.ScriptsPanel.prototype.debuggerWasEnabled):
74526         (WebInspector.ScriptsPanel.prototype.debuggerWasDetached):
74527         (WebInspector.ScriptsPanel.prototype.reset):
74528         (WebInspector.ScriptsPanel.prototype.canShowResource):
74529         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
74530         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
74531         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
74532         * inspector/front-end/View.js:
74533         * inspector/front-end/inspector.css:
74534         * inspector/front-end/inspector.html:
74535         * inspector/front-end/inspector.js:
74536         (WebInspector.addResource):
74537         (WebInspector.debuggerWasEnabled):
74538         (WebInspector.debuggerWasDisabled):
74539
74540 2008-10-28  Timothy Hatcher  <timothy@apple.com>
74541
74542         Fix an exception when searching the Resources panel while there
74543         and resources queued to be added to the list.
74544
74545         Reviewed by Kevin McCullough.
74546
74547         * inspector/front-end/ResourcesPanel.js:
74548         (WebInspector.ResourcesPanel.prototype.searchCanceled): Null check
74549         the _resourcesTreeElement property.
74550         (WebInspector.ResourcesPanel.prototype.performSearch): Ditto.
74551
74552 2008-10-28  Alp Toker  <alp@nuanti.com>
74553
74554         GTK+ build fix for older versions of Pango where PANGO_VERSION_CHECK
74555         isn't defined.
74556
74557         * platform/graphics/gtk/FontGtk.cpp:
74558         (WebCore::getDefaultPangoLayout):
74559         * platform/graphics/gtk/FontPlatformDataPango.cpp:
74560
74561 2008-10-28  Alexey Proskuryakov  <ap@webkit.org>
74562
74563         Reviewed by Darin Adler.
74564
74565         https://bugs.webkit.org/show_bug.cgi?id=21893
74566         Character set is incorrect for external scripts in XHTML pages
74567
74568         <rdar://problem/6317451> Incorrect encoding for text in a popup at http://xpoint.ru/
74569
74570         Test: fast/encoding/external-script-charset.xhtml
74571
74572         Expose scriptCharset() function on all ScriptElements, and call it from XML tokenizer.
74573
74574         * dom/ScriptElement.h:
74575         * dom/XMLTokenizerLibxml2.cpp:
74576         (WebCore::XMLTokenizer::endElementNs):
74577         * dom/XMLTokenizerQt.cpp:
74578         (WebCore::XMLTokenizer::parseEndElement):
74579         * html/HTMLScriptElement.h:
74580         * svg/SVGScriptElement.cpp:
74581         (WebCore::SVGScriptElement::scriptCharset):
74582         * svg/SVGScriptElement.h:
74583
74584 2008-10-28  Alp Toker  <alp@nuanti.com>
74585
74586         Include copyright license files in the autotools dist target and
74587         exclude unused zlib headers.
74588
74589         Change suggested by Mike Hommey.
74590
74591         * GNUmakefile.am:
74592
74593 2008-10-27  Sam Weinig  <sam@webkit.org>
74594
74595         Reviewed by Maciej Stachowiak.
74596
74597         Clear the window shell when destroying a page to allow documents
74598         which have no way of being reached anymore, to be torn down.
74599
74600         * page/Frame.cpp:
74601         (WebCore::Frame::pageDestroyed):
74602
74603 2008-10-27  Kevin Watters  <kevinwatters@gmail.com>
74604
74605         Reviewed by Kevin Ollivier.
74606
74607         Update the active state as well as the focused state as both need to be true
74608         for the caret to be drawn.
74609
74610         https://bugs.webkit.org/show_bug.cgi?id=21900
74611
74612         * WebView.cpp:
74613         (wxWebView::OnSetFocus):
74614         (wxWebView::OnKillFocus):
74615
74616 2008-10-27  Kevin Ollivier  <kevino@theolliviers.com>
74617
74618         wx build fix on Linux/GTK. Enable support for #include <JavaScriptCore/XYZ.h> style includes.
74619
74620         * webcore-wx.bkl:
74621
74622 2008-10-27  Michael Knaup  <michael.knaup@mac.com>
74623
74624         Reviewed and tweaked by Darin Adler.
74625
74626         - https://bugs.webkit.org/show_bug.cgi?id=8988
74627
74628         Bug 8988: Add support for Mozilla CSS custom cursors.
74629         Added -webkit-grab and -webkit-grabbing cursor suppport
74630         for the Mac, dummy implementations for other platforms.
74631
74632         * css/CSSParser.cpp:
74633         (WebCore::CSSParser::parseValue): Updated since the
74634         -webkit-grabbing cursor is now the last one.
74635
74636         * css/CSSPrimitiveValueMappings.h:
74637         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added
74638         CURSOR_WEBKIT_GRAB and CURSOR_WEBKIT_GRABBING.
74639
74640         * css/CSSValueKeywords.in: Added -webkit-grab and
74641         -webkit-grabbing.
74642
74643         * manual-tests/cursor.html: Added -webkit-zoom-in,
74644         webkit-zoom-out, -webkit-grab, and -webkit-grabbing.
74645
74646         * page/EventHandler.cpp:
74647         (WebCore::EventHandler::selectCursor): Added
74648         CURSOR_WEBKIT_GRAB and CURSOR_WEBKIT_GRABBING.
74649
74650         * platform/Cursor.h: Added grabCursor and grabbingCursor.
74651
74652         * platform/gtk/CursorGtk.cpp:
74653         (WebCore::grabCursor): Added.
74654         (WebCore::grabbingCursor): Added.
74655         * platform/mac/CursorMac.mm:
74656         (WebCore::grabCursor): Added.
74657         (WebCore::grabbingCursor): Added.
74658         * platform/qt/CursorQt.cpp:
74659         (WebCore::grabCursor): Added.
74660         (WebCore::grabbingCursor): Added.
74661         * platform/win/CursorWin.cpp:
74662         (WebCore::grabCursor): Added.
74663         (WebCore::grabbingCursor): Added.
74664         * platform/wx/CursorWx.cpp:
74665         (WebCore::grabCursor): Added.
74666         (WebCore::grabbingCursor): Added.
74667
74668         * rendering/style/RenderStyleConstants.h:
74669         Added CURSOR_WEBKIT_GRAB and CURSOR_WEBKIT_GRABBING.
74670         Also broke ECursor out into a single constant per line.
74671         Also added a couple of comments.
74672
74673 2008-10-27  Dimitri Glazkov  <dglazkov@chromium.org>
74674
74675         Reviewed by Darin Adler.
74676
74677         * svg/SVGAnimatedTemplate.h: needed a HashMap define
74678
74679 2008-10-21  Eric Seidel  <eric@webkit.org>
74680
74681         Reviewed by Dave Hyatt.
74682
74683         Infinite recursion crash in WebCore::RenderSVGRoot::absoluteClippedOverflowRect on a <stop> element outside of a gradient block
74684         https://bugs.webkit.org/show_bug.cgi?id=20400
74685
74686         Test: svg/custom/stop-crash.svg
74687
74688         * WebCore.xcodeproj/project.pbxproj:
74689         * rendering/RenderSVGGradientStop.h:
74690         (WebCore::RenderSVGGradientStop::absoluteClippedOverflowRect):
74691
74692 2008-10-27  Anders Carlsson  <andersca@apple.com>
74693
74694         Reviewed by Sam Weinig.
74695
74696         No need to call release if the connection is null.
74697
74698         * platform/network/mac/ResourceHandleMac.mm:
74699         (WebCore::ResourceHandle::start):
74700
74701 2008-10-27  Anders Carlsson  <andersca@apple.com>
74702
74703         Reviewed by Kevin Decker.
74704
74705         <rdar://problem/6322650> Crash in fast/loader/simultaneous-reloads-assert.html
74706
74707         Make sure to null check the NSURLConnection object.
74708
74709         * platform/network/mac/ResourceHandleMac.mm:
74710         (WebCore::ResourceHandle::start):
74711         (WebCore::ResourceHandle::setDefersLoading):
74712
74713 2008-10-27  Alexey Proskuryakov  <ap@webkit.org>
74714
74715         Fix non-Mac builds.
74716
74717         * GNUmakefile.am:
74718         * WebCore.pro:
74719         * WebCore.vcproj/WebCore.vcproj:
74720         * WebCoreSources.bkl:
74721         Renamed JSHTMLOptionElementConstructor to JSOptionConstructor.
74722
74723 2008-10-26  Alexey Proskuryakov  <ap@webkit.org>
74724
74725         Reviewed by Sam Weinig.
74726
74727         https://bugs.webkit.org/show_bug.cgi?id=21886
74728         window.HTMLOptionElement == "[object HTMLElementConstructor]" instead of HTMLOptionElementConstructor
74729
74730         Test: fast/dom/HTMLOptionElement/option-prototype.html
74731
74732         We now have separate objects for window.Option and window.HTMLOptionElement - the latter
74733         "constructor" cannot be used to construct anything. This matches Firefox behavior.
74734
74735         * WebCore.xcodeproj/project.pbxproj:
74736         * bindings/js/JSDOMWindowBase.cpp:
74737         (jsDOMWindowBaseOption):
74738         * bindings/js/JSHTMLOptionElementConstructor.cpp: Removed.
74739         * bindings/js/JSHTMLOptionElementConstructor.h: Removed.
74740         * bindings/js/JSOptionConstructor.cpp: Copied from WebCore/bindings/js/JSHTMLOptionElementConstructor.cpp.
74741         * bindings/js/JSOptionConstructor.h: Copied from WebCore/bindings/js/JSHTMLOptionElementConstructor.h.
74742         * html/HTMLOptionElement.idl:
74743         Renamed JSHTMLOptionElementConstructor to JSOptionConstructor.
74744
74745         * html/HTMLOptionElement.idl: Generate a constructor.
74746
74747 2008-10-25  Geoffrey Garen  <ggaren@apple.com>
74748
74749         Not reviewed.
74750
74751         Try to fix Mac debug build on the buildbot.
74752
74753         * platform/FileChooser.cpp:
74754         (WebCore::FileChooserClient::~FileChooserClient):
74755         * platform/FileChooser.h: Moved destructor to .cpp file, to avoid a
74756         weak exported symbol.
74757
74758 2008-10-25  Jade Han  <jade.han@nokia.com>
74759
74760         Reviewed by Anders.
74761
74762         Enable custom properties for Qt runtime objects in QtWebKit
74763
74764         https://bugs.webkit.org/show_bug.cgi?id=21813
74765
74766         * bridge/runtime_object.cpp:
74767         (JSC::RuntimeObjectImp::getOwnPropertySlot):
74768         (JSC::RuntimeObjectImp::put):
74769
74770 2008-10-24  Sam Weinig  <sam@webkit.org>
74771
74772         Fix windows build.
74773
74774         * page/Chrome.cpp:
74775         * page/Chrome.h:
74776
74777 2008-10-24  Sam Weinig  <sam@webkit.org>
74778
74779         Fix Qt build.
74780
74781         * platform/qt/FileChooserQt.cpp:
74782
74783 2008-10-24  Sam Weinig  <sam@webkit.org>
74784
74785         Reviewed by Dan Bernstein.
74786
74787         Fix https://bugs.webkit.org/show_bug.cgi?id=21759
74788         Layering violation: FileChooser should not depend on Document/Frame/Page
74789
74790         Move file choosing into WebKit ChromeClient.
74791
74792         * loader/EmptyClients.h:
74793         (WebCore::EmptyChromeClient::runOpenPanel):
74794         * page/Chrome.cpp:
74795         (WebCore::Chrome::runOpenPanel):
74796         * page/Chrome.h:
74797         * page/ChromeClient.h:
74798         * page/mac/ChromeMac.mm:
74799         * platform/FileChooser.h:
74800         * platform/mac/FileChooserMac.mm:
74801         * platform/qt/FileChooserQt.cpp:
74802         * platform/win/FileChooserWin.cpp:
74803         * platform/wx/TemporaryLinkStubs.cpp:
74804         * rendering/RenderFileUploadControl.cpp:
74805         (WebCore::RenderFileUploadControl::click):
74806
74807 2008-10-24  Kevin Ollivier  <kevino@theolliviers.com>
74808
74809         wx build fix - add newIconForFiles stub.
74810
74811         * platform/wx/TemporaryLinkStubs.cpp:
74812         (Icon::newIconForFiles):
74813
74814 2008-10-24  Kevin Watters  <kevinwatters@gmail.com>
74815
74816         Reviewed by Kevin Ollivier.
74817
74818         Use the CGFont metrics APIs for more accurate measurements, and tweak the y
74819         value the text is drawn at (it was a couple pixels off before because wx
74820         internally adds to the y value.
74821
74822         https://bugs.webkit.org/show_bug.cgi?id=21853
74823
74824         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
74825         (wxFontProperties::wxFontProperties):
74826         * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp:
74827         (WebCore::drawTextWithSpacing):
74828
74829 2008-10-24  Eric Seidel  <eric@webkit.org>
74830
74831         Reviewed by Sam Weinig.
74832
74833         Generate missing constructors and add test to prevent missing ones in the future
74834         https://bugs.webkit.org/show_bug.cgi?id=21846
74835
74836         Test: fast/js/global-constructors.html
74837
74838         * css/CSSStyleSheet.idl:
74839         * css/RGBColor.idl:
74840         * dom/NodeIterator.idl:
74841         * dom/TreeWalker.idl:
74842         * xml/XPathExpression.idl:
74843
74844 2008-10-24  Alexey Proskuryakov  <ap@webkit.org>
74845
74846         Reviewed by Darin Adler.
74847
74848         https://bugs.webkit.org/show_bug.cgi?id=21836
74849         REGRESSION: Sign-in on Fancast.com causes crash in Webkit nightly
74850
74851         Test: http/tests/xmlhttprequest/detaching-frame.html
74852
74853         * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::dropProtection): Null check the window -
74854         even though XHR needs a context (AKA frame) to be serviced, the frame may be disconnected
74855         when dispatching the same callback that results in this function being called.
74856
74857 2008-10-24  David Kilzer  <ddkilzer@apple.com>
74858
74859         Gtk build fix.
74860
74861         * platform/gtk/TemporaryLinkStubs.cpp:
74862         (WebCore::setFocusRingColorChangeFunction): Removed in r37858.
74863
74864 2008-10-24  Mark Rowe  <mrowe@apple.com>
74865
74866         Reviewed by Sam Weinig.
74867
74868         <rdar://problem/6164952> Use constant kCGInterpolationMedium in GraphicsContextCG.cpp rather than hard-coded values.
74869
74870         * platform/graphics/cg/GraphicsContextCG.cpp:
74871         (WebCore::GraphicsContext::setImageInterpolationQuality):
74872         (WebCore::GraphicsContext::imageInterpolationQuality):
74873
74874 2008-10-24  Anders Carlsson  <andersca@apple.com>
74875
74876         Reviewed by Sam Weinig.
74877
74878         <rdar://problem/5440917> Support NPN_Construct
74879
74880         * WebCore.NPAPI.exp:
74881         Export _NPN_Construct.
74882
74883         * bridge/NP_jsobject.cpp:
74884         (_NPN_Construct):
74885         Implement this.
74886
74887         * bridge/c/c_instance.cpp:
74888         (JSC::Bindings::CInstance::supportsConstruct):
74889         (JSC::Bindings::CInstance::invokeConstruct):
74890         Have this call the appropriate NPClass method.
74891
74892         * bridge/npruntime.h:
74893         Add NPN_Construct.
74894
74895         * bridge/npruntime_impl.h:
74896         Add _NPN_Construct.
74897
74898         * bridge/runtime.h:
74899         (JSC::Bindings::Instance::supportsConstruct):
74900         (JSC::Bindings::Instance::invokeConstruct):
74901         New methods.
74902
74903         * bridge/runtime_object.cpp:
74904         (JSC::callRuntimeConstructor):
74905         Call the native instance.
74906
74907         (JSC::RuntimeObjectImp::getConstructData):
74908         Implement this.
74909
74910         * bridge/runtime_object.h:
74911         Add new method declarations.
74912
74913         * plugins/gtk/PluginPackageGtk.cpp:
74914         (WebCore::PluginPackage::load):
74915         * plugins/qt/PluginPackageQt.cpp:
74916         (WebCore::PluginPackage::load):
74917         * plugins/win/PluginPackageWin.cpp:
74918         (WebCore::PluginPackage::load):
74919         Initialize m_pluginFuncs.construct.
74920
74921 2008-10-24  Adele Peterson  <adele@apple.com>
74922
74923         Build fix.
74924
74925         * platform/FileChooser.h: (WebCore::FileChooserClient::~FileChooserClient):
74926         * platform/graphics/mac/IconMac.mm: (WebCore::Icon::newIconForFiles):
74927
74928 2008-10-24  Greg Bolsinga  <bolsinga@apple.com>
74929
74930         Fix GTK build break.
74931
74932         Reviewed by David Kilzer.
74933
74934         * GNUmakefile.am: Do not include .idl files whose generated files should not be
74935         compiled.
74936
74937 2008-10-24  David Kilzer  <ddkilzer@apple.com>
74938
74939         Wx build fix.
74940
74941         * platform/wx/TemporaryLinkStubs.cpp:
74942         (WebCore::setFocusRingColorChangeFunction): Removed in r37858.
74943
74944 2008-10-24  Adele Peterson  <adele@apple.com>
74945
74946         Reviewed by Sam Weinig.
74947
74948         WebCore part of fix for <rdar://problem/5839256> FILE CONTROL: multi-file upload.
74949
74950         This change adds support for multiple file selection in an <input type="file"> control when the "multiple" attribute is used.
74951         This is consistent with the direction HTML5 will be going in the future.
74952
74953         The initial implementation here will show "n files" as the text next to the control when multiple files are selected.  You can view
74954         the individual files in a tooltip for now.  Improvements to this control will come later.
74955
74956         Web developers will be able to access the FileList from the HTMLInputElement element, where they can get a base name and a size for each file.
74957         These FileList Files can also be sent in an XMLHTTPRequest.
74958
74959         * manual-tests/post-multi-file-upload.html: Added.
74960         * manual-tests/resources/multiFileResources: Added.
74961         * manual-tests/resources/multiFileResources/post-echo-and-notify-done.cgi: Added.
74962         * manual-tests/resources/multiFileResources/testFile1.html: Added.
74963         * manual-tests/resources/multiFileResources/testFile2.html: Added.
74964         * manual-tests/resources/multiFileResources/testFile3.html: Added.
74965
74966         * WebCore.base.exp: Added support to export the new "chooseFilenames" method to be used in WebKit.
74967
74968         * html/HTMLInputElement.cpp:
74969         (WebCore::HTMLInputElement::parseMappedAttribute): Add support for the multiple attribute.
74970         (WebCore::HTMLInputElement::value): Added comments.  The HTML5 spec says that value shouldn't apply for the file upload control,
74971         but we don't want to break the behavior for existing websites that may rely on this.
74972         (WebCore::HTMLInputElement::setValue): ditto.
74973         (WebCore::HTMLInputElement::setValueFromRenderer): This is no longer used for file upload controls. setFileListFromRenderer is used instead.
74974         (WebCore::HTMLInputElement::setFileListFromRenderer): Added.
74975         * html/HTMLInputElement.h:
74976
74977         * page/Chrome.cpp: (WebCore::Chrome::setToolTip): Show a tooltip with the file name list for the multi-file upload control.
74978
74979         * page/DragController.cpp: (WebCore::DragController::concludeDrag): Updated to support multiple files.
74980
74981         * platform/FileChooser.cpp: Add support for maintaining a list of file paths that can be retrieved by the renderer.
74982         (WebCore::FileChooser::FileChooser):
74983         (WebCore::FileChooser::create):
74984         (WebCore::FileChooser::clear):
74985         (WebCore::FileChooser::chooseFile):
74986         (WebCore::FileChooser::chooseFiles):
74987         (WebCore::FileChooser::chooseIcon):
74988         * platform/FileChooser.h:
74989         (WebCore::FileChooser::filePaths):
74990         (WebCore::FileChooser::allowsMultipleFiles):
74991
74992         * platform/graphics/Icon.h:
74993         * platform/graphics/mac/IconMac.mm: (WebCore::Icon::newIconForFiles): Returns a generic icon for multiple files.
74994         * platform/graphics/gtk/IconGtk.cpp: (WebCore::Icon::newIconForFiles): stubbed out.
74995         * platform/graphics/qt/IconQt.cpp: (WebCore::Icon::newIconForFiles): ditto.
74996         * platform/graphics/win/IconWin.cpp: (WebCore::Icon::newIconForFiles): ditto.
74997
74998         * platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth):  Updated to deal with new filenames vector.
74999         * platform/mac/FileChooserMac.mm: (WebCore::FileChooser::basenameForWidth): ditto.
75000         * platform/qt/FileChooserQt.cpp:
75001         (WebCore::FileChooser::openFileChooser):
75002         (WebCore::FileChooser::basenameForWidth):
75003         * platform/win/FileChooserWin.cpp: (WebCore::FileChooser::basenameForWidth):
75004
75005         * platform/network/mac/FormDataStreamMac.mm: (WebCore::disassociateStreamWithResourceHandle):
75006         Removed unnecessary assertion.  This can get hit when connectionDidFinishLoading and cancel
75007         both get called for the same ResourceHandle.  This getting called twice has no negative effect.
75008
75009         * rendering/RenderFileUploadControl.cpp:
75010         (WebCore::RenderFileUploadControl::valueChanged):  Calls setFileListFromRenderer.
75011         (WebCore::RenderFileUploadControl::allowsMultipleFiles):  Added.
75012         (WebCore::RenderFileUploadControl::updateFromElement):  Uses the new filenames call from FileChooser.
75013         (WebCore::RenderFileUploadControl::receiveDroppedFiles):  Updated to support multiple files.
75014         * rendering/RenderFileUploadControl.h:
75015
75016 2008-10-23  Peter Kasting  <pkasting@google.com>
75017
75018         Reviewed by David Hyatt.
75019
75020         https://bugs.webkit.org/show_bug.cgi?id=21844
75021         Remove setFocusRingColorChangeFunction.
75022
75023         * page/Page.cpp:
75024         (WebCore::Page::Page):
75025         * platform/graphics/Color.h:
75026         * platform/graphics/mac/ColorMac.mm:
75027         (WebCore::focusRingColor):
75028         * platform/graphics/qt/GraphicsContextQt.cpp:
75029         * platform/graphics/win/ColorSafari.cpp:
75030
75031 2008-10-24  David Kilzer  <ddkilzer@apple.com>
75032
75033         Build fix for Qt.
75034
75035         Reviewed by Greg.
75036
75037         * WebCore.pro: Added missing *.idl files.
75038
75039 2008-10-24  Greg Bolsinga  <bolsinga@apple.com>
75040
75041         Reviewed by Sam Weinig.
75042
75043         https://bugs.webkit.org/show_bug.cgi?id=21475
75044
75045         Provide support for the Geolocation API
75046
75047         http://dev.w3.org/geo/api/spec-source.html
75048
75049         Test: geolocation/geolocation-not-implemented.html
75050
75051         * DerivedSources.make:
75052         * GNUmakefile.am: Added Geolocation support
75053         * WebCore.pro: Added Geolocation support
75054         * WebCore.vcproj/WebCore.vcproj: Added Geolocation support
75055         * WebCore.xcodeproj/project.pbxproj: Added Geolocation support
75056         * WebCoreSources.bkl: Added Geolocation support
75057         * bindings/js/JSCustomPositionCallback.cpp: Added.
75058         (WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
75059         (WebCore::JSCustomPositionCallback::handleEvent):
75060         * bindings/js/JSCustomPositionCallback.h: Added.
75061         (WebCore::JSCustomPositionCallback::create):
75062         * bindings/js/JSCustomPositionErrorCallback.cpp: Added.
75063         (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
75064         (WebCore::JSCustomPositionErrorCallback::handleEvent):
75065         * bindings/js/JSCustomPositionErrorCallback.h: Added.
75066         (WebCore::JSCustomPositionErrorCallback::create):
75067         * bindings/js/JSDOMBinding.cpp: move markDOMObjectWrapper here from JSDOMWindowCustom
75068         (WebCore::markDOMObjectWrapper):
75069         * bindings/js/JSDOMBinding.h: move markDOMObjectWrapper here from JSDOMWindowCustom
75070         * bindings/js/JSDOMWindowCustom.cpp: move markDOMObjectWrapper to JSDOMBinding
75071         * bindings/js/JSGeolocationCustom.cpp: Added.
75072         (WebCore::JSGeolocation::getCurrentPosition):
75073         (WebCore::JSGeolocation::watchPosition):
75074         * bindings/js/JSNavigatorCustom.cpp: handle marking Geolocation
75075         (WebCore::JSNavigator::mark):
75076         * dom/Document.cpp:
75077         (WebCore::Document::Document):
75078         * dom/Document.h:
75079         (WebCore::Document::setUsingGeolocation):
75080         (WebCore::Document::usingGeolocation):
75081         * loader/FrameLoader.cpp: don't add to back forward cache if using Geolocation
75082         (WebCore::FrameLoader::canCachePage):
75083         * page/Geolocation.cpp: Added.
75084         (WebCore::Geolocation::GeoNotifier::GeoNotifier):
75085         (WebCore::Geolocation::GeoNotifier::timerFired):
75086         (WebCore::Geolocation::Geolocation):
75087         (WebCore::Geolocation::disconnectFrame):
75088         (WebCore::Geolocation::getCurrentPosition):
75089         (WebCore::Geolocation::watchPosition):
75090         (WebCore::Geolocation::clearWatch):
75091         (WebCore::Geolocation::stopUpdatingIfEmpty):
75092         (WebCore::Geolocation::sendErrorToOneShots):
75093         (WebCore::Geolocation::sendErrorToWatchers):
75094         (WebCore::Geolocation::sendPositionToOneShots):
75095         (WebCore::Geolocation::sendPositionToWatchers):
75096         (WebCore::Geolocation::handleError):
75097         (WebCore::Geolocation::geolocationServicePositionChanged):
75098         (WebCore::Geolocation::geolocationServiceErrorOccurred):
75099         * page/Geolocation.h: Added.
75100         (WebCore::Geolocation::create):
75101         (WebCore::Geolocation::~Geolocation):
75102         (WebCore::Geolocation::lastPosition):
75103         (WebCore::Geolocation::GeoNotifier::create):
75104         * page/Geolocation.idl: Added.
75105         * page/Geoposition.cpp: Added.
75106         (WebCore::Geoposition::toString):
75107         * page/Geoposition.h: Added.
75108         (WebCore::Geoposition::create):
75109         (WebCore::Geoposition::latitude):
75110         (WebCore::Geoposition::longitude):
75111         (WebCore::Geoposition::altitude):
75112         (WebCore::Geoposition::accuracy):
75113         (WebCore::Geoposition::altitudeAccuracy):
75114         (WebCore::Geoposition::heading):
75115         (WebCore::Geoposition::velocity):
75116         (WebCore::Geoposition::timestamp):
75117         (WebCore::Geoposition::Geoposition):
75118         * page/Geoposition.idl: Added.
75119         * page/Navigator.cpp:
75120         (WebCore::Navigator::disconnectFrame): disconnect Geolocation
75121         (WebCore::Navigator::geolocation): accessor for Geolocation
75122         * page/Navigator.h:
75123         (WebCore::Navigator::optionalGeolocation): accessor for Geolocation
75124         * page/Navigator.idl: accessor for Geolocation
75125         * page/PositionCallback.h: Added.
75126         (WebCore::PositionCallback::~PositionCallback):
75127         * page/PositionCallback.idl: Added.
75128         * page/PositionError.h: Added.
75129         (WebCore::PositionError::):
75130         (WebCore::PositionError::create):
75131         (WebCore::PositionError::code):
75132         (WebCore::PositionError::message):
75133         (WebCore::PositionError::PositionError):
75134         * page/PositionError.idl: Added.
75135         * page/PositionErrorCallback.h: Added.
75136         (WebCore::PositionErrorCallback::~PositionErrorCallback):
75137         * page/PositionErrorCallback.idl: Added.
75138         * page/PositionOptions.h: Added.
75139         (WebCore::PositionOptions::create):
75140         (WebCore::PositionOptions::enableHighAccuracy):
75141         (WebCore::PositionOptions::setEnableHighAccuracy):
75142         (WebCore::PositionOptions::timeout):
75143         (WebCore::PositionOptions::setTimeout):
75144         (WebCore::PositionOptions::PositionOptions):
75145         * page/PositionOptions.idl: Added.
75146         * platform/GeolocationService.cpp: Added.
75147         (WebCore::GeolocationService::GeolocationService):
75148         (WebCore::GeolocationService::positionChanged):
75149         (WebCore::GeolocationService::errorOccurred):
75150         * platform/GeolocationService.h: Added.
75151         (WebCore::GeolocationServiceClient::~GeolocationServiceClient):
75152         (WebCore::GeolocationServiceClient::geolocationServicePositionChanged):
75153         (WebCore::GeolocationServiceClient::geolocationServiceErrorOccurred):
75154         (WebCore::GeolocationService::~GeolocationService):
75155
75156 2008-10-24  Simon Fraser  <simon.fraser@apple.com>
75157
75158         Reviewed by Darin Adler
75159
75160         https://bugs.webkit.org/show_bug.cgi?id=21818
75161
75162         Add HashTraits for AtomicString so that AtomicString can be used as
75163         the key for a HashMap or HashSet.
75164
75165         * GNUmakefile.am: add AtomicStringHash.h
75166         * WebCore.vcproj/WebCore.vcproj: add AtomicStringHash.h
75167         * WebCore.xcodeproj/project.pbxproj: add AtomicStringHash.h
75168         * platform/text/AtomicString.h:
75169         (WebCore::AtomicString::AtomicString):
75170         (WebCore::AtomicString::isHashTableDeletedValue):
75171             specialize DefaultHash for AtomicString to use AtomicStringHash
75172         * platform/text/AtomicStringHash.h: Added.
75173         * platform/text/StringImpl.cpp:
75174         (WebCore::StringImpl::StringImpl):
75175             compute the hash up-front for the empty string
75176         * platform/text/StringImpl.h:
75177         (WebCore::StringImpl::existingHash):
75178             method to get the hash without a test and branch, for callers like
75179             AtomicStringHash who can guarantee that the hash has already been computed.
75180
75181 2008-10-24  Simon Fraser  <simon.fraser@apple.com>
75182
75183         Reviewed by Sam Weinig
75184
75185         https://bugs.webkit.org/show_bug.cgi?id=21857
75186
75187         Add WebKitCSSKeyframeRule and WebKitCSSKeyframesRule to the
75188         switch in _wrapCSSRule.
75189
75190         * bindings/objc/DOMCSS.mm:
75191         (+[DOMCSSRule _wrapCSSRule:WebCore::]):
75192
75193 2008-10-24  Adam Roben  <aroben@apple.com>
75194
75195         Windows build fix
75196
75197         * plugins/PluginView.cpp:
75198
75199 2008-10-24  Dan Bernstein  <mitz@apple.com>
75200
75201         Reviewed by Sam Weinig.
75202
75203         - fix https://bugs.webkit.org/show_bug.cgi?id=21851
75204           <rdar://problem/6304151> REGRESSION (r36513): Crash when removing a widget with percent height
75205
75206         Test: fast/replaced/percent-height-in-anonymous-block-widget.html
75207
75208         * rendering/RenderWidget.cpp:
75209         (WebCore::RenderWidget::destroy): Copied code added to
75210         RenderBox::destroy() in r36513 into this function.
75211
75212 2008-10-24  Timothy Hatcher  <timothy@apple.com>
75213
75214         Add a mechanism to ask the InspectorClient for key/value setting pairs.
75215         These settings can be strings, numbers, booleans or string vectors. The
75216         settings are also bridged to and from JavaScript.
75217
75218         https://bugs.webkit.org/show_bug.cgi?id=21856
75219
75220         Reviewed by Darin Adler.
75221
75222         * WebCore.base.exp: Expose the String CFStringRef constructor.
75223         * inspector/InspectorClient.h:
75224         (WebCore::InspectorClient::populateSetting): Added, pure virtual.
75225         (WebCore::InspectorClient::storeSetting): Ditto.
75226         (WebCore::InspectorClient::removeSetting): Ditto.
75227         * inspector/InspectorController.cpp:
75228         (WebCore::setting): Calls InspectorController::setting and wraps the result in script types.
75229         (WebCore::setSetting): Calls InspectorController::setSetting after converting from script types.
75230         (WebCore::InspectorController::InspectorController): Increment a global static
75231         to track the number of live InspectorControllers.
75232         (WebCore::InspectorController::~InspectorController): Decrement the global static
75233         that tracks the number of live InspectorControllers. Delete the setting cache if there
75234         are no more live controllers.
75235         (WebCore::InspectorController::setting): Check the cache and return the setting from there,
75236         otherwise make a new Setting and ask the client to populate it.
75237         (WebCore::InspectorController::setSetting): Change the cache and ask the client to store it.
75238         (WebCore::InspectorController::windowScriptObjectAvailable): Add setting and setSetting
75239         to the InspectorController script class.
75240         * inspector/InspectorController.h:
75241         (WebCore::InspectorController::Setting::Setting):
75242         (WebCore::InspectorController::Setting::operator=):
75243         (WebCore::InspectorController::Setting::type): Return m_type.
75244         (WebCore::InspectorController::Setting::string): Return m_string. Assert the type is correct.
75245         (WebCore::InspectorController::Setting::stringVector): Return m_stringVector.
75246         Assert the type is correct.
75247         (WebCore::InspectorController::Setting::doubleValue): Return m_simpleContent.m_double.
75248         Assert the type is correct.
75249         (WebCore::InspectorController::Setting::integerValue): Return m_simpleContent.m_integer.
75250         Assert the type is correct.
75251         (WebCore::InspectorController::Setting::booleanValue): Return m_simpleContent.m_boolean.
75252         Assert the type is correct.
75253         (WebCore::InspectorController::Setting::set): Overloaded for each data type, sets the right
75254         field and the type.
75255         * loader/EmptyClients.h:
75256         (WebCore::EmptyInspectorClient::populateSetting): Added, empty method.
75257         (WebCore::EmptyInspectorClient::storeSetting): Ditto.
75258         (WebCore::EmptyInspectorClient::removeSetting): Ditto.
75259
75260 2008-10-24  Cameron Zwarich  <zwarich@apple.com>
75261
75262         Reviewed by Sam Weinig.
75263
75264         Remove some C-style casts.
75265
75266         * html/HTMLViewSourceDocument.cpp:
75267         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
75268
75269 2008-10-24  Darin Adler  <darin@apple.com>
75270
75271         - finish rolling out https://bugs.webkit.org/show_bug.cgi?id=21732
75272
75273         * bindings/js/JSAttrCustom.cpp:
75274         * bindings/js/JSCSSRuleCustom.cpp:
75275         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
75276         * bindings/js/JSCSSValueCustom.cpp:
75277         * bindings/js/JSCanvasPixelArrayCustom.h:
75278         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
75279         * bindings/js/JSClipboardCustom.cpp:
75280         * bindings/js/JSConsoleCustom.cpp:
75281         * bindings/js/JSCustomSQLStatementCallback.cpp:
75282         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
75283         * bindings/js/JSCustomSQLTransactionCallback.cpp:
75284         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
75285         * bindings/js/JSCustomVoidCallback.cpp:
75286         * bindings/js/JSCustomVoidCallback.h:
75287         * bindings/js/JSCustomXPathNSResolver.cpp:
75288         * bindings/js/JSCustomXPathNSResolver.h:
75289         * bindings/js/JSDOMApplicationCacheCustom.cpp:
75290         * bindings/js/JSDOMBinding.cpp:
75291         * bindings/js/JSDOMBinding.h:
75292         * bindings/js/JSDOMWindowBase.cpp:
75293         * bindings/js/JSDOMWindowBase.h:
75294         * bindings/js/JSDOMWindowCustom.cpp:
75295         * bindings/js/JSDOMWindowCustom.h:
75296         * bindings/js/JSDOMWindowShell.cpp:
75297         * bindings/js/JSDOMWindowShell.h:
75298         * bindings/js/JSDatabaseCustom.cpp:
75299         * bindings/js/JSDedicatedWorkerCustom.cpp:
75300         * bindings/js/JSDocumentCustom.cpp:
75301         * bindings/js/JSElementCustom.cpp:
75302         * bindings/js/JSEventCustom.cpp:
75303         * bindings/js/JSEventListener.cpp:
75304         * bindings/js/JSEventTarget.cpp:
75305         * bindings/js/JSEventTarget.h:
75306         * bindings/js/JSEventTargetBase.h:
75307         * bindings/js/JSEventTargetNodeCustom.cpp:
75308         * bindings/js/JSHTMLAllCollection.h:
75309         * bindings/js/JSHTMLAppletElementCustom.cpp:
75310         * bindings/js/JSHTMLCollectionCustom.cpp:
75311         * bindings/js/JSHTMLDocumentCustom.cpp:
75312         * bindings/js/JSHTMLEmbedElementCustom.cpp:
75313         * bindings/js/JSHTMLFormElementCustom.cpp:
75314         * bindings/js/JSHTMLFrameElementCustom.cpp:
75315         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
75316         * bindings/js/JSHTMLIFrameElementCustom.cpp:
75317         * bindings/js/JSHTMLInputElementCustom.cpp:
75318         * bindings/js/JSHTMLObjectElementCustom.cpp:
75319         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
75320         * bindings/js/JSHTMLSelectElementCustom.cpp:
75321         * bindings/js/JSHTMLSelectElementCustom.h:
75322         * bindings/js/JSHistoryCustom.cpp:
75323         * bindings/js/JSImageDataCustom.cpp:
75324         * bindings/js/JSInspectedObjectWrapper.cpp:
75325         * bindings/js/JSInspectedObjectWrapper.h:
75326         * bindings/js/JSInspectorCallbackWrapper.cpp:
75327         * bindings/js/JSInspectorCallbackWrapper.h:
75328         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
75329         * bindings/js/JSLocationCustom.cpp:
75330         * bindings/js/JSMessagePortCustom.cpp:
75331         * bindings/js/JSMimeTypeArrayCustom.cpp:
75332         * bindings/js/JSNamedNodeMapCustom.cpp:
75333         * bindings/js/JSNamedNodesCollection.cpp:
75334         * bindings/js/JSNamedNodesCollection.h:
75335         * bindings/js/JSNavigatorCustom.cpp:
75336         * bindings/js/JSNodeCustom.cpp:
75337         * bindings/js/JSNodeFilterCondition.cpp:
75338         * bindings/js/JSNodeFilterCondition.h:
75339         * bindings/js/JSNodeFilterCustom.cpp:
75340         * bindings/js/JSNodeIteratorCustom.cpp:
75341         * bindings/js/JSNodeListCustom.cpp:
75342         * bindings/js/JSPluginArrayCustom.cpp:
75343         * bindings/js/JSPluginCustom.cpp:
75344         * bindings/js/JSPluginElementFunctions.cpp:
75345         * bindings/js/JSPluginElementFunctions.h:
75346         * bindings/js/JSQuarantinedObjectWrapper.cpp:
75347         * bindings/js/JSQuarantinedObjectWrapper.h:
75348         * bindings/js/JSRGBColor.cpp:
75349         * bindings/js/JSRGBColor.h:
75350         * bindings/js/JSSQLResultSetRowListCustom.cpp:
75351         * bindings/js/JSSQLTransactionCustom.cpp:
75352         * bindings/js/JSSVGElementInstanceCustom.cpp:
75353         * bindings/js/JSSVGLengthCustom.cpp:
75354         * bindings/js/JSSVGMatrixCustom.cpp:
75355         * bindings/js/JSSVGPathSegCustom.cpp:
75356         * bindings/js/JSSVGPathSegListCustom.cpp:
75357         * bindings/js/JSSVGPointListCustom.cpp:
75358         * bindings/js/JSSVGTransformListCustom.cpp:
75359         * bindings/js/JSStorageCustom.cpp:
75360         * bindings/js/JSStyleSheetCustom.cpp:
75361         * bindings/js/JSStyleSheetListCustom.cpp:
75362         * bindings/js/JSTextCustom.cpp:
75363         * bindings/js/JSTreeWalkerCustom.cpp:
75364         * bindings/js/JSXMLHttpRequestCustom.cpp:
75365         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
75366         * bindings/js/JSXSLTProcessorCustom.cpp:
75367         * bindings/js/ScheduledAction.cpp:
75368         * bindings/js/ScheduledAction.h:
75369         * bindings/js/ScriptController.cpp:
75370         * bindings/js/ScriptController.h:
75371         * bindings/objc/WebScriptObject.mm:
75372         * bindings/objc/WebScriptObjectPrivate.h:
75373         * bindings/scripts/CodeGeneratorJS.pm:
75374         * bridge/NP_jsobject.cpp:
75375         * bridge/c/c_instance.cpp:
75376         * bridge/c/c_instance.h:
75377         * bridge/c/c_runtime.cpp:
75378         * bridge/c/c_runtime.h:
75379         * bridge/c/c_utility.cpp:
75380         * bridge/c/c_utility.h:
75381         * bridge/jni/jni_instance.cpp:
75382         * bridge/jni/jni_instance.h:
75383         * bridge/jni/jni_jsobject.h:
75384         * bridge/jni/jni_jsobject.mm:
75385         * bridge/jni/jni_objc.mm:
75386         * bridge/jni/jni_runtime.cpp:
75387         * bridge/jni/jni_runtime.h:
75388         * bridge/jni/jni_utility.cpp:
75389         * bridge/jni/jni_utility.h:
75390         * bridge/objc/WebScriptObject.h:
75391         * bridge/objc/objc_class.h:
75392         * bridge/objc/objc_class.mm:
75393         * bridge/objc/objc_instance.h:
75394         * bridge/objc/objc_instance.mm:
75395         * bridge/objc/objc_runtime.h:
75396         * bridge/objc/objc_runtime.mm:
75397         * bridge/objc/objc_utility.h:
75398         * bridge/objc/objc_utility.mm:
75399         * bridge/qt/qt_class.cpp:
75400         * bridge/qt/qt_class.h:
75401         * bridge/qt/qt_instance.cpp:
75402         * bridge/qt/qt_instance.h:
75403         * bridge/qt/qt_runtime.cpp:
75404         * bridge/qt/qt_runtime.h:
75405         * bridge/runtime.cpp:
75406         * bridge/runtime.h:
75407         * bridge/runtime_array.cpp:
75408         * bridge/runtime_array.h:
75409         * bridge/runtime_method.cpp:
75410         * bridge/runtime_method.h:
75411         * bridge/runtime_object.cpp:
75412         * bridge/runtime_object.h:
75413         * bridge/testqtbindings.cpp:
75414         * inspector/JavaScriptCallFrame.cpp:
75415         * inspector/JavaScriptCallFrame.h:
75416         * inspector/JavaScriptProfile.cpp:
75417         * inspector/JavaScriptProfile.h:
75418         * inspector/JavaScriptProfileNode.cpp:
75419         * inspector/JavaScriptProfileNode.h:
75420         * loader/FrameLoader.cpp:
75421         * loader/FrameLoader.h:
75422         * page/Console.cpp:
75423         * page/Console.h:
75424         * plugins/MimeTypeArray.h:
75425         * plugins/Plugin.h:
75426         * plugins/PluginArray.h:
75427         * plugins/PluginView.cpp:
75428         * xml/XMLHttpRequest.cpp:
75429         Use JSValue* instead of JSValuePtr.
75430
75431 2008-10-24  Simon Hausmann  <hausmann@webkit.org>
75432
75433         Fix the Qt build.
75434
75435         * bridge/qt/qt_instance.cpp:
75436         (JSC::Bindings::QtField::valueFromInstance):
75437
75438 2008-10-24  David Kilzer  <ddkilzer@apple.com>
75439
75440         Rolled out r37840 and r37841.
75441
75442         * DerivedSources.make:
75443         * GNUmakefile.am:
75444         * WebCore.pro:
75445         * WebCore.vcproj/WebCore.vcproj:
75446         * WebCore.xcodeproj/project.pbxproj:
75447         * WebCoreSources.bkl:
75448         * bindings/js/JSCustomPositionCallback.cpp: Removed.
75449         * bindings/js/JSCustomPositionCallback.h: Removed.
75450         * bindings/js/JSCustomPositionErrorCallback.cpp: Removed.
75451         * bindings/js/JSCustomPositionErrorCallback.h: Removed.
75452         * bindings/js/JSDOMBinding.cpp:
75453         * bindings/js/JSDOMBinding.h:
75454         * bindings/js/JSDOMWindowCustom.cpp:
75455         (WebCore::markDOMObjectWrapper):
75456         * bindings/js/JSGeolocationCustom.cpp: Removed.
75457         * bindings/js/JSNavigatorCustom.cpp:
75458         * dom/Document.cpp:
75459         (WebCore::Document::Document):
75460         * dom/Document.h:
75461         * loader/FrameLoader.cpp:
75462         (WebCore::FrameLoader::canCachePage):
75463         * page/Geolocation.cpp: Removed.
75464         * page/Geolocation.h: Removed.
75465         * page/Geolocation.idl: Removed.
75466         * page/Geoposition.cpp: Removed.
75467         * page/Geoposition.h: Removed.
75468         * page/Geoposition.idl: Removed.
75469         * page/Navigator.cpp:
75470         (WebCore::Navigator::disconnectFrame):
75471         * page/Navigator.h:
75472         * page/Navigator.idl:
75473         * page/PositionCallback.h: Removed.
75474         * page/PositionCallback.idl: Removed.
75475         * page/PositionError.h: Removed.
75476         * page/PositionError.idl: Removed.
75477         * page/PositionErrorCallback.h: Removed.
75478         * page/PositionErrorCallback.idl: Removed.
75479         * page/PositionOptions.h: Removed.
75480         * page/PositionOptions.idl: Removed.
75481         * platform/GeolocationService.cpp: Removed.
75482         * platform/GeolocationService.h: Removed.
75483
75484 2008-10-23  David Kilzer  <ddkilzer@apple.com>
75485
75486         Attempt to fix GTK build.
75487
75488         * GNUmakefile.am: Added new *.idl files that were missing.
75489
75490 2008-10-23  Greg Bolsinga  <bolsinga@apple.com>
75491
75492         Reviewed by Sam Weinig.
75493
75494         https://bugs.webkit.org/show_bug.cgi?id=21475
75495
75496         Provide support for the Geolocation API
75497
75498         http://dev.w3.org/geo/api/spec-source.html
75499
75500         Test: geolocation/geolocation-not-implemented.html
75501
75502         * DerivedSources.make:
75503         * GNUmakefile.am: Added Geolocation support
75504         * WebCore.pro: Added Geolocation support
75505         * WebCore.vcproj/WebCore.vcproj: Added Geolocation support
75506         * WebCore.xcodeproj/project.pbxproj: Added Geolocation support
75507         * WebCoreSources.bkl: Added Geolocation support
75508         * bindings/js/JSCustomPositionCallback.cpp: Added.
75509         (WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
75510         (WebCore::JSCustomPositionCallback::handleEvent):
75511         * bindings/js/JSCustomPositionCallback.h: Added.
75512         (WebCore::JSCustomPositionCallback::create):
75513         * bindings/js/JSCustomPositionErrorCallback.cpp: Added.
75514         (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
75515         (WebCore::JSCustomPositionErrorCallback::handleEvent):
75516         * bindings/js/JSCustomPositionErrorCallback.h: Added.
75517         (WebCore::JSCustomPositionErrorCallback::create):
75518         * bindings/js/JSDOMBinding.cpp: move markDOMObjectWrapper here from JSDOMWindowCustom
75519         (WebCore::markDOMObjectWrapper):
75520         * bindings/js/JSDOMBinding.h: move markDOMObjectWrapper here from JSDOMWindowCustom
75521         * bindings/js/JSDOMWindowCustom.cpp: move markDOMObjectWrapper to JSDOMBinding
75522         * bindings/js/JSGeolocationCustom.cpp: Added.
75523         (WebCore::JSGeolocation::getCurrentPosition):
75524         (WebCore::JSGeolocation::watchPosition):
75525         * bindings/js/JSNavigatorCustom.cpp: handle marking Geolocation
75526         (WebCore::JSNavigator::mark):
75527         * dom/Document.cpp:
75528         (WebCore::Document::Document):
75529         * dom/Document.h:
75530         (WebCore::Document::setUsingGeolocation):
75531         (WebCore::Document::usingGeolocation):
75532         * loader/FrameLoader.cpp: don't add to back forward cache if using Geolocation
75533         (WebCore::FrameLoader::canCachePage):
75534         * page/Geolocation.cpp: Added.
75535         (WebCore::Geolocation::GeoNotifier::GeoNotifier):
75536         (WebCore::Geolocation::GeoNotifier::timerFired):
75537         (WebCore::Geolocation::Geolocation):
75538         (WebCore::Geolocation::disconnectFrame):
75539         (WebCore::Geolocation::getCurrentPosition):
75540         (WebCore::Geolocation::watchPosition):
75541         (WebCore::Geolocation::clearWatch):
75542         (WebCore::Geolocation::stopUpdatingIfEmpty):
75543         (WebCore::Geolocation::sendErrorToOneShots):
75544         (WebCore::Geolocation::sendErrorToWatchers):
75545         (WebCore::Geolocation::sendPositionToOneShots):
75546         (WebCore::Geolocation::sendPositionToWatchers):
75547         (WebCore::Geolocation::handleError):
75548         (WebCore::Geolocation::geolocationServicePositionChanged):
75549         (WebCore::Geolocation::geolocationServiceErrorOccurred):
75550         * page/Geolocation.h: Added.
75551         (WebCore::Geolocation::create):
75552         (WebCore::Geolocation::~Geolocation):
75553         (WebCore::Geolocation::lastPosition):
75554         (WebCore::Geolocation::GeoNotifier::create):
75555         * page/Geolocation.idl: Added.
75556         * page/Geoposition.cpp: Added.
75557         (WebCore::Geoposition::toString):
75558         * page/Geoposition.h: Added.
75559         (WebCore::Geoposition::create):
75560         (WebCore::Geoposition::latitude):
75561         (WebCore::Geoposition::longitude):
75562         (WebCore::Geoposition::altitude):
75563         (WebCore::Geoposition::accuracy):
75564         (WebCore::Geoposition::altitudeAccuracy):
75565         (WebCore::Geoposition::heading):
75566         (WebCore::Geoposition::velocity):
75567         (WebCore::Geoposition::timestamp):
75568         (WebCore::Geoposition::Geoposition):
75569         * page/Geoposition.idl: Added.
75570         * page/Navigator.cpp:
75571         (WebCore::Navigator::disconnectFrame): disconnect Geolocation
75572         (WebCore::Navigator::geolocation): accessor for Geolocation
75573         * page/Navigator.h:
75574         (WebCore::Navigator::optionalGeolocation): accessor for Geolocation
75575         * page/Navigator.idl: accessor for Geolocation
75576         * page/PositionCallback.h: Added.
75577         (WebCore::PositionCallback::~PositionCallback):
75578         * page/PositionCallback.idl: Added.
75579         * page/PositionError.h: Added.
75580         (WebCore::PositionError::):
75581         (WebCore::PositionError::create):
75582         (WebCore::PositionError::code):
75583         (WebCore::PositionError::message):
75584         (WebCore::PositionError::PositionError):
75585         * page/PositionError.idl: Added.
75586         * page/PositionErrorCallback.h: Added.
75587         (WebCore::PositionErrorCallback::~PositionErrorCallback):
75588         * page/PositionErrorCallback.idl: Added.
75589         * page/PositionOptions.h: Added.
75590         (WebCore::PositionOptions::create):
75591         (WebCore::PositionOptions::enableHighAccuracy):
75592         (WebCore::PositionOptions::setEnableHighAccuracy):
75593         (WebCore::PositionOptions::timeout):
75594         (WebCore::PositionOptions::setTimeout):
75595         (WebCore::PositionOptions::PositionOptions):
75596         * page/PositionOptions.idl: Added.
75597         * platform/GeolocationService.cpp: Added.
75598         (WebCore::GeolocationService::GeolocationService):
75599         (WebCore::GeolocationService::positionChanged):
75600         (WebCore::GeolocationService::errorOccurred):
75601         * platform/GeolocationService.h: Added.
75602         (WebCore::GeolocationServiceClient::~GeolocationServiceClient):
75603         (WebCore::GeolocationServiceClient::geolocationServicePositionChanged):
75604         (WebCore::GeolocationServiceClient::geolocationServiceErrorOccurred):
75605         (WebCore::GeolocationService::~GeolocationService):
75606
75607 2008-10-23  Alp Toker  <alp@nuanti.com>
75608
75609         Fix typo in comment in previous commit. GTK -> GLIB
75610
75611         * platform/gtk/guriescape.c:
75612
75613 2008-10-23  Kalle Vahlman  <kalle.vahlman@movial.com>
75614
75615         Reviewed by Alp Toker.
75616
75617         https://bugs.webkit.org/show_bug.cgi?id=21824
75618         [GTK] FileSystem abstraction uses features from Glib 2.16
75619
75620         Wrap g_uri_unescape_string() to fix building with pre-2.16 Glib
75621
75622         * platform/gtk/guriescape.c:
75623         (unescape_character):
75624         (_webcore_g_uri_unescape_segment):
75625         (_webcore_g_uri_unescape_string):
75626         * platform/gtk/guriescape.h:
75627
75628 2008-10-23  Jan Michael Alonzo  <jmalonzo@webkit.org>
75629
75630         Fix Gtk build typo introduced in http://trac.webkit.org/changeset/37826.
75631
75632         * GNUmakefile.am:
75633
75634 2008-10-23  Darin Fisher  <darin@chromium.org>
75635
75636         Reviewed by Eric Seidel.
75637
75638         m_frame null checked but then dereferenced
75639         https://bugs.webkit.org/show_bug.cgi?id=21845
75640
75641         This error was found using a static analysis tool, and so I do not know
75642         how to produce a null m_frame on entry to this method.  Hence, I have
75643         not included a regression test.
75644
75645         * page/EventHandler.cpp:
75646         (WebCore::EventHandler::allowDHTMLDrag): Add an early return.
75647
75648 2008-10-23  Dan Bernstein  <mitz@apple.com>
75649
75650         Reviewed by Sam Weinig with no hesitation.
75651
75652         - fix the HTML/CSS case of https://bugs.webkit.org/show_bug.cgi?id=19839
75653           <rdar://problem/6304805> A PDF,RLE sequence that should be a no-op affects bidi reordering
75654
75655         Test: fast/text/bidi-embedding-pop-and-push-same.html
75656
75657         * platform/text/BidiResolver.h:
75658         (WebCore::BidiResolver::embed): Changed to only add the embedding
75659         operation to a vector of pending operations.
75660
75661         (WebCore::BidiResolver::lowerExplicitEmbeddingLevel): Added. Moved the
75662         code that used to be in the PDF case of embed() here, except the part
75663         that sets the context.
75664
75665         (WebCore::BidiResolver::raiseExplicitEmbeddingLevel): Added. Moved the
75666         code that used to be in the non-PDF case of embed() here, except the
75667         part the sets the context.
75668
75669         (WebCore::BidiResolver::commitExplicitEmbedding): Added. Processes the
75670         explicit embedding operations in the vector by creating an updated
75671         context and determining the old and new embedding levels. If the levels
75672         are not the same, calls {lower,raise}ExplicitEmbeddingLevel(). Always
75673         sets the context to the new one.
75674
75675         (WebCore::BidiResolver::createBidiRunsForLine): Added calls to
75676         commitExplicitEmbedding() after calling embed() and after calling
75677         increment().
75678
75679         * rendering/bidi.cpp:
75680         (WebCore::bidiFirst): Added calls to commitExplicitEmbedding() because
75681         this function increments the resolver.
75682
75683         (WebCore::RenderBlock::skipLeadingWhitespace): Ditto.
75684
75685 2008-10-23  Jan Michael Alonzo  <jmalonzo@webkit.org>
75686
75687         Gtk build fix. Not reviewed.
75688
75689         Add DNSCurl and DNSSoup to the Gtk build
75690
75691         * GNUmakefile.am:
75692         * platform/gtk/TemporaryLinkStubs.cpp:
75693         * platform/network/soup/DNSSoup.cpp: Copied from WebCore/platform/network/curl/DNSCurl.cpp.
75694         (WebCore::prefetchDNS):
75695
75696 2008-10-23  Eric Seidel  <eric@webkit.org>
75697
75698         Reviewed by Sam Weinig.
75699
75700         Un-break the Darwin build.
75701
75702         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
75703         * platform/graphics/cg/ImageCG.cpp:
75704
75705 2008-10-23  Darin Fisher  <darin@chromium.org>
75706
75707         Reviewed by Eric Seidel.
75708
75709         Fix forward decls to be struct instead of class.
75710         https://bugs.webkit.org/show_bug.cgi?id=21838
75711
75712         * rendering/style/StyleRareInheritedData.h:
75713         * rendering/style/StyleRareNonInheritedData.h:
75714
75715 2008-10-23  Brent Fulgham  <bfulgham@gmail.com>
75716
75717         Reviewed by Oliver Hunt.
75718
75719         * platform/network/curl/ResourceRequest.h:  A better implementation
75720           of CFURLRequest, rather than void*.  This gives better compatibility
75721           with the WebKit.idl interface.
75722         (WebCore::ResourceRequest::cfURLRequest):
75723
75724 2008-10-23  Mike Pinkerton  <pinkerton@chromium.org>
75725
75726         Reviewed by Eric Seidel.
75727
75728         PLATFORM(CHROMIUM) uses CG the same way PLATFORM(MAC) does so fix
75729         ifdefs to reflect that.
75730
75731         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
75732         * platform/graphics/cg/ImageCG.cpp:
75733
75734 2008-10-23  Peter Kasting  <pkasting@google.com>
75735
75736         Reviewed by Adam Roben.
75737
75738         https://bugs.webkit.org/show_bug.cgi?id=21833
75739         Place JavaScript Debugger hooks under #if ENABLE(JAVASCRIPT_DEBUGGER).
75740
75741         * inspector/InspectorController.cpp:
75742         (WebCore::InspectorController::InspectorController):
75743         (WebCore::InspectorController::setWindowVisible):
75744         (WebCore::InspectorController::windowScriptObjectAvailable):
75745         (WebCore::InspectorController::close):
75746         * inspector/InspectorController.h:
75747         * page/Page.cpp:
75748         (WebCore::Page::Page):
75749
75750 2008-10-23  Kevin McCullough  <kmccullough@apple.com>
75751
75752         Reviewed by Tim Hatcher.
75753
75754         https://bugs.webkit.org/show_bug.cgi?id=21817
75755         Bug 21817: Manual profiler tests should be made into layout tests
75756
75757         -Moving the tests before diffing so that it's clear what changed.
75758
75759         * manual-tests/inspector/profiler-test-anonymous-event-handler.html: Removed.
75760         * manual-tests/inspector/profiler-test-anonymous-function-called-from-different-contexts.html: Removed.
75761         * manual-tests/inspector/profiler-test-anonymous-function-calls-built-in-functions.html: Removed.
75762         * manual-tests/inspector/profiler-test-anonymous-function-calls-eval.html: Removed.
75763         * manual-tests/inspector/profiler-test-apply.html: Removed.
75764         * manual-tests/inspector/profiler-test-built-in-function-calls-anonymous.html: Removed.
75765         * manual-tests/inspector/profiler-test-built-in-function-calls-user-defined-function.html: Removed.
75766         * manual-tests/inspector/profiler-test-call-nodelist-as-function.html: Removed.
75767         * manual-tests/inspector/profiler-test-calling-the-function-that-started-the-profiler-from-another-scope.html: Removed.
75768         * manual-tests/inspector/profiler-test-compare-multiple-profiles.html: Removed.
75769         * manual-tests/inspector/profiler-test-constructor.html: Removed.
75770         * manual-tests/inspector/profiler-test-dead-time.html: Removed.
75771         * manual-tests/inspector/profiler-test-deep-recursion.html: Removed.
75772         * manual-tests/inspector/profiler-test-document-dot-write.html: Removed.
75773         * manual-tests/inspector/profiler-test-event-handler.html: Removed.
75774         * manual-tests/inspector/profiler-test-execution-context-and-eval-on-same-line.html: Removed.
75775         * manual-tests/inspector/profiler-test-heavy-view.html: Removed.
75776         * manual-tests/inspector/profiler-test-inline-event-handler.html: Removed.
75777         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-anonymous-function-calls.html: Removed.
75778         * manual-tests/inspector/profiler-test-multiple-and-different-scoped-function-calls.html: Removed.
75779         * manual-tests/inspector/profiler-test-multiple-frames.html: Removed.
75780         * manual-tests/inspector/profiler-test-multiple-windows.html: Removed.
75781         * manual-tests/inspector/profiler-test-nested-anonymous-functon.html: Removed.
75782         * manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html: Removed.
75783         * manual-tests/inspector/profiler-test-no-execution-context.html: Removed.
75784         * manual-tests/inspector/profiler-test-one-execution-context.html: Removed.
75785         * manual-tests/inspector/profiler-test-profile-calls-in-included-file.html: Removed.
75786         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location-but-stop-profiling-outside-the-nesting.html: Removed.
75787         * manual-tests/inspector/profiler-test-profiling-from-a-nested-location.html: Removed.
75788         * manual-tests/inspector/profiler-test-simple-event-call.html: Removed.
75789         * manual-tests/inspector/profiler-test-simple-no-level-change.html: Removed.
75790         * manual-tests/inspector/profiler-test-start-and-stop-profiler-multiple-times.html: Removed.
75791         * manual-tests/inspector/profiler-test-start-and-stop-profiling-in-the-same-function.html: Removed.
75792         * manual-tests/inspector/profiler-test-start-but-dont-stop-profiling.html: Removed.
75793         * manual-tests/inspector/profiler-test-stop-profiling-after-setTimeout.html: Removed.
75794         * manual-tests/inspector/profiler-test-stop-then-function-call.html: Removed.
75795         * manual-tests/inspector/profiler-test-throw-exception-from-eval.html: Removed.
75796         * manual-tests/inspector/profiler-test-two-execution-contexts.html: Removed.
75797         * manual-tests/inspector/profiler-test-user-defined-function-calls-built-in-functions.html: Removed.
75798         * manual-tests/inspector/profiler-test-window-dot-eval.html: Removed.
75799         * manual-tests/inspector/resources/other-frame.html: Removed.
75800         * manual-tests/inspector/resources/other-window.html: Removed.
75801         * manual-tests/inspector/resources/profiler-test-JS-resources.js: Removed.
75802
75803 2008-10-23  Adam Barth  <abarth@webkit.org>
75804
75805         Reviewed by Sam Weinig.
75806
75807         https://bugs.webkit.org/show_bug.cgi?id=21826
75808
75809         Add accessor for SecurityOrigin::m_domainWasSetInDOM.
75810
75811         * page/SecurityOrigin.h:
75812         (WebCore::SecurityOrigin::domainWasSetInDOM):
75813
75814 2008-10-23  Darin Adler  <darin@apple.com>
75815
75816         - roll out https://bugs.webkit.org/show_bug.cgi?id=21732
75817
75818         * bindings/js/ScheduledAction.h:
75819         * inspector/InspectorController.cpp:
75820         ProtectedPtr<JSValue> instead of ProtectedPtr<JSValuePtr>.
75821
75822 2008-10-23  Simon Hausmann  <hausmann@webkit.org>
75823
75824         Fix the Qt build.
75825
75826         * bridge/qt/qt_runtime.cpp:
75827         (JSC::Bindings::QtConnectionObject::execute):
75828         * bridge/qt/qt_runtime.h:
75829         (JSC::Bindings::QtRuntimeMethod::createStructureID):
75830
75831 2008-10-23  Alexey Proskuryakov  <ap@webkit.org>
75832
75833         Reviewed by Maciej Stachowiak.
75834
75835         https://bugs.webkit.org/show_bug.cgi?id=21825
75836         JSDOMBinding should not blindly cast the global object to JSDOMWindow
75837
75838         * bindings/js/JSDOMGlobalObject.cpp:
75839         * bindings/js/JSDOMGlobalObject.h:
75840         * GNUmakefile.am:
75841         * WebCore.pro:
75842         * WebCore.vcproj/WebCore.vcproj:
75843         * WebCore.xcodeproj/project.pbxproj:
75844         * WebCoreSources.bkl:
75845         Added JSDOMGlobalObject, a base class to be used by both Window and worker contexts.
75846
75847         * bindings/js/JSDOMBinding.cpp:
75848         (WebCore::getCachedDOMStructure):
75849         (WebCore::cacheDOMStructure):
75850         (WebCore::getCachedDOMConstructor):
75851         (WebCore::cacheDOMConstructor):
75852         Cast to JSDOMGlobalObject, as DOM objects live in DOM global objects.
75853
75854         * bindings/js/JSDOMWindowBase.cpp:
75855         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
75856         * bindings/js/JSDOMWindowBase.h:
75857         * bindings/js/JSDOMWindowCustom.cpp:
75858         (WebCore::JSDOMWindow::mark):
75859         Moved constructor and structure tracking to JSDOMGlobalObject.
75860
75861 2008-10-23  Adam Barth  <abarth@webkit.org>
75862
75863         Reviewed by Sam Weinig.
75864
75865         https://bugs.webkit.org/show_bug.cgi?id=21787
75866
75867         Update postMessage to send origin = "null" for non-serializable
75868         origins to match latest spec.  Merge SecurityOrigin::toString and
75869         SecurityOrigin::toHTTPOrigin because they are now the same.
75870
75871         Test: http/tests/security/postMessage/data-url-sends-null-origin.html
75872
75873         * loader/FrameLoader.cpp:
75874         (WebCore::FrameLoader::outgoingOrigin):
75875         (WebCore::FrameLoader::loadURL):
75876         (WebCore::FrameLoader::addHTTPOriginIfNeeded):
75877         (WebCore::FrameLoader::loadItem):
75878         * loader/loader.cpp:
75879         (WebCore::Loader::Host::servePendingRequests):
75880         * page/SecurityOrigin.cpp:
75881         (WebCore::SecurityOrigin::toString):
75882         * page/SecurityOrigin.h:
75883         * xml/XMLHttpRequest.cpp:
75884         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
75885         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
75886         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
75887         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
75888
75889 2008-10-22  David Kilzer  <ddkilzer@apple.com>
75890
75891         Bug 21781: WebCore::Settings should have a maximum decoded image size setting
75892
75893         <https://bugs.webkit.org/show_bug.cgi?id=21781>
75894
75895         Reviewed by Antti.
75896
75897         No tests since there is no change in behavior.
75898
75899         * loader/CachedImage.cpp:
75900         (WebCore::CachedImage::maximumDecodedImageSize): Added.  Returns
75901         WebCore::Settings::maximumDecodedImageSize() or 0 on error.
75902         (WebCore::CachedImage::data): Flag an error if the image being
75903         loaded is too big.
75904         * loader/CachedImage.h:
75905         (WebCore::CachedImage::maximumDecodedImageSize): Added declaration.
75906         * page/Settings.cpp:
75907         (WebCore::Settings::Settings): Initialize m_maximumDecodedImageSize
75908         to the maximum value of size_t.
75909         * page/Settings.h:
75910         (WebCore::Settings::setMaximumDecodedImageSize): Added method.
75911         (WebCore::Settings::maximumDecodedImageSize): Ditto.
75912
75913 2008-10-22  Mike Pinkerton  <pinkerton@chromium.org>
75914
75915         Reviewed by Dan Bernstein.
75916         Landed and tweaked a bit by Darin Adler.
75917
75918         - fix https://bugs.webkit.org/show_bug.cgi?id=21809
75919
75920         Remove PLATFORM(MAC) wrapping USE(ATSUI). It's redundant and inhibits
75921         its use for PLATFORM(CHROMIUM) in the future.
75922
75923         * platform/graphics/SimpleFontData.h:
75924
75925 2008-10-22  David Smith  <catfish.man@gmail.com>
75926
75927         Reviewed by Anders Carlsson.
75928
75929         https://bugs.webkit.org/show_bug.cgi?id=19974
75930         getElementsByClassName not live enough
75931
75932         Test: fast/dom/getElementsByClassName/015.html
75933
75934         * dom/StyledElement.cpp:
75935         (WebCore::StyledElement::classAttributeChanged): call dispatchSubtreeModifiedEvent()
75936
75937 2008-10-22  Darin Adler  <darin@apple.com>
75938
75939         Reviewed by Sam Weinig.
75940
75941         - fix https://bugs.webkit.org/show_bug.cgi?id=21294
75942           Bug 21294: Devirtualize getOwnPropertySlot()
75943
75944         * bindings/js/JSDOMWindowShell.h:
75945         (WebCore::JSDOMWindowShell::createStructureID): Added. Returns a structure without
75946         HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
75947
75948         * bindings/js/JSInspectorCallbackWrapper.cpp:
75949         (WebCore::JSInspectorCallbackWrapper::wrap): Change to use a unique structure
75950         for this class rather than sharing nullProtoStructureID, which no longer exists.
75951
75952         * bindings/js/JSNamedNodesCollection.h:
75953         (WebCore::JSNamedNodesCollection::createStructureID): Added. Returns a structure without
75954         HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
75955         * bindings/js/JSRGBColor.h:
75956         (WebCore::JSRGBColor::createStructureID): Ditto.
75957
75958         * bindings/scripts/CodeGeneratorJS.pm: Added createStructureID functions for the wrappers,
75959         constructors, and prototypes in any case where they override getOwnPropertySlot, without
75960         HasStandardGetOwnPropertySlot.
75961
75962         * bridge/objc/objc_runtime.h:
75963         (JSC::Bindings::ObjcFallbackObjectImp::createStructureID): Added. Returns a structure
75964         without HasStandardGetOwnPropertySlot since this class overrides getOwnPropertySlot.
75965         * bridge/qt/qt_runtime.h:
75966         (JSC::Bindings::QtRuntimeMethod::createStructureID): Ditto.
75967         * bridge/runtime_array.h:
75968         (JSC::RuntimeArray::createStructureID): Ditto.
75969         * bridge/runtime_method.h:
75970         (JSC::RuntimeMethod::createStructureID): Ditto.
75971         * bridge/runtime_object.h:
75972         (JSC::RuntimeObjectImp::createStructureID): Ditto.
75973
75974 2008-10-22  Brent Fulgham  <bfulgham@gmail.com>
75975
75976         Bring Windows Cairo Port's font handling in line with CG.
75977         http://bugs.webkit.org/show_bug.cgi?id=21812.
75978
75979         Reviewed by Adam Roben.
75980
75981         * platform/graphics/win/FontCacheWin.cpp:
75982         (WebCore::createGDIFont): Remove unnecessary special-case for Cairo
75983         TrueType font search. It should match CG in all font selections.
75984
75985 2008-10-22  Brent Fulgham  <bfulgham@gmail.com>
75986
75987         http://bugs.webkit.org/show_bug.cgi?id=21812.
75988         Bring Windows Cairo Port's font handling in line with CG.
75989
75990         Reviewed by David Hyatt.
75991
75992         * platform/graphics/win/FontCacheWin.cpp:
75993         (WebCore::createGDIFont):  Remove unnecessary special-case for Cairo TrueType font search.  It should match CG in all font selections.
75994
75995 2008-10-22  Brady Eidson  <beidson@apple.com>
75996
75997         Reviewed by Adam Roben
75998
75999         <rdar://6261773> - autocomplete="off" doesn't work on Windows
76000
76001         Visual Studio makes a poor decision regarding the combination of enums and bitfields, such that a
76002         statement like "m_autocomplete = Off" followed by "return m_autocomplete == Off" would return "false"
76003         instead of the much more correct "true."
76004
76005         In the past we have worked around this by declaring the bitfield member as an unsigned instead
76006         of the enum type.
76007
76008         For more discussion, see http://trac.webkit.org/changeset/25329
76009
76010         * html/HTMLInputElement.h:  Work around insane Visual Studio enum issue  *sigh*
76011
76012 2008-10-22  Kevin McCullough  <kmccullough@apple.com>
76013
76014         Reviewed by Oliver Hunt and Tim Hatcher.
76015
76016         https://bugs.webkit.org/show_bug.cgi?id=19225
76017         Bug 19225: JSProfiler: Create automated profiler tests
76018         - This change exports profiles on the console object so that they can be
76019         iterated over via JavaScript, and thus can be used in automated tests.
76020
76021         * bindings/js/JSConsoleCustom.cpp: Get the profiles and return an array
76022         that JS can use.
76023         (WebCore::JSConsole::profiles):
76024         * inspector/InspectorController.h: Use the new typedef.
76025         (WebCore::InspectorController::profiles):
76026         * page/Console.cpp: Keep our own array of profile objects.
76027         (WebCore::Console::profileEnd):
76028         * page/Console.h: Ditto.
76029         (WebCore::Console::profiles):
76030         * page/Console.idl: Expose the profiles to JS.
76031
76032 2008-10-22  David Hyatt  <hyatt@apple.com>
76033
76034         https://bugs.webkit.org/show_bug.cgi?id=21775
76035
76036         Convert buttons over to use the new Theme API on OS X.
76037
76038         Reviewed by Adam Roben
76039
76040         * platform/LengthBox.h:
76041         (WebCore::LengthBox::LengthBox):
76042         * platform/Theme.cpp:
76043         (WebCore::Theme::controlBorder):
76044         (WebCore::Theme::controlPadding):
76045         * platform/Theme.h:
76046         (WebCore::Theme::controlFont):
76047         (WebCore::Theme::controlSize):
76048         (WebCore::Theme::minControlSize):
76049         (WebCore::Theme::controlRequiresPreWhiteSpace):
76050         * platform/mac/ThemeMac.h:
76051         (WebCore::ThemeMac::controlRequiresPreWhiteSpace):
76052         * platform/mac/ThemeMac.mm:
76053         (WebCore::checkboxSize):
76054         (WebCore::radioSize):
76055         (WebCore::buttonSizes):
76056         (WebCore::buttonMargins):
76057         (WebCore::button):
76058         (WebCore::paintButton):
76059         (WebCore::ThemeMac::controlFont):
76060         (WebCore::ThemeMac::controlSize):
76061         (WebCore::ThemeMac::minControlSize):
76062         (WebCore::ThemeMac::controlBorder):
76063         (WebCore::ThemeMac::controlPadding):
76064         (WebCore::ThemeMac::inflateControlPaintRect):
76065         (WebCore::ThemeMac::paint):
76066         * rendering/RenderTheme.cpp:
76067         (WebCore::RenderTheme::adjustStyle):
76068         (WebCore::RenderTheme::paint):
76069         (WebCore::RenderTheme::controlStatesForRenderer):
76070         (WebCore::RenderTheme::isDefault):
76071         (WebCore::RenderTheme::adjustRadioStyle):
76072         * rendering/RenderTheme.h:
76073         (WebCore::RenderTheme::setRadioSize):
76074         * rendering/RenderThemeMac.h:
76075         * rendering/RenderThemeMac.mm:
76076         (WebCore::RenderThemeMac::adjustRepaintRect):
76077         (WebCore::menuListButtonSizes):
76078         (WebCore::RenderThemeMac::adjustMenuListStyle):
76079         * rendering/style/RenderStyle.h:
76080         (WebCore::InheritedFlags::paddingBox):
76081         (WebCore::InheritedFlags::setPaddingBox):
76082
76083 2008-10-22  Chris Marrin  <cmarrin@apple.com>
76084
76085         Reviewed by Dave Hyatt
76086
76087         Make sure that the AtomicString that identifies a set of animation keyframes
76088         stays live by keeping a copy in the WebKitCSSKeyframesRule.
76089
76090         Also call styleSheetChanged() when the keyframes name changes, but
76091         add an internal method that doesn't call styleSheetChanged() for use
76092         during normal stylesheet parsing.
76093
76094         Test: animations/change-keyframes-name.html
76095
76096         * css/CSSGrammar.y:
76097         * css/WebKitCSSKeyframesRule.cpp:
76098         (WebCore::WebKitCSSKeyframesRule::setName):
76099         * css/WebKitCSSKeyframesRule.h:
76100         (WebCore::WebKitCSSKeyframesRule::setNameInternal):
76101
76102 2008-10-22  Alexey Proskuryakov  <ap@webkit.org>
76103
76104         Reviewed by Sam Weinig.
76105
76106         https://bugs.webkit.org/show_bug.cgi?id=21791
76107         WebCore JS bindings should be able to use non-static hash tables for properties
76108
76109         Add a map for HashTables to WebCore JS client data.
76110
76111         This makes property access noticeably slower, so it is an opt-in. For classes that need to be
76112         supported in workers in forseeable future this is not critical.
76113
76114         * bindings/js/JSDOMBinding.cpp:
76115         (WebCore::DOMObjectHashTableMap::get):
76116         (WebCore::DOMObjectHashTableMap::mapFor):
76117         (WebCore::getHashTableForGlobalData):
76118         (WebCore::DOMObjectWrapperMap::mapFor):
76119         WebCore client data is now a class that contains both a DOM wrapper map and a property hash
76120         table one.
76121
76122         * bindings/js/JSDOMBinding.h: Added getHashTableForGlobalData() to query the hash table map.
76123
76124         * bindings/scripts/CodeGeneratorJS.pm: If the class has a NoStaticTables attribute, use
76125         JSDOMBinding map to access its property hash tables.
76126
76127         * dom/MessageChannel.idl:
76128         * dom/MessagePort.idl:
76129         Added NoStaticTables attribute.
76130
76131 2008-10-22  Gustavo Noronha Silva  <gns@gnome.org>
76132
76133         Reviewed by Timothy Hatcher.
76134
76135         Build failure because of missing include
76136         https://bugs.webkit.org/show_bug.cgi?id=21765
76137
76138         Build failure fix for WebKit/GTK+; added missing
76139         include (GOwnPtr.h)
76140
76141         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
76142
76143 2008-10-22  Alp Toker  <alp@nuanti.com>
76144
76145         Reviewed by Adam Roben.
76146
76147         Fix crashes on older GTK+ versions (2.8). gtk_widget_style_get()
76148         doesn't initialize values if the requested property doesn't exist, so
76149         initialize the values to the documented defaults before calling it
76150         where necessary. Additionally, avoid critical warnings by not calling
76151         gtk_widget_style_get() when we know the property isn't available.
76152
76153         Note that this is an imported source file which doesn't follow the
76154         WebKit coding style.
76155
76156         * platform/gtk/gtk2drawing.c:
76157         (moz_gtk_init):
76158         (moz_gtk_button_get_inner_border):
76159         (moz_gtk_combo_box_paint):
76160         (moz_gtk_toolbar_separator_paint):
76161         (moz_gtk_menu_separator_paint):
76162         (moz_gtk_get_widget_border):
76163         (moz_gtk_get_tab_scroll_arrow_size):
76164         (moz_gtk_get_toolbar_separator_width):
76165         (moz_gtk_get_menu_separator_height):
76166
76167 2008-10-22  Alp Toker  <alp@nuanti.com>
76168
76169         Fix build for Cairo 1.2.
76170
76171         * platform/graphics/cairo/GraphicsContextCairo.cpp:
76172         (WebCore::GraphicsContext::clipOut):
76173         * platform/gtk/RenderThemeGtk.cpp:
76174         (WebCore::paintMozWidget):
76175
76176 2008-10-22  Darin Fisher  <darin@chromium.org>
76177
76178         Reviewed by Eric Seidel.
76179
76180         A little more PLATFORM(CHROMIUM) in WebCore
76181         https://bugs.webkit.org/show_bug.cgi?id=21758
76182
76183         * page/AccessibilityObject.h:
76184         * platform/graphics/Icon.h:
76185
76186 2008-10-21  Alexey Proskuryakov  <ap@webkit.org>
76187
76188         Reviewed by Darin Adler.
76189
76190         Test: fast/events/message-channel-gc-3.html
76191
76192         https://bugs.webkit.org/show_bug.cgi?id=21769
76193         MessagePort should be GC protected if there are messages to be delivered
76194
76195         * dom/MessagePort.h: Removed pending activity count. Now we track if a close event is
76196         pending, and check if the queue is non-empty.
76197         (WebCore::MessagePort::workerContext): Added a stub implementation for a cross-heap GC bug
76198         fix (below).
76199
76200         * dom/MessagePort.cpp:
76201         (WebCore::CloseMessagePortTimer::fired):
76202         (WebCore::MessagePort::MessagePort):
76203         (WebCore::MessagePort::queueCloseEvent):
76204         (WebCore::MessagePort::dispatchCloseEvent):
76205         (WebCore::MessagePort::hasPendingActivity):
76206         Track message and close event activity separately.
76207
76208         * bindings/js/JSDOMBinding.cpp:
76209         (WebCore::markCrossHeapDependentObjectsForDocument): Fixed a bug in cross-heap GC that was
76210         causing same-heap ports to never be deleted.
76211
76212 2008-10-21  Dan Bernstein  <mitz@apple.com>
76213
76214         Reviewed by Sam Weinig.
76215
76216         - remove unreachable code
76217
76218         * platform/text/BidiResolver.h:
76219         (WebCore::::embed):
76220
76221 2008-10-21  Beth Dakin  <bdakin@apple.com>
76222
76223         Reviewed by Darin Adler.
76224
76225         Fix for https://bugs.webkit.org/show_bug.cgi?id=20352
76226         REGRESSION(r31030-31055): Choosing "Print window" from frame set
76227         prints blank page
76228         and corresponding: <rdar://problem/6142398>
76229
76230         viewHeight() and viewWidth() only return valuable information if we
76231         are not printing. Everywhere else in the code, we make sure we are
76232         not printing before we call these functions. Adding a check for
76233         printing here fixes this bug, and framesets print again.
76234
76235         * rendering/RenderFrameSet.cpp:
76236         (WebCore::RenderFrameSet::layout):
76237
76238 2008-10-21  Yael Aharon <yael.aharon@nokia.com>
76239
76240         Reviewed by Simon.
76241
76242         Pixmap in canvas tag was not getting initialized.
76243
76244         See https://bugs.webkit.org/show_bug.cgi?id=21771
76245
76246         * platform/graphics/qt/ImageBufferQt.cpp:
76247         (WebCore::ImageBuffer::create):
76248
76249 2008-10-20  Simon Fraser  <simon.fraser@apple.com>
76250
76251         Reviewed by Dan Bernstein
76252
76253         Add a comment explaining layoutDelta(), and an assertion
76254         that checks that delta changes were correctly paired during layout.
76255
76256         * rendering/RenderView.cpp:
76257         (WebCore::RenderView::layout):
76258         * rendering/RenderView.h:
76259
76260 2008-10-20  Timothy Hatcher  <timothy@apple.com>
76261
76262         Make auto-complete only suggest properties that are valid syntax
76263         when using dot-notation. Also when completing numeric properties,
76264         the quotes are omitted inside the brackets.
76265
76266         https://bugs.webkit.org/show_bug.cgi?id=21760
76267         https://bugs.webkit.org/show_bug.cgi?id=21761
76268
76269         Reviewed by Oliver Hunt.
76270
76271         * inspector/front-end/Console.js:
76272         (WebInspector.Console.prototype.completions): Skip properties that
76273         are not valid identifies when using dot-notation. And omit the quotes
76274         when completing numbers in bracket-notation.
76275
76276 2008-10-20  Timothy Hatcher  <timothy@apple.com>
76277
76278         Fixes the Profiles panel in the Web Inspector, which was broken by
76279         the JSValue base-class changes. Also renames some functions and
76280         variables in JavaScriptProfileNode.cpp that where title case.
76281
76282         https://bugs.webkit.org/show_bug.cgi?id=21764
76283
76284         Reviewed by Oliver Hunt.
76285
76286         * inspector/JavaScriptProfile.cpp:
76287         (WebCore::toJS): Use a JSObject pointer instead of JSValuePtr so the
76288         returned JSValuePtr will be treated as an object and not a value.
76289         * inspector/JavaScriptProfileNode.cpp:
76290         (WebCore::toJS): Ditto.
76291
76292 2008-10-20  Sam Weinig  <sam@webkit.org>
76293
76294         Reviewed by Anders Carlsson.
76295
76296         Remove FrameLoaderClient::detachedFromParent4.  It is no longer used by any port.
76297
76298         * loader/EmptyClients.h:
76299         (WebCore::EmptyFrameLoaderClient::detachedFromParent4):.
76300         * loader/FrameLoader.cpp:
76301         (WebCore::FrameLoader::detachFromParent):
76302         * loader/FrameLoaderClient.h:
76303
76304 2008-10-20  Antti Koivisto  <antti@apple.com>
76305
76306         Reviewed by Adele Peterson.
76307
76308         Fix https://bugs.webkit.org/show_bug.cgi?id=21763
76309         REGRESSION (r36108-r36113): Can't load picture content on wired.com galleries
76310         <rdar://problem/6285025
76311
76312         If we get 304 response we need to explicitly check if that completes the frame load.
76313
76314         No test case, simulating the condition is pretty difficult.
76315
76316         * loader/loader.cpp:
76317         (WebCore::Loader::Host::didReceiveResponse):
76318
76319 2008-10-20  Anders Carlsson  <andersca@apple.com>
76320
76321         Reviewed by Mark Rowe.
76322
76323         Work around <rdar://problem/6301728>.
76324
76325         Don't assert that loads are deferred when we're using CFNetwork on Mac or Windows.
76326
76327         * loader/MainResourceLoader.cpp:
76328         (WebCore::MainResourceLoader::didReceiveResponse):
76329         (WebCore::MainResourceLoader::didReceiveData):
76330         (WebCore::MainResourceLoader::didFinishLoading):
76331         (WebCore::MainResourceLoader::didFail):
76332
76333 2008-10-20  Beth Dakin  <bdakin@apple.com>
76334
76335         Reviewed by Adele Peterson.
76336
76337         Speculative fix for <rdar://problem/6242585> CrashTracer: [USER] 19
76338         crashes in Safari at com.apple.WebCore
76339         WebCore::ScrollView::visibleContentRect const + 153
76340
76341         d->m_view can be null and is null-checked at other points in the
76342         code. The logs indicate that this crash occurs when closing a
76343         window containing a PDF, so in case where we crash, the PDF's view
76344         is probably already null. So the fix is to simply add a null-check.
76345
76346         * page/Frame.cpp:
76347         (WebCore::Frame::selectionRect):
76348
76349 2008-10-20  Adele Peterson  <adele@apple.com>
76350
76351         Reviewed by Darin Adler.
76352
76353         * html/HTMLFormElement.cpp: (WebCore::HTMLFormElement::formData):
76354         Removed stray increment that would screw up any form with multiple files in it.
76355
76356 2008-10-20  Sam Weinig  <sam@webkit.org>
76357
76358         Rubber-stamped by David Hyatt.
76359
76360         Split LengthBox and LengthSize into their own files.
76361
76362         * GNUmakefile.am:
76363         * WebCore.vcproj/WebCore.vcproj:
76364         * WebCore.xcodeproj/project.pbxproj:
76365         * platform/Length.h:
76366         (WebCore::Length::blend):
76367         * platform/LengthBox.h: Copied from platform/Length.h.
76368         (WebCore::LengthBox::LengthBox):
76369         (WebCore::LengthBox::nonZero):
76370         * platform/LengthSize.h: Copied from platform/Length.h.
76371         (WebCore::LengthSize::LengthSize):
76372         (WebCore::LengthSize::setWidth):
76373         (WebCore::LengthSize::setHeight):
76374         (WebCore::LengthSize::height):
76375         * platform/Theme.h:
76376         * rendering/style/FillLayer.h:
76377         * rendering/style/NinePieceImage.h:
76378         (WebCore::NinePieceImage::NinePieceImage):
76379         * rendering/style/RenderStyle.h:
76380         * rendering/style/StyleDashboardRegion.h:
76381         * rendering/style/StyleSurroundData.h:
76382         * rendering/style/StyleVisualData.h:
76383
76384 2008-10-20  Dan Bernstein  <mitz@apple.com>
76385
76386         - Mac build fix
76387
76388         * WebCore.xcodeproj/project.pbxproj:
76389
76390 2008-10-20  Alp Toker  <alp@nuanti.com>
76391
76392         Fix autotools dist build target by listing recently added header
76393         files only. Not reviewed.
76394
76395         * GNUmakefile.am:
76396
76397 2008-10-20  David Hyatt  <hyatt@apple.com>
76398
76399         Clean up some USE(NEW_THEME) ifdefs (I botched one of them and have broken non-Mac platforms).  Also
76400         refactor some of the code that I put in ThemeMac to be cross-platform, since it was in RenderTheme.cpp
76401         originally.
76402
76403         ifdef some methods in RenderTheme.cpp also that are no longer needed with the new Theme.
76404
76405         Reviewed by Adam Roben
76406
76407         * WebCore.xcodeproj/project.pbxproj:
76408         * platform/Theme.cpp: Added.
76409         (WebCore::Theme::controlSupportsBorder):
76410         (WebCore::Theme::controlSupportsPadding):
76411         * platform/Theme.h:
76412         * platform/mac/ThemeMac.h:
76413         * platform/mac/ThemeMac.mm:
76414         * rendering/RenderTheme.cpp:
76415         (WebCore::RenderTheme::adjustStyle):
76416         * rendering/RenderTheme.h:
76417
76418 2008-10-20  David Hyatt  <hyatt@apple.com>
76419
76420         Rename LengthBox's members to have m_ in front of them.
76421
76422         Reviewed by Sam Weinig
76423
76424         * css/CSSComputedStyleDeclaration.cpp:
76425         (WebCore::valueForNinePieceImage):
76426         (WebCore::getPositionOffsetValue):
76427         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
76428         * css/CSSStyleSelector.cpp:
76429         (WebCore::CSSStyleSelector::mapNinePieceImage):
76430         * platform/Length.h:
76431         (WebCore::LengthBox::LengthBox):
76432         (WebCore::LengthBox::left):
76433         (WebCore::LengthBox::right):
76434         (WebCore::LengthBox::top):
76435         (WebCore::LengthBox::bottom):
76436         (WebCore::LengthBox::operator==):
76437         (WebCore::LengthBox::nonZero):
76438         * rendering/RenderObject.cpp:
76439         (WebCore::RenderObject::paintNinePieceImage):
76440         (WebCore::RenderObject::addDashboardRegions):
76441         * rendering/style/RenderStyle.cpp:
76442         (WebCore::positionedObjectMoved):
76443         (WebCore::RenderStyle::setClip):
76444         (WebCore::RenderStyle::noneDashboardRegions):
76445         * rendering/style/RenderStyle.h:
76446         (WebCore::InheritedFlags::left):
76447         (WebCore::InheritedFlags::right):
76448         (WebCore::InheritedFlags::top):
76449         (WebCore::InheritedFlags::bottom):
76450         (WebCore::InheritedFlags::clipLeft):
76451         (WebCore::InheritedFlags::clipRight):
76452         (WebCore::InheritedFlags::clipTop):
76453         (WebCore::InheritedFlags::clipBottom):
76454         (WebCore::InheritedFlags::marginTop):
76455         (WebCore::InheritedFlags::marginBottom):
76456         (WebCore::InheritedFlags::marginLeft):
76457         (WebCore::InheritedFlags::marginRight):
76458         (WebCore::InheritedFlags::paddingTop):
76459         (WebCore::InheritedFlags::paddingBottom):
76460         (WebCore::InheritedFlags::paddingLeft):
76461         (WebCore::InheritedFlags::paddingRight):
76462         (WebCore::InheritedFlags::setLeft):
76463         (WebCore::InheritedFlags::setRight):
76464         (WebCore::InheritedFlags::setTop):
76465         (WebCore::InheritedFlags::setBottom):
76466         (WebCore::InheritedFlags::setDashboardRegion):
76467         (WebCore::InheritedFlags::setClipLeft):
76468         (WebCore::InheritedFlags::setClipRight):
76469         (WebCore::InheritedFlags::setClipTop):
76470         (WebCore::InheritedFlags::setClipBottom):
76471         (WebCore::InheritedFlags::setMarginTop):
76472         (WebCore::InheritedFlags::setMarginBottom):
76473         (WebCore::InheritedFlags::setMarginLeft):
76474         (WebCore::InheritedFlags::setMarginRight):
76475         (WebCore::InheritedFlags::setPaddingTop):
76476         (WebCore::InheritedFlags::setPaddingBottom):
76477         (WebCore::InheritedFlags::setPaddingLeft):
76478         (WebCore::InheritedFlags::setPaddingRight):
76479
76480 2008-10-20  Timothy Hatcher  <timothy@apple.com>
76481
76482         Make the Resource panel perform graph updates atomically, so when resources
76483         are added the graph and summary graph update at the same time.
76484
76485         https://bugs.webkit.org/show_bug.cgi?id=21755
76486
76487         Reviewed by Kevin McCullough.
76488
76489         * inspector/front-end/Resource.js:
76490         (WebInspector.Resource.prototype.get startTime): Return -1 if the _startTime
76491         property is undefined, null or 0. This allows callers to check for -1 and not
76492         the other values when there is no startTime yet.
76493         (WebInspector.Resource.prototype.get responseReceivedTime): Ditto.
76494         (WebInspector.Resource.prototype.get endTime): Ditto.
76495         (WebInspector.Resource.prototype.get duration): Remove an extra empty line.
76496         (WebInspector.Resource.prototype.get latency): Ditto.
76497         (WebInspector.Resource.prototype.get contentLength): Return 0 if the _duration
76498         property is undefined or null. This allows callers to always assume a number.
76499         (WebInspector.Resource.prototype.get expectedContentLength): Ditto.
76500         (WebInspector.Resource.prototype.get errors): Simplify the case where there is
76501         no _errors property yet.
76502         (WebInspector.Resource.prototype.set errors): Remove the check if the new value
76503         if the same as the previous value, since there is no work to guard.
76504         (WebInspector.Resource.prototype.get warnings): Simplify the case where there is
76505         no _warnings property yet.
76506         (WebInspector.Resource.prototype.set warnings): Remove the check if the new value
76507         if the same as the previous value, since there is no work to guard.
76508         (WebInspector.Resource.CompareByResponseReceivedTime): Add cases for when the
76509         responseReceivedTime is -1.
76510         (WebInspector.Resource.CompareByEndTime): Add cases for when the endTime is -1.
76511         * inspector/front-end/ResourcesPanel.js:
76512         (WebInspector.ResourcesPanel.prototype.get searchableViews): If a resource does not
76513         have a _resourcesTreeElement yet, exclude it from the searchable views.
76514         (WebInspector.ResourcesPanel.prototype.set calculator): Set _staleResource to _resources
76515         and call refresh to refresh the entire graph.
76516         (WebInspector.ResourcesPanel.prototype.set needsRefresh): Set a timeout if the panel
76517         is visible that calls refresh.
76518         (WebInspector.ResourcesPanel.prototype.refresh): Create the resource tree element and
76519         graph for a resource if it hasn't been created yet. If the boundaries changed during
76520         the first stale resource pass, do a full pass of all resources when updating the graphs.
76521         (WebInspector.ResourcesPanel.prototype.reset): Remove the legend items.
76522         (WebInspector.ResourcesPanel.prototype.addResource): Don't create the tree element and
76523         graph, these are now created during the first refresh.
76524         (WebInspector.ResourcesPanel.prototype.removeResource): Null check _resourcesTreeElement.
76525         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Ditto.
76526         (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
76527         (WebInspector.ResourcesPanel.prototype.refreshResource): Remove most of the work, just
76528         add the resource to the _staleResources and set needsRefresh.
76529         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded): Null check
76530         _resourcesTreeElement.
76531         (WebInspector.ResourcesPanel.prototype._sortResourcesIfNeeded): Remove code to clear
76532         the timeout used by the deleted _sortResourcesSoonIfNeeded. Remove call to removeChild
76533         since the insertBefore call will do it if needed.
76534         (WebInspector.ResourcesPanel.prototype._updateGraphDividersIfNeeded): Remove code to
76535         clear the timeout used by the deleted _updateGraphDividersSoonIfNeeded.
76536         (WebInspector.ResourcesPanel.prototype._updateSummaryGraph): Remove code to clear the
76537         timeout used by the deleted _updateSummaryGraphSoon. No need to remove the totalLegendLabel,
76538         since all the legend items are removed in one pass right before.
76539         (WebInspector.ResourcesPanel.prototype._changeSortingFunction): Set the sortingFunction
76540         before the calculator so the correct sortingFunction is there when a refresh happens.
76541         (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphPercentages): Set start to 0
76542         when the startTime is -1, since that looks best visually. Also set middle and end
76543         to the start and middle (respectfully) when startAtZero. This looks best visually.
76544         (WebInspector.ResourceGraph): Start the graph as hidden until the first refresh.
76545         (WebInspector.ResourceGraph.prototype.refresh): Remove the hidden class.
76546
76547 2008-10-20  David Hyatt  <hyatt@apple.com>
76548
76549         https://bugs.webkit.org/show_bug.cgi?id=21733
76550
76551         Make sure that the haveMetadata flag is set to true for generated images from image buffers, so that
76552         no attempt is made to re-cache the frame from a non-existent image source.
76553
76554         Reviewed by Sam Weinig
76555
76556         * platform/graphics/cairo/ImageCairo.cpp:
76557         (WebCore::BitmapImage::BitmapImage):
76558         * platform/graphics/cg/ImageCG.cpp:
76559         (WebCore::BitmapImage::BitmapImage):
76560
76561 2008-10-20  Dan Bernstein  <mitz@apple.com>
76562
76563         Reviewed by John Sullivan.
76564
76565         - make hasARenderedDescendant() have internal linkage
76566
76567         * editing/CompositeEditCommand.cpp:
76568         (WebCore::hasARenderedDescendant):
76569
76570 2008-10-20  Chris Fleizach  <cfleizach@apple.com>
76571
76572         Reviewed by Jon Honeycutt
76573
76574         Fix a crash in Accessibility where a table section was being
76575         referenced without first checking if it was null
76576
76577         https://bugs.webkit.org/show_bug.cgi?id=21721
76578
76579         Test: accessibility/table-nofirstbody.html
76580
76581         * page/AccessibilityTable.cpp:
76582         (WebCore::AccessibilityTable::addChildren):
76583
76584 2008-10-20  David Hyatt  <hyatt@apple.com>
76585
76586         Avoid some stderr spew from CG by checking if we have a decoder yet in ImageSourceCG.
76587
76588         Reviewed by Darin Adler
76589
76590         * platform/graphics/cg/ImageSourceCG.cpp:
76591         (WebCore::ImageSource::repetitionCount):
76592         (WebCore::ImageSource::frameDurationAtIndex):
76593
76594 2008-10-20  Alp Toker  <alp@nuanti.com>
76595
76596         Reviewed by Mark Rowe.
76597
76598         Fix the pthread conditionals in the FTP code to correctly define
76599         threadsafe *_r functions on Windows. Partly fixes the GTK+/Win32
76600         build.
76601
76602         * loader/FTPDirectoryDocument.cpp:
76603         * loader/FTPDirectoryParser.cpp:
76604
76605 2008-10-20  David Hyatt  <hyatt@apple.com>
76606
76607         https://bugs.webkit.org/show_bug.cgi?id=21751
76608
76609         Convert checkboxes and radio buttons on OS X over to the new Theme API.
76610
76611         Reviewed by Adam Roben
76612
76613         * css/CSSComputedStyleDeclaration.cpp:
76614         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
76615         * css/CSSStyleSelector.cpp:
76616         (WebCore::CSSStyleSelector::mapFillSize):
76617         * platform/Length.h:
76618         (WebCore::LengthSize::LengthSize):
76619         (WebCore::LengthSize::operator==):
76620         (WebCore::LengthSize::width):
76621         (WebCore::LengthSize::height):
76622         (WebCore::LengthSize::setWidth):
76623         (WebCore::LengthSize::setHeight):
76624         * platform/Theme.h:
76625         (WebCore::Theme::controlSize):
76626         (WebCore::Theme::controlSupportsBorder):
76627         (WebCore::Theme::controlSupportsPadding):
76628         (WebCore::Theme::paint):
76629         (WebCore::Theme::inflateControlPaintRect):
76630         * platform/ThemeTypes.h:
76631         (WebCore::):
76632         * platform/mac/ThemeMac.h:
76633         * platform/mac/ThemeMac.mm:
76634         (WebCore::):
76635         (WebCore::controlSizeForFont):
76636         (WebCore::sizeFromFont):
76637         (WebCore::setControlSize):
76638         (WebCore::updateStates):
76639         (WebCore::inflateRect):
76640         (WebCore::checkboxSizes):
76641         (WebCore::checkboxMargins):
76642         (WebCore::checkboxSize):
76643         (WebCore::checkbox):
76644         (WebCore::paintCheckbox):
76645         (WebCore::radioSizes):
76646         (WebCore::radioMargins):
76647         (WebCore::radioSize):
76648         (WebCore::radio):
76649         (WebCore::paintRadio):
76650         (WebCore::ThemeMac::baselinePositionAdjustment):
76651         (WebCore::ThemeMac::controlSize):
76652         (WebCore::ThemeMac::controlSupportsBorder):
76653         (WebCore::ThemeMac::controlSupportsPadding):
76654         (WebCore::ThemeMac::inflateControlPaintRect):
76655         (WebCore::ThemeMac::paint):
76656         * rendering/RenderBox.cpp:
76657         (WebCore::RenderBox::calculateBackgroundSize):
76658         * rendering/RenderObject.cpp:
76659         (WebCore::mustRepaintFillLayers):
76660         * rendering/RenderTheme.cpp:
76661         (WebCore::RenderTheme::adjustStyle):
76662         (WebCore::RenderTheme::paint):
76663         (WebCore::RenderTheme::baselinePosition):
76664         (WebCore::RenderTheme::adjustRepaintRect):
76665         (WebCore::RenderTheme::controlStatesForRenderer):
76666         (WebCore::RenderTheme::isFocused):
76667         * rendering/RenderTheme.h:
76668         * rendering/RenderThemeMac.h:
76669         * rendering/RenderThemeMac.mm:
76670         (WebCore::RenderThemeMac::adjustRepaintRect):
76671         * rendering/style/FillLayer.cpp:
76672         (WebCore::FillLayer::operator==):
76673
76674 2008-10-18  Geoffrey Garen  <ggaren@apple.com>
76675
76676         Reviewed by Darin Adler.
76677
76678         Fixed https://bugs.webkit.org/show_bug.cgi?id=21735
76679         Emit profiling instrumentation only if the Web Inspector's profiling
76680         feature is enabled
76681
76682         * bindings/js/JSDOMWindowBase.cpp:
76683         (WebCore::JSDOMWindowBase::supportsProfiling):
76684         * bindings/js/JSDOMWindowBase.h: Implemented the interface for specifying
76685         whether a target global object has the Web Inspector's profiling feature
76686         enabled.
76687
76688         * inspector/JavaScriptDebugServer.cpp:
76689         (WebCore::JavaScriptDebugServer::recompileAllJSFunctionsSoon):
76690         (WebCore::JavaScriptDebugServer::didAddListener):
76691         (WebCore::JavaScriptDebugServer::didRemoveListener):
76692         * inspector/JavaScriptDebugServer.h: Exported an API for recompiling,
76693         used by the Settings object.
76694
76695         * page/Settings.cpp:
76696         (WebCore::Settings::Settings):
76697         (WebCore::Settings::setDeveloperExtrasEnabled):
76698         * page/Settings.h: Recompile when the developer menu is enabled/disabled
76699         for the first time, to add/remove profiling hooks. In the future, with
76700         better Web Inspector UI, we can do this on a page-by-page basis,
76701         instead of a global basis.
76702
76703 2008-10-20  David Hyatt  <hyatt@apple.com>
76704
76705         Move Length to platform/.
76706
76707         Reviewed by Adam Roben
76708
76709         * GNUmakefile.am:
76710         * WebCore.pro:
76711         * WebCore.vcproj/WebCore.vcproj:
76712         * WebCore.xcodeproj/project.pbxproj:
76713         * WebCoreSources.bkl:
76714         * platform/Length.cpp: Copied from rendering/Length.cpp.
76715         * platform/Length.h: Copied from rendering/Length.h.
76716
76717 2008-10-20  Darin Adler  <darin@apple.com>
76718
76719         - try to fix Qt build
76720
76721         * bridge/qt/qt_runtime.cpp:
76722         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): Add asObject calls.
76723         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): Ditto.
76724
76725 2008-10-20  Darin Adler  <darin@apple.com>
76726
76727         - try to fix Qt build
76728
76729         * bridge/qt/qt_instance.cpp:
76730         (JSC::Bindings::QtInstance::mark): Use JSValue* instead of JSValuePtr.
76731         (JSC::Bindings::QtField::valueFromInstance): Ditto.
76732         * bridge/qt/qt_instance.h: Ditto.
76733
76734 2008-10-20  Darin Adler  <darin@apple.com>
76735
76736         - try to fix Tiger build
76737
76738         * bridge/objc/objc_instance.mm:
76739         (ObjcInstance::invokeMethod): Add a const_cast to remove the unwanted
76740         volatile qualifier.
76741         (ObjcInstance::invokeDefaultMethod): Ditto.
76742         (ObjcInstance::getValueOfUndefinedField): Ditto.
76743         * bridge/objc/objc_runtime.mm:
76744         (JSC::Bindings::ObjcField::valueFromInstance): Ditto.
76745
76746 2008-10-20  Alexey Proskuryakov  <ap@webkit.org>
76747
76748         Reviewed by Darin Adler.
76749
76750         https://bugs.webkit.org/show_bug.cgi?id=21750
76751         Eliminate the notion of "temporary events"
76752
76753         We mark some events as temporary when dispatching, for the sole reason of
76754         manually calling forgetDOMObject when done dispatching.
76755
76756         There doesn't seem to be any reason to call it manually, as JSEvent destructor
76757         will do this automatically right away.
76758
76759         * bindings/js/ScriptController.cpp:
76760         * bindings/js/ScriptController.h:
76761         Removed ScriptController::finishedWithEvent(), which was called after dispatching
76762         a temporary event.
76763
76764         * dom/ContainerNode.cpp:
76765         (WebCore::dispatchChildInsertionEvents):
76766         (WebCore::dispatchChildRemovalEvents):
76767         * dom/EventTarget.h:
76768         * dom/EventTargetNode.cpp:
76769         (WebCore::EventTargetNode::dispatchEvent):
76770         (WebCore::EventTargetNode::dispatchGenericEvent):
76771         (WebCore::EventTargetNode::dispatchSubtreeModifiedEvent):
76772         (WebCore::EventTargetNode::dispatchWindowEvent):
76773         (WebCore::EventTargetNode::dispatchUIEvent):
76774         (WebCore::EventTargetNode::dispatchKeyEvent):
76775         (WebCore::EventTargetNode::dispatchMouseEvent):
76776         (WebCore::EventTargetNode::dispatchWheelEvent):
76777         (WebCore::EventTargetNode::dispatchWebKitAnimationEvent):
76778         (WebCore::EventTargetNode::dispatchWebKitTransitionEvent):
76779         (WebCore::EventTargetNode::dispatchEventForType):
76780         (WebCore::EventTargetNode::dispatchProgressEvent):
76781         (WebCore::EventTargetNode::dispatchStorageEvent):
76782         * dom/EventTargetNode.h:
76783         * dom/MessagePort.cpp:
76784         (WebCore::MessagePort::dispatchMessages):
76785         (WebCore::MessagePort::dispatchCloseEvent):
76786         (WebCore::MessagePort::dispatchEvent):
76787         * dom/MessagePort.h:
76788         * editing/Editor.cpp:
76789         (WebCore::Editor::dispatchCPPEvent):
76790         (WebCore::dispatchEditableContentChangedEvents):
76791         * editing/ReplaceSelectionCommand.cpp:
76792         (WebCore::ReplacementFragment::ReplacementFragment):
76793         * editing/TypingCommand.cpp:
76794         (WebCore::TypingCommand::insertText):
76795         * loader/appcache/DOMApplicationCache.cpp:
76796         (WebCore::DOMApplicationCache::dispatchEvent):
76797         (WebCore::DOMApplicationCache::callListener):
76798         * loader/appcache/DOMApplicationCache.h:
76799         * page/EventHandler.cpp:
76800         (WebCore::EventHandler::dispatchDragEvent):
76801         (WebCore::EventHandler::keyEvent):
76802         (WebCore::EventHandler::handleTextInputEvent):
76803         * page/FrameView.cpp:
76804         (WebCore::FrameView::scheduleEvent):
76805         (WebCore::FrameView::updateOverflowStatus):
76806         (WebCore::FrameView::dispatchScheduledEvents):
76807         * page/FrameView.h:
76808         * rendering/RenderLayer.cpp:
76809         (WebCore::RenderLayer::scrollToOffset):
76810         (WebCore::RenderLayer::updateOverflowStatus):
76811         * svg/SVGElement.cpp:
76812         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
76813         * svg/SVGElementInstance.cpp:
76814         (WebCore::SVGElementInstance::dispatchEvent):
76815         * svg/SVGElementInstance.h:
76816         * xml/XMLHttpRequest.cpp:
76817         (WebCore::XMLHttpRequest::dispatchEvent):
76818         (WebCore::XMLHttpRequest::dispatchReadyStateChangeEvent):
76819         (WebCore::XMLHttpRequest::dispatchXMLHttpRequestProgressEvent):
76820         * xml/XMLHttpRequest.h:
76821         * xml/XMLHttpRequestUpload.cpp:
76822         (WebCore::XMLHttpRequestUpload::dispatchEvent):
76823         (WebCore::XMLHttpRequestUpload::dispatchXMLHttpRequestProgressEvent):
76824         * xml/XMLHttpRequestUpload.h:
76825         Don't pass the tempEvent boolean around.
76826
76827 2008-10-20  Alp Toker  <alp@nuanti.com>
76828
76829         Remove unused includes only. Partial GTK+/Win build fix.
76830
76831         * platform/graphics/gtk/SimpleFontDataPango.cpp:
76832
76833 2008-10-20  Alexey Proskuryakov  <ap@webkit.org>
76834
76835         Reviewed by Oliver Hunt.
76836
76837         https://bugs.webkit.org/show_bug.cgi?id=21705
76838         Implement Web Workers client-side API
76839
76840         The implementation is experimental, and disabled by default. It doesn't quite match the
76841         published draft, being influenced by further WHATWG discussions.
76842
76843         This only implements the client-side API, and does not actually create any threads or
76844         global contexts yet.
76845
76846         * DerivedSources.make: Added DedicatedWorker. SharedWorker is not implemented yet, as I'm
76847         still not sure if having separate classes for these helps at all.
76848
76849         * WebCore.xcodeproj/project.pbxproj: Added new files.
76850
76851         * bindings/js/JSDOMWindowBase.cpp:
76852         (jsDOMWindowBaseWorker):
76853         (WebCore::JSDOMWindowBase::put):
76854         (setJSDOMWindowBaseWorker):
76855         Added window.Worker constructor. Moved JSXSLTProcessorConstructor.h include out of ifdef
76856         to match prevailing style.
76857
76858         * bindings/js/JSDedicatedWorkerConstructor.cpp: Added.
76859         * bindings/js/JSDedicatedWorkerConstructor.h: Added.
76860         * bindings/js/JSDedicatedWorkerCustom.cpp: Added.
76861         The implementation of event listeners are left custom intentionally, for easier implementation
76862         of listeners that are not tied to any Document in the future.
76863
76864         * dom/DedicatedWorker.cpp: Added.
76865         * dom/DedicatedWorker.h: Added.
76866         * dom/DedicatedWorker.idl: Added.
76867         Added an implementation that can only load requested scripts for now.
76868
76869 2008-10-19  Darin Adler  <darin@apple.com>
76870
76871         Reviewed by Dan Bernstein.
76872
76873         - fix assertion seen when opening inspector
76874
76875         * bindings/js/JSQuarantinedObjectWrapper.cpp:
76876         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
76877         Removed unneeded asObject cast.
76878
76879 2008-10-19  Dan Bernstein  <mitz@apple.com>
76880
76881         Rubber-stamped by Timothy Hatcher.
76882
76883         - remove empty directories and correct the MIME type of inspector images
76884
76885         * page/inspector: Removed.
76886         * page/inspector/Images: Removed.
76887
76888 2008-10-19  Timothy Hatcher  <timothy@apple.com>
76889
76890         Make the Web Inspector Resources panel open quicker and change graphs
76891         faster. There was some accidental n^2 logic at fault when updating the
76892         graph boundaries.
76893
76894         https://bugs.webkit.org/show_bug.cgi?id=21742
76895
76896         Reviewed by Darin Adler.
76897
76898         * inspector/front-end/ResourcesPanel.js:
76899         (WebInspector.ResourcesPanel.prototype.set calculator): Return early for
76900         a null calculator. Remove the second argument passed to _refreshAllResources.
76901         (WebInspector.ResourcesPanel.prototype.refresh): Call updateBoundaries on
76902         the calculator for all the stale resources before calling refreshResource.
76903         Pass true for the first argument of refreshResource to skip the boundary update.
76904         (WebInspector.ResourcesPanel.prototype._updateGraphBoundariesIfNeeded): Remove
76905         the second argument passed to _refreshAllResources.
76906         (WebInspector.ResourcesPanel.prototype._refreshAllResourcesSoon): Remove the
76907         skipSort argument since every passed true, and it would be bad to pass false.
76908         (WebInspector.ResourcesPanel.prototype._refreshAllResources): Ditto. And if
76909         skipBoundaryUpdate is false, call updateBoundaries on the calculator for all
76910         the resources before calling refreshResource. Pass true for the first argument
76911         of refreshResource to skip the boundary update.
76912
76913 2008-10-19  Timothy Hatcher  <timothy@apple.com>
76914
76915         Visually distinguish resources that loaded from the memory cache.
76916
76917         https://bugs.webkit.org/show_bug.cgi?id=14279
76918
76919         Reviewed by Dan Bernstein.
76920
76921         * English.lproj/localizedStrings.js: New string.
76922         * inspector/front-end/Images/timelineHollowPillBlue.png: Added.
76923         * inspector/front-end/Images/timelineHollowPillGray.png: Added.
76924         * inspector/front-end/Images/timelineHollowPillGreen.png: Added.
76925         * inspector/front-end/Images/timelineHollowPillOrange.png: Added.
76926         * inspector/front-end/Images/timelineHollowPillPurple.png: Added.
76927         * inspector/front-end/Images/timelineHollowPillRed.png: Added.
76928         * inspector/front-end/Images/timelineHollowPillYellow.png: Added.
76929         * inspector/front-end/ResourcesPanel.js:
76930         (WebInspector.ResourceCalculator.prototype.computeBarGraphLabels):
76931         Add the "(from cache)" suffix to the tooltip.
76932         (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels):
76933         Add the "(from cache)" suffix to the tooltip.
76934         (WebInspector.ResourceGraph): Add the "resource-cached" class.
76935         * inspector/front-end/inspector.css: New styles to make the timeline
76936         bars use the hollow pill images.
76937
76938 2008-10-19  Timothy Hatcher  <timothy@apple.com>
76939
76940         Update the scroll position in the Resources panel when loading
76941         a new page or toggling on small resource rows.
76942
76943         https://bugs.webkit.org/show_bug.cgi?id=20114
76944
76945         Reviewed by Darin Adler.
76946
76947         * inspector/front-end/ResourcesPanel.js:
76948         (WebInspector.ResourcesPanel.prototype.reset): Scroll to the top,
76949         since all the resource are being removed.
76950         (WebInspector.ResourcesPanel.prototype.removeResource): Call
76951         _adjustScrollPosition in case the view is shorter and needs scrolled.
76952         (WebInspector.ResourcesPanel.prototype._toggleLargerResources): Ditto.
76953         (WebInspector.ResourcesPanel.prototype._adjustScrollPosition): Check
76954         the height of the sidebar against the scrollTop and height of the
76955         resourcesContainerElement. If the sidebar is shorter, scroll up
76956         so the last resource is at the bottom again.
76957
76958 2008-10-19  Timothy Hatcher  <timothy@apple.com>
76959
76960         Show per resource times and sizes when hovering over the bar graph for a resource.
76961
76962         https://bugs.webkit.org/show_bug.cgi?id=14300
76963         rdar://problem/5712802
76964
76965         Reviewed by Cameron Zwarich.
76966
76967         * English.lproj/localizedStrings.js: Add new strings.
76968         * inspector/front-end/Images/graphLabelCalloutLeft.png: Added.
76969         * inspector/front-end/Images/graphLabelCalloutRight.png: Added.
76970         * inspector/front-end/ResourcesPanel.js:
76971         (WebInspector.ResourcesPanel.prototype.refreshResource): Pass the calculator to the
76972         ResourceGraph.refresh function.
76973         (WebInspector.ResourceCalculator.prototype.computeBarGraphLabels): Default implementation
76974         returns the formatted value.
76975         (WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels): Return discrete values
76976         for the latency and download times. Also generate a custom tooltip.
76977         (WebInspector.ResourceGraph): Add a mouseover event listener that calls refreshLabelPositions.
76978         (WebInspector.ResourceGraph.prototype.refreshLabelPositions): Added. Updates the label positions
76979         in case the bar has changed size.
76980         (WebInspector.ResourceGraph.prototype.refresh): Set the label text and tooltips.
76981         * inspector/front-end/inspector.css: New styles for the labels.
76982
76983 2008-10-19  Darin Adler  <darin@apple.com>
76984
76985         Reviewed by Oliver Hunt.
76986
76987         - next step of https://bugs.webkit.org/show_bug.cgi?id=21732
76988           improve performance by eliminating JSValue as a base class for JSCell
76989
76990         Remove most uses of JSValue, which will be removed in a future patch.
76991
76992         * bindings/js/JSCustomXPathNSResolver.h: Removed declaration of JSValue
76993         and used JSValuePtr instead.
76994         * bindings/js/JSEventTarget.h: Ditto.
76995         * bindings/js/JSNodeFilterCondition.h: Ditto.
76996         * bindings/js/ScheduledAction.h: Ditto.
76997         * bindings/js/ScriptController.h: Ditto.
76998         * bindings/objc/WebScriptObjectPrivate.h: Ditto.
76999         * bridge/c/c_utility.h: Ditto.
77000         * bridge/jni/jni_jsobject.h: Ditto.
77001         * bridge/jni/jni_utility.h: Ditto.
77002         * bridge/objc/WebScriptObject.h: Ditto.
77003         * dom/Traversal.h: Ditto.
77004         * inspector/InspectorController.cpp: Ditto.
77005         * inspector/JavaScriptProfile.h: Ditto.
77006         * inspector/JavaScriptProfileNode.h: Ditto.
77007         * loader/FrameLoader.h: Ditto.
77008         * page/Console.h: Ditto.
77009         * plugins/MimeTypeArray.h: Ditto.
77010         * plugins/Plugin.h: Ditto.
77011         * plugins/PluginArray.h: Ditto.
77012         * plugins/PluginView.cpp:
77013         (WebCore::getString): Ditto.
77014         (WebCore::PluginView::performRequest): Ditto.
77015         * plugins/gtk/PluginViewGtk.cpp: Ditto.
77016         * plugins/qt/PluginViewQt.cpp: Ditto.
77017         * plugins/win/PluginViewWin.cpp: Ditto.
77018
77019         * bridge/qt/qt_class.cpp:
77020         (JSC::Bindings::QtClass::fallbackObject): Use JSValuePtr and JSObject*
77021         instead of JSValue*.
77022         * bridge/qt/qt_class.h: Ditto.
77023         * bridge/qt/qt_instance.cpp:
77024         (JSC::Bindings::QtInstance::mark): Ditto.
77025         (JSC::Bindings::QtInstance::invokeMethod): Ditto.
77026         (JSC::Bindings::QtInstance::defaultValue): Ditto.
77027         (JSC::Bindings::QtInstance::stringValue): Ditto.
77028         (JSC::Bindings::QtInstance::numberValue): Ditto.
77029         (JSC::Bindings::QtInstance::booleanValue): Ditto.
77030         (JSC::Bindings::QtInstance::valueOf): Ditto.
77031         (JSC::Bindings::QtField::valueFromInstance): Ditto.
77032         (JSC::Bindings::QtField::setValueToInstance): Ditto.
77033         * bridge/qt/qt_instance.h: Ditto.
77034         * bridge/qt/qt_runtime.cpp: Ditto.
77035         (JSC::Bindings::valueRealType): Ditto.
77036         (JSC::Bindings::convertValueToQVariant): Ditto.
77037         (JSC::Bindings::convertQVariantToValue): Ditto.
77038         (JSC::Bindings::findMethodIndex): Ditto.
77039         (JSC::Bindings::QtRuntimeMetaMethod::call): Ditto.
77040         (JSC::Bindings::QtRuntimeMetaMethod::lengthGetter): Ditto.
77041         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): Ditto.
77042         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): Ditto.
77043         (JSC::Bindings::QtRuntimeConnectionMethod::call): Ditto.
77044         (JSC::Bindings::QtRuntimeConnectionMethod::lengthGetter): Ditto.
77045         (JSC::Bindings::QtArray::setValueAt): Ditto.
77046         (JSC::Bindings::QtArray::valueAt): Ditto.
77047         * bridge/qt/qt_runtime.h: Ditto.
77048
77049         * bridge/testqtbindings.cpp:
77050         (main): Use JSValuePtr.
77051
77052 2008-10-18  Darin Adler  <darin@apple.com>
77053
77054         Reviewed by Oliver Hunt.
77055
77056         - next step of https://bugs.webkit.org/show_bug.cgi?id=21732
77057           improve performance by eliminating JSValue as a base class for JSCell
77058
77059         Tweak a little more to get closer to where we can make JSValuePtr a class.
77060
77061         * bindings/js/JSAudioConstructor.cpp:
77062         (WebCore::JSAudioConstructor::JSAudioConstructor): Use asObject.
77063         (WebCore::constructAudio): Ditto.
77064         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
77065         (WebCore::JSCSSStyleDeclaration::nameGetter): Ditto.
77066
77067         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
77068         (WebCore::toHTMLCanvasStyle): Use asString and asObject.
77069         (WebCore::JSCanvasRenderingContext2D::setFillColor): Ditto.
77070         (WebCore::JSCanvasRenderingContext2D::setStrokeColor): Ditto.
77071         (WebCore::JSCanvasRenderingContext2D::drawImage): Ditto.
77072         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect): Ditto.
77073         (WebCore::JSCanvasRenderingContext2D::setShadow): Ditto.
77074         (WebCore::JSCanvasRenderingContext2D::createPattern): Ditto.
77075
77076         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
77077         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent): Use JSValuePtr.
77078
77079         * bindings/js/JSDOMBinding.cpp:
77080         (WebCore::setDOMException): Use noValue.
77081
77082         * bindings/js/JSDOMBinding.h:
77083         (WebCore::getDOMPrototype): Use asObject.
77084
77085         * bindings/js/JSDOMWindowBase.cpp:
77086         (WebCore::showModalDialog): Use noValue.
77087         (jsDOMWindowBaseEvent): Use asObject.
77088         (jsDOMWindowBaseImage): Ditto.
77089         (jsDOMWindowBaseMessageChannel): Ditto.
77090         (jsDOMWindowBaseOption): Ditto.
77091         (jsDOMWindowBaseXMLHttpRequest): Ditto.
77092         (jsDOMWindowBaseAudio): Ditto.
77093         (jsDOMWindowBaseXSLTProcessor): Ditto.
77094         (WebCore::JSDOMWindowBase::childFrameGetter): Ditto.
77095         (WebCore::JSDOMWindowBase::indexGetter): Ditto.
77096         (WebCore::JSDOMWindowBase::namedItemGetter): Ditto.
77097         (WebCore::JSDOMWindowBase::getOwnPropertySlot): Ditto.
77098         (WebCore::JSDOMWindowBase::findJSEventListener): Ditto.
77099         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener): Ditto.
77100         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener): Ditto.
77101         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener): Ditto.
77102         (windowProtoFuncOpen): Use noValue.
77103         (WebCore::toJSDOMWindow): Use asObject.
77104
77105         * bindings/js/JSDOMWindowCustom.cpp:
77106         (WebCore::setTimeoutOrInterval): Use asString.
77107         (WebCore::toDOMWindow): Use asObject.
77108
77109         * bindings/js/JSEventListener.cpp:
77110         (WebCore::JSAbstractEventListener::handleEvent): Use noValue.
77111         (WebCore::JSLazyEventListener::parseCode): Use asObject.
77112
77113         * bindings/js/JSHTMLCollectionCustom.cpp:
77114         (WebCore::JSHTMLCollection::nameGetter): Use asObject.
77115         * bindings/js/JSHTMLDocumentCustom.cpp:
77116         (WebCore::JSHTMLDocument::nameGetter): Ditto.
77117         * bindings/js/JSHTMLElementCustom.cpp:
77118         (WebCore::JSHTMLElement::pushEventHandlerScope): Ditto.
77119         * bindings/js/JSHTMLFormElementCustom.cpp:
77120         (WebCore::JSHTMLFormElement::nameGetter): Ditto.
77121         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
77122         (WebCore::JSHTMLFrameSetElement::nameGetter): Ditto.
77123         * bindings/js/JSHTMLOptionElementConstructor.cpp:
77124         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor): Ditto.
77125         (WebCore::constructHTMLOptionElement): Ditto.
77126         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
77127         (WebCore::JSHTMLOptionsCollection::remove): Ditto.
77128         * bindings/js/JSImageConstructor.cpp:
77129         (WebCore::JSImageConstructor::JSImageConstructor): Ditto.
77130         (WebCore::constructImage): Ditto.
77131         * bindings/js/JSInspectedObjectWrapper.cpp:
77132         (WebCore::JSInspectedObjectWrapper::wrap): Ditto.
77133         * bindings/js/JSInspectorCallbackWrapper.cpp:
77134         (WebCore::JSInspectorCallbackWrapper::wrap): Ditto.
77135
77136         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
77137         (WebCore::JSJavaScriptCallFrame::evaluate): Use noValue.
77138
77139         * bindings/js/JSMessageChannelConstructor.cpp:
77140         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor): Use asObject.
77141         (WebCore::JSMessageChannelConstructor::construct): Ditto.
77142         * bindings/js/JSMimeTypeArrayCustom.cpp:
77143         (WebCore::JSMimeTypeArray::nameGetter): Ditto.
77144         * bindings/js/JSNamedNodeMapCustom.cpp:
77145         (WebCore::JSNamedNodeMap::nameGetter): Ditto.
77146         * bindings/js/JSNamedNodesCollection.cpp:
77147         (WebCore::JSNamedNodesCollection::lengthGetter): Ditto.
77148         (WebCore::JSNamedNodesCollection::indexGetter): Ditto.
77149         * bindings/js/JSNodeFilterCustom.cpp:
77150         (WebCore::toNodeFilter): Ditto.
77151         * bindings/js/JSNodeListCustom.cpp:
77152         (WebCore::JSNodeList::nameGetter): Ditto.
77153         * bindings/js/JSPluginArrayCustom.cpp:
77154         (WebCore::JSPluginArray::nameGetter): Ditto.
77155         * bindings/js/JSPluginCustom.cpp:
77156         (WebCore::JSPlugin::nameGetter): Ditto.
77157         * bindings/js/JSPluginElementFunctions.cpp:
77158         (WebCore::runtimeObjectGetter): Ditto.
77159         (WebCore::runtimeObjectPropertyGetter): Ditto.
77160         * bindings/js/JSQuarantinedObjectWrapper.cpp:
77161         (WebCore::JSQuarantinedObjectWrapper::asWrapper): Ditto.
77162         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot): Ditto.
77163         (WebCore::JSQuarantinedObjectWrapper::construct): Ditto.
77164         * bindings/js/JSRGBColor.cpp:
77165         (jsRGBColorRed): Ditto.
77166         (jsRGBColorGreen): Ditto.
77167         (jsRGBColorBlue): Ditto.
77168
77169         * bindings/js/JSSQLResultSetRowListCustom.cpp:
77170         (WebCore::JSSQLResultSetRowList::item): Use noValue.
77171
77172         * bindings/js/JSStorageCustom.cpp:
77173         (WebCore::JSStorage::nameGetter): Use asObject.
77174         (WebCore::JSStorage::deleteProperty): Ditto.
77175         (WebCore::JSStorage::customPut): Ditto.
77176         * bindings/js/JSStyleSheetListCustom.cpp:
77177         (WebCore::JSStyleSheetList::nameGetter): Ditto.
77178         * bindings/js/JSXMLHttpRequestConstructor.cpp:
77179         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor): Ditto.
77180         * bindings/js/JSXSLTProcessorCustom.cpp:
77181         (WebCore::JSXSLTProcessor::importStylesheet): Ditto.
77182         (WebCore::JSXSLTProcessor::transformToFragment): Ditto.
77183         (WebCore::JSXSLTProcessor::transformToDocument): Ditto.
77184
77185         * bindings/js/ScriptController.cpp:
77186         (WebCore::ScriptController::evaluate): Use noValue.
77187         * bindings/objc/DOMInternal.mm:
77188         (-[WebScriptObject _initializeScriptDOMNodeImp]): Ditto.
77189
77190         * bindings/objc/WebScriptObject.mm:
77191         (-[WebScriptObject evaluateWebScript:]): Use JSValuePtr.
77192         (-[WebScriptObject valueForKey:]): Ditto.
77193         (-[WebScriptObject webScriptValueAtIndex:]): Ditto.
77194         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
77195         Use asObject and asString.
77196
77197         * bindings/scripts/CodeGeneratorJS.pm: Use asObject.
77198
77199         * bridge/c/c_instance.h: Use JSValuePtr.
77200         * bridge/c/c_runtime.cpp:
77201         (JSC::Bindings::CField::setValueToInstance): Ditto.
77202
77203         * bridge/c/c_utility.cpp:
77204         (JSC::Bindings::convertValueToNPVariant): Use asObject.
77205
77206         * bridge/jni/jni_instance.cpp:
77207         (JavaInstance::booleanValue): Use JSValuePtr.
77208         (JavaInstance::invokeMethod): Ditto. And noValue.
77209         * bridge/jni/jni_jsobject.mm:
77210         (JavaJSObject::getSlot): Ditto.
77211         (JavaJSObject::convertValueToJObject): Ditto.
77212         * bridge/jni/jni_runtime.cpp:
77213         (JavaField::dispatchValueFromInstance): Ditto.
77214         (JavaField::valueFromInstance): Ditto.
77215         (JavaField::dispatchSetValueToInstance): Ditto.
77216         (JavaField::setValueToInstance): Ditto.
77217         (JavaArray::setValueAt): Ditto.
77218         (JavaArray::valueAt): Ditto.
77219         * bridge/jni/jni_runtime.h: Ditto.
77220
77221         * bridge/jni/jni_utility.cpp:
77222         (JSC::Bindings::convertArrayInstanceToJavaArray): Take a JSArray*
77223         instead of a JSValue*.
77224         (JSC::Bindings::convertValueToJValue): Use asObject and asArray.
77225
77226         * bridge/objc/objc_class.h: Use JSValuePtr.
77227         * bridge/objc/objc_instance.h: Ditto.
77228         * bridge/objc/objc_runtime.h: Ditto.
77229
77230         * bridge/objc/objc_runtime.mm:
77231         (JSC::Bindings::callObjCFallbackObject): Use asObject.
77232
77233         * bridge/objc/objc_utility.h: Use JSValuePtr.
77234         * bridge/objc/objc_utility.mm:
77235         (JSC::Bindings::convertValueToObjcValue): Use JSValuePtr and asObject.
77236         (JSC::Bindings::convertObjcValueToValue): Use jsUndefined() instead of 0.
77237
77238         * bridge/runtime.cpp:
77239         (JSC::Bindings::Instance::getValueOfField): Use JSValuePtr.
77240         (JSC::Bindings::Instance::setValueOfField): Ditto.
77241
77242         * bridge/runtime_array.cpp:
77243         (JSC::RuntimeArray::lengthGetter): Use JSValuePtr and asObject.
77244         (JSC::RuntimeArray::indexGetter): Ditto.
77245         * bridge/runtime_array.h: Ditto.
77246         * bridge/runtime_method.cpp:
77247         (JSC::RuntimeMethod::lengthGetter): Ditto.
77248         (JSC::callRuntimeMethod): Ditto.
77249         * bridge/runtime_object.cpp:
77250         (JSC::RuntimeObjectImp::fallbackObjectGetter): Ditto.
77251         (JSC::RuntimeObjectImp::fieldGetter): Ditto.
77252         (JSC::RuntimeObjectImp::methodGetter): Ditto.
77253
77254         * loader/FrameLoader.cpp:
77255         (WebCore::FrameLoader::executeScript): Use noValue.
77256
77257         * page/Console.cpp:
77258         (WebCore::Console::trace): Use asInternalFunction.
77259
77260 2008-10-19  Dan Bernstein  <mitz@apple.com>
77261
77262         Reviewed by Timothy Hatcher.
77263
77264         - lower the default button repaint frequency
77265
77266         * rendering/RenderButton.cpp:
77267         (WebCore::RenderButton::styleDidChange): Changed the timer interval from
77268         0.01 to 0.03.
77269
77270 2008-10-18  Dan Bernstein  <mitz@apple.com>
77271
77272         Reviewed by Mark Rowe.
77273
77274         - Windows build fix
77275
77276         * rendering/RenderThemeSafari.cpp:
77277         (WebCore::RenderThemeSafari::paintMediaFullscreenButton):
77278         (WebCore::RenderThemeSafari::paintMediaMuteButton):
77279         (WebCore::RenderThemeSafari::paintMediaPlayButton):
77280         (WebCore::RenderThemeSafari::paintMediaSeekBackButton):
77281         (WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
77282         (WebCore::RenderThemeSafari::paintMediaSliderThumb):
77283
77284 2008-10-18  Dan Bernstein  <mitz@apple.com>
77285
77286         Reviewed by Sam Weinig.
77287
77288         - WebCore part of https://bugs.webkit.org/show_bug.cgi?id=21736
77289           Long-dead decoded image data make up for most of the object cache's memory use over time
77290
77291         Add a cache setting for how long decoded image data should be allowed to
77292         persist in memory after the image has died. By default, this is set to
77293         0, which means "forever".
77294
77295         * loader/Cache.cpp:
77296         (WebCore::Cache::Cache): Initialize m_deadDecodedDataDeletionInterval.
77297         * loader/Cache.h:
77298         (WebCore::Cache::setDeadDecodedDataDeletionInterval): Added a setter.
77299         (WebCore::Cache::deadDecodedDataDeletionInterval): Added a getter.
77300         * loader/CachedImage.cpp:
77301         (WebCore::CachedImage::CachedImage): Initialize the decoded data
77302         deletion timer.
77303         (WebCore::CachedImage::decodedDataDeletionTimerFired): Added. Destroys
77304         the decoded image data.
77305         (WebCore::CachedImage::addClient): Stop the timer if it is active.
77306         (WebCore::CachedImage::allClientsRemoved): Start the decoded data
77307         deletion timer.
77308         * loader/CachedImage.h:
77309
77310 2008-10-18  Darin Adler  <darin@apple.com>
77311
77312         Reviewed by Dan Bernstein.
77313
77314         - fix https://bugs.webkit.org/show_bug.cgi?id=21645
77315           REGRESSION (r37469-r37605): File Input not Uploaded in Multipart/Form-data Form
77316
77317         * html/HTMLFormElement.cpp:
77318         (WebCore::HTMLFormElement::formData):
77319         Fix loop that goes through the FormDataList to go two at a time in a clearer
77320         way. My last patch screwed up the way it got form content from the items.
77321         This "two at a time" approach is a confusing way to do things, which explains
77322         why I got it wrong last time through, but I decided to just fix it locally for
77323         now rather than changing the design of FormDataList.
77324
77325 2008-10-18  Darin Adler  <darin@apple.com>
77326
77327         Reviewed by Cameron Zwarich.
77328
77329         - next step on https://bugs.webkit.org/show_bug.cgi?id=21732
77330           improve performance by eliminating JSValue as a base class for JSCell
77331
77332         Use JSValuePtr everywhere instead of JSValue*. In the future, we'll be
77333         changing JSValuePtr to be a class, and then eventually renaming it
77334         to JSValue once that's done.
77335
77336         * bindings/js/JSAttrCustom.cpp:
77337         * bindings/js/JSCSSRuleCustom.cpp:
77338         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
77339         * bindings/js/JSCSSValueCustom.cpp:
77340         * bindings/js/JSCanvasPixelArrayCustom.h:
77341         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
77342         * bindings/js/JSClipboardCustom.cpp:
77343         * bindings/js/JSConsoleCustom.cpp:
77344         * bindings/js/JSCustomSQLStatementCallback.cpp:
77345         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
77346         * bindings/js/JSCustomSQLTransactionCallback.cpp:
77347         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
77348         * bindings/js/JSCustomVoidCallback.cpp:
77349         * bindings/js/JSCustomVoidCallback.h:
77350         * bindings/js/JSCustomXPathNSResolver.cpp:
77351         * bindings/js/JSDOMApplicationCacheCustom.cpp:
77352         * bindings/js/JSDOMBinding.cpp:
77353         * bindings/js/JSDOMBinding.h:
77354         * bindings/js/JSDOMWindowBase.cpp:
77355         * bindings/js/JSDOMWindowBase.h:
77356         * bindings/js/JSDOMWindowCustom.cpp:
77357         * bindings/js/JSDOMWindowCustom.h:
77358         * bindings/js/JSDOMWindowShell.cpp:
77359         * bindings/js/JSDOMWindowShell.h:
77360         * bindings/js/JSDatabaseCustom.cpp:
77361         * bindings/js/JSDocumentCustom.cpp:
77362         * bindings/js/JSElementCustom.cpp:
77363         * bindings/js/JSEventCustom.cpp:
77364         * bindings/js/JSEventListener.cpp:
77365         * bindings/js/JSEventTarget.cpp:
77366         * bindings/js/JSEventTargetBase.h:
77367         * bindings/js/JSEventTargetNodeCustom.cpp:
77368         * bindings/js/JSHTMLAllCollection.h:
77369         * bindings/js/JSHTMLAppletElementCustom.cpp:
77370         * bindings/js/JSHTMLCollectionCustom.cpp:
77371         * bindings/js/JSHTMLDocumentCustom.cpp:
77372         * bindings/js/JSHTMLEmbedElementCustom.cpp:
77373         * bindings/js/JSHTMLFormElementCustom.cpp:
77374         * bindings/js/JSHTMLFrameElementCustom.cpp:
77375         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
77376         * bindings/js/JSHTMLIFrameElementCustom.cpp:
77377         * bindings/js/JSHTMLInputElementCustom.cpp:
77378         * bindings/js/JSHTMLObjectElementCustom.cpp:
77379         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
77380         * bindings/js/JSHTMLSelectElementCustom.cpp:
77381         * bindings/js/JSHTMLSelectElementCustom.h:
77382         * bindings/js/JSHistoryCustom.cpp:
77383         * bindings/js/JSImageDataCustom.cpp:
77384         * bindings/js/JSInspectedObjectWrapper.cpp:
77385         * bindings/js/JSInspectedObjectWrapper.h:
77386         * bindings/js/JSInspectorCallbackWrapper.cpp:
77387         * bindings/js/JSInspectorCallbackWrapper.h:
77388         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
77389         * bindings/js/JSLocationCustom.cpp:
77390         * bindings/js/JSMessagePortCustom.cpp:
77391         * bindings/js/JSMimeTypeArrayCustom.cpp:
77392         * bindings/js/JSNamedNodeMapCustom.cpp:
77393         * bindings/js/JSNamedNodesCollection.cpp:
77394         * bindings/js/JSNamedNodesCollection.h:
77395         * bindings/js/JSNavigatorCustom.cpp:
77396         * bindings/js/JSNodeCustom.cpp:
77397         * bindings/js/JSNodeFilterCondition.cpp:
77398         * bindings/js/JSNodeFilterCustom.cpp:
77399         * bindings/js/JSNodeIteratorCustom.cpp:
77400         * bindings/js/JSNodeListCustom.cpp:
77401         * bindings/js/JSPluginArrayCustom.cpp:
77402         * bindings/js/JSPluginCustom.cpp:
77403         * bindings/js/JSPluginElementFunctions.cpp:
77404         * bindings/js/JSPluginElementFunctions.h:
77405         * bindings/js/JSQuarantinedObjectWrapper.cpp:
77406         * bindings/js/JSQuarantinedObjectWrapper.h:
77407         * bindings/js/JSRGBColor.cpp:
77408         * bindings/js/JSRGBColor.h:
77409         * bindings/js/JSSQLResultSetRowListCustom.cpp:
77410         * bindings/js/JSSQLTransactionCustom.cpp:
77411         * bindings/js/JSSVGElementInstanceCustom.cpp:
77412         * bindings/js/JSSVGLengthCustom.cpp:
77413         * bindings/js/JSSVGMatrixCustom.cpp:
77414         * bindings/js/JSSVGPathSegCustom.cpp:
77415         * bindings/js/JSSVGPathSegListCustom.cpp:
77416         * bindings/js/JSSVGPointListCustom.cpp:
77417         * bindings/js/JSSVGTransformListCustom.cpp:
77418         * bindings/js/JSStorageCustom.cpp:
77419         * bindings/js/JSStyleSheetCustom.cpp:
77420         * bindings/js/JSStyleSheetListCustom.cpp:
77421         * bindings/js/JSTextCustom.cpp:
77422         * bindings/js/JSTreeWalkerCustom.cpp:
77423         * bindings/js/JSXMLHttpRequestCustom.cpp:
77424         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
77425         * bindings/js/JSXSLTProcessorCustom.cpp:
77426         * bindings/js/ScheduledAction.cpp:
77427         * bindings/js/ScheduledAction.h:
77428         * bindings/js/ScriptController.cpp:
77429         * bindings/js/ScriptController.h:
77430         * bindings/objc/WebScriptObject.mm:
77431         * bindings/scripts/CodeGeneratorJS.pm:
77432         * bridge/NP_jsobject.cpp:
77433         * bridge/c/c_instance.cpp:
77434         * bridge/c/c_instance.h:
77435         * bridge/c/c_runtime.cpp:
77436         * bridge/c/c_runtime.h:
77437         * bridge/c/c_utility.cpp:
77438         * bridge/jni/jni_instance.cpp:
77439         * bridge/jni/jni_instance.h:
77440         * bridge/jni/jni_jsobject.mm:
77441         * bridge/jni/jni_objc.mm:
77442         * bridge/jni/jni_runtime.cpp:
77443         * bridge/jni/jni_runtime.h:
77444         * bridge/jni/jni_utility.cpp:
77445         * bridge/objc/objc_class.mm:
77446         * bridge/objc/objc_instance.h:
77447         * bridge/objc/objc_instance.mm:
77448         * bridge/objc/objc_runtime.h:
77449         * bridge/objc/objc_runtime.mm:
77450         * bridge/objc/objc_utility.h:
77451         * bridge/objc/objc_utility.mm:
77452         * bridge/runtime.h:
77453         * bridge/runtime_array.cpp:
77454         * bridge/runtime_array.h:
77455         * bridge/runtime_method.cpp:
77456         * bridge/runtime_method.h:
77457         * bridge/runtime_object.cpp:
77458         * bridge/runtime_object.h:
77459         * inspector/JavaScriptCallFrame.cpp:
77460         * inspector/JavaScriptCallFrame.h:
77461         * inspector/JavaScriptProfile.cpp:
77462         * inspector/JavaScriptProfileNode.cpp:
77463         * loader/FrameLoader.cpp:
77464         * loader/FrameLoader.h:
77465         * page/Console.cpp:
77466         * page/Console.h:
77467         * plugins/MimeTypeArray.h:
77468         * plugins/Plugin.h:
77469         * plugins/PluginArray.h:
77470         * xml/XMLHttpRequest.cpp:
77471         Replace JSValue* with JSValuePtr.
77472
77473 2008-10-18  Darin Adler  <darin@apple.com>
77474
77475         Reviewed by Oliver Hunt.
77476
77477         - first step of https://bugs.webkit.org/show_bug.cgi?id=21732
77478           improve performance by eliminating JSValue as a base class for JSCell
77479
77480         Update for change to make PreferredPrimitiveType no longer
77481         a member of JSValue.
77482
77483         * bridge/c/c_instance.cpp:
77484         (JSC::Bindings::CInstance::defaultValue): Removed JSValue:: prefix.
77485         * bridge/jni/jni_instance.cpp:
77486         (JavaInstance::defaultValue): Ditto.
77487         * bridge/objc/objc_instance.mm:
77488         (ObjcInstance::defaultValue): Ditto.
77489         * bridge/qt/qt_instance.cpp:
77490         (JSC::Bindings::QtInstance::defaultValue): Ditto.
77491         * bridge/runtime.h: Ditto. Also removed typedef.
77492
77493 2008-10-18  Darin Adler  <darin@apple.com>
77494
77495         - try to fix Windows build
77496
77497         * rendering/RenderThemeSafari.cpp:
77498         (WebCore::RenderThemeSafari::paintCheckbox): Explicitly qualify part name with
77499         SafariTheme namespace, since there is now an identically named constant in
77500         the ControlPart enum.
77501         (WebCore::RenderThemeSafari::paintButton): Ditto.
77502         (WebCore::RenderThemeSafari::paintTextField): Ditto.
77503         (WebCore::RenderThemeSafari::paintTextArea): Ditto.
77504         (WebCore::RenderThemeSafari::paintSearchField): Ditto.
77505         (WebCore::RenderThemeSafari::paintSearchFieldCancelButton): Ditto.
77506         (WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration): Ditto.
77507         (WebCore::RenderThemeSafari::paintSearchFieldResultsButton): Ditto.
77508
77509 2008-10-18  Jan Michael Alonzo  <jmalonzo@webkit.org>
77510
77511         Reviewed by Alp Toker.
77512
77513         [GTK] crash after selecting a file on an <input type=file>
77514         https://bugs.webkit.org/show_bug.cgi?id=21385
77515
77516         Follow Mac and Win's behaviors for Icon::paint
77517
77518         * platform/graphics/gtk/IconGtk.cpp:
77519         (WebCore::Icon::paint): check if painting is enabled before
77520         painting the icon
77521
77522 2008-10-18  Zan Dobersek  <zandobersek@gmail.com>
77523
77524         Reviewed by Oliver Hunt.
77525
77526         Qt port build fix.
77527
77528         * platform/qt/RenderThemeQt.h:
77529
77530 2008-10-17  Kevin Watters  <kevinwatters@gmail.com>
77531
77532         Reviewed by Kevin Ollivier
77533
77534         Fix wx port's scrollbar and drawing handling after recent changes.
77535
77536         https://bugs.webkit.org/show_bug.cgi?id=21720
77537
77538         * platform/ScrollView.h:
77539         * platform/wx/ScrollViewWx.cpp:
77540         (WebCore::ScrollView::platformVisibleContentRect):
77541         (WebCore::ScrollView::platformContentsSize):
77542         (WebCore::ScrollView::platformSetContentsSize):
77543         * platform/wx/WidgetWx.cpp:
77544         (WebCore::Widget::paint):
77545
77546 2008-10-17  Kevin Ollivier  <kevino@theolliviers.com>
77547
77548         wx build fix. EAppearance -> ControlPart.
77549
77550         * platform/wx/RenderThemeWx.cpp:
77551         (WebCore::RenderThemeWx::isControlStyled):
77552         (WebCore::RenderThemeWx::adjustRepaintRect):
77553         (WebCore::RenderThemeWx::controlSupportsTints):
77554         (WebCore::RenderThemeWx::supportsFocus):
77555         (WebCore::RenderThemeWx::paintButton):
77556
77557 2008-10-17  David Hyatt  <hyatt@apple.com>
77558
77559         Eliminate the EAppearance enum in favor of the new ControlPart enum.  Cut out the scrollbar
77560         values from the enum since they are handled by ScrollbarTheme instead.
77561
77562         Reviewed by Tim Hatcher
77563
77564         * css/CSSPrimitiveValueMappings.h:
77565         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
77566         (WebCore::CSSPrimitiveValue::operator ControlPart):
77567         * css/CSSStyleSelector.cpp:
77568         (WebCore::CSSStyleSelector::adjustRenderStyle):
77569         * css/CSSValueKeywords.in:
77570         * platform/gtk/RenderThemeGtk.cpp:
77571         (WebCore::supportsFocus):
77572         (WebCore::RenderThemeGtk::baselinePosition):
77573         (WebCore::setToggleSize):
77574         (WebCore::RenderThemeGtk::setCheckboxSize):
77575         (WebCore::RenderThemeGtk::setRadioSize):
77576         (WebCore::RenderThemeGtk::adjustButtonStyle):
77577         * platform/qt/RenderThemeQt.cpp:
77578         (WebCore::RenderThemeQt::baselinePosition):
77579         (WebCore::RenderThemeQt::controlSupportsTints):
77580         (WebCore::RenderThemeQt::adjustRepaintRect):
77581         (WebCore::RenderThemeQt::isControlStyled):
77582         (WebCore::computeSizeBasedOnStyle):
77583         (WebCore::RenderThemeQt::paintButton):
77584         (WebCore::RenderThemeQt::paintTextField):
77585         (WebCore::RenderThemeQt::paintMenuList):
77586         (WebCore::RenderThemeQt::supportsFocus):
77587         (WebCore::RenderThemeQt::applyTheme):
77588         (WebCore::RenderThemeQt::adjustSliderThumbSize):
77589         * platform/qt/RenderThemeQt.h:
77590         * rendering/RenderSlider.cpp:
77591         (WebCore::RenderSlider::createThumbStyle):
77592         (WebCore::RenderSlider::layout):
77593         (WebCore::RenderSlider::setValueForPosition):
77594         (WebCore::RenderSlider::setPositionFromValue):
77595         (WebCore::RenderSlider::positionForOffset):
77596         (WebCore::RenderSlider::currentPosition):
77597         (WebCore::RenderSlider::setCurrentPosition):
77598         (WebCore::RenderSlider::trackSize):
77599         * rendering/RenderTheme.cpp:
77600         (WebCore::RenderTheme::adjustStyle):
77601         (WebCore::RenderTheme::paint):
77602         (WebCore::RenderTheme::paintBorderOnly):
77603         (WebCore::RenderTheme::paintDecorations):
77604         (WebCore::RenderTheme::isControlContainer):
77605         (WebCore::RenderTheme::isControlStyled):
77606         (WebCore::RenderTheme::supportsFocusRing):
77607         (WebCore::RenderTheme::isDefault):
77608         * rendering/RenderTheme.h:
77609         * rendering/RenderThemeMac.mm:
77610         (WebCore::RenderThemeMac::isControlStyled):
77611         (WebCore::RenderThemeMac::adjustRepaintRect):
77612         (WebCore::RenderThemeMac::baselinePosition):
77613         (WebCore::RenderThemeMac::controlSupportsTints):
77614         (WebCore::RenderThemeMac::adjustButtonStyle):
77615         (WebCore::RenderThemeMac::setButtonCellState):
77616         (WebCore::RenderThemeMac::popupInternalPaddingLeft):
77617         (WebCore::RenderThemeMac::popupInternalPaddingRight):
77618         (WebCore::RenderThemeMac::popupInternalPaddingTop):
77619         (WebCore::RenderThemeMac::popupInternalPaddingBottom):
77620         (WebCore::RenderThemeMac::paintSliderTrack):
77621         (WebCore::RenderThemeMac::paintSliderThumb):
77622         (WebCore::RenderThemeMac::adjustSliderThumbSize):
77623         * rendering/RenderThemeSafari.cpp:
77624         (WebCore::RenderThemeSafari::isControlStyled):
77625         (WebCore::RenderThemeSafari::adjustRepaintRect):
77626         (WebCore::RenderThemeSafari::baselinePosition):
77627         (WebCore::RenderThemeSafari::controlSupportsTints):
77628         (WebCore::RenderThemeSafari::adjustButtonStyle):
77629         (WebCore::RenderThemeSafari::popupInternalPaddingLeft):
77630         (WebCore::RenderThemeSafari::popupInternalPaddingRight):
77631         (WebCore::RenderThemeSafari::popupInternalPaddingTop):
77632         (WebCore::RenderThemeSafari::popupInternalPaddingBottom):
77633         (WebCore::RenderThemeSafari::paintSliderTrack):
77634         (WebCore::RenderThemeSafari::adjustSliderThumbSize):
77635         * rendering/RenderThemeWin.cpp:
77636         (WebCore::RenderThemeWin::supportsFocus):
77637         (WebCore::RenderThemeWin::determineClassicState):
77638         (WebCore::RenderThemeWin::getClassicThemeData):
77639         (WebCore::RenderThemeWin::getThemeData):
77640         (WebCore::drawControl):
77641         (WebCore::RenderThemeWin::paintSliderTrack):
77642         (WebCore::RenderThemeWin::adjustSliderThumbSize):
77643         * rendering/RenderThemeWin.h:
77644         * rendering/style/RenderStyle.h:
77645         (WebCore::InheritedFlags::hasAppearance):
77646         (WebCore::InheritedFlags::appearance):
77647         (WebCore::InheritedFlags::setAppearance):
77648         (WebCore::InheritedFlags::initialAppearance):
77649         * rendering/style/RenderStyleConstants.h:
77650
77651 2008-10-17  David Hyatt  <hyatt@apple.com>
77652
77653         Beginning of the RenderTheme re-architecture (to share more code).  Add the new Theme API header
77654         file.  Add new USE(NEW_THEME) switch that is enabled on Mac.  The Mac theme will be converted first.
77655
77656         Reviewed by Tim Hatcher
77657
77658         * WebCore.vcproj/WebCore.vcproj:
77659         * WebCore.xcodeproj/project.pbxproj:
77660         * config.h:
77661         * platform/Theme.h: Added.
77662         (WebCore::Theme::Theme):
77663         (WebCore::Theme::~Theme):
77664         (WebCore::Theme::baselinePositionAdjustment):
77665         (WebCore::Theme::controlHasInactiveAppearance):
77666         (WebCore::Theme::controlsCanHaveInactiveAppearance):
77667         (WebCore::Theme::controlsCanHaveHoveredAppearance):
77668         (WebCore::Theme::controlDrawsBorder):
77669         (WebCore::Theme::controlDrawsBackground):
77670         (WebCore::Theme::controlDrawsFocusOutline):
77671         (WebCore::Theme::selectionColor):
77672         (WebCore::Theme::textSearchHighlightColor):
77673         (WebCore::Theme::systemColor):
77674         (WebCore::Theme::systemFont):
77675         (WebCore::Theme::caretBlinkFrequency):
77676         (WebCore::Theme::themeChanged):
77677         (WebCore::Theme::controlSize):
77678         (WebCore::Theme::controlFont):
77679         (WebCore::Theme::controlPadding):
77680         (WebCore::Theme::controlInternalPadding):
77681         (WebCore::Theme::controlBorder):
77682         (WebCore::Theme::controlBorderRadius):
77683         (WebCore::Theme::paint):
77684         (WebCore::Theme::inflateControlPaintRect):
77685         * platform/ThemeTypes.h: Added.
77686         (WebCore::):
77687         (WebCore::ControlBox::ControlBox):
77688         (WebCore::ControlBox::top):
77689         (WebCore::ControlBox::right):
77690         (WebCore::ControlBox::bottom):
77691         (WebCore::ControlBox::left):
77692         * platform/mac/ThemeMac.h: Added.
77693         (WebCore::ThemeMac::ThemeMac):
77694         (WebCore::ThemeMac::~ThemeMac):
77695         * platform/mac/ThemeMac.mm: Added.
77696         (WebCore::platformTheme):
77697         * rendering/RenderTheme.cpp:
77698         (WebCore::RenderTheme::RenderTheme):
77699         * rendering/RenderTheme.h:
77700
77701 2008-10-17  Marco Barisione  <marco.barisione@collabora.co.uk>
77702
77703         Reviewed by Sam Weinig. Landed by Jan Alonzo.
77704
77705         https://bugs.webkit.org/show_bug.cgi?id=21603
77706         [GTK] Minor fixes to GOwnPtr
77707
77708         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
77709         (WebCore::mediaPlayerPrivateErrorCallback):
77710
77711 2008-10-17  Timothy Hatcher  <timothy@apple.com>
77712
77713         Recompile the JavaScript functions when removing any listener, so functions that are
77714         not being debugged can resume normal speed again.
77715
77716         https://bugs.webkit.org/show_bug.cgi?id=21715
77717
77718         Reviewed by Geoffrey Garen.
77719
77720         * bindings/js/JSDOMWindowBase.cpp:
77721         (WebCore::JSDOMWindowBase::globalExec): Changed an assert into an if check. This assert
77722         was firing when closing the window and having the recompile fire after. This was an
77723         overzelious assert now.
77724         * inspector/JavaScriptDebugServer.cpp:
77725         (WebCore::JavaScriptDebugServer::didRemoveListener): Start the recompile timer.
77726         (WebCore::JavaScriptDebugServer::didRemoveLastListener): Removed the recompile timer start.
77727
77728 2008-10-17  Timothy Hatcher  <timothy@apple.com>
77729
77730         Fixes a regression where starting a debugging session in
77731         another Web Inspector window would not show any scripts.
77732         Also only attach the debugger to only the required Pages.
77733
77734         https://bugs.webkit.org/show_bug.cgi?id=21708
77735
77736         Reviewed by Darin Adler.
77737
77738         * inspector/JavaScriptDebugServer.cpp:
77739         (WebCore::JavaScriptDebugServer::addListener): Add an assert and
77740         remove the call to willAddFirstListener(). Add a call to
77741         didAddListener().
77742         (WebCore::JavaScriptDebugServer::removeListener): Add an assert
77743         and call to didRemoveListener().
77744         (WebCore::JavaScriptDebugServer::pageCreated): Attach the debugger
77745         if there is a listener interested in the new Page.
77746         (WebCore::JavaScriptDebugServer::hasListenersInterestedInPage):
77747         Use hasGlobalListeners() instead of isEmpty().
77748         (WebCore::JavaScriptDebugServer::sourceParsed): Ditto.
77749         (WebCore::JavaScriptDebugServer::didAddListener): Added. Attach the
77750         debugger to the page if non-null, or all pages if page is null.
77751         (WebCore::JavaScriptDebugServer::didRemoveListener): Added. Detach
77752         the debugger only if there are no interested listeners.
77753         (WebCore::JavaScriptDebugServer::didRemoveLastListener): Remove the
77754         call to Page::setDebuggerForAllPages().
77755         * inspector/JavaScriptDebugServer.h:
77756         (WebCore::JavaScriptDebugServer::hasGlobalListeners): Added.
77757
77758 2008-10-15  Brett Wilson  <brettw@chromium.org>
77759
77760         Reviewed by Timothy Hatcher.
77761
77762         Have ImageDocument generate its own filename for the title of images
77763         without relying on the suggested filename from the network layer, which
77764         may be nonexistant or not relevant.
77765         https://bugs.webkit.org/show_bug.cgi?id=21565
77766
77767         * loader/ImageDocument.cpp:
77768         (WebCore::ImageTokenizer::finish):
77769
77770 2008-10-17  Alexey Proskuryakov  <ap@webkit.org>
77771
77772         Non-Mac build fix.
77773
77774         * GNUmakefile.am:
77775         * WebCore.pro:
77776         * WebCore.vcproj/WebCore.vcproj:
77777         * WebCoreSources.bkl:
77778         Added ActiveDOMObject to the build.
77779
77780 2008-10-17  Alexey Proskuryakov  <ap@webkit.org>
77781
77782         Reviewed by Sam Weinig.
77783
77784         https://bugs.webkit.org/show_bug.cgi?id=21642
77785         Abstract out active object tracking
77786
77787         * WebCore.xcodeproj/project.pbxproj:
77788         * bindings/js/JSDOMBinding.cpp:
77789         (WebCore::markActiveObjectsForDocument):
77790         * dom/ActiveDOMObject.cpp: Added.
77791         (WebCore::ActiveDOMObject::ActiveDOMObject):
77792         (WebCore::ActiveDOMObject::~ActiveDOMObject):
77793         (WebCore::ActiveDOMObject::contextDestroyed):
77794         (WebCore::ActiveDOMObject::stop):
77795         * dom/ActiveDOMObject.h: Added.
77796         (WebCore::ActiveDOMObject::document):
77797         (WebCore::ActiveDOMObject::hasPendingActivity):
77798         (WebCore::ActiveDOMObject::setPendingActivity):
77799         (WebCore::ActiveDOMObject::unsetPendingActivity):
77800         * dom/Document.cpp:
77801         (WebCore::Document::~Document):
77802         (WebCore::Document::stopActiveDOMObjects):
77803         (WebCore::Document::createdActiveDOMObject):
77804         (WebCore::Document::destroyedActiveDOMObject):
77805         * dom/Document.h:
77806         (WebCore::Document::activeDOMObjects):
77807         * dom/MessagePort.cpp:
77808         (WebCore::MessagePort::contextDestroyed):
77809         * dom/MessagePort.h:
77810         * loader/FrameLoader.cpp:
77811         (WebCore::FrameLoader::stopLoading):
77812         * xml/XMLHttpRequest.cpp:
77813         (WebCore::XMLHttpRequest::XMLHttpRequest):
77814         (WebCore::XMLHttpRequest::~XMLHttpRequest):
77815         (WebCore::XMLHttpRequest::associatedFrame):
77816         (WebCore::XMLHttpRequest::responseXML):
77817         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
77818         (WebCore::XMLHttpRequest::initSend):
77819         (WebCore::XMLHttpRequest::send):
77820         (WebCore::XMLHttpRequest::createRequest):
77821         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
77822         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
77823         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
77824         (WebCore::XMLHttpRequest::loadRequestSynchronously):
77825         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
77826         (WebCore::XMLHttpRequest::dropProtection):
77827         (WebCore::XMLHttpRequest::setRequestHeader):
77828         (WebCore::XMLHttpRequest::processSyncLoadResults):
77829         (WebCore::XMLHttpRequest::didFinishLoading):
77830         (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
77831         (WebCore::XMLHttpRequest::willSendRequest):
77832         (WebCore::XMLHttpRequest::accessControlCheck):
77833         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
77834         (WebCore::XMLHttpRequest::stop):
77835         (WebCore::XMLHttpRequest::contextDestroyed):
77836         * xml/XMLHttpRequest.h:
77837         Move activity tracking to a new ActiveDOMObject class.
77838
77839 2008-10-16  David Hyatt  <hyatt@apple.com>
77840
77841         Simplify styleForRenderer to avoid confusion.  Callers in the SVG filter code thought "forRenderer" meant
77842         they would be given a style that corresponded to the RenderObject* passed in.  This is not what the code
77843         did though.  This patch removes the renderer argument and the Element subclass shadow implementation
77844         so that confusion like this can't occur again.
77845
77846         Reviewed by Oliver Hunt
77847
77848         * dom/Element.cpp:
77849         * dom/Element.h:
77850         * dom/Node.cpp:
77851         (WebCore::Node::createRendererIfNeeded):
77852         (WebCore::Node::styleForRenderer):
77853         * dom/Node.h:
77854         * html/HTMLOptGroupElement.cpp:
77855         (WebCore::HTMLOptGroupElement::attach):
77856         * html/HTMLOptionElement.cpp:
77857         (WebCore::HTMLOptionElement::attach):
77858         * svg/SVGClipPathElement.cpp:
77859         (WebCore::SVGClipPathElement::canvasResource):
77860         * svg/SVGFEDiffuseLightingElement.cpp:
77861         (WebCore::SVGFEDiffuseLightingElement::build):
77862         * svg/SVGFEFloodElement.cpp:
77863         (WebCore::SVGFEFloodElement::build):
77864         * svg/SVGFESpecularLightingElement.cpp:
77865         (WebCore::SVGFESpecularLightingElement::build):
77866         * svg/SVGGradientElement.cpp:
77867         (WebCore::SVGGradientElement::buildStops):
77868         * svg/SVGUseElement.cpp:
77869         (WebCore::SVGUseElement::attachShadowTree):
77870
77871 2008-10-16  David Hyatt  <hyatt@apple.com>
77872
77873         https://bugs.webkit.org/attachment.cgi?bugid=21647
77874
77875         Make RenderStyle inherit from RefCounted so that it works with RefPtr.  RenderStyle was being malloced
77876         out of the RenderArena.  Years and years ago (before TCMalloc), the plan was to make RenderStyles and
77877         all their associated sub-structs use the arena.  However only the RenderStyle itself was ever changed
77878         to use the arena.
77879
77880         At a later point style sharing was implemented, which made using the arena for styles pretty pointless,
77881         as the bulk of the styles on a given page are actually shared.  Not ever making the sub-structs use the
77882         arena also limited the usefulness.
77883
77884         Now that we have RefPtr/PassRefPtr to eliminate manual ref/deref and now that we use TCMalloc for fast
77885         mallocs, there is no reason to keep RenderStyles in the arena.  The benefits of being able to eliminate
77886         manual ref/deref far outweigh keeping them in the arena.
77887
77888         Reviewed by Adam Roben
77889
77890         * css/CSSStyleSelector.cpp:
77891         (WebCore::CSSStyleSelector::CSSStyleSelector):
77892         (WebCore::CSSStyleSelector::~CSSStyleSelector):
77893         (WebCore::CSSStyleSelector::styleForElement):
77894         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
77895         (WebCore::CSSStyleSelector::pseudoStyleForElement):
77896         These methods now return a PassRefPtr.  They will null out the m_style variable as they hand it back
77897         so that it isn't left pointing to the previous style resolve RenderStyle (which is what the old code did).
77898
77899         (WebCore::CSSStyleSelector::updateFont):
77900         (WebCore::CSSStyleSelector::checkSelector):
77901         (WebCore::CSSStyleSelector::applyProperty):
77902         (WebCore::CSSStyleSelector::mapFillSize):
77903         (WebCore::CSSStyleSelector::mapFillXPosition):
77904         (WebCore::CSSStyleSelector::mapFillYPosition):
77905         * css/CSSStyleSelector.h:
77906         (WebCore::CSSStyleSelector::style):
77907         * dom/Document.cpp:
77908         (WebCore::Document::recalcStyle):
77909         * dom/Element.cpp:
77910         (WebCore::Element::styleForRenderer):
77911         (WebCore::Element::recalcStyle):
77912         (WebCore::Element::computedStyle):
77913         * dom/Element.h:
77914         * dom/ElementRareData.h:
77915         (WebCore::ElementRareData::ElementRareData):
77916         (WebCore::ElementRareData::resetComputedStyle):
77917         * dom/Node.cpp:
77918         (WebCore::Node::diff):
77919         (WebCore::Node::createRendererIfNeeded):
77920         (WebCore::Node::styleForRenderer):
77921         (WebCore::Node::setRenderStyle):
77922         * dom/Node.h:
77923         * html/CanvasRenderingContext2D.cpp:
77924         (WebCore::CanvasRenderingContext2D::setFont):
77925         * html/HTMLOptGroupElement.cpp:
77926         (WebCore::HTMLOptGroupElement::attach):
77927         (WebCore::HTMLOptGroupElement::detach):
77928         (WebCore::HTMLOptGroupElement::setRenderStyle):
77929         (WebCore::HTMLOptGroupElement::nonRendererRenderStyle):
77930         * html/HTMLOptGroupElement.h:
77931         * html/HTMLOptionElement.cpp:
77932         (WebCore::HTMLOptionElement::attach):
77933         (WebCore::HTMLOptionElement::detach):
77934         (WebCore::HTMLOptionElement::setRenderStyle):
77935         (WebCore::HTMLOptionElement::nonRendererRenderStyle):
77936         * html/HTMLOptionElement.h:
77937         * page/animation/AnimationBase.h:
77938         (WebCore::AnimationBase::animate):
77939         * page/animation/AnimationController.cpp:
77940         (WebCore::AnimationController::updateAnimations):
77941         * page/animation/AnimationController.h:
77942         * page/animation/CompositeAnimation.cpp:
77943         (WebCore::CompositeAnimationPrivate::updateTransitions):
77944         (WebCore::CompositeAnimationPrivate::updateKeyframeAnimations):
77945         (WebCore::CompositeAnimationPrivate::animate):
77946         (WebCore::CompositeAnimation::animate):
77947         * page/animation/CompositeAnimation.h:
77948         * page/animation/ImplicitAnimation.cpp:
77949         (WebCore::ImplicitAnimation::ImplicitAnimation):
77950         (WebCore::ImplicitAnimation::~ImplicitAnimation):
77951         (WebCore::ImplicitAnimation::animate):
77952         (WebCore::ImplicitAnimation::reset):
77953         (WebCore::ImplicitAnimation::isTargetPropertyEqual):
77954         (WebCore::ImplicitAnimation::blendPropertyValueInStyle):
77955         * page/animation/ImplicitAnimation.h:
77956         (WebCore::ImplicitAnimation::create):
77957         * page/animation/KeyframeAnimation.cpp:
77958         (WebCore::KeyframeAnimation::KeyframeAnimation):
77959         (WebCore::KeyframeAnimation::~KeyframeAnimation):
77960         (WebCore::KeyframeAnimation::animate):
77961         (WebCore::KeyframeAnimation::validateTransformFunctionList):
77962         * page/animation/KeyframeAnimation.h:
77963         (WebCore::KeyframeAnimation::create):
77964         (WebCore::KeyframeAnimation::unanimatedStyle):
77965         * rendering/InlineTextBox.cpp:
77966         (WebCore::InlineTextBox::paint):
77967         * rendering/MediaControlElements.cpp:
77968         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
77969         (WebCore::MediaControlInputElement::MediaControlInputElement):
77970         * rendering/RenderBlock.cpp:
77971         (WebCore::RenderBlock::styleDidChange):
77972         (WebCore::RenderBlock::updateFirstLetter):
77973         * rendering/RenderContainer.cpp:
77974         (WebCore::RenderContainer::addChild):
77975         (WebCore::RenderContainer::updateBeforeAfterContentForContainer):
77976         * rendering/RenderFileUploadControl.cpp:
77977         (WebCore::RenderFileUploadControl::updateFromElement):
77978         (WebCore::RenderFileUploadControl::createButtonStyle):
77979         * rendering/RenderFileUploadControl.h:
77980         * rendering/RenderFlow.cpp:
77981         (WebCore::RenderFlow::createAnonymousFlow):
77982         * rendering/RenderFlow.h:
77983         * rendering/RenderInline.cpp:
77984         (WebCore::RenderInline::addChildToFlow):
77985         * rendering/RenderLayer.cpp:
77986         (WebCore::RenderLayer::updateScrollCornerStyle):
77987         (WebCore::RenderLayer::updateResizerStyle):
77988         (WebCore::RenderLayer::updateReflectionStyle):
77989         * rendering/RenderListItem.cpp:
77990         (WebCore::RenderListItem::styleDidChange):
77991         * rendering/RenderMedia.cpp:
77992         (WebCore::RenderMedia::createPanel):
77993         (WebCore::RenderMedia::createTimeDisplay):
77994         (WebCore::RenderMedia::changeOpacity):
77995         * rendering/RenderObject.cpp:
77996         (WebCore::RenderObject::selectionBackgroundColor):
77997         (WebCore::RenderObject::selectionForegroundColor):
77998         (WebCore::RenderObject::createAnonymousBlock):
77999         (WebCore::RenderObject::setAnimatableStyle):
78000         (WebCore::RenderObject::setStyle):
78001         (WebCore::RenderObject::setStyleInternal):
78002         (WebCore::RenderObject::arenaDelete):
78003         (WebCore::RenderObject::firstLineStyle):
78004         (WebCore::RenderObject::getPseudoStyle):
78005         * rendering/RenderObject.h:
78006         (WebCore::RenderObject::style):
78007         * rendering/RenderSVGBlock.cpp:
78008         (WebCore::RenderSVGBlock::setStyle):
78009         * rendering/RenderSVGBlock.h:
78010         * rendering/RenderScrollbar.cpp:
78011         (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
78012         (WebCore::RenderScrollbar::updateScrollbarPart):
78013         * rendering/RenderScrollbar.h:
78014         * rendering/RenderSlider.cpp:
78015         (WebCore::RenderSlider::styleDidChange):
78016         (WebCore::RenderSlider::createThumbStyle):
78017         (WebCore::RenderSlider::updateFromElement):
78018         * rendering/RenderSlider.h:
78019         * rendering/RenderTable.cpp:
78020         (WebCore::RenderTable::addChild):
78021         * rendering/RenderTableRow.cpp:
78022         (WebCore::RenderTableRow::addChild):
78023         * rendering/RenderTableSection.cpp:
78024         (WebCore::RenderTableSection::addChild):
78025         * rendering/RenderTextControl.cpp:
78026         (WebCore::RenderTextControl::styleDidChange):
78027         (WebCore::RenderTextControl::createInnerBlockStyle):
78028         (WebCore::RenderTextControl::createInnerTextStyle):
78029         (WebCore::RenderTextControl::createResultsButtonStyle):
78030         (WebCore::RenderTextControl::createCancelButtonStyle):
78031         (WebCore::RenderTextControl::createSubtreeIfNeeded):
78032         (WebCore::RenderTextControl::updatePlaceholderVisibility):
78033         * rendering/RenderTextControl.h:
78034         * rendering/TextControlInnerElements.cpp:
78035         (WebCore::TextControlInnerElement::attachInnerElement):
78036         * rendering/TextControlInnerElements.h:
78037         * rendering/style/KeyframeList.cpp:
78038         (WebCore::KeyframeList::clear):
78039         (WebCore::KeyframeList::operator==):
78040         (WebCore::KeyframeList::insert):
78041         * rendering/style/KeyframeList.h:
78042         (WebCore::KeyframeValue::KeyframeValue):
78043         (WebCore::KeyframeValue::~KeyframeValue):
78044         (WebCore::KeyframeValue::key):
78045         (WebCore::KeyframeValue::style):
78046         * rendering/style/RenderStyle.cpp:
78047         (WebCore::defaultStyle):
78048         (WebCore::RenderStyle::create):
78049         (WebCore::RenderStyle::createDefaultStyle):
78050         (WebCore::RenderStyle::clone):
78051         (WebCore::RenderStyle::RenderStyle):
78052         (WebCore::RenderStyle::getCachedPseudoStyle):
78053         (WebCore::RenderStyle::addCachedPseudoStyle):
78054         * rendering/style/RenderStyle.h:
78055         (WebCore::):
78056         (WebCore::InheritedFlags::operator!=):
78057         * svg/SVGClipPathElement.cpp:
78058         (WebCore::SVGClipPathElement::canvasResource):
78059         * svg/SVGGradientElement.cpp:
78060         (WebCore::SVGGradientElement::buildStops):
78061         * svg/SVGStyledElement.cpp:
78062         (WebCore::SVGStyledElement::resolveStyle):
78063         * svg/SVGStyledElement.h:
78064         * svg/SVGUseElement.cpp:
78065         (WebCore::SVGUseElement::recalcStyle):
78066         (WebCore::SVGUseElement::attachShadowTree):
78067
78068 2008-10-16  Kenneth Russell  <kenneth.russell@sun.com>
78069
78070         Reviewed and landed by Anders Carlsson.
78071
78072         https://bugs.webkit.org/show_bug.cgi?id=21587
78073         NPN_PluginThreadAsyncCall does not work properly
78074
78075         * plugins/PluginMainThreadScheduler.cpp:
78076         (WebCore::PluginMainThreadScheduler::dispatchCalls):
78077         Make sure to set m_callPending to false once the queue has been cleared.
78078
78079 2008-10-15  Alexey Proskuryakov  <ap@webkit.org>
78080
78081         Reviewed by Darin Adler.
78082
78083         https://bugs.webkit.org/show_bug.cgi?id=21609
78084         Make MessagePorts protect their peers across heaps
78085
78086         * dom/MessagePort.cpp:
78087         (WebCore::MessagePort::MessagePort):
78088         * dom/MessagePort.h:
78089         (WebCore::MessagePort::setJSWrapperIsKnownToBeInaccessible):
78090         (WebCore::MessagePort::jsWrapperIsKnownToBeInaccessible):
78091         Track objects whose JS wrappers are no longer reachable in MessagePort. Unfortunately, this
78092         means that the implementation object knows about JS bindings - but it is not possible to
78093         access JS wrappers from another heap/thread.
78094
78095         * bindings/js/JSDOMBinding.cpp:
78096         (WebCore::markCrossHeapDependentObjectsForDocument):
78097         * bindings/js/JSDOMBinding.h:
78098         * bindings/js/JSDOMWindowBase.cpp:
78099         (WebCore::JSDOMWindowBase::markCrossHeapDependentObjects):
78100         * bindings/js/JSDOMWindowBase.h:
78101         Implement cross-heap dependency tracking for entangled MessagePorts. If a wrapper object
78102         hasn't been marked normally, it is marked as inaccessible. It is then marked manually,
78103         as long as its entangled port is accessible itself.
78104
78105 2008-10-15  Jon Honeycutt  <jhoneycutt@apple.com>
78106
78107         Remove unneeded check of whether a Page defers loading before running it
78108         in a modal dialog.
78109
78110         No test possible.
78111
78112         Reviewed by Tim Hatcher.
78113
78114         * page/Chrome.cpp:
78115
78116 2008-10-15  Geoffrey Garen  <ggaren@apple.com>
78117
78118         Reviewed by Cameron Zwarich.
78119
78120         Fixed https://bugs.webkit.org/show_bug.cgi?id=21345
78121         Start the debugger without reloading the inspected page
78122
78123         * WebCore.base.exp: New symbols.
78124
78125         * ForwardingHeaders/kjs/CollectorHeapIterator.h: Copied from ForwardingHeaders/kjs/ustring.h.
78126         * ForwardingHeaders/kjs/Parser.h: Copied from ForwardingHeaders/kjs/ustring.h.
78127         * WebCore.xcodeproj/project.pbxproj: New forwarding headers.
78128
78129         * inspector/InspectorController.cpp:
78130         (WebCore::InspectorController::setWindowVisible):
78131         (WebCore::InspectorController::windowScriptObjectAvailable):
78132         (WebCore::InspectorController::startDebugging):
78133         * inspector/InspectorController.h: Renamed startDebuggingAndReloadInspectedPage
78134         to startDebugging, and changed its behavior to match.
78135
78136         * inspector/JavaScriptDebugListener.h:
78137         * inspector/JavaScriptDebugServer.cpp:
78138         (WebCore::JavaScriptDebugServer::JavaScriptDebugServer):
78139         (WebCore::JavaScriptDebugServer::addListener):
78140         (WebCore::JavaScriptDebugServer::removeListener):
78141         (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
78142         (WebCore::JavaScriptDebugServer::willAddFirstListener):
78143         (WebCore::JavaScriptDebugServer::didRemoveLastListener):
78144         * inspector/JavaScriptDebugServer.h: Refactored the
78145         JavaScriptDebugServer to centralize handling of adding the first listener
78146         and removing the last. Then, added a feature to recompile all JS functions
78147         in these cases. This allows us to dynamically add and remove hooks like
78148         the debugger hooks without reloading the page.
78149
78150         * inspector/front-end/ScriptsPanel.js:
78151         * English.lproj/localizedStrings.js: Updated for startDebuggingAndReloadInspectedPage =>
78152         startDebugging rename. Removed all UI that claimed that starting the
78153         debugger would reload the page.
78154
78155 2008-10-15  Adele Peterson  <adele@apple.com>
78156
78157         Attempt to fix the Tiger build.
78158
78159         * platform/network/mac/ResourceHandleMac.mm:
78160
78161 2008-10-15  Holger Hans Peter Freyther  <zecke@selfish.org>
78162
78163         Build fix attempt.
78164
78165         Try to fix static/non-static declaration of g_string_append_uri_escape
78166         by renaming that string. Another look needs to be taken.
78167
78168         * platform/gtk/guriescape.c:
78169         (_webcore_g_string_append_uri_escaped):
78170         (_webcore_g_uri_escape_string):
78171
78172 2008-10-15  Holger Hans Peter Freyther  <zecke@selfish.org>
78173
78174         Build fix.
78175
78176         m_animatingImageType is gone.
78177
78178         * platform/graphics/cairo/ImageCairo.cpp:
78179         (WebCore::BitmapImage::BitmapImage):
78180
78181 2008-10-15  Jeff Cook <cookiecaper@gmail.com>
78182
78183         Reviewed by Holger Freyther.
78184
78185         Stop SIGSEGV when leaving a page with a Flash object by reordering
78186         window destruction and plugin stop.
78187
78188         See https://bugs.webkit.org/show_bug.cgi?id=20779
78189
78190         * plugins/gtk/PluginViewGtk.cpp:
78191         (WebCore::PluginView::stop):
78192
78193 2008-10-15  Adele Peterson  <adele@apple.com>
78194
78195         Reviewed by Sam Weinig.
78196
78197         Implement didSendBodyData delegate method, and use older code path when that delegate doesn't exist.
78198
78199         * platform/network/ResourceHandle.h:
78200         * platform/network/mac/FormDataStreamMac.mm: (WebCore::formRead):
78201         * platform/network/mac/ResourceHandleMac.mm:
78202         (WebCore::ResourceHandle::didSendBodyDataDelegateExists):
78203         (WebCore::ResourceHandle::start):
78204         (WebCore::ResourceHandle::cancel):
78205         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
78206         (-[WebCoreResourceHandleAsDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]):
78207         (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
78208         (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
78209
78210 2008-10-15  Peter Kasting  <pkasting@google.com>
78211
78212         Reviewed by David Hyatt.
78213
78214         Qt build bustage fix.
78215
78216         * platform/graphics/qt/StillImageQt.h:
78217         (WebCore::StillImage::destroyDecodedData):
78218
78219 2008-10-15  David Hyatt  <hyatt@apple.com>
78220
78221         Make sure scrollbar styles get deleted if they aren't assigned to a renderer.
78222
78223         Reviewed by Mark Rowe
78224
78225         * rendering/RenderScrollbar.cpp:
78226         (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
78227         (WebCore::RenderScrollbar::updateScrollbarPart):
78228
78229 2008-10-15  Peter Kasting  <pkasting@google.com>
78230
78231         Reviewed by David Hyatt.
78232
78233         https://bugs.webkit.org/show_bug.cgi?id=19663 (Second attempt)
78234         Account for paint and timer lag when animating images.  Also pretend
78235         that images whose animations were paused (by becoming invisible)
78236         continued to animate, by "catching up" to the correct frame when they're
78237         shown again.
78238
78239         * platform/graphics/BitmapImage.cpp:
78240         (WebCore::BitmapImage::BitmapImage):
78241         (WebCore::BitmapImage::destroyDecodedData):
78242         (WebCore::BitmapImage::cacheFrame):
78243         (WebCore::BitmapImage::frameIsCompleteAtIndex):
78244         (WebCore::BitmapImage::frameDurationAtIndex):
78245         (WebCore::BitmapImage::frameHasAlphaAtIndex):
78246         (WebCore::BitmapImage::repetitionCount):
78247         (WebCore::BitmapImage::shouldAnimate):
78248         (WebCore::BitmapImage::startAnimation):
78249         (WebCore::BitmapImage::resetAnimation):
78250         (WebCore::BitmapImage::advanceAnimation):
78251         (WebCore::BitmapImage::internalAdvanceAnimation):
78252         (WebCore::BitmapImage::notifyObserverAndTrimDecodedData):
78253         * platform/graphics/BitmapImage.h:
78254         (WebCore::FrameData::FrameData):
78255         (WebCore::BitmapImage::):
78256         * platform/graphics/GeneratedImage.h:
78257         (WebCore::GeneratedImage::destroyDecodedData):
78258         * platform/graphics/Image.h:
78259         * platform/graphics/cairo/ImageCairo.cpp:
78260         (WebCore::FrameData::clear):
78261         (WebCore::BitmapImage::BitmapImage):
78262         (WebCore::BitmapImage::draw):
78263         * platform/graphics/cg/ImageCG.cpp:
78264         (WebCore::FrameData::clear):
78265         (WebCore::BitmapImage::BitmapImage):
78266         (WebCore::BitmapImage::draw):
78267         * platform/graphics/cg/PDFDocumentImage.h:
78268         (WebCore::PDFDocumentImage::destroyDecodedData):
78269         * platform/graphics/qt/ImageQt.cpp:
78270         (WebCore::FrameData::clear):
78271         (WebCore::BitmapImage::draw):
78272         * platform/graphics/wx/ImageWx.cpp:
78273         (WebCore::FrameData::clear):
78274         (WebCore::BitmapImage::draw):
78275         * svg/graphics/SVGImage.h:
78276         (WebCore::SVGImage::destroyDecodedData):
78277
78278 2008-10-14  Maxime Britto  <britto@apple.com>
78279
78280         Reviewed by Darin Adler, tweaked and landed by Beth.
78281
78282         * WebCore.base.exp: Exposes two functions to be able to create a
78283         selection from a point on the screen. Also exposes the new
78284         TextIterator::currentNode function.
78285         * WebCore/editing/TextIterator.cpp:
78286         (TextIterator::currentNode) : New function that returns the current
78287         text node or NULL if there is no text node.
78288
78289 2008-10-15  Marco Barisione  <marco.barisione@collabora.co.uk>
78290
78291         Reviewed by Holger Freyther.
78292
78293         http://bugs.webkit.org/show_bug.cgi?id=21211
78294         [CURL] Upload doesn't work because cancel is called
78295
78296         FormDataStream::read returns 0 when retrieving data from the form
78297         fails, but also when there is no more data to send. This means that
78298         ResourceHandleManager::cancel is always called even when the data was
78299         successfully sent.
78300
78301         Check if there are more elements in the form before calling
78302         FormDataStream::read.
78303
78304         * platform/network/curl/FormDataStreamCurl.cpp:
78305         (WebCore::FormDataStream::hasMoreElements):
78306         * platform/network/curl/FormDataStreamCurl.h:
78307         * platform/network/curl/ResourceHandleManager.cpp:
78308         (WebCore::readCallback):
78309
78310 2008-10-15  Marco Barisione  <marco.barisione@collabora.co.uk>
78311
78312         Reviewed by Holger Freyther.
78313
78314         http://bugs.webkit.org/show_bug.cgi?id=20664
78315         [GTK] File names are not always encodable in UTF-8
78316
78317         On Linux file names are just raw data and cannot always be directly
78318         encoded in UTF-8 or in any other encodings, so we escape them before
78319         storing the file name in a String and unescape them before passing
78320         them to native functions handling files.
78321
78322         * GNUmakefile.am:
78323         * platform/FileSystem.h:
78324         * platform/gtk/FileChooserGtk.cpp:
78325         (WebCore::stringByAdoptingFileSystemRepresentation):
78326         (WebCore::FileChooser::basenameForWidth):
78327         * platform/gtk/FileSystemGtk.cpp:
78328         (WebCore::filenameToString):
78329         (WebCore::filenameFromString):
78330         (WebCore::filenameForDisplay):
78331         (WebCore::fileExists):
78332         (WebCore::deleteFile):
78333         (WebCore::deleteEmptyDirectory):
78334         (WebCore::getFileSize):
78335         (WebCore::getFileModificationTime):
78336         (WebCore::makeAllDirectories):
78337         (WebCore::homeDirectoryPath):
78338         (WebCore::pathGetFileName):
78339         (WebCore::listDirectory):
78340         * platform/gtk/KURLGtk.cpp:
78341         (WebCore::KURL::fileSystemPath):
78342         * platform/gtk/SharedBufferGtk.cpp:
78343         (WebCore::SharedBuffer::createWithContentsOfFile):
78344         * platform/gtk/guriescape.c: Added.
78345         (is_valid):
78346         (gunichar_ok):
78347         (g_string_append_uri_escaped):
78348         (_webcore_g_uri_escape_string):
78349         * platform/gtk/guriescape.h: Added.
78350
78351 2008-10-15  Dirk Schulze  <vbs85@gmx.de>
78352
78353         Reviewed by Eric Seidel.
78354
78355         - part of https://bugs.webkit.org/show_bug.cgi?id=20543
78356           Moved gradient spread method out of SVG into the GraphicsContext.
78357
78358         * platform/graphics/GraphicsContext.cpp:
78359         (WebCore::GraphicsContext::spreadMethod):
78360         (WebCore::GraphicsContext::setSpreadMethod):
78361         * platform/graphics/GraphicsContext.h:
78362         (WebCore::):
78363         * platform/graphics/GraphicsContextPrivate.h:
78364         * platform/graphics/cairo/GraphicsContextCairo.cpp:
78365         (WebCore::applySpreadMethod):
78366         (WebCore::GraphicsContext::fillPath):
78367         (WebCore::GraphicsContext::strokePath):
78368         * platform/graphics/qt/GraphicsContextQt.cpp:
78369         (WebCore::applySpreadMethod):
78370         (WebCore::GraphicsContext::fillPath):
78371         (WebCore::GraphicsContext::strokePath):
78372         * svg/GradientAttributes.h:
78373         (WebCore::GradientAttributes::GradientAttributes):
78374         (WebCore::GradientAttributes::spreadMethod):
78375         (WebCore::GradientAttributes::setSpreadMethod):
78376         * svg/SVGGradientElement.cpp:
78377         (WebCore::SVGGradientElement::parseMappedAttribute):
78378         * svg/SVGGradientElement.h:
78379         * svg/SVGLinearGradientElement.cpp:
78380         (WebCore::SVGLinearGradientElement::collectGradientProperties):
78381         * svg/SVGRadialGradientElement.cpp:
78382         (WebCore::SVGRadialGradientElement::collectGradientProperties):
78383         * svg/graphics/SVGPaintServerGradient.cpp:
78384         (WebCore::operator<<):
78385         (WebCore::SVGPaintServerGradient::SVGPaintServerGradient):
78386         (WebCore::SVGPaintServerGradient::spreadMethod):
78387         (WebCore::SVGPaintServerGradient::setGradientSpreadMethod):
78388         (WebCore::SVGPaintServerGradient::externalRepresentation):
78389         * svg/graphics/SVGPaintServerGradient.h:
78390         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
78391         (WebCore::SVGPaintServerGradient::setup):
78392         * svg/graphics/qt/SVGPaintServerGradientQt.cpp:
78393         (WebCore::SVGPaintServerGradient::setup):
78394
78395 2008-10-09  Darin Fisher  <darin@chromium.org>
78396
78397         Reviewed by Sam Weinig.
78398
78399         Make pan scrolling a platform configurable option
78400         https://bugs.webkit.org/show_bug.cgi?id=21515
78401
78402         * page/EventHandler.cpp:
78403         (WebCore::EventHandler::handleAutoscroll):
78404         (WebCore::EventHandler::autoscrollTimerFired):
78405         (WebCore::EventHandler::stopAutoscrollTimer):
78406         (WebCore::EventHandler::handleMousePressEvent):
78407         (WebCore::EventHandler::keyEvent):
78408
78409 2008-10-10  Darin Fisher  <darin@chromium.org>
78410
78411         Reviewed by Darin Adler.
78412
78413         Add some PLATFORM(CHROMIUM) ifdefs to WebCore
78414         https://bugs.webkit.org/show_bug.cgi?id=21511
78415
78416         * loader/FTPDirectoryDocument.cpp:
78417         * loader/FTPDirectoryParser.cpp:
78418         * loader/FrameLoader.cpp:
78419         (WebCore::FrameLoader::finishedLoadingDocument):
78420         * platform/ContextMenuItem.h:
78421         * platform/Cursor.h:
78422         * platform/DragData.h:
78423         * platform/DragImage.h:
78424         * platform/Pasteboard.h:
78425         * platform/PlatformKeyboardEvent.h:
78426         (WebCore::PlatformKeyboardEvent::isSystemKey):
78427         * platform/PlatformMenuDescription.h:
78428         * platform/PlatformMouseEvent.h:
78429         * platform/PlatformWheelEvent.h:
78430         * platform/PopupMenu.h:
78431         * platform/ScrollView.h:
78432         * platform/Widget.h:
78433         * platform/network/NetworkStateNotifier.h:
78434
78435 2008-10-14  Chris Marrin  <cmarrin@apple.com>
78436
78437         Reviewed by Darin Adler.
78438
78439         Fixed https://bugs.webkit.org/show_bug.cgi?id=21490
78440         Optimize keyframe style sheet changes by avoiding styleSheetChanged()
78441
78442         Test: css3/change-keyframes.html
78443
78444         * css/WebKitCSSKeyframesRule.cpp:
78445         (WebCore::WebKitCSSKeyframesRule::append):
78446         (WebCore::WebKitCSSKeyframesRule::deleteRule):
78447
78448 2008-10-14  David Hyatt  <hyatt@apple.com>
78449
78450         https://bugs.webkit.org/show_bug.cgi?id=21595
78451
78452         Clean up background and overflow propagation from the body to the viewport.  Make it match the
78453         latest CSS2.1 spec thinking.
78454
78455         Reviewed by Adam Roben
78456
78457         Added many tests at fast/body-propagation/.  These are Simon Pieters' tests of propagation handling
78458         (available at http://simon.html5.org/test/css/magic-body/).
78459
78460         * dom/Document.cpp:
78461         (WebCore::Document::body):
78462         * page/FrameView.cpp:
78463         (WebCore::FrameView::layout):
78464         * rendering/RenderBox.cpp:
78465         (WebCore::RenderBox::styleDidChange):
78466         (WebCore::RenderBox::paintRootBoxDecorations):
78467         (WebCore::RenderBox::paintBoxDecorations):
78468         (WebCore::RenderBox::repaintLayerRectsForImage):
78469
78470 2008-10-14  Dimitri Glazkov  <dglazkov@chromium.org>
78471
78472         Reviewed and landed by Sam Weinig.
78473
78474         Due to change in spec (http://dev.w3.org/2006/webapi/selectors-api/#namespace),
78475         remove NSResolver code, leaving only checking for selectors that need
78476         NS resolution and throwing a coresponding error.
78477
78478         * WebCore.pro:
78479         * WebCore.vcproj/WebCore.vcproj:
78480         * WebCore.xcodeproj/project.pbxproj:
78481         * WebCoreSources.bkl:
78482         * bindings/js/JSDocumentCustom.cpp:
78483         * bindings/js/JSDocumentFragmentCustom.cpp:
78484         * bindings/js/JSElementCustom.cpp:
78485         * bindings/js/JSNSResolver.cpp: Removed.
78486         * bindings/js/JSNSResolver.h: Removed.
78487         * dom/Document.idl:
78488         * dom/DocumentFragment.idl:
78489         * dom/Element.idl:
78490         * dom/NSResolver.h: Removed.
78491         * dom/NSResolver.idl: Removed.
78492         * dom/Node.h:
78493         * dom/Node.cpp:
78494         (WebCore::forEachTagSelector):
78495         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
78496         (WebCore::selectorNeedsNamespaceResolution):
78497         (WebCore::Node::querySelector):
78498         (WebCore::Node::querySelectorAll):
78499
78500 2008-10-14  Darin Adler  <darin@apple.com>
78501
78502         Reviewed by Sam Weinig (all but the FormDataListItem rename).
78503
78504         - https://bugs.webkit.org/show_bug.cgi?id=21593
78505           Bug 21593: add multiple-file support to HTMLFormElement
78506
78507         * html/FormDataList.cpp: Removed appendFile since it's now inline.
78508         Also took incorrect old copyrights off of this file that are left
78509         over from when it was split.
78510         * html/FormDataList.h: Ditto. Renamed FormDataListItem to Item and
78511         made it a member of FormDataList. Changed it to hold a File object
78512         instead of a path. And made its data members private. Changed
78513         FormDataList::appendFile accordingly.
78514
78515         * html/HTMLFormElement.cpp:
78516         (WebCore::HTMLFormElement::formData): Updated for above changes.
78517         Removed the code that special-cases HTMLInputElement, because now
78518         the FormDataListItem has everything we need. And if there are
78519         multiple files, we'll get multiple list items for them.
78520
78521         * html/HTMLInputElement.cpp:
78522         (WebCore::HTMLInputElement::appendFormData): Changed the code for
78523         <input type=file> to use File objects instead of path strings and
78524         also to append multiple files if the file list has them.
78525
78526 2008-10-14  Tor Arne Vestbø  <tavestbo@trolltech.com>
78527
78528         Reviewed by Simon.
78529
78530         Fix QtWebKit scrollbar painting errors
78531
78532         * platform/qt/ScrollbarThemeQt.cpp:
78533         (WebCore::ScrollbarThemeQt::paint):
78534         (WebCore::ScrollbarThemeQt::paintScrollCorner):
78535
78536 2008-10-14  Tor Arne Vestbø  <tavestbo@trolltech.com>
78537
78538         Reviewed by Simon.
78539
78540         Fix scrollbar arrows for horizontal scrollbars
78541
78542         * platform/qt/ScrollbarThemeQt.cpp:
78543         (WebCore::styleOptionSlider):
78544
78545 2008-10-14  Tor Arne Vestbø  <tavestbo@trolltech.com>
78546
78547         Reviewed by Simon.
78548
78549         Use style-painter to draw scrollbars in ScrollbarThemeQt
78550
78551         This has the benefit of setting up the painter properly without
78552         antialiasing and saving and restoring the brush. It also ensures
78553         that we use the style of the QWebView over the QApplication style
78554         if possible.
78555
78556         * platform/qt/RenderThemeQt.cpp:
78557         (WebCore::StylePainter::StylePainter):
78558         (WebCore::StylePainter::init):
78559         * platform/qt/RenderThemeQt.h:
78560         * platform/qt/ScrollbarThemeQt.cpp:
78561         (WebCore::ScrollbarThemeQt::paint):
78562
78563 2008-10-13  David Hyatt  <hyatt@apple.com>
78564
78565         Add support for CSS transitions on some SVG properties.  This patch is intended to be a guideline
78566         for how to add support for the rest.
78567
78568         Reviewed by Oliver Hunt
78569
78570         * page/animation/AnimationBase.cpp:
78571         (WebCore::ensurePropertyMap):
78572         * rendering/style/RenderStyle.h:
78573         (WebCore::RenderStyle::fillOpacity):
78574         (WebCore::RenderStyle::setFillOpacity):
78575         (WebCore::RenderStyle::strokeOpacity):
78576         (WebCore::RenderStyle::setStrokeOpacity):
78577         (WebCore::RenderStyle::floodOpacity):
78578         (WebCore::RenderStyle::setFloodOpacity):
78579
78580 2008-10-13  David Hyatt  <hyatt@apple.com>
78581
78582         <rdar://problem/6289712> REGRESSION(r37432-37490): Scroll bar is not drawn in Bookmark View, Preferences sheets.
78583
78584         Fix for disabled scrollbars not painting in Windows Safari.  Make sure that the Windows theme
78585         implements paintTrackBackground so that when the thumb is not present the track still paints.
78586
78587         Reviewed by Oliver Hunt
78588
78589         * platform/ScrollbarThemeComposite.cpp:
78590         (WebCore::ScrollbarThemeComposite::paint):
78591         * platform/win/ScrollbarThemeWin.cpp:
78592         (WebCore::ScrollbarThemeWin::paintTrackBackground):
78593         * platform/win/ScrollbarThemeWin.h:
78594
78595 2008-10-13  David Hyatt  <hyatt@apple.com>
78596
78597         Fix over-invalidation of native scrollbars.
78598
78599         Reviewed by Oliver Hunt
78600
78601         * platform/Scrollbar.h:
78602         (WebCore::Scrollbar::styleChanged):
78603         * platform/mac/ScrollbarThemeMac.mm:
78604         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
78605         * rendering/RenderScrollbar.cpp:
78606         (WebCore::RenderScrollbar::styleChanged):
78607
78608 2008-10-13  Alp Toker  <alp@nuanti.com>
78609
78610         Fix autotools dist build target by listing recently added header
78611         files only. Not reviewed.
78612
78613         * GNUmakefile.am:
78614
78615 2008-10-13  Mark Rowe  <mrowe@apple.com>
78616
78617         Reviewed by Brady Eidson.
78618
78619         Don't run a SQLite query on every iteration of the sync thread when the query
78620         will touch a large portion of the icon database while performing no useful work.
78621
78622         * loader/icon/IconDatabase.cpp:
78623         (WebCore::IconDatabase::writeToDatabase): Don't call checkForDanglingPageURLs unless
78624         we modified the database.
78625         (WebCore::IconDatabase::checkForDanglingPageURLs): Don't do any work in a release build
78626         unless we've been asked to prune any dangling pageURLs that we find.
78627
78628 2008-10-13  Maciej Stachowiak  <mjs@apple.com>
78629
78630         Rubber stamped by Mark Rowe.
78631
78632         - use gcc 4.2 when building with Xcode 3.1 or newer on Leopard, even though this is not the default
78633
78634         * Configurations/DebugRelease.xcconfig:
78635
78636 2008-10-13  David Hyatt  <hyatt@apple.com>
78637
78638         Make dropdown lists on Windows work with CSS custom scrollbars.
78639
78640         Reviewed by Adele
78641
78642         * platform/PopupMenu.h:
78643         (WebCore::PopupMenu::scrollbarCornerPresent):
78644         * platform/PopupMenuClient.h:
78645         * platform/win/PopupMenuWin.cpp:
78646         (WebCore::PopupMenu::show):
78647         * rendering/RenderMenuList.cpp:
78648         (WebCore::RenderMenuList::createScrollbar):
78649         * rendering/RenderMenuList.h:
78650         * rendering/RenderTextControl.cpp:
78651         (WebCore::RenderTextControl::createScrollbar):
78652         * rendering/RenderTextControl.h:
78653
78654 2008-10-13  Chris Fleizach  <cfleizach@apple.com>
78655
78656         Reviewed by Beth Dakin.
78657
78658         <rdar://problem/6271864> Links from image maps not being included in AXLinkUIElements
78659
78660         Links from image maps were not being included in the web area's AXLinkUIElements attribute.
78661         The position of image map links was being reported incorrectly and the parent-chain
78662         hierarchy for image map links was incorrect because image map links did not have a reference
78663         to their parent image.
78664
78665         Test: accessibility/document-links.html
78666
78667         * page/AccessibilityImageMapLink.cpp:
78668         (WebCore::AccessibilityImageMapLink::parentObject):
78669         (WebCore::AccessibilityImageMapLink::actionElement):
78670         (WebCore::AccessibilityImageMapLink::elementRect):
78671         * page/AccessibilityImageMapLink.h:
78672         (WebCore::AccessibilityImageMapLink::setHTMLMapElement):
78673         (WebCore::AccessibilityImageMapLink::setParent):
78674         * page/AccessibilityObject.cpp:
78675         * page/AccessibilityObject.h:
78676         * page/AccessibilityRenderObject.cpp:
78677         (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
78678         (WebCore::AccessibilityRenderObject::getDocumentLinks):
78679         (WebCore::AccessibilityRenderObject::addChildren):
78680         * page/AccessibilityRenderObject.h:
78681         * page/mac/AccessibilityObjectWrapper.mm:
78682         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
78683
78684 2008-10-13  David Hyatt  <hyatt@apple.com>
78685
78686         Make RenderListBox work with CSS scrollbars.  Refactoring this code to support creation/destruction in
78687         the same way RenderLayer does also fixes a bug where the PLT would assert on the next-to-last page (no
78688         idea how to make a test case for that, though, since I couldn't repro without running the whole PLT).
78689
78690         Reviewed by Tim Hatcher
78691
78692         Added scrollbars/listbox-scrollbar-combinations.html
78693
78694         * rendering/RenderListBox.cpp:
78695         (WebCore::RenderListBox::~RenderListBox):
78696         (WebCore::RenderListBox::updateFromElement):
78697         (WebCore::RenderListBox::createScrollbar):
78698         (WebCore::RenderListBox::destroyScrollbar):
78699         (WebCore::RenderListBox::setHasVerticalScrollbar):
78700         * rendering/RenderListBox.h:
78701
78702 2008-10-13  David Hyatt  <hyatt@apple.com>
78703
78704         In order to always match the :corner-present pseudo-class properly, delay initial updating of
78705         scrollbar styles until the layer has the scrollbars in its member variables.
78706
78707         Reviewed by Tim Hatcher
78708
78709         * rendering/RenderLayer.cpp:
78710         (WebCore::RenderLayer::setHasHorizontalScrollbar):
78711         (WebCore::RenderLayer::setHasVerticalScrollbar):
78712         * rendering/RenderScrollbar.cpp:
78713         (WebCore::RenderScrollbar::RenderScrollbar):
78714
78715 2008-10-13  Sam Weinig  <sam@webkit.org>
78716
78717         Reviewed by Dan Bernstein.
78718
78719         Fix for https://bugs.webkit.org/show_bug.cgi?id=21577
78720         5 false positive StructureID leaks
78721
78722         In WebCore, we intentionally leak the common JSGlobalData which in turn
78723         leaks 5 StructureIDs.  Use the new JSGlobalData::createLeaked in order to
78724         ignore the StructureIDs leaked within.
78725
78726         * bindings/js/JSDOMWindowBase.cpp:
78727         (WebCore::JSDOMWindowBase::commonJSGlobalData):
78728
78729 2008-10-13  David Hyatt  <hyatt@apple.com>
78730
78731         Add support for the :corner-present pseudoclass, which enables scrollbar pieces to change their
78732         artwork based on whether there is a scrollbar corner present.
78733
78734         Reviewed by Tim Hatcher
78735
78736         * css/CSSSelector.cpp:
78737         (WebCore::CSSSelector::extractPseudoType):
78738         * css/CSSSelector.h:
78739         (WebCore::CSSSelector::):
78740         * css/CSSStyleSelector.cpp:
78741         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
78742         * platform/ScrollView.cpp:
78743         (WebCore::ScrollView::scrollbarCornerPresent):
78744         * platform/ScrollView.h:
78745         * platform/ScrollbarClient.h:
78746         * rendering/RenderLayer.cpp:
78747         (WebCore::cornerRect):
78748         (WebCore::scrollCornerRect):
78749         (WebCore::resizerCornerRect):
78750         (WebCore::RenderLayer::scrollbarCornerPresent):
78751         (WebCore::RenderLayer::setHasHorizontalScrollbar):
78752         (WebCore::RenderLayer::setHasVerticalScrollbar):
78753         * rendering/RenderLayer.h:
78754         (WebCore::RenderLayer::horizontalScrollbar):
78755         (WebCore::RenderLayer::verticalScrollbar):
78756         * rendering/RenderListBox.h:
78757         (WebCore::RenderListBox::scrollbarCornerPresent):
78758
78759 2008-10-13  David Hyatt  <hyatt@apple.com>
78760
78761         Make resizers and scrollbar corners respect :window-inactive (one more bug fix and then Tim's master
78762         test case for all this can land).
78763
78764         Reviewed by Tim Hatcher
78765
78766         * css/CSSStyleSelector.cpp:
78767         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
78768         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
78769         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
78770         * rendering/RenderLayer.cpp:
78771         (WebCore::RenderLayer::paintOverflowControls):
78772         (WebCore::RenderLayer::paintScrollCorner):
78773         (WebCore::RenderLayer::paintResizer):
78774         (WebCore::RenderLayer::styleChanged):
78775         (WebCore::RenderLayer::updateScrollCornerStyle):
78776         (WebCore::RenderLayer::updateResizerStyle):
78777         * rendering/RenderLayer.h:
78778         * rendering/RenderScrollbar.cpp:
78779         (WebCore::RenderScrollbar::paint):
78780         * rendering/RenderScrollbarPart.cpp:
78781         (WebCore::RenderScrollbarPart::paintIntoRect):
78782
78783 2008-10-13  David Hyatt  <hyatt@apple.com>
78784
78785         Rework resizer and scroll corner painting so that custom resizers and scroll corners will paint
78786         and invalidate properly as images load, etc.
78787
78788         Reviewed by Tim Hatcher
78789
78790         * rendering/RenderLayer.cpp:
78791         (WebCore::cornerRect):
78792         (WebCore::scrollCornerRect):
78793         (WebCore::resizerCornerRect):
78794         (WebCore::RenderLayer::positionOverflowControls):
78795         (WebCore::RenderLayer::paintOverflowControls):
78796         (WebCore::RenderLayer::paintScrollCorner):
78797         (WebCore::RenderLayer::paintResizer):
78798         (WebCore::RenderLayer::isPointInResizeControl):
78799         (WebCore::RenderLayer::hitTestOverflowControls):
78800         (WebCore::RenderLayer::styleChanged):
78801         * rendering/RenderLayer.h:
78802         * rendering/RenderObject.h:
78803         (WebCore::RenderObject::setRect):
78804         * rendering/RenderScrollbarPart.cpp:
78805         (WebCore::RenderScrollbarPart::styleDidChange):
78806         (WebCore::RenderScrollbarPart::imageChanged):
78807
78808 2008-10-13  Marco Barisione  <marco.barisione@collabora.co.uk>
78809
78810         Reviewed by Darin Adler. Landed by Jan Alonzo.
78811
78812         WebKit GTK Port needs a smartpointer to handle g_free (GFreePtr?)
78813         http://bugs.webkit.org/show_bug.cgi?id=20483
78814
78815         Start the conversion to use GOwnPtr and fix a memory leak.
78816
78817         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
78818         (WebCore::mediaPlayerPrivateErrorCallback):
78819
78820 2008-10-12  Jon Honeycutt  <jhoneycutt@apple.com>
78821
78822         Windows build fix.
78823
78824         * loader/TextResourceDecoder.cpp:
78825
78826 2008-10-12  Darin Fisher  <darin@chromium.org>
78827
78828         Reviewed by Darin Adler.
78829
78830         - fix https://bugs.webkit.org/show_bug.cgi?id=21229
78831           Bug 21229: NetworkStateNotifier.h lacks a #include <windows.h> for PLATFORM(WIN)
78832
78833         * platform/network/NetworkStateNotifier.h: Add the #include.
78834
78835 2008-10-12  Darin Adler  <darin@apple.com>
78836
78837         Based on work by Holger Freyther.
78838
78839         - part of https://bugs.webkit.org/show_bug.cgi?id=20953
78840           Split WidthIterator into its own source file.
78841
78842         * GNUmakefile.am: Added new source files.
78843         * WebCore.vcproj/WebCore.vcproj: Ditto.
78844         * WebCore.xcodeproj/project.pbxproj: Ditto.
78845         * WebCoreSources.bkl: Ditto.
78846
78847         * platform/graphics/Font.cpp: Use WidthIterator from its new place.
78848         * platform/graphics/WidthIterator.cpp: Added.
78849         * platform/graphics/WidthIterator.h: Added.
78850
78851 2008-10-12  Tony Chang  <tony@chromium.org>
78852
78853         Reviewed by Sam Weinig.
78854
78855         - https://bugs.webkit.org/show_bug.cgi?id=21480
78856           Remove duplicate definitions of MimeClassInfo and PluginInfo.
78857
78858         * plugins/PluginInfoStore.cpp: Added an include.
78859         * plugins/PluginInfoStore.h: Removed struct declarations.
78860
78861 2008-10-12  Darin Adler  <darin@apple.com>
78862
78863         Reviewed by Dan Bernstein.
78864
78865         - https://bugs.webkit.org/show_bug.cgi?id=21563
78866           Bug 21563: platform Gradient class should not use the CSS parser
78867
78868         * platform/graphics/Gradient.cpp: Removed the overload of addColorStop
78869         that accepts a CSS color string. That's handled in the DOM now, not here.
78870         (WebCore::Gradient::addColorStop): Use getRGBA instead of having our own
78871         copy of it here.
78872         * platform/graphics/Gradient.h: More of the same. Tweak formatting a bit.
78873
78874 2008-10-12  Glenn Wilson  <gwilson@google.com>
78875
78876         Reviewed by Darin Adler.
78877
78878         - https://bugs.webkit.org/show_bug.cgi?id=20461
78879
78880         Added feature to allow multi-line inputs into text fields.
78881         HTMLInputElement would cut the set text at the first 'system' character,
78882         so it would truncate at the first carriage return or newline.
78883         This fix modifies that behavior to truncate at any non-space system character
78884         but changes \r, \n, and \r\n to a single space.
78885
78886         Tests: editing/pasteboard/paste-multiline-text-input.html
78887
78888         * html/HTMLInputElement.cpp:
78889         (WebCore::HTMLInputElement::constrainValue):
78890
78891 2008-10-12  Dirk Schulze  <vbs85@gmx.de>
78892
78893         Reviewed by Eric Seidel.
78894
78895         - https://bugs.webkit.org/show_bug.cgi?id=20435
78896
78897         Added exception codes to canvas gradients to match current specification.
78898
78899         Tests: fast/canvas/gradient-addColorStop-with-invalid-color.html
78900                fast/canvas/linearGradient-infinite-values.html
78901                fast/canvas/radialGradient-infinite-values.html
78902
78903         * html/CanvasGradient.cpp:
78904         (WebCore::CanvasGradient::addColorStop):
78905         * html/CanvasGradient.h:
78906         * html/CanvasGradient.idl:
78907         * html/CanvasRenderingContext2D.cpp:
78908         (WebCore::CanvasRenderingContext2D::createLinearGradient):
78909         (WebCore::CanvasRenderingContext2D::createRadialGradient):
78910         * html/CanvasRenderingContext2D.h:
78911         * html/CanvasRenderingContext2D.idl:
78912
78913 2008-10-12  Eric Roman  <eroman@chromium.org>
78914
78915         - https://bugs.webkit.org/show_bug.cgi?id=20246
78916           Implement RenderThemeWin::systemColor() to match Windows colors.
78917
78918         Reviewed by David Hyatt.
78919
78920         * rendering/RenderThemeWin.cpp:
78921         (WebCore::cssValueIdToSysColorIndex):
78922         (WebCore::RenderThemeWin::systemColor):
78923         * rendering/RenderThemeWin.h:
78924
78925 2008-10-12  Aaron Bockover  <abockover@novell.com>
78926
78927         Reviewed by Alp Toker.
78928
78929         Add version parsing for Flash, and the PluginQuirkDontSetNullWindowHandleOnDestroy
78930         plugin quirk if Flash 10 or newer since at least in b218, setting a NULL window
78931         handler on destroy crashes WebKit <https://bugs.webkit.org/show_bug.cgi?id=19859>
78932
78933         * plugins/gtk/PluginPackageGtk.cpp:
78934
78935 2008-10-12  Jonathon Jongsma  <jonathon.jongsma@collabora.co.uk>
78936
78937         Reviewed by Oliver Hunt.
78938
78939         - https://bugs.webkit.org/show_bug.cgi?id=19331
78940           <rdar://problem/5984433>: Drag and drop of links in edit mode violates assert in MoveSelectionCommand::doApply()
78941
78942         * page/DragController.cpp:
78943         (WebCore::DragController::startDrag): When a link is dragged without any
78944         text selected (note: for this to work, the EditableLinkBehavior setting must be
78945         set to 'live' or 'default') and then dropped into an editable html document it
78946         will eventually violate an ASSERT in MoveSelectionCommand that requires that there
78947         is a selection.  To prevent this, expand the selection to the enclosing anchor tag
78948         when the drag begins.
78949
78950 2008-10-12  Darin Adler  <darin@apple.com>
78951
78952         Reviewed by Mark Rowe.
78953
78954         - fix https://bugs.webkit.org/show_bug.cgi?id=21557
78955           Bug 21557: REGRESSION: generated-layer-scrollbar-crash.html is crashing
78956
78957         * rendering/RenderObject.cpp:
78958         (WebCore::RenderObject::getPseudoStyle): Keep walking up the parent chain
78959         until we hit an Element. Nowadays, Node::isElementNode() is just as efficient
78960         as RenderObject::isText(), and this guarantees that the node can be cast to
78961         Element*, which is done just below. The reason this is hit is that RenderLayer
78962         can call getPseudoStyle on a RenderView, which has the document as its
78963         element() -- and a document is neither a Text node nor an Element. A loose
78964         end is that this seems to mean you can't style the scrollbar corner or the
78965         resizer on a RenderView. Hyatt may want to look into that later.
78966
78967 2008-10-12  Darin Adler  <darin@apple.com>
78968
78969         Reviewed by Sam Weinig.
78970
78971         - https://bugs.webkit.org/show_bug.cgi?id=21556
78972           Bug 21556: non-ASCII digits are allowed in places where only ASCII should be
78973
78974         Tests: fast/dom/HTMLFontElement/size-attribute.html
78975                fast/dom/HTMLInputElement/size-attribute.html
78976                fast/dom/HTMLTableElement/cellpadding-attribute.html
78977
78978         * html/HTMLFontElement.cpp:
78979         (WebCore::parseFontSizeNumber): Use isASCIIDigit instead of
78980         Unicode::isDigit, since non-ASCII digits are not valid here.
78981         * html/HTMLFontElement.h: Tweaked formatting a bit and removed
78982         the unneeded destructor declaration.
78983         * platform/text/String.cpp:
78984         (WebCore::lengthOfCharactersAsInteger): Use isASCIIDigit instead
78985         of Unicode::isDigit, since non-ASCII digits are not valid.
78986
78987 2008-10-12  Jungshik Shin  <jshin@chromium.org>
78988
78989         Reviewed by Darin Adler.
78990
78991         Treat x-user-defined as windows-1252 for html files with meta charset
78992         declaration to be compatible with Indian web sites.
78993         ( https://bugs.webkit.org/show_bug.cgi?id=18270 )
78994
78995         Test: fast/encoding/charset-xuser-defined.html
78996
78997         * loader/TextResourceDecoder.cpp:
78998         (WebCore::TextResourceDecoder::setEncoding):
78999
79000 2008-10-12  Sam Weinig  <sam@webkit.org>
79001
79002         Reviewed by Dan Bernstein.
79003
79004         Remove unneeded forward declaration.
79005
79006         * platform/graphics/ImageBuffer.h:
79007
79008 2008-10-12  Sam Weinig  <sam@webkit.org>
79009
79010         Reviewed by Darin Adler.
79011
79012         Fix for https://bugs.webkit.org/show_bug.cgi?id=21560
79013         Layering violation: String should not be responsible for creating Lengths
79014
79015         It was a layering violation for String to know haw to parse
79016         into Lengths, LengthArrays, and CoordsArrays.
79017
79018         * GNUmakefile.am:
79019         * WebCore.pro:
79020         * WebCore.vcproj/WebCore.vcproj:
79021         * WebCore.xcodeproj/project.pbxproj:
79022         * WebCoreSources.bkl:
79023         * html/HTMLAreaElement.cpp:
79024         (WebCore::HTMLAreaElement::parseMappedAttribute):
79025         * html/HTMLFrameSetElement.cpp:
79026         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
79027         * platform/text/AtomicString.h:
79028         (WebCore::AtomicString::percentage):
79029         * platform/text/PlatformString.h:
79030         * platform/text/String.cpp:
79031         * platform/text/StringImpl.cpp:
79032         * platform/text/StringImpl.h:
79033         * rendering/Length.cpp: Added.
79034         (WebCore::parseLength):
79035         (WebCore::countCharacter):
79036         (WebCore::newCoordsArray):
79037         (WebCore::newLengthArray):
79038         * rendering/Length.h:
79039         (WebCore::LengthSize::LengthSize):
79040
79041 2008-10-12  Brad Garcia  <bgarcia@google.com>
79042
79043         Reviewed by Darin Adler.
79044
79045         Interpret fractional percentage values for %MultiLength values.
79046         Fix for https://bugs.webkit.org/show_bug.cgi?id=3591
79047         Test: fast/frames/frame-length-fractional-percentage.html
79048
79049         * platform/text/StringImpl.cpp:
79050         (WebCore::parseLength):
79051
79052 2008-10-12  Timothy Hatcher  <timothy@apple.com>
79053
79054         Remember the expanded state of the rules in the Styles pane. So
79055         collapsing a rule will persist across all the elements that have
79056         that same rule. The same applies to Computed Style, so the Computed
79057         Style rule is now collapsed by default. This should help lessen the
79058         confusion on why Computed Style can't be edited (a common confusion.)
79059
79060         https://bugs.webkit.org/show_bug.cgi?id=21553
79061
79062         Reviewed by Darin Adler.
79063
79064         * inspector/front-end/PropertiesSection.js:
79065         (WebInspector.PropertiesSection): Set the _expanded property directly,
79066         instead of using the setter. Expanded is the default, so no work is needed.
79067         This prevents calling StylesSidebarPane.collapse before object initialization
79068         is complete.
79069         * inspector/front-end/StylesSidebarPane.js:
79070         (WebInspector.StylesSidebarPane.prototype.update): Check the Preferences object
79071         for the expanded state of the StylePropertiesSection. Collapse computed style
79072         by default and expand everything else.
79073         (WebInspector.StylePropertiesSection): Make a semi unique identifier to be used
79074         when remembering expanded state.
79075         (WebInspector.StylePropertiesSection.prototype.expand): Set the expanded state
79076         to true for this identifier in Preferences.styleRulesExpandedState. Don't remember
79077         the state if the dontRememberState property is true.
79078         (WebInspector.StylePropertiesSection.prototype.collapse): Set the expanded state
79079         to false for this identifier in Preferences.styleRulesExpandedState.
79080         * inspector/front-end/inspector.js:
79081         (Preferences.styleRulesExpandedState): Initialize to an empty object.
79082
79083 2008-10-12  Jan Michael Alonzo  <jmalonzo@webkit.org>
79084
79085         Reviewed by Alp Toker.
79086
79087         [Gtk] Remove libWebCoreJS.la when doing make clean
79088         https://bugs.webkit.org/show_bug.cgi?id=21544
79089
79090         Remove libWebCoreJS.la when doing a clean target
79091
79092         * GNUmakefile.am: add libWebCoreJS.la to CLEANFILES
79093
79094 2008-10-11  Alp Toker  <alp@nuanti.com>
79095
79096         Reviewed by Darin Adler.
79097
79098         https://bugs.webkit.org/show_bug.cgi?id=20592
79099         The focus ring is not shown while navigating on some pages
79100
79101         Fix drawFocusRing() so it doesn't depend on the current graphics
79102         state, thus matching other platforms which already work this way.
79103
79104         This patch provides two code paths: one using straight Cairo and
79105         one specialised for the GTK+ port with a more conventional appearance.
79106
79107         Also change focusRingColor() to return a null color, allowing the
79108         focus ring to pick up the style's current color if it isn't overridden
79109         with CSS.
79110
79111         * platform/graphics/cairo/GraphicsContextCairo.cpp:
79112         (WebCore::GraphicsContext::drawFocusRing):
79113         * platform/gtk/TemporaryLinkStubs.cpp:
79114         (WebCore::focusRingColor):
79115
79116 2008-10-11  Dan Bernstein  <mitz@apple.com>
79117
79118         Rubber-stamped by Sam Weinig.
79119
79120         - change all internal callers to use Cache::evict() instead of remove()
79121
79122         * loader/Cache.cpp:
79123         (WebCore::Cache::revalidateResource):
79124         (WebCore::Cache::revalidationSucceeded):
79125         (WebCore::Cache::pruneDeadResources):
79126         (WebCore::Cache::setDisabled):
79127
79128 2008-10-11  David Hyatt  <hyatt@apple.com>
79129
79130         Make sure invalidatePart knows how to invalidate the track and scrollbar backgrounds.
79131
79132         Reviewed by Tim Hatcher
79133
79134         * platform/ScrollbarThemeComposite.cpp:
79135         (WebCore::ScrollbarThemeComposite::invalidatePart):
79136
79137 2008-10-11  David Hyatt  <hyatt@apple.com>
79138
79139         https://bugs.webkit.org/show_bug.cgi?id=21549 (regression in before/after track pieces).
79140
79141         Also fixed resizer positioning problems.
79142
79143         Reviewed by Tim Hatcher
79144
79145         * platform/ScrollbarThemeComposite.cpp:
79146         (WebCore::ScrollbarThemeComposite::splitTrack):
79147         (WebCore::ScrollbarThemeComposite::trackPosition):
79148         (WebCore::ScrollbarThemeComposite::trackLength):
79149         * platform/ScrollbarThemeComposite.h:
79150         (WebCore::ScrollbarThemeComposite::constrainTrackRectToTrackPieces):
79151         * rendering/RenderLayer.cpp:
79152         (WebCore::scrollCornerRect):
79153         (WebCore::RenderLayer::positionOverflowControls):
79154         (WebCore::RenderLayer::paintOverflowControls):
79155         (WebCore::RenderLayer::isPointInResizeControl):
79156         (WebCore::RenderLayer::hitTestOverflowControls):
79157         * rendering/RenderScrollbarTheme.cpp:
79158         (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces):
79159         * rendering/RenderScrollbarTheme.h:
79160
79161 2008-10-11  Alp Toker  <alp@nuanti.com>
79162
79163         Reviewed by David Hyatt.
79164
79165         Implement release/retain for Widget GTK+.
79166
79167         * platform/Widget.cpp:
79168         * platform/gtk/WidgetGtk.cpp:
79169         (WebCore::Widget::~Widget):
79170         (WebCore::Widget::releasePlatformWidget):
79171         (WebCore::Widget::retainPlatformWidget):
79172
79173 2008-10-11  Dan Bernstein  <mitz@apple.com>
79174
79175         Reviewed by Sam Weinig.
79176
79177         - rename WebCoreSetAlwaysUseATSU to WebCoreSetAlwaysUsesComplexTextCodePath
79178           and add a corresponding getter; add the same functions on Windows
79179
79180         * WebCore.base.exp:
79181         * platform/graphics/Font.cpp:
79182         (WebCore::Font::setCodePath):
79183         (WebCore::codePath):
79184         (WebCore::Font::canUseGlyphCache):
79185         * platform/graphics/Font.h:
79186         * platform/mac/WebCoreTextRenderer.h:
79187         * platform/mac/WebCoreTextRenderer.mm:
79188         (WebCoreSetAlwaysUsesComplexTextCodePath):
79189         (WebCoreAlwaysUsesComplexTextCodePath):
79190         * platform/win/WebCoreTextRenderer.cpp:
79191         (WebCore::WebCoreSetAlwaysUsesComplexTextCodePath):
79192         (WebCore::WebCoreAlwaysUsesComplexTextCodePath):
79193         * platform/win/WebCoreTextRenderer.h:
79194
79195 2008-10-11  Sam Weinig  <sam@webkit.org>
79196
79197         Reviewed by Cameron Zwarich.
79198
79199         Stop leaking the event parameter names.  The protected strings were showing up
79200         in the caches window after one use.  No measurable performance loss.
79201
79202         * bindings/js/JSEventListener.cpp:
79203         (WebCore::eventParameterName):
79204
79205 2008-10-11  Sam Weinig  <sam@webkit.org>
79206
79207         Reviewed by Cameron Zwarich.
79208
79209         Remove unused function getNodeEventListener.
79210
79211         * bindings/js/JSEventListener.cpp:
79212         * bindings/js/JSEventListener.h:
79213
79214 2008-10-11  David Hyatt  <hyatt@apple.com>
79215
79216         Add support for both positive and negative margins to tracks and track pieces.
79217
79218         Reviewed by Tim Hatcher
79219
79220         * platform/ScrollbarThemeComposite.cpp:
79221         (WebCore::ScrollbarThemeComposite::paint):
79222         (WebCore::ScrollbarThemeComposite::hitTest):
79223         (WebCore::ScrollbarThemeComposite::splitTrack):
79224         (WebCore::ScrollbarThemeComposite::trackPieceRects):
79225         (WebCore::ScrollbarThemeComposite::trackPosition):
79226         (WebCore::ScrollbarThemeComposite::trackLength):
79227         * platform/ScrollbarThemeComposite.h:
79228         (WebCore::ScrollbarThemeComposite::adjustTrackPieceRect):
79229         * rendering/RenderScrollbar.cpp:
79230         (WebCore::RenderScrollbar::trackRect):
79231         (WebCore::RenderScrollbar::trackPieceRectWithMargins):
79232         * rendering/RenderScrollbar.h:
79233         * rendering/RenderScrollbarPart.cpp:
79234         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
79235         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
79236         * rendering/RenderScrollbarTheme.cpp:
79237         (WebCore::RenderScrollbarTheme::adjustTrackPieceRect):
79238         * rendering/RenderScrollbarTheme.h:
79239
79240 2008-10-10  David Hyatt  <hyatt@apple.com>
79241
79242         Drop -webkit-scrollbar- from all the scrollbar pseudo-classes, since they are scoped to
79243         the scrollbar pseudo-elements anyway.
79244
79245         Reviewed by Tim Hatcher
79246
79247         * css/CSSSelector.cpp:
79248         (WebCore::CSSSelector::extractPseudoType):
79249         * css/CSSSelector.h:
79250         (WebCore::CSSSelector::):
79251         * css/CSSStyleSelector.cpp:
79252         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79253
79254 2008-10-10  Dan Bernstein  <mitz@apple.com>
79255
79256         Reviewed by Sam Weinig.
79257
79258         - separate Cache::remove() into a private method and a public interface,
79259           then make Cache::pruneDeadResources() use the private method.
79260
79261         * loader/Cache.cpp:
79262         (WebCore::Cache::pruneDeadResources):
79263         (WebCore::Cache::evict):
79264         * loader/Cache.h:
79265         (WebCore::Cache::remove):
79266
79267 2008-10-10  David Hyatt  <hyatt@apple.com>
79268
79269         Fix a math error when splitting a vertical track.  Clean up more of ScrollbarThemeComposite
79270         now that the track pieces meet under the thumb.
79271
79272         Reviewed by Tim Hatcher
79273
79274         * platform/ScrollbarThemeComposite.cpp:
79275         (WebCore::ScrollbarThemeComposite::paint):
79276         (WebCore::ScrollbarThemeComposite::splitTrack):
79277
79278 2008-10-10  David Hyatt  <hyatt@apple.com>
79279
79280         Make the track pieces of a scrollbar extend under the thumb (each gets half the thumb).
79281
79282         Reviewed by Tim Hatcher
79283
79284         * platform/ScrollbarThemeComposite.cpp:
79285         (WebCore::ScrollbarThemeComposite::hitTest):
79286         (WebCore::ScrollbarThemeComposite::splitTrack):
79287
79288 2008-10-10  David Hyatt  <hyatt@apple.com>
79289
79290         Make sure specialized ::scrollbar rules are still triggering custom scrollbar creation.
79291
79292         Reviewed by Tim Hatcher
79293
79294         * rendering/RenderLayer.cpp:
79295         (WebCore::RenderLayer::createScrollbar):
79296         * rendering/RenderScrollbar.cpp:
79297         (WebCore::RenderScrollbar::createCustomScrollbar):
79298         (WebCore::RenderScrollbar::RenderScrollbar):
79299         (WebCore::RenderScrollbar::setParent):
79300         (WebCore::RenderScrollbar::updateScrollbarParts):
79301         (WebCore::RenderScrollbar::updateScrollbarPart):
79302         * rendering/RenderScrollbar.h:
79303         * rendering/style/RenderStyle.h:
79304         (WebCore::RenderStyle::):
79305
79306 2008-10-10  David Hyatt  <hyatt@apple.com>
79307
79308         Make sure scrollbar background images cause proper part invalidation to occur.
79309
79310         Reviewed by Tim Hatcher
79311
79312         * rendering/RenderScrollbar.cpp:
79313         (WebCore::RenderScrollbar::setHoveredPart):
79314         (WebCore::RenderScrollbar::setPressedPart):
79315         * rendering/RenderScrollbarPart.cpp:
79316         (WebCore::RenderScrollbarPart::styleDidChange):
79317         (WebCore::RenderScrollbarPart::imageChanged):
79318         * rendering/RenderScrollbarPart.h:
79319
79320 2008-10-10  Simon Fraser  <simon.fraser@apple.com>
79321
79322         Reviewed by Darin Adler
79323
79324         https://bugs.webkit.org/show_bug.cgi?id=21538
79325
79326         The blendFunc() for TransformOperations should never mess with the
79327         operation lists by replacing some ops with identity, otherwise the lists
79328         no longer match and transitions break.
79329
79330         Test: transitions/matched-transform-functions.html
79331
79332         * page/animation/AnimationBase.cpp:
79333         (WebCore::blendFunc):
79334
79335 2008-10-10  Simon Fraser  <simon.fraser@apple.com>
79336
79337         Reviewed by Darin Adler
79338
79339         https://bugs.webkit.org/show_bug.cgi?id=21537
79340
79341         Fix re-targetting a running transition; if the target property
79342         changes, we do need to make a new ImplicitAnimation.
79343
79344         Test: transitions/retargetted-transition.html
79345
79346         * page/animation/CompositeAnimation.cpp:
79347         (WebCore::CompositeAnimationPrivate::updateTransitions):
79348
79349 2008-10-10  Oliver Hunt  <oliver@apple.com>
79350
79351         Reviewed by Cameron Zwarich.
79352
79353         Part of <rdar://problem/6278147> Cannot stop a slow script -- Fix assertion.
79354
79355         When JS is terminated by the user choosing to stop a slow script
79356         the exception toString method throws, yet the console logger does
79357         not perform exception checks after logging.  This leaves an
79358         exception on the Machine, which in turn results in an assertion
79359         failure next time we attempt to enter JS.  The solution is just to
79360         clear the exception state after attempting to record the exception.
79361
79362         * page/Console.cpp:
79363         (WebCore::Console::reportException):
79364
79365 2008-10-10  David Hyatt  <hyatt@apple.com>
79366
79367         Make textareas work with custom CSS scrollbars and resizers.  Need to access the correct renderer
79368         when looking for pseudo styles.
79369
79370         Reviewed by Tim Hatcher
79371
79372         * rendering/RenderLayer.cpp:
79373         (WebCore::RenderLayer::createScrollbar):
79374         (WebCore::RenderLayer::styleChanged):
79375
79376 2008-10-10  David Hyatt  <hyatt@apple.com>
79377
79378         Add the ability to style the scroll corner and the resizer from CSS.
79379
79380         Reviewed by Tim Hatcher
79381
79382         * css/CSSSelector.cpp:
79383         (WebCore::CSSSelector::extractPseudoType):
79384         * css/CSSSelector.h:
79385         (WebCore::CSSSelector::):
79386         * css/CSSStyleSelector.cpp:
79387         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
79388         * rendering/RenderLayer.cpp:
79389         (WebCore::RenderLayer::RenderLayer):
79390         (WebCore::RenderLayer::~RenderLayer):
79391         (WebCore::RenderLayer::paintOverflowControls):
79392         (WebCore::RenderLayer::paintScrollCorner):
79393         (WebCore::RenderLayer::paintResizer):
79394         (WebCore::RenderLayer::styleChanged):
79395         * rendering/RenderLayer.h:
79396         * rendering/RenderScrollbar.cpp:
79397         (WebCore::RenderScrollbar::updateScrollbarPart):
79398         (WebCore::RenderScrollbar::paintPart):
79399         * rendering/RenderScrollbarPart.cpp:
79400         (WebCore::RenderScrollbarPart::RenderScrollbarPart):
79401         (WebCore::RenderScrollbarPart::paintIntoRect):
79402         * rendering/RenderScrollbarPart.h:
79403         * rendering/style/RenderStyle.h:
79404         (WebCore::RenderStyle::):
79405
79406 2008-10-10  David Hyatt  <hyatt@apple.com>
79407
79408         Make CSS scrollbars respect the OS setting regarding where buttons should be placed.
79409
79410         Reviewed by Sam Weinig
79411
79412         No test case possible, since the OS setting can vary.
79413
79414         * css/CSSSelector.cpp:
79415         (WebCore::CSSSelector::extractPseudoType):
79416         * css/CSSSelector.h:
79417         (WebCore::CSSSelector::):
79418         * css/CSSStyleSelector.cpp:
79419         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79420         * platform/Scrollbar.h:
79421         (WebCore::Scrollbar::styleChanged):
79422         * platform/mac/ScrollbarThemeMac.mm:
79423         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
79424         (WebCore::ScrollbarThemeMac::preferencesChanged):
79425         * rendering/RenderLayer.cpp:
79426         (WebCore::RenderLayer::invalidateScrollbarRect):
79427         * rendering/RenderScrollbar.cpp:
79428         (WebCore::RenderScrollbar::styleChanged):
79429         (WebCore::RenderScrollbar::updateScrollbarPart):
79430         * rendering/RenderScrollbar.h:
79431         * rendering/RenderScrollbarTheme.h:
79432         (WebCore::RenderScrollbarTheme::buttonsPlacement):
79433
79434 2008-10-10  Timothy Hatcher  <timothy@apple.com>
79435
79436         Fixes a regression with input search fields, where the placeholder text
79437         would not be updated when the value of the placeholder attribute changed.
79438
79439         https://bugs.webkit.org/show_bug.cgi?id=21521
79440
79441         Reviewed by Adele Peterson.
79442
79443         Test: fast/forms/search-placeholder-value-changed.html
79444
79445         * html/HTMLInputElement.cpp:
79446         (WebCore::HTMLInputElement::parseMappedAttribute): Pass true for the
79447         placeholderValueChanged parameter of updatePlaceholderVisibility.
79448         (WebCore::HTMLInputElement::updatePlaceholderVisibility): Add parameter
79449         for placeholderValueChanged that informs the method that the value changed.
79450         * html/HTMLInputElement.h: Add the placeholderValueChanged to the
79451         updatePlaceholderVisibility method. Made it default to false.
79452
79453 2008-10-10  David Hyatt  <hyatt@apple.com>
79454
79455         Allow the track part to have negative margins so that it can slightly overlap buttons.  This
79456         is necessary to emulate the Aqua look in CSS.
79457
79458         Reviewed by Sam Weinig
79459
79460         * platform/ScrollbarThemeComposite.cpp:
79461         (WebCore::ScrollbarThemeComposite::paint):
79462         (WebCore::ScrollbarThemeComposite::hitTest):
79463         * rendering/RenderScrollbar.cpp:
79464         (WebCore::RenderScrollbar::setHoveredPart):
79465         (WebCore::RenderScrollbar::trackRect):
79466         * rendering/RenderScrollbar.h:
79467         * rendering/RenderScrollbarPart.cpp:
79468         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
79469         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
79470         * rendering/RenderScrollbarTheme.cpp:
79471         (WebCore::RenderScrollbarTheme::backButtonRect):
79472         (WebCore::RenderScrollbarTheme::forwardButtonRect):
79473         (WebCore::RenderScrollbarTheme::trackRect):
79474
79475 2008-10-10  David Hyatt  <hyatt@apple.com>
79476
79477         https://bugs.webkit.org/show_bug.cgi?id=21527
79478
79479         Make CSS scrollbars support :not, :hover and :active.
79480
79481         Reviewed by Adam Roben
79482
79483         Added WebCore/manual-tests/scrollbar-hover-active.html
79484
79485         * css/CSSStyleSelector.cpp:
79486         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
79487         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79488         * platform/Scrollbar.cpp:
79489         (WebCore::Scrollbar::autoscrollPressedPart):
79490         (WebCore::Scrollbar::startTimerIfNeeded):
79491         (WebCore::Scrollbar::setHoveredPart):
79492         (WebCore::Scrollbar::setPressedPart):
79493         (WebCore::Scrollbar::mouseMoved):
79494         (WebCore::Scrollbar::mouseExited):
79495         (WebCore::Scrollbar::mouseUp):
79496         (WebCore::Scrollbar::mouseDown):
79497         * platform/Scrollbar.h:
79498         * rendering/RenderScrollbar.cpp:
79499         (WebCore::RenderScrollbar::setHoveredPart):
79500         (WebCore::RenderScrollbar::setPressedPart):
79501         (WebCore::RenderScrollbar::updateScrollbarParts):
79502         (WebCore::pseudoForScrollbarPart):
79503         (WebCore::RenderScrollbar::updateScrollbarPart):
79504         * rendering/RenderScrollbar.h:
79505
79506 2008-10-10  Chris Marrin  <cmarrin@apple.com>
79507
79508         Reviewed by Dan Bernstein.
79509
79510         Fix for https://bugs.webkit.org/show_bug.cgi?id=21025
79511         CSS transition with duration=0 and delay=0 doesn't override ongoing transition
79512
79513         Test: transitions/interrupt-zero-duration.html
79514
79515         * page/animation/CompositeAnimation.cpp:
79516         (WebCore::CompositeAnimation::updateTransitions):
79517
79518 2008-10-10  Kevin Ollivier  <kevino@theolliviers.com>
79519
79520         wx build fix. Add new scrollbar-related sources.
79521
79522         * WebCoreSources.bkl:
79523
79524 2008-10-10  David Hyatt  <hyatt@apple.com>
79525
79526         https://bugs.webkit.org/show_bug.cgi?id=21522
79527
79528         Support increment/decrement/start/end on scrollbars.  Allows a fully functional scrollbar to be
79529         created.  (Just :hover/:active left to finish it up.)
79530
79531         Reviewed by Adam Roben
79532
79533         Added scrollbars/scrollbar-buttons.html
79534
79535         * css/CSSStyleSelector.cpp:
79536         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79537
79538 2008-10-10  David Hyatt  <hyatt@apple.com>
79539
79540         Rename some pseudoclasses.  Removing "-scrollbar-" from a bunch of the pseudoclasses.  Renaming
79541         back/forward to decrement/increment.  Adding start/end pseudoclasses.
79542
79543         Reviewed by Eric Seidel
79544
79545         * css/CSSSelector.cpp:
79546         (WebCore::CSSSelector::extractPseudoType):
79547         * css/CSSSelector.h:
79548         (WebCore::CSSSelector::):
79549         * css/CSSStyleSelector.cpp:
79550         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79551
79552 2008-10-10  David Hyatt  <hyatt@apple.com>
79553
79554         Switch window-active to window-inactive, since that will work better as far as degrading in other
79555         browsers.
79556
79557         Reviewed by Tim Hatcher
79558
79559         * css/CSSSelector.cpp:
79560         (WebCore::CSSSelector::extractPseudoType):
79561         * css/CSSSelector.h:
79562         (WebCore::CSSSelector::):
79563         * css/CSSStyleSelector.cpp:
79564         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79565
79566 2008-10-09  Chris Marrin  <cmarrin@apple.com>
79567
79568         Reviewed by Dan Bernstein.
79569
79570         https://bugs.webkit.org/show_bug.cgi?id=21310
79571
79572         Redesigned how animation events are sent in order to get rid of
79573         AnimationEventDispatcher. ImplicitAnimation and KeyframeAnimation
79574         are now ref counted. While calling the event handler, I keep a
79575         reference to this class to avoid it getting destroyed out from under me.
79576
79577         I also moved most of the functionality of CompositeAnimation to
79578         and internal class (CompositeAnimationPrivate) to reduce the exposure
79579         of the internals of the various animation classes.
79580
79581         We have several transition and animation LayoutTests which verify that
79582         this fix works as expected and continues to avoid crashes.
79583
79584         * page/animation/AnimationBase.cpp:
79585         (WebCore::AnimationBase::AnimationBase):
79586         * page/animation/AnimationBase.h:
79587         (WebCore::AnimationBase::cancelTimers):
79588         (WebCore::AnimationBase::waitingForStyleAvailable):
79589         * page/animation/CompositeAnimation.cpp:
79590         (WebCore::CompositeAnimationPrivate::CompositeAnimationPrivate):
79591         (WebCore::CompositeAnimationPrivate::suspended):
79592         (WebCore::CompositeAnimationPrivate::~CompositeAnimationPrivate):
79593         (WebCore::CompositeAnimationPrivate::updateTransitions):
79594         (WebCore::CompositeAnimationPrivate::updateKeyframeAnimations):
79595         (WebCore::CompositeAnimationPrivate::animate):
79596         (WebCore::CompositeAnimationPrivate::setAnimating):
79597         (WebCore::CompositeAnimationPrivate::animating):
79598         (WebCore::CompositeAnimationPrivate::getAnimationForProperty):
79599         (WebCore::CompositeAnimationPrivate::resetTransitions):
79600         (WebCore::CompositeAnimationPrivate::resetAnimations):
79601         (WebCore::CompositeAnimationPrivate::cleanupFinishedAnimations):
79602         (WebCore::CompositeAnimationPrivate::setAnimationStartTime):
79603         (WebCore::CompositeAnimationPrivate::setTransitionStartTime):
79604         (WebCore::CompositeAnimationPrivate::suspendAnimations):
79605         (WebCore::CompositeAnimationPrivate::resumeAnimations):
79606         (WebCore::CompositeAnimationPrivate::overrideImplicitAnimations):
79607         (WebCore::CompositeAnimationPrivate::resumeOverriddenImplicitAnimations):
79608         (WebCore::compareAnimationIndices):
79609         (WebCore::CompositeAnimationPrivate::styleAvailable):
79610         (WebCore::CompositeAnimationPrivate::isAnimatingProperty):
79611         (WebCore::CompositeAnimationPrivate::setWaitingForStyleAvailable):
79612         (WebCore::CompositeAnimation::CompositeAnimation):
79613         (WebCore::CompositeAnimation::~CompositeAnimation):
79614         (WebCore::CompositeAnimation::animate):
79615         (WebCore::CompositeAnimation::animating):
79616         (WebCore::CompositeAnimation::setWaitingForStyleAvailable):
79617         (WebCore::CompositeAnimation::resetTransitions):
79618         (WebCore::CompositeAnimation::suspendAnimations):
79619         (WebCore::CompositeAnimation::resumeAnimations):
79620         (WebCore::CompositeAnimation::suspended):
79621         (WebCore::CompositeAnimation::styleAvailable):
79622         (WebCore::CompositeAnimation::setAnimating):
79623         (WebCore::CompositeAnimation::isAnimatingProperty):
79624         (WebCore::CompositeAnimation::setAnimationStartTime):
79625         (WebCore::CompositeAnimation::setTransitionStartTime):
79626         (WebCore::CompositeAnimation::overrideImplicitAnimations):
79627         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
79628         * page/animation/CompositeAnimation.h:
79629         * page/animation/ImplicitAnimation.cpp:
79630         (WebCore::ImplicitAnimation::sendTransitionEvent):
79631         * page/animation/ImplicitAnimation.h:
79632         (WebCore::ImplicitAnimation::create):
79633         * page/animation/KeyframeAnimation.cpp:
79634         (WebCore::KeyframeAnimation::sendAnimationEvent):
79635         * page/animation/KeyframeAnimation.h:
79636         (WebCore::KeyframeAnimation::create):
79637
79638 2008-10-09  David Hyatt  <hyatt@apple.com>
79639
79640         Add support for scrollbar orientation as a pseudoclass.  Add support for whether or not the scrollbar
79641         is active as well.
79642
79643         Reviewed by Tim Hatcher
79644
79645         Added scrollbars/scrollbar-orientation.html
79646
79647         * css/CSSSelector.cpp:
79648         (WebCore::CSSSelector::extractPseudoType):
79649         * css/CSSSelector.h:
79650         (WebCore::CSSSelector::):
79651         * css/CSSStyleSelector.cpp:
79652         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79653         * platform/Scrollbar.cpp:
79654         (WebCore::Scrollbar::isWindowActive):
79655         * platform/Scrollbar.h:
79656         * rendering/RenderScrollbar.cpp:
79657         (WebCore::RenderScrollbar::paint):
79658         (WebCore::RenderScrollbar::partForStyleResolve):
79659         * rendering/RenderScrollbar.h:
79660
79661 2008-10-09  David Hyatt  <hyatt@apple.com>
79662
79663         Add support for pseudo classes on scrollbar pseudo elements.  As an initial proof of concept only
79664         :enabled/:disabled are supported.  More pseudo classes will follow quickly now that this works.
79665
79666         Reviewed by Tim Hatcher
79667
79668         Added scrollbars/disabled-scrollbar.html
79669
79670         * css/CSSStyleSelector.cpp:
79671         (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
79672         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
79673         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
79674         * css/CSSStyleSelector.h:
79675         * rendering/RenderObject.cpp:
79676         (WebCore::RenderObject::getPseudoStyle):
79677         * rendering/RenderObject.h:
79678         * rendering/RenderScrollbar.cpp:
79679         (WebCore::RenderScrollbar::setEnabled):
79680         (WebCore::RenderScrollbar::scrollbarForStyleResolve):
79681         (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
79682         (WebCore::RenderScrollbar::paintPart):
79683         * rendering/RenderScrollbar.h:
79684
79685 2008-10-09  Eric Carlson  <eric.carlson@apple.com>
79686
79687         Media controls should not show when element is not visible
79688
79689         https://bugs.webkit.org/show_bug.cgi?id=21155
79690
79691         Reviewed by Adele Peterson.
79692
79693         * html/HTMLMediaElement.cpp:
79694         (WebCore::HTMLMediaElement::recalcStyle): New, call renderer()->updateFromElement to stay
79695         in sync with visibility changes
79696         * html/HTMLMediaElement.h:
79697         * rendering/RenderMedia.cpp:
79698         (WebCore::RenderMedia::RenderMedia): initialize m_previousVisible
79699         (WebCore::RenderMedia::updateControlVisibility): consider style()->visibility() when determining
79700         if element is visible or not. Don't animate controller visibility when change triggered by
79701         showing or hiding media element.
79702         * rendering/RenderMedia.h: declare m_previousVisible
79703
79704 2008-10-09  Timothy Hatcher  <timothy@apple.com>
79705
79706         Annotate the Objective-C DOM APIs with the JavaScriptCore/WebKitAvailability.h
79707         availability macros and version macros.
79708
79709         https://bugs.webkit.org/show_bug.cgi?id=21496
79710         rdar://problem/6259225
79711
79712         Reviewed by Sam Weinig.
79713
79714         * bindings/objc/DOMCSS.h: Add a version #if around catgory interface.
79715         * bindings/objc/DOMEventException.h: Include JavaScriptCore/WebKitAvailability.h
79716         and add an #if around the enum.
79717         * bindings/objc/DOMException.h: Ditto. Give the enum a name and remove the
79718         comment to match the other headers.
79719         * bindings/objc/DOMExtensions.h: Annotate the methods with version 3.0 or later.
79720         * bindings/objc/DOMObject.h: Add a version #if around class interface.
79721         * bindings/objc/DOMRangeException.h: Include JavaScriptCore/WebKitAvailability.h
79722         and add a version #if around the enum.
79723         * bindings/objc/DOMSVGException.h: Ditto. Use the latest version since SVG is new.
79724         * bindings/objc/DOMXPathException.h: Ditto. Use the 3.0 version.
79725         * bindings/objc/PublicDOMInterfaces.h: Annotate classes and protocols for
79726         when they where added to WebKit. Also annotate individual methods that are
79727         deprecated or where added after the class was added to WebKit.
79728         * bindings/objc/WebScriptObject.h: Include JavaScriptCore/WebKitAvailability.h
79729         since this header is included by most DOM headers. Annotate the JSObject method.
79730
79731         * bindings/scripts/CodeGeneratorObjC.pm:
79732         (ReadPublicInterfaces): Parse out the availability macro for each function/property.
79733         And parse out the availability version for the class/protocol. Default to
79734         WEBKIT_VERSION_LATEST if the class is new.
79735         (GenerateHeader): Include JavaScriptCore/WebKitAvailability.h if needed. Add the
79736         interface availability version check if the class has a required version. Create
79737         a public interface key (used to lookup in $publicInterfaces) and make a declaration
79738         suffix that includes the availability macro (if needed). Use the "available in 1.3
79739         and later but deprecated in 3.0" macro instead of "deprecated in 10.5 and later" as
79740         the default availability macro for old style methods. Tweak line breaks in the generated
79741         headers to look good and not have too many extra lines.
79742
79743 2008-10-09  Simon Fraser  <simon.fraser@apple.com>
79744
79745         Reviewed by Dave Hyatt
79746
79747         https://bugs.webkit.org/show_bug.cgi?id=20947
79748
79749         Refactor setStyle() methods into styleWillChange()
79750         and styleDidChange(), so most of the setStyle() overrides can
79751         be removed.
79752
79753         * rendering/RenderBR.cpp:
79754         (WebCore::RenderBR::styleDidChange):
79755         * rendering/RenderBR.h:
79756         * rendering/RenderBlock.cpp:
79757         (WebCore::RenderBlock::styleWillChange):
79758         (WebCore::RenderBlock::styleDidChange):
79759         * rendering/RenderBlock.h:
79760         * rendering/RenderBox.cpp:
79761         (WebCore::RenderBox::~RenderBox):
79762         (WebCore::RenderBox::destroy):
79763         (WebCore::RenderBox::styleWillChange):
79764         (WebCore::RenderBox::styleDidChange):
79765         * rendering/RenderBox.h:
79766         * rendering/RenderButton.cpp:
79767         (WebCore::RenderButton::styleWillChange):
79768         (WebCore::RenderButton::styleDidChange):
79769         * rendering/RenderButton.h:
79770         * rendering/RenderFieldset.cpp:
79771         (WebCore::RenderFieldset::styleDidChange):
79772         * rendering/RenderFieldset.h:
79773         * rendering/RenderFileUploadControl.cpp:
79774         (WebCore::RenderFileUploadControl::styleDidChange):
79775         * rendering/RenderFileUploadControl.h:
79776         * rendering/RenderInline.cpp:
79777         (WebCore::RenderInline::styleDidChange):
79778         * rendering/RenderInline.h:
79779         * rendering/RenderLayer.cpp:
79780         (WebCore::RenderLayer::styleChanged):
79781         * rendering/RenderLayer.h:
79782         * rendering/RenderListBox.cpp:
79783         (WebCore::RenderListBox::styleDidChange):
79784         * rendering/RenderListBox.h:
79785         * rendering/RenderListItem.cpp:
79786         (WebCore::RenderListItem::styleDidChange):
79787         * rendering/RenderListItem.h:
79788         * rendering/RenderListMarker.cpp:
79789         (WebCore::RenderListMarker::styleWillChange):
79790         (WebCore::RenderListMarker::styleDidChange):
79791         * rendering/RenderListMarker.h:
79792         * rendering/RenderMenuList.cpp:
79793         (WebCore::RenderMenuList::styleDidChange):
79794         * rendering/RenderMenuList.h:
79795         * rendering/RenderObject.cpp:
79796         (WebCore::RenderObject::setStyle):
79797         (WebCore::RenderObject::setStyleInternal):
79798         (WebCore::RenderObject::styleWillChange):
79799         (WebCore::RenderObject::styleDidChange):
79800         * rendering/RenderObject.h:
79801         * rendering/RenderReplaced.cpp:
79802         (WebCore::RenderReplaced::styleDidChange):
79803         * rendering/RenderReplaced.h:
79804         * rendering/RenderSVGGradientStop.cpp:
79805         (WebCore::RenderSVGGradientStop::styleDidChange):
79806         * rendering/RenderSVGGradientStop.h:
79807         * rendering/RenderScrollbarPart.cpp:
79808         (WebCore::RenderScrollbarPart::styleDidChange):
79809         * rendering/RenderScrollbarPart.h:
79810         * rendering/RenderSlider.cpp:
79811         (WebCore::RenderSlider::styleDidChange):
79812         * rendering/RenderSlider.h:
79813         * rendering/RenderTable.cpp:
79814         (WebCore::RenderTable::styleDidChange):
79815         * rendering/RenderTable.h:
79816         * rendering/RenderTableCell.cpp:
79817         (WebCore::RenderTableCell::styleWillChange):
79818         (WebCore::RenderTableCell::styleDidChange):
79819         * rendering/RenderTableCell.h:
79820         * rendering/RenderTableRow.cpp:
79821         (WebCore::RenderTableRow::styleWillChange):
79822         * rendering/RenderTableRow.h:
79823         * rendering/RenderText.cpp:
79824         (WebCore::RenderText::styleDidChange):
79825         * rendering/RenderText.h:
79826         * rendering/RenderTextControl.cpp:
79827         (WebCore::RenderTextControl::styleDidChange):
79828         * rendering/RenderTextControl.h:
79829         * rendering/RenderWidget.cpp:
79830         (WebCore::RenderWidget::styleDidChange):
79831         * rendering/RenderWidget.h:
79832
79833 2008-10-09  David Hyatt  <hyatt@apple.com>
79834
79835         Make sure to destroy a custom scrollbar's RenderObjects before the arena goes away.  When our widget
79836         parent is nulled out is a good time.
79837
79838         Reviewed by Oliver Hunt
79839
79840         * rendering/RenderScrollbar.cpp:
79841         (WebCore::RenderScrollbar::~RenderScrollbar):
79842         (WebCore::RenderScrollbar::setParent):
79843         (WebCore::RenderScrollbar::updateScrollbarPart):
79844         * rendering/RenderScrollbar.h:
79845
79846 2008-10-09  David Hyatt  <hyatt@apple.com>
79847
79848         https://bugs.webkit.org/show_bug.cgi?id=21446
79849
79850         This patch gets CSS scrollbars up and limping.  There's no way to distinguish between states or between
79851         orientation and back vs. forward on the buttons, but it's a start.
79852
79853         Reviewed by Oliver Hunt
79854
79855         Added scrollbars/basic-scrollbar.html
79856
79857         * WebCore.xcodeproj/project.pbxproj:
79858         * css/CSSSelector.cpp:
79859         (WebCore::CSSSelector::extractPseudoType):
79860         * css/CSSSelector.h:
79861         (WebCore::CSSSelector::):
79862         * css/CSSStyleSelector.cpp:
79863         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
79864         * platform/ScrollTypes.h:
79865         (WebCore::):
79866         * platform/Scrollbar.h:
79867         (WebCore::Scrollbar::styleChanged):
79868         * platform/ScrollbarThemeComposite.cpp:
79869         (WebCore::ScrollbarThemeComposite::paint):
79870         (WebCore::ScrollbarThemeComposite::splitTrack):
79871         * platform/ScrollbarThemeComposite.h:
79872         (WebCore::ScrollbarThemeComposite::paintScrollbarBackground):
79873         (WebCore::ScrollbarThemeComposite::paintTrackBackground):
79874         (WebCore::ScrollbarThemeComposite::paintTrackPiece):
79875         * platform/win/ScrollbarThemeSafari.cpp:
79876         (WebCore::ScrollbarThemeSafari::paintTrackBackground):
79877         * platform/win/ScrollbarThemeSafari.h:
79878         * platform/win/ScrollbarThemeWin.cpp:
79879         (WebCore::ScrollbarThemeWin::paintTrack):
79880         * platform/win/ScrollbarThemeWin.h:
79881         * rendering/RenderLayer.cpp:
79882         (WebCore::RenderLayer::createScrollbar):
79883         (WebCore::RenderLayer::styleChanged):
79884         * rendering/RenderScrollbar.cpp: Added.
79885         (WebCore::RenderScrollbar::createCustomScrollbar):
79886         (WebCore::RenderScrollbar::RenderScrollbar):
79887         (WebCore::RenderScrollbar::~RenderScrollbar):
79888         (WebCore::RenderScrollbar::getScrollbarPseudoStyle):
79889         (WebCore::RenderScrollbar::updateScrollbarParts):
79890         (WebCore::RenderScrollbar::updateScrollbarPart):
79891         (WebCore::RenderScrollbar::paintPart):
79892         (WebCore::RenderScrollbar::buttonRect):
79893         (WebCore::RenderScrollbar::minimumThumbLength):
79894         * rendering/RenderScrollbar.h: Added.
79895         (WebCore::RenderScrollbar::styleChanged):
79896         (WebCore::RenderScrollbar::owningRenderer):
79897         * rendering/RenderScrollbarPart.cpp: Added.
79898         (WebCore::RenderScrollbarPart::RenderScrollbarPart):
79899         (WebCore::RenderScrollbarPart::~RenderScrollbarPart):
79900         (WebCore::RenderScrollbarPart::layout):
79901         (WebCore::RenderScrollbarPart::layoutHorizontalPart):
79902         (WebCore::RenderScrollbarPart::layoutVerticalPart):
79903         (WebCore::calcScrollbarThicknessUsing):
79904         (WebCore::RenderScrollbarPart::computeScrollbarWidth):
79905         (WebCore::RenderScrollbarPart::computeScrollbarHeight):
79906         (WebCore::RenderScrollbarPart::calcPrefWidths):
79907         (WebCore::RenderScrollbarPart::setStyle):
79908         * rendering/RenderScrollbarPart.h: Added.
79909         (WebCore::RenderScrollbarPart::renderName):
79910         (WebCore::RenderScrollbarPart::requiresLayer):
79911         * rendering/RenderScrollbarTheme.cpp: Added.
79912         (WebCore::RenderScrollbarTheme::renderScrollbarTheme):
79913         (WebCore::RenderScrollbarTheme::buttonSizesAlongTrackAxis):
79914         (WebCore::RenderScrollbarTheme::hasButtons):
79915         (WebCore::RenderScrollbarTheme::hasThumb):
79916         (WebCore::RenderScrollbarTheme::minimumThumbLength):
79917         (WebCore::RenderScrollbarTheme::backButtonRect):
79918         (WebCore::RenderScrollbarTheme::forwardButtonRect):
79919         (WebCore::RenderScrollbarTheme::trackRect):
79920         (WebCore::RenderScrollbarTheme::paintScrollCorner):
79921         (WebCore::RenderScrollbarTheme::paintScrollbarBackground):
79922         (WebCore::RenderScrollbarTheme::paintTrackBackground):
79923         (WebCore::RenderScrollbarTheme::paintTrackPiece):
79924         (WebCore::RenderScrollbarTheme::paintButton):
79925         (WebCore::RenderScrollbarTheme::paintThumb):
79926         * rendering/RenderScrollbarTheme.h: Added.
79927         (WebCore::RenderScrollbarTheme::~RenderScrollbarTheme):
79928         (WebCore::RenderScrollbarTheme::scrollbarThickness):
79929         (WebCore::RenderScrollbarTheme::buttonsPlacement):
79930         (WebCore::RenderScrollbarTheme::supportsControlTints):
79931         (WebCore::RenderScrollbarTheme::shouldCenterOnThumb):
79932         (WebCore::RenderScrollbarTheme::initialAutoscrollTimerDelay):
79933         (WebCore::RenderScrollbarTheme::autoscrollTimerDelay):
79934         (WebCore::RenderScrollbarTheme::registerScrollbar):
79935         (WebCore::RenderScrollbarTheme::unregisterScrollbar):
79936         * rendering/style/RenderStyle.h:
79937         (WebCore::RenderStyle::):
79938
79939 2008-10-09  Eric Seidel  <eric@webkit.org>
79940
79941         Reviewed by Oliver Hunt.
79942
79943         Fix Canvex DOOM Game
79944         Gradient clips were not getting cleared after filling the
79945         gradient, this was causing nothing to draw in Canvex
79946         https://bugs.webkit.org/show_bug.cgi?id=21498
79947
79948         Tests forthcoming.
79949
79950         * WebCore.xcodeproj/project.pbxproj:
79951         * platform/graphics/cg/GraphicsContextCG.cpp:
79952         (WebCore::GraphicsContext::fillPath):
79953         (WebCore::GraphicsContext::strokePath):
79954         (WebCore::GraphicsContext::fillRect):
79955
79956 2008-10-09  Eric Seidel  <eric@webkit.org>
79957
79958         Reviewed by Oliver Hunt.
79959
79960         Fix transformed patterns
79961         https://bugs.webkit.org/show_bug.cgi?id=21498
79962
79963         Test: fast/canvas/patternfill-repeat.html
79964
79965         * WebCore.xcodeproj/project.pbxproj:
79966         * platform/graphics/GraphicsContext.cpp:
79967         (WebCore::GraphicsContext::setStrokePattern):
79968         (WebCore::GraphicsContext::setFillPattern):
79969         (WebCore::GraphicsContext::setStrokeGradient):
79970         (WebCore::GraphicsContext::setFillGradient):
79971         * platform/graphics/GraphicsContext.h:
79972         * platform/graphics/cairo/GraphicsContextCairo.cpp:
79973         * platform/graphics/cg/GraphicsContextCG.cpp:
79974         (WebCore::applyStrokePattern):
79975         (WebCore::applyFillPattern):
79976         (WebCore::GraphicsContext::drawPath):
79977         (WebCore::GraphicsContext::fillPath):
79978         (WebCore::GraphicsContext::strokePath):
79979         (WebCore::GraphicsContext::fillRect):
79980         * platform/graphics/qt/GraphicsContextQt.cpp:
79981         * platform/graphics/wx/GraphicsContextWx.cpp:
79982
79983 2008-10-09  Kevin Ollivier  <kevino@theolliviers.com>
79984
79985         wx build fixes.
79986
79987         * platform/wx/WidgetWx.cpp:
79988         * plugins/wx/PluginViewWx.cpp:
79989         (WebCore::PluginView::invalidateRect):
79990         * webcore-base.bkl:
79991
79992 2008-10-09  Chris Marrin  <cmarrin@apple.com>
79993
79994         Reviewed by Darin Adler.
79995
79996         Fix for https://bugs.webkit.org/show_bug.cgi?id=21217
79997         Animations assert when navigating from page
79998
79999         Changed assertions to test the right flag for the paused state
80000
80001         * page/animation/AnimationBase.cpp:
80002         (WebCore::AnimationBase::updateStateMachine):
80003
80004 2008-10-09  Chris Marrin  <cmarrin@apple.com>
80005
80006         Reviewed by Dan Bernstein.
80007
80008         Fixed > 180 degree rotation bug
80009         Ensure that validateTransformFunctionList() is called after updating keyframe styles
80010
80011         https://bugs.webkit.org/show_bug.cgi?id=21420
80012
80013         Test: animations/big-rotation.html
80014
80015         * page/animation/KeyframeAnimation.cpp:
80016         (WebCore::KeyframeAnimation::KeyframeAnimation):
80017
80018 2008-10-09  Brady Eidson  <beidson@apple.com>
80019
80020         Reviewed by Anders
80021
80022         <rdar://problem/6250856> - Calling [WebView close] from within a redirection callback can cause bad things
80023
80024         The API usage to reveal this crash was so particular that a layout test is not possible with our current infrastructure.
80025
80026         * loader/FrameLoader.cpp:
80027         (WebCore::FrameLoader::changeLocation): Protect the Frame from deletion
80028         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): stopAllLoaders() might clear the Frame's page,
80029           so perform a second null check on the page.  Bail if it has been cleared.
80030
80031 2008-10-09  Alp Toker  <alp@nuanti.com>
80032
80033         Build fix for recent DOM generation Makefile changes when custom
80034         CFLAGS/CXXFLAGS are passed in.
80035
80036         * GNUmakefile.am:
80037
80038 2008-10-09  Jan Michael Alonzo  <jmalonzo@webkit.org>
80039
80040         Reviewed by Alp Toker.
80041
80042         https://bugs.webkit.org/show_bug.cgi?id=21390
80043         [Gtk] Linux/Gtk: GtkLauncher crashes on Acid3 (but after test 80 this time)
80044
80045         * platform/gtk/ScrollViewGtk.cpp:
80046         (WebCore::ScrollView::platformRemoveChild):
80047
80048 2008-10-09  Darin Adler  <darin@apple.com>
80049
80050        - try to fix Qt build
80051
80052         * bridge/qt/qt_runtime.cpp:
80053         (JSC::Bindings::convertQVariantToValue): Pass JSGlobalData instead of ExecState to RegExp constructor.
80054
80055 2008-10-08  Nikolas Zimmermann  <zimmermann@kde.org>
80056
80057         Reviewed by Oliver Hunt & Sam Weinig.
80058
80059         Fixes: https://bugs.webkit.org/show_bug.cgi?id=15413 (SVGElementInstance does not implement EventTarget)
80060         Fixes: https://bugs.webkit.org/show_bug.cgi?id=15430 (SVGElementInstances should rebuild themselves lazily)
80061         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20550 (SVGUseElement.setAttribute crashes Safari)
80062
80063         Rebuild SVG use element shadow tree lazily. Mark SVGElementInstance with the "needsUpdate" flag.
80064         Next time SVGUseElement::recalcStyle is invoked (ie. via Document::updateDocumentsRendering()) the
80065         use tree is rebuild.
80066
80067         Make SVGElementInstance a real EventTarget, as the SVG specification demands.
80068         When dispatching events to a shadow tree element of a use element, the associated SVGElementInstance
80069         is used as event target. The SVGElementInstance, the shadow tree element and the corresponding element
80070         share an event listener list. Every event listener change on the SVGElementInstance object is forwared
80071         to the corresponding element. Each change marks the SVGElementInstance tree dirty, and causes a reclone.
80072         Each event listener defined via attributes (onclick/onkeydown/...) is copied from the correspondingElement
80073         to the shadow tree element - through the cloneNode calls - if the use element's shadow tree gets rebuild.
80074         Each listener, dynamically created using addEventListener, gets copied to the corersponding element as well.
80075
80076         Now that the target/currentTarget properties of the Events are correct, event bubbling works as expected,
80077         see resources/use-instanceRoot-event-bubbling.js for details.
80078
80079         Tests: svg/custom/use-elementInstance-event-target.svg (reenabled)
80080                svg/custom/use-elementInstance-methods.svg (reenabled)
80081                svg/custom/use-setAttribute-crash.svg (covers bug 20550)
80082                svg/custom/use-instanceRoot-as-event-target.xhtml (covers bug 15413)
80083                svg/custom/use-instanceRoot-event-bubbling.xhtml (covers bug 15413)
80084                svg/custom/use-instanceRoot-event-listeners.xhtml (covers bug 15413 & 15430)
80085
80086         * DerivedSources.make:
80087         * GNUmakefile.am:
80088         * WebCore.pro:
80089         * WebCore.vcproj/WebCore.vcproj:
80090         * WebCore.xcodeproj/project.pbxproj:
80091         * bindings/js/JSEventListener.h:
80092         (WebCore::JSLazyEventListener::wasCreatedFromMarkup):
80093         * bindings/js/JSEventTarget.cpp:
80094         * bindings/js/JSEventTargetSVGElementInstance.cpp: Removed.
80095         * bindings/js/JSEventTargetSVGElementInstance.h: Removed.
80096         * bindings/js/JSSVGElementInstanceCustom.cpp:
80097         (WebCore::JSSVGElementInstance::addEventListener):
80098         (WebCore::JSSVGElementInstance::removeEventListener):
80099         (WebCore::JSSVGElementInstance::pushEventHandlerScope):
80100         * bindings/scripts/CodeGeneratorJS.pm:
80101         * bindings/scripts/CodeGeneratorObjC.pm:
80102         * dom/EventListener.h:
80103         (WebCore::EventListener::wasCreatedFromMarkup):
80104         * dom/EventTargetNode.cpp:
80105         (WebCore::updateSVGElementInstancesAfterEventListenerChange):
80106         (WebCore::EventTargetNode::addEventListener):
80107         (WebCore::EventTargetNode::removeEventListener):
80108         (WebCore::eventTargetAsSVGElementInstance):
80109         (WebCore::eventTargetRespectingSVGTargetRules):
80110         (WebCore::EventTargetNode::dispatchEvent):
80111         (WebCore::EventTargetNode::dispatchGenericEvent):
80112         (WebCore::EventTargetNode::removeEventListenerForType):
80113         * page/EventHandler.cpp:
80114         (WebCore::EventHandler::clear):
80115         (WebCore::instanceAssociatedWithShadowTreeElement):
80116         (WebCore::EventHandler::updateMouseEventTargetNode):
80117         * page/EventHandler.h:
80118         * svg/EventTargetSVGElementInstance.cpp: Removed.
80119         * svg/EventTargetSVGElementInstance.h: Removed.
80120         * svg/SVGElementInstance.cpp:
80121         (WebCore::SVGElementInstance::SVGElementInstance):
80122         (WebCore::SVGElementInstance::~SVGElementInstance):
80123         (WebCore::SVGElementInstance::childNodes):
80124         (WebCore::SVGElementInstance::setShadowTreeElement):
80125         (WebCore::SVGElementInstance::forgetWrapper):
80126         (WebCore::SVGElementInstance::appendChild):
80127         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
80128         (WebCore::SVGElementInstance::setNeedsUpdate):
80129         (WebCore::SVGElementInstance::associatedFrame):
80130         (WebCore::SVGElementInstance::addEventListener):
80131         (WebCore::SVGElementInstance::removeEventListener):
80132         (WebCore::SVGElementInstance::dispatchEvent):
80133         (WebCore::SVGElementInstance::onabort):
80134         (WebCore::SVGElementInstance::setOnabort):
80135         (WebCore::SVGElementInstance::onblur):
80136         (WebCore::SVGElementInstance::setOnblur):
80137         (WebCore::SVGElementInstance::onchange):
80138         (WebCore::SVGElementInstance::setOnchange):
80139         (WebCore::SVGElementInstance::onclick):
80140         (WebCore::SVGElementInstance::setOnclick):
80141         (WebCore::SVGElementInstance::oncontextmenu):
80142         (WebCore::SVGElementInstance::setOncontextmenu):
80143         (WebCore::SVGElementInstance::ondblclick):
80144         (WebCore::SVGElementInstance::setOndblclick):
80145         (WebCore::SVGElementInstance::onerror):
80146         (WebCore::SVGElementInstance::setOnerror):
80147         (WebCore::SVGElementInstance::onfocus):
80148         (WebCore::SVGElementInstance::setOnfocus):
80149         (WebCore::SVGElementInstance::oninput):
80150         (WebCore::SVGElementInstance::setOninput):
80151         (WebCore::SVGElementInstance::onkeydown):
80152         (WebCore::SVGElementInstance::setOnkeydown):
80153         (WebCore::SVGElementInstance::onkeypress):
80154         (WebCore::SVGElementInstance::setOnkeypress):
80155         (WebCore::SVGElementInstance::onkeyup):
80156         (WebCore::SVGElementInstance::setOnkeyup):
80157         (WebCore::SVGElementInstance::onload):
80158         (WebCore::SVGElementInstance::setOnload):
80159         (WebCore::SVGElementInstance::onmousedown):
80160         (WebCore::SVGElementInstance::setOnmousedown):
80161         (WebCore::SVGElementInstance::onmousemove):
80162         (WebCore::SVGElementInstance::setOnmousemove):
80163         (WebCore::SVGElementInstance::onmouseout):
80164         (WebCore::SVGElementInstance::setOnmouseout):
80165         (WebCore::SVGElementInstance::onmouseover):
80166         (WebCore::SVGElementInstance::setOnmouseover):
80167         (WebCore::SVGElementInstance::onmouseup):
80168         (WebCore::SVGElementInstance::setOnmouseup):
80169         (WebCore::SVGElementInstance::onmousewheel):
80170         (WebCore::SVGElementInstance::setOnmousewheel):
80171         (WebCore::SVGElementInstance::onbeforecut):
80172         (WebCore::SVGElementInstance::setOnbeforecut):
80173         (WebCore::SVGElementInstance::oncut):
80174         (WebCore::SVGElementInstance::setOncut):
80175         (WebCore::SVGElementInstance::onbeforecopy):
80176         (WebCore::SVGElementInstance::setOnbeforecopy):
80177         (WebCore::SVGElementInstance::oncopy):
80178         (WebCore::SVGElementInstance::setOncopy):
80179         (WebCore::SVGElementInstance::onbeforepaste):
80180         (WebCore::SVGElementInstance::setOnbeforepaste):
80181         (WebCore::SVGElementInstance::onpaste):
80182         (WebCore::SVGElementInstance::setOnpaste):
80183         (WebCore::SVGElementInstance::ondragenter):
80184         (WebCore::SVGElementInstance::setOndragenter):
80185         (WebCore::SVGElementInstance::ondragover):
80186         (WebCore::SVGElementInstance::setOndragover):
80187         (WebCore::SVGElementInstance::ondragleave):
80188         (WebCore::SVGElementInstance::setOndragleave):
80189         (WebCore::SVGElementInstance::ondrop):
80190         (WebCore::SVGElementInstance::setOndrop):
80191         (WebCore::SVGElementInstance::ondragstart):
80192         (WebCore::SVGElementInstance::setOndragstart):
80193         (WebCore::SVGElementInstance::ondrag):
80194         (WebCore::SVGElementInstance::setOndrag):
80195         (WebCore::SVGElementInstance::ondragend):
80196         (WebCore::SVGElementInstance::setOndragend):
80197         (WebCore::SVGElementInstance::onreset):
80198         (WebCore::SVGElementInstance::setOnreset):
80199         (WebCore::SVGElementInstance::onresize):
80200         (WebCore::SVGElementInstance::setOnresize):
80201         (WebCore::SVGElementInstance::onscroll):
80202         (WebCore::SVGElementInstance::setOnscroll):
80203         (WebCore::SVGElementInstance::onsearch):
80204         (WebCore::SVGElementInstance::setOnsearch):
80205         (WebCore::SVGElementInstance::onselect):
80206         (WebCore::SVGElementInstance::setOnselect):
80207         (WebCore::SVGElementInstance::onselectstart):
80208         (WebCore::SVGElementInstance::setOnselectstart):
80209         (WebCore::SVGElementInstance::onsubmit):
80210         (WebCore::SVGElementInstance::setOnsubmit):
80211         (WebCore::SVGElementInstance::onunload):
80212         (WebCore::SVGElementInstance::setOnunload):
80213         * svg/SVGElementInstance.h:
80214         (WebCore::SVGElementInstance::needsUpdate):
80215         (WebCore::SVGElementInstance::toNode):
80216         (WebCore::SVGElementInstance::toSVGElementInstance):
80217         (WebCore::SVGElementInstance::correspondingElement):
80218         (WebCore::SVGElementInstance::correspondingUseElement):
80219         (WebCore::SVGElementInstance::shadowTreeElement):
80220         (WebCore::SVGElementInstance::parentNode):
80221         (WebCore::SVGElementInstance::previousSibling):
80222         (WebCore::SVGElementInstance::nextSibling):
80223         (WebCore::SVGElementInstance::firstChild):
80224         (WebCore::SVGElementInstance::lastChild):
80225         (WebCore::SVGElementInstance::ownerDocument):
80226         (WebCore::SVGElementInstance::hasChildNodes):
80227         (WebCore::SVGElementInstance::setFirstChild):
80228         (WebCore::SVGElementInstance::setLastChild):
80229         (WebCore::SVGElementInstance::setNextSibling):
80230         (WebCore::SVGElementInstance::setPreviousSibling):
80231         (WebCore::SVGElementInstance::refEventTarget):
80232         (WebCore::SVGElementInstance::derefEventTarget):
80233         * svg/SVGElementInstance.idl:
80234         * svg/SVGStyledElement.cpp:
80235         (WebCore::SVGStyledElement::svgAttributeChanged):
80236         (WebCore::SVGStyledElement::childrenChanged):
80237         * svg/SVGUseElement.cpp:
80238         (WebCore::SVGUseElement::svgAttributeChanged):
80239         (WebCore::shadowTreeContainsChangedNodes):
80240         (WebCore::SVGUseElement::recalcStyle):
80241         (WebCore::dumpInstanceTree):
80242         (WebCore::SVGUseElement::buildPendingResource):
80243         (WebCore::SVGUseElement::buildInstanceTree):
80244         (WebCore::SVGUseElement::transferEventListenersToShadowTree):
80245         * svg/SVGUseElement.h:
80246
80247 2008-10-08  Sam Weinig  <sam@webkit.org>
80248
80249         Reviewed by Cameron Zwarich.
80250
80251         Fix for https://bugs.webkit.org/show_bug.cgi?id=21241
80252         REGRESSION (r36977): getRGBColorValue().red returning incorrect value
80253
80254         Update JSRGBColor to use the new static function per getter approach.
80255
80256         Test: fast/dom/css-RGBValue.html
80257
80258         * bindings/js/JSRGBColor.cpp:
80259         (WebCore::):
80260         (jsRGBColorRed):
80261         (jsRGBColorGreen):
80262         (jsRGBColorBlue):
80263         * bindings/js/JSRGBColor.h:
80264
80265 2008-10-08  Eric Seidel  <eric@webkit.org>
80266
80267         Reviewed by Darin Adler, Nikolas Zimmermann and Dave Hyatt.
80268
80269         svgElement.className.baseValue = "foo" does not work
80270         https://bugs.webkit.org/show_bug.cgi?id=20651
80271
80272         * dom/StyledElement.cpp:
80273         (WebCore::StyledElement::classAttributeChanged):
80274         (WebCore::StyledElement::parseMappedAttribute):
80275         * dom/StyledElement.h:
80276         * svg/SVGStyledElement.cpp:
80277         (WebCore::SVGStyledElement::svgAttributeChanged):
80278
80279 2008-10-08  Anthony Ricaud  <rik24d@gmail.com>
80280
80281         Make the toolbar label text-shadow not disappear when clicking on the
80282         search result count or around the search field.
80283
80284         Reviewed by Timothy Hatcher.
80285
80286         * inspector/front-end/inspector.css:
80287         (.toolbar-item:active .toolbar-label): Make this rule also require the
80288         toggleable class with the toolbar-item class.
80289
80290 2008-10-08  Tor Arne Vestbø  <tavestbo@trolltech.com>
80291
80292         Reviewed by Simon.
80293
80294         Updated the qrc file for the Web Inspector to contain the current set
80295         of images.
80296
80297         * inspector/front-end/WebKit.qrc:
80298
80299 2008-10-08  Prasanth Ullattil  <pullatti@trolltech.com>
80300
80301         Reviewed by Simon.
80302
80303         Fix the linking of applications against WebKit on Qt/Windows.
80304
80305         The prl files that qmake creates are buggy on Unix, but we they're
80306         fine on Windows and we have to have them there in order to get the
80307         dependencies correct.
80308
80309         * WebCore.pro:
80310
80311 2008-10-08  Ariya Hidayat  <ariya.hidayat@trolltech.com>
80312
80313         Reviewed by Simon.
80314
80315         Speed up rectangle filling by not re-creating a QBrush all the time.
80316
80317         This triggers faster path in QPainter where the brush is reused.
80318
80319         * platform/graphics/qt/GraphicsContextQt.cpp:
80320         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
80321         (WebCore::GraphicsContext::fillRect):
80322
80323 2008-10-08  Thiago Macieira  <thiago.macieira@nokia.com>
80324
80325         Reviewed by Simon.
80326
80327         Fixes: Encoding of Qt URLs
80328
80329         This encoding was added by Simon and I because QUrl's
80330         tolerant parser wasn't tolerant enough. Now it is, so we don't need
80331         this anymore.
80332
80333         * platform/qt/KURLQt.cpp:
80334         (WebCore::KURL::operator QUrl):
80335
80336 2008-10-08  Marius Storm-Olsen  <marius@trolltech.com>
80337
80338         Reviewed by Simon.
80339
80340         Fixes dependencies in qmake generated visual studio projects.
80341
80342         Only add debug lib name if we're in the debug build_pass, else the release version.
80343         The MSVC solution generator would pick up the debug javascriptcore lib as a dependency.
80344
80345         * WebCore.pro:
80346
80347 2008-10-08  Prasanth Ullattil  <pullatti@trolltech.com>
80348
80349         Reviewed by Simon.
80350
80351         Fix compilation errors on VS2008 64Bit
80352
80353         * platform/text/TextStream.cpp:
80354         (WebCore::TextStream::operator<<):
80355         * platform/text/TextStream.h:
80356         * plugins/win/PluginViewWin.cpp:
80357         (WebCore::PluginView::init):
80358
80359 2008-10-07  Alp Toker  <alp@nuanti.com>
80360
80361         GTK+ build fix for older automake versions (1.7). Discussed in bug
80362         #21392.
80363
80364         * GNUmakefile.am:
80365
80366 2008-10-07  Anders Carlsson  <andersca@apple.com>
80367
80368         Reviewed by Antti Koivisto.
80369
80370         <rdar://problem/6273887> Crash in ApplicationCacheGroup
80371
80372         Make sure to stop loading even before a cache update is in progress so that the
80373         manifest load will be stopped.
80374
80375         * loader/appcache/ApplicationCacheGroup.cpp:
80376         (WebCore::ApplicationCacheGroup::~ApplicationCacheGroup):
80377         (WebCore::ApplicationCacheGroup::stopLoading):
80378         (WebCore::ApplicationCacheGroup::cacheUpdateFailed):
80379
80380 2008-10-07  Timothy Hatcher  <timothy@apple.com>
80381
80382         Auto-generate DOMDocument's createNodeIterator: and createTreeWalker: methods.
80383
80384         https://bugs.webkit.org/show_bug.cgi?id=21433
80385
80386         Reviewed by Sam Weinig.
80387
80388         * WebCore.xcodeproj/project.pbxproj: Add ObjCNodeFilterCondition.{mm,h}.
80389         * bindings/objc/DOM.mm: Remove previous category implementations
80390         on DOMDocument for createNodeIterator: and createTreeWalker:. Also
80391         moves ObjCNodeFilterCondition to its own file.
80392         * bindings/objc/DOMTraversal.h: Remove the category methods that added
80393         createNodeIterator: and createTreeWalker: to DOMDocument. This is fine
80394         to do since DOmDocument.h is included still, and has these methods.
80395         * bindings/objc/DOMUtility.mm:
80396         (JSC::createDOMWrapper): Remove special case for JSNodeIterator and
80397         JSTreeWalker now that the ObjC binding conforms to the standard wrap.
80398         * bindings/objc/ObjCNodeFilterCondition.h: Split out from DOM.mm.
80399         (WebCore::ObjCNodeFilterCondition::create): Moved from DOM.mm.
80400         (WebCore::ObjCNodeFilterCondition::ObjCNodeFilterCondition): Ditto.
80401         * bindings/objc/ObjCNodeFilterCondition.mm: Split out from DOM.mm.
80402         (WebCore::ObjCNodeFilterCondition::acceptNode): Moved from DOM.mm.
80403         * bindings/objc/PublicDOMInterfaces.h: Add the createNodeIterator: and
80404         createTreeWalker: methods to DOMDocument.
80405         * bindings/scripts/CodeGeneratorObjC.pm:
80406         (GetObjCTypeGetter): Add a case for NodeFilter.
80407         (AddIncludesForType): Include ObjCNodeFilterCondition.h for NodeFilter.
80408         (GenerateImplementation): Remove existing NodeFilter special case that
80409         used the m_filter member variable. Add a new special getter for protocol
80410         types that aren't EventTarget, so the right class is used for NodeFilter.
80411         Add a special case for NodeFilter where it creates an ObjCNodeFilterCondition.
80412         * dom/Document.idl: Remove the #ifdef LANGUAGE_OBJECTIVE_C. Add the
80413         OldStyleObjC extended attribute to createNodeIterator and createTreeWalker.
80414         Rename the entityReferenceExpansion parameter to expandEntityReferences to
80415         match the previous ObjC API.
80416         * dom/NodeIterator.idl: Remove ObjCIvar from the filter attribute. The
80417         m_filter member variable was never used in practice, it was always nil!
80418         We can remove it and not pad the object because this can't be subclassed.
80419         * dom/TreeWalker.idl: Ditto.
80420
80421 2008-10-07  Timothy Hatcher  <timothy@apple.com>
80422
80423         Auto-generate the DOMEventTarget protocol implementation for
80424         DOMNode and DOMSVGElementInstance.
80425
80426         https://bugs.webkit.org/show_bug.cgi?id=21432
80427
80428         Reviewed by Darin Adler.
80429
80430         * WebCore.xcodeproj/project.pbxproj: Add ObjCEventListener.{mm,h}.
80431         * bindings/objc/DOM.mm: Remove many unneeded header includes. Move
80432         ObjCEventListener to it's own file. Remove the manual impelmentations
80433         of the DOMEventTarget protocol for DOMNode and DOMSVGElementInstance.
80434         * bindings/objc/DOMEvents.h: Remove the categories that defined
80435         DOMEventTarget for DOMNode and DOMSVGElementInstance.
80436         * bindings/objc/ObjCEventListener.h: Split out from DOM.mm.
80437         * bindings/objc/ObjCEventListener.mm: Split out from DOM.mm.
80438         (WebCore::ObjCEventListener::find): Moved from DOM.mm.
80439         (WebCore::ObjCEventListener::wrap): Use PassRefPtr to prevent the
80440         callers from doing a manual deref.
80441         (WebCore::ObjCEventListener::ObjCEventListener): Moved from DOM.mm.
80442         (WebCore::ObjCEventListener::~ObjCEventListener): Ditto.
80443         * bindings/scripts/CodeGeneratorObjC.pm:
80444         (GetObjCTypeGetter): Add a case for EventListener and use WTF::getPtr.
80445         (AddIncludesForType): Include ObjCEventListener.h for EventListener.
80446         And include EventTargetSVGElementInstance.h for SVGElementInstance.
80447         (GenerateHeader): Remove the check for multiple parents.
80448         (GenerateImplementation): Remove the check for multiple parents. Remove
80449         the @deprecatedFunctions array since deprecated methods get generated
80450         into the main @interface now to work with protocols. Add support
80451         for the EventTargetNodeCast extended attribute. Add support for
80452         EventListener parameters.
80453         * dom/Node.idl: Define superclasses for ObjC so the implementation
80454         and interface implement the DOMEventTarget protocol. Explicitly
80455         specify Object as a superclass to use DOMEventTarget. Object will turn
80456         into DOMObject. This is needed to take the code generator down the right
80457         path of multiple super-classes as protocols. It is ObjC only for legacy
80458         reasons. The event target methods are normally on NodeEventTarget, a
80459         subclass of Node. But the ObjC API has never has this subclass and
80460         they are on DOMNode.
80461         * svg/SVGElementInstance.idl: Ditto.
80462
80463 2008-10-07  David Hyatt  <hyatt@apple.com>
80464
80465         Add new pseudo-elements and pseudo-classes that will enable scrollbars to be styled by CSS.
80466
80467         The new pseudo-elements are:
80468             scrollbar
80469             scrollbar-button
80470             scrollbar-corner
80471             scrollbar-thumb
80472             scrollbar-track
80473
80474         These elements will work with all the usual pseudo-classes (:hover, :active, :enabled, :disabled, etc.) and with
80475         the following new pseudo-classes:
80476             scrollbar-active
80477             scrollbar-back
80478             scrollbar-forward
80479             scrollbar-horizontal
80480             scrollbar-vertical
80481
80482         Reviewed by Adele
80483
80484         * css/CSSSelector.cpp:
80485         (WebCore::CSSSelector::extractPseudoType):
80486         * css/CSSSelector.h:
80487         (WebCore::CSSSelector::):
80488
80489 2008-10-06  Timothy Hatcher  <timothy@apple.com>
80490
80491         Add support to the Resources panel for queries like "#123", "foo #123",
80492         "line: 123" and "foo line: 123". These will match the query limiting
80493         the search only to the line specified. If only a line is specified,
80494         the whole line is matched.
80495
80496         https://bugs.webkit.org/show_bug.cgi?id=21422
80497
80498         Reviewed by Darin Adler.
80499
80500         * inspector/front-end/SourceFrame.js:
80501         (WebInspector.SourceFrame.prototype.sourceRow): Don't return the last
80502         row if the index is greater than the rows collection. Let it return
80503         undefined by indexing out-of-bounds.
80504         * inspector/front-end/SourceView.js:
80505         (WebInspector.SourceView.prototype.performSearch): Add support for
80506         queries like "#123", "foo #123", "line: 123" and "foo line: 123".
80507         Also match the whole query to the whole document in case there are
80508         colors like "#333".
80509
80510 2008-10-07  Alp Toker  <alp@nuanti.com>
80511
80512         Reviewed by Mark Rowe.
80513
80514         https://bugs.webkit.org/show_bug.cgi?id=21392
80515         [GTK] Auto-generate JS DOM binding sources list
80516
80517         Remove the huge lists of generated DOM binding sources and headers in
80518         the build system. These are difficult to maintain and can be derived
80519         automatically.
80520
80521         The new strategy is to re-use the existing lists of IDL sources (which
80522         are needed for dist support anyway). This will also ease the addition
80523         of new language bindings.
80524
80525         * GNUmakefile.am:
80526
80527 2008-10-07  Tor Arne Vestbø  <tavestbo@trolltech.com>
80528
80529         Reviewed by Simon.
80530
80531         Don't attempt to paint when updating control tints
80532
80533         We don't have a valid PlatformGraphicsContext so schedule
80534         the dirty scrollbar/scrollview area for repaint instead.
80535
80536         * platform/qt/ScrollbarThemeQt.cpp:
80537         (WebCore::ScrollbarThemeQt::paint):
80538         (WebCore::ScrollbarThemeQt::paintScrollCorner):
80539
80540 2008-10-07  Holger Hans Peter Freyther  <zecke@selfish.org>
80541
80542         [qt] Build fix after Scrollbar.h and Widget.h changes.
80543
80544         * plugins/qt/PluginViewQt.cpp:
80545         (WebCore::PluginView::getValue):
80546         (WebCore::PluginView::init):
80547
80548 2008-10-06  David Hyatt  <hyatt@apple.com>
80549
80550         Enable viewless Mac WebKit to (kinda sorta) paint basic pages (with no frames on them).
80551
80552         Reviewed by Sam Weinig
80553
80554         * WebCore.base.exp:
80555         * WebCore.xcodeproj/project.pbxproj:
80556         * loader/EmptyClients.h:
80557         (WebCore::EmptyFrameLoaderClient::hasWebView):
80558         * loader/FrameLoader.cpp:
80559         (WebCore::FrameLoader::loadWithDocumentLoader):
80560         (WebCore::FrameLoader::transitionToCommitted):
80561         * loader/FrameLoaderClient.h:
80562         * page/FocusController.cpp:
80563         (WebCore::FocusController::setActive):
80564         * page/FrameView.cpp:
80565         (WebCore::FrameView::FrameView):
80566         (WebCore::FrameView::init):
80567         (WebCore::FrameView::layoutIfNeededRecursive):
80568         * page/FrameView.h:
80569
80570 2008-10-06  Dan Bernstein  <mitz@apple.com>
80571
80572         - build fix
80573
80574         * bindings/objc/DOMEvents.h:
80575
80576 2008-10-06  Mark Mentovai  <mark@moxienet.com>
80577
80578         Reviewed by Tim Hatcher.
80579
80580         Use #if ENABLE(feature) where possible, and #if ENABLE_feature where
80581         Platform.h is not available, in preference to #ifdef ENABLE_feature.
80582         #ifdef is wrong now that features are disabled by #defining
80583         ENABLE_feature to 0.
80584
80585         https://bugs.webkit.org/show_bug.cgi?id=21338
80586
80587         * bindings/objc/DOMEvents.h:
80588         * bindings/objc/PublicDOMInterfaces.h:
80589         * dom/Document.idl:
80590         * page/DOMWindow.idl:
80591         * svg/svgtags.in:
80592
80593 2008-10-06  Mark Mentovai  <mark@moxienet.com>
80594
80595         Reviewed by Sam Weinig.
80596
80597         * platform/network/mac/FormDataStreamMac.mm: #import <wtf/Threading.h>
80598         to get the declaration for isMainThread().
80599
80600 2008-10-06  Jeremy Moskovich  <jeremy@chromium.org>
80601
80602         Reviewed by Tim Hatcher.
80603
80604         WebCoreObjCExtras.c is actually an obj-c++ file, so change its name
80605         to reflect that.
80606
80607         * WebCore.xcodeproj/project.pbxproj:
80608         * platform/mac/WebCoreObjCExtras.c: Removed.
80609         * platform/mac/WebCoreObjCExtras.mm: Copied from WebCore/platform/mac/WebCoreObjCExtras.c.
80610
80611 2008-10-06  Jeremy Moskovich  <jeremy@chromium.org>
80612
80613         Reviewed by Dan Bernstein.
80614
80615         Added C++ forward declaration for the NSURLAuthenticationChallenge class
80616         so that the m_currentMacChallenge variable doesn't cause a
80617         compilation error when ResourceHandleInternal.h is included from a C++ file.
80618         Fixes: https://bugs.webkit.org/show_bug.cgi?id=21411
80619
80620         * platform/network/ResourceHandleInternal.h:
80621
80622 2008-10-06  Steve Falkenburg  <sfalken@apple.com>
80623
80624         Windows build fix.
80625
80626         * WebCore.vcproj/WebCore.vcproj:
80627
80628 2008-10-06  Steve Falkenburg  <sfalken@apple.com>
80629
80630         https://bugs.webkit.org/show_bug.cgi?id=21416
80631         Add missing null checks identified by Application Verifier.
80632
80633         Reviewed by Darin Adler.
80634
80635         * platform/win/SharedTimerWin.cpp:
80636         (WebCore::clearTimer):
80637
80638 2008-10-06  Kevin McCullough  <kmccullough@apple.com>
80639
80640         Reviewed by Tim Hatcher.
80641
80642         Removed accidentally left in debugging statement.
80643
80644         * inspector/front-end/inspector.js:
80645
80646 2008-10-06  Kevin McCullough  <kmccullough@apple.com>
80647
80648         Reviewed by Tim Hatcher and Oliver Hunt.
80649
80650         https://bugs.webkit.org/show_bug.cgi?id=21412
80651         Bug 21412: Refactor user initiated profile count to be more stable
80652
80653         * inspector/InspectorController.cpp: Keep track of the user-initiated
80654         profiles here now.
80655         (WebCore::InspectorController::InspectorController):
80656         (WebCore::InspectorController::startUserInitiatedProfiling):
80657         (WebCore::InspectorController::stopUserInitiatedProfiling):
80658         * inspector/InspectorController.h:
80659         The front end will now need to check for the existence of the user-
80660         initiated profile title and use its count instead of keeping its own.
80661         * inspector/front-end/ProfilesPanel.js:
80662
80663 2008-10-06  Dan Bernstein  <mitz@apple.com>
80664
80665         Reviewed by Sam Weinig.
80666
80667         - separate GDI text drawing into its own function
80668
80669         * platform/graphics/win/FontCGWin.cpp:
80670         (WebCore::drawGDIGlyphs):
80671         (WebCore::Font::drawGlyphs):
80672
80673 2008-10-03  Steve Falkenburg  <sfalken@apple.com>
80674
80675         <rdar://problem/6249833> Fix default button appearance
80676
80677         Reviewed by Adele Peterson.
80678
80679         * rendering/RenderThemeWin.cpp:
80680         (WebCore::RenderThemeWin::supportsFocus):
80681         (WebCore::RenderThemeWin::determineClassicState):
80682         (WebCore::RenderThemeWin::determineButtonState):
80683         (WebCore::RenderThemeWin::getClassicThemeData):
80684         (WebCore::RenderThemeWin::getThemeData):
80685         (WebCore::drawControl):
80686         * rendering/RenderThemeWin.h:
80687
80688 2008-10-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
80689
80690         Reviewed by Simon.
80691
80692         Add native virtual keycode to PlatformKeyboardEvent
80693
80694         * platform/PlatformKeyboardEvent.h:
80695         * platform/gtk/KeyEventGtk.cpp:
80696         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
80697         * platform/mac/KeyEventMac.mm:
80698         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
80699         * platform/qt/PlatformKeyboardEventQt.cpp:
80700         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
80701         * platform/win/KeyEventWin.cpp:
80702         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
80703         * platform/wx/KeyboardEventWx.cpp:
80704         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
80705
80706 2008-10-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
80707
80708         Reviewed by Simon.
80709
80710         Enable WebCore::String <> CFStringRef conversion functions for QtWebKit/Mac
80711
80712         * platform/text/PlatformString.h:
80713         * platform/text/StringImpl.h:
80714         * platform/text/cf/StringCF.cpp:
80715         * platform/text/cf/StringImplCF.cpp:
80716
80717 2008-10-06  Tor Arne Vestbø  <tavestbo@trolltech.com>
80718
80719         Reviewed by Simon.
80720
80721         Use bundles on QtWebKit/Mac for platform modules
80722
80723         * platform/FileSystem.h:
80724         * platform/qt/FileSystemQt.cpp:
80725         (WebCore::unloadModule):
80726
80727 2008-10-06  Ariya Hidayat  <ariya.hidayat@trolltech.com>
80728
80729         Reviewed by Simon.
80730
80731         Build fix for MinGW.
80732
80733         * platform/win/SystemTimeWin.cpp:
80734         * plugins/win/PluginViewWin.cpp:
80735         (WebCore::PluginView::invalidateRect):
80736
80737 2008-10-06  Adam Roben  <aroben@apple.com>
80738
80739         Mimic the inspector/ directory structure in WebCore.vcproj
80740
80741         * WebCore.vcproj/WebCore.vcproj:
80742
80743 2008-10-06  Adam Roben  <aroben@apple.com>
80744
80745         Windows build fix
80746
80747         * WebCore.vcproj/WebCore.vcproj: Update the Include path for all
80748         configurations to include WebCore/inspector.
80749
80750 2008-10-04  Eric Seidel  <eric@webkit.org>
80751
80752         Reviewed by Darin Adler.
80753
80754         SVG should support ascent and descent properties <font-face> instead of <font>!
80755         https://bugs.webkit.org/show_bug.cgi?id=21365
80756
80757         Tested by many many existing SVG tests.
80758
80759         * svg/SVGFontFaceElement.cpp:
80760         (WebCore::SVGFontFaceElement::ascent):
80761         (WebCore::SVGFontFaceElement::descent):
80762
80763 2008-10-05  Darin Fisher  <darin@chromium.org>
80764
80765         Reviewed by Eric Seidel.
80766
80767         REGRESSION: crash in ScriptElement::notifyFinished
80768         Fixes https://bugs.webkit.org/show_bug.cgi?id=21329
80769
80770         * dom/ScriptElement.cpp:
80771         (WebCore::ScriptElementData::notifyFinished): Revert part of r35744 to
80772         ensure that the ScriptElementData object is not destroyed prematurely.
80773
80774 2008-10-05  Chris Lord  <chris@openedhand.com>
80775
80776         Reviewed by Alp Toker. Landed by Jan Alonzo.
80777
80778         https://bugs.webkit.org/show_bug.cgi?id=20624
80779         WebKit-gtk uses deprecated GtkType/GtkObject
80780
80781         * plugins/gtk/gtk2xtbin.c:
80782         (gtk_xtbin_get_type):
80783         * plugins/gtk/gtk2xtbin.h:
80784
80785 2008-10-05  Luke Kenneth Casson Leighton  <lkcl@lkcl.net>
80786
80787         Reviewed by David Hyatt.
80788
80789         GTK_WINDOW_HWND not GTK_WINDOWING_HWND
80790         https://bugs.webkit.org/show_bug.cgi?id=20725
80791
80792         Updated to ToT by Jan Alonzo.
80793
80794         * plugins/gtk/PluginViewGtk.cpp:
80795         (WebCore::PluginView::getValue):
80796
80797 2008-10-05  Jan Michael Alonzo  <jmalonzo@webkit.org>
80798
80799         Reviewed by Darin Adler.
80800
80801         Invalid cast from GdkWindow to GtkWidget
80802         https://bugs.webkit.org/show_bug.cgi?id=21391
80803
80804         Fix a misplaced closing parenthesis to actually cast the widget, not the window
80805
80806         * platform/gtk/PlatformScreenGtk.cpp:
80807         (WebCore::screenDepth):
80808
80809 2008-10-05  Adam Barth  <abarth@webkit.org>
80810
80811         Reviewed by Darin Alder.
80812
80813         Attach the Origin header to POST requests to help defend against
80814         cross-site request forgery.
80815
80816         https://bugs.webkit.org/show_bug.cgi?id=20792
80817
80818         Collin Jackson <collinj@webkit.org> also contributed to this patch.
80819
80820         Tests: http/tests/security/originHeader/origin-header-for-data.html
80821                http/tests/security/originHeader/origin-header-for-empty.html
80822                http/tests/security/originHeader/origin-header-for-get.html
80823                http/tests/security/originHeader/origin-header-for-https.html
80824                http/tests/security/originHeader/origin-header-for-post.html
80825
80826         * bindings/js/JSDOMWindowBase.cpp:
80827         (WebCore::createWindow):
80828         * loader/FrameLoader.cpp:
80829         (WebCore::FrameLoader::createWindow):
80830         (WebCore::FrameLoader::urlSelected):
80831         (WebCore::FrameLoader::submitForm):
80832         (WebCore::FrameLoader::outgoingOrigin):
80833         (WebCore::FrameLoader::loadURL):
80834         (WebCore::FrameLoader::addExtraFieldsToRequest):
80835         (WebCore::FrameLoader::loadPostRequest):
80836         (WebCore::FrameLoader::loadResourceSynchronously):
80837         (WebCore::FrameLoader::loadItem):
80838         * loader/FrameLoader.h:
80839         * loader/SubresourceLoader.cpp:
80840         (WebCore::SubresourceLoader::create):
80841         * loader/loader.cpp:
80842         (WebCore::Loader::Host::servePendingRequests):
80843         * platform/SecurityOrigin.cpp:
80844         (WebCore::SecurityOrigin::toHTTPOrigin):
80845         * platform/SecurityOrigin.h:
80846         * platform/network/ResourceRequestBase.h:
80847         (WebCore::ResourceRequestBase::httpOrigin):
80848         (WebCore::ResourceRequestBase::setHTTPOrigin):
80849         (WebCore::ResourceRequestBase::clearHTTPOrigin):
80850         * xml/XMLHttpRequest.cpp:
80851         (WebCore::XMLHttpRequest::makeSimpleCrossSiteAccessRequest):
80852         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
80853         (WebCore::XMLHttpRequest::handleAsynchronousPreflightResult):
80854         (WebCore::XMLHttpRequest::didReceiveResponsePreflight):
80855
80856 2008-10-04  Oliver Hunt  <oliver@apple.com>
80857
80858         Reviewed by Tim Hatcher.
80859
80860         Bug 21381: Incremental parsing of html causes bogus line numbers in some cases
80861         <https://bugs.webkit.org/show_bug.cgi?id=21381>
80862
80863         If we hit a parsing boundary (end of a packet, etc) in the middle of a
80864         <script> element when we are doing an incremental parse, we exit the
80865         parser, and reenter later when more data is available.  During this
80866         reentry we incorrectly reset the scriptStartLineno to the current line
80867         in the parser, which is now part way through the script element.
80868
80869         The solution is to track whether we are entering or reentering the parsing
80870         of a script element.  We do this simply by 0 checking scriptStartLineno,
80871         and resetting it after we complete parsing of each script element.
80872
80873         Test: http/tests/incremental/pause-in-script-element.pl
80874
80875         * ChangeLog:
80876         * html/HTMLTokenizer.cpp:
80877         (WebCore::HTMLTokenizer::parseSpecial):
80878         (WebCore::HTMLTokenizer::scriptHandler):
80879
80880 2008-10-04  Alp Toker  <alp@nuanti.com>
80881
80882         Reviewed by David Hyatt. Landed by Jan Alonzo.
80883
80884         https://bugs.webkit.org/show_bug.cgi?id=20924
80885         [Gtk] Linux/Gtk: Recent tree revisions fail Acid2 and Acid3
80886
80887         https://bugs.webkit.org/show_bug.cgi?id=19578
80888         [CURL] problem in parseDataUrl
80889
80890         De-obfuscate parseDataUrl() and fix regressions introduced in r35954.
80891         This patch also fixes encoding support in escaped (non-Base64) data
80892         URLs. All manual data URL tests now pass in both GLib and non-GLib
80893         code paths.
80894
80895         * platform/network/curl/ResourceHandleManager.cpp:
80896         (WebCore::parseDataUrl):
80897
80898 2008-10-04  Timothy Hatcher  <timothy@apple.com>
80899
80900         Makes breakpoints and debugging code during page load work in the
80901         Web Inspector's debugger. Specifically, this makes the source
80902         code for loading resources show up in the Scripts panel.
80903
80904         https://bugs.webkit.org/show_bug.cgi?id=19053
80905         rdar://problem/5933408
80906
80907         Reviewed by Mark Rowe.
80908
80909         * WebCore.xcodeproj/project.pbxproj: Mark the inspector group as
80910         not using tabs and a tab width of 8.
80911         * inspector/InspectorController.cpp:
80912         (WebCore::addResourceSourceToFrame): Return a bool to report if the
80913         source was added successfully or not.
80914         (WebCore::addSourceToFrame): Ditto.
80915         * inspector/front-end/ScriptView.js:
80916         (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded):
80917         Return early if the InspectorController.addSourceToFrame fails.
80918         Moved the delete of the _frameNeedsSetup property after that call so
80919         if the source wasn't added it will be attempted again.
80920         * inspector/front-end/SourceView.js:
80921         (WebInspector.SourceView.prototype.detach): Move a comment.
80922         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded):
80923         Don't check if the resource is finished or failed, just attempt
80924         to add the source to the frame. WebCore has the source, but the
80925         finished property hasn't been set yet. Return early if the
80926         InspectorController.addSourceToFrame fails. Moved the delete
80927         of the _frameNeedsSetup property after that call so if the source
80928         wasn't added it will be attempted again.
80929         (WebInspector.SourceView.prototype._resourceLoadingFinished):
80930         Clear the _frameNeedsSetup and _sourceFrameSetup properties so
80931         the source frame will we populated again now that the resource
80932         load has finished.
80933         * manual-tests/inspector/debugger-pause-during-load.html: Added.
80934
80935 2008-10-04  Mark Rowe  <mrowe@apple.com>
80936
80937         Reviewed by Tim Hatcher.
80938
80939         Add a 'Check For Weak VTables' build phase to catch weak vtables as early as possible.
80940
80941         * WebCore.xcodeproj/project.pbxproj:
80942
80943 2008-10-04  David Hyatt  <hyatt@apple.com>
80944
80945         https://bugs.webkit.org/show_bug.cgi?id=21373
80946
80947         Tear down scrollbars in FrameView rather than ScrollView so that the connection to the hostWindow()
80948         is still present.
80949
80950         Reviewed by Mark Rowe
80951
80952         * page/FrameView.cpp:
80953         (WebCore::FrameView::~FrameView):
80954
80955 2008-10-04  Sam Weinig  <sam@webkit.org>
80956
80957         Reviewed by Dan Bernstein.
80958
80959         Avoid copying a Vector when using getSupportedKeySizes.
80960
80961         * html/HTMLKeygenElement.cpp:
80962         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
80963         * platform/SSLKeyGenerator.h:
80964         * platform/gtk/TemporaryLinkStubs.cpp:
80965         (WebCore::getSupportedKeySizes):
80966         * platform/mac/SSLKeyGeneratorMac.mm:
80967         (WebCore::getSupportedKeySizes):
80968         * platform/qt/TemporaryLinkStubs.cpp:
80969         (WebCore::getSupportedKeySizes):
80970         * platform/win/TemporaryLinkStubs.cpp:
80971         (WebCore::getSupportedKeySizes):
80972         * platform/wx/TemporaryLinkStubs.cpp:
80973         (WebCore::getSupportedKeySizes):
80974
80975 2008-10-04  Darin Adler  <darin@apple.com>
80976
80977         Reviewed by Cameron Zwarich.
80978
80979         - prepare for https://bugs.webkit.org/show_bug.cgi?id=21295
80980           Bug 21295: Replace ExecState with a call frame Register pointer
80981
80982         * bindings/js/JSQuarantinedObjectWrapper.cpp:
80983         (WebCore::JSQuarantinedObjectWrapper::allowsUnwrappedAccessFrom):
80984         Remove bogus "const".
80985         * bindings/js/JSQuarantinedObjectWrapper.h: Ditto.
80986
80987 2008-10-04  David Hyatt  <hyatt@apple.com>
80988
80989         Make PopupMenuClient obey the platform abstraction.  Remove any connection to Document and RenderStyle.
80990
80991         Reviewed by Darin Adler
80992
80993         * WebCore.xcodeproj/project.pbxproj:
80994         * platform/PopupMenuClient.h:
80995         * platform/gtk/PopupMenuGtk.cpp:
80996         (WebCore::PopupMenu::show):
80997         * platform/mac/PopupMenuMac.mm:
80998         (WebCore::PopupMenu::populate):
80999         (WebCore::PopupMenu::show):
81000         * platform/qt/PopupMenuQt.cpp:
81001         (WebCore::PopupMenu::populate):
81002         * platform/win/PopupMenuWin.cpp:
81003         (WebCore::PopupMenu::calculatePositionAndSize):
81004         (WebCore::PopupMenu::paint):
81005         (WebCore::PopupWndProc):
81006         * rendering/RenderMenuList.cpp:
81007         (WebCore::RenderMenuList::itemStyle):
81008         (WebCore::RenderMenuList::menuStyle):
81009         (WebCore::RenderMenuList::hostWindow):
81010         * rendering/RenderMenuList.h:
81011         * rendering/RenderTextControl.cpp:
81012         (WebCore::RenderTextControl::itemStyle):
81013         (WebCore::RenderTextControl::menuStyle):
81014         (WebCore::RenderTextControl::hostWindow):
81015         * rendering/RenderTextControl.h:
81016
81017 2008-10-04  Matt Lilek  <webkit@mattlilek.com>
81018
81019         Build fix - restore Private role to headers that had it before the move.
81020
81021         * WebCore.xcodeproj/project.pbxproj:
81022
81023 2008-10-04  Darin Adler  <darin@apple.com>
81024
81025         - try to fix build
81026
81027         * DerivedSources.make: Add new inspector directory to VPATH.
81028         * GNUmakefile.am: Add new inspector directory to includes.
81029         Re-sort the IDL_BINDINGS list. Add new inspector directory
81030         to VPATH.
81031
81032 2008-10-04  Matt Lilek  <webkit@mattlilek.com>
81033
81034         Not reviewed, attempt to fix Gtk build.
81035
81036         * GNUmakefile.am:
81037
81038 2008-10-03  Timothy Hatcher  <timothy@apple.com>
81039
81040         Move the Web Inspector files into a top-level "inspector" folder.
81041
81042         https://bugs.webkit.org/show_bug.cgi?id=21359
81043
81044         Reviewed by Dave Hyatt.
81045
81046         * GNUmakefile.am:
81047         * WebCore.pro:
81048         * WebCore.vcproj/WebCore.vcproj:
81049         * WebCore.xcodeproj/project.pbxproj:
81050         * WebCoreSources.bkl:
81051         * inspector/InspectorClient.h: Renamed from WebCore/page/InspectorClient.h.
81052         * inspector/InspectorController.cpp: Renamed from WebCore/page/InspectorController.cpp.
81053         * inspector/InspectorController.h: Renamed from WebCore/page/InspectorController.h.
81054         * inspector/JavaScriptCallFrame.cpp: Renamed from WebCore/page/JavaScriptCallFrame.cpp.
81055         * inspector/JavaScriptCallFrame.h: Renamed from WebCore/page/JavaScriptCallFrame.h.
81056         * inspector/JavaScriptCallFrame.idl: Renamed from WebCore/page/JavaScriptCallFrame.idl.
81057         * inspector/JavaScriptDebugListener.h: Renamed from WebCore/page/JavaScriptDebugListener.h.
81058         * inspector/JavaScriptDebugServer.cpp: Renamed from WebCore/page/JavaScriptDebugServer.cpp.
81059         * inspector/JavaScriptDebugServer.h: Renamed from WebCore/page/JavaScriptDebugServer.h.
81060         * inspector/JavaScriptProfile.cpp: Renamed from WebCore/page/JavaScriptProfile.cpp.
81061         * inspector/JavaScriptProfile.h: Renamed from WebCore/page/JavaScriptProfile.h.
81062         * inspector/JavaScriptProfileNode.cpp: Renamed from WebCore/page/JavaScriptProfileNode.cpp.
81063         * inspector/JavaScriptProfileNode.h: Renamed from WebCore/page/JavaScriptProfileNode.h.
81064         * inspector/front-end/Breakpoint.js: Renamed from WebCore/page/inspector/Breakpoint.js.
81065         * inspector/front-end/BreakpointsSidebarPane.js: Renamed from WebCore/page/inspector/BreakpointsSidebarPane.js.
81066         * inspector/front-end/CallStackSidebarPane.js: Renamed from WebCore/page/inspector/CallStackSidebarPane.js.
81067         * inspector/front-end/Console.js: Renamed from WebCore/page/inspector/Console.js.
81068         * inspector/front-end/DataGrid.js: Renamed from WebCore/page/inspector/DataGrid.js.
81069         * inspector/front-end/Database.js: Renamed from WebCore/page/inspector/Database.js.
81070         * inspector/front-end/DatabaseQueryView.js: Renamed from WebCore/page/inspector/DatabaseQueryView.js.
81071         * inspector/front-end/DatabaseTableView.js: Renamed from WebCore/page/inspector/DatabaseTableView.js.
81072         * inspector/front-end/DatabasesPanel.js: Renamed from WebCore/page/inspector/DatabasesPanel.js.
81073         * inspector/front-end/ElementsPanel.js: Renamed from WebCore/page/inspector/ElementsPanel.js.
81074         * inspector/front-end/ElementsTreeOutline.js: Renamed from WebCore/page/inspector/ElementsTreeOutline.js.
81075         * inspector/front-end/FontView.js: Renamed from WebCore/page/inspector/FontView.js.
81076         * inspector/front-end/ImageView.js: Renamed from WebCore/page/inspector/ImageView.js.
81077         * inspector/front-end/Images/back.png: Renamed from WebCore/page/inspector/Images/back.png.
81078         * inspector/front-end/Images/checker.png: Renamed from WebCore/page/inspector/Images/checker.png.
81079         * inspector/front-end/Images/clearConsoleButtons.png: Renamed from WebCore/page/inspector/Images/clearConsoleButtons.png.
81080         * inspector/front-end/Images/closeButtons.png: Renamed from WebCore/page/inspector/Images/closeButtons.png.
81081         * inspector/front-end/Images/consoleButtons.png: Renamed from WebCore/page/inspector/Images/consoleButtons.png.
81082         * inspector/front-end/Images/database.png: Renamed from WebCore/page/inspector/Images/database.png.
81083         * inspector/front-end/Images/databaseTable.png: Renamed from WebCore/page/inspector/Images/databaseTable.png.
81084         * inspector/front-end/Images/databasesIcon.png: Renamed from WebCore/page/inspector/Images/databasesIcon.png.
81085         * inspector/front-end/Images/debuggerContinue.png: Renamed from WebCore/page/inspector/Images/debuggerContinue.png.
81086         * inspector/front-end/Images/debuggerPause.png: Renamed from WebCore/page/inspector/Images/debuggerPause.png.
81087         * inspector/front-end/Images/debuggerStepInto.png: Renamed from WebCore/page/inspector/Images/debuggerStepInto.png.
81088         * inspector/front-end/Images/debuggerStepOut.png: Renamed from WebCore/page/inspector/Images/debuggerStepOut.png.
81089         * inspector/front-end/Images/debuggerStepOver.png: Renamed from WebCore/page/inspector/Images/debuggerStepOver.png.
81090         * inspector/front-end/Images/debuggingButtons.png: Renamed from WebCore/page/inspector/Images/debuggingButtons.png.
81091         * inspector/front-end/Images/disclosureTriangleSmallDown.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallDown.png.
81092         * inspector/front-end/Images/disclosureTriangleSmallDownBlack.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallDownBlack.png.
81093         * inspector/front-end/Images/disclosureTriangleSmallDownWhite.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallDownWhite.png.
81094         * inspector/front-end/Images/disclosureTriangleSmallRight.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallRight.png.
81095         * inspector/front-end/Images/disclosureTriangleSmallRightBlack.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallRightBlack.png.
81096         * inspector/front-end/Images/disclosureTriangleSmallRightDown.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallRightDown.png.
81097         * inspector/front-end/Images/disclosureTriangleSmallRightDownBlack.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallRightDownBlack.png.
81098         * inspector/front-end/Images/disclosureTriangleSmallRightDownWhite.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallRightDownWhite.png.
81099         * inspector/front-end/Images/disclosureTriangleSmallRightWhite.png: Renamed from WebCore/page/inspector/Images/disclosureTriangleSmallRightWhite.png.
81100         * inspector/front-end/Images/dockButtons.png: Renamed from WebCore/page/inspector/Images/dockButtons.png.
81101         * inspector/front-end/Images/elementsIcon.png: Renamed from WebCore/page/inspector/Images/elementsIcon.png.
81102         * inspector/front-end/Images/errorIcon.png: Renamed from WebCore/page/inspector/Images/errorIcon.png.
81103         * inspector/front-end/Images/errorMediumIcon.png: Renamed from WebCore/page/inspector/Images/errorMediumIcon.png.
81104         * inspector/front-end/Images/excludeButtons.png: Renamed from WebCore/page/inspector/Images/excludeButtons.png.
81105         * inspector/front-end/Images/focusButtons.png: Renamed from WebCore/page/inspector/Images/focusButtons.png.
81106         * inspector/front-end/Images/forward.png: Renamed from WebCore/page/inspector/Images/forward.png.
81107         * inspector/front-end/Images/glossyHeader.png: Renamed from WebCore/page/inspector/Images/glossyHeader.png.
81108         * inspector/front-end/Images/glossyHeaderPressed.png: Renamed from WebCore/page/inspector/Images/glossyHeaderPressed.png.
81109         * inspector/front-end/Images/glossyHeaderSelected.png: Renamed from WebCore/page/inspector/Images/glossyHeaderSelected.png.
81110         * inspector/front-end/Images/glossyHeaderSelectedPressed.png: Renamed from WebCore/page/inspector/Images/glossyHeaderSelectedPressed.png.
81111         * inspector/front-end/Images/goArrow.png: Renamed from WebCore/page/inspector/Images/goArrow.png.
81112         * inspector/front-end/Images/largerResourcesButtons.png: Renamed from WebCore/page/inspector/Images/largerResourcesButtons.png.
81113         * inspector/front-end/Images/nodeSearchButtons.png: Renamed from WebCore/page/inspector/Images/nodeSearchButtons.png.
81114         * inspector/front-end/Images/paneBottomGrow.png: Renamed from WebCore/page/inspector/Images/paneBottomGrow.png.
81115         * inspector/front-end/Images/paneBottomGrowActive.png: Renamed from WebCore/page/inspector/Images/paneBottomGrowActive.png.
81116         * inspector/front-end/Images/paneGrowHandleLine.png: Renamed from WebCore/page/inspector/Images/paneGrowHandleLine.png.
81117         * inspector/front-end/Images/pauseOnExceptionButtons.png: Renamed from WebCore/page/inspector/Images/pauseOnExceptionButtons.png.
81118         * inspector/front-end/Images/percentButtons.png: Renamed from WebCore/page/inspector/Images/percentButtons.png.
81119         * inspector/front-end/Images/profileGroupIcon.png: Renamed from WebCore/page/inspector/Images/profileGroupIcon.png.
81120         * inspector/front-end/Images/profileIcon.png: Renamed from WebCore/page/inspector/Images/profileIcon.png.
81121         * inspector/front-end/Images/profileSmallIcon.png: Renamed from WebCore/page/inspector/Images/profileSmallIcon.png.
81122         * inspector/front-end/Images/profilesIcon.png: Renamed from WebCore/page/inspector/Images/profilesIcon.png.
81123         * inspector/front-end/Images/recordButtons.png: Renamed from WebCore/page/inspector/Images/recordButtons.png.
81124         * inspector/front-end/Images/reloadButtons.png: Renamed from WebCore/page/inspector/Images/reloadButtons.png.
81125         * inspector/front-end/Images/resourceCSSIcon.png: Renamed from WebCore/page/inspector/Images/resourceCSSIcon.png.
81126         * inspector/front-end/Images/resourceDocumentIcon.png: Renamed from WebCore/page/inspector/Images/resourceDocumentIcon.png.
81127         * inspector/front-end/Images/resourceDocumentIconSmall.png: Renamed from WebCore/page/inspector/Images/resourceDocumentIconSmall.png.
81128         * inspector/front-end/Images/resourceJSIcon.png: Renamed from WebCore/page/inspector/Images/resourceJSIcon.png.
81129         * inspector/front-end/Images/resourcePlainIcon.png: Renamed from WebCore/page/inspector/Images/resourcePlainIcon.png.
81130         * inspector/front-end/Images/resourcePlainIconSmall.png: Renamed from WebCore/page/inspector/Images/resourcePlainIconSmall.png.
81131         * inspector/front-end/Images/resourcesIcon.png: Renamed from WebCore/page/inspector/Images/resourcesIcon.png.
81132         * inspector/front-end/Images/resourcesSizeGraphIcon.png: Renamed from WebCore/page/inspector/Images/resourcesSizeGraphIcon.png.
81133         * inspector/front-end/Images/resourcesTimeGraphIcon.png: Renamed from WebCore/page/inspector/Images/resourcesTimeGraphIcon.png.
81134         * inspector/front-end/Images/scriptsIcon.png: Renamed from WebCore/page/inspector/Images/scriptsIcon.png.
81135         * inspector/front-end/Images/searchSmallBlue.png: Renamed from WebCore/page/inspector/Images/searchSmallBlue.png.
81136         * inspector/front-end/Images/searchSmallBrightBlue.png: Renamed from WebCore/page/inspector/Images/searchSmallBrightBlue.png.
81137         * inspector/front-end/Images/searchSmallGray.png: Renamed from WebCore/page/inspector/Images/searchSmallGray.png.
81138         * inspector/front-end/Images/searchSmallWhite.png: Renamed from WebCore/page/inspector/Images/searchSmallWhite.png.
81139         * inspector/front-end/Images/segment.png: Renamed from WebCore/page/inspector/Images/segment.png.
81140         * inspector/front-end/Images/segmentEnd.png: Renamed from WebCore/page/inspector/Images/segmentEnd.png.
81141         * inspector/front-end/Images/segmentHover.png: Renamed from WebCore/page/inspector/Images/segmentHover.png.
81142         * inspector/front-end/Images/segmentHoverEnd.png: Renamed from WebCore/page/inspector/Images/segmentHoverEnd.png.
81143         * inspector/front-end/Images/segmentSelected.png: Renamed from WebCore/page/inspector/Images/segmentSelected.png.
81144         * inspector/front-end/Images/segmentSelectedEnd.png: Renamed from WebCore/page/inspector/Images/segmentSelectedEnd.png.
81145         * inspector/front-end/Images/splitviewDimple.png: Renamed from WebCore/page/inspector/Images/splitviewDimple.png.
81146         * inspector/front-end/Images/splitviewDividerBackground.png: Renamed from WebCore/page/inspector/Images/splitviewDividerBackground.png.
81147         * inspector/front-end/Images/statusbarBackground.png: Renamed from WebCore/page/inspector/Images/statusbarBackground.png.
81148         * inspector/front-end/Images/statusbarBottomBackground.png: Renamed from WebCore/page/inspector/Images/statusbarBottomBackground.png.
81149         * inspector/front-end/Images/statusbarButtons.png: Renamed from WebCore/page/inspector/Images/statusbarButtons.png.
81150         * inspector/front-end/Images/statusbarMenuButton.png: Renamed from WebCore/page/inspector/Images/statusbarMenuButton.png.
81151         * inspector/front-end/Images/statusbarMenuButtonSelected.png: Renamed from WebCore/page/inspector/Images/statusbarMenuButtonSelected.png.
81152         * inspector/front-end/Images/statusbarResizerHorizontal.png: Renamed from WebCore/page/inspector/Images/statusbarResizerHorizontal.png.
81153         * inspector/front-end/Images/statusbarResizerVertical.png: Renamed from WebCore/page/inspector/Images/statusbarResizerVertical.png.
81154         * inspector/front-end/Images/timelinePillBlue.png: Renamed from WebCore/page/inspector/Images/timelinePillBlue.png.
81155         * inspector/front-end/Images/timelinePillGray.png: Renamed from WebCore/page/inspector/Images/timelinePillGray.png.
81156         * inspector/front-end/Images/timelinePillGreen.png: Renamed from WebCore/page/inspector/Images/timelinePillGreen.png.
81157         * inspector/front-end/Images/timelinePillOrange.png: Renamed from WebCore/page/inspector/Images/timelinePillOrange.png.
81158         * inspector/front-end/Images/timelinePillPurple.png: Renamed from WebCore/page/inspector/Images/timelinePillPurple.png.
81159         * inspector/front-end/Images/timelinePillRed.png: Renamed from WebCore/page/inspector/Images/timelinePillRed.png.
81160         * inspector/front-end/Images/timelinePillYellow.png: Renamed from WebCore/page/inspector/Images/timelinePillYellow.png.
81161         * inspector/front-end/Images/tipBalloon.png: Renamed from WebCore/page/inspector/Images/tipBalloon.png.
81162         * inspector/front-end/Images/tipBalloonBottom.png: Renamed from WebCore/page/inspector/Images/tipBalloonBottom.png.
81163         * inspector/front-end/Images/tipIcon.png: Renamed from WebCore/page/inspector/Images/tipIcon.png.
81164         * inspector/front-end/Images/tipIconPressed.png: Renamed from WebCore/page/inspector/Images/tipIconPressed.png.
81165         * inspector/front-end/Images/toolbarItemSelected.png: Renamed from WebCore/page/inspector/Images/toolbarItemSelected.png.
81166         * inspector/front-end/Images/treeDownTriangleBlack.png: Renamed from WebCore/page/inspector/Images/treeDownTriangleBlack.png.
81167         * inspector/front-end/Images/treeDownTriangleWhite.png: Renamed from WebCore/page/inspector/Images/treeDownTriangleWhite.png.
81168         * inspector/front-end/Images/treeRightTriangleBlack.png: Renamed from WebCore/page/inspector/Images/treeRightTriangleBlack.png.
81169         * inspector/front-end/Images/treeRightTriangleWhite.png: Renamed from WebCore/page/inspector/Images/treeRightTriangleWhite.png.
81170         * inspector/front-end/Images/treeUpTriangleBlack.png: Renamed from WebCore/page/inspector/Images/treeUpTriangleBlack.png.
81171         * inspector/front-end/Images/treeUpTriangleWhite.png: Renamed from WebCore/page/inspector/Images/treeUpTriangleWhite.png.
81172         * inspector/front-end/Images/userInputIcon.png: Renamed from WebCore/page/inspector/Images/userInputIcon.png.
81173         * inspector/front-end/Images/userInputPreviousIcon.png: Renamed from WebCore/page/inspector/Images/userInputPreviousIcon.png.
81174         * inspector/front-end/Images/warningIcon.png: Renamed from WebCore/page/inspector/Images/warningIcon.png.
81175         * inspector/front-end/Images/warningMediumIcon.png: Renamed from WebCore/page/inspector/Images/warningMediumIcon.png.
81176         * inspector/front-end/Images/warningsErrors.png: Renamed from WebCore/page/inspector/Images/warningsErrors.png.
81177         * inspector/front-end/MetricsSidebarPane.js: Renamed from WebCore/page/inspector/MetricsSidebarPane.js.
81178         * inspector/front-end/Object.js: Renamed from WebCore/page/inspector/Object.js.
81179         * inspector/front-end/ObjectPropertiesSection.js: Renamed from WebCore/page/inspector/ObjectPropertiesSection.js.
81180         * inspector/front-end/Panel.js: Renamed from WebCore/page/inspector/Panel.js.
81181         * inspector/front-end/Placard.js: Renamed from WebCore/page/inspector/Placard.js.
81182         * inspector/front-end/ProfileView.js: Renamed from WebCore/page/inspector/ProfileView.js.
81183         * inspector/front-end/ProfilesPanel.js: Renamed from WebCore/page/inspector/ProfilesPanel.js.
81184         * inspector/front-end/PropertiesSection.js: Renamed from WebCore/page/inspector/PropertiesSection.js.
81185         * inspector/front-end/PropertiesSidebarPane.js: Renamed from WebCore/page/inspector/PropertiesSidebarPane.js.
81186         * inspector/front-end/Resource.js: Renamed from WebCore/page/inspector/Resource.js.
81187         * inspector/front-end/ResourceCategory.js: Renamed from WebCore/page/inspector/ResourceCategory.js.
81188         * inspector/front-end/ResourceView.js: Renamed from WebCore/page/inspector/ResourceView.js.
81189         * inspector/front-end/ResourcesPanel.js: Renamed from WebCore/page/inspector/ResourcesPanel.js.
81190         * inspector/front-end/ScopeChainSidebarPane.js: Renamed from WebCore/page/inspector/ScopeChainSidebarPane.js.
81191         * inspector/front-end/Script.js: Renamed from WebCore/page/inspector/Script.js.
81192         * inspector/front-end/ScriptView.js: Renamed from WebCore/page/inspector/ScriptView.js.
81193         * inspector/front-end/ScriptsPanel.js: Renamed from WebCore/page/inspector/ScriptsPanel.js.
81194         * inspector/front-end/SidebarPane.js: Renamed from WebCore/page/inspector/SidebarPane.js.
81195         * inspector/front-end/SidebarTreeElement.js: Renamed from WebCore/page/inspector/SidebarTreeElement.js.
81196         * inspector/front-end/SourceFrame.js: Renamed from WebCore/page/inspector/SourceFrame.js.
81197         * inspector/front-end/SourceView.js: Renamed from WebCore/page/inspector/SourceView.js.
81198         * inspector/front-end/StylesSidebarPane.js: Renamed from WebCore/page/inspector/StylesSidebarPane.js.
81199         * inspector/front-end/TextPrompt.js: Renamed from WebCore/page/inspector/TextPrompt.js.
81200         * inspector/front-end/View.js: Renamed from WebCore/page/inspector/View.js.
81201         * inspector/front-end/WebKit.qrc: Renamed from WebCore/page/inspector/WebKit.qrc.
81202         * inspector/front-end/inspector.css: Renamed from WebCore/page/inspector/inspector.css.
81203         * inspector/front-end/inspector.html: Renamed from WebCore/page/inspector/inspector.html.
81204         * inspector/front-end/inspector.js: Renamed from WebCore/page/inspector/inspector.js.
81205         * inspector/front-end/treeoutline.js: Renamed from WebCore/page/inspector/treeoutline.js.
81206         * inspector/front-end/utilities.js: Renamed from WebCore/page/inspector/utilities.js.
81207
81208 2008-10-03  Timothy Hatcher  <timothy@apple.com>
81209
81210         Adds support to the Web Inspector's Elements panel for fast tag name,
81211         class name, id and attribute name searching. The panel first tries
81212         using getElementById, getElementsByClassName and getElementsByTagName
81213         with the search query. Then does a slower search using XPath for partial
81214         matches, text and comment matches.
81215
81216         Adds support for search queries like "<div>", "<h" and "frame>".
81217         These forms limit the search to tag names, text and comment matches.
81218
81219         https://bugs.webkit.org/show_bug.cgi?id=21353
81220
81221         Reviewed by Maciej Stachowiak.
81222
81223         * page/inspector/ElementsPanel.js:
81224         (WebInspector.ElementsPanel.prototype.performSearch): Add tag syntax
81225         support. Add new search functions that try exact matches first.
81226
81227 2008-10-03  Timothy Hatcher  <timothy@apple.com>
81228
81229         Changes how searching works in the Web Inspector's Elements
81230         panel. The search tasks are divided into chunks that are small
81231         units of work that are performed at a time interval. This
81232         change also prevents queries that will select all elements,
81233         since that isn't useful.
81234
81235         https://bugs.webkit.org/show_bug.cgi?id=21285
81236
81237         Reviewed by Oliver Hunt.
81238
81239         * page/inspector/ElementsPanel.js:
81240         (WebInspector.ElementsPanel.prototype.searchCancled):
81241         Remove the searchResultsProperty form results since there might
81242         be an unfinished search.
81243         (WebInspector.ElementsPanel.prototype.performSearch): Divide the
81244         documents and search functions into chunks that are performed on
81245         a interval of 25ms. Prevent searches for "//*" and "*".
81246
81247 2008-10-03  Maciej Stachowiak  <mjs@apple.com>
81248
81249         Reviewed by Cameron Zwarich.
81250
81251         - "this" object in methods called on primitives should be wrapper object
81252         https://bugs.webkit.org/show_bug.cgi?id=21362
81253
81254         Updated so toThis conversion for the split window is handled properly.
81255
81256         * bindings/scripts/CodeGeneratorJS.pm:
81257
81258 2008-10-03  Sam Weinig  <sam@webkit.org>
81259
81260         Reviewed by David "The Motivator" Hyatt.
81261
81262         Patch for https://bugs.webkit.org/show_bug.cgi?id=21355
81263         Move SecurityOrigin out of platform/ to page/.
81264
81265         It was a layering violation for SecurityOrigin to be in platform
81266         as it depended on FrameLoader.
81267
81268         * GNUmakefile.am:
81269         * WebCore.pro:
81270         * WebCore.vcproj/WebCore.vcproj:
81271         * WebCore.xcodeproj/project.pbxproj:
81272         * WebCoreSources.bkl:
81273         * page/SecurityOrigin.cpp: Copied from platform/SecurityOrigin.cpp.
81274         * page/SecurityOrigin.h: Copied from platform/SecurityOrigin.h.
81275         * page/SecurityOriginHash.h: Copied from platform/SecurityOriginHash.h.
81276         * platform/SecurityOrigin.cpp: Removed.
81277         * platform/SecurityOrigin.h: Removed.
81278         * platform/SecurityOriginHash.h: Removed.
81279
81280 2008-10-03  Marco Barisione  <marco.barisione@collabora.co.uk>
81281
81282         Reviewed by Alp Toker.
81283
81284         http://bugs.webkit.org/show_bug.cgi?id=18832
81285         [curl] file upload does not work
81286
81287         The curl_off_t integer type has a different size depending if large
81288         file support is enabled or not. There is no different public API for
81289         the two cases, so the same function accepts a different type based on
81290         a compilation option the could be different in WebKit and libcurl.
81291         To fix the bug we query libcurl at runtime for large file support and
81292         pass the right type based on that.
81293
81294         * platform/network/curl/ResourceHandleManager.cpp:
81295         (WebCore::ResourceHandleManager::setupPOST):
81296
81297 2008-10-03  Jan Michael Alonzo  <jmalonzo@webkit.org>
81298
81299         Reviewed by David Hyatt.
81300
81301         Gtk build fixes.
81302
81303         * platform/gtk/FileChooserGtk.cpp:
81304         (WebCore::FileChooser::openFileChooser):
81305         * platform/gtk/PlatformScreenGtk.cpp:
81306         (WebCore::screenDepth):
81307         (WebCore::screenDepthPerComponent):
81308         (WebCore::screenAvailableRect):
81309         * platform/gtk/PopupMenuGtk.cpp:
81310         (WebCore::PopupMenu::show):
81311         * platform/gtk/ScrollViewGtk.cpp:
81312         (WebCore::ScrollView::platformAddChild):
81313         (WebCore::ScrollView::platformRemoveChild):
81314         * platform/gtk/WidgetGtk.cpp:
81315         (WebCore::Widget::setCursor):
81316         * plugins/gtk/PluginViewGtk.cpp:
81317         (WebCore::PluginView::getValue):
81318         (WebCore::PluginView::forceRedraw):
81319         (WebCore::PluginView::init):
81320
81321 2008-10-03  David Hyatt  <hyatt@apple.com>
81322
81323         Fix Qt bustage from missing include.
81324
81325         * platform/qt/PlatformScreenQt.cpp:
81326
81327 2008-10-03  David Hyatt  <hyatt@apple.com>
81328
81329         Fix Windows scrollbar bustage in popup menus.
81330
81331         * platform/win/PopupMenuWin.cpp:
81332         (WebCore::PopupWndProc):
81333
81334 2008-10-03  David Hyatt  <hyatt@apple.com>
81335
81336         Fix Windows bustage.
81337
81338         * platform/win/FileChooserWin.cpp:
81339         (WebCore::FileChooser::openFileChooser):
81340         * platform/win/PlatformScreenWin.cpp:
81341         (WebCore::monitorInfoForWidget):
81342         * platform/win/WidgetWin.cpp:
81343         * plugins/win/PluginViewWin.cpp:
81344         (WebCore::PluginView::getValue):
81345         (WebCore::PluginView::forceRedraw):
81346         (WebCore::PluginView::init):
81347
81348 2008-10-03  Darin Adler  <darin@apple.com>
81349
81350         * bindings/js/JSInspectedObjectWrapper.cpp: Try to fix a build failure
81351         seen on some machines but not others by adding an include.
81352
81353 2008-10-03  Darin Adler  <darin@apple.com>
81354
81355         - Qt build fix
81356
81357         * bridge/qt/qt_runtime.cpp: Remove long-obsolete codeType and
81358         execute functions. Declarations for these relied on the CodeType
81359         enumeration, which used to be in ExecState.h; but the functions
81360         aren't needed at all.
81361         * bridge/qt/qt_runtime.h: Ditto.
81362
81363 2008-10-03  Darin Adler  <darin@apple.com>
81364
81365         Reviewed by Geoff Garen.
81366
81367         - next step of https://bugs.webkit.org/show_bug.cgi?id=21295
81368           Turn ExecState into a call frame pointer.
81369
81370         Remove m_globalObject and m_globalData from ExecState.
81371
81372         * bindings/js/JSDOMWindowBase.cpp:
81373         (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
81374         Removed an argument now that JSGlobalObject doesn't need it any more.
81375         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Removed the argument from
81376         the JSDOMWindowBaseData constructor, and added the this argument to the
81377         JSGlobalObject constructor. This is because a couple key bits of
81378         initialization moved from the data constructor to the JSGlobalObject
81379         constructor.
81380         * bindings/js/JSDOMWindowBase.h: Ditto.
81381
81382         * bridge/qt/qt_runtime.cpp:
81383         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
81384         * bridge/runtime_method.cpp:
81385         (JSC::RuntimeMethod::RuntimeMethod):
81386         Pass JSGlobalData* instead of ExecState* to the InternalFunction
81387         constructor.
81388
81389 2008-10-03  David Hyatt  <hyatt@apple.com>
81390
81391         Fix Windows/Qt build bustage.
81392
81393         Reviewed by ggaren
81394
81395         * loader/EmptyClients.h:
81396         (WebCore::EmptyChromeClient::platformWindow):
81397         * page/Chrome.cpp:
81398         (WebCore::Chrome::platformWindow):
81399         * page/Chrome.h:
81400         * page/ChromeClient.h:
81401         * platform/HostWindow.h:
81402         * platform/qt/PlatformScreenQt.cpp:
81403         (WebCore::screenDepth):
81404         (WebCore::screenDepthPerComponent):
81405         (WebCore::screenIsMonochrome):
81406         (WebCore::screenRect):
81407         (WebCore::screenAvailableRect):
81408         * platform/qt/PopupMenuQt.cpp:
81409         (WebCore::PopupMenu::show):
81410         * platform/win/PopupMenuWin.cpp:
81411         (WebCore::PopupMenu::show):
81412         (WebCore::PopupMenu::calculatePositionAndSize):
81413         (WebCore::PopupWndProc):
81414
81415 2008-10-03  Simon Fraser  <simon.fraser@apple.com>
81416
81417         Reviewed by Dave Hyatt
81418
81419         Make setStyle() take a const RenderStyle, to ensure that an
81420         earlier RenderStyle::diff() remains valid.
81421
81422         * rendering/RenderBR.cpp:
81423         * rendering/RenderBR.h:
81424         * rendering/RenderBlock.cpp:
81425         * rendering/RenderBlock.h:
81426         * rendering/RenderBox.cpp:
81427         * rendering/RenderBox.h:
81428         * rendering/RenderButton.cpp:
81429         * rendering/RenderButton.h:
81430         * rendering/RenderFieldset.cpp:
81431         * rendering/RenderFieldset.h:
81432         * rendering/RenderFileUploadControl.cpp:
81433         * rendering/RenderFileUploadControl.h:
81434         * rendering/RenderInline.cpp:
81435         * rendering/RenderInline.h:
81436         * rendering/RenderListBox.cpp:
81437         * rendering/RenderListBox.h:
81438         * rendering/RenderListItem.cpp:
81439         * rendering/RenderListItem.h:
81440         * rendering/RenderListMarker.cpp:
81441         * rendering/RenderListMarker.h:
81442         * rendering/RenderMenuList.cpp:
81443         * rendering/RenderMenuList.h:
81444         * rendering/RenderObject.cpp:
81445         (WebCore::RenderObject::setStyle):
81446         * rendering/RenderObject.h:
81447         * rendering/RenderReplaced.cpp:
81448         * rendering/RenderReplaced.h:
81449         * rendering/RenderSVGBlock.cpp:
81450         (WebCore::RenderSVGBlock::setStyle):
81451         * rendering/RenderSVGBlock.h:
81452         * rendering/RenderSVGGradientStop.cpp:
81453         * rendering/RenderSVGGradientStop.h:
81454         * rendering/RenderSlider.cpp:
81455         * rendering/RenderSlider.h:
81456         * rendering/RenderTable.cpp:
81457         * rendering/RenderTable.h:
81458         * rendering/RenderTableCell.cpp:
81459         * rendering/RenderTableCell.h:
81460         * rendering/RenderTableRow.cpp:
81461         * rendering/RenderTableRow.h:
81462         * rendering/RenderText.cpp:
81463         * rendering/RenderText.h:
81464         * rendering/RenderTextControl.cpp:
81465         * rendering/RenderTextControl.h:
81466         * rendering/RenderWidget.cpp:
81467         * rendering/RenderWidget.h:
81468         * rendering/style/RenderStyle.h:
81469         (WebCore::RenderStyle::isDisplayReplacedType):
81470         (WebCore::RenderStyle::isDisplayInlineType):
81471
81472 2008-10-03  David Hyatt  <hyatt@apple.com>
81473
81474         Preparation for enabling scrollbars to hit test properly inside transforms.  Clean up the scrollbar
81475         event handlers to no longer be virtual.  Don't pass a mouse event where none is needed.  Add a new
81476         method on Scrollbars called transformEvent that will apply all of the transforms to make a new event
81477         that will work properly for hit testing.  This patch just stubs out that method to return the same
81478         event untransformed.
81479
81480         Reviewed by Darin Adler
81481
81482         * page/EventHandler.cpp:
81483         (WebCore::EventHandler::handleMouseDoubleClickEvent):
81484         (WebCore::EventHandler::handleMouseMoveEvent):
81485         (WebCore::EventHandler::handleMouseReleaseEvent):
81486         (WebCore::EventHandler::passMousePressEventToScrollbar):
81487         * page/gtk/EventHandlerGtk.cpp:
81488         * page/mac/EventHandlerMac.mm:
81489         * page/qt/EventHandlerQt.cpp:
81490         * page/win/EventHandlerWin.cpp:
81491         * page/wx/EventHandlerWx.cpp:
81492         * platform/Scrollbar.cpp:
81493         (WebCore::Scrollbar::mouseMoved):
81494         (WebCore::Scrollbar::mouseExited):
81495         (WebCore::Scrollbar::mouseUp):
81496         (WebCore::Scrollbar::mouseDown):
81497         (WebCore::Scrollbar::transformEvent):
81498         * platform/Scrollbar.h:
81499
81500 2008-10-03  David Hyatt  <hyatt@apple.com>
81501
81502         https://bugs.webkit.org/show_bug.cgi?id=21340
81503
81504         Remove "containingWindow()/setContainingWindow()" from Widget.  HostWindow covers this now.
81505
81506         Reviewed by Dan Bernstein & Darin Adler
81507
81508         * platform/ScrollView.cpp:
81509         (WebCore::ScrollView::addChild):
81510         * platform/Widget.cpp:
81511         (WebCore::Widget::init):
81512         * platform/Widget.h:
81513         * platform/mac/WidgetMac.mm:
81514         * platform/win/PopupMenuWin.cpp:
81515         (WebCore::PopupMenu::show):
81516
81517 2008-10-03  Adele Peterson  <adele@apple.com>
81518
81519         Reviewed by Sam Weinig.
81520
81521         * css/CSSFontSelector.cpp: (WebCore::fontDataForGenericFamily):
81522         Return early if settings is nil.
81523
81524 2008-10-03  Rob Buis  <buis@kde.org>
81525
81526         Reviewed by Darin.
81527
81528         https://bugs.webkit.org/show_bug.cgi?id=20134
81529         REGRESSION (2.0.4-3.0.4): No default value set for <input type=range> with an even difference of (max - min)
81530
81531         Make sure the input element gets the right default value when no value is set.
81532
81533         Test: fast/forms/range-default-value.html
81534
81535         * rendering/RenderSlider.cpp:
81536         (WebCore::RenderSlider::setPositionFromValue):
81537
81538 2008-10-03  David Hyatt  <hyatt@apple.com>
81539
81540         Instead of a cross-platform init/destroy that forces every ScrollView platform to have a constructor/
81541         destructor that calls them, switch to having a cross-platform constructor/destructor that calls
81542         platform-specific init/destroy methods.
81543
81544         With this change, ScrollViewWin.cpp can be removed from the build (yay!).
81545
81546         Reviewed by Darin Adler
81547
81548         * WebCore.vcproj/WebCore.vcproj:
81549         * platform/ScrollView.cpp:
81550         (WebCore::ScrollView::ScrollView):
81551         (WebCore::ScrollView::~ScrollView):
81552         (WebCore::ScrollView::platformInit):
81553         (WebCore::ScrollView::platformDestroy):
81554         (WebCore::ScrollView::platformAddChild):
81555         (WebCore::ScrollView::platformRemoveChild):
81556         * platform/ScrollView.h:
81557         * platform/gtk/ScrollViewGtk.cpp:
81558         (WebCore::ScrollView::platformInit):
81559         (WebCore::ScrollView::platformDestroy):
81560         * platform/mac/ScrollViewMac.mm:
81561         * platform/qt/ScrollViewQt.cpp:
81562         (WebCore::ScrollView::platformInit):
81563         (WebCore::ScrollView::platformDestroy):
81564         * platform/win/ScrollViewWin.cpp: Removed.
81565         * platform/wx/ScrollViewWx.cpp:
81566         (WebCore::ScrollView::platformInit):
81567         (WebCore::ScrollView::platformDestroy):
81568         (WebCore::ScrollView::setPlatformWidget):
81569
81570 2008-10-03  Adele Peterson  <adele@apple.com>
81571
81572         Reviewed by Dan Bernstein.
81573
81574         Fix for <rdar://problem/6012018>
81575         https://bugs.webkit.org/show_bug.cgi?id=21335
81576         CrashTracer: [USER] 4959 crashes in Safari at com.apple.WebCore: WebCore::Frame::settings const + 8
81577
81578         * css/CSSFontSelector.cpp: (WebCore::fontDataForGenericFamily): Return early if the frame is nil.
81579
81580 2008-10-03  Ariya Hidayat  <ariya.hidayat@trolltech.com>
81581
81582         Build fix.
81583
81584         * platform/qt/WidgetQt.cpp:
81585         (WebCore::Widget::invalidateRect):
81586
81587 2008-10-03  Alp Toker  <alp@nuanti.com>
81588
81589         Remove some left-over GTK+ includes. No change in functionality.
81590
81591         * platform/Cursor.h:
81592         * platform/graphics/Icon.h:
81593         * platform/gtk/RenderThemeGtk.h:
81594
81595 2008-10-03  Alp Toker  <alp@nuanti.com>
81596
81597         Build fix for trailing comment after #endif
81598
81599         * dom/ElementRareData.h:
81600
81601 2008-10-03  David Hyatt  <hyatt@apple.com>
81602
81603         Remove addToDirtyRegion.
81604
81605         Reviewed by Oliver Hunt
81606
81607         * page/Chrome.cpp:
81608         * page/Chrome.h:
81609         * page/ChromeClient.h:
81610         * platform/ScrollView.h:
81611         * platform/gtk/ScrollViewGtk.cpp:
81612         * platform/qt/ScrollViewQt.cpp:
81613         * platform/win/ScrollViewWin.cpp:
81614
81615 2008-10-03  Dan Bernstein  <mitz@apple.com>
81616
81617         Reviewed by Maciej Stachowiak.
81618
81619         - fix a CachedResource leak introduced in r37176
81620
81621         Undo r37176 and instead allow pruneDeadResources() to be re-entered, but
81622         afterwards bail out of the outer pruneDeadResources().
81623
81624         * loader/Cache.cpp:
81625         (WebCore::Cache::Cache):
81626         (WebCore::Cache::pruneDeadResources):
81627         (WebCore::Cache::remove):
81628         * loader/Cache.h:
81629
81630 2008-10-03  David Hyatt  <hyatt@apple.com>
81631
81632         https://bugs.webkit.org/show_bug.cgi?id=21330
81633
81634         Fix Gtk adjustments so that they are properly checked again before creating horizontal/vertical
81635         scrollbars.
81636
81637         Reviewed by Oliver Hunt
81638
81639         * platform/ScrollView.cpp:
81640         (WebCore::ScrollView::setHasHorizontalScrollbar):
81641         (WebCore::ScrollView::setHasVerticalScrollbar):
81642         (WebCore::ScrollView::platformHasHorizontalAdjustment):
81643         (WebCore::ScrollView::platformHasVerticalAdjustment):
81644         * platform/ScrollView.h:
81645         * platform/gtk/ScrollViewGtk.cpp:
81646         (WebCore::ScrollView::adjustmentChanged):
81647         (WebCore::ScrollView::ScrollView):
81648         (WebCore::ScrollView::~ScrollView):
81649         (WebCore::ScrollView::setGtkAdjustments):
81650         (WebCore::ScrollView::platformHandleHorizontalAdjustment):
81651         (WebCore::ScrollView::platformHandleVerticalAdjustment):
81652
81653 2008-10-03  Julien Chaffraix  <jchaffraix@webkit.org>
81654
81655         Reviewed by Maciej Stachowiak.
81656
81657         Bug 21106: .in format discussed changes
81658         https://bugs.webkit.org/show_bug.cgi?id=21106
81659
81660         Change "upperCase" to "interfaceName" per-tag parameter as
81661         discussed on the mailing list. Removed the per-attribute version
81662         as it was not used.
81663
81664         Also add the "Element" suffix to all interfaceName parameter to match
81665         the class name (and thus remove it from make_names.pl).
81666
81667         * dom/make_names.pl:
81668         * html/HTMLTagNames.in:
81669         * svg/svgtags.in:
81670
81671 2008-10-03  David Hyatt  <hyatt@apple.com>
81672
81673         Preserve Qt's disabling of blitting when any native widgets are present anywhere on the page (ick).
81674         Hopefully this is a temporary hack that could eventually be removed.
81675
81676         Reviewed by Sam Weinig
81677
81678         * platform/ScrollView.cpp:
81679         (WebCore::ScrollView::scrollContents):
81680         * platform/ScrollView.h:
81681         (WebCore::ScrollView::rootPreventsBlitting):
81682         * platform/qt/ScrollViewQt.cpp:
81683         (WebCore::ScrollView::ScrollView):
81684         (WebCore::ScrollView::~ScrollView):
81685         (WebCore::ScrollView::platformAddChild):
81686         (WebCore::ScrollView::platformRemoveChild):
81687
81688 2008-10-02  David Hyatt  <hyatt@apple.com>
81689
81690         https://bugs.webkit.org/show_bug.cgi?id=21328
81691
81692         Make widget invalidation more cross-platform.
81693
81694         (1) Make invalidateRect a pure virtual function on Widget.  All leaf widgets must now implement this function.
81695
81696         (2) Scrollbars now send invalidations through the ScrollbarClient.  windowClipRect on ScrollbarClient has been removed and replaced with this invalidation call.
81697         This allows all scrollbar invalidations to go through the render tree so that transforms and reflections will be respected.
81698
81699         (3) Plugins now have the native window invalidation code for windowed plugins.  Windowless plugins do a repaintRectangle on the plugin's renderer.
81700
81701         (4) FrameViews now do a repaintRectangle on their owner element's renderer.
81702
81703         Reviewed by Sam Weinig
81704
81705         * WebCore.base.exp:
81706         * page/FrameView.cpp:
81707         (WebCore::FrameView::invalidateRect):
81708         (WebCore::FrameView::invalidateScrollbarRect):
81709         * page/FrameView.h:
81710         * platform/PopupMenu.h:
81711         * platform/ScrollView.cpp:
81712         (WebCore::ScrollView::scrollContents):
81713         * platform/ScrollView.h:
81714         * platform/Scrollbar.cpp:
81715         (WebCore::Scrollbar::setEnabled):
81716         (WebCore::Scrollbar::invalidateRect):
81717         * platform/Scrollbar.h:
81718         * platform/ScrollbarClient.h:
81719         * platform/Widget.h:
81720         * platform/gtk/WidgetGtk.cpp:
81721         * platform/mac/WidgetMac.mm:
81722         * platform/win/PopupMenuWin.cpp:
81723         (WebCore::PopupMenu::invalidateScrollbarRect):
81724         * platform/win/WidgetWin.cpp:
81725         * plugins/PluginView.cpp:
81726         (WebCore::PluginView::invalidateTimerFired):
81727         (WebCore::PluginView::invalidateWindowlessPluginRect):
81728         * plugins/PluginView.h:
81729         * plugins/gtk/PluginViewGtk.cpp:
81730         (WebCore::PluginView::invalidateRect):
81731         * plugins/qt/PluginViewQt.cpp:
81732         (WebCore::PluginView::invalidateRect):
81733         * plugins/win/PluginViewWin.cpp:
81734         (WebCore::PluginView::invalidateRect):
81735         (WebCore::PluginView::invalidateRegion):
81736         * rendering/RenderLayer.cpp:
81737         (WebCore::RenderLayer::invalidateScrollbarRect):
81738         * rendering/RenderLayer.h:
81739         * rendering/RenderListBox.cpp:
81740         (WebCore::RenderListBox::paintObject):
81741         (WebCore::RenderListBox::paintScrollbar):
81742         (WebCore::RenderListBox::invalidateScrollbarRect):
81743         * rendering/RenderListBox.h:
81744
81745 2008-10-02  Dan Bernstein  <mitz@apple.com>
81746
81747         Reviewed by Geoffrey Garen and Sam Weinig.
81748
81749         - fix SVGFontFaceElement leaks seen in Acid3
81750         - make font-face elements take effect only when they are in the document tree
81751
81752         Test: svg/custom/font-face-not-in-document.svg
81753
81754         * svg/SVGFontData.h: Changed the m_svgFontFaceElement member from a
81755         RefPtr to a plain pointer to break a ref cycle.
81756         (WebCore::SVGFontData::svgFontFaceElement):
81757
81758         * svg/SVGFontFaceElement.cpp: Changed to insert and remove the
81759         @font-face rule from the document's mapped element sheet when the
81760         element is inserted and removed from the document, and to update it
81761         only when the element is in the document.
81762         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
81763         (WebCore::SVGFontFaceElement::parseMappedAttribute):
81764         (WebCore::SVGFontFaceElement::rebuildFontFace):
81765         (WebCore::SVGFontFaceElement::insertedIntoDocument):
81766         (WebCore::SVGFontFaceElement::removedFromDocument):
81767         (WebCore::SVGFontFaceElement::childrenChanged):
81768         (WebCore::SVGFontFaceElement::removeFromMappedElementSheet):
81769         * svg/SVGFontFaceElement.h:
81770
81771 2008-10-01  Simon Fraser  <simon.fraser@apple.com>
81772
81773         Reviewed by Dave Hyatt
81774
81775         Fix RenderFileUploadControl::setStyle() and
81776         RenderMenuList::setStyle() to not touch the style; replace
81777         with html4.css and CSSStyleSelector changes.
81778
81779         https://bugs.webkit.org/show_bug.cgi?id=21287
81780
81781         * css/CSSStyleSelector.cpp:
81782         (WebCore::CSSStyleSelector::adjustRenderStyle):
81783         * css/html4.css:
81784         * rendering/RenderBlock.cpp:
81785         (WebCore::RenderBlock::setStyle):
81786         * rendering/RenderFileUploadControl.cpp:
81787         * rendering/RenderMenuList.cpp:
81788         (WebCore::RenderMenuList::setStyle):
81789
81790 2008-10-01  Simon Fraser  <simon.fraser@apple.com>
81791
81792         Reviewed by Dave Hyatt
81793
81794         Clean up code that changes the RenderStyle passed in to
81795         table renderer setStyle() methods.
81796
81797         https://bugs.webkit.org/show_bug.cgi?id=21287
81798
81799         Tests: fast/table/floating-th.html
81800                fast/table/table-display-types-strict.html
81801                fast/table/table-display-types.html
81802
81803         * css/CSSStyleSelector.cpp:
81804         (WebCore::CSSStyleSelector::adjustRenderStyle):
81805         * rendering/RenderTableCell.cpp:
81806         (WebCore::RenderTableCell::setStyle):
81807         * rendering/RenderTableRow.cpp:
81808         (WebCore::RenderTableRow::setStyle):
81809         * rendering/RenderTableSection.cpp:
81810         (WebCore::RenderTableSection::setStyle):
81811
81812 2008-10-02  Darin Adler  <darin@apple.com>
81813
81814         - fix build
81815
81816         * bindings/scripts/CodeGeneratorJS.pm: Need to replace the -> with a . here too.
81817         Not just locally in my generated file!
81818
81819 2008-10-02  Adele Peterson  <adele@apple.com>
81820
81821         Reviewed by Dan Bernstein.
81822
81823         Fix for https://bugs.webkit.org/show_bug.cgi?id=21299
81824         REGRESSION: <input> color specified in inline style applies to placeholder
81825
81826         I recently added a pseudo-class for the placeholder, but that can be overridden by inline style changes.  A pseudo-element
81827         is more appropriate.  This change adds "-webkit-input-placeholder".
81828
81829         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType):
81830         Added definition for "-webkit-input-placeholder" pseudo element.
81831         * css/CSSSelector.h: (WebCore::CSSSelector::): Added PseudoInputPlaceholder.
81832         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
81833         Added case for PseudoInputPlaceholder.
81834         * css/html4.css: Added rule for -webkit-input-placeholder pseudo-element.
81835         * rendering/style/RenderStyle.h: (WebCore::RenderStyle::): Added INPUT_PLACEHOLDER.
81836
81837         * html/HTMLInputElement.cpp:
81838         (WebCore::HTMLInputElement::setValue): Check that its a text field before calling updatePlaceholderVisibility.
81839         (WebCore::HTMLInputElement::setValueFromRenderer): ditto.
81840         (WebCore::HTMLInputElement::updatePlaceholderVisibility): Instead of calling setChanged(), call updatePlaceholderVisibility on the renderer.
81841         setChanged wouldn't actually trigger setStyle since the style for the input element won't actually change.
81842         * rendering/RenderTextControl.cpp:
81843         (WebCore::RenderTextControl::createInnerTextStyle): Get the pseudoStyle when the placeholder is visible.
81844         (WebCore::RenderTextControl::updatePlaceholderVisibility): Sets the style on the inner text block, and calls updateFromElement so
81845         the text will be updated correctly.
81846         * rendering/RenderTextControl.h:
81847
81848 2008-10-02  Chris Fleizach  <cfleizach@apple.com>
81849
81850         Reviewed by Darin Adler.
81851
81852         https://bugs.webkit.org/show_bug.cgi?id=21280
81853         <rdar://problem/6227690> There are a bunch of tables on this page that don't seem to be real tables
81854
81855         Updated AXTable detection to be more robust to false-positives. Specifically, added checks
81856         to ensure that there is more than one valid table cell, and that at least half of the cells
81857         have borders or have specific background colors. Modified the table detection layout test
81858         to test for the tables mentioned in the bug
81859
81860         * page/AccessibilityTable.cpp:
81861         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
81862
81863 2008-10-02  Darin Adler  <darin@apple.com>
81864
81865         Reviewed by Geoff Garen.
81866
81867         - https://bugs.webkit.org/show_bug.cgi?id=21321
81868           Bug 21321: speed up JavaScriptCore by inlining Heap in JSGlobalData
81869
81870         * bindings/js/GCController.cpp:
81871         (WebCore::collect): Use heap. instead of heap-> to work with the heap.
81872         (WebCore::GCController::gcTimerFired): Ditto.
81873         (WebCore::GCController::garbageCollectNow): Ditto.
81874         * bindings/js/JSDOMWindowShell.cpp:
81875         (WebCore::JSDOMWindowShell::operator new): Ditto.
81876         * storage/Database.cpp:
81877         (WebCore::Database::Database): Ditto.
81878
81879 2008-10-02  Dan Bernstein  <mitz@apple.com>
81880
81881         Reviewed by Alexey Proskuryakov.
81882
81883         - fix a Database leak that resulted in Document leaks
81884
81885         * storage/Database.cpp:
81886         (WebCore::Database::openDatabase): Account for the fact that RefCounted
81887         objects start out with a ref count of 1.
81888
81889 2008-10-02  Sam Weinig  <sam@webkit.org>
81890
81891         Reviewed by Mr. Geoffrey Garen.
81892
81893         Always mark your parent before marking members.
81894
81895         * bindings/js/JSDOMWindowCustom.cpp:
81896         (WebCore::JSDOMWindow::mark):
81897
81898 2008-10-02  David Hyatt  <hyatt@apple.com>
81899
81900         https://bugs.webkit.org/show_bug.cgi?id=21314
81901
81902         Make scrollBackingStore cross-platform.
81903
81904         Reviewed by Sam Weinig
81905
81906         * loader/EmptyClients.h:
81907         (WebCore::EmptyChromeClient::repaint):
81908         (WebCore::EmptyChromeClient::scroll):
81909         * page/Chrome.cpp:
81910         (WebCore::Chrome::repaint):
81911         (WebCore::Chrome::scroll):
81912         * page/Chrome.h:
81913         * page/ChromeClient.h:
81914         * page/EventHandler.cpp:
81915         (WebCore::EventHandler::handleAutoscroll):
81916         * platform/HostWindow.h:
81917         * platform/ScrollView.cpp:
81918         (WebCore::ScrollView::scrollContents):
81919         (WebCore::ScrollView::addPanScrollIcon):
81920         (WebCore::ScrollView::removePanScrollIcon):
81921         * platform/ScrollView.h:
81922         * platform/gtk/ScrollViewGtk.cpp:
81923         * platform/qt/ScrollViewQt.cpp:
81924         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
81925         (WebCore::ScrollView::~ScrollView):
81926         * platform/win/ScrollViewWin.cpp:
81927         (WebCore::ScrollView::ScrollView):
81928         (WebCore::ScrollView::~ScrollView):
81929
81930 2008-10-02  Kevin Ollivier  <kevino@theolliviers.com>
81931
81932         wx build fixes after Frame/ScrollView changes.
81933
81934         * WebCoreSources.bkl:
81935         * platform/wx/ScrollViewWx.cpp:
81936         (WebCore::ScrollView::platformContentsToScreen):
81937         (WebCore::ScrollView::platformScreenToContents):
81938         (WebCore::ScrollView::platformIsOffscreen):
81939
81940 2008-10-02  Brett Wilson  <brettw@chromium.org>
81941
81942         Reviewed by Sam Weinig
81943
81944         https://bugs.webkit.org/show_bug.cgi?id=21292
81945
81946         Revert the changes to enclosingIntRect made in r12530 since the new code
81947         doesn't round correctly.
81948
81949         * ChangeLog:
81950         * platform/graphics/FloatRect.cpp:
81951         (WebCore::enclosingIntRect):
81952
81953 2008-10-02  Dan Bernstein  <mitz@apple.com>
81954
81955         Reviewed by Anders Carlsson and Eric Seidel.
81956
81957         - fix HTMLCanvaseElement leak from -webkit-canvas() values
81958
81959         Changed the m_element member of CSSCanvasValue from a RefPtr to a plain
81960         pointer, as the document owns the canvas elements. Added code to release
81961         those elements in Document::removedLastRef() because they reference
81962         the document.
81963
81964         * css/CSSCanvasValue.cpp:
81965         (WebCore::CSSCanvasValue::element):
81966         * css/CSSCanvasValue.h:
81967         (WebCore::CSSCanvasValue::CSSCanvasValue):
81968         * dom/Document.cpp:
81969         (WebCore::Document::removedLastRef):
81970
81971 2008-10-02  Alexey Proskuryakov  <ap@webkit.org>
81972
81973         Reviewed by Maciej Stachowiak.
81974
81975         Build fix for platforms that don't implement WTF::ThreadSpecific.
81976
81977         * bindings/js/JSDOMBinding.cpp: (WebCore::wrapperSet):
81978         Guard ThreadSpecific use with #if ENABLE(WORKERS). No platform defines this yet, but this
81979         code is only needed for JS bindings in worker threads.
81980
81981 2008-10-01  David Hyatt  <hyatt@apple.com>
81982
81983         https://bugs.webkit.org/show_bug.cgi?id=21298
81984
81985         Make updateScrollbars cross-platform.  For now a stubbed out scrollContents function is invoked to do the scrolling of the backing store.  Next patch
81986         will make that cross-platform.
81987
81988         The ScrollView now implements ScrollbarClient, which means that there was a clash of windowClipRect methods from the
81989         multiple inheritance.  For now I solved this by adding a Scrollbar* to the ScrollbarClient version of the method, but longer term
81990         windowClipRect is going to be removed from ScrollbarClient (when Widget invalidation gets rewritten).
81991
81992         Reviewed by Sam Weinig
81993
81994         * page/FrameView.cpp:
81995         (WebCore::FrameView::windowClipRect):
81996         (WebCore::FrameView::isActive):
81997         * page/FrameView.h:
81998         (WebCore::FrameView::visibleContentsResized):
81999         * platform/PopupMenu.h:
82000         * platform/ScrollView.cpp:
82001         (WebCore::ScrollView::init):
82002         (WebCore::ScrollView::destroy):
82003         (WebCore::ScrollView::setHasHorizontalScrollbar):
82004         (WebCore::ScrollView::setHasVerticalScrollbar):
82005         (WebCore::ScrollView::valueChanged):
82006         (WebCore::ScrollView::updateScrollbars):
82007         (WebCore::ScrollView::scrollContents):
82008         (WebCore::ScrollView::platformHandleHorizontalAdjustment):
82009         (WebCore::ScrollView::platformHandleVerticalAdjustment):
82010         * platform/ScrollView.h:
82011         * platform/Scrollbar.cpp:
82012         (WebCore::Scrollbar::windowClipRect):
82013         * platform/ScrollbarClient.h:
82014         * platform/gtk/ScrollViewGtk.cpp:
82015         (WebCore::ScrollView::platformHandleHorizontalAdjustment):
82016         (WebCore::ScrollView::platformHandleVerticalAdjustment):
82017         * platform/qt/ScrollViewQt.cpp:
82018         (WebCore::ScrollView::scrollContents):
82019         * platform/win/PopupMenuWin.cpp:
82020         (WebCore::PopupMenu::windowClipRect):
82021         * platform/win/ScrollViewWin.cpp:
82022         (WebCore::ScrollView::scrollContents):
82023         * rendering/RenderLayer.cpp:
82024         (WebCore::RenderLayer::windowClipRect):
82025         * rendering/RenderLayer.h:
82026         * rendering/RenderListBox.cpp:
82027         (WebCore::RenderListBox::panScroll):
82028         (WebCore::RenderListBox::windowClipRect):
82029         * rendering/RenderListBox.h:
82030
82031 2008-10-02  Alexey Proskuryakov  <ap@webkit.org>
82032
82033         Reviewed by Darin Adler.
82034
82035         https://bugs.webkit.org/show_bug.cgi?id=21304
82036         Stop using a static wrapper map for WebCore JS bindings
82037
82038         The static domObjects map was not thread safe.
82039
82040         * dom/Document.h:
82041         (WebCore::Document::messagePorts): Added an accessor for JSDocument to iterate over message
82042         ports.
82043         (WebCore::Document::xmlHttpRequests): Ditto for XMLHttpRequests.
82044
82045         * dom/Document.cpp:
82046         (WebCore::Document::createdXMLHttpRequest):
82047         (WebCore::Document::destroyedXMLHttpRequest):
82048         Moved XMLHttpRequest tracking from a global map to Document.
82049
82050         * GNUmakefile.am:
82051         * WebCore.pro:
82052         * WebCore.vcproj/WebCore.vcproj:
82053         * WebCore.xcodeproj/project.pbxproj:
82054         * WebCoreSources.bkl:
82055         * webcore-base.bkl:
82056         * bindings/DOMProtect.cpp: Removed.
82057         * bindings/DOMProtect.h: Removed.
82058         Removed gcProtect(Unprotect)DOMObject - its callers do not have a JSGlobalData reference,
82059         so they can no longer protect bindings objects.
82060
82061         * dom/MessagePort.cpp:
82062         (WebCore::CloseMessagePortTimer::CloseMessagePortTimer):
82063         (WebCore::CloseMessagePortTimer::fired):
82064         (WebCore::MessagePort::MessagePort):
82065         (WebCore::MessagePort::queueCloseEvent):
82066         (WebCore::MessagePort::setPendingActivity):
82067         (WebCore::MessagePort::unsetPendingActivity):
82068         * dom/MessagePort.h:
82069         (WebCore::MessagePort::hasPendingActivity):
82070         MessagePort now counts outstanding async events, so JSDocument::mark can decide whether
82071         to protect it.
82072
82073         * xml/XMLHttpRequest.h:
82074         (WebCore::XMLHttpRequest::hasPendingActivity):
82075         * xml/XMLHttpRequest.cpp:
82076         (WebCore::XMLHttpRequest::XMLHttpRequest):
82077         (WebCore::XMLHttpRequest::~XMLHttpRequest):
82078         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
82079         (WebCore::XMLHttpRequest::dropProtection):
82080         (WebCore::XMLHttpRequest::didFinishLoadingPreflight):
82081         (WebCore::XMLHttpRequest::cancelRequests):
82082         (WebCore::XMLHttpRequest::detachRequests):
82083         (WebCore::XMLHttpRequest::setPendingActivity):
82084         (WebCore::XMLHttpRequest::unsetPendingActivity):
82085         Moved XMLHttpRequest tracking from a global map to Document.
82086
82087         * bindings/js/JSDOMBinding.cpp:
82088         (WebCore::wrapperSet):
82089         (WebCore::DOMObjectWrapperMap::mapFor):
82090         (WebCore::DOMObjectWrapperMap::get):
82091         (WebCore::DOMObjectWrapperMap::set):
82092         (WebCore::DOMObjectWrapperMap::remove):
82093         (WebCore::getCachedDOMObjectWrapper):
82094         (WebCore::cacheDOMObjectWrapper):
82095         (WebCore::forgetDOMObject):
82096         (WebCore::getCachedDOMNodeWrapper):
82097         (WebCore::forgetDOMNode):
82098         (WebCore::cacheDOMNodeWrapper):
82099         (WebCore::markActiveObjectsForDocument):
82100         * bindings/js/JSDOMBinding.h:
82101         (WebCore::createDOMObjectWrapper):
82102         (WebCore::getDOMObjectWrapper):
82103         Wrapper map is now kept as JSGlobalData::clientData. Also changed debug-only wrapperSet
82104         to be per-thread (this is slower than going to JSGlobalData, but fast enough for debug).
82105         WebCore objects can never migrate between threads.
82106
82107         * bindings/js/JSDocumentCustom.cpp:
82108         (WebCore::JSDocument::mark):
82109         Call markActiveObjectsForDocument() from JSDOMBinding.
82110
82111         * bindings/js/JSCSSRuleCustom.cpp:
82112         (WebCore::toJS):
82113         * bindings/js/JSCSSValueCustom.cpp:
82114         (WebCore::toJS):
82115         * bindings/js/JSDOMWindowCustom.cpp:
82116         (WebCore::markDOMObjectWrapper):
82117         (WebCore::JSDOMWindow::mark):
82118         * bindings/js/JSEventCustom.cpp:
82119         (WebCore::toJS):
82120         * bindings/js/JSEventTarget.cpp:
82121         (WebCore::toJS):
82122         * bindings/js/JSHTMLCollectionCustom.cpp:
82123         (WebCore::toJS):
82124         * bindings/js/JSImageDataCustom.cpp:
82125         (WebCore::toJS):
82126         * bindings/js/JSMessageChannelCustom.cpp:
82127         (WebCore::JSMessageChannel::mark):
82128         * bindings/js/JSMessagePortCustom.cpp:
82129         (WebCore::JSMessagePort::mark):
82130         * bindings/js/JSNodeCustom.cpp:
82131         (WebCore::JSNode::mark):
82132         * bindings/js/JSSVGPathSegCustom.cpp:
82133         (WebCore::toJS):
82134         * bindings/js/JSStyleSheetCustom.cpp:
82135         (WebCore::toJS):
82136         * bindings/js/JSXMLHttpRequestCustom.cpp:
82137         (WebCore::JSXMLHttpRequest::mark):
82138         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
82139         (WebCore::JSXMLHttpRequestUpload::mark):
82140         * bindings/js/ScriptController.cpp:
82141         (WebCore::ScriptController::finishedWithEvent):
82142         * bindings/scripts/CodeGeneratorJS.pm:
82143         Pass a JSGlobalData reference to functions that track JS wrapper objects.
82144
82145 2008-10-02  Dan Bernstein  <mitz@apple.com>
82146
82147         - build fix
82148
82149         * page/JavaScriptCallFrame.idl:
82150
82151 2008-10-02  Oliver Hunt  <oliver@apple.com>
82152
82153         Reviewed by NOBODY (Build fix).
82154
82155         Add new file to project files
82156
82157         * GNUmakefile.am:
82158         * WebCore.pro:
82159         * WebCore.vcproj/WebCore.vcproj:
82160
82161 2008-10-02  Geoffrey Garen  <ggaren@apple.com>
82162
82163         Not reviewed.
82164
82165         Try to fix some more builds.
82166
82167         * GNUmakefile.am:
82168         * WebCore.pro:
82169
82170 2008-10-02  Geoffrey Garen  <ggaren@apple.com>
82171
82172         Not reviewed.
82173
82174         Try to fix Windows build.
82175
82176         * WebCore.vcproj/WebCore.vcproj:
82177
82178 2008-10-01  Geoffrey Garen  <ggaren@apple.com>
82179
82180         Reviewed by Darin Adler and Cameron Zwarich.
82181
82182         Updated for JavaScriptCore API changes: use a SourceCode instead of
82183         broken out parameters; treat sourceId as intptr_t.
82184
82185         * ForwardingHeaders/kjs/SourceRange.h: Copied from ForwardingHeaders/kjs/SourceProvider.h.
82186         * bindings/js/JSXMLHttpRequestCustom.cpp:
82187         (WebCore::JSXMLHttpRequest::send):
82188         * bindings/js/ScriptController.cpp:
82189         (WebCore::ScriptController::evaluate):
82190         * bindings/js/StringSourceProvider.h:
82191         (WebCore::StringSourceProvider::create):
82192         (WebCore::StringSourceProvider::StringSourceProvider):
82193
82194         (WebCore::makeSource): Added a makeSource function for convenience.
82195
82196         * bindings/objc/WebScriptObject.mm:
82197         (-[WebScriptObject evaluateWebScript:]):
82198         * bridge/NP_jsobject.cpp:
82199         (_NPN_Evaluate):
82200         * bridge/jni/jni_jsobject.mm:
82201         (JavaJSObject::call):
82202         (JavaJSObject::eval):
82203         (JavaJSObject::getMember):
82204         (JavaJSObject::setMember):
82205         (JavaJSObject::removeMember):
82206
82207         * bridge/jni/jni_runtime.h:
82208         (JSC::Bindings::JavaString::operator UString): Replaced the explicit
82209         ustring() function with an implicit operator because this class already
82210         holds a UString::rep.
82211
82212         * page/Console.cpp:
82213         (WebCore::retrieveLastCaller):
82214         (WebCore::Console::trace):
82215         * page/InspectorController.cpp:
82216         (WebCore::jsStringRef):
82217         (WebCore::InspectorController::addBreakpoint):
82218         (WebCore::InspectorController::removeBreakpoint):
82219         (WebCore::InspectorController::didParseSource):
82220         (WebCore::InspectorController::failedToParseSource):
82221         * page/InspectorController.h:
82222         * page/JavaScriptCallFrame.cpp:
82223         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
82224         * page/JavaScriptCallFrame.h:
82225         (WebCore::JavaScriptCallFrame::create):
82226         (WebCore::JavaScriptCallFrame::sourceIdentifier):
82227         (WebCore::JavaScriptCallFrame::update):
82228         * page/JavaScriptDebugListener.h:
82229         * page/JavaScriptDebugServer.cpp:
82230         (WebCore::JavaScriptDebugServer::addBreakpoint):
82231         (WebCore::JavaScriptDebugServer::removeBreakpoint):
82232         (WebCore::JavaScriptDebugServer::hasBreakpoint):
82233         (WebCore::dispatchDidParseSource):
82234         (WebCore::dispatchFailedToParseSource):
82235         (WebCore::JavaScriptDebugServer::sourceParsed):
82236         (WebCore::JavaScriptDebugServer::callEvent):
82237         (WebCore::JavaScriptDebugServer::atStatement):
82238         (WebCore::JavaScriptDebugServer::returnEvent):
82239         (WebCore::JavaScriptDebugServer::exception):
82240         (WebCore::JavaScriptDebugServer::willExecuteProgram):
82241         (WebCore::JavaScriptDebugServer::didExecuteProgram):
82242         (WebCore::JavaScriptDebugServer::didReachBreakpoint):
82243         * page/JavaScriptDebugServer.h:
82244         * page/inspector/ScriptsPanel.js: Renamed internal uses of sourceId and
82245         sourceIdentifier to sourceID.
82246
82247 2008-10-01  Dan Bernstein  <mitz@apple.com>
82248
82249         Reviewed by Geoffrey Garen.
82250
82251         - fix SVGFontFaceElement leak seen on svg/custom/acid3-test-77.html
82252
82253         Broke a ref cycle by changing the m_svgFontFaceElement members of
82254         CSSFontFaceSource and CSSFontFaceSrcValue from RefPtrs to plain
82255         pointers. Also made sure that the @font-face rule added by
82256         SVGFontFaceElement to the document's mapped element sheet is removed
82257         when the font-face element is deleted or moved to another document.
82258
82259         * css/CSSFontFaceSource.cpp:
82260         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
82261         (WebCore::CSSFontFaceSource::getFontData):
82262         * css/CSSFontFaceSource.h:
82263         (WebCore::CSSFontFaceSource::svgFontFaceElement):
82264         * css/CSSFontFaceSrcValue.h:
82265         (WebCore::CSSFontFaceSrcValue::svgFontFaceElement):
82266         (WebCore::CSSFontFaceSrcValue::CSSFontFaceSrcValue):
82267         * svg/SVGFontFaceElement.cpp:
82268         (WebCore::SVGFontFaceElement::~SVGFontFaceElement):
82269         (WebCore::SVGFontFaceElement::willMoveToNewOwnerDocument):
82270         (WebCore::SVGFontFaceElement::didMoveToNewOwnerDocument):
82271         (WebCore::SVGFontFaceElement::removeFromMappedElementSheet):
82272         * svg/SVGFontFaceElement.h:
82273
82274 2008-10-01  Oliver Hunt  <oliver@apple.com>
82275
82276         Reviewed by Maciej Stachowiak.
82277
82278         Bug 20315: Memory leak with Canvas getImageData
82279         <https://bugs.webkit.org/show_bug.cgi?id=20315>
82280
82281         This wasn't a leak, the issue was that we were reporting the cost
82282         of the CanvasPixelArray when creating the JSCanvasPixelArray wrapper
82283         and we should have been reporting the cost when we create the
82284         JSImageData wrapper.
82285
82286         * WebCore.xcodeproj/project.pbxproj:
82287         * bindings/js/JSCanvasPixelArrayCustom.cpp: Removed.
82288           This was only needed to report the extra memory cost
82289           of the CPA.
82290         * bindings/js/JSImageDataCustom.cpp:
82291         (WebCore::toJS):
82292           We need a custom toJS function now so that we can report
82293           the extra memory cost.
82294         * bindings/scripts/CodeGeneratorJS.pm:
82295           Need to replace the reference to CanvasPixelArray with ImageData
82296           to be able to create the custom toJS implementation.
82297         * html/CanvasPixelArray.idl:
82298         * html/ImageData.idl:
82299
82300 2008-10-01  Dan Bernstein  <mitz@apple.com>
82301
82302         Reviewed by Mark Rowe.
82303
82304         - https://bugs.webkit.org/show_bug.cgi?id=21293
82305           REGRESSION: Crash beneath RenderSVGViewportContainer::viewportTransform() during SVGSVGElement destruction
82306
82307         * svg/SVGMarkerElement.cpp:
82308         (WebCore::SVGMarkerElement::~SVGMarkerElement): Call detach() here so
82309         that renderer destruction happens before the SVGMarkerElement is
82310         destroyed.
82311         * svg/SVGSVGElement.cpp:
82312         (WebCore::SVGSVGElement::~SVGSVGElement): Ditto for SVGSVGElement.
82313
82314 2008-10-01  Evan Martin  <evan@chromium.org>
82315
82316         Reviewed by Eric Seidel.
82317
82318         https://bugs.webkit.org/show_bug.cgi?id=20669
82319
82320         * css/makeprop.pl:
82321         Die if gperf fails.
82322
82323 2008-10-01  Evan Martin  <evan@chromium.org>
82324
82325         Reviewed by Eric Seidel.
82326
82327         * loader/icon/IconDatabase.h:
82328         IconDatabase uses HashMap, so it needs to #include the header.
82329
82330 2008-10-01  Dan Bernstein  <mitz@apple.com>
82331
82332         Reviewed by Mark Rowe.
82333
82334         - fix an assertion failure in http/tests/security/canvas-remote-read-svg-image.html due to re-entry into Cache::pruneDeadResources()
82335
82336         * loader/Cache.cpp:
82337         (WebCore::Cache::remove): Disable pruning temporarily during
82338         CachedResource deletion.
82339
82340 2008-10-01  Dan Bernstein  <mitz@apple.com>
82341
82342         Reviewed by Mark Rowe.
82343
82344         - fix SVGFontElement leaks seen on buildbot by breaking a ref cycle
82345
82346         * svg/SVGFontFaceElement.cpp:
82347         (WebCore::SVGFontFaceElement::rebuildFontFace):
82348         * svg/SVGFontFaceElement.h:
82349         (WebCore::SVGFontFaceElement::associatedFontElement):
82350
82351 2008-10-01  Brett Wilson  <brettw@chromium.org>
82352
82353         Reviewed by Maciej Stachowiak.
82354
82355         Document the rounding behavior of the mapRect(IntRect) function in
82356         AffineTransform.h.
82357
82358         * platform/graphics/AffineTransform.h:
82359
82360 2008-10-01  David Hyatt  <hyatt@apple.com>
82361
82362         Move prohibitsScrolling from the Frame to the ScrollView.
82363
82364         Reviewed by Sam Weinig
82365
82366         * WebCore.base.exp:
82367         * page/Frame.cpp:
82368         (WebCore::FramePrivate::FramePrivate):
82369         * page/Frame.h:
82370         * page/FramePrivate.h:
82371         * page/FrameView.cpp:
82372         (WebCore::FrameView::scrollRectIntoViewRecursively):
82373         (WebCore::FrameView::setScrollPosition):
82374         * platform/ScrollView.cpp:
82375         (WebCore::ScrollView::init):
82376         (WebCore::ScrollView::scrollRectIntoViewRecursively):
82377         (WebCore::ScrollView::setScrollPosition):
82378         * platform/ScrollView.h:
82379         (WebCore::ScrollView::setProhibitsScrolling):
82380         (WebCore::ScrollView::prohibitsScrolling):
82381         * platform/gtk/ScrollViewGtk.cpp:
82382         (WebCore::ScrollView::updateScrollbars):
82383         * platform/qt/ScrollViewQt.cpp:
82384         (WebCore::ScrollView::updateScrollbars):
82385         * platform/win/ScrollViewWin.cpp:
82386         (WebCore::ScrollView::updateScrollbars):
82387
82388 2008-10-01  Mark Rowe  <mrowe@apple.com>
82389
82390         Reviewed by Geoff Garen.
82391
82392         Fix leaks seen during http/tests/xmlhttprequest/access-control-basic-non-simple-allow.html.
82393
82394         * xml/XMLHttpRequest.cpp:
82395         (WebCore::XMLHttpRequest::didFinishLoadingPreflight): Balance the ref and GC protect
82396         that we do during the loadRequestAsynchronously of the preflight request with a deref and
82397         GC unprotect.
82398
82399 2008-10-01  David Hyatt  <hyatt@apple.com>
82400
82401         Rename allowsScrolling/setAllowsScrolling to canHaveScrollbars/setCanHaveScrollbars to make it more
82402         clear that the boolean doesn't actually stop all scrolling.  It just gets rid of scrollbars.
82403
82404         Reviewed by Tim Hatcher
82405
82406         * WebCore.base.exp:
82407         * page/FrameView.cpp:
82408         (WebCore::FrameView::setCanHaveScrollbars):
82409         * page/FrameView.h:
82410         * platform/ScrollView.cpp:
82411         (WebCore::ScrollView::setCanHaveScrollbars):
82412         (WebCore::ScrollView::wheelEvent):
82413         * platform/ScrollView.h:
82414         (WebCore::ScrollView::canHaveScrollbars):
82415
82416 2008-10-01  Dan Bernstein  <mitz@apple.com>
82417
82418         Reviewed by Mark Rowe.
82419
82420         - fix some CachedResource leaks seen on buildbot
82421
82422         The issue here was that emptying the cache was a no-op when it only
82423         contained resources with no data. Changed to go after those
82424         resources when the desired cache capacity is zero.
82425
82426         * loader/Cache.cpp:
82427         (WebCore::Cache::pruneLiveResources):
82428         (WebCore::Cache::pruneDeadResources):
82429         * loader/Cache.h:
82430         (WebCore::Cache::prune):
82431
82432 2008-10-01  David Hyatt  <hyatt@apple.com>
82433
82434         Make isOffscreen cross-platform.  Only Mac implements this method, so hold off on adding API to the
82435         HostWindow object until other platforms decide they want this method.  (We need it for Win though at some point.)
82436
82437         Reviewed by Adam Roben
82438
82439         * platform/ScrollView.cpp:
82440         (WebCore::ScrollView::isOffscreen):
82441         (WebCore::ScrollView::platformIsOffscreen):
82442         * platform/ScrollView.h:
82443         * platform/gtk/ScrollViewGtk.cpp:
82444         * platform/mac/ScrollViewMac.mm:
82445         (WebCore::ScrollView::platformIsOffscreen):
82446         * platform/qt/ScrollViewQt.cpp:
82447         * platform/wx/ScrollViewWx.cpp:
82448
82449 2008-10-01  David Hyatt  <hyatt@apple.com>
82450
82451         Make show/hide/setParentVisible cross-platform on ScrollView.
82452
82453         Reviewed by Adam Roben
82454
82455         * platform/ScrollView.cpp:
82456         (WebCore::ScrollView::setParentVisible):
82457         (WebCore::ScrollView::show):
82458         (WebCore::ScrollView::hide):
82459         * platform/ScrollView.h:
82460         * platform/win/ScrollViewWin.cpp:
82461
82462 2008-10-01  Kevin McCullough  <kmccullough@apple.com>
82463
82464         Reviewed by Dan Bernstein.
82465
82466         https://bugs.webkit.org/show_bug.cgi?id=21284
82467         Bug 21284: Max height affects max width
82468         - Looks like a cut and paste bug
82469         - Added layout test fast/css/max-height-and-max-width.html
82470
82471         * css/CSSComputedStyleDeclaration.cpp:
82472         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
82473
82474 2008-10-01  David Hyatt  <hyatt@apple.com>
82475
82476         https://bugs.webkit.org/show_bug.cgi?id=21282
82477
82478         Make contentsToScreen/screenToContents cross-platform.  Only implemented by Mac/Win right now.
82479
82480         Reviewed by Adam Roben
82481
82482         * loader/EmptyClients.h:
82483         (WebCore::EmptyChromeClient::screenToWindow):
82484         (WebCore::EmptyChromeClient::windowToScreen):
82485         * page/Chrome.cpp:
82486         (WebCore::Chrome::screenToWindow):
82487         (WebCore::Chrome::windowToScreen):
82488         * page/Chrome.h:
82489         * page/ChromeClient.h:
82490         * platform/HostWindow.h:
82491         * platform/ScrollView.cpp:
82492         (WebCore::ScrollView::contentsToScreen):
82493         (WebCore::ScrollView::screenToContents):
82494         (WebCore::ScrollView::platformContentsToScreen):
82495         (WebCore::ScrollView::platformScreenToContents):
82496         * platform/ScrollView.h:
82497         * platform/mac/ScrollViewMac.mm:
82498         (WebCore::ScrollView::platformContentsToScreen):
82499         (WebCore::ScrollView::platformScreenToContents):
82500         * platform/win/ScrollViewWin.cpp:
82501
82502 2008-10-01  Dan Bernstein  <mitz@apple.com>
82503
82504         Reviewed by Darin Adler.
82505
82506         - fix <rdar://problem/6255862> domfuzz: null deref in WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks(WebCore::HTMLStackElem*)
82507
82508         Test: fast/parser/residual-style-close-across-removed-block.html
82509
82510         * html/HTMLParser.cpp:
82511         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Removed
82512         an assertion that turned out to be wrong in this case, and changed to
82513         terminate the algorithm at the first empty block.
82514
82515 2008-10-01  David Hyatt  <hyatt@apple.com>
82516
82517         Make setFrameRect on ScrollView cross-platform.
82518
82519         Reviewed by Sam Weinig
82520
82521         * page/FrameView.h:
82522         (WebCore::FrameView::contentsResized):
82523         * platform/ScrollView.cpp:
82524         (WebCore::ScrollView::setFrameRect):
82525         * platform/ScrollView.h:
82526         * platform/gtk/ScrollViewGtk.cpp:
82527         * platform/qt/ScrollViewQt.cpp:
82528         * platform/win/ScrollViewWin.cpp:
82529
82530 2008-10-01  Sam Weinig  <sam@webkit.org>
82531
82532         Reviewed by Adele Peterson.
82533
82534         Move setTimeout, clearTimeout, setInterval, clearInterval, atob and btoa
82535         to JSDOMWindow from JSDOMWindowBase.
82536
82537         * WebCore.xcodeproj/project.pbxproj:
82538         * bindings/js/JSDOMWindowBase.cpp:
82539         (WebCore::JSDOMWindowBase::removeTimeout):
82540         * bindings/js/JSDOMWindowBase.h:
82541         * bindings/js/JSDOMWindowCustom.cpp:
82542         (WebCore::setTimeoutOrInterval):
82543         (WebCore::JSDOMWindow::setTimeout):
82544         (WebCore::JSDOMWindow::clearTimeout):
82545         (WebCore::JSDOMWindow::setInterval):
82546         (WebCore::JSDOMWindow::clearInterval):
82547         (WebCore::JSDOMWindow::atob):
82548         (WebCore::JSDOMWindow::btoa):
82549         * page/DOMWindow.idl:
82550
82551 2008-10-01  Dan Bernstein  <mitz@apple.com>
82552
82553         - Mac build fix
82554
82555         * WebCore.base.exp:
82556
82557 2008-10-01  Timothy Hatcher  <timothy@apple.com>
82558
82559         Prevent stealing focus from the search field when focusing a DOM node.
82560
82561         https://bugs.webkit.org/show_bug.cgi?id=21275
82562
82563         Reviewed by Kevin McCullough.
82564
82565         * page/inspector/ElementsPanel.js:
82566         (WebInspector.ElementsPanel.treeOutline.focusedNodeChanged):
82567         Don't steal focus if the current focus element is the search field.
82568
82569 2008-09-30  Sam Weinig  <sam@webkit.org>
82570
82571         Reviewed by Nikolas Zimmermann and Alexey Proskuryakov.
82572
82573         Final patch for https://bugs.webkit.org/show_bug.cgi?id=21122
82574         Autogenerate JS event listeners
82575
82576         - Generate getting/setting of EventListeners.
82577
82578         - Adding a new named EventListener now has the same process as adding any other DOM
82579           attribute. (Add a method with the same name in the c++ file).
82580
82581         (The EventListeners for MessagePort have been intentionally left custom so that we
82582         can continue to experiment with making those EventListeners work in a frame-less world.)
82583
82584         * bindings/js/JSDOMApplicationCacheCustom.cpp: Remove custom methods.
82585         * bindings/js/JSDOMWindowCustom.cpp: ditto.
82586         * bindings/js/JSEventTargetNodeCustom.cpp: ditto.
82587         * bindings/js/JSXMLHttpRequestCustom.cpp: ditto.
82588         * bindings/js/JSXMLHttpRequestUploadCustom.cpp: ditto.
82589         * bindings/scripts/CodeGeneratorJS.pm: Add code to generate EventListener
82590         getter/setters
82591         * dom/EventTargetNode.cpp: Add getter/setters for named EventListener.
82592         * dom/EventTargetNode.h: ditto.
82593         * dom/EventTargetNode.idl: Mark EventListeners as Protected so that the codegenerator
82594         will use JSEventListerner instead of JSUnprotectedEventListener.
82595         * loader/appcache/DOMApplicationCache.idl: Remove custom attributes..
82596         * page/DOMWindow.cpp: Add getter/setters for named EventListener
82597         * page/DOMWindow.h: ditto.
82598         * page/DOMWindow.idl: Mark EventListeners as Protected so that the codegenerator
82599         will use JSEventListerner instead of JSUnprotectedEventListener.
82600         * xml/XMLHttpRequest.idl: Remove custom attributes.
82601         * xml/XMLHttpRequestUpload.idl: ditto.
82602
82603 2008-09-30  Mark Rowe  <mrowe@apple.com>
82604
82605         Reviewed by Dan Bernstein.
82606
82607         Add a leak counter for CachedResources since we've had two recent leaks involving them.
82608
82609         * loader/CachedResource.cpp:
82610         (WebCore::CachedResource::CachedResource):
82611         (WebCore::CachedResource::~CachedResource):
82612
82613 2008-09-30  Dan Bernstein  <mitz@apple.com>
82614
82615         Reviewed by Dave Hyatt.
82616
82617         - fix https://bugs.webkit.org/show_bug.cgi?id=21127
82618           <rdar://problem/6259134> REGRESSION: CFF format fonts fail to load
82619
82620         If TTLoadEmbeddedFont fails, use AddFontMemResourceEx after changing
82621         the font name in memory.
82622
82623         * WebCore.vcproj/WebCore.vcproj: Renamed GetEOTHeader.* to
82624         OpenTypeUtilities.*.
82625
82626         * platform/graphics/win/FontCustomPlatformData.cpp:
82627         (WebCore::FontCustomPlatformData::~FontCustomPlatformData): Added a call
82628         to RemoveFontMemResourceEx to match AddFontMemResourceEx when it is
82629         used.
82630         (WebCore::FontCustomPlatformData::fontPlatformData): Added a code path
82631         for fonts loaded using AddFontMemResourceEx.
82632         (WebCore::createFontCustomPlatformData): Added a call to
82633         renameAndActivateFont() if TTLoadEmbeddedFont fails. If
82634         TTLoadEmbeddedFont succeeds, set the font name to the null string, as
82635         fontPlatformData() will retrieve the name from the font reference.
82636
82637         * platform/graphics/win/FontCustomPlatformData.h:
82638         (WebCore::FontCustomPlatformData::FontCustomPlatformData): Added a
82639         font name member.
82640
82641         * platform/graphics/win/GetEOTHeader.cpp: Renamed.
82642         * platform/graphics/win/GetEOTHeader.h: Renamed.
82643
82644         * platform/graphics/win/OpenTypeUtilities.cpp: Copied from platform/graphics/win/GetEOTHeader.cpp.
82645         (WebCore::BigEndianUShort::BigEndianUShort): Added a constructor.
82646         (WebCore::BigEndianULong::BigEndianULong): Ditto.
82647         (WebCore::renameAndActivateFont): Added. Creates an in-memory copy of
82648         the font data and modifies it to have the given name, then activates
82649         it using AddFontMemResourceEx.
82650
82651         * platform/graphics/win/OpenTypeUtilities.h: Copied from platform/graphics/win/GetEOTHeader.h.
82652
82653 2008-09-30  Mark Rowe  <mrowe@apple.com>
82654
82655         Reviewed by Dan Bernstein.
82656
82657         Fix many leaks seen on fast/backgrounds/svg-as-mask.html.
82658
82659         * rendering/RenderObject.cpp:
82660         (WebCore::RenderObject::arenaDelete): Balance the calls to addClient on maskLayer's images
82661         with calls to removeClient when we're being destroyed.
82662
82663 2008-09-30  Eric Carlson  <eric.carlson@apple.com>
82664
82665         Reviewed by Antti Koivisto.
82666
82667         https://bugs.webkit.org/show_bug.cgi?id=21243
82668
82669         Fix loopstart and loopend default values.
82670
82671         Tests: media/loopend-limits.html
82672                media/loopstart-limits.html
82673
82674         * html/HTMLMediaElement.cpp:
82675         (WebCore::HTMLMediaElement::loopStart): the spec says start() is the default value
82676         (WebCore::HTMLMediaElement::loopEnd): the spec says end() is the default value
82677
82678 2008-09-30  Kevin Ollivier  <kevino@theolliviers.com>
82679
82680         wx build fixes. Add file to build and remove call to (now gone) ScrollView::update.
82681
82682         * WebCoreSources.bkl:
82683         * platform/wx/ScrollViewWx.cpp:
82684         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
82685
82686 2008-09-30  Dan Bernstein  <mitz@apple.com>
82687
82688         Reviewed by Sam Weinig.
82689
82690         - fix HTMLViewSourceDocument leaks by breaking a ref cycle which
82691           was fixed in r17249 and re-introduced in r31435.
82692
82693         * html/HTMLViewSourceDocument.cpp:
82694         (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
82695         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
82696         (WebCore::HTMLViewSourceDocument::addLine):
82697         (WebCore::HTMLViewSourceDocument::addLink):
82698         * html/HTMLViewSourceDocument.h:
82699
82700 2008-09-30  Sam Weinig  <sam@webkit.org>
82701
82702         Reviewed by Eric Seidel.
82703
82704         More for https://bugs.webkit.org/show_bug.cgi?id=21122
82705         Autogenerate JS event listeners
82706
82707         - Make EventListener getter/setters names in c++ files match those in
82708           JS (ie. onLoadListener -> onload).
82709         - Add standard way to access the frame associated with the EventTarget
82710           for EventListener lookup.
82711         - Autogenerate dispatchEvent, it wasn't doing anything custom.
82712
82713         * bindings/js/JSDOMApplicationCacheCustom.cpp:
82714         (WebCore::JSDOMApplicationCache::mark):
82715         (WebCore::JSDOMApplicationCache::addEventListener):
82716         (WebCore::JSDOMApplicationCache::removeEventListener):
82717         (WebCore::JSDOMApplicationCache::setOnchecking):
82718         (WebCore::JSDOMApplicationCache::onchecking):
82719         (WebCore::JSDOMApplicationCache::setOnerror):
82720         (WebCore::JSDOMApplicationCache::onerror):
82721         (WebCore::JSDOMApplicationCache::setOnnoupdate):
82722         (WebCore::JSDOMApplicationCache::onnoupdate):
82723         (WebCore::JSDOMApplicationCache::setOndownloading):
82724         (WebCore::JSDOMApplicationCache::ondownloading):
82725         (WebCore::JSDOMApplicationCache::setOnprogress):
82726         (WebCore::JSDOMApplicationCache::onprogress):
82727         (WebCore::JSDOMApplicationCache::setOnupdateready):
82728         (WebCore::JSDOMApplicationCache::onupdateready):
82729         (WebCore::JSDOMApplicationCache::setOncached):
82730         (WebCore::JSDOMApplicationCache::oncached):
82731         * bindings/js/JSEventTargetNodeCustom.cpp:
82732         (WebCore::JSEventTargetNode::addEventListener):
82733         (WebCore::JSEventTargetNode::removeEventListener):
82734         (WebCore::JSEventTargetNode::getListener):
82735         (WebCore::JSEventTargetNode::setListener):
82736         * bindings/js/JSMessagePortCustom.cpp:
82737         (WebCore::JSMessagePort::mark):
82738         (WebCore::JSMessagePort::addEventListener):
82739         (WebCore::JSMessagePort::removeEventListener):
82740         (WebCore::JSMessagePort::setOnmessage):
82741         (WebCore::JSMessagePort::onmessage):
82742         (WebCore::JSMessagePort::setOnclose):
82743         (WebCore::JSMessagePort::onclose):
82744         * bindings/js/JSXMLHttpRequestCustom.cpp:
82745         (WebCore::JSXMLHttpRequest::mark):
82746         (WebCore::JSXMLHttpRequest::onreadystatechange):
82747         (WebCore::JSXMLHttpRequest::setOnreadystatechange):
82748         (WebCore::JSXMLHttpRequest::onabort):
82749         (WebCore::JSXMLHttpRequest::setOnabort):
82750         (WebCore::JSXMLHttpRequest::onerror):
82751         (WebCore::JSXMLHttpRequest::setOnerror):
82752         (WebCore::JSXMLHttpRequest::onload):
82753         (WebCore::JSXMLHttpRequest::setOnload):
82754         (WebCore::JSXMLHttpRequest::onloadstart):
82755         (WebCore::JSXMLHttpRequest::setOnloadstart):
82756         (WebCore::JSXMLHttpRequest::onprogress):
82757         (WebCore::JSXMLHttpRequest::setOnprogress):
82758         (WebCore::JSXMLHttpRequest::addEventListener):
82759         (WebCore::JSXMLHttpRequest::removeEventListener):
82760         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
82761         (WebCore::JSXMLHttpRequestUpload::mark):
82762         (WebCore::JSXMLHttpRequestUpload::onabort):
82763         (WebCore::JSXMLHttpRequestUpload::setOnabort):
82764         (WebCore::JSXMLHttpRequestUpload::onerror):
82765         (WebCore::JSXMLHttpRequestUpload::setOnerror):
82766         (WebCore::JSXMLHttpRequestUpload::onload):
82767         (WebCore::JSXMLHttpRequestUpload::setOnload):
82768         (WebCore::JSXMLHttpRequestUpload::onloadstart):
82769         (WebCore::JSXMLHttpRequestUpload::setOnloadstart):
82770         (WebCore::JSXMLHttpRequestUpload::onprogress):
82771         (WebCore::JSXMLHttpRequestUpload::setOnprogress):
82772         (WebCore::JSXMLHttpRequestUpload::addEventListener):
82773         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
82774         * bindings/scripts/CodeGeneratorJS.pm:
82775         * dom/EventTarget.h:
82776         * dom/EventTargetNode.cpp:
82777         (WebCore::EventTargetNode::associatedFrame):
82778         * dom/EventTargetNode.h:
82779         * dom/EventTargetNode.idl:
82780         * dom/MessagePort.cpp:
82781         (WebCore::MessagePort::associatedFrame):
82782         * dom/MessagePort.h:
82783         (WebCore::MessagePort::setOnmessage):
82784         (WebCore::MessagePort::onmessage):
82785         (WebCore::MessagePort::setOnclose):
82786         (WebCore::MessagePort::onclose):
82787         * dom/MessagePort.idl:
82788         * loader/appcache/DOMApplicationCache.h:
82789         (WebCore::DOMApplicationCache::setOnchecking):
82790         (WebCore::DOMApplicationCache::onchecking):
82791         (WebCore::DOMApplicationCache::setOnerror):
82792         (WebCore::DOMApplicationCache::onerror):
82793         (WebCore::DOMApplicationCache::setOnnoupdate):
82794         (WebCore::DOMApplicationCache::onnoupdate):
82795         (WebCore::DOMApplicationCache::setOndownloading):
82796         (WebCore::DOMApplicationCache::ondownloading):
82797         (WebCore::DOMApplicationCache::setOnprogress):
82798         (WebCore::DOMApplicationCache::onprogress):
82799         (WebCore::DOMApplicationCache::setOnupdateready):
82800         (WebCore::DOMApplicationCache::onupdateready):
82801         (WebCore::DOMApplicationCache::setOncached):
82802         (WebCore::DOMApplicationCache::oncached):
82803         (WebCore::DOMApplicationCache::associatedFrame):
82804         * loader/appcache/DOMApplicationCache.idl:
82805         * svg/EventTargetSVGElementInstance.cpp:
82806         (WebCore::EventTargetSVGElementInstance::associatedFrame):
82807         (WebCore::EventTargetSVGElementInstance::addEventListener):
82808         (WebCore::EventTargetSVGElementInstance::removeEventListener):
82809         (WebCore::EventTargetSVGElementInstance::dispatchEvent):
82810         * svg/EventTargetSVGElementInstance.h:
82811         * xml/XMLHttpRequest.cpp:
82812         (WebCore::XMLHttpRequest::associatedFrame):
82813         * xml/XMLHttpRequest.h:
82814         (WebCore::XMLHttpRequest::setOnreadystatechange):
82815         (WebCore::XMLHttpRequest::onreadystatechange):
82816         (WebCore::XMLHttpRequest::setOnabort):
82817         (WebCore::XMLHttpRequest::onabort):
82818         (WebCore::XMLHttpRequest::setOnerror):
82819         (WebCore::XMLHttpRequest::onerror):
82820         (WebCore::XMLHttpRequest::setOnload):
82821         (WebCore::XMLHttpRequest::onload):
82822         (WebCore::XMLHttpRequest::setOnloadstart):
82823         (WebCore::XMLHttpRequest::onloadstart):
82824         (WebCore::XMLHttpRequest::setOnprogress):
82825         (WebCore::XMLHttpRequest::onprogress):
82826         * xml/XMLHttpRequest.idl:
82827         * xml/XMLHttpRequestUpload.cpp:
82828         (WebCore::XMLHttpRequestUpload::associatedFrame):
82829         * xml/XMLHttpRequestUpload.h:
82830         (WebCore::XMLHttpRequestUpload::setOnabort):
82831         (WebCore::XMLHttpRequestUpload::onabort):
82832         (WebCore::XMLHttpRequestUpload::setOnerror):
82833         (WebCore::XMLHttpRequestUpload::onerror):
82834         (WebCore::XMLHttpRequestUpload::setOnload):
82835         (WebCore::XMLHttpRequestUpload::onload):
82836         (WebCore::XMLHttpRequestUpload::setOnloadstart):
82837         (WebCore::XMLHttpRequestUpload::onloadstart):
82838         (WebCore::XMLHttpRequestUpload::setOnprogress):
82839         (WebCore::XMLHttpRequestUpload::onprogress):
82840         * xml/XMLHttpRequestUpload.idl:
82841
82842 2008-09-30  Darin Adler  <darin@apple.com>
82843
82844         - roll out assertion breaking regression tests
82845
82846         * platform/ScrollView.cpp:
82847         (WebCore::ScrollView::repaintContentRectangle): Temporarily remove assertion
82848         that fires in regression tests. Hyatt can add it back later. The assertion
82849         fires in the regression test because of layout that triggers repaint occuring
82850         during the process of removing a frame.
82851
82852 2008-09-30  Adele Peterson  <adele@apple.com>
82853
82854         Reviewed by Darin Adler.
82855
82856         Fix for https://bugs.webkit.org/show_bug.cgi?id=21227
82857         <rdar://problem/6222134> add a way to set color for input placeholder text
82858
82859         Test: fast/forms/placeholder-pseudo-style.html
82860
82861         This change adds "-webkit-input-placeholder-mode" as a pseudo class that can be used to style
82862         input elements when they are displaying the placeholder text.
82863
82864         * css/CSSSelector.cpp: (WebCore::CSSSelector::extractPseudoType): Add case for inputPlaceholderMode.
82865         * css/CSSSelector.h: (WebCore::CSSSelector::): Add PseudoInputPlaceholderMode.
82866         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
82867         Add check for PseudoInputPlaceholderMode that asks the node if placeholderShouldBeVisible is true.
82868         * css/html4.css: Add rule to make placeholder text default to darkGray.
82869
82870         * html/HTMLInputElement.cpp:
82871         (WebCore::HTMLInputElement::init): Initialize m_placeholderShouldBeVisible.
82872         (WebCore::HTMLInputElement::dispatchFocusEvent): Call updatePlaceholderVisibility.
82873         (WebCore::HTMLInputElement::dispatchBlurEvent): ditto.
82874         (WebCore::HTMLInputElement::parseMappedAttribute): ditto.
82875         (WebCore::HTMLInputElement::setValue): ditto.
82876         (WebCore::HTMLInputElement::setValueFromRenderer): ditto.
82877         (WebCore::HTMLInputElement::updatePlaceholderVisibility): Sets m_placeholderShouldBeVisible based on the current value and the focus state.
82878          This calculation used to be done in the renderer, but since the node knows everything about the state, it can make that decision, and the
82879          renderer will just ask the node if it should draw the placeholder.
82880         * html/HTMLInputElement.h: (WebCore::HTMLInputElement::placeholderShouldBeVisible):
82881
82882         * rendering/RenderTextControl.cpp:
82883         (WebCore::disabledTextColor): Moved to the top of the file.  If there's not very much contrast between the disabled color and the background color,
82884         just leave the text color alone.  We don't want to change a good contrast color scheme so that it has really bad contrast.
82885         If the the contrast was already poor, then it doesn't do any good to change it to a different poor contrast color scheme.
82886         (WebCore::RenderTextControl::createInnerTextStyle): If the node says the placeholder should be visible, prepare by overriding the text security to be "none".
82887         This can only happen as a result of either a setStyle call (which will be followed by a call to updateFromElement) or from createSubtreeIfNeeded, which
82888         is called directly from updateFromElement.  updateFromElement will immediately update the text displayed.
82889         (WebCore::RenderTextControl::updateFromElement): If the placeholder visibility has changed, update the text that is displayed.
82890         (WebCore::RenderTextControl::forwardEvent): Remove calls to update the placeholder state.  This is now done in HTMLInputElement.
82891         * rendering/RenderTextControl.h:
82892
82893 2008-09-30  Beth Dakin  <bdakin@apple.com>
82894
82895         Reviewed by Darin Adler.
82896
82897         Fix for https://bugs.webkit.org/show_bug.cgi?id=20396 Abort caused
82898         by failed allocation due to invalid counter/attr
82899         and corresponding: <rdar://problem/6152371>
82900
82901         * css/CSSParser.cpp:
82902         (WebCore::CSSParser::parseCounterContent): The spec indicates that
82903         only identifiers should be accepted here.
82904
82905 2008-09-30  Kevin McCullough  <kmccullough@apple.com>
82906
82907         Reviewed by Oliver Hunt.
82908
82909         Bug 21255: console.profileEnd() without a console.profile() crashes the
82910         web inspector
82911
82912         * page/Console.cpp:
82913         (WebCore::Console::profileEnd):
82914
82915 2008-09-30  Kevin McCullough  <kmccullough@apple.com>
82916
82917         Reviewed by Tim Hatcher.
82918
82919         Bug 21252: calling console.profile() with a title that is 2 chars or
82920         shorter does not linkify it
82921
82922         - Previously we tried to not linkify very short URLs but since profile
82923         titles can be any length this is not always true.
82924
82925         * page/inspector/inspector.js:
82926
82927 2008-09-30  Dave Hyatt  <hyatt@apple.com>
82928
82929         Remove the update() method on ScrollView.  This method was only called in one place, and its purpose
82930         was to cause a display/flush to happen.  Here is a breakdown of the method use on each platform:
82931         (1) Not used on Mac
82932         (2) Used on Windows
82933         (3) Used on Qt, but implemented incorrectly to cause a full repaint for no reason.
82934         (4) Used on Gtk, but implemented incorrectly to cause a full repaint for no reason.
82935         (5) Used on wx, but probably not needed (since wx has platform widgets like Mac).
82936
82937         There is now a paint method on HostWindow that does an immediate mode repaint of an empty rect to
82938         cause the display/flush to happen if needed (thus saving an extra method on ChromeClient).
82939         With the changes to this method, the new behavior is as follows:
82940         (1) Not used on Mac
82941         (2) Used on Windows
82942         (3) Nothing happens on Qt, but only because they have not implemented immediate mode updating.
82943         (4) Gtk now behaves like Windows and will process updates but not do any incorrect additional invalidation.
82944         (5) Not used on wx
82945
82946         This method was originally added for Windows. It's not clear the display/flush is really even necessary on the other
82947         platforms.  At the very least stopping unnecessary full invalidations on Qt/Gtk is a good thing. :)
82948
82949         Reviewed by Sam Weinig
82950
82951         * ChangeLog:
82952         * dom/Document.cpp:
82953         (WebCore::Document::implicitClose):
82954         * platform/HostWindow.h:
82955         (WebCore::HostWindow::paint):
82956         * platform/ScrollView.h:
82957         * platform/gtk/ScrollViewGtk.cpp:
82958         * platform/mac/ScrollViewMac.mm:
82959         * platform/qt/ScrollViewQt.cpp:
82960         * platform/win/ScrollViewWin.cpp:
82961         * platform/wx/ScrollViewWx.cpp:
82962
82963 2008-09-30  Timothy Hatcher  <timothy@apple.com>
82964
82965         Focus the DOM tree in the Web Inspector when a node is inspected.
82966         So when the search field has focus, the focus moves to the tree,
82967         allowing the arrow keys work. This can happen when using the new
82968         find in page feature.
82969
82970         https://bugs.webkit.org/show_bug.cgi?id=21251
82971
82972         Reviewed by Geoff Garen.
82973
82974         * page/inspector/ElementsPanel.js:
82975         (WebInspector.ElementsPanel): Set currentFocusElement to
82976         the main-panels element if the panel is visible.
82977         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
82978         Remove a set of currentFocusElement since this moved.
82979         * page/inspector/inspector.js:
82980         (WebInspector.set currentFocusElement): Always focus the element.
82981         This ensures that when focus changes in the page and we don't
82982         catch it, we will still focus the elements even if we think it
82983         was already focused.
82984
82985 2008-09-30  Timothy Hatcher  <timothy@apple.com>
82986
82987         Make the Web Inspector's toolbar icons darker when the mouse is
82988         pressed on them. This matches the standard NSToolbar look.
82989
82990         https://bugs.webkit.org/show_bug.cgi?id=21249
82991         rdar://problem/6033752
82992
82993         Reviewed by Adam Roben.
82994
82995         * page/inspector/Images/databasesIcon.png:
82996         * page/inspector/Images/elementsIcon.png:
82997         * page/inspector/Images/profilesIcon.png:
82998         * page/inspector/Images/resourcesIcon.png:
82999         * page/inspector/Images/scriptsIcon.png:
83000         * page/inspector/Panel.js:
83001         * page/inspector/inspector.css:
83002
83003 2008-09-30  Kevin McCullough  <kmccullough@apple.com>
83004
83005         Reviewed by Tim Hatcher.
83006
83007         Bug 21139: Profiler log message is wrong
83008         - Correctly fix =(
83009         Don't call _format twice.
83010
83011         * page/Page.h:
83012         * page/inspector/Console.js:
83013         * page/inspector/ProfilesPanel.js:
83014         * page/inspector/inspector.js:
83015
83016 2008-09-30  Dave Hyatt  <hyatt@apple.com>
83017
83018         http://bugs.webkit.org/show_bug.cgi?id=21250
83019
83020         Rename updateContents to repaintContentRectangle and make it cross-platform by always sending
83021         repaints up through the ChromeClient.
83022
83023         Reviewed by Darin Adler
83024
83025         * loader/EmptyClients.h:
83026         (WebCore::EmptyChromeClient::repaint):
83027         * page/Chrome.cpp:
83028         (WebCore::Chrome::repaint):
83029         * page/Chrome.h:
83030         * page/ChromeClient.h:
83031         * page/FrameView.cpp:
83032         (WebCore::FrameView::hostWindow):
83033         (WebCore::FrameView::repaintContentRectangle):
83034         * page/FrameView.h:
83035         * platform/HostWindow.h:
83036         * platform/ScrollView.cpp:
83037         (WebCore::ScrollView::repaintContentRectangle):
83038         (WebCore::ScrollView::platformRepaintContentRectangle):
83039         * platform/ScrollView.h:
83040         * platform/gtk/ScrollViewGtk.cpp:
83041         * platform/mac/ScrollViewMac.mm:
83042         (WebCore::ScrollView::platformRepaintContentRectangle):
83043         * platform/qt/ScrollViewQt.cpp:
83044         * platform/win/ScrollViewWin.cpp:
83045         * platform/wx/ScrollViewWx.cpp:
83046         (WebCore::ScrollView::platformRepaintContentRectangle):
83047
83048 2008-09-30  Alexey Proskuryakov  <ap@webkit.org>
83049
83050         Non-Mac build fixes.
83051
83052         * GNUmakefile.am:
83053         * WebCore.pro:
83054         * WebCore.vcproj/WebCore.vcproj:
83055         * WebCoreSources.bkl:
83056         * webcore-base.bkl:
83057         Added DOMProtect.{cpp,h}.
83058
83059 2008-09-39  Kevin Decker  <kdecker@apple.com>
83060
83061         Reviewed by John Sullivan.
83062
83063         * bridge/npapi.h: Added skeleton for a new plug-in drawing model, the NPCoreAnimationDrawingModel. This model will eventually pave the way
83064         for hardware accelerated drawing in plug-ins and out of process plug-in rendering.
83065
83066 2008-09-29  Julien Chaffraix  <jchaffraix@webkit.org>
83067
83068         Reviewed by Maciej Stachowiak.
83069
83070         Bug 21106: .in format discussed changes
83071         https://bugs.webkit.org/show_bug.cgi?id=21106
83072
83073         - Removed "cppNamespace" global parameter and hard-coded "WebCore" as it
83074         is the only namespace used.
83075
83076         - Removed "generateFactory" and "generateWrapperFactory" parameters and
83077         re-introduced the command line options.
83078
83079         - Cleaned up the output of make_names.pl (removed unneeded new line).
83080
83081         * DerivedSources.make: Added factories command line options.
83082         * GNUmakefile.am: Ditto.
83083         * WebCore.pro: Ditto and removed some arguments that were migrated to
83084         the .in files.
83085
83086         * dom/make_names.pl: Clean up (see above).
83087
83088         * html/HTMLAttributeNames.in: Removed "cppNamespace", "generateFactory"
83089         and "generateWrapperFactory" occurences.
83090         * html/HTMLTagNames.in: Ditto.
83091         * svg/svgattrs.in: Ditto.
83092         * svg/svgtags.in: Ditto.
83093         * svg/xlinkattrs.in: Ditto.
83094         * xml/xmlattrs.in: Ditto.
83095
83096 2008-09-29  Chris Fleizach  <cfleizach@apple.com>
83097
83098         Reviewed by John Sullivan.
83099
83100         <rdar://problem/6255456> AX: <file> input button shouldn't have children exposed
83101         Make sure that certain types of elements do not return children and, moreover, do not waste their
83102         energy trying to return children
83103
83104         Test: accessibility/nochildren-elements.html
83105
83106         * page/AccessibilityObject.h:
83107         (WebCore::AccessibilityObject::canHaveChildren):
83108         * page/AccessibilityRenderObject.cpp:
83109         (WebCore::AccessibilityRenderObject::canHaveChildren):
83110         (WebCore::AccessibilityRenderObject::addChildren):
83111         * page/AccessibilityRenderObject.h:
83112
83113 2008-09-30  Alexey Proskuryakov  <ap@webkit.org>
83114
83115         Reviewed by Sam Weinig.
83116
83117         https://bugs.webkit.org/show_bug.cgi?id=21213
83118         MessagePort crash when GC collects an object with a pending close event
83119
83120         Test: fast/events/message-channel-gc-2.html
83121               fast/events/message-channel-listener-circular-ownership.html
83122
83123         * bindings/DOMProtect.cpp: Added.
83124         (WebCore::gcProtectDOMObject):
83125         (WebCore::gcUnprotectDOMObject):
83126         * bindings/DOMProtect.h: Added.
83127         Added an abstraction for GC protection to avoid the need to call JS bindings code from
83128         DOM objects directly.
83129
83130         * dom/MessagePort.cpp:
83131         (WebCore::CloseMessagePortTimer::fired):
83132         (WebCore::MessagePort::queueCloseEvent):
83133         GC protect MessagePort wrapper while there is a pending close event.
83134         This may be necessary for message events, too, but that case is not a crasher, and actually
83135         behaves to the letter of the current HTML5 text, so I'll consider it later.
83136
83137         * xml/XMLHttpRequest.cpp:
83138         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
83139         (WebCore::XMLHttpRequest::dropProtection):
83140         Use gcProtectDOMObject here, too. Unfortunately, XMLHttpRequest has more dependencies on JSC.
83141
83142         * bindings/js/JSMessagePortCustom.cpp:
83143         (WebCore::JSMessagePort::addEventListener):
83144         (WebCore::JSMessagePort::removeEventListener):
83145         (WebCore::JSMessagePort::setOnmessage):
83146         (WebCore::JSMessagePort::setOnclose):
83147         Don't tell DOMWindowBase that MessagePort is a NodeEventTarget, this is not true. I do not
83148         know if this was causing any real issues, but we shouldn't lie to DOMWindowBase.
83149
83150         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
83151         (WebCore::JSXMLHttpRequestUpload::mark):
83152         While at it, changed to use a typedef for event listeners from XMLHttpRequestUpload, not
83153         from XMLHttpRequest.
83154
83155 2008-09-30  Adam Roben  <aroben@apple.com>
83156
83157         Windows build fix
83158
83159         * DerivedSources.cpp: Add JSEventTargetNode.cpp.
83160
83161 2008-09-29  Sam Weinig  <sam@webkit.org>
83162
83163         Reviewed by Tim Hatcher.
83164
83165         Patch for https://bugs.webkit.org/show_bug.cgi?id=21122
83166         Autogenerate JS event listeners
83167
83168         - Generate EventTargetNode.
83169
83170         * DerivedSources.make:
83171         * GNUmakefile.am:
83172         * WebCore.pro:
83173         * WebCore.vcproj/WebCore.vcproj:
83174         * WebCore.xcodeproj/project.pbxproj:
83175         * WebCoreSources.bkl:
83176         * bindings/js/JSEventListener.cpp:
83177         * bindings/js/JSEventTarget.cpp: Added.
83178         (WebCore::toJS):
83179         * bindings/js/JSEventTarget.h: Added.
83180         * bindings/js/JSEventTargetBase.cpp: Removed.
83181         * bindings/js/JSEventTargetBase.h:
83182         * bindings/js/JSEventTargetNode.cpp: Removed.
83183         * bindings/js/JSEventTargetNode.h: Removed.
83184         * bindings/js/JSEventTargetNodeCustom.cpp: Added.
83185         (WebCore::JSEventTargetNode::addEventListener):
83186         (WebCore::JSEventTargetNode::removeEventListener):
83187         (WebCore::JSEventTargetNode::dispatchEvent):
83188         (WebCore::JSEventTargetNode::getListener):
83189         (WebCore::JSEventTargetNode::setListener):
83190         (WebCore::JSEventTargetNode::pushEventHandlerScope):
83191         * bindings/js/JSEventTargetSVGElementInstance.cpp:
83192         (WebCore::):
83193         (WebCore::JSEventTargetSVGElementInstancePrototype::self):
83194         (WebCore::JSEventTargetSVGElementInstancePrototype::getOwnPropertySlot):
83195         (jsEventTargetAddEventListener):
83196         (jsEventTargetRemoveEventListener):
83197         (jsEventTargetDispatchEvent):
83198         * bindings/js/JSEventTargetSVGElementInstance.h:
83199         (WebCore::JSEventTargetSVGElementInstancePrototype::JSEventTargetSVGElementInstancePrototype):
83200         (WebCore::JSEventTargetSVGElementInstancePrototype::classInfo):
83201         * bindings/scripts/CodeGeneratorJS.pm:
83202         * dom/EventTargetNode.idl: Added.
83203
83204 2008-09-29  Darin Adler  <darin@apple.com>
83205
83206         Reviewed by Sam Weinig.
83207
83208         - https://bugs.webkit.org/show_bug.cgi?id=21214
83209           work on getting rid of ExecState
83210
83211         * bindings/js/JSDOMWindowBase.cpp:
83212         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Removed globalThisValue argument
83213         for base class constructor.
83214
83215 2008-09-29  David Hyatt  <hyatt@apple.com>
83216
83217         Add the new HostWindow base class.  A HostWindow hosts a hierarchy of Widgets.  The Chrome object on Page
83218         now subclasses from HostWindow.  The new class will allow objects in platform/ like Widgets, Scrollbars
83219         and ScrollViews to talk to the HostWindow object in order to do backing store operations and invalidations.
83220         (Right now the platform layering is simply being violated by ScrollViews going directly to the ChromeClient.)
83221
83222         Reviewed by Sam Weinig
83223
83224         * WebCore.xcodeproj/project.pbxproj:
83225         * page/Chrome.h:
83226         * platform/HostWindow.h: Added.
83227         (WebCore::HostWindow::HostWindow):
83228         (WebCore::HostWindow::~HostWindow):
83229
83230 2008-09-29  Kevin Decker  <kdecker@apple.com>
83231
83232         Reviewed by Anders Carlsson.
83233
83234         * bridge/npapi.h: Tweaked NPNVariable enum. NPNVsupportsCocoaBool,  NPNVsupportsCarbonBool are now in the 3000 range instead of
83235         2000.
83236
83237 2008-09-29  Dan Bernstein  <mitz@apple.com>
83238
83239         Reviewed by Adam Roben.
83240
83241         - WebCore part of fixing <rdar://problem/6247906> REGRESSION (r19500): Crash on quit beneath CloseThemeData
83242
83243         * rendering/RenderThemeWin.cpp:
83244         (WebCore::RenderThemeWin::setWebKitIsBeingUnloaded): Added.
83245         (WebCore::RenderThemeWin::~RenderThemeWin): Check if WebKit is being
83246         unloaded, to avoid calling uxtheme.dll functions after that library has
83247         been unloaded.
83248         * rendering/RenderThemeWin.h:
83249
83250 2008-09-29  Chris Fleizach  <cfleizach@apple.com>
83251
83252         Reviewed by John Sullivan
83253
83254         <rdar://problem/6240743> AXLoadComplete is sent for non-top level web areas and bogus web areas
83255
83256         Sends AXLoadComplete only when the top level web area is finished loading
83257
83258         * dom/Document.cpp:
83259         (WebCore::Document::implicitClose):
83260
83261 2008-09-29  Timothy Hatcher  <timothy@apple.com>
83262
83263         Makes the node highlight always show up when hovering a node in
83264         the Web Inspector now that the highlight does not scroll to reveal
83265         the node. Also adds a hover effect in the inspector when hovering
83266         causes a highlight in the page. This ties the user hovering action
83267         to the highlight so it is clear what causes the highlight to appear.
83268
83269         Also the highlight now temporarily shows up for 2 seconds after
83270         selecting a node in the DOM tree. So arrowing around in the tree
83271         will show the node on the page, providing feedback to the user.
83272
83273         Plus fixes an issue where quickly moving away from hovering
83274         a node would keep showing the page highlight. This was happening
83275         in breadcrumbs and the DOM tree.
83276
83277         https://bugs.webkit.org/show_bug.cgi?id=21220
83278
83279         Reviewed by Kevin McCullough.
83280
83281         * page/inspector/Console.js:
83282         (WebInspector.Console.prototype._mouseOverNode): Added. Used for
83283         hovering DOM nodes in the console.
83284         (WebInspector.Console.prototype._mouseOutOfNode): Ditto.
83285         (WebInspector.Console.prototype._formatnode): Use the new event
83286         listeners and add a class name to the anchor element.
83287         * page/inspector/ElementsPanel.js:
83288         (WebInspector.ElementsPanel): Add new event listeners to the
83289         crumbs element to do the node hovering highlight.
83290         (WebInspector.ElementsPanel.prototype.hide):
83291         (WebInspector.ElementsPanel.prototype.reset):
83292         (WebInspector.ElementsPanel.prototype._mouseMovedInCrumbs):
83293         (WebInspector.ElementsPanel.prototype._mouseMovedOutOfCrumbs):
83294         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
83295         * page/inspector/ElementsTreeOutline.js:
83296         (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode):
83297         Show the node hishlight for 2 seconds then restore the highlight
83298         to the current hovered node.
83299         (WebInspector.ElementsTreeOutline.prototype._onmousemove): Set the
83300         hovered node and set the hovered state on the tree element.
83301         (WebInspector.ElementsTreeOutline.prototype._onmouseout): Set the
83302         hovered node to null and removed the hovered state from the previous
83303         hovered tree element.
83304         (WebInspector.ElementsTreeElement.prototype.set/get hovered): Adds
83305         the hovered class to the list item.
83306         (WebInspector.ElementsTreeElement.prototype.onattach): Ditto.
83307         * page/inspector/inspector.css:
83308         * page/inspector/inspector.js:
83309         (WebInspector.set hoveredDOMNode): Pass a delay to _updateHoverHighlightSoon
83310         based on the showingDOMNodeHighlight property of 50ms or 500ms. This
83311         causes the highlight to change sooner if there is one already showing
83312         and appear later if there isn't one showing. This is like tooltips,
83313         hovering a node for 500ms will cause highlight then mousing between nodes
83314         will keep the highlight and change to the new node.
83315         (WebInspector._updateHoverHighlightSoon): Take a delay being passed in and
83316         always reset the timeout so continuous mousing does not keep flasshing
83317         the highlight on the screen.
83318         (WebInspector._updateHoverHighlight): Removed the alt key check and added
83319         the showingDOMNodeHighlight property.
83320         (WebInspector.documentKeyDown): Removed the alt key check.
83321         (WebInspector.documentKeyUp): Ditto.
83322         (WebInspector.reset): Clear the hoveredDOMNode.
83323
83324 2008-09-29  Simon Fraser  <simon.fraser@apple.com>
83325
83326         Reviewed by Anders Carlsson
83327
83328         Fix RenderStyle leak in animation code, and assert that
83329         keyframe resolution in CSSStyleSelector is not going to clobber
83330         m_style.
83331
83332         * css/CSSStyleSelector.cpp:
83333         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
83334         * page/animation/KeyframeAnimation.cpp:
83335         (WebCore::KeyframeAnimation::~KeyframeAnimation):
83336
83337 2008-09-29  Chris Marrin  <cmarrin@apple.com>
83338
83339         Reviewed by Dave Hyatt
83340
83341         Fixed https://bugs.webkit.org/show_bug.cgi?id=20995
83342         Rewrite keyframe resolution to be like styleForElement()
83343
83344         Test: animations/lineheight-animation.html
83345
83346         * css/CSSStyleSelector.cpp:
83347         (WebCore::CSSStyleSelector::addKeyframeStyle):
83348         (WebCore::CSSStyleSelector::~CSSStyleSelector):
83349         (WebCore::CSSStyleSelector::keyframeStylesForAnimation):
83350         (WebCore::CSSRuleSet::addRulesFromSheet):
83351         (WebCore::CSSStyleSelector::mapAnimationName):
83352         * css/CSSStyleSelector.h:
83353         * page/animation/CompositeAnimation.cpp:
83354         (WebCore::CompositeAnimation::updateKeyframeAnimations):
83355         * page/animation/KeyframeAnimation.cpp:
83356         (WebCore::KeyframeAnimation::KeyframeAnimation):
83357         (WebCore::KeyframeAnimation::animate):
83358         (WebCore::KeyframeAnimation::hasAnimationForProperty):
83359         (WebCore::KeyframeAnimation::sendAnimationEvent):
83360         (WebCore::KeyframeAnimation::overrideAnimations):
83361         (WebCore::KeyframeAnimation::resumeOverriddenAnimations):
83362         (WebCore::KeyframeAnimation::affectsProperty):
83363         (WebCore::KeyframeAnimation::validateTransformFunctionList):
83364         * page/animation/KeyframeAnimation.h:
83365         * rendering/style/Animation.cpp:
83366         (WebCore::Animation::animationsMatch):
83367         * rendering/style/Animation.h:
83368         * rendering/style/KeyframeList.cpp:
83369         (WebCore::KeyframeList::~KeyframeList):
83370         (WebCore::KeyframeList::clear):
83371         (WebCore::KeyframeList::insert):
83372         * rendering/style/KeyframeList.h:
83373         (WebCore::KeyframeValue::KeyframeValue):
83374         (WebCore::KeyframeList::KeyframeList):
83375         (WebCore::KeyframeList::operator!=):
83376         (WebCore::KeyframeList::animationName):
83377         (WebCore::KeyframeList::addProperty):
83378         (WebCore::KeyframeList::containsProperty):
83379         (WebCore::KeyframeList::beginProperties):
83380         (WebCore::KeyframeList::endProperties):
83381         (WebCore::KeyframeList::isEmpty):
83382         (WebCore::KeyframeList::size):
83383         (WebCore::KeyframeList::beginKeyframes):
83384         (WebCore::KeyframeList::endKeyframes):
83385         * rendering/style/RenderStyle.h:
83386         * rendering/style/StyleRareNonInheritedData.cpp:
83387         * rendering/style/StyleRareNonInheritedData.h:
83388
83389 2008-09-29  Chris Marrin  <cmarrin@apple.com>
83390
83391         Reviewed by Eric Seidel
83392
83393         Clean up fix in PropertyWrapperGetter::equals
83394         https://bugs.webkit.org/show_bug.cgi?id=21011
83395
83396         Test: transitions/override-transition-crash.html
83397
83398         * page/animation/AnimationBase.cpp:
83399         (WebCore::PropertyWrapperGetter::equals):
83400         * page/animation/CompositeAnimation.cpp:
83401         (WebCore::CompositeAnimation::updateTransitions):
83402
83403 2008-09-29  Chris Marrin  <cmarrin@apple.com>
83404
83405         Reviewed by Eric Seidel
83406
83407         https://bugs.webkit.org/show_bug.cgi?id=21001
83408         Starting transition after animation, when animation
83409         is finished, transition is wrong.
83410
83411         Test: animations/transition-and-animation-2.html
83412
83413         * page/animation/AnimationBase.h:
83414         * page/animation/CompositeAnimation.cpp:
83415         (WebCore::CompositeAnimation::updateTransitions):
83416         (WebCore::CompositeAnimation::updateKeyframeAnimations):
83417         (WebCore::CompositeAnimation::resetTransitions):
83418         (WebCore::CompositeAnimation::cleanupFinishedAnimations):
83419         * page/animation/ImplicitAnimation.cpp:
83420         (WebCore::ImplicitAnimation::ImplicitAnimation):
83421         (WebCore::ImplicitAnimation::~ImplicitAnimation):
83422         (WebCore::ImplicitAnimation::animate):
83423         (WebCore::ImplicitAnimation::reset):
83424         * page/animation/ImplicitAnimation.h:
83425
83426 2008-09-29  Chris Marrin  <cmarrin@apple.com>
83427
83428         Reviewed by Sam Weinig
83429
83430         https://bugs.webkit.org/show_bug.cgi?id=20921
83431         -webkit-animation-timing-function: inside of keyframes is ignored
83432
83433         Test: animations/keyframe-timing-functions.html
83434
83435         * page/animation/AnimationBase.cpp:
83436         (WebCore::AnimationBase::progress):
83437         * page/animation/AnimationBase.h:
83438         * page/animation/ImplicitAnimation.cpp:
83439         (WebCore::ImplicitAnimation::animate):
83440         * page/animation/KeyframeAnimation.cpp:
83441         (WebCore::KeyframeAnimation::animate):
83442
83443 2008-09-29  Dan Bernstein  <mitz@apple.com>
83444
83445         - Windows build fix
83446
83447         * platform/ScrollView.cpp:
83448         (WebCore::ScrollView::platformScroll):
83449
83450 2008-09-29  Dan Bernstein  <mitz@apple.com>
83451
83452         - another attempt at a Windows build fix
83453
83454         * platform/ScrollView.cpp:
83455         (WebCore::platformScroll):
83456
83457 2008-09-29  Dan Bernstein  <mitz@apple.com>
83458
83459         - Windows build fix
83460
83461         * platform/ScrollView.cpp:
83462         (WebCore::ScrollView::platformSetScrollPosition):
83463
83464 2008-09-29  David Hyatt  <hyatt@apple.com>
83465
83466         https://bugs.webkit.org/show_bug.cgi?id=21218
83467
83468         Accidentally removed a check to see if the scrollbar modes were equal.  This caused a crash on Windows.
83469         It's silly that the code was this fragile, but for now just put the check back in.
83470
83471         Reviewed by Dan Bernstein
83472
83473         * platform/ScrollView.cpp:
83474         (WebCore::ScrollView::setScrollbarModes):
83475
83476 2008-09-29  David Hyatt  <hyatt@apple.com>
83477
83478         https://bugs.webkit.org/show_bug.cgi?id=21216
83479
83480         Make setScrollPosition and scroll() cross-platform.
83481
83482         Reviewed by Anders
83483
83484         * platform/ScrollView.cpp:
83485         (WebCore::ScrollView::setScrollPosition):
83486         (WebCore::ScrollView::scroll):
83487         * platform/ScrollView.h:
83488         * platform/gtk/ScrollViewGtk.cpp:
83489         * platform/mac/ScrollViewMac.mm:
83490         (WebCore::ScrollView::platformSetScrollPosition):
83491         (WebCore::ScrollView::platformScroll):
83492         * platform/qt/ScrollViewQt.cpp:
83493         * platform/win/ScrollViewWin.cpp:
83494         * platform/wx/ScrollViewWx.cpp:
83495         (WebCore::ScrollView::platformSetScrollPosition):
83496         (WebCore::ScrollView::platformScroll):
83497
83498 2008-09-29  Kevin McCullough  <kmccullough@apple.com>
83499
83500         Reviewed by Oliver.
83501
83502         Bug 21139: Profiler log message is wrong
83503         - Because _format was called twice the number in the log was incremented
83504         too many times, but we were passing it around in the link the whole time
83505
83506         * page/inspector/ProfilesPanel.js:
83507         * page/inspector/inspector.js:
83508
83509 2008-09-29  Sam Weinig  <sam@webkit.org>
83510
83511         Reviewed by Cameron Zwarich.
83512
83513         Autogenerate EventListeners, addEventListener and removeEventListener
83514         for JSDOMWindow.
83515
83516         * bindings/js/JSDOMWindowBase.cpp:
83517         * bindings/js/JSDOMWindowBase.h:
83518         * bindings/js/JSDOMWindowCustom.cpp:
83519         (WebCore::JSDOMWindow::onwebkitanimationstart):
83520         (WebCore::JSDOMWindow::setOnwebkitanimationstart):
83521         (WebCore::JSDOMWindow::onwebkitanimationiteration):
83522         (WebCore::JSDOMWindow::setOnwebkitanimationiteration):
83523         (WebCore::JSDOMWindow::onwebkitanimationend):
83524         (WebCore::JSDOMWindow::setOnwebkitanimationend):
83525         (WebCore::JSDOMWindow::onwebkittransitionend):
83526         (WebCore::JSDOMWindow::setOnwebkittransitionend):
83527         (WebCore::JSDOMWindow::addEventListener):
83528         (WebCore::JSDOMWindow::removeEventListener):
83529         (WebCore::JSDOMWindow::setListener):
83530         (WebCore::JSDOMWindow::getListener):
83531         * bindings/scripts/CodeGeneratorJS.pm:
83532         * page/DOMWindow.idl:
83533
83534 2008-09-29  Thiago Macieira  <thiago.macieira@nokia.com>
83535
83536         Reviewed by Simon.
83537
83538         Changed copyright from Trolltech ASA to Nokia.
83539
83540         Nokia acquired Trolltech ASA, assets were transferred on September 26th 2008.
83541
83542         * bindings/js/JSMimeTypeArrayCustom.cpp:
83543         * bindings/js/JSNavigatorCustom.cpp:
83544         * bindings/js/JSPluginArrayCustom.cpp:
83545         * bindings/js/JSPluginCustom.cpp:
83546         * bindings/js/ScriptControllerMac.mm:
83547         * bindings/js/ScriptControllerQt.cpp:
83548         * bridge/qt/qt_class.cpp:
83549         * bridge/qt/qt_class.h:
83550         * bridge/qt/qt_instance.cpp:
83551         * bridge/qt/qt_instance.h:
83552         * bridge/qt/qt_runtime.cpp:
83553         * bridge/qt/qt_runtime.h:
83554         * bridge/testqtbindings.cpp:
83555         * css/makegrammar.pl:
83556         * css/makeprop.pl:
83557         * css/makevalues.pl:
83558         * dom/Node.cpp:
83559         * dom/TagNodeList.cpp:
83560         * dom/TagNodeList.h:
83561         * dom/XMLTokenizer.cpp:
83562         * dom/XMLTokenizer.h:
83563         * dom/XMLTokenizerLibxml2.cpp:
83564         * dom/XMLTokenizerQt.cpp:
83565         * editing/Editor.cpp:
83566         * editing/EditorCommand.cpp:
83567         * html/CanvasRenderingContext2D.cpp:
83568         * html/CanvasStyle.cpp:
83569         * html/HTMLAppletElement.cpp:
83570         * html/HTMLEmbedElement.cpp:
83571         * html/HTMLObjectElement.cpp:
83572         * loader/FrameLoader.cpp:
83573         * page/Chrome.cpp:
83574         * page/EditorClient.h:
83575         * page/Frame.cpp:
83576         * page/Frame.h:
83577         * page/FramePrivate.h:
83578         * page/Navigator.cpp:
83579         * page/Navigator.h:
83580         * page/Navigator.idl:
83581         * page/mac/FrameMac.mm:
83582         * page/qt/EventHandlerQt.cpp:
83583         * platform/graphics/qt/FontCacheQt.cpp:
83584         * platform/graphics/qt/FontCustomPlatformData.cpp:
83585         * platform/graphics/qt/FontCustomPlatformData.h:
83586         * platform/graphics/qt/FontPlatformData.h:
83587         * platform/graphics/qt/FontQt.cpp:
83588         * platform/graphics/qt/GlyphPageTreeNodeQt.cpp:
83589         * platform/graphics/qt/GraphicsContextQt.cpp:
83590         * platform/graphics/qt/ImageDecoderQt.cpp:
83591         * platform/graphics/qt/ImageDecoderQt.h:
83592         * platform/graphics/qt/ImageSourceQt.cpp:
83593         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
83594         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
83595         * platform/graphics/qt/SimpleFontDataQt.cpp:
83596         * platform/gtk/MIMETypeRegistryGtk.cpp:
83597         * platform/mac/MIMETypeRegistryMac.mm:
83598         * platform/network/qt/QNetworkReplyHandler.cpp:
83599         * platform/network/qt/QNetworkReplyHandler.h:
83600         * platform/network/qt/ResourceHandleQt.cpp:
83601         * platform/network/qt/ResourceRequestQt.cpp:
83602         * platform/qt/ClipboardQt.cpp:
83603         * platform/qt/EventLoopQt.cpp:
83604         * platform/qt/KURLQt.cpp:
83605         * platform/qt/LoggingQt.cpp:
83606         * platform/qt/MIMETypeRegistryQt.cpp:
83607         * platform/qt/PasteboardQt.cpp:
83608         * platform/qt/PlatformScreenQt.cpp:
83609         * platform/qt/PopupMenuQt.cpp:
83610         * platform/qt/QWebPopup.cpp:
83611         * platform/qt/QWebPopup.h:
83612         * platform/qt/RenderThemeQt.cpp:
83613         * platform/qt/ScrollbarQt.cpp:
83614         * platform/qt/ScrollbarThemeQt.cpp:
83615         * platform/qt/WheelEventQt.cpp:
83616         * platform/qt/html4-adjustments-qt.css:
83617         * platform/wx/MimeTypeRegistryWx.cpp:
83618         * plugins/MimeType.cpp:
83619         * plugins/MimeType.h:
83620         * plugins/MimeType.idl:
83621         * plugins/MimeTypeArray.cpp:
83622         * plugins/MimeTypeArray.h:
83623         * plugins/MimeTypeArray.idl:
83624         * plugins/Plugin.cpp:
83625         * plugins/Plugin.h:
83626         * plugins/Plugin.idl:
83627         * plugins/PluginArray.cpp:
83628         * plugins/PluginArray.h:
83629         * plugins/PluginArray.idl:
83630         * plugins/PluginData.cpp:
83631         * plugins/PluginData.h:
83632         * plugins/gtk/PluginDataGtk.cpp:
83633         * plugins/mac/PluginDataMac.mm:
83634         * plugins/qt/PluginDataQt.cpp:
83635         * plugins/win/PluginDataWin.cpp:
83636         * rendering/RenderTableCol.cpp:
83637         * rendering/RenderTableCol.h:
83638
83639 2008-09-29  Thiago Macieira  <thiago.macieira@trolltech.com>
83640
83641         Reviewed by Simon
83642
83643         Fix compilation with gcc 4.3
83644
83645          gcc 4.3 is stricter and ctype.h isn't getting included
83646         automatically here by dependencies. So do it directly.
83647
83648         * platform/qt/PlatformKeyboardEventQt.cpp:
83649
83650 2008-09-29  Morten Sørvig  <msorvig@trolltech.com>
83651
83652         Reviewed by Simon.
83653
83654         Fix compilation with Qt/Mac without plugins.
83655
83656         * platform/qt/TemporaryLinkStubs.cpp:
83657
83658 2008-09-29  Mark Rowe  <mrowe@apple.com>
83659
83660         Reviewed by Sam Weinig.
83661
83662         Apply the ASCII fast path optimization from StringImpl::lower to StringImpl::upper.
83663         In the few places that we call .upper() in WebCore the strings represent things like
83664         tag and attribute names, which are nearly always going to be ASCII.
83665
83666         * platform/text/StringImpl.cpp:
83667         (WebCore::StringImpl::lower): If we have to resize the buffer, be sure to pass the new length
83668         in to Unicode::toLower the second time.
83669         (WebCore::StringImpl::upper):
83670
83671 2008-09-28  Mark Rowe  <mrowe@apple.com>
83672
83673         Reviewed by Sam Weinig.
83674
83675         Speed up getPropertyValue('clip') by 25% by using a Vector<UChar> for building a string,
83676         rather than String::operator+=.
83677
83678         * css/CSSPrimitiveValue.cpp:
83679         (WebCore::CSSPrimitiveValue::cssText):
83680
83681 2008-09-28  Mark Rowe  <mrowe@apple.com>
83682
83683         Reviewed by Oliver Hunt.
83684
83685         Speed up computedStyle.getPropertyValue('color') by 4.5x.
83686
83687         Using a Vector<UChar> while building up the property's cssText is substantially cheaper than using String::operator+=
83688         as it avoids many memory reallocations.
83689
83690         This also speeds up the jQuery .offset() benchmark at <http://dev.jquery.com/~john/speed/1.2.6/offset-1.2.6.html>
83691         by 20% due to jQuery's strange need to call getPropertyValue('color') when retrieving the computed styles for
83692         unrelated properties on an element.
83693
83694         * css/CSSPrimitiveValue.cpp:
83695         (WebCore::CSSPrimitiveValue::cssText): Build the result for the color types into a Vector<UChar>
83696         and use appendNumber rather than the String::number in order to cut down on memory allocations.
83697         * platform/text/PlatformString.h:
83698         (WebCore::appendNumber): A helper function for formatting an unsigned character as a number
83699         into a Vector<UChar>.
83700
83701 2008-09-28  Sam Weinig  <sam@webkit.org>
83702
83703         Reviewed by Anders Carlsson.
83704
83705         Remove spurious call to lower().
83706
83707         * css/MediaQueryEvaluator.cpp:
83708         (WebCore::MediaQueryEvaluator):
83709
83710 2008-09-28  Sam Weinig  <sam@webkit.org>
83711
83712         Reviewed by Dan Bernstein.
83713
83714         Use a CaseFoldingHash instead of calling lower on family strings.
83715
83716         * css/CSSFontSelector.cpp:
83717         (WebCore::CSSFontSelector::addFontFaceRule):
83718         (WebCore::CSSFontSelector::getFontData):
83719         * css/CSSFontSelector.h:
83720
83721 2008-09-28  Timothy Hatcher  <timothy@apple.com>
83722
83723         Remove the scrollIntoViewIfNeeded() call when drawing the
83724         Inspector node highlight.
83725
83726         <rdar://problem/6115804> Don't scroll when highlighting (21000)
83727         https://bugs.webkit.org/show_bug.cgi?id=21000
83728
83729         Reviewed by Dan Bernstein.
83730
83731         * page/InspectorController.cpp:
83732         (WebCore::InspectorController::drawNodeHighlight):
83733
83734 2008-09-28  David Hyatt  <hyatt@apple.com>
83735
83736         Fix crash when WebKit has no instantiated Scrollbars and the appearance prefs for scrollbars are
83737         changed.
83738
83739         Reviewed by Dan Bernstein
83740
83741         * platform/mac/ScrollbarThemeMac.mm:
83742         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
83743
83744 2008-09-28  Timothy Hatcher  <timothy@apple.com>
83745
83746         Clear the current search results in the Inspector when
83747         the search query is less than 3 characters long. Incremental
83748         searches only occur for 3 characters or longer, but deleting
83749         under this limit would not clear the results unless the whole
83750         query was deleted.
83751
83752         https://bugs.webkit.org/show_bug.cgi?id=21196
83753
83754         Reviewed by Dan Bernstein.
83755
83756         * page/inspector/inspector.js:
83757         (WebInspector.performSearch): Check for short queries in the
83758         if statement that triggers the clear.
83759
83760 2008-09-28  Dan Bernstein  <mitz@apple.com>
83761
83762         Reviewed by Dave Hyatt.
83763
83764         - fix <rdar://problem/6202962> "Tibetan Machine Uni" font does not work as a web font on Windows because TTLoadEmbeddedFont fails with E_NAMECHANGEFAILED
83765
83766         * platform/graphics/win/FontCustomPlatformData.cpp:
83767         (WebCore::EOTStream::EOTStream): Added overlayDst, overlaySrc and
83768         overlayLength parameters.
83769         (WebCore::EOTStream::read): Added code to overlay the
83770         m_overlayLength bytes starting at m_overlayDst with the same number of
83771         bytes from m_overlaySrc.
83772         (WebCore::createFontCustomPlatformData): Changed to get overlay
83773         parameters from getEOTHeader.
83774         * platform/graphics/win/GetEOTHeader.cpp:
83775         (WebCore::getEOTHeader): Added code to specify overlaying of the
83776         family name with the prefix of the full name if they differ, because
83777         that such a difference causes TTLoadEmbeddedFont to fail.
83778         * platform/graphics/win/GetEOTHeader.h:
83779
83780 2008-09-28  Alexey Proskuryakov  <ap@webkit.org>
83781
83782         Reviewed by Eric Seidel.
83783
83784         https://bugs.webkit.org/show_bug.cgi?id=20366
83785         Reproducible test failure for editing/undo/undo-iframe-location-change.html
83786
83787         * ChangeLog-2006-05-10: Added bug URLs for a fix that included this test.
83788
83789 2008-09-28  Darin Adler  <darin@apple.com>
83790
83791         Reviewed by Sam Weinig (except for a few comment and header tweaks).
83792
83793         - https://bugs.webkit.org/show_bug.cgi?id=21158
83794           reduce use of virtual functions in Node for speed
83795
83796         Speeds up Dromaeo a bit less than 1%.
83797
83798         * bindings/js/JSNamedNodesCollection.cpp: Include Element.h instead of
83799         Node.h now that some inlines are in there.
83800
83801         * dom/Attr.h: Override both the virtual and non-virtual name functions.
83802
83803         * dom/ChildNodeList.cpp:
83804         (WebCore::ChildNodeList::nodeMatches): Updated to take an Element.
83805         * dom/ChildNodeList.h: Ditto.
83806         * dom/ClassNodeList.cpp:
83807         (WebCore::ClassNodeList::nodeMatches): Ditto.
83808         * dom/ClassNodeList.h: Ditto.
83809
83810         * dom/Document.h: Put the Node::isDocumentNode() function's inline
83811         definition here where it can see the Document class definition.
83812
83813         * dom/DynamicNodeList.cpp:
83814         (WebCore::DynamicNodeList::length): Changed to pass an Element.
83815         (WebCore::DynamicNodeList::itemForwardsFromCurrent): Ditto.
83816         (WebCore::DynamicNodeList::itemBackwardsFromCurrent): Ditto.
83817         (WebCore::DynamicNodeList::itemWithName): Ditto.
83818         * dom/DynamicNodeList.h: Ditto.
83819
83820         * dom/Element.cpp: Removed virtualHasTagName.
83821         * dom/Element.h: Made localName, prefix, namespaceURI, and
83822         styleForRenderer non-virtual. Added virtualPrefix, virtualLocalName,
83823         virtualNamespaceURI, and removed virtualHasTagName. Put the
83824         Node::hasTagName, Node::hasAttributes, and Node::attributes
83825         functions' inline definitions here where they can see the Element
83826         class definition.
83827
83828         * dom/NameNodeList.cpp:
83829         (WebCore::NameNodeList::nodeMatches): Updated to take an Element.
83830         * dom/NameNodeList.h: Ditto.
83831
83832         * dom/Node.cpp:
83833         (WebCore::Node::virtualPrefix): Renamed from prefix.
83834         (WebCore::Node::virtualLocalName): Renamed from localName.
83835         (WebCore::Node::virtualNamespaceURI): Renamed from namespaceURI.
83836         (WebCore::Node::styleForRenderer): Handle the Element case here.
83837
83838         * dom/Node.h: Removed definition of hasTagName that calls virtual,
83839         since we now have a non-virtual version. Made hasAttributes,
83840         attributes, remove, localName, namespaceURI, prefix, isDocumentNode,
83841         and styleForRenderer non-virtual. Added virtualPrefix,
83842         virtualLocalName, and virtualNamespaceURI. Removed isMalformed
83843         and setMalformed, which are used only on HTMLFormElement objects.
83844
83845         * dom/TagNodeList.cpp:
83846         (WebCore::TagNodeList::nodeMatches): Updated to take an Element.
83847         * dom/TagNodeList.h: Ditto.
83848
83849         * html/HTMLAnchorElement.cpp: Added a comment.
83850         * html/HTMLFormControlElement.cpp: Ditto.
83851
83852         * html/HTMLAnchorElement.h: Removed unused, unimplemented setTabIndex
83853         function. Marked tabIndex function virtual explicitly for clarity.
83854
83855         * html/HTMLAreaElement.h: Removed unused, unimplemented setTabIndex
83856         function. Marked isFocusable function virtual explicitly for clarity.
83857
83858         * html/HTMLElement.h: Marked tabIndex function virtual explicitly for
83859         clarity.
83860         * html/HTMLFormControlElement.h: Ditto.
83861
83862         * html/HTMLFormElement.h: Made isMalformed non-virtual.
83863
83864         * html/HTMLParser.cpp:
83865         (WebCore::HTMLParser::handleError): Use the already-cast-to-HTMLElement
83866         pointer to call localName since that one does not need to call a virtual
83867         function.
83868
83869         * rendering/RenderBlock.cpp:
83870         (WebCore::RenderBlock::layoutBlock): Cast to HTMLFormElement before
83871         calling isMalformed. We already did a tag name check so we know it's
83872         an HTMLFormELement.
83873
83874         * xml/XPathUtil.cpp:
83875         (WebCore::XPath::isValidContextNode): Rewrote to not make so many calls
83876         to nodeType(), since it's a virtual function.
83877
83878 2008-09-28  David Hyatt  <hyatt@apple.com>
83879
83880         Make frameRectsChanged() cross-platform on ScrollView.
83881
83882         Reviewed by Oliver Hunt
83883
83884         * platform/ScrollView.cpp:
83885         (WebCore::ScrollView::frameRectsChanged):
83886         * platform/ScrollView.h:
83887         * platform/gtk/ScrollViewGtk.cpp:
83888         * platform/qt/ScrollViewQt.cpp:
83889         * platform/win/ScrollViewWin.cpp:
83890         * platform/wx/ScrollViewWx.cpp:
83891
83892 2008-09-28  Oliver Hunt  <oliver@apple.com>
83893
83894         Reviewed by Maciej Stachowiak.
83895
83896         Bug 21141: REGRESSION: Exception messages for user entered commands are poor
83897         <https://bugs.webkit.org/show_bug.cgi?id=21141>
83898
83899         The bug repsonsible for this was the the JSInspectedObjectWrapper instances
83900         were not initialising their StructureID's to indicate that the wrapper
83901         overrides hasInstance, etc.  The solution is simply to use the createStructureID
83902         helper on JSQuarantinedObjectWrapper to create a correct StructureID.
83903
83904         * bindings/js/JSInspectedObjectWrapper.cpp:
83905         (WebCore::JSInspectedObjectWrapper::wrap):
83906
83907 2008-09-28  David Hyatt  <hyatt@apple.com>
83908
83909         Make sure pixel wheel scrolls (formerly "continuous" wheel events) send deltas to DOM wheel events in
83910         terms of lines.
83911
83912         Reviewed by Oliver Hunt
83913
83914         * dom/EventTargetNode.cpp:
83915         (WebCore::EventTargetNode::dispatchWheelEvent):
83916
83917 2008-09-28  David Hyatt  <hyatt@apple.com>
83918
83919         https://bugs.webkit.org/show_bug.cgi?id=21191
83920
83921         Rework mouse wheeling significantly to make the platform event less messy and to enable wheelEvent
83922         on ScrollView to be cross-platform.
83923
83924         Give the wheel event a concept of granularity (pixel, line or page).  What used to be called continuous
83925         events are now pixel wheel events.
83926
83927         Page scrolling as implemented in bug 17589 was completely broken.  It had the following problems:
83928         (1) Page scrolling has been corrected to be properly detected (on Windows
83929         page wheeling is only done in the vertical direction and it is keyed off a special return value of -1).  The
83930         old code had some bizarre incorrect heuristic for "guessing" that you should page scroll and also thought
83931         you could page scroll horizontally.
83932         (2) Page scrolling a layer used the enclosing ScrollView's width/height instead of the layer's width/height.
83933         This caused the scroll amount for page scrolling to be way too large on layers.
83934
83935         Bug 17589 got the default horizontal scrolling value wrong.  It assumed 1, when the Vista default is 3.
83936
83937         Incorporate WebCore's line multiplier right into the deltas of the event.  This eliminates the need
83938         for separate multiplier fields (or for the need to ask if you're looking for line sensitivity).
83939
83940         Reviewed by Oliver Hunt
83941
83942         * editing/EditorCommand.cpp:
83943         (WebCore::verticalScrollDistance):
83944         * page/EventHandler.cpp:
83945         (WebCore::scrollAndAcceptEvent):
83946         (WebCore::EventHandler::handleWheelEvent):
83947         * platform/PlatformWheelEvent.h:
83948         (WebCore::):
83949         (WebCore::PlatformWheelEvent::pos):
83950         (WebCore::PlatformWheelEvent::globalPos):
83951         (WebCore::PlatformWheelEvent::deltaX):
83952         (WebCore::PlatformWheelEvent::deltaY):
83953         (WebCore::PlatformWheelEvent::granularity):
83954         (WebCore::PlatformWheelEvent::x):
83955         (WebCore::PlatformWheelEvent::globalX):
83956         (WebCore::PlatformWheelEvent::ignore):
83957         (WebCore::PlatformWheelEvent::horizontalLineMultiplier):
83958         (WebCore::PlatformWheelEvent::verticalLineMultiplier):
83959         * platform/ScrollView.cpp:
83960         (WebCore::ScrollView::wheelEvent):
83961         * platform/Scrollbar.h:
83962         * platform/gtk/ScrollViewGtk.cpp:
83963         (WebCore::ScrollView::updateScrollbars):
83964         * platform/gtk/WheelEventGtk.cpp:
83965         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
83966         * platform/mac/ScrollViewMac.mm:
83967         * platform/mac/WheelEventMac.mm:
83968         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
83969         * platform/qt/ScrollViewQt.cpp:
83970         (WebCore::ScrollView::updateScrollbars):
83971         * platform/qt/WheelEventQt.cpp:
83972         * platform/win/ScrollViewWin.cpp:
83973         (WebCore::ScrollView::updateScrollbars):
83974         * platform/win/WheelEventWin.cpp:
83975         (WebCore::PlatformWheelEvent::horizontalLineMultiplier):
83976         (WebCore::PlatformWheelEvent::verticalLineMultiplier):
83977         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
83978         * platform/wx/ScrollViewWx.cpp:
83979         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
83980         (WebCore::ScrollView::wheelEvent):
83981         * rendering/RenderLayer.cpp:
83982         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
83983
83984 2008-09-27  Eric Carlson  <eric.carlson@apple.com>
83985
83986         Reviewed by Sam Weinig.
83987
83988         fix https://bugs.webkit.org/show_bug.cgi?id=20994
83989         <rdar://problem/6171023> HTMLVideoElement width and height attributes are now unsigned
83990
83991         HTML5 spec says HTMLVideoElement width and height attributes should be unsigned. Convert
83992         all unsigned media attributes from string with toUInt() instead of toInt().
83993
83994         * html/HTMLMediaElement.cpp:
83995         (WebCore::HTMLMediaElement::playCount): convert from attribute with toUInt().
83996
83997         * html/HTMLVideoElement.cpp:
83998         (WebCore::HTMLVideoElement::videoWidth):
83999         (WebCore::HTMLVideoElement::videoHeight): return unsigned to match idl.
84000         (WebCore::HTMLVideoElement::width): convert from attribute with toUInt() and return
84001           unsigned value.
84002         (WebCore::HTMLVideoElement::height): Ditto.
84003         (WebCore::HTMLVideoElement::setWidth): take unsigned value.
84004         (WebCore::HTMLVideoElement::setHeight): Ditto.
84005
84006         * html/HTMLVideoElement.h: width, height, videoWidth, and videoHeight are unsigned.
84007
84008         * html/HTMLVideoElement.idl: make width and height unsigned to match HTML5 spec.
84009
84010 2008-09-27  Timothy Hatcher  <timothy@apple.com>
84011
84012         Fixes an exception when typing a command in the Console.
84013
84014         Reviewed by Oliver Hunt.
84015
84016         * page/inspector/Console.js:
84017         (WebInspector.Console.prototype.addMessage): Null check
84018         this.previosMessage.
84019
84020 2008-09-27  Timothy Hatcher  <timothy@apple.com>
84021
84022         Fixes a bug where the Profiles panel sidebar would be empty
84023         after closing and reopening the Web Inspector.
84024
84025         https://bugs.webkit.org/show_bug.cgi?id=21179
84026
84027         Reviewed by Sam Weinig.
84028
84029         * page/inspector/ProfilesPanel.js:
84030         (WebInspector.ProfilesPanel.prototype.reset): Don't call
84031         populateInterface, it is called automatically.
84032         (WebInspector.ProfilesPanel.prototype._populateProfiles):
84033         Return early if the sidebar is already populated.
84034
84035 2008-09-27  Dave Hyatt  <hyatt@apple.com>
84036
84037         Bug 21190.  The line scroll amount on Windows is way too small.  A patch for bug 17589 for wheel sensitivity
84038         incorrectly applied the tinier wheel step delta (unmultiplied) to line scrolling.  Line scrolling with the
84039         scrollbar has nothing to do with mouse wheeling.  This patch reverts the scrollbars to use the same line
84040         step as other platforms while leaving the wheel delta alone for use with wheel scrolling.
84041
84042         There was a lot wrong with 17589, so more patches will be coming to deal with the fallout of this patch
84043         (which should never have landed in the first place).
84044
84045         Reviewed by Tim Hatcher, Sam Weinig
84046
84047         * platform/win/ScrollViewWin.cpp:
84048         (WebCore::adjustDeltaForPageScrollMode):
84049         (WebCore::ScrollView::updateScrollbars):
84050         (WebCore::ScrollView::wheelEvent):
84051
84052 2008-09-27  David Hyatt  <hyatt@apple.com>
84053
84054         Make the scrollbarUnderMouse method cross-platform.
84055
84056         Reviewed by Sam Weinig
84057
84058         * platform/ScrollView.cpp:
84059         (WebCore::ScrollView::scrollbarUnderMouse):
84060         * platform/gtk/ScrollViewGtk.cpp:
84061         * platform/mac/ScrollViewMac.mm:
84062         * platform/qt/ScrollViewQt.cpp:
84063         * platform/win/ScrollViewWin.cpp:
84064         * platform/wx/ScrollViewWx.cpp:
84065
84066 2008-09-27  Holger Hans Peter Freyther  <zecke@selfish.org>
84067
84068         Gtk+ build fix.
84069
84070         * platform/gtk/ScrollViewGtk.cpp:
84071         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84072
84073 2008-09-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
84074
84075         Reviewed by Holger Freyther.
84076
84077         https://bugs.webkit.org/show_bug.cgi?id=20287
84078         [Gtk] disable plugins for gtk/directfb target
84079
84080         Introduce WTF_PLATFORM_X11 for X11 builds.
84081         Also use target-specific packages when building the port
84082
84083         * platform/gtk/PlatformScreenGtk.cpp:
84084         * plugins/gtk/PluginViewGtk.cpp:
84085         (WebCore::PluginView::updatePluginWidget):
84086         (WebCore::PluginView::getValueStatic):
84087         (WebCore::PluginView::getValue):
84088         (WebCore::PluginView::init):
84089
84090 2008-09-27  David Hyatt  <hyatt@apple.com>
84091
84092         https://bugs.webkit.org/show_bug.cgi?id=21188
84093
84094         Make scrollbar suppression and resizer avoidance cross-platform.
84095
84096         Reviewed by Anders
84097
84098         * loader/FrameLoader.cpp:
84099         (WebCore::FrameLoader::transitionToCommitted):
84100         * page/FrameView.cpp:
84101         (WebCore::FrameView::resetScrollbars):
84102         (WebCore::FrameView::clear):
84103         (WebCore::FrameView::layout):
84104         (WebCore::FrameView::restoreScrollbar):
84105         (WebCore::FrameView::windowResizerRect):
84106         * page/FrameView.h:
84107         * platform/ScrollView.cpp:
84108         (WebCore::ScrollView::init):
84109         (WebCore::ScrollView::resizerOverlapsContent):
84110         (WebCore::ScrollView::adjustScrollbarsAvoidingResizerCount):
84111         (WebCore::ScrollView::setParent):
84112         (WebCore::ScrollView::setScrollbarsSuppressed):
84113         (WebCore::ScrollView::platformSetScrollbarsSuppressed):
84114         * platform/ScrollView.h:
84115         (WebCore::ScrollView::scrollbarsSuppressed):
84116         (WebCore::ScrollView::windowResizerRect):
84117         * platform/Scrollbar.cpp:
84118         (WebCore::Scrollbar::setFrameRect):
84119         (WebCore::Scrollbar::setParent):
84120         * platform/gtk/ScrollViewGtk.cpp:
84121         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
84122         (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
84123         (WebCore::ScrollView::updateScrollbars):
84124         (WebCore::ScrollView::paint):
84125         * platform/mac/ScrollViewMac.mm:
84126         (WebCore::ScrollView::ScrollView):
84127         (WebCore::ScrollView::~ScrollView):
84128         (WebCore::ScrollView::platformSetScrollbarsSuppressed):
84129         (WebCore::ScrollView::setScrollPosition):
84130         * platform/qt/ScrollViewQt.cpp:
84131         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
84132         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84133         (WebCore::ScrollView::frameRectsChanged):
84134         (WebCore::ScrollView::updateScrollbars):
84135         (WebCore::ScrollView::paint):
84136         * platform/win/ScrollViewWin.cpp:
84137         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
84138         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84139         (WebCore::ScrollView::updateScrollbars):
84140         (WebCore::ScrollView::paint):
84141         * platform/wx/ScrollViewWx.cpp:
84142         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
84143
84144 2008-09-27  Holger Hans Peter Freyther  <zecke@selfish.org>
84145
84146         Rubber-stamped by Anders Carlsson.
84147
84148         Compile fix.
84149
84150         * plugins/PluginView.cpp:
84151         (WebCore::PluginView::load):
84152
84153 2008-09-27  Mark Rowe  <mrowe@apple.com>
84154
84155         Rubber-stamped by Sam Weinig.
84156
84157         Fix <https://bugs.webkit.org/show_bug.cgi?id=21184>.
84158         Bug 21184: REGRESSION: Reproducible crash below StringImpl::hash while running editing/deleting/5408255.html
84159
84160         Remove an assertion that was incorrect and that if made correct would have duplicated a check that occurred earlier in the function.
84161
84162         * loader/CachedResource.cpp:
84163         (WebCore::CachedResource::~CachedResource):
84164
84165 2008-09-27  Holger Hans Peter Freyther  <zecke@selfish.org>
84166
84167         Reviewed by Simon Hausmann.
84168
84169         [qt] Use QImageReader to figure out which image formats are supported
84170         - Qt can have many different plugins for different image formats. Instead
84171         of checking only for a few in WebCore use Qt to determine if this data
84172         can be treated as an image.
84173
84174         * platform/graphics/qt/ImageSourceQt.cpp:
84175         (WebCore::canHandleImage):
84176         (WebCore::createDecoder):
84177
84178 2008-09-27  Holger Hans Peter Freyther  <zecke@selfish.org>
84179
84180
84181         [qt] Clean the pattern code
84182         - Use save/restore on the painter after manipulating the
84183         pen/brush
84184         - Make the context and object null checking consistent. CG is using
84185         the object unconditionally so the Qt webkit platform can do the
84186         same.
84187         - Move code below the early exit. Only use the m_ownerElement before
84188         the early exit as the CG code is doing it.
84189
84190         * svg/graphics/SVGPaintServerPattern.h:
84191         * svg/graphics/qt/SVGPaintServerPatternQt.cpp:
84192         (WebCore::SVGPaintServerPattern::setup):
84193         (WebCore::SVGPaintServerPattern::teardown):
84194
84195 2008-09-27  Keishi Hattori  <casey.hattori@gmail.com>
84196
84197         Added support for console.trace.
84198
84199         https://bugs.webkit.org/show_bug.cgi?id=19157
84200
84201         Reviewed by Kevin McCullough and Tim Hatcher.
84202
84203         * bindings/js/JSConsoleCustom.cpp:
84204         (WebCore::JSConsole::trace):
84205         * page/Console.cpp:
84206         (WebCore::Console::trace): Calls Machine::retrieveCaller to
84207         get a stack trace.
84208         * page/Console.h:
84209         (WebCore::): Added TraceMessageLevel.
84210         * page/Console.idl: Added console.trace.
84211         * page/inspector/Console.js:
84212         (ConsoleMessage): Added case for TraceMessageLevel.
84213
84214 2008-09-27  Anders Carlsson  <andersca@apple.com>
84215
84216         Reviewed by Sam Weinig.
84217
84218         https://bugs.webkit.org/show_bug.cgi?id=21178
84219         <rdar://problem/6248651>
84220
84221         Check if the plug-in is allowed to load the resource. This matches Firefox.
84222
84223         Test: http/tests/plugins/local-geturl-from-remote.html
84224
84225         * plugins/PluginView.cpp:
84226         (WebCore::PluginView::load):
84227
84228 2008-09-22  Dirk Schulze  <vbs85@gmx.de>
84229
84230         Reviewed by Eric Seidel.
84231
84232         Added SVG pattern support to Qt.
84233
84234         [Qt] SVG patterns are missing
84235         https://bugs.webkit.org/show_bug.cgi?id=20973
84236
84237         * svg/graphics/qt/SVGPaintServerPatternQt.cpp:
84238         (WebCore::SVGPaintServerPattern::setup):
84239
84240 2008-09-27  Keishi Hattori  <casey.hattori@gmail.com>
84241
84242         Fixed a bug in the JS syntax highlighter with multiple line tokens.
84243
84244         https://bugs.webkit.org/show_bug.cgi?id=21171
84245
84246         Reviewed by Tim Hatcher.
84247
84248         * page/inspector/SourceFrame.js:
84249         (syntaxHighlightJavascriptLine): Initialize previousMatchLength.
84250
84251 2008-09-27  Timothy Hatcher  <timothy@apple.com>
84252
84253         Change searching in the Profiles panel to not match the
84254         Self and Total columns when there are no units. The only
84255         column that is matched for unitless number searches is
84256         now the Calls column.
84257
84258         https://bugs.webkit.org/show_bug.cgi?id=21169
84259
84260         Reviewed by Sam Weinig.
84261
84262         * page/inspector/ProfileView.js:
84263         (WebInspector.ProfileView.prototype.performSearch):
84264
84265 2008-09-27  David Hyatt  <hyatt@apple.com>
84266
84267         Rename boundsGeometry -> boundsRect.  Rename geometryChanged -> frameRectsChanged.
84268
84269         Reviewed by Sam Weinig
84270
84271         * platform/ScrollView.h:
84272         * platform/Widget.h:
84273         (WebCore::Widget::boundsRect):
84274         (WebCore::Widget::invalidate):
84275         (WebCore::Widget::frameRectsChanged):
84276         * platform/gtk/ScrollViewGtk.cpp:
84277         (WebCore::ScrollViewScrollbar::frameRectsChanged):
84278         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
84279         (WebCore::ScrollView::setFrameRect):
84280         (WebCore::ScrollView::updateScrollbars):
84281         (WebCore::ScrollView::frameRectsChanged):
84282         * platform/gtk/ScrollbarGtk.cpp:
84283         (ScrollbarGtk::setFrameRect):
84284         (ScrollbarGtk::frameRectsChanged):
84285         * platform/gtk/ScrollbarGtk.h:
84286         * platform/gtk/WidgetGtk.cpp:
84287         * platform/qt/ScrollViewQt.cpp:
84288         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
84289         (WebCore::ScrollView::setFrameRect):
84290         (WebCore::ScrollView::frameRectsChanged):
84291         (WebCore::ScrollView::updateScrollbars):
84292         * platform/win/ScrollViewWin.cpp:
84293         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
84294         (WebCore::ScrollView::setFrameRect):
84295         (WebCore::ScrollView::updateScrollbars):
84296         (WebCore::ScrollView::frameRectsChanged):
84297         * plugins/PluginView.cpp:
84298         (WebCore::PluginView::frameRectsChanged):
84299         * plugins/PluginView.h:
84300
84301 2008-09-27  Simon Hausmann  <hausmann@webkit.org>
84302
84303         Refix the previous build fix to compile on non-Qt platforms, too.
84304
84305         * WebCore.pro: Don't pass -i to create_hashtable, added missing -n
84306         WebCore to generate the PrototypeTable in the WebCore namespace
84307         * bindings/js/JSEventTargetBase.h: Revert previous fix, the Prototype
84308         table remains in the Webcore namespace
84309         (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot):
84310
84311 2008-09-27  Simon Hausmann  <hausmann@webkit.org>
84312
84313         Fix compilation with gcc 4.3 (probably > 4.0)
84314
84315         * bindings/js/JSDOMWindowBase.cpp: Don't define static property
84316         get/put functions inside the WebCore namespace.
84317         * bindings/js/JSEventTargetBase.cpp: Ditto.
84318         * bindings/js/JSEventTargetNode.cpp: Ditto.
84319         * bindings/js/JSEventTargetSVGElementInstance.cpp: Ditto.
84320         * bindings/js/JSEventTargetBase.h: Forward declare
84321         JSEventTargetPrototypeTable in the JSC namespace as the lut.h file
84322         defines it in the JSC namespace.
84323         (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot): Add JSC::
84324         prefix for PrototypeTable symbol.
84325
84326 2008-09-27  David Hyatt  <hyatt@apple.com>
84327
84328         Rename frameGeometry to frameRect.  Rename setFrameGeometry to setFrameRect.
84329
84330         Reviewed by Dan Bernstein
84331
84332         * WebCore.base.exp:
84333         * page/FrameView.cpp:
84334         (WebCore::FrameView::FrameView):
84335         (WebCore::FrameView::updateControlTints):
84336         * platform/ScrollView.h:
84337         * platform/Scrollbar.cpp:
84338         (WebCore::Scrollbar::Scrollbar):
84339         (WebCore::Scrollbar::paint):
84340         (WebCore::Scrollbar::setFrameRect):
84341         * platform/Scrollbar.h:
84342         * platform/ScrollbarThemeComposite.cpp:
84343         (WebCore::ScrollbarThemeComposite::paint):
84344         * platform/Widget.h:
84345         (WebCore::Widget::x):
84346         (WebCore::Widget::y):
84347         (WebCore::Widget::width):
84348         (WebCore::Widget::height):
84349         (WebCore::Widget::size):
84350         (WebCore::Widget::pos):
84351         (WebCore::Widget::resize):
84352         (WebCore::Widget::move):
84353         * platform/gtk/ScrollViewGtk.cpp:
84354         (WebCore::ScrollViewScrollbar::geometryChanged):
84355         (WebCore::ScrollView::update):
84356         (WebCore::ScrollView::setFrameRect):
84357         (WebCore::ScrollView::updateScrollbars):
84358         (WebCore::ScrollView::scrollbarUnderMouse):
84359         (WebCore::ScrollView::paint):
84360         * platform/gtk/ScrollbarGtk.cpp:
84361         (ScrollbarGtk::setFrameRect):
84362         (ScrollbarGtk::geometryChanged):
84363         * platform/gtk/ScrollbarGtk.h:
84364         * platform/gtk/WidgetGtk.cpp:
84365         (WebCore::Widget::frameRect):
84366         (WebCore::Widget::setFrameRect):
84367         * platform/mac/ScrollbarThemeMac.mm:
84368         (WebCore::ScrollbarThemeMac::trackRect):
84369         (WebCore::ScrollbarThemeMac::paint):
84370         * platform/mac/WidgetMac.mm:
84371         (WebCore::Widget::frameRect):
84372         (WebCore::Widget::setFrameRect):
84373         * platform/qt/ScrollViewQt.cpp:
84374         (WebCore::ScrollView::setFrameRect):
84375         (WebCore::ScrollView::updateScrollbars):
84376         (WebCore::ScrollView::scrollbarUnderMouse):
84377         (WebCore::ScrollView::paint):
84378         * platform/qt/ScrollbarThemeQt.cpp:
84379         (WebCore::styleOptionSlider):
84380         * platform/qt/WidgetQt.cpp:
84381         (WebCore::Widget::frameRect):
84382         (WebCore::Widget::setFrameRect):
84383         * platform/win/PopupMenuWin.cpp:
84384         (WebCore::PopupMenu::invalidateItem):
84385         (WebCore::PopupMenu::valueChanged):
84386         (WebCore::PopupWndProc):
84387         * platform/win/ScrollViewWin.cpp:
84388         (WebCore::ScrollView::setFrameRect):
84389         (WebCore::ScrollView::updateScrollbars):
84390         (WebCore::ScrollView::scrollbarUnderMouse):
84391         (WebCore::ScrollView::paint):
84392         * platform/win/ScrollbarThemeSafari.cpp:
84393         (WebCore::ScrollbarThemeSafari::trackRect):
84394         * platform/win/WidgetWin.cpp:
84395         (WebCore::Widget::frameRect):
84396         (WebCore::Widget::setFrameRect):
84397         * platform/wx/WidgetWx.cpp:
84398         (WebCore::Widget::frameRect):
84399         (WebCore::Widget::setFrameRect):
84400         * plugins/PluginView.cpp:
84401         (WebCore::PluginView::setFrameRect):
84402         * plugins/PluginView.h:
84403         * plugins/gtk/PluginViewGtk.cpp:
84404         (WebCore::PluginView::updatePluginWidget):
84405         (WebCore::PluginView::paint):
84406         (WebCore::PluginView::init):
84407         * plugins/qt/PluginViewQt.cpp:
84408         (WebCore::PluginView::updatePluginWidget):
84409         (WebCore::PluginView::init):
84410         * plugins/win/PluginViewWin.cpp:
84411         (WebCore::PluginView::updatePluginWidget):
84412         (WebCore::PluginView::paintMissingPluginIcon):
84413         (WebCore::PluginView::paint):
84414         (WebCore::PluginView::init):
84415         * rendering/RenderLayer.cpp:
84416         (WebCore::RenderLayer::positionOverflowControls):
84417         * rendering/RenderListBox.cpp:
84418         (WebCore::RenderListBox::paintScrollbar):
84419         * rendering/RenderPart.cpp:
84420         (WebCore::RenderPart::updateWidgetPosition):
84421         * rendering/RenderWidget.cpp:
84422         (WebCore::RenderWidget::setWidgetGeometry):
84423         (WebCore::RenderWidget::updateWidgetPosition):
84424
84425 2008-09-27  David Hyatt  <hyatt@apple.com>
84426
84427         <rdar://problem/6252041> REGRESSION (4dp-TOT): Crash in Widget::platformWidget() when closing a PDF
84428
84429         This crash was lurking for a while and basically got exposed by my changes to visibleContentRect() to
84430         access an actual member variable.
84431
84432         Reviewed by Dan Bernstein
84433
84434         * page/FocusController.cpp:
84435         (WebCore::FocusController::setFocusedFrame):
84436
84437 2008-09-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
84438
84439         Attempt to fix QT Build. Not reviewed.
84440
84441         * WebCore.pro: add -n WebCore parameter to create_hash_table
84442
84443 2008-09-26  Gwenole Beauchesne  <gbeauchesne@splitted-desktop.org>
84444
84445         Reviewed by Eric Seidel.
84446
84447         http://bugs.webkit.org/show_bug.cgi?id=18905
84448         [GTK] Fix build with older pango (1.14.8)
84449
84450         * platform/graphics/gtk/FontGtk.cpp:
84451         * platform/gtk/Language.cpp:
84452         (_pango_get_lc_ctype):
84453         (pango_language_get_default):
84454
84455 2008-09-26  David Hyatt  <hyatt@apple.com>
84456
84457         https://bugs.webkit.org/show_bug.cgi?id=21168
84458
84459         Make contentsToWindow/windowToContents cross-platform.
84460
84461         Reviewed by Oliver Hunt
84462
84463         * platform/ScrollView.cpp:
84464         (WebCore::ScrollView::windowToContents):
84465         (WebCore::ScrollView::contentsToWindow):
84466         * platform/ScrollView.h:
84467         * platform/gtk/ScrollViewGtk.cpp:
84468         * platform/mac/ScrollViewMac.mm:
84469         * platform/qt/ScrollViewQt.cpp:
84470         * platform/win/ScrollViewWin.cpp:
84471         * platform/wx/ScrollViewWx.cpp:
84472
84473 2008-09-26  Sam Weinig  <sam@webkit.org>
84474
84475         GTK build fix.
84476
84477         * GNUmakefile.am:
84478
84479 2008-09-26  David Hyatt  <hyatt@apple.com>
84480
84481         Eliminate shouldUpdateWhileOffscreen from ScrollView.  Make the concept of not invalidating while
84482         offscreen cross-platform.  Rename the inWindow method to isOffscreen (which flips the boolean), since that
84483         more clearly conveys the intent of the method.  Make isOffscreen also check NSWindow visibility on Mac.
84484
84485         Reviewed by Oliver Hunt
84486
84487         * page/FrameView.cpp:
84488         (WebCore::FrameView::repaintContentRectangle):
84489         * page/FrameView.h:
84490         * platform/ScrollView.h:
84491         * platform/gtk/ScrollViewGtk.cpp:
84492         (WebCore::ScrollView::isOffscreen):
84493         * platform/mac/ScrollViewMac.mm:
84494         (WebCore::ScrollView::updateContents):
84495         (WebCore::ScrollView::isOffscreen):
84496         * platform/qt/ScrollViewQt.cpp:
84497         (WebCore::ScrollView::isOffscreen):
84498         * platform/win/ScrollViewWin.cpp:
84499         (WebCore::ScrollView::isOffscreen):
84500         * platform/wx/ScrollViewWx.cpp:
84501         (WebCore::ScrollView::isOffscreen):
84502         * rendering/RenderObject.cpp:
84503         (WebCore::RenderObject::willRenderImage):
84504
84505 2008-09-26  David Hyatt  <hyatt@apple.com>
84506
84507         https://bugs.webkit.org/show_bug.cgi?id=21164
84508
84509         Rework concept of allowsScrolling/setAllowsScrolling to be cross-platform.
84510
84511         Reviewed by Sam Weinig
84512
84513         * WebCore.base.exp:
84514         * page/FrameView.cpp:
84515         (WebCore::FrameView::setAllowsScrolling):
84516         * page/FrameView.h:
84517         * platform/ScrollView.cpp:
84518         (WebCore::ScrollView::setAllowsScrolling):
84519         * platform/ScrollView.h:
84520         (WebCore::ScrollView::allowsScrolling):
84521         * platform/win/ScrollViewWin.cpp:
84522         (WebCore::ScrollView::wheelEvent):
84523
84524 2008-09-26  Kevin Ollivier  <kevino@theolliviers.com>
84525
84526         wx build fixes after Widget/ScrollView changes.
84527
84528         * platform/wx/PopupMenuWx.cpp:
84529         (WebCore::PopupMenu::show):
84530         * platform/wx/ScrollViewWx.cpp:
84531         (WebCore::ScrollView::platformSetContentsSize):
84532         (WebCore::ScrollView::platformSetScrollbarModes):
84533         (WebCore::ScrollView::wheelEvent):
84534         * platform/wx/TemporaryLinkStubs.cpp:
84535         * platform/wx/WidgetWx.cpp:
84536         (WebCore::Widget::containingWindow):
84537
84538 2008-09-26  Timothy Hatcher  <timothy@apple.com>
84539
84540         Allow searching for paths by always performing the
84541         three search methods in the Elements panel and not
84542         assume a search with a "/" is a XPath query.
84543
84544         https://bugs.webkit.org/show_bug.cgi?id=21159
84545
84546         Reviewed by Geoff Garen.
84547
84548         * page/inspector/ElementsPanel.js:
84549         (WebInspector.ElementsPanel.prototype.performSearch):
84550
84551 2008-09-26  Sam Weinig  <sam@webkit.org>
84552
84553         Reviewed by Darin Adler.
84554
84555         Patch for https://bugs.webkit.org/show_bug.cgi?id=21152
84556         Speedup static property get/put
84557
84558         * DerivedSources.make:
84559         * GNUmakefile.am:
84560         * WebCore.pro:
84561         * WebCore.vcproj/WebCore.vcproj:
84562         * WebCore.xcodeproj/project.pbxproj:
84563         * bindings/js/JSDOMBinding.cpp:
84564         * bindings/js/JSDOMBinding.h:
84565         * bindings/js/JSDOMWindowBase.cpp:
84566         (WebCore::getDOMConstructor):
84567         (WebCore::jsDOMWindowBaseCrypto):
84568         (WebCore::jsDOMWindowBaseEvent):
84569         (WebCore::jsDOMWindowBaseImage):
84570         (WebCore::jsDOMWindowBaseMessageChannel):
84571         (WebCore::jsDOMWindowBaseOption):
84572         (WebCore::jsDOMWindowBaseXMLHttpRequest):
84573         (WebCore::jsDOMWindowBaseAudio):
84574         (WebCore::jsDOMWindowBaseXSLTProcessor):
84575         (WebCore::jsDOMWindowBaseOnabort):
84576         (WebCore::jsDOMWindowBaseOnblur):
84577         (WebCore::jsDOMWindowBaseOnchange):
84578         (WebCore::jsDOMWindowBaseOnclick):
84579         (WebCore::jsDOMWindowBaseOndblclick):
84580         (WebCore::jsDOMWindowBaseOnerror):
84581         (WebCore::jsDOMWindowBaseOnfocus):
84582         (WebCore::jsDOMWindowBaseOnkeydown):
84583         (WebCore::jsDOMWindowBaseOnkeypress):
84584         (WebCore::jsDOMWindowBaseOnkeyup):
84585         (WebCore::jsDOMWindowBaseOnload):
84586         (WebCore::jsDOMWindowBaseOnmousedown):
84587         (WebCore::jsDOMWindowBaseOnmousemove):
84588         (WebCore::jsDOMWindowBaseOnmouseout):
84589         (WebCore::jsDOMWindowBaseOnmouseover):
84590         (WebCore::jsDOMWindowBaseOnmouseup):
84591         (WebCore::jsDOMWindowBaseOnMouseWheel):
84592         (WebCore::jsDOMWindowBaseOnreset):
84593         (WebCore::jsDOMWindowBaseOnresize):
84594         (WebCore::jsDOMWindowBaseOnscroll):
84595         (WebCore::jsDOMWindowBaseOnsearch):
84596         (WebCore::jsDOMWindowBaseOnselect):
84597         (WebCore::jsDOMWindowBaseOnsubmit):
84598         (WebCore::jsDOMWindowBaseOnbeforeunload):
84599         (WebCore::jsDOMWindowBaseOnunload):
84600         (WebCore::jsDOMWindowBaseOnWebKitAnimationStart):
84601         (WebCore::jsDOMWindowBaseOnWebKitAnimationIteration):
84602         (WebCore::jsDOMWindowBaseOnWebKitAnimationEnd):
84603         (WebCore::jsDOMWindowBaseOnWebKitTransitionEnd):
84604         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
84605         (WebCore::JSDOMWindowBase::put):
84606         (WebCore::setJSDOMWindowBaseOnabort):
84607         (WebCore::setJSDOMWindowBaseOnblur):
84608         (WebCore::setJSDOMWindowBaseOnchange):
84609         (WebCore::setJSDOMWindowBaseOnclick):
84610         (WebCore::setJSDOMWindowBaseOndblclick):
84611         (WebCore::setJSDOMWindowBaseOnerror):
84612         (WebCore::setJSDOMWindowBaseOnfocus):
84613         (WebCore::setJSDOMWindowBaseOnkeydown):
84614         (WebCore::setJSDOMWindowBaseOnkeypress):
84615         (WebCore::setJSDOMWindowBaseOnkeyup):
84616         (WebCore::setJSDOMWindowBaseOnload):
84617         (WebCore::setJSDOMWindowBaseOnmousedown):
84618         (WebCore::setJSDOMWindowBaseOnmousemove):
84619         (WebCore::setJSDOMWindowBaseOnmouseout):
84620         (WebCore::setJSDOMWindowBaseOnmouseover):
84621         (WebCore::setJSDOMWindowBaseOnmouseup):
84622         (WebCore::setJSDOMWindowBaseOnMouseWheel):
84623         (WebCore::setJSDOMWindowBaseOnreset):
84624         (WebCore::setJSDOMWindowBaseOnresize):
84625         (WebCore::setJSDOMWindowBaseOnscroll):
84626         (WebCore::setJSDOMWindowBaseOnsearch):
84627         (WebCore::setJSDOMWindowBaseOnselect):
84628         (WebCore::setJSDOMWindowBaseOnsubmit):
84629         (WebCore::setJSDOMWindowBaseOnbeforeunload):
84630         (WebCore::setJSDOMWindowBaseOnunload):
84631         (WebCore::setJSDOMWindowBaseOnWebKitAnimationStart):
84632         (WebCore::setJSDOMWindowBaseOnWebKitAnimationIteration):
84633         (WebCore::setJSDOMWindowBaseOnWebKitAnimationEnd):
84634         (WebCore::setJSDOMWindowBaseOnWebKitTransitionEnd):
84635         (WebCore::setJSDOMWindowBaseEvent):
84636         (WebCore::setJSDOMWindowBaseAudio):
84637         (WebCore::setJSDOMWindowBaseImage):
84638         (WebCore::setJSDOMWindowBaseMessageChannel):
84639         (WebCore::setJSDOMWindowBaseOption):
84640         (WebCore::setJSDOMWindowBaseXMLHttpRequest):
84641         (WebCore::setJSDOMWindowBaseXSLTProcessor):
84642         * bindings/js/JSDOMWindowBase.h:
84643         * bindings/js/JSDOMWindowCustom.cpp:
84644         (WebCore::nonCachingStaticCloseFunctionGetter):
84645         (WebCore::nonCachingStaticBlurFunctionGetter):
84646         (WebCore::nonCachingStaticFocusFunctionGetter):
84647         (WebCore::nonCachingStaticPostMessageFunctionGetter):
84648         * bindings/js/JSDOMWindowCustom.h:
84649         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
84650         * bindings/js/JSEventTargetBase.cpp:
84651         * bindings/js/JSEventTargetBase.h:
84652         (WebCore::JSEventTargetBasePrototype::getOwnPropertySlot):
84653         (WebCore::JSEventTargetBasePrototype::classInfo):
84654         * bindings/js/JSEventTargetNode.cpp:
84655         (WebCore::):
84656         (WebCore::JSEventTargetNode::getOwnPropertySlot):
84657         (WebCore::JSEventTargetNode::put):
84658         * bindings/js/JSEventTargetNode.h:
84659         (WebCore::JSEventTargetNode::classInfo):
84660         (WebCore::JSEventTargetNode::prototypeClassName):
84661         * bindings/js/JSEventTargetSVGElementInstance.cpp:
84662         (WebCore::):
84663         (WebCore::JSEventTargetSVGElementInstance::getOwnPropertySlot):
84664         (WebCore::JSEventTargetSVGElementInstance::put):
84665         * bindings/js/JSEventTargetSVGElementInstance.h:
84666         (WebCore::JSEventTargetSVGElementInstance::classInfo):
84667         (WebCore::JSEventTargetSVGElementInstance::prototypeClassName):
84668         * bindings/js/JSHTMLInputElementCustom.cpp:
84669         (WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
84670         * bindings/js/JSHistoryCustom.cpp:
84671         (WebCore::nonCachingStaticBackFunctionGetter):
84672         (WebCore::nonCachingStaticForwardFunctionGetter):
84673         (WebCore::nonCachingStaticGoFunctionGetter):
84674         (WebCore::JSHistory::customGetOwnPropertySlot):
84675         * bindings/js/JSLocationCustom.cpp:
84676         (WebCore::nonCachingStaticReplaceFunctionGetter):
84677         (WebCore::nonCachingStaticReloadFunctionGetter):
84678         (WebCore::nonCachingStaticAssignFunctionGetter):
84679         (WebCore::JSLocation::customGetOwnPropertySlot):
84680         (WebCore::JSLocation::customPut):
84681         * bindings/scripts/CodeGeneratorJS.pm:
84682
84683 2008-09-26  David Hyatt  <hyatt@apple.com>
84684
84685         https://bugs.webkit.org/show_bug.cgi?id=21149
84686
84687         Make the concept of scroll modes cross-platform.  Move the scrollbars up into ScrollView as well.
84688         Eliminate the unused isScrollable() method.
84689
84690         Reviewed by Sam Weinig
84691
84692         * WebCore.base.exp:
84693         * page/FrameView.cpp:
84694         (WebCore::FrameView::resetScrollbars):
84695         (WebCore::FrameView::initScrollbars):
84696         (WebCore::FrameView::layout):
84697         * page/FrameView.h:
84698         * page/mac/WebCoreFrameView.h:
84699         * platform/ScrollView.cpp:
84700         (WebCore::ScrollView::init):
84701         (WebCore::ScrollView::setScrollbarModes):
84702         (WebCore::ScrollView::scrollbarModes):
84703         (WebCore::ScrollView::platformSetScrollbarModes):
84704         (WebCore::ScrollView::platformScrollbarModes):
84705         * platform/ScrollView.h:
84706         (WebCore::ScrollView::horizontalScrollbar):
84707         (WebCore::ScrollView::verticalScrollbar):
84708         (WebCore::ScrollView::isScrollViewScrollbar):
84709         (WebCore::ScrollView::setHorizontalScrollbarMode):
84710         (WebCore::ScrollView::setVerticalScrollbarMode):
84711         (WebCore::ScrollView::horizontalScrollbarMode):
84712         (WebCore::ScrollView::verticalScrollbarMode):
84713         (WebCore::ScrollView::convertSelfToChild):
84714         * platform/gtk/ScrollViewGtk.cpp:
84715         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
84716         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
84717         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
84718         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84719         (WebCore::ScrollView::updateScrollbars):
84720         (WebCore::ScrollView::scrollbarUnderMouse):
84721         (WebCore::ScrollView::isScrollViewScrollbar):
84722         (WebCore::ScrollView::paint):
84723         (WebCore::ScrollView::scroll):
84724         * platform/mac/ScrollViewMac.mm:
84725         (WebCore::ScrollView::platformSetScrollbarModes):
84726         (WebCore::ScrollView::platformScrollbarModes):
84727         * platform/qt/ScrollViewQt.cpp:
84728         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
84729         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
84730         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84731         (WebCore::ScrollView::horizontalScrollbar):
84732         (WebCore::ScrollView::verticalScrollbar):
84733         (WebCore::ScrollView::invalidateScrollbars):
84734         (WebCore::ScrollView::updateScrollbars):
84735         (WebCore::ScrollView::scrollbarUnderMouse):
84736         (WebCore::ScrollView::paint):
84737         (WebCore::ScrollView::scroll):
84738         * platform/win/ScrollViewWin.cpp:
84739         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
84740         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
84741         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
84742         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84743         (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
84744         (WebCore::ScrollView::ScrollViewPrivate::allowsScrolling):
84745         (WebCore::ScrollView::suppressScrollbars):
84746         (WebCore::ScrollView::updateScrollbars):
84747         (WebCore::ScrollView::scrollbarUnderMouse):
84748         (WebCore::ScrollView::paint):
84749         (WebCore::ScrollView::scroll):
84750         * platform/wx/ScrollViewWx.cpp:
84751         (WebCore::ScrollView::platformSetScrollbarModes):
84752         (WebCore::ScrollView::platformScrollbarModes):
84753
84754 2008-09-26  David Kilzer  <ddkilzer@apple.com>
84755
84756         Fix Mac build with XPATH and XSLT disabled
84757
84758         Reviewed by Alexey.
84759
84760         * bindings/objc/DOMUtility.mm:
84761         (JSC::createDOMWrapper): Conditionalize code with ENABLE(XPATH).
84762         * dom/XMLTokenizerLibxml2.cpp:
84763         (WebCore::errorFunc): Conditionalize method with ENABLE(XSLT) to
84764         prevent an unused code warning.
84765
84766 2008-09-26  Kevin McCullough  <kmccullough@apple.com>
84767
84768         Rubber stamped by Tim Hatcher.
84769
84770         Bug 21098: Crashing under Console::log
84771         - Speculative ASSERT to help find the problem.
84772
84773         * page/InspectorController.cpp:
84774         (WebCore::ConsoleMessage::isEqual):
84775
84776 2008-09-26  Holger Hans Peter Freyther  <zecke@selfish.org>
84777
84778         [gtk+] Build fix for the latest ScrollView changes
84779
84780         * platform/gtk/ScrollViewGtk.cpp:
84781         (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
84782         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
84783
84784 2008-09-26  Timothy Hatcher  <timothy@apple.com>
84785
84786         Fixes a bug where the console message repeat count would be wrong
84787         when typing commands in between repeated messages.
84788
84789         https://bugs.webkit.org/show_bug.cgi?id=21145
84790
84791         Reviewed by Kevin McCullough.
84792
84793         * page/InspectorController.cpp:
84794         (WebCore::InspectorController::clearConsoleMessages): Reset m_groupLevel.
84795         (WebCore::InspectorController::didCommitLoad): Call clearConsoleMessages.
84796         * page/inspector/Console.js:
84797         (WebInspector.Console.prototype.addMessage): Remember the original repeat count
84798         for each message as totalRepeatCount, since we now modify repeatCount to mean
84799         repeats since previous console command. If repeatCountBeforeCommand is a number,
84800         subtract that value from the repeatCount.
84801         (WebInspector.Console.prototype.clearMessages): Delete the repeatCountBeforeCommand
84802         and commandSincePreviousMessage properties.
84803
84804 2008-09-26  Eric Carlson  <eric.carlson@apple.com>
84805
84806         Reviewed by Antti
84807
84808         https://bugs.webkit.org/show_bug.cgi?id=21116
84809         <rdar://problem/5726325> Audio from <video> can still be heard after navigating
84810         back to page with <video>, then closing tab
84811
84812         Rename willSaveToCache/didRestoreFromCache callbacks to documentWillBecomeInactive/
84813         documentDidBecomeActive, and post documentWillBecomeInactive when a page is marked for
84814         deletion.
84815
84816         * dom/Document.cpp:
84817         (WebCore::Document::documentWillBecomeInactive):
84818         (WebCore::Document::documentDidBecomeActive):
84819         (WebCore::Document::registerForDocumentActivationCallbacks):
84820         (WebCore::Document::unregisterForDocumentActivationCallbacks):
84821         * dom/Document.h:
84822         * dom/Element.h:
84823         (WebCore::Element::documentWillBecomeInactive):
84824         (WebCore::Element::documentDidBecomeActive):
84825         * history/CachedPage.cpp:
84826         (WebCore::CachedPage::CachedPage):
84827         * html/HTMLFormElement.cpp:
84828         (WebCore::HTMLFormElement::~HTMLFormElement):
84829         (WebCore::HTMLFormElement::parseMappedAttribute):
84830         (WebCore::HTMLFormElement::documentDidBecomeActive):
84831         (WebCore::HTMLFormElement::willMoveToNewOwnerDocument):
84832         (WebCore::HTMLFormElement::didMoveToNewOwnerDocument):
84833         * html/HTMLFormElement.h:
84834         * html/HTMLInputElement.cpp:
84835         (WebCore::HTMLInputElement::~HTMLInputElement):
84836         (WebCore::HTMLInputElement::setInputType):
84837         (WebCore::HTMLInputElement::parseMappedAttribute):
84838         (WebCore::HTMLInputElement::needsActivationCallback):
84839         (WebCore::HTMLInputElement::registerForActivationCallbackIfNeeded):
84840         (WebCore::HTMLInputElement::unregisterForActivationCallbackIfNeeded):
84841         (WebCore::HTMLInputElement::documentDidBecomeActive):
84842         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
84843         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
84844         * html/HTMLInputElement.h:
84845         * html/HTMLMediaElement.cpp:
84846         (WebCore::HTMLMediaElement::HTMLMediaElement):
84847         (WebCore::HTMLMediaElement::~HTMLMediaElement):
84848         (WebCore::HTMLMediaElement::documentWillBecomeInactive):
84849         (WebCore::HTMLMediaElement::documentDidBecomeActive):
84850         * html/HTMLMediaElement.h:
84851         (WebCore::HTMLMediaElement::inActiveDocument):
84852         * loader/FrameLoader.cpp:
84853         (WebCore::FrameLoader::opened):
84854         * page/Page.cpp:
84855         (WebCore::Page::~Page):
84856         * rendering/RenderMedia.cpp:
84857         (WebCore::RenderMedia::updateControls):
84858         * rendering/RenderVideo.cpp:
84859         (WebCore::RenderVideo::updatePlayer):
84860         * svg/SVGSVGElement.cpp:
84861         (WebCore::SVGSVGElement::SVGSVGElement):
84862         (WebCore::SVGSVGElement::~SVGSVGElement):
84863         (WebCore::SVGSVGElement::documentWillBecomeInactive):
84864         (WebCore::SVGSVGElement::documentDidBecomeActive):
84865         * svg/SVGSVGElement.h:
84866
84867 2008-09-26  Ariya Hidayat  <ariya.hidayat@trolltech.com>
84868
84869         Reviewed by Simon
84870
84871         Fix the build inside Qt, don't create faulty prl files for now.
84872
84873         * WebCore.pro:
84874
84875 2008-09-26  Simon Hausmann  <hausmann@webkit.org>
84876
84877         Fix compilation on Qt/Windows
84878
84879         * Add WebCore/ to the include path so that config.h is found that enables JSC
84880         * Link against winmm for the multimedia timer functions
84881         * Include DateMath.h instead of JavaScriptCore/DateMath.h as file is in the kjs/
84882         subdirectory
84883         * In PluginViewWin.cpp don't use setPlatformWidget with the HWND for the Qt/Windows port
84884         but set m_window directly as setPlatformWidget takes a QWidget*.
84885
84886         * WebCore.pro:
84887         * platform/win/SystemTimeWin.cpp:
84888         * plugins/win/PluginViewWin.cpp:
84889         (WebCore::PluginView::init):
84890
84891 2008-09-26  Oliver Hunt  <oliver@apple.com>
84892
84893         Reviewed by Maciej Stachowiak.
84894
84895         Bug 21054: Construction of certain DOM objects is heavily regressed by r36675
84896         <https://bugs.webkit.org/show_bug.cgi?id=21054>
84897
84898         This performance regression is actually just a symptom of a correctness
84899         bug.  The constructor objects for a number of properties that have security
84900         checks on access were returning new objects each time.  The most obvious
84901         symptom of this bug is that window.Image != window.Image, etc.
84902
84903         The solution to this is to make sure we cache these constructors
84904         in the same way as all the other DOM constructors.  To achieve this
84905         without causing any refcount cycles it is necessary to replace the
84906         refcounted document pointer in the Image, MessageChannel, Option,
84907         XMLHttpRequest, and Audio constructor objects with a reference to
84908         the document's JS wrapper.
84909
84910         Tests: fast/dom/constructors-cached-navigate.html
84911                fast/dom/constructors-cached.html
84912
84913         * WebCore.xcodeproj/project.pbxproj:
84914         * bindings/js/JSAudioConstructor.cpp:
84915         (WebCore::JSAudioConstructor::mark):
84916         * bindings/js/JSAudioConstructor.h:
84917         (WebCore::JSAudioConstructor::document):
84918         * bindings/js/JSDOMWindowBase.cpp:
84919         (WebCore::getDOMConstructor):
84920         (WebCore::JSDOMWindowBase::getValueProperty):
84921         * bindings/js/JSDOMWindowBase.h:
84922         * bindings/js/JSHTMLOptionElementConstructor.cpp:
84923         (WebCore::JSHTMLOptionElementConstructor::mark):
84924         * bindings/js/JSHTMLOptionElementConstructor.h:
84925         (WebCore::JSHTMLOptionElementConstructor::document):
84926         * bindings/js/JSImageConstructor.cpp:
84927         (WebCore::JSImageConstructor::mark):
84928         * bindings/js/JSImageConstructor.h:
84929         (WebCore::JSImageConstructor::document):
84930         * bindings/js/JSXMLHttpRequestConstructor.cpp:
84931         (WebCore::JSXMLHttpRequestConstructor::mark):
84932         * bindings/js/JSXMLHttpRequestConstructor.h:
84933         (WebCore::JSXMLHttpRequestConstructor::document):
84934
84935 2008-09-26  Simon Hausmann  <hausmann@webkit.org>
84936
84937         Unreviewed one-liner build fix for the Qt/Windows build.
84938
84939         The build requires NPAPI support to be enabled, fix the condition in
84940         the .pro file for that.
84941
84942         * WebCore.pro:
84943
84944 2008-09-26  Trenton Schulz <twschulz@trolltech.com>
84945
84946         Reviewed by Simon.
84947
84948         Fix compilation with the Qt/Cocoa port.
84949
84950         * platform/qt/ScrollViewQt.cpp:
84951         (WebCore::ScrollView::updateScrollbars):
84952
84953 2008-09-26  Simon Hausmann  <hausmann@webkit.org>
84954
84955         Reviewed by Holger.
84956
84957         Fix compilation with VC9SP1, work around bug in TR1 library by
84958         disabling it.
84959
84960         * WebCore.pro:
84961
84962 2008-09-26  Simon Hausmann  <hausmann@webkit.org>
84963
84964         Reviewed by Holger.
84965
84966         Fix an lupdate() warning.
84967
84968         Don't use tr() in a class that is not a QObject, use
84969         QCoreApplication::translate() directly.
84970
84971         * platform/qt/ScrollbarQt.cpp:
84972         (WebCore::Scrollbar::handleContextMenuEvent):
84973
84974 2008-09-25  David Hyatt  <hyatt@apple.com>
84975
84976         Remove the scrollTo() method from FrameView, since it is not used by anyone.
84977
84978         Reviewed by Oliver Hunt
84979
84980         * page/FrameView.cpp:
84981         * page/FrameView.h:
84982
84983 2008-09-25  David Hyatt  <hyatt@apple.com>
84984
84985         Make scrollRectIntoViewRecursively cross-platform.
84986
84987         Reviewed by Oliver Hunt
84988
84989         * platform/ScrollView.cpp:
84990         (WebCore::ScrollView::scrollRectIntoViewRecursively):
84991         * platform/gtk/ScrollViewGtk.cpp:
84992         * platform/mac/ScrollViewMac.mm:
84993         * platform/qt/ScrollViewQt.cpp:
84994         * platform/win/ScrollViewWin.cpp:
84995         * platform/wx/ScrollViewWx.cpp:
84996
84997 2008-09-25  David Hyatt  <hyatt@apple.com>
84998
84999         https://bugs.webkit.org/show_bug.cgi?id=21133
85000
85001         Rename resizeContents method on ScrollView to setContentsSize (to match contentsSize()).  Make it
85002         cross-platform.
85003
85004         Reviewed by Oliver Hunt
85005
85006         * loader/FrameLoader.cpp:
85007         (WebCore::FrameLoader::begin):
85008         * page/FrameView.cpp:
85009         (WebCore::FrameView::adjustViewSize):
85010         * platform/ScrollView.cpp:
85011         (WebCore::ScrollView::setContentsSize):
85012         * platform/ScrollView.h:
85013         (WebCore::ScrollView::updateScrollbars):
85014         * platform/gtk/ScrollViewGtk.cpp:
85015         * platform/mac/ScrollViewMac.mm:
85016         (WebCore::ScrollView::platformSetContentsSize):
85017         * platform/qt/ScrollViewQt.cpp:
85018         * platform/win/ScrollViewWin.cpp:
85019         * platform/wx/ScrollViewWx.cpp:
85020         (WebCore::ScrollView::platformSetContentsSize):
85021
85022 2008-09-25  David Hyatt  <hyatt@apple.com>
85023
85024         https://bugs.webkit.org/show_bug.cgi?id=21132
85025
85026         Clean up the methods that actually do the scrolling in ScrollView.
85027
85028         Reviewed by Oliver Hunt
85029
85030         * html/HTMLBodyElement.cpp:
85031         (WebCore::HTMLBodyElement::setScrollLeft):
85032         (WebCore::HTMLBodyElement::setScrollTop):
85033         * loader/FrameLoader.cpp:
85034         (WebCore::FrameLoader::restoreScrollPositionAndViewState):
85035         * loader/ImageDocument.cpp:
85036         (WebCore::ImageDocument::imageClicked):
85037         * page/DOMWindow.cpp:
85038         (WebCore::DOMWindow::scrollBy):
85039         (WebCore::DOMWindow::scrollTo):
85040         * page/FrameView.cpp:
85041         (WebCore::FrameView::scrollTo):
85042         (WebCore::FrameView::setScrollPosition):
85043         * page/FrameView.h:
85044         * platform/ScrollView.cpp:
85045         (WebCore::ScrollView::maximumScrollPosition):
85046         * platform/ScrollView.h:
85047         (WebCore::ScrollView::contentsWidth):
85048         (WebCore::ScrollView::contentsHeight):
85049         (WebCore::ScrollView::scrollBy):
85050         * platform/gtk/ScrollViewGtk.cpp:
85051         (WebCore::ScrollView::setScrollPosition):
85052         * platform/mac/ScrollViewMac.mm:
85053         (WebCore::ScrollView::setScrollPosition):
85054         * platform/qt/ScrollViewQt.cpp:
85055         (WebCore::ScrollView::setScrollPosition):
85056         (WebCore::ScrollView::scrollRectIntoViewRecursively):
85057         * platform/win/ScrollViewWin.cpp:
85058         (WebCore::ScrollView::setScrollPosition):
85059         (WebCore::ScrollView::scrollRectIntoViewRecursively):
85060         * platform/wx/ScrollViewWx.cpp:
85061         (WebCore::ScrollView::setScrollPosition):
85062         * rendering/RenderLayer.cpp:
85063         (WebCore::RenderLayer::scrollByRecursively):
85064         (WebCore::RenderLayer::scrollRectToVisible):
85065
85066 2008-09-25  Dan Bernstein  <mitz@apple.com>
85067
85068         - attempted Windows build fix
85069
85070         * platform/win/ScrollViewWin.cpp:
85071         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
85072         (WebCore::ScrollView::setContentsPos):
85073         (WebCore::ScrollView::paint):
85074
85075 2008-09-25  Timothy Hatcher  <timothy@apple.com>
85076
85077         Revert the padding changes done in r36905 to prevent the
85078         scrollbar from overlapping the URLs in the Console.
85079
85080         https://bugs.webkit.org/show_bug.cgi?id=21126
85081
85082         * page/inspector/inspector.css:
85083
85084 2008-09-25  David Hyatt  <hyatt@apple.com>
85085
85086         https://bugs.webkit.org/show_bug.cgi?id=21129
85087
85088         Refactor contents size and scroll offset to be cross-platform.  Reduce further the number
85089         of platform-specific methods required of ScrollView implementations.
85090
85091         Reviewed by Tim Hatcher
85092
85093         * dom/MouseRelatedEvent.cpp:
85094         (WebCore::contentsX):
85095         (WebCore::contentsY):
85096         * html/HTMLBodyElement.cpp:
85097         (WebCore::HTMLBodyElement::scrollLeft):
85098         (WebCore::HTMLBodyElement::setScrollLeft):
85099         (WebCore::HTMLBodyElement::scrollTop):
85100         (WebCore::HTMLBodyElement::setScrollTop):
85101         * loader/FrameLoader.cpp:
85102         (WebCore::FrameLoader::saveScrollPositionAndViewStateToItem):
85103         * page/DOMWindow.cpp:
85104         (WebCore::DOMWindow::scrollX):
85105         (WebCore::DOMWindow::scrollY):
85106         * page/EventHandler.cpp:
85107         (WebCore::EventHandler::hitTestResultAtPoint):
85108         * page/FrameView.cpp:
85109         (WebCore::FrameView::scrollTo):
85110         (WebCore::FrameView::windowClipRect):
85111         * platform/ScrollView.cpp:
85112         (WebCore::ScrollView::visibleContentRect):
85113         (WebCore::ScrollView::contentsSize):
85114         (WebCore::ScrollView::platformContentsSize):
85115         * platform/ScrollView.h:
85116         (WebCore::ScrollView::scrollPosition):
85117         (WebCore::ScrollView::scrollOffset):
85118         (WebCore::ScrollView::scrollX):
85119         (WebCore::ScrollView::scrollY):
85120         (WebCore::ScrollView::contentsWidth):
85121         (WebCore::ScrollView::contentsHeight):
85122         * platform/gtk/ScrollViewGtk.cpp:
85123         (WebCore::ScrollView::ScrollViewPrivate::adjustmentChanged):
85124         (WebCore::ScrollView::setGtkAdjustments):
85125         (WebCore::ScrollView::resizeContents):
85126         (WebCore::ScrollView::contentsWidth):
85127         (WebCore::ScrollView::contentsHeight):
85128         (WebCore::ScrollView::scrollOffset):
85129         (WebCore::ScrollView::maximumScroll):
85130         (WebCore::ScrollView::scrollBy):
85131         (WebCore::ScrollView::suppressScrollbars):
85132         (WebCore::ScrollView::setHScrollbarMode):
85133         (WebCore::ScrollView::setVScrollbarMode):
85134         (WebCore::ScrollView::setScrollbarsMode):
85135         (WebCore::ScrollView::setFrameGeometry):
85136         (WebCore::ScrollView::updateScrollbars):
85137         * platform/mac/ScrollViewMac.mm:
85138         (WebCore::ScrollView::platformContentsSize):
85139         (WebCore::ScrollView::scrollBy):
85140         * platform/mac/WidgetMac.mm:
85141         (WebCore::Widget::convertFromContainingWindow):
85142         (WebCore::Widget::convertToContainingWindow):
85143         * platform/qt/ScrollViewQt.cpp:
85144         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
85145         (WebCore::ScrollView::resizeContents):
85146         (WebCore::ScrollView::setFrameGeometry):
85147         (WebCore::ScrollView::scrollOffset):
85148         (WebCore::ScrollView::maximumScroll):
85149         (WebCore::ScrollView::scrollBy):
85150         (WebCore::ScrollView::setHScrollbarMode):
85151         (WebCore::ScrollView::setVScrollbarMode):
85152         (WebCore::ScrollView::setScrollbarsMode):
85153         (WebCore::ScrollView::updateScrollbars):
85154         * platform/win/ScrollViewWin.cpp:
85155         (WebCore::ScrollView::ScrollViewPrivate::valueChanged):
85156         (WebCore::ScrollView::ScrollViewPrivate::setAllowsScrolling):
85157         (WebCore::ScrollView::resizeContents):
85158         (WebCore::ScrollView::setFrameGeometry):
85159         (WebCore::ScrollView::scrollOffset):
85160         (WebCore::ScrollView::maximumScroll):
85161         (WebCore::ScrollView::scrollBy):
85162         (WebCore::ScrollView::setHScrollbarMode):
85163         (WebCore::ScrollView::setVScrollbarMode):
85164         (WebCore::ScrollView::setScrollbarsMode):
85165         (WebCore::ScrollView::updateScrollbars):
85166         * platform/wx/ScrollViewWx.cpp:
85167         (WebCore::ScrollView::platformVisibleContentRect):
85168         (WebCore::ScrollView::platformContentsSize):
85169         * rendering/RenderBlock.cpp:
85170         (WebCore::RenderBlock::nodeAtPoint):
85171         * rendering/RenderLayer.cpp:
85172         (WebCore::RenderLayer::scrollRectToVisible):
85173         (WebCore::RenderLayer::calculateClipRects):
85174         (WebCore::RenderLayer::calculateRects):
85175         * rendering/RenderView.cpp:
85176         (WebCore::RenderView::absolutePosition):
85177         (WebCore::RenderView::computeAbsoluteRepaintRect):
85178
85179 2008-09-25  David Smith  <catfish.man@gmail.com>
85180
85181         Reviewed by Dave Hyatt.
85182
85183         Fix a nasty regression I introduced in the previous commit, which caused infinite recursion on facebook.
85184
85185         * dom/Element.cpp:
85186         (WebCore::Element::rareData):
85187         * dom/Element.h:
85188         * dom/Node.cpp:
85189         (WebCore::Node::rareData):
85190         * dom/Node.h:
85191
85192 2008-09-25  David Smith  <catfish.man@gmail.com>
85193
85194         Reviewed by Darin Adler.
85195
85196         https://bugs.webkit.org/show_bug.cgi?id=20980
85197         Split off uncommonly used data from Node similar to ElementRareData
85198
85199         Saves an OwnPtr and a short on Node, as well as providing room for an isContainer bit,
85200         which in turn allows inlining firstChild(), lastChild(), childNodeCount(), and childNode()
85201         for a 5-10+% performance win on SlickSpeed and assorted speedups on other tests.
85202
85203         * WebCore.base.exp:
85204         * WebCore.xcodeproj/project.pbxproj:
85205         * dom/ChildNodeList.cpp: Include ContainerNode to pick up its definitions for childNodeCount(), etc...
85206         * dom/ContainerNode.cpp: Set isContainer to true
85207         (WebCore::ContainerNode::ContainerNode):
85208         * dom/ContainerNode.h: These Node inlines are here to avoid including ContainerNode.h in Node.h
85209         (WebCore::Node::containerChildNodeCount): Use ContainerNode's definition, having proved that the Node is a container
85210         (WebCore::Node::containerChildNode): ditto
85211         (WebCore::Node::containerFirstChild): ditto
85212         (WebCore::Node::containerLastChild): ditto
85213         * dom/Element.cpp: Most of the changes here are moving ElementRareData to ElementRareData.h and NodeRareData.h
85214         (WebCore::Element::Element):
85215         (WebCore::Element::~Element):
85216         (WebCore::Element::rareData):
85217         (WebCore::Element::ensureRareData): Renamed from createRareData
85218         (WebCore::Element::createRareData): Used by ensureRareData to get the correct rareData type
85219         (WebCore::Element::attach): Check hasRareData rather than null-checking rareData()
85220         (WebCore::Element::detach): ditto
85221         (WebCore::Element::recalcStyle): ditto
85222         (WebCore::Element::focus):
85223         (WebCore::Element::minimumSizeForResizing): ditto
85224         (WebCore::Element::setMinimumSizeForResizing): ditto
85225         (WebCore::Element::computedStyle):
85226         (WebCore::Element::cancelFocusAppearanceUpdate): ditto
85227         * dom/Element.h:
85228         * dom/ElementRareData.h: Added; everything copied from Element.cpp
85229         (WebCore::defaultMinimumSizeForResizing):
85230         (WebCore::ElementRareData::ElementRareData):
85231         (WebCore::ElementRareData::resetComputedStyle):
85232         * dom/EventTargetNode.cpp:
85233         (WebCore::EventTargetNode::EventTargetNode): Pass the isContainer flag up the chain
85234         * dom/EventTargetNode.h:
85235         * dom/Node.cpp:
85236         (WebCore::Node::Node):
85237         (WebCore::Node::~Node): rareData cleanup code moved from Element and changed to use hasRareData
85238         (WebCore::Node::rareData):
85239         (WebCore::Node::ensureRareData):
85240         (WebCore::Node::createRareData):
85241         (WebCore::Node::tabIndex): nonzero tab indexes are now in rareData
85242         (WebCore::Node::setTabIndexExplicitly):
85243         (WebCore::Node::childNodes): NodeLists are now in rareData
85244         (WebCore::Node::setFocus):
85245         (WebCore::Node::rareDataFocused):
85246         (WebCore::Node::isFocusable):
85247         (WebCore::Node::isKeyboardFocusable):
85248         (WebCore::Node::registerDynamicNodeList): NodeLists are now in rareData
85249         (WebCore::Node::unregisterDynamicNodeList): ditto
85250         (WebCore::Node::notifyLocalNodeListsAttributeChanged): ditto
85251         (WebCore::Node::notifyLocalNodeListsChildrenChanged): ditto
85252         (WebCore::Node::getElementsByName): ditto
85253         (WebCore::Node::getElementsByClassName): ditto
85254         * dom/Node.h:
85255         (WebCore::Node::firstChild): Use isContainerNode() to devirtualize
85256         (WebCore::Node::lastChild): ditto
85257         (WebCore::Node::isContainerNode): Take advantage of a newly freed bit to store whether we're a container
85258         (WebCore::Node::focused): focus is in rareData if set
85259         (WebCore::Node::childTypeAllowed):
85260         (WebCore::Node::childNodeCount): Use isContainerNode() to devirtualize
85261         (WebCore::Node::childNode): ditto
85262         (WebCore::Node::hasRareData): Use another newly freed bit to store whether we have rare data; avoids doing hash lookups in the common case
85263         * dom/NodeRareData.h: Added. Most of this is just properties moved from Node
85264         (WebCore::NodeListsNodeData::~NodeListsNodeData): Moved from Node.cpp since we NodeRareData needs to put them in a HashTable :(
85265         (WebCore::NodeRareData::NodeRareData):
85266         (WebCore::NodeRareData::rareDataMap):
85267         (WebCore::NodeRareData::rareDataFromMap):
85268         (WebCore::NodeRareData::clearNodeLists):
85269         (WebCore::NodeRareData::setNodeLists):
85270         (WebCore::NodeRareData::nodeLists):
85271         (WebCore::NodeRareData::tabIndex):
85272         (WebCore::NodeRareData::setTabIndex):
85273         (WebCore::NodeRareData::tabIndexSetExplicitly):
85274         * dom/TreeWalker.cpp: Include ContainerNode to pick up its definitions for childNodeCount(), etc...
85275         * xml/XPathUtil.cpp: Include ContainerNode to pick up its definitions for childNodeCount(), etc...
85276
85277 2008-09-25  Holger Hans Peter Freyther  <zecke@selfish.org>
85278
85279         Reviewed by Simon Hausmann.
85280
85281         [qt] ImageBuffer::toDataURL implementation
85282
85283         There needs to be a Qt specific test result for the above mentioned
85284         implementation.
85285
85286         * platform/graphics/qt/ImageBufferQt.cpp:
85287         (WebCore::ImageBuffer::toDataURL):
85288
85289 2008-09-25  Holger Hans Peter Freyther  <zecke@selfish.org>
85290
85291         Reviewed by Simon Hausmann.
85292
85293         [qt] Implement SharedBuffer for Qt.
85294
85295         * WebCore.pro:
85296         * platform/qt/SharedBufferQt.cpp: Added.
85297         (WebCore::SharedBuffer::createWithContentsOfFile):
85298         * platform/qt/TemporaryLinkStubs.cpp:
85299
85300 2008-09-25  Feng Qian <feng@chromium.org>
85301
85302         Fix bug: https://bugs.webkit.org/show_bug.cgi?id=21032
85303         <rdar://problem/6243032>
85304
85305         Reviewed by Dave Hyatt.
85306
85307         Test: fast/dom/attribute-downcast-right.html
85308
85309         Add isMappedAttribute function to Attribute for checking if an object
85310         is an instance of MappedAttribute. Removed attributeItem,
85311         getAttributeItem functions from NamedMappedAttrMap, and callers
85312         expecting MappedAttribute have to check isMappedAttribute before
85313         downcasting the return value to MappedAttribute.
85314
85315         * css/CSSStyleSelector.cpp:
85316         (WebCore::CSSStyleSelector::styleForElement):
85317         * dom/Attribute.h:
85318         (WebCore::Attribute::isMappedAttribute):
85319         * dom/MappedAttribute.h:
85320         (WebCore::MappedAttribute::isMappedAttribute):
85321         * dom/NamedMappedAttrMap.cpp:
85322         (WebCore::NamedMappedAttrMap::declCount):
85323         (WebCore::NamedMappedAttrMap::mapsEquivalent):
85324         * dom/NamedMappedAttrMap.h:
85325         * dom/StyledElement.cpp:
85326         (WebCore::StyledElement::attributeChanged):
85327         * html/HTMLInputElement.cpp:
85328         (WebCore::HTMLInputElement::setInputType):
85329         * svg/SVGForeignObjectElement.cpp:
85330         (WebCore::addCSSPropertyAndNotifyAttributeMap):
85331         * svg/SVGStyledElement.cpp:
85332         (WebCore::SVGStyledElement::getPresentationAttribute):
85333
85334 2008-09-25  David Hyatt  <hyatt@apple.com>
85335
85336         https://bugs.webkit.org/show_bug.cgi?id=21120
85337
85338         Make visibleContentRect cross-platform.  Note this does add new horizontal/verticalScrollbar accessors
85339         to a bunch of platforms.  This is a temporary evil until the scrollbars get made cross-platform (and I
85340         didn't want to mix that change in with this patch).
85341
85342         Reviewed by Sam Weinig
85343
85344         * page/Frame.cpp:
85345         (WebCore::Frame::markAllMatchesForText):
85346         * page/FrameView.cpp:
85347         (WebCore::FrameView::repaintContentRectangle):
85348         (WebCore::FrameView::windowClipRect):
85349         (WebCore::FrameView::updateControlTints):
85350         * platform/ScrollView.cpp:
85351         (WebCore::ScrollView::visibleContentRect):
85352         (WebCore::ScrollView::platformVisibleContentRect):
85353         * platform/ScrollView.h:
85354         (WebCore::ScrollView::visibleWidth):
85355         (WebCore::ScrollView::visibleHeight):
85356         * platform/gtk/ScrollViewGtk.cpp:
85357         (WebCore::ScrollView::horizontalScrollbar):
85358         (WebCore::ScrollView::verticalScrollbar):
85359         * platform/mac/ScrollViewMac.mm:
85360         (WebCore::ScrollView::horizontalScrollbar):
85361         (WebCore::ScrollView::verticalScrollbar):
85362         (WebCore::ScrollView::platformVisibleContentRect):
85363         * platform/qt/ScrollViewQt.cpp:
85364         (WebCore::ScrollView::horizontalScrollbar):
85365         (WebCore::ScrollView::verticalScrollbar):
85366         * platform/win/ScrollViewWin.cpp:
85367         (WebCore::ScrollView::horizontalScrollbar):
85368         (WebCore::ScrollView::verticalScrollbar):
85369         * platform/wx/ScrollViewWx.cpp:
85370         (WebCore::ScrollView::platformVisibleContentRect):
85371         (WebCore::ScrollView::horizontalScrollbar):
85372         (WebCore::ScrollView::verticalScrollbar):
85373         * rendering/RenderLayer.cpp:
85374         (WebCore::RenderLayer::scrollRectToVisible):
85375         (WebCore::frameVisibleRect):
85376         * rendering/RenderView.cpp:
85377         (WebCore::RenderView::viewRect):
85378
85379 2008-09-25  David Smith  <catfish.man@gmail.com>
85380
85381         Reviewed by Timothy Hatcher
85382
85383         https://bugs.webkit.org/show_bug.cgi?id=21052
85384         Generalize id selector special case for querySelectorAll
85385
85386         By checking the element we get with getElementById against the selector, we can use the special case in many more circumstances.
85387         Changes results on http://native.khan.mozilla.org
85388         from
85389             #title: 2ms
85390             h1#title: 55ms
85391             div #title: 55ms
85392
85393         to:
85394             #title: 1ms
85395             h1#title: 2ms
85396             div #title: 5ms
85397
85398         * dom/Node.cpp:
85399         (WebCore::Node::querySelector):
85400         * dom/SelectorNodeList.cpp:
85401         (WebCore::createSelectorNodeList):
85402
85403 2008-09-25  David Hyatt  <hyatt@apple.com>
85404
85405         https://bugs.webkit.org/show_bug.cgi?id=21118
85406
85407         Make the concept of whether you can blit on scroll cross-platform on ScrollView.
85408
85409         Reviewed by Sam Weinig
85410
85411         * page/FrameView.cpp:
85412         (WebCore::FrameView::clear):
85413         (WebCore::FrameView::layout):
85414         (WebCore::FrameView::setUseSlowRepaints):
85415         (WebCore::FrameView::addSlowRepaintObject):
85416         (WebCore::FrameView::removeSlowRepaintObject):
85417         * platform/ScrollView.cpp:
85418         (WebCore::ScrollView::init):
85419         (WebCore::ScrollView::addChild):
85420         (WebCore::ScrollView::removeChild):
85421         (WebCore::ScrollView::setCanBlitOnScroll):
85422         * platform/ScrollView.h:
85423         (WebCore::ScrollView::canBlitOnScroll):
85424         * platform/gtk/ScrollViewGtk.cpp:
85425         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
85426         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
85427         (WebCore::ScrollView::ScrollView):
85428         * platform/mac/ScrollViewMac.mm:
85429         (WebCore::ScrollView::ScrollView):
85430         (WebCore::ScrollView::platformAddChild):
85431         (WebCore::ScrollView::platformRemoveChild):
85432         (WebCore::ScrollView::platformSetCanBlitOnScroll):
85433         * platform/qt/ScrollViewQt.cpp:
85434         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
85435         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
85436         (WebCore::ScrollView::ScrollView):
85437         * platform/win/ScrollViewWin.cpp:
85438         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
85439         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
85440         (WebCore::ScrollView::ScrollView):
85441         * platform/wx/ScrollViewWx.cpp:
85442         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
85443         (WebCore::ScrollView::ScrollView):
85444         (WebCore::ScrollView::scrollBy):
85445
85446 2008-09-25  Kevin McCullough  <kmccullough@apple.com>
85447
85448         Reviewed by Tim Hatcher.
85449
85450         Bug 21109: Console should right-align urls
85451
85452         * page/inspector/Console.js: Re-order the message elements so that when
85453         it overflows it doesn't get mixed in with the next message.
85454         * page/inspector/inspector.css:
85455
85456 2008-09-25  David Hyatt  <hyatt@apple.com>
85457
85458         https://bugs.webkit.org/show_bug.cgi?id=21113
85459
85460         Putting r36771 back in with a fix to the addPendingSheet check in CSSImportRule::insertedIntoParent.
85461
85462         Reviewed by Darin Adler
85463
85464         * css/CSSImportRule.cpp:
85465         (WebCore::CSSImportRule::insertedIntoParent):
85466         * css/CSSRule.cpp:
85467         (WebCore::CSSRule::parentStyleSheet):
85468         (WebCore::CSSRule::parentRule):
85469         * css/CSSStyleSheet.cpp:
85470         (WebCore::CSSStyleSheet::CSSStyleSheet):
85471         * css/CSSStyleSheet.h:
85472
85473 2008-09-25  Darin Adler  <darin@apple.com>
85474
85475         Reviewed by Adele Peterson.
85476
85477         - fix https://bugs.webkit.org/show_bug.cgi?id=21115
85478           <rdar://problem/6245773> REGRESSION (r34702): Safari no longer zips
85479           bundled documents
85480
85481         * html/HTMLFormElement.cpp:
85482         (WebCore::HTMLFormElement::formData): Use files() instead of value()
85483         to get the path, since value() now returns just the basename.
85484
85485 2008-09-25  Brady Eidson  <beidson@apple.com>
85486
85487         Rubberstamped by Mark Rowe
85488
85489         Roll out 36771 as it caused <rdar://problem/6246554>
85490         "nytimes.com doesn't display after returning to it with back/forward"
85491
85492         * css/CSSImportRule.cpp:
85493         (WebCore::CSSImportRule::insertedIntoParent):
85494         * css/CSSRule.cpp:
85495         (WebCore::CSSRule::parentStyleSheet):
85496         (WebCore::CSSRule::parentRule):
85497         * css/CSSStyleSheet.cpp:
85498         (WebCore::CSSStyleSheet::CSSStyleSheet):
85499         (WebCore::CSSStyleSheet::docLoader):
85500         * css/CSSStyleSheet.h:
85501         (WebCore::CSSStyleSheet::doc):
85502
85503 2008-09-25  Adam Roben  <aroben@apple.com>
85504
85505         Windows build fix
85506
85507         * WebCore.vcproj/WebCore.vcproj: Add ScrollView.cpp to the project.
85508
85509 2008-09-25  Dan Bernstein  <mitz@apple.com>
85510
85511         - Windows build fix
85512
85513         * platform/win/ScrollViewWin.cpp:
85514         (WebCore::ScrollView::addChildPlatformWidget):
85515         (WebCore::ScrollView::removeChildPlatformWidget):
85516
85517 2008-09-25  Timothy Hatcher  <timothy@apple.com>
85518
85519         Fixes a leak of ConsoleMessage seen when repeated console
85520         messages occur.
85521
85522         Reviewed by Mark Rowe.
85523
85524         * page/InspectorController.cpp:
85525         (WebCore::InspectorController::addConsoleMessage): Delete the repeat
85526         since we don't add it to m_consoleMessages.
85527
85528 2008-09-25  Kevin McCullough  <kmccullough@apple.com>
85529
85530         Reviewed by Dan Bernstein.
85531
85532         Bug 21105: XHRs logged in the console may show the wrong URL for the
85533         source
85534         - Get the url at the time of the send() and pass it on to the XHR.
85535
85536         * bindings/js/JSXMLHttpRequestCustom.cpp:
85537         (WebCore::JSXMLHttpRequest::send):
85538         * xml/XMLHttpRequest.cpp:
85539         (WebCore::XMLHttpRequest::didFinishLoading):
85540         * xml/XMLHttpRequest.h:
85541         (WebCore::XMLHttpRequest::setLastSendURL):
85542
85543 2008-09-25  Kevin McCullough  <kmccullough@apple.com>
85544
85545         Reviewed by Geoff and Tim.
85546
85547         Bug 20322: XHRs logged in the console do not have line numbers
85548         - Get the line number at the time of the send and pass it on to the XHR.
85549
85550         * bindings/js/JSXMLHttpRequestCustom.cpp:
85551         (WebCore::JSXMLHttpRequest::send):
85552         * xml/XMLHttpRequest.cpp:
85553         (WebCore::XMLHttpRequest::XMLHttpRequest):
85554         (WebCore::XMLHttpRequest::didFinishLoading):
85555         * xml/XMLHttpRequest.h:
85556         (WebCore::XMLHttpRequest::setLastSendLineNumber):
85557
85558 2008-09-25  Eric Carlson  <eric.carlson@apple.com>
85559
85560         Reviewed by Eric Seidel.
85561
85562         <rdar://problem/6171047> HTMLMediaElement "begin" event is now "loadstart"
85563         https://bugs.webkit.org/show_bug.cgi?id=21003
85564
85565         * dom/EventNames.h: remove "begin" event
85566         * html/HTMLMediaElement.cpp:
85567         (WebCore::HTMLMediaElement::load): Post "loadstart" event instead of "begin"
85568
85569 2008-09-25  Alexey Proskuryakov  <ap@webkit.org>
85570
85571         Reviewed by Eric Seidel.
85572
85573         https://bugs.webkit.org/show_bug.cgi?id=21097
85574         Calling a MessageChannel constructor from a destroyed document results in a crash
85575
85576         Test: fast/events/message-port-constructor-for-deleted-document.html
85577
85578         * bindings/js/JSMessageChannelConstructor.cpp:
85579         (WebCore::JSMessageChannelConstructor::construct):
85580         * bindings/js/JSMessageChannelConstructor.h:
85581         Made m_document a RefPtr.
85582
85583 2008-09-24  Alexey Proskuryakov  <ap@webkit.org>
85584
85585         Reviewed by Sam Weinig, Anders Carlsson, and (unofficially) Adam Barth.
85586
85587         https://bugs.webkit.org/show_bug.cgi?id=20879
85588         Implement HTML5 channel messaging
85589
85590         Tests: fast/events/message-channel-gc.html
85591                fast/events/message-port-deleted-document.html
85592                fast/events/message-port-deleted-frame.html
85593                fast/events/message-port-inactive-document.html
85594                fast/events/message-port.html
85595                http/tests/security/MessagePort/event-listener-context.html
85596
85597         * Configurations/WebCore.xcconfig:
85598         Removed unused  ENABLE_CROSS_DOCUMENT_MESSAGING macro.
85599
85600         * DerivedSources.make:
85601         Added MessageChannel and MessagePort.
85602
85603         * WebCore.pro: Made MessageEvent compilation unconditional, as it could not possibly be
85604         turmed off anyway. Added new files.
85605
85606         * GNUmakefile.am:
85607         * WebCore.pro:
85608         * WebCore.vcproj/WebCore.vcproj:
85609         * WebCore.xcodeproj/project.pbxproj:
85610         * WebCoreSources.bkl:
85611         Added new files.
85612
85613         * bindings/js/JSDOMWindowBase.h:
85614         * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::getValueProperty):
85615         Added suport for window.MessageChannel constructor.
85616
85617         * bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::postMessage):
85618         * page/DOMWindow.cpp:
85619         (WebCore::DOMWindow::postMessage):
85620         * page/DOMWindow.h:
85621         * page/DOMWindow.idl:
85622         Added support for three-argument postMessage (that posts a MessagePort).
85623
85624         * dom/EventTarget.cpp:
85625         (WebCore::EventTarget::toMessagePort):
85626         * dom/EventTarget.h:
85627         * bindings/js/JSEventTargetBase.cpp: (WebCore::toJS): Added MessagePort as yet another
85628         EventTarget variant.
85629
85630         * bindings/js/JSMessageChannelConstructor.h:
85631         * bindings/js/JSMessageChannelConstructor.cpp: Added a custom constructor, so that it could
85632         take a browsing context (document) parameter.
85633
85634         * bindings/js/JSMessageChannelCustom.cpp: Added.
85635         (WebCore::JSMessageChannel::mark): JSMessageChannel uses a custom mark function to mark
85636         port1 and port2 that it owns.
85637
85638         * bindings/js/JSMessagePortCustom.cpp: Added.
85639         (WebCore::JSMessagePort::startConversation):
85640         (WebCore::JSMessagePort::addEventListener):
85641         (WebCore::JSMessagePort::removeEventListener):
85642         (WebCore::JSMessagePort::dispatchEvent):
85643         (WebCore::JSMessagePort::setOnmessage):
85644         (WebCore::JSMessagePort::onmessage):
85645         (WebCore::JSMessagePort::setOnclose):
85646         (WebCore::JSMessagePort::onclose):
85647         (WebCore::JSMessagePort::mark):
85648         * dom/MessagePort.cpp: Added.
85649         * dom/MessagePort.h: Added.
85650         * dom/MessagePort.idl: Added.
85651         Added a MessagePort implementation. Currently, it is not thread-safe at all, and only works
85652         with Documents as contexts, but in the future, it will be used for communication with worker
85653         threads.
85654
85655         * bindings/objc/DOMInternal.h: Include "DOMMessagePortInternal.h". The new APIs do not
85656         really have Obj-C bindings, as they are far from being final, but a MessagePort stub is
85657         needed for MessageEvent.
85658
85659         * bindings/scripts/CodeGeneratorJS.pm: Include PlatformString.h for MessagePort happiness.
85660
85661         * dom/Document.cpp:
85662         (WebCore::MessagePortTimer::MessagePortTimer):
85663         (WebCore::MessagePortTimer::fired):
85664         (WebCore::Document::processMessagePortMessagesSoon):
85665         (WebCore::Document::~Document):
85666         (WebCore::Document::dispatchMessagePortEvents):
85667         (WebCore::Document::createdMessagePort):
85668         (WebCore::Document::destroyedMessagePort):
85669         * dom/Document.h:
85670         Document keeps track of all MessagePort objects that were created when it was fully active
85671         in its context.
85672
85673         * dom/EventNames.h: Added closeEvent.
85674
85675         * dom/MessageChannel.cpp: Added.
85676         (WebCore::MessageChannel::MessageChannel):
85677         (WebCore::MessageChannel::~MessageChannel):
85678         * dom/MessageChannel.h: Added.
85679         (WebCore::MessageChannel::create):
85680         (WebCore::MessageChannel::port1):
85681         (WebCore::MessageChannel::port2):
85682         * dom/MessageChannel.idl: Added.
85683         Addded JSMessageChannel implementation.
85684
85685         * dom/MessageEvent.cpp:
85686         (WebCore::MessageEvent::MessageEvent):
85687         (WebCore::MessageEvent::initMessageEvent):
85688         * dom/MessageEvent.h:
85689         (WebCore::MessageEvent::create):
85690         (WebCore::MessageEvent::messagePort):
85691         * dom/MessageEvent.idl:
85692         MessageEvent has a MessagePort member now, making it possible to pass ports across
85693         documents.
85694
85695 2008-09-25  David Smith  <catfish.man@gmail.com>
85696
85697         Reviewed by Eric Seidel
85698
85699         fix https://bugs.webkit.org/show_bug.cgi?id=21091
85700         Regression: querySelector matches tag names case sensitively
85701
85702         Tests: fast/dom/SelectorAPI/caseTag.html
85703                fast/dom/SelectorAPI/caseTagX.xhtml
85704
85705         * css/CSSParser.cpp:
85706         (WebCore::CSSParser::parseSelector): Add a Document argument, since tag case sensitivity is different for HTML documents
85707         * css/CSSParser.h:
85708         * dom/Node.cpp:
85709         (WebCore::Node::querySelector):
85710         (WebCore::Node::querySelectorAll):
85711
85712 2008-09-24  David Hyatt  <hyatt@apple.com>
85713
85714         https://bugs.webkit.org/show_bug.cgi?id=21084
85715
85716         Make the m_children member of ScrollView cross-platform.  Consolidate children add/remove
85717         functionality.  Add platform stubs for connecting/disconnecting the platform widgets.
85718
85719         Reviewed by Sam Weinig
85720
85721         * GNUmakefile.am:
85722         * WebCore.pro:
85723         * WebCore.vcproj/WebCore.vcproj:
85724         * WebCore.xcodeproj/project.pbxproj:
85725         * WebCoreSources.bkl:
85726         * platform/ScrollView.h:
85727         (WebCore::ScrollView::children):
85728         * platform/Widget.h:
85729         * platform/gtk/ScrollViewGtk.cpp:
85730         (WebCore::ScrollView::addChildPlatformWidget):
85731         (WebCore::ScrollView::removeChildPlatformWidget):
85732         (WebCore::ScrollView::geometryChanged):
85733         * platform/mac/ScrollViewMac.mm:
85734         (WebCore::ScrollView::addChildPlatformWidget):
85735         (WebCore::ScrollView::removeChildPlatformWidget):
85736         * platform/qt/ScrollViewQt.cpp:
85737         (WebCore::ScrollView::geometryChanged):
85738         (WebCore::ScrollView::addChildPlatformWidget):
85739         (WebCore::ScrollView::removeChildPlatformWidget):
85740         * platform/win/ScrollViewWin.cpp:
85741         (WebCore::ScrollView::geometryChanged):
85742         (WebCore::ScrollView::setParentVisible):
85743         (WebCore::ScrollView::show):
85744         (WebCore::ScrollView::hide):
85745         * platform/wx/ScrollViewWx.cpp:
85746         (WebCore::ScrollView::addChildPlatformWidget):
85747         (WebCore::ScrollView::removeChildPlatformWidget):
85748
85749 2008-09-25  Dan Bernstein  <mitz@apple.com>
85750
85751         Reviewed by Dave Hyatt.
85752
85753         - fix https://bugs.webkit.org/show_bug.cgi?id=21024
85754           <rdar://problem/6240821> Scrollbar not painted until hovered
85755
85756         * rendering/RenderWidget.cpp:
85757         (WebCore::RenderWidget::setWidgetGeometry): Replaced resizeWidget with
85758         this method, which sets both the location and the size.
85759         (WebCore::RenderWidget::setWidget): Replaced the call to resizeWidget
85760         with a call to the new method setWidgetGeometry. Positioning the
85761         widget correctly ensures that the scroll bars invalidate correctly when
85762         they are created and resized.
85763         * rendering/RenderWidget.h:
85764
85765 2008-09-24  Dan Bernstein  <mitz@apple.com>
85766
85767         Rubber-stamped by Sam Weinig.
85768
85769         - create a "style" subfolder under "rendering" and move style files to that folder
85770
85771         * WebCore.vcproj/WebCore.vcproj:
85772
85773 2008-09-24  Sam Weinig  <sam@webkit.org>
85774
85775         Reviewed by Maciej Stachowiak.
85776
85777         Remove staticFunctionGetter.  There is only one remaining user of
85778         staticFunctionGetter and it can be converted to use setUpStaticFunctionSlot.
85779
85780         * bindings/js/JSDOMWindowBase.cpp:
85781         (WebCore::JSDOMWindowBase::getOwnPropertySlot):
85782
85783 2008-09-24  Jeremy Moskovich  <jeremy@chromium.org>
85784
85785         Reviewed by Dan Bernstein.
85786
85787         Test: editing/spelling/inline_spelling_markers.html
85788
85789         - https://bugs.webkit.org/show_bug.cgi?id=20092
85790         Spelling markers positioned incorrectly in RTL text
85791
85792         Measure spelling markers with selectionRectForText() to fix RTL.
85793
85794         This patch also fixes hit-testing for spelling marker tool tips,
85795         which used to work only on the first line.
85796
85797         * rendering/InlineTextBox.cpp:
85798         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
85799
85800 2008-09-24  David Hyatt  <hyatt@apple.com>
85801
85802         https://bugs.webkit.org/show_bug.cgi?id=21074
85803
85804         Make sure the viewless scrollbar knows how to paint properly when transformed.
85805
85806         Reviewed by Sam Weinig
85807
85808         * platform/mac/ScrollbarThemeMac.mm:
85809         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
85810         (WebCore::ScrollbarThemeMac::paint):
85811
85812 2008-09-24  Nikolas Zimmermann  <zimmermann@kde.org>
85813
85814         Not reviewed. Try to fix win build.
85815
85816         * bindings/js/JSSVGElementInstanceCustom.cpp:
85817         (WebCore::toJS):
85818         * dom/ContainerNodeAlgorithms.h:
85819         (WebCore::removeAllChildrenInContainer):
85820         (WebCore::appendChildToContainer):
85821         (WebCore::Private::addChildNodesToDeletionQueue):
85822
85823 2008-09-24  Nikolas Zimmermann  <zimmermann@kde.org>
85824
85825         Reviewed by Oliver.
85826
85827         Add ContainerNodeAlgorithms.h, as central place to share algorithms
85828         operating on TreeShared-derived classes with a Node-style interface.
85829
85830         This allows SVGElementInstance & ContainerNode to share code.
85831
85832         * dom/ContainerNode.cpp:
85833         (WebCore::ContainerNode::removeAllChildren):
85834         (WebCore::ContainerNode::addChild):
85835         * dom/ContainerNode.h:
85836         * dom/ContainerNodeAlgorithms.h: Added.
85837         (WebCore::removeAllChildrenInContainer):
85838         (WebCore::appendChildToContainer):
85839         (WebCore::Private::NodeRemovalDispatcher::dispatch):
85840         (WebCore::Private::addChildNodesToDeletionQueue):
85841
85842 2008-09-24  Simon Fraser  <simon.fraser@apple.com>
85843
85844         Reviewed by Dave Hyatt
85845
85846         Wrap up dirtying the z-order list of the stacking context
85847         RenderLayer into a method.
85848         https://bugs.webkit.org/show_bug.cgi?id=21072
85849
85850         * rendering/RenderLayer.cpp:
85851         (WebCore::RenderLayer::setHasVisibleContent):
85852         (WebCore::RenderLayer::addChild):
85853         (WebCore::RenderLayer::removeChild):
85854         (WebCore::RenderLayer::dirtyStackingContextZOrderLists):
85855         (WebCore::RenderLayer::styleChanged):
85856         * rendering/RenderLayer.h:
85857         * rendering/RenderObject.cpp:
85858         (WebCore::RenderObject::setStyle):
85859
85860 2008-09-24  Kevin McCullough  <kmccullough@apple.com>
85861
85862         Reviewed by Tim.
85863
85864         Bug 21070: REGRESSION Repeated messages with arguments are not repeated
85865         or displayed multiple times
85866         - The Insepctor Controller was comparing JSValue pointers so thought the
85867         message was not a repeat, but the JS of the inspector compared the
85868         strings and so knew it was the same message and so overwrote the old
85869         message.
85870
85871         * page/InspectorController.cpp:
85872         (WebCore::ConsoleMessage::isEqual):
85873         (WebCore::InspectorController::addMessageToConsole):
85874         (WebCore::InspectorController::addConsoleMessage):
85875         (WebCore::InspectorController::startGroup):
85876         (WebCore::InspectorController::endGroup):
85877         * page/InspectorController.h:
85878
85879 2008-09-24  David Hyatt  <hyatt@apple.com>
85880
85881         Make sure the viewless Mac scrollbar responds properly to system preference changes (including the
85882         arrow placement preference and the thumb jump preference).
85883
85884         Reviewed by Adam Roben
85885
85886         * platform/Scrollbar.cpp:
85887         (WebCore::Scrollbar::Scrollbar):
85888         (WebCore::Scrollbar::~Scrollbar):
85889         * platform/ScrollbarTheme.h:
85890         (WebCore::ScrollbarTheme::registerScrollbar):
85891         (WebCore::ScrollbarTheme::unregisterScrollbar):
85892         * platform/mac/ScrollbarThemeMac.h:
85893         * platform/mac/ScrollbarThemeMac.mm:
85894         (+[ScrollbarPrefsObserver appearancePrefsChanged:]):
85895         (+[ScrollbarPrefsObserver behaviorPrefsChanged:]):
85896         (+[ScrollbarPrefsObserver registerAsObserver]):
85897         (WebCore::ScrollbarThemeMac::registerScrollbar):
85898         (WebCore::ScrollbarThemeMac::unregisterScrollbar):
85899         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
85900         (WebCore::ScrollbarThemeMac::preferencesChanged):
85901
85902 2008-09-24  Rob Buis  <buis@kde.org>
85903
85904         Reviewed by Darin.
85905
85906         https://bugs.webkit.org/show_bug.cgi?id=20557
85907         getScreenCTM() returns wrong values
85908
85909         Use the absolute position of the svg root when
85910         determining the screen ctm.
85911
85912         Test: svg/custom/getscreenctm-in-mixed-content2.xhtml
85913
85914         * svg/SVGSVGElement.cpp:
85915         (WebCore::SVGSVGElement::getScreenCTM):
85916
85917 2008-09-24  David Hyatt  <hyatt@apple.com>
85918
85919         Turn off support for CSS variables.
85920
85921         * ChangeLog:
85922         * css/CSSParser.cpp:
85923         (WebCore::CSSParser::createVariablesRule):
85924         (WebCore::CSSParser::addVariable):
85925         (WebCore::CSSParser::addVariableDeclarationBlock):
85926
85927 2008-09-24  David Hyatt  <hyatt@apple.com>
85928
85929         Back out the alternate forms of CSS variable call syntax (leaving only the -webkit-var version).
85930
85931         * css/CSSGrammar.y:
85932         * css/CSSParserValues.cpp:
85933         (WebCore::CSSParserValue::isVariable):
85934         * css/CSSPrimitiveValue.cpp:
85935         (WebCore::CSSPrimitiveValue::cleanup):
85936         (WebCore::CSSPrimitiveValue::getStringValue):
85937         (WebCore::CSSPrimitiveValue::cssText):
85938         (WebCore::CSSPrimitiveValue::parserValue):
85939         * css/CSSPrimitiveValue.h:
85940         (WebCore::CSSPrimitiveValue::):
85941         (WebCore::CSSPrimitiveValue::isVariable):
85942
85943 2008-09-24  Timothy Hatcher  <timothy@apple.com>
85944
85945         Fixes a regression where the "incorrect MIME-type" warning would not
85946         show up correctly in the Console or the resources sidebar.
85947
85948         Reviewed by Kevin McCullough.
85949
85950         * page/inspector/Resource.js:
85951         (WebInspector.Resource.prototype._addTip): Add the repeat count argument
85952         to the WebInspector.ConsoleMessage constructor call.
85953         (WebInspector.Resource.prototype._checkWarning): Ditto.
85954
85955 2008-09-23  Tor Arne Vestbø  <tavestbo@trolltech.com>
85956
85957         Reviewed by Simon.
85958
85959         Remove deprecated JS Qt bindings object call/construct code and fix autotests
85960
85961         * bridge/qt/qt_instance.cpp:
85962         (JSC::Bindings::QtInstance::QtInstance):
85963         * bridge/qt/qt_instance.h:
85964
85965 2008-09-23  Julien Chaffraix  <jchaffraix@pleyo.com>
85966
85967         Reviewed by Alp Toker. Landed by Jan Alonzo.
85968
85969         Bug 20883: [CURL] Add deferred loading
85970         https://bugs.webkit.org/show_bug.cgi?id=20883
85971
85972         Implement deferred loading for the libcURL backend using curl_easy_pause.
85973         As the method was introduced in version 7.18.0, all the code checks for libcURL
85974         version.
85975
85976         * platform/network/curl/ResourceHandleCurl.cpp:
85977         (WebCore::ResourceHandle::setDefersLoading):
85978         * platform/network/curl/ResourceHandleManager.cpp:
85979         (WebCore::writeCallback): Add an assertion that deferred loading is not
85980         activated.
85981         (WebCore::headerCallback): Ditto.
85982         (WebCore::readCallback): Ditto.
85983         (WebCore::ResourceHandleManager::dispatchSynchronousJob): Force
85984         defersLoading to be false in order to avoid triggering an assertion.
85985         (WebCore::ResourceHandleManager::initializeHandle): If deferred loading is
85986         activated, pause the easy handle.
85987
85988 2008-09-23  Matt Lilek  <webkit@mattlilek.com>
85989
85990         Reviewed by Tim Hatcher.
85991
85992         Inspector search field style tweaks.
85993
85994         * page/inspector/inspector.css:
85995
85996 2008-09-23  Nikolas Zimmermann  <zimmermann@kde.org>
85997
85998         Reviewed by Eric.
85999
86000         Fixes: https://bugs.webkit.org/show_bug.cgi?id=21046 (Several LayoutTests crash)
86001
86002         Fix missing negation in EventTargetNode::insertedIntoDocument.
86003         Made handleLocalEvents() virtual again, HTMLFormElement overrides it.
86004         Remove code, that wasn't supposed to go in in dispatchGenericEvent().
86005
86006         * dom/EventTargetNode.cpp:
86007         (WebCore::EventTargetNode::insertedIntoDocument):
86008         (WebCore::EventTargetNode::dispatchGenericEvent):
86009         * dom/EventTargetNode.h:
86010
86011 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86012
86013         Adds search support to the Profiles panel.
86014
86015         The Profiles panel supports a few types of queries:
86016          * Standard string matching for function names and file URLs.
86017          * Greater than and less than search for numeric columns.
86018            So a query of ">24" will match all rows that have calls
86019            greater than 24. Or "<=42" will match all 42 or less.
86020          * Percent and time units. Adding a unit of "s", "ms" or "%"
86021            is supported and will match only the Self and Total columns.
86022            So a query of ">1.25s" will match all rows that took longer
86023            than 1.25 seconds.
86024
86025         Reviewed by Oliver Hunt.
86026
86027         * page/inspector/ProfileView.js:
86028         (WebInspector.ProfileView.prototype.hide): Reset _currentSearchResultIndex to -1. So the next time
86029         it will start at the first result.
86030         (WebInspector.ProfileView.prototype.refreshShowAsPercents): Moved from the bottom of the file.
86031         (WebInspector.ProfileView.prototype.searchCanceled): Clear the search properties and refresh highlighted
86032         data grid nodes.
86033         (WebInspector.ProfileView.prototype.performSearch): Search the profile nodes.
86034         (WebInspector.ProfileView.prototype.jumpToFirstSearchResult): Does what the function says. Calls _jumpToSearchResult.
86035         (WebInspector.ProfileView.prototype.jumpToLastSearchResult): Ditto.
86036         (WebInspector.ProfileView.prototype.jumpToNextSearchResult): Ditto.
86037         (WebInspector.ProfileView.prototype.jumpToPreviousSearchResult): Ditto.
86038         (WebInspector.ProfileView.prototype.showingFirstSearchResult): Does what the function says.
86039         (WebInspector.ProfileView.prototype.showingLastSearchResult): Ditto.
86040         (WebInspector.ProfileView.prototype._jumpToSearchResult): Select and reveal the profile node.
86041         Expand all the ancestors first so the profile node will have a DataGridNode.
86042         (WebInspector.ProfileView.prototype._changeView): Perform the search again on the new tree.
86043         (WebInspector.ProfileDataGridNode.prototype.createCell): Add the highlight class to cells that
86044         have search matches.
86045         * page/inspector/ProfilesPanel.js:
86046         (WebInspector.ProfilesPanel.prototype.reset): Call searchCanceled and delete the currentQuery.
86047         (WebInspector.ProfilesPanel.prototype.showProfile): Use profileViewForProfile.
86048         (WebInspector.ProfilesPanel.prototype.showView): Call showProfile. Used by Panel to show a view.
86049         (WebInspector.ProfilesPanel.prototype.profileViewForProfile): Create the ProfileView if needed.
86050         (WebInspector.ProfilesPanel.prototype.closeVisibleView): Renamed visibleProfileView  to visibleView.
86051         (WebInspector.ProfilesPanel.prototype.get searchableViews): Return all the views.
86052         (WebInspector.ProfilesPanel.prototype.searchMatchFound): Update the sidebar search matches.
86053         (WebInspector.ProfilesPanel.prototype.searchCanceled): Clear all the sidebar search matches.
86054         (WebInspector.ProfileSidebarTreeElement.prototype.set searchMatches): Set the class and bubbleText.
86055         * page/inspector/inspector.css: New style rules for the cell highlight color.
86056
86057 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86058
86059         Adds search support to the Resources and Scripts panels.
86060
86061         https://bugs.webkit.org/show_bug.cgi?id=21005
86062
86063         Reviewed by Oliver Hunt.
86064
86065         * page/inspector/Images/searchSmallBlue.png: Added.
86066         * page/inspector/Images/searchSmallBrightBlue.png: Added.
86067         * page/inspector/Images/searchSmallGray.png: Added.
86068         * page/inspector/Images/searchSmallWhite.png: Added.
86069         * page/inspector/ResourceView.js:
86070         (WebInspector.ResourceView.prototype.attach): Attempt to attach to "resource-views"
86071         or "script-resource-views" since one might not be created yet.
86072         * page/inspector/ResourcesPanel.js:
86073         (WebInspector.ResourcesPanel.prototype.show): Hide any views that are visible that
86074         are not this panel's current visible view. This can happen when a ResourceView is
86075         visible in the Scripts panel then switched to the this panel.
86076         (WebInspector.ResourcesPanel.prototype.get searchableViews): Return all views, with the
86077         visibleView first.
86078         (WebInspector.ResourcesPanel.prototype.searchResultsSortFunction): Return a sort function
86079         that uses the current graph search function. So cycling through results will be in the order
86080         things appear in the sidebar.
86081         (WebInspector.ResourcesPanel.prototype.searchMatchFound): Update the search matches on the
86082         resource's sidebar tree element.
86083         (WebInspector.ResourcesPanel.prototype.searchCanceled): Restore the error and warning bubbles
86084         in the sidebar. Calls the Panel prototype's searchCanceled.
86085         (WebInspector.ResourcesPanel.prototype.performSearch): Hide all the error and warning bubbles
86086         in the sidebar. Calls the Panel prototype's performSearch.
86087         (WebInspector.ResourcesPanel.prototype.reset): Call searchCanceled and delete the currentQuery.
86088         (WebInspector.ResourcesPanel.prototype.addMessageToResource): Don't call updateErrorsAndWarnings
86089         if there is a current search query.
86090         (WebInspector.ResourcesPanel.prototype.clearMessages): Ditto.
86091         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded): Ditto.
86092         (WebInspector.ResourcesPanel.prototype.showView): Call showResource. Used by Panel to show a view.
86093         (WebInspector.ResourceSidebarTreeElement.prototype.resetBubble): Clear all the classes and content.
86094         (WebInspector.ResourceSidebarTreeElement.prototype.set searchMatches): Set the bubbleText and class.
86095         (WebInspector.ResourceSidebarTreeElement.prototype.updateErrorsAndWarnings): Call resetBubble.
86096         * page/inspector/ScriptView.js:
86097         (WebInspector.ScriptView): Set _sourceFrameSetup to flase.
86098         (WebInspector.ScriptView.prototype.hide): Reset _currentSearchResultIndex to -1. So the next time
86099         it will start at the first result.
86100         (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded): Add an event listener for "syntax
86101         highlighting complete".
86102         (WebInspector.ScriptView.prototype): Share many methods with SourceView.
86103         * page/inspector/ScriptsPanel.js:
86104         (WebInspector.ScriptsPanel.prototype.show): Hide any views that are visible that are not this
86105         This can happen when a ResourceView is visible in the Resources panel then switched to the this panel.
86106         (WebInspector.ScriptsPanel.prototype.get searchableViews): Return all views, with the visibleView first.
86107         (WebInspector.ScriptsPanel.prototype.reset): Call searchCanceled and delete the currentQuery.
86108         (WebInspector.ScriptsPanel.prototype.showView): Call _showScriptOrResource. Used by Panel to show a view.
86109         (WebInspector.ScriptsPanel.prototype._sourceViewForScriptOrResource): Added helper.
86110         * page/inspector/SourceFrame.js:
86111         (WebInspector.SourceFrame.prototype.syntaxHighlightJavascript): Dispatch a "syntax highlighting complete" event.
86112         * page/inspector/SourceView.js:
86113         (WebInspector.SourceView.prototype.hide):
86114         (WebInspector.SourceView.prototype.detach):
86115         (WebInspector.SourceView.prototype._resourceLoadingFinished): Moved from the bottom of the file.
86116         (WebInspector.SourceView.prototype._addBreakpoint): Ditto.
86117         (WebInspector.SourceView.prototype.searchCanceled): Delete search properties.
86118         (WebInspector.SourceView.prototype.performSearch): Search the frame if it is loaded, otherwise
86119         store the worker function as _delayedFindSearchMatches and call it later in _sourceFrameSetupFinished.
86120         (WebInspector.SourceView.prototype.jumpToFirstSearchResult):
86121         (WebInspector.SourceView.prototype.jumpToLastSearchResult):
86122         (WebInspector.SourceView.prototype.jumpToNextSearchResult):
86123         (WebInspector.SourceView.prototype.jumpToPreviousSearchResult):
86124         (WebInspector.SourceView.prototype.showingFirstSearchResult):
86125         (WebInspector.SourceView.prototype.showingLastSearchResult):
86126         (WebInspector.SourceView.prototype._jumpToSearchResult): Selects the found Range.
86127         (WebInspector.SourceView.prototype._sourceFrameSetupFinished): Calls _delayedFindSearchMatches.
86128         (WebInspector.SourceView.prototype._syntaxHighlightingComplete): Call _sourceFrameSetupFinished.
86129         * page/inspector/inspector.css:
86130
86131 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86132
86133         Rename some properties of ResourcesPanel and ScriptsPanel to be the same,
86134         so future code can be shared.
86135
86136         https://bugs.webkit.org/show_bug.cgi?id=21005
86137
86138         Reviewed by Oliver Hunt.
86139
86140         * page/inspector/ResourcesPanel.js: Renamed resourceViews to viewsContainerElement.
86141         And visibleResourceView to visibleView.
86142         * page/inspector/ScriptsPanel.js: Renamed scriptResourceViews to viewsContainerElement.
86143
86144 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86145
86146         Highlight all matched search results in the Elements panel DOM tree.
86147
86148         https://bugs.webkit.org/show_bug.cgi?id=21005
86149
86150         Reviewed by Oliver Hunt.
86151
86152         * page/inspector/ElementsPanel.js:
86153         (WebInspector.ElementsPanel.prototype.searchCanceled): Clear the highlight
86154         on all previous search results.
86155         (WebInspector.ElementsPanel.prototype.performSearch): Set the hihglight
86156         on all new search results.
86157         * page/inspector/ElementsTreeOutline.js:
86158         (WebInspector.ElementsTreeElement): Delay setting the title until onattach.
86159         (WebInspector.ElementsTreeElement.prototype.get/set highlighted): Sets or removes
86160         the highlighted class on the listItemElement.
86161         (WebInspector.ElementsTreeElement.prototype.onattach): Set the highlighted class
86162         if needed. Calls _updateTitle.
86163         (WebInspector.ElementsTreeElement.prototype._updateTitle): Adds a span with the highlight
86164         class so it can be styled when the highlighted class is present.
86165         * page/inspector/inspector.css: New style rules for the hihglight.
86166
86167 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86168
86169         Add search support to the Elements panel.
86170
86171         https://bugs.webkit.org/show_bug.cgi?id=21005
86172
86173         Reviewed by Oliver Hunt.
86174
86175         * page/inspector/ElementsPanel.js:
86176         (WebInspector.ElementsPanel.prototype.searchCanceled): Call updateSearchMatchesCount
86177         with a 0 match count to rest. Reset the other search properties.
86178         (WebInspector.ElementsPanel.prototype.performSearch): Evaluates the search as an XPath
86179         query and a CSS selector on all the Documents in the page. Remembers the found nodes
86180         and avoids duplicates. Focuses the first result.
86181         (WebInspector.ElementsPanel.prototype.jumpToNextSearchResult): Focuses the next result.
86182         (WebInspector.ElementsPanel.prototype.jumpToPreviousSearchResult): Focuses the previous result.
86183
86184 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86185
86186         Add support to Panel that allows easy searching of sub-views.
86187
86188         https://bugs.webkit.org/show_bug.cgi?id=21005
86189
86190         Reviewed by Oliver Hunt.
86191
86192         * page/inspector/Panel.js:
86193         (WebInspector.Panel.prototype.searchCanceled): Call searchCanceled on all the
86194         views in the search results and delete the currentQuery property. Call
86195         WebInspector.updateSearchMatchesCount wit ha 0 match count to rest. Reset the
86196         other search properties.
86197         (WebInspector.Panel.prototype.performSearch): Call searchCanceled since it will
86198         reset everything we need before doing a new search. Get an array of searchableViews
86199         from the panel, implemented by sub-classes. Iterate over the views one-by-one
86200         with an interval to prevent blocking the UI for large lists of searchableViews.
86201         This keeps the interface really responsive. Pass a finishedCallback function to
86202         the performSearch on each view so it can notify the panel of results.
86203         (WebInspector.Panel.prototype.jumpToNextSearchResult): Finds the index in the
86204         searchResults of the visibleView, so we know where in the results we are.
86205         This is done every time incase the user manually navigates to a new view.
86206         If the view is showing the last result, jump to the next view and show it's
86207         first result. Otherwise jump to the next result in the current view.
86208         (WebInspector.Panel.prototype.jumpToPreviousSearchResult): Ditto, but in reverse.
86209
86210 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86211
86212         Add support for asking the current panel to perform a search, find next/previous and clear.
86213         A search is performed on the new new current panel when switching between panels. The search
86214         label/placeholder in the toolbar now includes the panel name to make it clear that panel will
86215         be searched. The search field contents are selected when Command/Control-F or Enter/Return
86216         is pressed, so the user can easily type an entirely new query. The search match count shows
86217         up in the toolbar next to the search field.
86218
86219         Also changed:
86220          * Rename lastQuery to currentQuery since it better matches the truth.
86221          * Set the search field "results" attribute to zero since results arn't saved for
86222            how we use the search field.
86223          * Make repeated presses of the Return key jump to the next search result instead
86224            of doing nothing.
86225          * Increased the search field width.
86226
86227         https://bugs.webkit.org/show_bug.cgi?id=21005
86228
86229         Reviewed by Oliver Hunt.
86230
86231         * English.lproj/localizedStrings.js: New strings.
86232         * page/inspector/inspector.css: New styles.
86233         * page/inspector/inspector.html: Add the search-results-matches element. Add the
86234         incremental attribute to the search field and set the results attribute to zero.
86235         * page/inspector/inspector.js:
86236         (WebInspector.set currentPanel): perform the search on the new panel.
86237         (WebInspector.loaded): Change the event listeners and remove code that changes
86238         the search label text.
86239         (WebInspector.documentKeyDown): Add support for Command/Control-G and
86240         Command/Control-Shift-G. To jump to the next and previous search results.
86241         (WebInspector.updateSearchLabel): Added. Update the search placeholder/label.
86242         This does different things depending on the attached state.
86243         (WebInspector.searchKeyDown): Call preventDefault since this was the Enter key.
86244         This prevents a "search" event from firing for key down. We handle the Enter key
86245         on key up in searchKeyUp. This stops performSearch from being called twice in a row.
86246         (WebInspector.searchKeyUp): Calls performSearch when it is the Enter key.
86247         (WebInspector.performSearch): Delete the currentQuery property and call searchCanceled
86248         on all the panels. Call jumpToNextSearchResult when this is the same query or a forced search.
86249         Call updateSearchMatchesCount to reset the matches count in the toolbar.
86250         (WebInspector.updateSearchMatchesCount): Added. Updates the matches count in the toolbar.
86251
86252 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86253
86254         Remove the previous Inspector search code to make room for the new stuff.
86255
86256         https://bugs.webkit.org/show_bug.cgi?id=21005
86257
86258         Reviewed by Oliver Hunt.
86259
86260         * page/inspector/inspector.css:
86261         * page/inspector/inspector.html:
86262         * page/inspector/inspector.js:
86263         (WebInspector.get/set showingSearchResults): Removed.
86264         (WebInspector.searchResultsKeyDown): Removed.
86265         (WebInspector.searchResultsResizerDragStart): Removed.
86266         (WebInspector.searchResultsResizerDragEnd): Removed.
86267         (WebInspector.searchResultsResizerDrag): Removed.
86268         (WebInspector.performSearch): Removed searching parts.
86269
86270 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86271
86272         Use the Array.remove helper function in more places.
86273
86274         https://bugs.webkit.org/show_bug.cgi?id=21037
86275
86276         Reviewed by Kevin McCullough.
86277
86278         * page/inspector/ResourceCategory.js:
86279         (WebInspector.ResourceCategory.prototype.removeResource): Use Array.remove.
86280         * page/inspector/ResourcesPanel.js:
86281         (WebInspector.ResourcesPanel.prototype.removeResource): Ditto.
86282         * page/inspector/inspector.js:
86283         (WebInspector.removeResource): Ditto.
86284
86285 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86286
86287         Fixes a bug where inspecting a node after reloading the page
86288         would not reveal the node in the DOM tree. The TreeOutline
86289         was not being told to forget decendants of a removed child.
86290         So old TreeElements would be found that are not in the tree.
86291
86292         https://bugs.webkit.org/show_bug.cgi?id=21036
86293
86294         Reviewed by Kevin McCullough.
86295
86296         * page/inspector/treeoutline.js:
86297         (TreeOutline._removeChildAtIndex): Call _forgetChildrenRecursive
86298         in addition to _forgetTreeElement.
86299         (TreeOutline._removeChildren): Call _forgetChildrenRecursive
86300         in addition to _forgetTreeElement.
86301         (TreeOutline._rememberTreeElement): Use Array.indexOf to quickly
86302         search for known elements.
86303         (TreeOutline._forgetTreeElement): Use Array.remove to remove elements.
86304         (TreeOutline._forgetChildrenRecursive): Recursively traverse the
86305         descendants and call _forgetTreeElement.
86306         * page/inspector/utilities.js:
86307         (Array.prototype.remove): Speed up this function by using Array.indexOf
86308         when onlyFirst is true.
86309
86310 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86311
86312         Fixes a bug where inspecting some short text nodes does
86313         not reveal them in the Elements panel DOM tree.
86314
86315         https://bugs.webkit.org/show_bug.cgi?id=21035
86316
86317         Reviewed by Oliver Hunt.
86318
86319         * page/inspector/ElementsTreeOutline.js:
86320         (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode):
86321         The revealAndSelectNode() method might find a different element
86322         if there is inlined text, and the select() call would change the
86323         focusedDOMNode and reenter this setter. So to avoid calling
86324         focusedNodeChanged() twice, first check if _focusedDOMNode is
86325         the same node as the one passed in.
86326         (WebInspector.ElementsTreeOutline.prototype.update): Remove use of
86327         this.treeOutline, since this is the TreeOutline.
86328         (WebInspector.ElementsTreeOutline.prototype.findTreeElement): Added.
86329         Provides default functions for isAncestor, getParet and equal.
86330         Calls the base protoype's findTreeElement. If that returns null
86331         and the node is a text node, try finding it's parent.
86332         (WebInspector.ElementsTreeOutline.prototype.revealNode): Removed.
86333         Renamed to revealAndSelectNode.
86334         (WebInspector.ElementsTreeOutline.prototype.revealAndSelectNode):
86335         Selects and reveals the node passed in. Use the simple findTreeElement.
86336         (WebInspector.ElementsTreeOutline.prototype._treeElementFromEvent):
86337         Remove use of this.treeOutline, since this is the TreeOutline.
86338
86339 2008-09-23  Timothy Hatcher  <timothy@apple.com>
86340
86341         Fixes an exception that happened when removing a Resource
86342         from the ResourcesPanel.
86343
86344         https://bugs.webkit.org/show_bug.cgi?id=21034
86345
86346         Reviewed by Kevin McCullough.
86347
86348         * page/inspector/ResourcesPanel.js:
86349         (WebInspctor.ResourcesPanel.prototype.removeResource):
86350         Remove the graphElement.
86351
86352 2008-09-23  Kevin McCullough  <kmccullough@apple.com>
86353
86354         Fixed "Time" to "Tim"
86355
86356         * ChangeLog:
86357
86358 2008-09-23  Nikolas Zimmermann  <zimmermann@kde.org>
86359
86360         Reviewed by Oliver.
86361
86362         Move mapInstanceToElement/removeInstanceMapping/instancesForElement
86363         from SVGDocumentExtensions to SVGElement. It's more useful to store
86364         the list of SVGElementInstances per SVGElement, instead of using
86365         a document-wide hash for this purpose.
86366
86367         * svg/SVGAnimateMotionElement.cpp:
86368         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
86369         * svg/SVGAnimateTransformElement.cpp:
86370         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
86371         * svg/SVGAnimationElement.cpp:
86372         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
86373         * svg/SVGDocumentExtensions.cpp:
86374         (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
86375         * svg/SVGDocumentExtensions.h:
86376         * svg/SVGElement.cpp:
86377         (WebCore::SVGElement::mapInstanceToElement):
86378         (WebCore::SVGElement::removeInstanceMapping):
86379         (WebCore::SVGElement::instancesForElement):
86380         * svg/SVGElement.h:
86381         * svg/SVGElementInstance.cpp:
86382         (WebCore::SVGElementInstance::SVGElementInstance):
86383         (WebCore::SVGElementInstance::~SVGElementInstance):
86384         (WebCore::SVGElementInstance::updateAllInstancesOfElement):
86385         * svg/SVGElementInstance.h:
86386         * svg/SVGStyledElement.cpp:
86387         (WebCore::SVGStyledElement::svgAttributeChanged):
86388         (WebCore::SVGStyledElement::childrenChanged):
86389         * svg/SVGStyledElement.h:
86390
86391 2008-09-23  Kevin Ollivier  <kevino@theolliviers.com>
86392
86393         wx build fix.
86394
86395         * WebCoreSources.bkl:
86396
86397 2008-09-23  Nikolas Zimmermann  <zimmermann@kde.org>
86398
86399         Rubber stamped by Sam.
86400
86401         Move code from EventTarget to EventTargetNode.
86402
86403         I refactored most parts to live in EventTarget, a year ago,
86404         though the implementation of EventTargetSVGElementInstance is
86405         done in another way, that obsoletes this.
86406
86407         * dom/Document.cpp:
86408         (WebCore::Document::addListenerTypeIfNeeded):
86409         * dom/Document.h:
86410         * dom/EventTarget.cpp:
86411         * dom/EventTarget.h:
86412         (WebCore::allowEventDispatch):
86413         * dom/EventTargetNode.cpp:
86414         (WebCore::EventTargetNode::insertedIntoDocument):
86415         (WebCore::EventTargetNode::removedFromDocument):
86416         (WebCore::EventTargetNode::willMoveToNewOwnerDocument):
86417         (WebCore::EventTargetNode::didMoveToNewOwnerDocument):
86418         (WebCore::EventTargetNode::addEventListener):
86419         (WebCore::EventTargetNode::removeEventListener):
86420         (WebCore::EventTargetNode::removeAllEventListeners):
86421         (WebCore::EventTargetNode::handleLocalEvents):
86422         (WebCore::setCurrentEventTargetRespectingSVGTargetRules):
86423         (WebCore::EventTargetNode::dispatchEvent):
86424         (WebCore::EventTargetNode::dispatchGenericEvent):
86425         (WebCore::EventTargetNode::dispatchWindowEvent):
86426         (WebCore::EventTargetNode::removeEventListenerForType):
86427         * dom/EventTargetNode.h:
86428         * svg/EventTargetSVGElementInstance.cpp:
86429         (WebCore::EventTargetSVGElementInstance::dispatchEvent):
86430         * svg/SVGElement.cpp:
86431         (WebCore::SVGElement::sendSVGLoadEventIfPossible):
86432         * svg/SVGElement.h:
86433         (WebCore::SVGElement::supplementalTransform):
86434
86435 2008-09-23  Dave Hyatt  <hyatt@apple.com>
86436
86437         Fix for bug 21012.  The Aqua scrollbar was returning the wrong track rect on Windows Aqua theme.  Make
86438         sure to not accidentally fall into the vertical scrollbar case for horizontal scrollbars. :)
86439
86440         Reviewed by Sam Weinig
86441
86442         * platform/mac/ScrollbarThemeMac.mm:
86443         (WebCore::ScrollbarThemeMac::trackRect):
86444         * platform/win/ScrollbarThemeSafari.cpp:
86445         (WebCore::ScrollbarTheme::nativeTheme):
86446         (WebCore::ScrollbarThemeSafari::trackRect):
86447
86448 2008-09-23  Beth Dakin  <bdakin@apple.com>
86449
86450         Reviewed by Sam Weinig.
86451
86452         Fix for https://bugs.webkit.org/show_bug.cgi?id=21041 "Add Contact"
86453         link at gmail does not support AXPress action
86454         and corresponding: <rdar://problem/6216178>
86455
86456         I fixed this bug by making AccessibilityObject::anchorElement
86457         support ARIA links.
86458
86459         * page/AccessibilityImageMapLink.cpp:
86460         (WebCore::AccessibilityImageMapLink::anchorElement):
86461         * page/AccessibilityImageMapLink.h:
86462         * page/AccessibilityObject.cpp:
86463         (WebCore::AccessibilityObject::anchorElement):
86464         * page/AccessibilityObject.h:
86465         (WebCore::AccessibilityObject::isNativeAnchor):
86466         * page/AccessibilityRenderObject.cpp:
86467         (WebCore::AccessibilityRenderObject::isNativeAnchor):
86468         (WebCore::AccessibilityRenderObject::anchorElement):
86469         (WebCore::AccessibilityRenderObject::internalLinkElement):
86470         (WebCore::AccessibilityRenderObject::url):
86471         * page/AccessibilityRenderObject.h:
86472         * page/mac/AccessibilityObjectWrapper.mm:
86473         (AXLinkElementForNode):
86474
86475 2008-09-23  Kevin McCullough  <kmccullough@apple.com>
86476
86477         Reviewed by Tim and Oliver.
86478
86479         Bug 20949: Catch repeated messages in Inspector Controller to limit
86480         memory usage
86481         - Store the repeat count in the Console Message object, in the
86482         Inspector Controller and JS ConsoleMessage object.
86483
86484         * page/InspectorController.cpp:
86485         (WebCore::ConsoleMessage::ConsoleMessage):
86486         (WebCore::ConsoleMessage::operator==):
86487         (WebCore::InspectorController::InspectorController):
86488         (WebCore::InspectorController::addConsoleMessage):
86489         (WebCore::InspectorController::addScriptConsoleMessage):
86490         * page/InspectorController.h:
86491         * page/inspector/Console.js:
86492         * page/inspector/Resource.js:
86493         * page/inspector/ResourcesPanel.js:
86494         * page/inspector/SourceFrame.js:
86495
86496 2008-09-23  Nikolas Zimmermann  <zimmermann@kde.org>
86497
86498         Reviewed by Eric.
86499
86500         Working on proper EventTarget support for SVGElementInstance.
86501
86502         Add new EventTargetSVGElementInstance class, and it's corresponding JS wrapper.
86503         Finally JSEventTargetBase, is actually used for another class than JSEventTargetnode.
86504
86505         Remove EventTarget inheritance from SVGElementInstance, and the manual "TreeShared"
86506         implementation. Let it use TreeShared directly.
86507
86508         It's not activated so far (SVGUseElement still creating SVGElementInstance objects).
86509         The transition to EventTargetSVGElementInstance will be done in a few individual patches.
86510
86511         * GNUmakefile.am:
86512         * WebCore.pro:
86513         * WebCore.vcproj/WebCore.vcproj:
86514         * WebCore.xcodeproj/project.pbxproj:
86515         * bindings/js/JSEventTargetBase.cpp:
86516         (WebCore::retrieveEventTargetAndCorrespondingNode):
86517         (WebCore::toJS):
86518         * bindings/js/JSEventTargetBase.h:
86519         * bindings/js/JSEventTargetSVGElementInstance.cpp: Added.
86520         (WebCore::):
86521         (WebCore::JSEventTargetSVGElementInstance::JSEventTargetSVGElementInstance):
86522         (WebCore::JSEventTargetSVGElementInstance::createPrototype):
86523         (WebCore::JSEventTargetSVGElementInstance::setListener):
86524         (WebCore::JSEventTargetSVGElementInstance::getListener):
86525         (WebCore::toEventTargetSVGElementInstance):
86526         * bindings/js/JSEventTargetSVGElementInstance.h: Added.
86527         (WebCore::JSEventTargetSVGElementInstance::prototypeClassName):
86528         (WebCore::JSEventTargetSVGElementInstance::getOwnPropertySlot):
86529         (WebCore::JSEventTargetSVGElementInstance::getValueProperty):
86530         (WebCore::JSEventTargetSVGElementInstance::put):
86531         (WebCore::JSEventTargetSVGElementInstance::putValueProperty):
86532         * bindings/js/JSSVGElementInstanceCustom.cpp: Added.
86533         (WebCore::toJS):
86534         * bindings/objc/DOM.mm:
86535         (+[DOMNode _wrapEventTarget:WebCore::]):
86536         (-[DOMSVGElementInstance _initWithSVGElementInstance:WebCore::]):
86537         (+[DOMSVGElementInstance _wrapSVGElementInstance:WebCore::]):
86538         (+[DOMSVGElementInstance _wrapEventTarget:WebCore::]):
86539         (-[DOMSVGElementInstance WebCore::]):
86540         (-[DOMSVGElementInstance addEventListener:listener:useCapture:]):
86541         (-[DOMSVGElementInstance addEventListener:::]):
86542         (-[DOMSVGElementInstance removeEventListener:listener:useCapture:]):
86543         (-[DOMSVGElementInstance removeEventListener:::]):
86544         (-[DOMSVGElementInstance dispatchEvent:]):
86545         * bindings/objc/DOMEvents.h:
86546         * bindings/scripts/CodeGeneratorJS.pm:
86547         * bindings/scripts/CodeGeneratorObjC.pm:
86548         * svg/EventTargetSVGElementInstance.cpp: Added.
86549         (WebCore::EventTargetSVGElementInstance::EventTargetSVGElementInstance):
86550         (WebCore::EventTargetSVGElementInstance::~EventTargetSVGElementInstance):
86551         (WebCore::EventTargetSVGElementInstance::addEventListener):
86552         (WebCore::EventTargetSVGElementInstance::removeEventListener):
86553         (WebCore::EventTargetSVGElementInstance::dispatchEvent):
86554         * svg/EventTargetSVGElementInstance.h: Added.
86555         (WebCore::EventTargetSVGElementInstance::isEventTargetSVGElementInstance):
86556         (WebCore::EventTargetSVGElementInstance::toNode):
86557         (WebCore::EventTargetSVGElementInstance::toSVGElementInstance):
86558         (WebCore::EventTargetSVGElementInstance::refEventTarget):
86559         (WebCore::EventTargetSVGElementInstance::derefEventTarget):
86560         (WebCore::EventTargetSVGElementInstanceCast):
86561         * svg/SVGElement.cpp:
86562         (WebCore::SVGElement::dispatchEvent):
86563         * svg/SVGElementInstance.cpp:
86564         (WebCore::SVGElementInstance::SVGElementInstance):
86565         (WebCore::SVGElementInstance::~SVGElementInstance):
86566         * svg/SVGElementInstance.h:
86567         (WebCore::SVGElementInstance::isEventTargetSVGElementInstance):
86568         * svg/SVGElementInstance.idl:
86569
86570 2008-09-23  Dan Bernstein  <mitz@apple.com>
86571
86572         Reviewed by Dave Hyatt.
86573
86574         - https://bugs.webkit.org/show_bug.cgi?id=21040
86575           Pass NULL instead of the identity matrix to CTFontCreateWithGraphicsFont()
86576
86577         * platform/graphics/mac/SimpleFontDataMac.mm:
86578         (WebCore::SimpleFontData::getCTFont):
86579
86580 2008-09-23  David Hyatt  <hyatt@apple.com>
86581
86582         https://bugs.webkit.org/show_bug.cgi?id=21039
86583
86584         Teach the viewless Mac scrollbar how to avoid NSWindow's resizer.
86585
86586         Reviewed by Sam Weinig
86587
86588         * platform/ScrollView.h:
86589         * platform/Scrollbar.cpp:
86590         (WebCore::Scrollbar::setFrameGeometry):
86591         * platform/Scrollbar.h:
86592         * platform/Widget.cpp:
86593         (WebCore::Widget::convertFromContainingWindow):
86594         * platform/Widget.h:
86595         * platform/mac/ScrollViewMac.mm:
86596         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
86597         (WebCore::ScrollView::ScrollView):
86598         (WebCore::ScrollView::~ScrollView):
86599         (WebCore::ScrollView::windowResizerRect):
86600         (WebCore::ScrollView::resizerOverlapsContent):
86601         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
86602         (WebCore::ScrollView::setParent):
86603         * platform/mac/WidgetMac.mm:
86604         (WebCore::Widget::convertFromContainingWindow):
86605
86606 2008-09-23  Dirk Schulze  <vbs85@gmx.de>
86607
86608         Reviewed by Darin Adler. Landed by Jan Alonzo.
86609
86610         Added support for getImageData() and putImageData()
86611         to Cairo.
86612
86613         [CAIRO] needs getImageData and putImageData support
86614         https://bugs.webkit.org/show_bug.cgi?id=20838
86615
86616         * platform/graphics/cairo/ImageBufferCairo.cpp:
86617         (WebCore::ImageBuffer::ImageBuffer):
86618         (WebCore::ImageBuffer::getImageData):
86619         (WebCore::ImageBuffer::putImageData):
86620
86621 2008-09-23  Marco Barisione  <marco.barisione@collabora.co.uk>
86622
86623         Reviewed by Holger Freyther.
86624
86625         http://bugs.webkit.org/show_bug.cgi?id=18987
86626         [GTK] Implement SharedBuffer::createWithContentsOfFile and
86627         KURL::fileSystemPath
86628
86629         * GNUmakefile.am: Add KURLGtk.cpp and SharedBufferGtk.cpp.
86630         * platform/gtk/KURLGtk.cpp: Added.
86631         (WebCore::KURL::fileSystemPath): Implemented.
86632         * platform/gtk/SharedBufferGtk.cpp: Added.
86633         (WebCore::SharedBuffer::createWithContentsOfFile): Implemented.
86634         * platform/gtk/TemporaryLinkStubs.cpp: Remove the old stubs.
86635
86636 2008-09-23  Alexey Proskuryakov  <ap@webkit.org>
86637
86638         Reviewed by Oliver Hunt, okayed by Darin Adler.
86639
86640         <rdar://problem/5575547> REGRESSION: ATOK has no phrase boundary on Safari/Mail.app
86641
86642         * rendering/InlineTextBox.cpp:
86643         (WebCore::InlineTextBox::paintCompositionUnderline): Add 2 pixel spacing between clauses.
86644
86645 2008-09-23  Alexey Proskuryakov  <ap@webkit.org>
86646
86647         Reviewed by Darin Adler.
86648
86649         https://bugs.webkit.org/show_bug.cgi?id=21023
86650         Don't use TEC for encodings supported by ICU
86651
86652         * platform/text/mac/mac-encodings.txt: Removed x-mac-centraleurroman, x-mac-cyrillic,
86653         x-mac-greek, and x-mac-turkish.
86654
86655         * platform/text/TextCodecICU.cpp: (WebCore::TextCodecICU::registerExtendedEncodingNames):
86656         Register aliases for these encodings that are not registered automatically; updated comments.
86657
86658 2008-09-23  Maciej Stachowiak  <mjs@apple.com>
86659
86660         Reviewed by Darin.
86661
86662         - speed up instanceof some more
86663         https://bugs.webkit.org/show_bug.cgi?id=20818
86664
86665         ~2% speedup on EarleyBoyer
86666
86667         (WebCore updates.)
86668
86669         * bindings/js/JSQuarantinedObjectWrapper.h:
86670         (WebCore::JSQuarantinedObjectWrapper::createStructureID):
86671
86672 2008-09-22  Darin Adler  <darin@apple.com>
86673
86674         Reviewed by Oliver Hunt.
86675
86676         - fix https://bugs.webkit.org/show_bug.cgi?id=21008
86677           getting pixels by index from CanvasPixelArray is unnecessarily slow
86678
86679         * GNUmakefile.am: Added JSCanvasPixelArrayCustom.h.
86680         * WebCore.vcproj/WebCore.vcproj: Ditto.
86681         * WebCore.xcodeproj/project.pbxproj: Ditto.
86682
86683         * bindings/js/JSCanvasPixelArrayCustom.cpp: Removed indexGetter and
86684           indexSetter. These are now both inlined, so in the header.
86685         * bindings/js/JSCanvasPixelArrayCustom.h: Added. The getByIndex
86686           function is what's used for HasCustomIndexGetter. Also moved the
86687           indexSetter function here.
86688
86689         * bindings/scripts/CodeGeneratorJS.pm: Changed HasCustomIndexGetter
86690           to use a getByIndex member function rather than an indexGetter static
86691           member function in a property slot. This lets us avoid the property
86692           slot mechanism's rule where it turns numeric property names into
86693           strings in the identifier table, which is good because that's slow.
86694           Also added a new property CustomHeader that allows IDL files to
86695           introduce headers to be included -- useful when we have functions
86696           that we want to inline into the binding.
86697
86698         * html/CanvasPixelArray.idl: Added CustomHeader attribute.
86699
86700 2008-09-23  Eric Seidel  <eric@webkit.org>
86701
86702         No review, build fix only.
86703
86704         Another blind stab in the dark.
86705
86706         * svg/graphics/cg/SVGResourceClipperCg.cpp: Add missing header.
86707
86708 2008-09-23  Eric Seidel  <eric@webkit.org>
86709
86710         No review, build fix only.
86711
86712         Third time's the charm, eh?  My local build is sadly still not done...
86713
86714         * platform/graphics/AffineTransform.cpp: remove extra &
86715         * platform/graphics/AffineTransform.h: remove extra &
86716
86717 2008-09-22  Eric Seidel  <eric@webkit.org>
86718
86719         No review, build fix only.
86720
86721         * platform/graphics/AffineTransform.cpp: remove extra ;
86722
86723 2008-09-22  Eric Seidel  <eric@webkit.org>
86724
86725         No review, build fix only.
86726
86727         Speculative fix for the build while I wait for my compile to finish.
86728
86729         * platform/graphics/AffineTransform.cpp:
86730
86731 2008-09-22  Dirk Schulze  <vbs85@gmx.de>
86732
86733         Reviewed by eseidel.  Landed by eseidel.
86734
86735         Moved makeMapBetweenRects from SVG/CG to AffineTransform
86736         Make SVGResourceClipper::applyClip more cross-platform
86737
86738         * platform/graphics/AffineTransform.cpp:
86739         * platform/graphics/AffineTransform.h:
86740         * svg/graphics/cg/CgSupport.cpp:
86741         * svg/graphics/cg/CgSupport.h:
86742         * svg/graphics/cg/SVGPaintServerGradientCg.cpp:
86743         (WebCore::SVGPaintServerGradient::handleBoundingBoxModeAndGradientTransformation):
86744         * svg/graphics/cg/SVGResourceClipperCg.cpp:
86745         (WebCore::SVGResourceClipper::applyClip):
86746
86747 2008-09-22  Alp Toker  <alp@nuanti.com>
86748
86749         Reviewed by David Hyatt.
86750
86751         https://bugs.webkit.org/show_bug.cgi?id=16331
86752         [Gtk] no focus when button/checkbox/radiobutton clicked, only when tabbed
86753
86754         Obey GTK+ focusing conventions for controls and anchor elements.
86755
86756         It could be interesting to push these decisions up to Settings or
86757         ChromeClient some day but this gets things working.
86758
86759         Right and middle click events still need some work to match GTK+
86760         conventions.
86761
86762         * html/HTMLAnchorElement.cpp:
86763         (WebCore::HTMLAnchorElement::isMouseFocusable):
86764         * html/HTMLFormControlElement.cpp:
86765         (WebCore::HTMLFormControlElement::isMouseFocusable):
86766         * page/EventHandler.cpp:
86767         (WebCore::EventHandler::sendContextMenuEvent):
86768
86769 2008-09-22  Darin Adler  <darin@apple.com>
86770
86771         * page/mac/FrameMac.mm:
86772         (WebCore::Frame::baseWritingDirectionForSelectionStart): Fix indentation.
86773
86774 2008-09-22  Sam Weinig  <sam@webkit.org>
86775
86776         Reviewed by Dan Bernstein.
86777
86778         Patch for https://bugs.webkit.org/show_bug.cgi?id=21013
86779         Match Firefox in how we hide HTMLInputElement.selectionStart, selectionEnd
86780         and setSelectionRange.  This also allows us to remove the legacy JSHTMLInputElementBase
86781         class!
86782
86783         - selectionStart, selectionEnd and setSelectionRange now are visible in iteration of
86784           non-selectable input types, but return undefined when accessed.
86785
86786         * DerivedSources.make:
86787         * GNUmakefile.am:
86788         * WebCore.pro:
86789         * WebCore.vcproj/WebCore.vcproj:
86790         * WebCore.xcodeproj/project.pbxproj:
86791         * WebCoreSources.bkl:
86792         * bindings/js/JSHTMLInputElementBase.cpp: Removed.
86793         * bindings/js/JSHTMLInputElementBase.h: Removed.
86794         * bindings/js/JSHTMLInputElementCustom.cpp: Added.
86795         (WebCore::JSHTMLInputElement::customGetOwnPropertySlot):
86796         (WebCore::JSHTMLInputElement::selectionStart):
86797         (WebCore::JSHTMLInputElement::selectionEnd):
86798         * bindings/js/JSHTMLInputElementCustom.h: Added.
86799         * html/HTMLInputElement.idl:
86800
86801 2008-09-22  Dan Bernstein  <mitz@apple.com>
86802
86803         Reviewed by Sam Weinig.
86804
86805         - fix <rdar://problem/5699571> Mail: Unable to change writing direction to LTR in an empty message
86806
86807         Not testable in DumpRenderTree or in Safari
86808
86809         * page/mac/FrameMac.mm:
86810         (WebCore::Frame::baseWritingDirectionForSelectionStart): Account for the
86811         case that the selection start node is a block.
86812
86813 2008-09-22  David Hyatt  <hyatt@apple.com>
86814
86815         https://bugs.webkit.org/show_bug.cgi?id=21007
86816
86817         Make sure that the scrollbar gets sent a release event on platforms that call handleMouseDoubleClickEvent.
86818
86819         Reviewed by Sam Weinig
86820
86821         * page/EventHandler.cpp:
86822         (WebCore::EventHandler::handleMouseDoubleClickEvent):
86823
86824 2008-09-22  Eric Seidel  <eric@webkit.org>
86825
86826         No review, rollback only.
86827
86828         Roll out Peter's change (per his request)
86829         http://trac.webkit.org/changeset/36069
86830         https://bugs.webkit.org/show_bug.cgi?id=19663
86831         This change has been the source of numerous regressions
86832         (several of which were latent bugs revealed by this change,
86833         others were bugs in this change)
86834
86835         * platform/graphics/BitmapImage.cpp:
86836         (WebCore::BitmapImage::BitmapImage):
86837         (WebCore::BitmapImage::startAnimation):
86838         (WebCore::BitmapImage::advanceAnimation):
86839         * platform/graphics/BitmapImage.h:
86840         * platform/graphics/cairo/ImageCairo.cpp:
86841         (WebCore::BitmapImage::draw):
86842         * platform/graphics/cg/ImageCG.cpp:
86843         (WebCore::BitmapImage::draw):
86844         * platform/graphics/qt/ImageQt.cpp:
86845         (WebCore::BitmapImage::draw):
86846         * platform/graphics/wx/ImageWx.cpp:
86847         (WebCore::BitmapImage::draw):
86848
86849 2008-09-22  Dan Bernstein  <mitz@apple.com>
86850
86851         Reviewed by Sam Weinig.
86852
86853         - fix <rdar://problem/5158514> Switch the complex text code path to Core Text
86854
86855         Tests: platform/mac-snowleopard/fast/text/myanmar-shaping.html
86856                platform/mac-snowleopard/fast/text/thai-combining-mark-positioning.html
86857
86858         * config.h: Use Core Text if not building for Leopard or Tiger.
86859
86860 2008-09-22  David Hyatt  <hyatt@apple.com>
86861
86862         https://bugs.webkit.org/show_bug.cgi?id=21006
86863
86864         Add code that paints an NSView-less scroller using HIThemeDrawTrack.  This scrollbar is still not
86865         switched on.  There are still a few more refinements to make to the rendering and behavior.
86866
86867         Reviewed by Darin Adler
86868
86869         * platform/ScrollbarThemeComposite.cpp:
86870         (WebCore::ScrollbarThemeComposite::paint):
86871         * platform/ScrollbarThemeComposite.h:
86872         (WebCore::ScrollbarThemeComposite::paintTrack):
86873         (WebCore::ScrollbarThemeComposite::paintButton):
86874         (WebCore::ScrollbarThemeComposite::paintThumb):
86875         * platform/mac/ScrollbarThemeMac.h:
86876         * platform/mac/ScrollbarThemeMac.mm:
86877         (WebCore::ScrollbarThemeMac::backButtonRect):
86878         (WebCore::ScrollbarThemeMac::forwardButtonRect):
86879         (WebCore::scrollbarPartToHIPressedState):
86880         (WebCore::ScrollbarThemeMac::paint):
86881         * platform/mac/WidgetMac.mm:
86882         (WebCore::Widget::invalidateRect):
86883
86884 2008-09-22  Chris Marrin  <cmarrin@apple.com>
86885
86886         Reviewed by Sam Weinig
86887
86888         transition end event when -webkit-transition-property: all puts wrong
86889         propertyName in event
86890         https://bugs.webkit.org/show_bug.cgi?id=20903
86891
86892         * page/animation/ImplicitAnimation.cpp:
86893         (WebCore::ImplicitAnimation::sendTransitionEvent):
86894
86895 2008-09-22  Chris Fleizach  <cfleizach@apple.com>
86896
86897         Reviewed by Darin Adler.
86898
86899         <rdar://problem/6230234> AXTable should probably not be exposed in there's only one cell
86900
86901         Test: accessibility/table-one-cell.html
86902
86903         * page/AccessibilityTable.cpp:
86904         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
86905
86906 2008-09-22  Chris Fleizach  <cfleizach@apple.com>
86907
86908         Reviewed by Darin Adler.
86909
86910         <rdar://problem/6167779> Setting AXSelectedTextRange for TextAreas in a WebView behaves incorrectly
86911
86912         Test: accessibility/textarea-selected-text-range.html
86913
86914         * page/AccessibilityRenderObject.cpp:
86915         (WebCore::AccessibilityRenderObject::setSelectedTextRange):
86916
86917 2008-09-22  David Hyatt  <hyatt@apple.com>
86918
86919         Clean up some parent relationships in the back end stylesheet code.  Make sure parentStyleSheet
86920         properly walks up nested rule blocks to reach the parent sheet instead of giving up at the immediate
86921         parent.  Also fix the doc() method so that it is properly set when the parent of the sheet is an import
86922         rule.
86923
86924         Reviewed by Sam Weinig
86925
86926         Added fast/css/nested-rule-parent-sheet.html
86927
86928          * css/CSSImportRule.cpp:
86929         (WebCore::CSSImportRule::insertedIntoParent):
86930         * css/CSSRule.cpp:
86931         (WebCore::CSSRule::parentStyleSheet):
86932         (WebCore::CSSRule::parentRule):
86933         * css/CSSStyleSheet.cpp:
86934         (WebCore::CSSStyleSheet::CSSStyleSheet):
86935         * css/CSSStyleSheet.h:
86936
86937 2008-09-22  Dan Bernstein  <mitz@apple.com>
86938
86939         Reviewed by Sam Weinig.
86940
86941         - fix https://bugs.webkit.org/show_bug.cgi?id=21002
86942           Make the ATSUI code path respect spacingDisabled()
86943
86944         Fixes svg/text/text-spacing-01-b.svg in run-webkit-tests --complex-text
86945
86946         * platform/graphics/mac/FontMacATSUI.mm:
86947         (WebCore::overrideLayoutOperation):
86948
86949 2008-09-22  Maciej Stachowiak  <mjs@apple.com>
86950
86951         Reviewed by Cameron Zwarich.
86952
86953         - speed up instanceof operator by replacing implementsHasInstance method with a TypeInfo flag
86954
86955         Partial work towards <https://bugs.webkit.org/show_bug.cgi?id=20818>
86956
86957         2.2% speedup on EarleyBoyer benchmark.
86958
86959         * bindings/js/JSQuarantinedObjectWrapper.cpp:
86960         * bindings/js/JSQuarantinedObjectWrapper.h:
86961         (WebCore::JSQuarantinedObjectWrapper::createStructureID):
86962         * bindings/scripts/CodeGeneratorJS.pm:
86963
86964 2008-09-22  Adam Roben  <aroben@apple.com>
86965
86966         Windows build fix
86967
86968         * WebCore.vcproj/WebCore.vcproj: Add a missing </File> tag.
86969
86970 2008-09-22  Maciej Stachowiak  <mjs@apple.com>
86971
86972         Reviewed by Dave Hyatt.
86973
86974         Based on initial work by Darin Adler.
86975
86976         - replace masqueradesAsUndefined virtual method with a flag in TypeInfo
86977         - use this to JIT inline code for eq_null and neq_null
86978         https://bugs.webkit.org/show_bug.cgi?id=20823
86979
86980         * WebCore.xcodeproj/project.pbxproj:
86981         * WebCore.vcproj/WebCore.vcproj:
86982         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
86983         (WebCore::JSCSSStyleDeclaration::nameGetter):
86984         * bindings/js/JSHTMLAllCollection.cpp: Added.
86985         (WebCore::):
86986         * bindings/js/JSHTMLAllCollection.h:
86987         (WebCore::JSHTMLAllCollection::createStructureID):
86988         (WebCore::JSHTMLAllCollection::toBoolean):
86989
86990 2008-09-22  Tor Arne Vestbø  <tavestbo@trolltech.com>
86991
86992         Reviewed by Simon.
86993
86994         Fix the QtWebKit build
86995
86996         * bridge/qt/qt_instance.cpp:
86997         (JSC::Bindings::QtRuntimeObjectImp::construct):
86998         * bridge/qt/qt_runtime.cpp:
86999
87000 2008-09-22  Alp Toker  <alp@nuanti.com>
87001
87002         Suggested by David Hyatt.
87003
87004         Build fix: ScrollView::update() is still used by Document.cpp on !MAC
87005         so make it public.
87006
87007         * platform/ScrollView.h:
87008
87009 2008-09-22  David Hyatt  <hyatt@apple.com>
87010
87011         Fix a regression in Windows scrollbar painting.  (Also fix the same
87012         bug in my new viewless Mac scrollbar painting code).  The track rect
87013         was being improperly inflated when painting resulting in the scrollbar
87014         being too tall and painting in the border of overflow sections.
87015
87016         Reviewed by Oliver Hunt
87017
87018         * platform/mac/ScrollbarThemeMac.mm:
87019         (WebCore::ScrollbarThemeMac::trackRect):
87020         * platform/win/ScrollbarThemeSafari.cpp:
87021         (WebCore::ScrollbarThemeSafari::trackRect):
87022
87023 2008-09-22  David Hyatt  <hyatt@apple.com>
87024
87025         Fix a hit testing bug where events are mistakenly passed to subframes
87026         if the mouse is over the border or padding area of the frame.  Add
87027         a boolean flag, isOverWidget(), to hit test results so that EventHandler
87028         can check it to tell if the mouse is really over the content box of a
87029         RenderWidget and not just in the border/padding area.
87030
87031         This is not testable, since the old code properly recovered when it detected
87032         that the mouse was outside the bounds of the view, but this prevents
87033         the extra passdown from even occurring (and is basically a nice cleanup).
87034
87035         Reviewed by Oliver Hunt
87036
87037         * page/EventHandler.cpp:
87038         (WebCore::EventHandler::handleMousePressEvent):
87039         (WebCore::EventHandler::hitTestResultAtPoint):
87040         (WebCore::subframeForHitTestResult):
87041         (WebCore::EventHandler::handleMouseDoubleClickEvent):
87042         (WebCore::EventHandler::handleMouseMoveEvent):
87043         (WebCore::EventHandler::handleMouseReleaseEvent):
87044         (WebCore::EventHandler::handleWheelEvent):
87045         * page/MouseEventWithHitTestResults.h:
87046         (WebCore::MouseEventWithHitTestResults::isOverWidget):
87047         * rendering/HitTestResult.cpp:
87048         (WebCore::HitTestResult::HitTestResult):
87049         (WebCore::HitTestResult::operator=):
87050         * rendering/HitTestResult.h:
87051         (WebCore::HitTestResult::isOverWidget):
87052         (WebCore::HitTestResult::setIsOverWidget):
87053         * rendering/RenderWidget.cpp:
87054         (WebCore::RenderWidget::nodeAtPoint):
87055         * rendering/RenderWidget.h:
87056
87057 2008-09-21  David Hyatt  <hyatt@apple.com>
87058
87059         Rename FrameView's repaintRectangle method to repaintContentRectangle.  Make
87060         both it and ScrollView's updateContents method be off-limits to everyone in
87061         WebCore except for RenderView.
87062
87063         Make repaintViewRectangle the only possible method for WebCore code to do
87064         an invalidation.  This ensures that all invalidates triggered by WebCore
87065         cross-platform code that cross ownerElement() boundaries are transform-aware.
87066
87067         Make sure that iframes/frames contained inside objects that have transforms
87068         or reflections are not allowed to blit (this was already true for transparency).
87069
87070         It is not possible to make a test for any of this, since iframe scrolling
87071         still doesn't work on Mac (since the invalidates are not being done
87072         through WebCore's cross-platform invalidation code but are instead going
87073         through NSScrollView's setNeedsDisplay still).
87074
87075         Reviewed by Oliver Hunt
87076
87077         * editing/SelectionController.cpp:
87078         (WebCore::SelectionController::recomputeCaretRect):
87079         (WebCore::SelectionController::invalidateCaretRect):
87080         (WebCore::SelectionController::focusedOrActiveStateChanged):
87081         * page/FrameView.cpp:
87082         (WebCore::FrameView::repaintContentRectangle):
87083         (WebCore::FrameView::endDeferredRepaints):
87084         * page/FrameView.h:
87085         * platform/ScrollView.h:
87086         * rendering/RenderBox.cpp:
87087         (WebCore::RenderBox::paintFillLayerExtended):
87088         * rendering/RenderLayer.cpp:
87089         (WebCore::RenderLayer::enclosingPositionedAncestor):
87090         (WebCore::RenderLayer::requiresSlowRepaints):
87091         * rendering/RenderLayer.h:
87092         (WebCore::RenderLayer::hasTransform):
87093         * rendering/RenderView.cpp:
87094         (WebCore::RenderView::paintBoxDecorations):
87095         (WebCore::RenderView::repaintViewRectangle):
87096         (WebCore::RenderView::setSelection):
87097
87098 2008-09-21  Maciej Stachowiak  <mjs@apple.com>
87099
87100         Reviewed by Darin.
87101
87102         - introduce a TypeInfo class, for holding per-type (in the C++ class sense) date in StructureID
87103         https://bugs.webkit.org/show_bug.cgi?id=20981
87104
87105         * bindings/js/JSAudioConstructor.cpp:
87106         (WebCore::JSAudioConstructor::JSAudioConstructor):
87107         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
87108         (WebCore::JSCSSStyleDeclaration::nameGetter):
87109         * bindings/js/JSDOMBinding.cpp:
87110         (WebCore::createDOMStructure):
87111         * bindings/js/JSDOMBinding.h:
87112         (WebCore::getDOMStructure):
87113         * bindings/js/JSDOMWindowShell.cpp:
87114         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
87115         (WebCore::JSDOMWindowShell::setWindow):
87116         * bindings/js/JSEventTargetNode.cpp:
87117         (WebCore::JSEventTargetNode::createPrototype):
87118         * bindings/js/JSHTMLOptionElementConstructor.cpp:
87119         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
87120         * bindings/js/JSImageConstructor.cpp:
87121         (WebCore::JSImageConstructor::JSImageConstructor):
87122         * bindings/js/JSXMLHttpRequestConstructor.cpp:
87123         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
87124         * bindings/js/JSXSLTProcessorConstructor.cpp:
87125         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
87126         * bindings/scripts/CodeGeneratorJS.pm:
87127
87128 2008-09-21  Darin Adler  <darin@apple.com>
87129
87130         Reviewed by Maciej Stachowiak.
87131
87132         - fix problem Maciej noticed where every JSNamedNodesCollection
87133           gets its own StructureID
87134
87135         * bindings/js/JSNamedNodesCollection.cpp:
87136         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Use
87137         getDOMStructure to get the structure.
87138         * bindings/js/JSNamedNodesCollection.h:
87139         (WebCore::JSNamedNodesCollection::createPrototype): Return the
87140         object prototype.
87141
87142 2008-09-20  David Hyatt  <hyatt@apple.com>
87143
87144         Make sure transformed scrollbars in overflow sections position
87145         properly.  This patch mimics the same behavior that works for
87146         iframes, namely making sure that the same code that dynamically
87147         adjusts iframe widget positions at paint time for fixed positioning
87148         and transforms also applies to scrollbars.  (This is as simple as passing
87149         in the current translation factor at paint time rather than crawling
87150         up the layer tree to compute a "false" absolute position.)
87151
87152         An existing transform test covers this (although only a pixel result
87153         reveals the correct rendering).
87154
87155         Reviewed by Darin Adler
87156
87157         * rendering/RenderLayer.cpp:
87158         (WebCore::RenderLayer::updateLayerPositions):
87159         (WebCore::RenderLayer::positionOverflowControls):
87160         (WebCore::RenderLayer::paintOverflowControls):
87161         (WebCore::RenderLayer::paintLayer):
87162         * rendering/RenderLayer.h:
87163
87164 2008-09-21  Steve Falkenburg  <sfalken@apple.com>
87165
87166         Removed unnecessary nested timer check.
87167
87168         Rubber-stamped by Dan Bernstein.
87169
87170         * platform/win/SharedTimerWin.cpp:
87171         (WebCore::TimerWindowWndProc):
87172
87173 2008-09-21  Steve Falkenburg  <sfalken@apple.com>
87174
87175         Improve timer resolution on WinXP.
87176         https://bugs.webkit.org/show_bug.cgi?id=20979
87177
87178         Removed last-chance timer. It should not be necessary.
87179         Change timeEndPeriod timer to fire in 300ms instead of 20ms. Calling timeBeginPeriod/timeEndPeriod too often throws off accuracy.
87180         Remove Vista checks. We now run the same code on both XP and Vista.
87181
87182         Call through to JSC::getCurrentUTCTimeWithMicroseconds from WebCore::currentTime.
87183         The code previously called GetSystemTimeAsFileTime, which is always low-resolution on XP, even within timeBeginPeriod(1).
87184
87185         Reviewed by Maciej Stachowiak.
87186
87187         * platform/win/SharedTimerWin.cpp:
87188         (WebCore::):
87189         (WebCore::TimerWindowWndProc):
87190         (WebCore::setSharedTimerFireTime):
87191         * platform/win/SystemTimeWin.cpp:
87192         (WebCore::currentTime):
87193
87194 2008-09-21  Dirk Schulze  <vbs85@gmx.de>
87195
87196         Reviewed by eseidel.  Landed by eseidel.
87197
87198         All platforms use the DashArray in the GraphicsContext.
87199
87200         * svg/graphics/SVGPaintServer.h:
87201         * svg/graphics/cairo/SVGPaintServerGradientCairo.cpp:
87202         (WebCore::SVGPaintServerGradient::setup):
87203         * svg/graphics/cairo/SVGPaintServerPatternCairo.cpp:
87204         (WebCore::SVGPaintServerPattern::setup):
87205         * svg/graphics/cairo/SVGPaintServerSolidCairo.cpp:
87206         (WebCore::SVGPaintServerSolid::setup):
87207         * svg/graphics/qt/SVGPaintServerGradientQt.cpp:
87208         (WebCore::SVGPaintServerGradient::setup):
87209         * svg/graphics/qt/SVGPaintServerQt.cpp:
87210         * svg/graphics/qt/SVGPaintServerSolidQt.cpp:
87211         (WebCore::SVGPaintServerSolid::setup):
87212
87213 2008-09-21  Dirk Schulze  <vbs85@gmx.de>
87214
87215         Reviewed by eseidel.  Landed by eseidel.
87216
87217         Moved DashArray to GraphicsContext.
87218
87219         * GNUmakefile.am:
87220         * WebCore.vcproj/WebCore.vcproj:
87221         * WebCore.xcodeproj/project.pbxproj:
87222         * platform/graphics/DashArray.h: Added.
87223         * platform/graphics/GraphicsContext.h:
87224         * platform/graphics/cairo/GraphicsContextCairo.cpp:
87225         (WebCore::GraphicsContext::setLineDash):
87226         * platform/graphics/cg/GraphicsContextCG.cpp:
87227         (WebCore::GraphicsContext::setLineDash):
87228         * platform/graphics/qt/GraphicsContextQt.cpp:
87229         (WebCore::GraphicsContext::setLineDash):
87230         * svg/graphics/SVGPaintServer.cpp:
87231         (WebCore::applyStrokeStyleToContext):
87232         * svg/graphics/SVGPaintServer.h:
87233         * svg/graphics/cg/CgSupport.cpp:
87234         * svg/graphics/cg/CgSupport.h:
87235
87236 2008-09-21  Dan Bernstein  <mitz@apple.com>
87237
87238         Reviewed by Mark Rowe.
87239
87240         - fix linker warnings
87241
87242         * WebCore.base.exp:
87243
87244 2008-09-20  Darin Adler  <darin@apple.com>
87245
87246         - another try at fixing Qt
87247
87248         * bridge/qt/qt_runtime.cpp: "using namespce WebCore"
87249
87250 2008-09-20  Darin Adler  <darin@apple.com>
87251
87252         - blind attempt to fix Qt build
87253
87254         * bridge/qt/qt_runtime.cpp:
87255         (JSC::Bindings::convertQVariantToValue): Use regExpStructure instead
87256         of regExpPrototype to make a RegExpObject. There should really be
87257         some sort of public helper function for this. Same thing for
87258         DateInstance and dateStructure. For JSObject, use constructEmptyObject.
87259         (JSC::Bindings::):
87260         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod): Use getDOMStructure.
87261         It is not correct to do this inside the constructor because it could
87262         cause a garbage collect while the QtRuntimeMethod object is half-
87263         allocated, which could lead to a crash; note that RuntimeMethod,
87264         QtRuntimeObjectImp, and RuntimeObjectImp have the same bug.
87265         * bridge/qt/qt_runtime.h: Add s_info and createPrototype.
87266
87267 2008-09-20  Collin Jackson  <collinj@webkit.org>
87268
87269         Prefetch DNS for hyperlinks that the user mouses over.
87270
87271         https://bugs.webkit.org/show_bug.cgi?id=20931
87272
87273         Reviewed by Sam Weinig.
87274
87275         * page/Chrome.cpp:
87276         (WebCore::Chrome::mouseDidMoveOverElement):
87277
87278 2008-09-20  Darin Adler  <darin@apple.com>
87279
87280         Reviewed by Maciej Stachowiak.
87281
87282         - finish https://bugs.webkit.org/show_bug.cgi?id=20858
87283           make each distinct C++ class get a distinct JSC::Structure
87284
87285         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
87286         (WebCore::JSCSSStyleDeclaration::nameGetter): Pass in a structure
87287         ID. Note that this makes a new structure every time -- we could
87288         optimize this slightly be caching and reusing a single one.
87289
87290         * bridge/runtime_method.cpp:
87291         (JSC::RuntimeMethod::RuntimeMethod): Create a unique structure using
87292         getDOMStructure.
87293         * bridge/runtime_method.h:
87294         (JSC::RuntimeMethod::createPrototype): Added createPrototype so
87295         getDOMStructure will work.
87296
87297         * bindings/js/JSDOMWindowShell.cpp:
87298         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Initialize m_window to
87299         0; needed in case garbage collection happens while creating the
87300         JSDOMWindow.
87301
87302 2008-09-20  Dan Bernstein  <mitz@apple.com>
87303
87304         Reviewed by Eric Seidel.
87305
87306         - fix https://bugs.webkit.org/show_bug.cgi?id=20950
87307           <rdar://problem/6234059> Reproducible assertion failure running svg/custom/acid3-test-77.html multiple times under guard malloc
87308
87309         * svg/SVGTextContentElement.cpp:
87310         (WebCore::SVGInlineTextBoxQueryWalker::chunkPortionCallback): Changed to
87311         not include the first character in the extraCharsAvailable count.
87312
87313 2008-09-20  Kevin Ollivier  <kevino@theolliviers.com>
87314
87315         Reviewed by Dan Bernstein.
87316
87317         Fix memory leak.
87318
87319         https://bugs.webkit.org/show_bug.cgi?id=20505
87320
87321         * platform/wx/wxcode/mac/carbon/fontprops.cpp:
87322         (GetTextExtent):
87323
87324 2008-09-20  Kevin Ollivier  <kevino@theolliviers.com>
87325
87326         wx build fixes. Added/removed build sources, and nativeWindow->platformWidget updates.
87327
87328         * WebCoreSources.bkl:
87329         * platform/ScrollView.h:
87330         * platform/wx/PopupMenuWx.cpp:
87331         (WebCore::PopupMenu::show):
87332         * platform/wx/RenderThemeWx.cpp:
87333         (WebCore::RenderThemeWx::paintButton):
87334         (WebCore::RenderThemeWx::paintTextField):
87335         (WebCore::RenderThemeWx::paintMenuList):
87336         (WebCore::RenderThemeWx::paintMenuListButton):
87337         * platform/wx/ScrollViewWx.cpp:
87338         (WebCore::ScrollView::setPlatformWidget):
87339         (WebCore::ScrollView::updateContents):
87340         (WebCore::ScrollView::update):
87341         (WebCore::ScrollView::visibleWidth):
87342         (WebCore::ScrollView::visibleHeight):
87343         (WebCore::ScrollView::scrollBy):
87344         (WebCore::ScrollView::resizeContents):
87345         (WebCore::ScrollView::contentsWidth):
87346         (WebCore::ScrollView::contentsHeight):
87347         (WebCore::ScrollView::isScrollViewScrollbar):
87348         (WebCore::ScrollView::adjustScrollbars):
87349         (WebCore::ScrollView::inWindow):
87350         (WebCore::ScrollView::removeChild):
87351         * platform/wx/WidgetWx.cpp:
87352         * plugins/wx/PluginViewWx.cpp:
87353         (WebCore::PluginView::setParentVisible):
87354         (WebCore::PluginView::updatePluginWidget):
87355
87356 2008-09-20  Timothy Hatcher  <timothy@apple.com>
87357
87358         Fix the new Node Search button image to not be blurry.
87359
87360         * page/inspector/Images/nodeSearchButtons.png:
87361
87362 2008-09-20  Matt Lilek  <webkit@mattlilek.com>
87363
87364         Reviewed by Tim Hatcher.
87365
87366         Cut down some of the inspector javascript -> InspectorController glue code
87367         with two new macros. Also rearrange the exposed function list to be grouped
87368         by implementation and to all explicitly use the WebCore namespace.
87369
87370         * page/InspectorController.cpp:
87371         (WebCore::InspectorController::windowScriptObjectAvailable):
87372
87373 2008-09-20  Matt Lilek  <webkit@mattlilek.com>
87374
87375         Reviewed by Tim Hatcher.
87376
87377         Fix regression from my previous patch where the breadcrumbs bar was not displayed.
87378
87379         * page/inspector/inspector.css:
87380
87381 2008-09-20  Nikolas Zimmermann  <zimmermann@kde.org>
87382
87383         Reviewed by Eric.
87384
87385         Refactor HTMLImageLoader/SVGImageLoader code.
87386         Move html/HTMLImageLoader.* to loader/ImageLoader.*
87387
87388         Let HTMLImageLoader & SVGImageLoader inherit from the new base class.
87389         SVGImageLoader used to inherit from HTMLImageLoader which is awkward.
87390
87391         * GNUmakefile.am:
87392         * WebCore.pro:
87393         * WebCore.vcproj/WebCore.vcproj:
87394         * WebCore.xcodeproj/project.pbxproj:
87395         * WebCoreSources.bkl:
87396         * dom/Document.cpp:
87397         (WebCore::Document::dispatchImageLoadEventSoon):
87398         (WebCore::Document::removeImage):
87399         (WebCore::Document::dispatchImageLoadEventsNow):
87400         * dom/Document.h:
87401         * html/HTMLImageLoader.cpp:
87402         (WebCore::HTMLImageLoader::HTMLImageLoader):
87403         (WebCore::HTMLImageLoader::~HTMLImageLoader):
87404         (WebCore::HTMLImageLoader::sourceURI):
87405         (WebCore::HTMLImageLoader::notifyFinished):
87406         * html/HTMLImageLoader.h:
87407         * loader/DocLoader.h:
87408         * loader/ImageLoader.cpp: Copied from html/HTMLImageLoader.cpp.
87409         (WebCore::ImageLoader::ImageLoader):
87410         (WebCore::ImageLoader::~ImageLoader):
87411         (WebCore::ImageLoader::setImage):
87412         (WebCore::ImageLoader::setLoadingImage):
87413         (WebCore::ImageLoader::updateFromElement):
87414         (WebCore::ImageLoader::notifyFinished):
87415         * loader/ImageLoader.h: Copied from html/HTMLImageLoader.h.
87416         * svg/SVGImageElement.cpp:
87417         (WebCore::SVGImageElement::attach):
87418         (WebCore::SVGImageElement::insertedIntoDocument):
87419         (WebCore::SVGImageElement::imageSourceAttributeName):
87420         * svg/SVGImageElement.h:
87421         * svg/SVGImageLoader.cpp:
87422         (WebCore::SVGImageLoader::SVGImageLoader):
87423         (WebCore::SVGImageLoader::dispatchLoadEvent):
87424         (WebCore::SVGImageLoader::sourceURI):
87425         * svg/SVGImageLoader.h:
87426
87427 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
87428
87429         Build fix.
87430
87431         [qtwebkit] ScrollBar build fix after r36684.
87432         BackButtonPart was split into Start and End Part
87433         ForwardButtonPart was split into Start and End Part
87434
87435         * platform/qt/ScrollbarThemeQt.cpp:
87436         (WebCore::scPart):
87437         (WebCore::scrollbarPart):
87438         (WebCore::styleOptionSlider):
87439
87440 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
87441
87442         Build fix.
87443
87444         [qtwebkit] Make qt_instance.cpp compile.
87445         Revision of 36675 introduced getDOMStructure to give unique
87446         structure id's to C++ classes. Catch up. RuntimeObjectImp assigns
87447         the the StructureID inside the c'tor, do the same in QtRuntimeObjectImp
87448
87449         * bridge/qt/qt_instance.cpp:
87450         (JSC::Bindings::QtInstance::getRuntimeObject):
87451
87452 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
87453
87454         Reviewed by Nikolas Zimmermann.
87455
87456         [svg] Change SVGLocatable to deal with a plain SVGElement
87457         There is no requirement in the code that we have to have a
87458         SVGStyledElement. Remove that artificial limitation and compile
87459         with SVGElement.
87460
87461         * svg/SVGLocatable.cpp:
87462         * svg/SVGLocatable.h:
87463
87464 2008-09-20  Holger Hans Peter Freyther  <zecke@selfish.org>
87465
87466         Reviewed by Nikolas Zimmermann.
87467
87468         [svg] Use OwnPtr for the SVGExtensions to avoid custom lifetime
87469         management.
87470
87471         * dom/Document.cpp:
87472         (WebCore::Document::~Document):
87473         (WebCore::Document::svgExtensions):
87474         (WebCore::Document::accessSVGExtensions):
87475         * dom/Document.h:
87476
87477 2008-09-19  David Hyatt  <hyatt@apple.com>
87478
87479         Fix for crash in updateTransitions.  Make sure to test for a style
87480         being null when comparing two RenderStyles.
87481
87482         Reviewed by Oliver Hunt
87483
87484         * page/animation/AnimationBase.cpp:
87485         (WebCore::PropertyWrapperGetter::equals):
87486
87487 2008-09-19  David Hyatt  <hyatt@apple.com>
87488
87489         https://bugs.webkit.org/show_bug.cgi?id=20954
87490
87491         Roll out r36628 since it has caused horrible regressions with
87492         animated GIF CPU usage.
87493
87494         * platform/graphics/BitmapImage.cpp:
87495         (WebCore::BitmapImage::cacheFrame):
87496         (WebCore::BitmapImage::startAnimation):
87497         * platform/graphics/BitmapImage.h:
87498         (WebCore::FrameData::FrameData):
87499         * platform/graphics/cairo/ImageCairo.cpp:
87500         (WebCore::FrameData::clear):
87501         * platform/graphics/cg/ImageCG.cpp:
87502         (WebCore::FrameData::clear):
87503         * platform/graphics/qt/ImageQt.cpp:
87504         (WebCore::FrameData::clear):
87505         * platform/graphics/wx/ImageWx.cpp:
87506         (WebCore::FrameData::clear):
87507
87508 2008-09-20  Alp Toker  <alp@nuanti.com>
87509
87510         Reviewed by Timothy Hatcher.
87511
87512         https://bugs.webkit.org/show_bug.cgi?id=20913
87513         Avoid redudant includes
87514
87515         Document.h is included excessively such that a modification to Document.h (or
87516         any of the header it includes itself) triggers a rebuild of many files
87517         including the whole of SVG and a lot of the JS bindings.
87518
87519         Some of these includes can be avoided by only including Document.h where
87520         necessary.
87521
87522         * bindings/js/JSAttrCustom.cpp:
87523         * bindings/js/JSElementCustom.cpp:
87524         * bindings/js/JSEventTargetBase.cpp:
87525         * bindings/js/JSEventTargetBase.h:
87526         * bindings/js/JSEventTargetNode.cpp:
87527         * bindings/js/JSHTMLFrameElementCustom.cpp:
87528         * bindings/js/JSHTMLIFrameElementCustom.cpp:
87529         * bindings/scripts/CodeGeneratorJS.pm:
87530         * css/CSSCursorImageValue.cpp:
87531         * css/SVGCSSStyleSelector.cpp:
87532         * dom/make_names.pl:
87533         * svg/SVGAnimateElement.h:
87534         * svg/SVGAnimatedProperty.h:
87535         (WebCore::::baseValue):
87536         (WebCore::::setBaseValue):
87537         (WebCore::::startAnimation):
87538         (WebCore::::stopAnimation):
87539         * svg/SVGElement.cpp:
87540         (WebCore::SVGElement::accessDocumentSVGExtensions):
87541         * svg/SVGElement.h:
87542         * svg/SVGElementInstance.cpp:
87543         * svg/SVGFitToViewBox.cpp:
87544         * svg/SVGFontElement.cpp:
87545         * svg/SVGFontFaceElement.cpp:
87546         * svg/SVGLinearGradientElement.cpp:
87547         * svg/SVGMPathElement.cpp:
87548         * svg/SVGViewSpec.cpp:
87549
87550 2008-09-19  Nikolas Zimmermann  <zimmermann@kde.org>
87551
87552         Reviewed by Antti & Eric.
87553
87554         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20372
87555
87556         Finish HTMLScriptElement / SVGScriptElement unification.
87557         SVG <script> support is complete now, full SVGLoad event
87558         respecting the influence of the externalResourcesRequired attribute
87559         as well as SVGError event support. All other features shared with HTML.
87560
87561         Tests: fast/dom/HTMLScriptElement/script-reexecution.html
87562                svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg
87563                svg/dom/SVGScriptElement/script-load-and-error-events.svg
87564                svg/dom/SVGScriptElement/script-reexecution.svg
87565                svg/dom/SVGScriptElement/script-set-href.svg
87566
87567         * dom/ScriptElement.cpp:
87568         (WebCore::ScriptElementData::ScriptElementData):
87569         (WebCore::ScriptElementData::requestScript):
87570         * dom/ScriptElement.h:
87571         (WebCore::ScriptElementData::haveFiredLoadEvent):
87572         (WebCore::ScriptElementData::setHaveFiredLoadEvent):
87573         * dom/XMLTokenizer.cpp:
87574         (WebCore::XMLTokenizer::notifyFinished):
87575         * html/HTMLScriptElement.cpp:
87576         (WebCore::HTMLScriptElement::dispatchLoadEvent):
87577         * svg/SVGScriptElement.cpp:
87578         (WebCore::SVGScriptElement::setCreatedByParser):
87579         (WebCore::SVGScriptElement::parseMappedAttribute):
87580         (WebCore::SVGScriptElement::svgAttributeChanged):
87581         (WebCore::SVGScriptElement::insertedIntoDocument):
87582         (WebCore::SVGScriptElement::removedFromDocument):
87583         (WebCore::SVGScriptElement::childrenChanged):
87584         (WebCore::SVGScriptElement::isURLAttribute):
87585         (WebCore::SVGScriptElement::finishParsingChildren):
87586         (WebCore::SVGScriptElement::type):
87587         (WebCore::SVGScriptElement::setType):
87588         (WebCore::SVGScriptElement::haveLoadedRequiredResources):
87589         (WebCore::SVGScriptElement::dispatchLoadEvent):
87590         (WebCore::SVGScriptElement::dispatchErrorEvent):
87591         * svg/SVGScriptElement.h:
87592
87593 2008-09-19  Dan Bernstein  <mitz@apple.com>
87594
87595         Reviewed by John Sullivan.
87596
87597         - fix https://bugs.webkit.org/show_bug.cgi?id=20951
87598           Typo in Position::getInlineBoxAndOffset()
87599           and add an assertion
87600
87601         Without the fix, the newly-added assertion fails in platform/mac/editing/input/caret-primary-bidi.html
87602
87603         * dom/Position.cpp:
87604         (WebCore::Position::getInlineBoxAndOffset):
87605         * rendering/InlineTextBox.cpp:
87606         (WebCore::InlineTextBox::positionForOffset):
87607
87608 2008-09-19  David Hyatt  <hyatt@apple.com>
87609
87610         Add support for hit testing of all five possible scrollbar button placements.
87611
87612         Reviewed by Sam Weinig
87613
87614         * platform/ScrollbarThemeComposite.cpp:
87615         (WebCore::ScrollbarThemeComposite::paint):
87616         * platform/mac/ScrollbarThemeMac.mm:
87617         (WebCore::):
87618         (WebCore::ScrollbarThemeMac::backButtonRect):
87619         (WebCore::ScrollbarThemeMac::forwardButtonRect):
87620         (WebCore::ScrollbarThemeMac::trackRect):
87621         (WebCore::ScrollbarThemeMac::paintButton):
87622
87623 2008-09-19  Darin Adler  <darin@apple.com>
87624
87625         - try to fix Qt build
87626
87627         * bridge/qt/qt_instance.cpp:
87628         (JSC::Bindings::QtRuntimeObjectImp::QtRuntimeObjectImp): Add structure argument.
87629         (JSC::Bindings::QtInstance::getRuntimeObject): Ditto.
87630         * bridge/runtime_object.cpp:
87631         (JSC::RuntimeObjectImp::RuntimeObjectImp): Add an overload just for Qt.
87632         * bridge/runtime_object.h: Ditto.
87633
87634 2008-09-19  Chris Marrin  <cmarrin@apple.com>
87635
87636         Reviewed by Dave Hyatt.
87637
87638         Transition starts running when it shouldn't
87639         https://bugs.webkit.org/show_bug.cgi?id=20892
87640
87641         When there is a transition and an animation on the
87642         same element, make sure the animation wins.
87643
87644         The fix is to save the unanimated style when an animation is started.
87645         Then, when starting a transition, check to see if there is a current
87646         animation on the same prop. If so, use the unanimated style as the
87647         fromStyle rather than the current style.
87648
87649         Test: animations/transition-and-animation-1.html
87650
87651         * page/animation/CompositeAnimation.cpp:
87652         (WebCore::CompositeAnimation::updateTransitions):
87653         (WebCore::CompositeAnimation::updateKeyframeAnimations):
87654         (WebCore::CompositeAnimation::animate):
87655         (WebCore::CompositeAnimation::getAnimationForProperty):
87656         * page/animation/CompositeAnimation.h:
87657         * page/animation/ImplicitAnimation.cpp:
87658         (WebCore::ImplicitAnimation::reset):
87659         * page/animation/ImplicitAnimation.h:
87660         * page/animation/KeyframeAnimation.cpp:
87661         (WebCore::KeyframeAnimation::hasAnimationForProperty):
87662         * page/animation/KeyframeAnimation.h:
87663         (WebCore::KeyframeAnimation::KeyframeAnimation):
87664         (WebCore::KeyframeAnimation::unanimatedStyle):
87665
87666 2008-09-19  David Hyatt  <hyatt@apple.com>
87667
87668         Add support for painting/hit testing of four possible scrollbar buttons.
87669         The Windows themes simply ignore the two parts that they will never
87670         show.  The Mac theme also ignores the other two buttons for now.
87671
87672         The cross-platform base for all three themes, ScrollbarThemeComposite,
87673         has all the proper support though.
87674
87675         Reviewed by Sam Weinig
87676
87677         * platform/ScrollbarThemeComposite.cpp:
87678         (WebCore::ScrollbarThemeComposite::hitTest):
87679         (WebCore::ScrollbarThemeComposite::invalidatePart):
87680         * platform/ScrollbarThemeComposite.h:
87681         * platform/mac/ScrollbarThemeMac.h:
87682         * platform/mac/ScrollbarThemeMac.mm:
87683         (WebCore::ScrollbarThemeMac::backButtonRect):
87684         (WebCore::ScrollbarThemeMac::forwardButtonRect):
87685         (WebCore::ScrollbarThemeMac::paintButton):
87686         * platform/win/ScrollbarThemeSafari.cpp:
87687         (WebCore::ScrollbarThemeSafari::backButtonRect):
87688         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
87689         (WebCore::ScrollbarThemeSafari::paintButton):
87690         * platform/win/ScrollbarThemeSafari.h:
87691         * platform/win/ScrollbarThemeWin.cpp:
87692         (WebCore::ScrollbarThemeWin::backButtonRect):
87693         (WebCore::ScrollbarThemeWin::forwardButtonRect):
87694         (WebCore::ScrollbarThemeWin::paintButton):
87695         * platform/win/ScrollbarThemeWin.h:
87696
87697 2008-09-19  Matt Lilek  <webkit@mattlilek.com>
87698
87699         Reviewed by Tim Hatcher.
87700
87701         Bug 17772: Inspector should support point-and-click to select a node to inspect
87702         https://bugs.webkit.org/show_bug.cgi?id=17772
87703         <rdar://problem/5792395>
87704
87705         * English.lproj/localizedStrings.js:
87706         * page/Chrome.cpp:
87707         (WebCore::Chrome::mouseDidMoveOverElement):
87708         * page/EventHandler.cpp:
87709         (WebCore::EventHandler::handleMousePressEvent):
87710         * page/InspectorController.cpp:
87711         (WebCore::toggleNodeSearch):
87712         (WebCore::searchingForNode):
87713         (WebCore::InspectorController::InspectorController):
87714         (WebCore::InspectorController::toggleSearchForNodeInPage):
87715         (WebCore::InspectorController::mouseDidMoveOverElement):
87716         (WebCore::InspectorController::handleMousePressOnNode):
87717         (WebCore::InspectorController::windowScriptObjectAvailable):
87718         * page/InspectorController.h:
87719         (WebCore::InspectorController::searchingForNodeInPage):
87720         * page/inspector/ElementsPanel.js:
87721         * page/inspector/Images/nodeSearchButtons.png: Added.
87722         * page/inspector/inspector.css:
87723
87724 2008-09-19  David Hyatt  <hyatt@apple.com>
87725
87726         Add new scrollbar parts to be able to represent back and forward buttons
87727         at either end of the scrollbar.  The current scrollbar still just draws
87728         a single button at either end, but the parts now exist.
87729
87730         Reviewed by Sam Weinig
87731
87732         * platform/ScrollTypes.h:
87733         (WebCore::):
87734         * platform/Scrollbar.cpp:
87735         (WebCore::Scrollbar::autoscrollTimerFired):
87736         (WebCore::Scrollbar::pressedPartScrollDirection):
87737         (WebCore::Scrollbar::pressedPartScrollGranularity):
87738         (WebCore::Scrollbar::handleMouseMoveEvent):
87739         * platform/ScrollbarTheme.h:
87740         (WebCore::ScrollbarTheme::buttonsPlacement):
87741         (WebCore::ScrollbarTheme::invalidateParts):
87742         * platform/ScrollbarThemeComposite.cpp:
87743         (WebCore::ScrollbarThemeComposite::paint):
87744         (WebCore::ScrollbarThemeComposite::hitTest):
87745         (WebCore::ScrollbarThemeComposite::invalidatePart):
87746         * platform/ScrollbarThemeComposite.h:
87747
87748 2008-09-19  Beth Dakin  <bdakin@apple.com>
87749
87750         Reviewed by Dave Hyatt.
87751
87752         Fix for <rdar://problem/6231308> crash in AutoTableLayout
87753
87754         The code assumes later on that a TableSection's grid's row vector
87755         will never be empty. So make 1 the minimum number of columns.
87756
87757         * rendering/RenderTableSection.cpp:
87758         (WebCore::RenderTableSection::ensureRows):
87759
87760 2008-09-19  David Hyatt  <hyatt@apple.com>
87761
87762         Add a new ScrollbarButtonsPlacement type for specifying where
87763         the button arrows are in a scrollbar.
87764
87765         Read in the placement settings for Mac.  Nothing is done with the
87766         setting yet.
87767
87768         Add a new buttonsPlacement() method to ScrollbarTheme composite
87769         so that the arrow settings can be obtained.
87770
87771         Reviewed by Sam Weinig
87772
87773         * platform/ScrollTypes.h:
87774         (WebCore::):
87775         * platform/ScrollbarThemeComposite.h:
87776         (WebCore::ScrollbarThemeComposite::buttonsPlacement):
87777         * platform/mac/ScrollbarThemeMac.mm:
87778         (WebCore::updateArrowPlacement):
87779         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
87780
87781 2008-09-19  Steve Falkenburg  <sfalken@apple.com>
87782
87783         Roll out r36626. It is causing variance in SunSpider numbers on XP.
87784
87785         Rubber stamped by Mark Rowe.
87786
87787         * platform/win/SharedTimerWin.cpp:
87788         (WebCore::isRunningOnVistaOrLater):
87789         (WebCore::setSharedTimerFireTime):
87790
87791 2008-09-19  Kevin McCullough  <kmccullough@apple.com>
87792
87793         Reviewed by Tim.
87794
87795         https://bugs.webkit.org/show_bug.cgi?id=20942
87796         Bug 20942: Repeated messages in resources don't collapse
87797         - Now repeated messages in a resource's view are collapsed and a message
87798         says how many were repeated.
87799
87800         * English.lproj/localizedStrings.js:
87801         * manual-tests/inspector/multiple-console-messages.html:
87802         * page/inspector/Console.js: Send all the messages to the resource's
87803         view before possibly returning early if the message is a repeat.
87804         * page/inspector/SourceFrame.js: Add the text about the message being
87805         repeated, if it is, and increment it when necessary.
87806
87807 2008-09-19  Chris Fleizach  <cfleizach@apple.com>
87808
87809         Removed unnecessary #if
87810
87811         * page/mac/AccessibilityObjectWrapper.mm:
87812
87813 2008-09-19  David Hyatt  <hyatt@apple.com>
87814
87815         Read in prefs for the scroll delay repeat values for buttons.  Also
87816         honor the option-click pref for jumping to the thumb when clicking in
87817         the track.
87818
87819         Reviewed by Sam Weinig
87820
87821         * platform/mac/ScrollbarThemeMac.h:
87822         * platform/mac/ScrollbarThemeMac.mm:
87823         (WebCore::ScrollbarThemeMac::ScrollbarThemeMac):
87824         (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay):
87825         (WebCore::ScrollbarThemeMac::autoscrollTimerDelay):
87826         (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
87827
87828 2008-09-19  David Hyatt  <hyatt@apple.com>
87829
87830         Move ScrollbarThemeMac.cpp to ScrollbarThemeMac.mm so it can use Obj-C.
87831         Set the initial button repeat delay to 0.5 for Mac.
87832
87833         Reviewed by Sam Weinig
87834
87835         * WebCore.xcodeproj/project.pbxproj:
87836         * platform/mac/ScrollbarThemeMac.cpp: Removed.
87837         * platform/mac/ScrollbarThemeMac.h:
87838         (WebCore::ScrollbarThemeMac::initialAutoscrollTimerDelay):
87839         * platform/mac/ScrollbarThemeMac.mm: Copied from platform/mac/ScrollbarThemeMac.cpp.
87840
87841 2008-09-19  Darin Adler  <darin@apple.com>
87842
87843         Reviewed by Sam Weinig.
87844
87845         - part 2 of https://bugs.webkit.org/show_bug.cgi?id=20858
87846           make each distinct C++ class get a distinct JSC::Structure
87847
87848           + Fixed all cases where we were using a shared structure for multiple
87849             C++ classes in WebCore. This still has to be done in JavaScriptCore.
87850
87851           + Got rid of cacheGlobalObject.
87852
87853           + Improved use of PassRefPtr in bindings code.
87854
87855           + Removed a couple cases where we were potentially allocating prototypes
87856             inside a JSObject's construction process -- this can lead to trouble if
87857             we do a garbage collection while an object is only partly constructed.
87858
87859         * bindings/js/JSAudioConstructor.cpp:
87860         (WebCore::JSAudioConstructor::JSAudioConstructor): Create a structure explicitly
87861         so we don't implicitly share the structure with other objects that use the object
87862         prototype.
87863
87864         * bindings/js/JSDOMBinding.cpp:
87865         (WebCore::getCachedDOMConstructor): Added. To be used for constructors so we
87866         don't need cacheGlobalObject any more.
87867         (WebCore::cacheDOMConstructor): Ditto.
87868
87869         * bindings/js/JSDOMBinding.h: Removed DOMObject constructor that takes a prototype.
87870         Added functions and a function template for getting cached DOM constructors.
87871         Removed cacheGlobalObject function template.
87872
87873         * bindings/js/JSDOMWindowBase.cpp:
87874         (WebCore::JSDOMWindowBase::JSDOMWindowBase): Take a PassRefPtr<DOMWindow> since
87875         we're taking ownership.
87876         * bindings/js/JSDOMWindowBase.h: Changed constructor to take PassRefPtr, since
87877         we're taking ownership. Added constructor map.
87878         * bindings/js/JSDOMWindowCustom.cpp:
87879         (WebCore::JSDOMWindow::mark): Mark the constructors in the map.
87880
87881         * bindings/js/JSDOMWindowShell.cpp:
87882         (WebCore::JSDOMWindowShell::JSDOMWindowShell): Take a PassRefPtr<DOMWindow> since
87883         we're taking ownership. Use the new setWindow function to create the JSDOMWindow;
87884         this is now done in only that one place.
87885         (WebCore::JSDOMWindowShell::setWindow): Added. Creates the JSDOMWindow based on
87886         the passed-in DOMWindow. Code was moved here and changed to allocate unique
87887         structures for both the window prototype and the window.
87888         * bindings/js/JSDOMWindowShell.h: Ditto.
87889
87890         * bindings/js/JSEventTargetBase.h: Changed class template argument so it doesn't
87891         have the same name (JSEventTarget) as an actual class. Removed unhelpful use of
87892         private/friend in JSEventTargetBase. Removed comments referring to defunct
87893         macros. Changed JSEventTargetBasePrototype to get the prototype with the new
87894         rather than its own copy of cacheGlobalObject (I missed this during pass 1).
87895         Changed JSEventTargetBasePrototype so it doesn't have so many template arguments.
87896
87897         * bindings/js/JSEventTargetNode.cpp: Added s_info; needed for the new scheme
87898         for caching structures and prototypes.
87899         (WebCore::JSEventTargetNode::JSEventTargetNode): Use PassRefPtr.
87900         (WebCore::JSEventTargetNode::createPrototype): Added.
87901         * bindings/js/JSEventTargetNode.h: Updated for above changes.
87902
87903         * bindings/js/JSHTMLAllCollection.h:
87904         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Use PassRefPtr.
87905         * bindings/js/JSHTMLCollectionCustom.cpp:
87906         (WebCore::getNamedItems): Pass ExecState instead of prototype.
87907         * bindings/js/JSHTMLFormElementCustom.cpp:
87908         (WebCore::JSHTMLFormElement::nameGetter): Ditto.
87909         * bindings/js/JSHTMLInputElementBase.cpp:
87910         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Use PassRefPtr.
87911         * bindings/js/JSHTMLInputElementBase.h: Ditto.
87912         * bindings/js/JSHTMLOptionElementConstructor.cpp:
87913         (WebCore::JSHTMLOptionElementConstructor::JSHTMLOptionElementConstructor):
87914         Create a unique structure instead of sharing.
87915         * bindings/js/JSImageConstructor.cpp:
87916         (WebCore::JSImageConstructor::JSImageConstructor): Ditto.
87917
87918         * bindings/js/JSInspectedObjectWrapper.cpp:
87919         (WebCore::JSInspectedObjectWrapper::wrap): Removed overload that takes
87920         a prototype rather than a structure. Made the use of inheritorID() here
87921         explicit.
87922         * bindings/js/JSInspectedObjectWrapper.h: Ditto.
87923         * bindings/js/JSInspectorCallbackWrapper.cpp:
87924         (WebCore::JSInspectorCallbackWrapper::wrap): Ditto.
87925         * bindings/js/JSInspectorCallbackWrapper.h: Ditto.
87926
87927         * bindings/js/JSNamedNodesCollection.cpp:
87928         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection): Changed to
87929         take an ExecState argument instead of a prototype. Create a unique
87930         StructureID instead of sharing.
87931         * bindings/js/JSNamedNodesCollection.h: Ditto.
87932
87933         * bindings/js/JSQuarantinedObjectWrapper.cpp: Removed overloaded
87934         constructor that takes a prototype instead of a structure.
87935         * bindings/js/JSQuarantinedObjectWrapper.h: Ditto.
87936
87937         * bindings/js/JSRGBColor.cpp:
87938         (WebCore::JSRGBColor::JSRGBColor): Take ExecState instead of a
87939         prototype; create a unique structure.
87940         (WebCore::getJSRGBColor): Ditto.
87941         * bindings/js/JSRGBColor.h: Ditto.
87942
87943         * bindings/js/JSSQLResultSetRowListCustom.cpp:
87944         (WebCore::JSSQLResultSetRowList::item): Use constructEmptyObject instead
87945         of explicit coding the idiom for making a new object.
87946
87947         * bindings/js/JSXMLHttpRequestConstructor.cpp:
87948         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
87949         Create a unique structure instead of the shared one.
87950         * bindings/js/JSXSLTProcessorConstructor.cpp:
87951         (WebCore::JSXSLTProcessorConstructor::JSXSLTProcessorConstructor):
87952         Ditto.
87953
87954         * bindings/js/ScriptController.cpp:
87955         (WebCore::ScriptController::clearWindowShell): Let the window shell's
87956         setWindow function create the JSDOMWindow instead of doing it here.
87957
87958         * bindings/scripts/CodeGeneratorJS.pm: Changed to use PassRefPtr for
87959         the structure and the wrapped object when creating wrappers.
87960         Simplified some of the special cases for DOMWindow so they are
87961         different only in ways the need to be. Eliminated the
87962         JSDOMWindow::createPrototype and JSDOMWindowPrototype::self
87963         functions. Moved responsibility for creating the structure and
87964         parent prototype out of the prototype constructor into the
87965         createPrototype function. Removed the unused "DoNotCache" flag for
87966         objects other than DOMWindow. Use getDOMConstructor instead of
87967         cacheGlobalObject for constructors. Make each constructor have
87968         a unique structure ID.
87969
87970         * bridge/objc/objc_runtime.h: Added createPrototype and changed the
87971         name of the info member to s_info so we can use the standard DOM
87972         binding macros to handl the prototype.
87973         * bridge/objc/objc_runtime.mm: Fixed namespacing a bit.
87974         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
87975         Create a unique structure using getDOMStructure.
87976
87977         * bridge/runtime_array.cpp: Fixed namespacing a bit.
87978         (JSC::RuntimeArray::RuntimeArray): Create a unique structure using
87979         getDOMStructure.
87980         * bridge/runtime_array.h: Added createPrototype so getDOMStructure
87981         will work.
87982
87983         * bridge/runtime_object.cpp:
87984         (JSC::RuntimeObjectImp::RuntimeObjectImp): Create a unique structure using
87985         getDOMStructure.
87986         * bridge/runtime_object.h: Added createPrototype so getDOMStructure
87987         will work.
87988
87989         * history/CachedPage.cpp:
87990         (WebCore::CachedPage::restore): Let the window shell's
87991         setWindow function create the JSDOMWindow instead of doing it here.
87992
87993         * page/DOMWindow.idl: Removed DoNotCache, which is no longer used.
87994
87995 2008-09-19  Dan Bernstein  <mitz@apple.com>
87996
87997         Reviewed by Dave Hyatt.
87998
87999         This optimization was suggested by Daniel Fenwick
88000
88001         - speed up measuring text on the Core Text code path by not specifying a paragraph writing direction
88002
88003         Specifying LTR paragraph directionality when measuring runs of RTL text
88004         resulted in typically two CTRuns being generated for every run instead
88005         of one, due to the leading space being reordered to the left.
88006
88007         * platform/graphics/SimpleFontData.h: Removed the ltr parameter to
88008         getCFStringAttributes() and changed m_CFStringAttributes from an array
88009         to a single value.
88010         * platform/graphics/mac/CoreTextController.cpp:
88011         (WebCore::CoreTextController::CoreTextController): Added a
88012         mayUseNaturalWritingDirection parameter.
88013         (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Changed
88014         to force the bidi embedding level whenever
88015         m_mayUseNaturalWritingDirectrion is false. Since this is now a common
88016         case, made the typesetter options dictionaries static.
88017         * platform/graphics/mac/CoreTextController.h:
88018         * platform/graphics/mac/FontMacCoreText.cpp:
88019         (WebCore::Font::selectionRectForComplexText): Renamed a local variable.
88020         (WebCore::Font::floatWidthForComplexText): Changed to allow the
88021         CoreTextController to not set the writing direction.
88022         * platform/graphics/mac/SimpleFontDataMac.mm:
88023         (WebCore::SimpleFontData::getCFStringAttributes): Removed the ltr
88024         parameter and the paragraph style attribute.
88025
88026 2008-09-19  David Hyatt  <hyatt@apple.com>
88027
88028         Reviewed by Sam Weinig
88029
88030         https://bugs.webkit.org/show_bug.cgi?id=20941
88031
88032         Incorrect height calculation for replaced element inside nested
88033         positioned elements (where the inner has a percentage height and
88034         the outer implicitly has a fixed height because of explicit top/bottom
88035         values).
88036
88037         Added fast/block/positioning/replaced-inside-top-bottom.html
88038
88039         * rendering/RenderBox.cpp:
88040         (WebCore::RenderBox::availableHeightUsing):
88041
88042 2008-09-19  Chris Fleizach  <cfleizach@apple.com>
88043
88044         Fix Tiger bustage
88045
88046         * page/mac/AccessibilityObjectWrapper.mm:
88047
88048 2008-09-18  Chris Fleizach  <cfleizach@apple.com>
88049
88050         Reviewed by Darin Adler.
88051
88052         <rdar://problem/6211041> Expose legend tag in accessibility
88053
88054         Exposes the legend tag as the titleUIElement of a fieldset
88055
88056         Test: accessibility/legend.html
88057
88058         * page/AccessibilityObject.h:
88059         (WebCore::AccessibilityObject::isFieldset):
88060         * page/AccessibilityRenderObject.cpp:
88061         (WebCore::AccessibilityRenderObject::isFieldset):
88062         (WebCore::AccessibilityRenderObject::titleUIElement):
88063         * page/AccessibilityRenderObject.h:
88064         * rendering/RenderFieldset.h:
88065
88066 2008-09-19  Chris Fleizach  <cfleizach@apple.com>
88067
88068         Reviewed by Darin Adler.
88069
88070         <rdar://problem/6213171> WebKit should use new array-centric methods for AX performance
88071
88072         Implement a few AX API methods that will be called by AppKit, which will
88073         speed up access to accessibility objects
88074
88075         * page/mac/AccessibilityObjectWrapper.mm:
88076         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
88077         (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
88078         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
88079
88080 2008-09-19  Holger Hans Peter Freyther  <zecke@selfish.org>
88081
88082         Reviewed by Simon Hausmann.
88083
88084         [qtwebkit] Set the m_should* flags to their proper value on entry
88085         With plugins it was possible that we finished a job twice. This was
88086         some kind of reentrancy in QNetworkReplyHandler::sendQueuedItems. By
88087         setting the flag to (m_loadMode == LoadDeferred) they will always have
88088         the right value and we will not send responses twice.
88089
88090         * platform/network/qt/QNetworkReplyHandler.cpp:
88091
88092 2008-09-19  Holger Hans Peter Freyther  <zecke@selfish.org>
88093
88094         Reviewed by Simon Hausmann.
88095
88096         [qtwebkit] Pass test 70 of acid3. Handle text decoding errors
88097         Handle text decoding errors before instructing the parser to parse. We
88098         have converted the text to QString and all encoding errors are gone and
88099         the parser will not be able to detect them. So handle them before parsing.
88100
88101         * dom/XMLTokenizerQt.cpp:
88102         (WebCore::XMLTokenizer::doWrite):
88103
88104 2008-09-18  Darin Adler  <darin@apple.com>
88105
88106         Reviewed by Maciej Stachowiak.
88107
88108         - part 1 of https://bugs.webkit.org/show_bug.cgi?id=20858
88109           make each distinct C++ class get a distinct JSC::Structure
88110
88111         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
88112         (WebCore::JSCSSStyleDeclaration::customPut): Use setDOMException
88113         instead of DOMExceptionTranslator.
88114
88115         * bindings/js/JSDOMBinding.cpp:
88116         (WebCore::getCachedDOMObjectWrapper): Updated function name.
88117         (WebCore::cacheDOMObjectWrapper): Ditto.
88118         (WebCore::forgetDOMObject): Ditto.
88119         (WebCore::getCachedDOMNodeWrapper): Ditto.
88120         (WebCore::forgetDOMNode): Ditto.
88121         (WebCore::cacheDOMNodeWrapper): Ditto.
88122         (WebCore::forgetAllDOMNodesForDocument): Ditto.
88123         (WebCore::markDOMNodesForDocument): Ditto.
88124         (WebCore::updateDOMNodeDocument): Ditto.
88125         (WebCore::getCachedDOMStructure): Added.
88126         (WebCore::createDOMStructure): Ditto.
88127
88128         * bindings/js/JSDOMBinding.h: Get rid of the ScriptInterpreter
88129         class and replace the static member functions with non-member
88130         functions. Added many other functions for getting at structures,
88131         prototypes, wrappers, and creating them. Also moved the
88132         cacheGlobalObject function here from JavaScriptCore; eventually
88133         I'll remove that once I get rid of the remaining callers. Also
88134         removed the DOMExceptionTranslator class.
88135
88136         * bindings/js/JSDOMWindowBase.h: Added JSDOMStructureMap type,
88137         and put one of those maps in each window.
88138
88139         * bindings/js/JSDOMWindowCustom.cpp:
88140         (WebCore::markDOMObjectWrapper): Updated for function name change.
88141         (WebCore::JSDOMWindow::mark): Added code to mark all the structures
88142         in the structure map.
88143
88144         * bindings/js/JSEventTargetNode.cpp:
88145         (WebCore::JSEventTargetNode::JSEventTargetNode): Changed to take
88146         a structure instead of a prototype.
88147         * bindings/js/JSEventTargetNode.h: Ditto.
88148         * bindings/js/JSHTMLAllCollection.h:
88149         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection): Ditto.
88150
88151         * bindings/js/JSHTMLInputElementBase.cpp:
88152         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase): Removed
88153         use of the JSC_IMPLEMENT_PROTOTYPE macro, and changed to take a
88154         structure instead of a prototype.
88155         * bindings/js/JSHTMLInputElementBase.h: Removed use of the
88156         JSC_DEFINE_PROTOTYPE_WITH_PROTOTYPE macro, and changed constructor
88157         to take a structure instead of a prototype. Created a dummy prototype
88158         class that causes the HTMLInputElement prototype to have the
88159         HTMLElement prototype.
88160
88161         * bindings/scripts/CodeGeneratorJS.pm: Change constructors to take
88162         structures instead of prototypes. Changed the prototype self function
88163         to use the getDOMPrototype function -- later we can eliminate it and
88164         have callers invoke getDOMPrototype directly instead. Updated other
88165         functions that have name changes. Added code to generate the
88166         createPrototype member function. Changed use of cacheGlobalObject to
88167         get it from the WebCore namespace instead of the JSC namespace.
88168         Changed cacheDOMObject calls to use getDOMObjectWrapper instead.
88169
88170         * dom/Document.cpp:
88171         (WebCore::Document::~Document): Updated for name change and also
88172         removed unnecessary JSLock use -- there's no need to lock around this.
88173         * dom/Node.cpp:
88174         (WebCore::Node::setDocument): Ditto.
88175
88176         * dom/make_names.pl: Changed to use CREATE_DOM_NODE_WRAPPER macro
88177         instead of calling new directly.
88178
88179         * bindings/js/JSCSSRuleCustom.cpp:
88180         (WebCore::toJS): Updated for function name changes and used the
88181         CREATE_DOM_OBJECT_WRAPPER macro.
88182         * bindings/js/JSCSSValueCustom.cpp:
88183         (WebCore::toJS): Ditto.
88184         * bindings/js/JSCanvasPixelArrayCustom.cpp:
88185         (WebCore::toJS): Ditto.
88186         * bindings/js/JSDocumentCustom.cpp:
88187         (WebCore::JSDocument::mark): Ditto.
88188         (WebCore::toJS): Ditto.
88189         * bindings/js/JSElementCustom.cpp:
88190         (WebCore::toJSNewlyCreated): Ditto.
88191         * bindings/js/JSEventCustom.cpp:
88192         (WebCore::toJS): Ditto.
88193         * bindings/js/JSEventTargetBase.cpp:
88194         (WebCore::jsEventTargetDispatchEvent): Use setDOMException instead
88195         of DOMExceptionTranslator.
88196         (WebCore::toJS): Updated for function name changes and used the
88197         CREATE_DOM_OBJECT_WRAPPER macro.
88198         * bindings/js/JSHTMLCollectionCustom.cpp:
88199         (WebCore::toJS): Ditto.
88200         * bindings/js/JSNodeCustom.cpp:
88201         (WebCore::JSNode::mark): Ditto.
88202         (WebCore::createWrapper): Ditto.
88203         (WebCore::toJS): Ditto.
88204         * bindings/js/JSSVGPathSegCustom.cpp:
88205         (WebCore::toJS): Ditto.
88206         * bindings/js/JSStyleSheetCustom.cpp:
88207         (WebCore::toJS): Ditto.
88208         (WebCore::JSStyleSheet::mark): Ditto.
88209         * bindings/js/JSTextCustom.cpp:
88210         (WebCore::toJSNewlyCreated): Ditto.
88211         * bindings/js/JSXMLHttpRequestConstructor.cpp:
88212         (WebCore::constructXMLHttpRequest): Ditto.
88213         * bindings/js/JSXMLHttpRequestCustom.cpp:
88214         (WebCore::JSXMLHttpRequest::mark): Ditto.
88215         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
88216         (WebCore::JSXMLHttpRequestUpload::mark): Ditto.
88217         * bindings/js/JSXSLTProcessorConstructor.cpp:
88218         (WebCore::constructXSLTProcessor): Ditto.
88219         * bindings/js/ScriptController.cpp:
88220         (WebCore::ScriptController::finishedWithEvent): Ditto.
88221         * xml/XMLHttpRequest.cpp:
88222         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto.
88223         (WebCore::XMLHttpRequest::dropProtection): Ditto.
88224
88225 2008-09-18  David Hyatt  <hyatt@apple.com>
88226
88227         This patch gets a viewless scrollbar working on Mac. It is turned off
88228         by default.  Hit testing works.  For now the scrollbar just paints ugly
88229         debug rects in the place of the buttons, track and thumb.  It does match
88230         Aqua metrics though.
88231
88232         Reviewed by Sam Weinig
88233
88234         * WebCore.xcodeproj/project.pbxproj:
88235         * page/mac/EventHandlerMac.mm:
88236         (WebCore::EventHandler::passMousePressEventToScrollbar):
88237         * platform/ScrollbarThemeComposite.cpp:
88238         (WebCore::ScrollbarThemeComposite::paint):
88239         (WebCore::ScrollbarThemeComposite::trackPosition):
88240         * platform/ScrollbarThemeComposite.h:
88241         * platform/mac/ScrollViewMac.mm:
88242         (WebCore::ScrollView::addChild):
88243         * platform/mac/ScrollbarThemeMac.cpp:
88244         (WebCore::):
88245         (WebCore::ScrollbarThemeMac::hasButtons):
88246         (WebCore::ScrollbarThemeMac::hasThumb):
88247         (WebCore::buttonRepaintRect):
88248         (WebCore::ScrollbarThemeMac::backButtonRect):
88249         (WebCore::ScrollbarThemeMac::forwardButtonRect):
88250         (WebCore::trackRepaintRect):
88251         (WebCore::ScrollbarThemeMac::trackRect):
88252         (WebCore::ScrollbarThemeMac::minimumThumbLength):
88253         (WebCore::ScrollbarThemeMac::shouldCenterOnThumb):
88254         (WebCore::ScrollbarThemeMac::paintTrack):
88255         (WebCore::ScrollbarThemeMac::paintButton):
88256         (WebCore::ScrollbarThemeMac::paintThumb):
88257         * platform/mac/ScrollbarThemeMac.h:
88258         (WebCore::ScrollbarThemeMac::supportsControlTints):
88259         * platform/qt/ScrollbarThemeQt.cpp:
88260         (WebCore::ScrollbarThemeQt::trackPosition):
88261
88262 2008-09-18  Collin Jackson  <collinj@webkit.org>
88263
88264         Build fix; added missing header file to GNUmakefile.am
88265
88266         * GNUmakefile.am:
88267
88268 2008-09-18  Sam Weinig  <sam@webkit.org>
88269
88270         Reviewed by David "the Hair" Hyatt.
88271
88272         Move DataRef, SVGRenderStyle and SVGRenderStyleDefs in render/style.
88273
88274         * GNUmakefile.am:
88275         * WebCore.pro:
88276         * WebCore.vcproj/WebCore.vcproj:
88277         * WebCore.xcodeproj/project.pbxproj:
88278         * rendering/DataRef.h: Removed.
88279         * rendering/SVGRenderStyle.cpp: Removed.
88280         * rendering/SVGRenderStyle.h: Removed.
88281         * rendering/SVGRenderStyleDefs.cpp: Removed.
88282         * rendering/SVGRenderStyleDefs.h: Removed.
88283         * rendering/style/DataRef.h: Copied from rendering/DataRef.h.
88284         * rendering/style/SVGRenderStyle.cpp: Copied from rendering/SVGRenderStyle.cpp.
88285         * rendering/style/SVGRenderStyle.h: Copied from rendering/SVGRenderStyle.h.
88286         * rendering/style/SVGRenderStyleDefs.cpp: Copied from rendering/SVGRenderStyleDefs.cpp.
88287         * rendering/style/SVGRenderStyleDefs.h: Copied from rendering/SVGRenderStyleDefs.h.
88288
88289 2008-09-18  Mark Rowe  <mrowe@apple.com>
88290
88291         Reviewed by Dan Bernstein.
88292
88293         Add a means of clearing a FrameTree's name.
88294
88295         * WebCore.base.exp:
88296         * page/FrameTree.cpp:
88297         (WebCore::FrameTree::clearName):
88298         * page/FrameTree.h:
88299
88300 2008-09-18  David Hyatt  <hyatt@apple.com>
88301
88302         Eliminate addToSuperview from Widget, since it was only called
88303         by ScrollViewMac's addChild method.  Just shift the original body
88304         of addToSuperView into addChild.
88305
88306         Reviewed by Sam Weinig
88307
88308         * platform/Widget.h:
88309         * platform/mac/ScrollViewMac.mm:
88310         (WebCore::ScrollView::addChild):
88311         * platform/mac/WidgetMac.mm:
88312
88313 2008-09-18  Collin Jackson  <collinj@webkit.org>
88314
88315         Reviewed by Antti Koivisto and Mark Rowe.
88316
88317         Test: http/tests/misc/dns-prefetch-control.html
88318
88319         https://bugs.webkit.org/show_bug.cgi?id=20690
88320
88321         Invoke WebCore::prefetchDNS() on host names that appear in
88322         in the href of hyperlinks and <link rel="dns-prefetch">. This
88323         can be used to implement DNS prefetching.
88324
88325         * WebCore.vcproj/WebCore.vcproj:
88326         * WebCore.xcodeproj/project.pbxproj:
88327         * dom/Document.cpp:
88328         (WebCore::Document::Document):
88329         (WebCore::Document::processHttpEquiv):
88330         (WebCore::Document::setSecurityOrigin):
88331         (WebCore::Document::initDNSPrefetch):
88332         (WebCore::Document::parseDNSPrefetchControlHeader):
88333         * dom/Document.h:
88334         (WebCore::Document::isDNSPrefetchEnabled):
88335         * html/HTMLAnchorElement.cpp:
88336         (WebCore::HTMLAnchorElement::parseMappedAttribute):
88337         * html/HTMLLinkElement.cpp:
88338         (WebCore::HTMLLinkElement::HTMLLinkElement):
88339         (WebCore::HTMLLinkElement::parseMappedAttribute):
88340         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
88341         (WebCore::HTMLLinkElement::process):
88342         * html/HTMLLinkElement.h:
88343         * html/PreloadScanner.cpp:
88344         (WebCore::PreloadScanner::processAttribute):
88345         * loader/FrameLoader.cpp:
88346         (WebCore::FrameLoader::begin):
88347         * platform/gtk/TemporaryLinkStubs.cpp:
88348         (WebCore::prefetchDNS):
88349         * platform/network/DNS.h: Added.
88350         * platform/network/cf/DNSCFNet.cpp: Added.
88351         (WebCore::prefetchDNS):
88352         * platform/qt/TemporaryLinkStubs.cpp:
88353         (WebCore::prefetchDNS):
88354         * platform/wx/TemporaryLinkStubs.cpp:
88355         (WebCore::prefetchDNS):
88356
88357 2008-09-18  David Hyatt  <hyatt@apple.com>
88358
88359         Eliminate the convertToScreenCoordinate method on Widget, since
88360         ScrollView has redundant methods that already do the same thing.
88361
88362         Reviewed by Sam Weinig
88363
88364         * editing/mac/SelectionControllerMac.mm:
88365         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
88366         * platform/Widget.h:
88367         * platform/mac/WidgetMac.mm:
88368         (WebCore::Widget::containingWindow):
88369
88370 2008-09-18  David Hyatt  <hyatt@apple.com>
88371
88372         Move to only one constructor for Widgets.  Rename data to m_data and make
88373         it have an #ifdef only for platforms that have platform-specific data (Mac
88374         and Gtk).
88375
88376         Reviewed by Sam Weinig
88377
88378         * WebCore.base.exp:
88379         * platform/Widget.cpp:
88380         (WebCore::Widget::init):
88381         * platform/Widget.h:
88382         * platform/gtk/WidgetGtk.cpp:
88383         (WebCore::Widget::Widget):
88384         (WebCore::Widget::~Widget):
88385         (WebCore::Widget::cursor):
88386         (WebCore::Widget::setCursor):
88387         * platform/mac/WidgetMac.mm:
88388         (WebCore::Widget::Widget):
88389         (WebCore::Widget::~Widget):
88390         (WebCore::Widget::addToSuperview):
88391         (WebCore::Widget::removeFromSuperview):
88392         (WebCore::Widget::beforeMouseDown):
88393         (WebCore::Widget::afterMouseDown):
88394         * platform/qt/WidgetQt.cpp:
88395         (WebCore::Widget::Widget):
88396         * platform/win/WidgetWin.cpp:
88397         (WebCore::Widget::Widget):
88398         * platform/wx/WidgetWx.cpp:
88399         (WebCore::Widget::Widget):
88400
88401 2008-09-18  David Hyatt  <hyatt@apple.com>
88402
88403         Move Qt's isNPAPIPlugin boolean from Widget down to PluginView, since there
88404         was no reason for it to be on Widget.  This change eliminates Qt ifdefs
88405         from Widget.
88406
88407         Reviewed by Sam Weinig
88408
88409         * bindings/js/ScriptControllerQt.cpp:
88410         (WebCore::ScriptController::createScriptInstanceForWidget):
88411         * platform/qt/WidgetQt.cpp:
88412         (WebCore::WidgetPrivate::WidgetPrivate):
88413         (WebCore::WidgetPrivate::~WidgetPrivate):
88414         (WebCore::Widget::Widget):
88415         (WebCore::Widget::~Widget):
88416         * plugins/PluginView.cpp:
88417         (WebCore::PluginView::PluginView):
88418         * plugins/PluginView.h:
88419         (WebCore::PluginView::isNPAPIPlugin):
88420         (WebCore::PluginView::setIsNPAPIPlugin):
88421
88422 2008-09-18  David Hyatt  <hyatt@apple.com>
88423
88424         Make geometryChanged() cross-platform on Widget.  GTK and WIN platform
88425         ifdefs are now gone from Widget!
88426
88427         Reviewed by Sam Weinig
88428
88429         * platform/Widget.h:
88430         (WebCore::Widget::geometryChanged):
88431         * platform/gtk/WidgetGtk.cpp:
88432         * platform/qt/WidgetQt.cpp:
88433
88434 2008-09-18  David Hyatt  <hyatt@apple.com>
88435
88436         Consolidate convertTo/FromContainingWindow methods so that all platforms
88437         but Mac share the same code.
88438
88439         Move convertSelfToChild and convertChildToSelf to ScrollView, since
88440         Widget should know nothing about children.  Make the methods cross-platform
88441         on ScrollView.
88442
88443         Reviewed by Sam Weinig
88444
88445         * platform/ScrollView.h:
88446         (WebCore::ScrollView::convertChildToSelf):
88447         (WebCore::ScrollView::convertSelfToChild):
88448         * platform/Widget.cpp:
88449         (WebCore::Widget::convertToContainingWindow):
88450         (WebCore::Widget::convertFromContainingWindow):
88451         * platform/Widget.h:
88452         (WebCore::Widget::geometryChanged):
88453         * platform/gtk/ScrollViewGtk.cpp:
88454         (WebCore::ScrollView::isScrollViewScrollbar):
88455         * platform/gtk/WidgetGtk.cpp:
88456         * platform/mac/ScrollViewMac.mm:
88457         (WebCore::ScrollView::isScrollViewScrollbar):
88458         * platform/mac/WidgetMac.mm:
88459         * platform/qt/ScrollViewQt.cpp:
88460         (WebCore::ScrollView::isScrollViewScrollbar):
88461         * platform/qt/WidgetQt.cpp:
88462         * platform/win/ScrollViewWin.cpp:
88463         (WebCore::ScrollView::isScrollViewScrollbar):
88464         * platform/win/WidgetWin.cpp:
88465
88466 2008-09-18  David Hyatt  <hyatt@apple.com>
88467
88468         Make the conversion methods that go to and from some containingWindow
88469         cross-platform.  Implement them on Mac.
88470
88471         Reviewed by Sam Weinig
88472
88473         * platform/Widget.h:
88474         (WebCore::Widget::setContainingWindow):
88475         * platform/mac/WidgetMac.mm:
88476         (WebCore::Widget::convertFromContainingWindow):
88477         (WebCore::Widget::convertToContainingWindow):
88478
88479 2008-09-18  Sam Weinig  <sam@webkit.org>
88480
88481         Rubber-stamped by David "Yeah-yeah" Hyatt.
88482
88483         Cleanup RenderStyle.
88484
88485         * WebCore.xcodeproj/project.pbxproj:
88486         * rendering/style/CounterContent.h:
88487         * rendering/style/RenderStyle.cpp:
88488         * rendering/style/RenderStyle.h:
88489
88490 2008-09-18  Chris Marrin  <cmarrin@apple.com>
88491
88492         Reviewed by Sam Weinig
88493
88494         Fixed https://bugs.webkit.org/show_bug.cgi?id=20908
88495         Now TransformOperations and AnimationList no longer
88496         inherit from Vector<> but rather have API to access.
88497
88498         * css/CSSComputedStyleDeclaration.cpp:
88499         (WebCore::computedTransform):
88500         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
88501         * css/CSSStyleSelector.cpp:
88502         (WebCore::CSSStyleSelector::createTransformOperations):
88503         * page/animation/AnimationBase.cpp:
88504         (WebCore::blendFunc):
88505         * page/animation/CompositeAnimation.cpp:
88506         (WebCore::CompositeAnimation::updateTransitions):
88507         (WebCore::CompositeAnimation::updateKeyframeAnimations):
88508         (WebCore::CompositeAnimation::animate):
88509         * page/animation/ImplicitAnimation.cpp:
88510         (WebCore::ImplicitAnimation::validateTransformFunctionList):
88511         * page/animation/KeyframeAnimation.cpp:
88512         (WebCore::KeyframeAnimation::validateTransformFunctionList):
88513         * rendering/RenderLayer.cpp:
88514         (WebCore::RenderLayer::updateReflectionStyle):
88515         * rendering/style/AnimationList.cpp:
88516         (WebCore::AnimationList::operator==):
88517         * rendering/style/AnimationList.h:
88518         (WebCore::AnimationList::operator!=):
88519         (WebCore::AnimationList::size):
88520         (WebCore::AnimationList::isEmpty):
88521         (WebCore::AnimationList::resize):
88522         (WebCore::AnimationList::remove):
88523         (WebCore::AnimationList::append):
88524         (WebCore::AnimationList::animation):
88525         * rendering/style/RenderStyle.cpp:
88526         (WebCore::StyleRareNonInheritedData::updateKeyframes):
88527         (WebCore::RenderStyle::applyTransform):
88528         (WebCore::RenderStyle::adjustAnimations):
88529         (WebCore::RenderStyle::adjustTransitions):
88530         (WebCore::RenderStyle::transitionForProperty):
88531         * rendering/style/RenderStyle.h:
88532         (WebCore::RenderStyle::hasTransform):
88533         * rendering/style/TransformOperations.cpp:
88534         (WebCore::TransformOperations::TransformOperations):
88535         (WebCore::TransformOperations::operator==):
88536         * rendering/style/TransformOperations.h:
88537         (WebCore::TransformOperations::apply):
88538         (WebCore::TransformOperations::operations):
88539
88540 2008-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
88541
88542         Build fix.
88543
88544         [qt] Build fixes after the Widget/ScrollView cleanup
88545         topLevel() is now root()
88546
88547
88548         * platform/qt/ScrollViewQt.cpp:
88549         (WebCore::ScrollView::ScrollViewPrivate::scrollBackingStore):
88550         (WebCore::ScrollView::addChild):
88551         (WebCore::ScrollView::removeChild):
88552
88553 2008-09-18  Holger Hans Peter Freyther  <zecke@selfish.org>
88554
88555         Reviewed by Mark Rowe.
88556
88557         https://bugs.webkit.org/show_bug.cgi?id=20437
88558
88559         XMLTokenizer.cpp used to contain two different implementations. One was using
88560         libxml2 and the other was using the Qt XML StreamReader. Clean up the code by
88561         separating the two implementations from each other.
88562         Common code and some small bits are kept inside the XMLTokenizer.cpp, the Qt code
88563         was moved to XMLTokenizerQt.cpp and the Libxml2 based code was moved to
88564         XMLTokenizerLibxml2.cpp. There should be no functional changes.
88565
88566         Attempt to add XMLTokenizerLibxml2.cpp to every buildsystem so the build continues
88567         to work.
88568
88569         * GNUmakefile.am:
88570         * WebCore.pro:
88571         * WebCore.vcproj/WebCore.vcproj:
88572         * WebCore.xcodeproj/project.pbxproj:
88573         * WebCoreSources.bkl:
88574         * dom/XMLTokenizer.cpp:
88575         (WebCore::isScriptElement):
88576         (WebCore::castToScriptElement):
88577         (WebCore::XMLTokenizer::setCurrentNode):
88578         (WebCore::XMLTokenizer::write):
88579         (WebCore::XMLTokenizer::eventuallyMarkAsParserCreated):
88580         (WebCore::XMLTokenizer::enterText):
88581         (WebCore::toString):
88582         (WebCore::XMLTokenizer::exitText):
88583         (WebCore::XMLTokenizer::end):
88584         (WebCore::XMLTokenizer::insertErrorMessageBlock):
88585         * dom/XMLTokenizer.h:
88586         (WebCore::XMLTokenizer::wellFormed):
88587         * dom/XMLTokenizerLibxml2.cpp: Copied from WebCore/dom/XMLTokenizer.cpp.
88588         (WebCore::createMemoryParser):
88589         (WebCore::XMLTokenizer::XMLTokenizer):
88590         (WebCore::XMLTokenizer::~XMLTokenizer):
88591         (WebCore::XMLTokenizer::doWrite):
88592         (WebCore::ignorableWhitespaceHandler):
88593         (WebCore::XMLTokenizer::initializeParserContext):
88594         (WebCore::XMLTokenizer::doEnd):
88595         (WebCore::XMLTokenizer::lineNumber):
88596         (WebCore::XMLTokenizer::columnNumber):
88597         (WebCore::XMLTokenizer::stopParsing):
88598         (WebCore::XMLTokenizer::resumeParsing):
88599         (WebCore::parseXMLDocumentFragment):
88600         (WebCore::attributesStartElementNsHandler):
88601         (WebCore::parseAttributes):
88602         * dom/XMLTokenizerQt.cpp: Copied from WebCore/dom/XMLTokenizer.cpp.
88603         (WebCore::EntityResolver::resolveUndeclaredEntity):
88604         (WebCore::XMLTokenizer::XMLTokenizer):
88605         (WebCore::XMLTokenizer::~XMLTokenizer):
88606         (WebCore::XMLTokenizer::doWrite):
88607         (WebCore::XMLTokenizer::initializeParserContext):
88608         (WebCore::XMLTokenizer::doEnd):
88609         (WebCore::XMLTokenizer::lineNumber):
88610         (WebCore::XMLTokenizer::columnNumber):
88611         (WebCore::XMLTokenizer::stopParsing):
88612         (WebCore::XMLTokenizer::resumeParsing):
88613         (WebCore::parseXMLDocumentFragment):
88614         (WebCore::attributesStartElementNsHandler):
88615         (WebCore::parseAttributes):
88616         (WebCore::):
88617
88618 2008-09-18  Beth Dakin  <bdakin@apple.com>
88619
88620         Reviewed by Geoff Garen.
88621
88622         Build fix for non-Mac builds.
88623
88624         * css/CSSPrimitiveValue.cpp:
88625         (WebCore::CSSPrimitiveValue::cssText):
88626
88627 2008-09-18  Peter Kasting  <pkasting@google.com>
88628
88629         Reviewed by hyatt.  Landed by eseidel.
88630
88631         https://bugs.webkit.org/show_bug.cgi?id=20745
88632         Animated GIFs do not animate properly with (at least) CG.
88633
88634         * WebCore\platform\graphics\BitmapImage.cpp:
88635         * WebCore\platform\graphics\BitmapImage.h:
88636         * WebCore\platform\graphics\cairo\ImageCairo.cpp:
88637         * WebCore\platform\graphics\cg\ImageCG.cpp:
88638         * WebCore\platform\graphics\qt\ImageQt.cpp:
88639         * WebCore\platform\graphics\wx\ImageWx.cpp:
88640
88641 2008-09-18  Chris Fleizach  <cfleizach@apple.com>
88642
88643         Reviewed by Beth Dakin
88644
88645         <rdar://problem/6224222> AX: should not expose a <table> as an AXTable if ARIA
88646         role specifies otherwise
88647
88648         If a <table> isn't an AXTable, the rows and cells should default to AccessibilityRenderObject
88649
88650         Test: accessibility/table-with-aria-role.html
88651
88652         * page/AccessibilityTable.cpp:
88653         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
88654         (WebCore::AccessibilityTable::addChildren):
88655         (WebCore::AccessibilityTable::roleValue):
88656         (WebCore::AccessibilityTable::accessibilityIsIgnored):
88657         (WebCore::AccessibilityTable::title):
88658         * page/AccessibilityTableCell.cpp:
88659         (WebCore::AccessibilityTableCell::accessibilityIsIgnored):
88660         (WebCore::AccessibilityTableCell::isTableCell):
88661         (WebCore::AccessibilityTableCell::roleValue):
88662         * page/AccessibilityTableCell.h:
88663         * page/AccessibilityTableRow.cpp:
88664         (WebCore::AccessibilityTableRow::roleValue):
88665         (WebCore::AccessibilityTableRow::isTableRow):
88666         (WebCore::AccessibilityTableRow::accessibilityIsIgnored):
88667         * page/AccessibilityTableRow.h:
88668
88669 2008-09-18  Steve Falkenburg  <sfalken@apple.com>
88670
88671         Use higher-resolution timers on all variants of Windows.
88672
88673         Reviewed by Darin Adler.
88674
88675         * platform/win/SharedTimerWin.cpp:
88676         (WebCore::setSharedTimerFireTime):
88677
88678
88679 2008-09-18  David Hyatt  <hyatt@apple.com>
88680
88681         Make containingWindow() and setContainingWindow() cross-platform.
88682         Add a root() function cross-platform so Qt doesn't have to
88683         define its own.
88684
88685         Reviewed by Darin Adler
88686
88687         * platform/Widget.cpp:
88688         (WebCore::Widget::root):
88689         * platform/Widget.h:
88690         (WebCore::Widget::setContainingWindow):
88691         * platform/gtk/WidgetGtk.cpp:
88692         (WebCore::Widget::Widget):
88693         (WebCore::Widget::containingWindow):
88694         * platform/mac/ScrollViewMac.mm:
88695         (WebCore::ScrollView::addChild):
88696         (WebCore::ScrollView::removeChild):
88697         * platform/mac/WidgetMac.mm:
88698         (WebCore::Widget::containingWindow):
88699         * platform/qt/WidgetQt.cpp:
88700         (WebCore::Widget::invalidateRect):
88701         (WebCore::Widget::containingWindow):
88702         * platform/win/WidgetWin.cpp:
88703         (WebCore::Widget::Widget):
88704         (WebCore::Widget::~Widget):
88705         (WebCore::Widget::containingWindow):
88706
88707 2008-09-18  Beth Dakin  <bdakin@apple.com>
88708
88709         Reviewed by Dave Hyatt.
88710
88711         Fix for https://bugs.webkit.org/show_bug.cgi?id=20515 Crash upon
88712         parsing CSS: unicode-range: searchfield-cancel-buttonpt=-webkit-
88713         dashboard-region=
88714         and corresponding: <rdar://problem/6174100>
88715
88716         This patch makes CSSParserValue::createCSSValue handle unknown
88717         identifiers.
88718
88719         * css/CSSParserValues.cpp:
88720         (WebCore::CSSParserValue::createCSSValue): If we have an identifier
88721         with no id (an unknown identifier) create a CSSPrimitiveValue of
88722         type CSS_PARSER_IDENTIFIER
88723         * css/CSSPrimitiveValue.cpp:
88724         (WebCore::CSSPrimitiveValue::cssText):
88725         (WebCore::CSSPrimitiveValue::parserValue):
88726         * css/CSSPrimitiveValue.h:
88727         (WebCore::CSSPrimitiveValue::):
88728
88729 2008-09-18  Sam Weinig  <sam@webkit.org>
88730
88731         Rubber-stamped by David "I'd prefer not" Hyatt.
88732
88733         More the remaining class out of RenderStyle.h/cpp
88734
88735         * GNUmakefile.am:
88736         * WebCore.pro:
88737         * WebCore.vcproj/WebCore.vcproj:
88738         * WebCore.xcodeproj/project.pbxproj:
88739         * WebCoreSources.bkl:
88740         * rendering/style/CursorData.h: Copied from rendering/style/RenderStyle.h.
88741         (WebCore::CursorData::CursorData):
88742         (WebCore::CursorData::operator==):
88743         (WebCore::CursorData::operator!=):
88744         * rendering/style/CursorList.h: Copied from rendering/style/RenderStyle.h.
88745         (WebCore::CursorList::operator[]):
88746         (WebCore::CursorList::CursorList):
88747         * rendering/style/RenderStyle.cpp:
88748         * rendering/style/RenderStyle.h:
88749         (WebCore::RenderStyle::deref):
88750         (WebCore::RenderStyle::hasOneRef):
88751         (WebCore::RenderStyle::InheritedFlags::operator!=):
88752         (WebCore::RenderStyle::NonInheritedFlags::operator!=):
88753         (WebCore::RenderStyle::hasBackground):
88754         (WebCore::RenderStyle::outlineWidth):
88755         (WebCore::RenderStyle::autoWrap):
88756         (WebCore::RenderStyle::preserveNewline):
88757         (WebCore::RenderStyle::collapseWhiteSpace):
88758         (WebCore::RenderStyle::isCollapsibleWhiteSpace):
88759         (WebCore::RenderStyle::breakOnlyAfterWhiteSpace):
88760         (WebCore::RenderStyle::breakWords):
88761         (WebCore::RenderStyle::outlineOffset):
88762         (WebCore::RenderStyle::setLeft):
88763         (WebCore::RenderStyle::setRight):
88764         (WebCore::RenderStyle::setTop):
88765         (WebCore::RenderStyle::setBottom):
88766         (WebCore::RenderStyle::setDashboardRegion):
88767         (WebCore::RenderStyle::setBackgroundColor):
88768         (WebCore::RenderStyle::setBorderImage):
88769         (WebCore::RenderStyle::setBorderRadius):
88770         (WebCore::RenderStyle::setFontDescription):
88771         (WebCore::RenderStyle::adjustBackgroundLayers):
88772         (WebCore::RenderStyle::adjustMaskLayers):
88773         (WebCore::RenderStyle::deleteBindingURIs):
88774         (WebCore::RenderStyle::inheritBindingURIs):
88775         (WebCore::RenderStyle::isDisplayReplacedType):
88776         (WebCore::RenderStyle::isDisplayInlineType):
88777         (WebCore::RenderStyle::isOriginalDisplayInlineType):
88778         * rendering/style/StyleInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
88779         * rendering/style/StyleInheritedData.h: Copied from rendering/style/RenderStyle.h.
88780         (WebCore::StyleInheritedData::operator!=):
88781         * rendering/style/StyleRareInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
88782         * rendering/style/StyleRareInheritedData.h: Copied from rendering/style/RenderStyle.h.
88783         (WebCore::StyleRareInheritedData::operator!=):
88784         * rendering/style/StyleRareNonInheritedData.cpp: Copied from rendering/style/RenderStyle.cpp.
88785         * rendering/style/StyleRareNonInheritedData.h: Copied from rendering/style/RenderStyle.h.
88786         * rendering/style/StyleReflection.h: Copied from rendering/style/RenderStyle.h.
88787
88788 2008-09-18  David Hyatt  <hyatt@apple.com>
88789
88790         Move the concept of suppression invalidation on Widgets to Scrollbar
88791         instead.  Since this is only used by Scrollbars, there is no need for
88792         it to be on Widget.
88793
88794         Reviewed by Sam Weinig
88795
88796         * platform/Scrollbar.cpp:
88797         (WebCore::Scrollbar::Scrollbar):
88798         (WebCore::Scrollbar::invalidateRect):
88799         * platform/Scrollbar.h:
88800         (WebCore::Scrollbar::suppressInvalidation):
88801         (WebCore::Scrollbar::setSuppressInvalidation):
88802         * platform/Widget.h:
88803         * platform/gtk/WidgetGtk.cpp:
88804         (WebCore::Widget::Widget):
88805         (WebCore::Widget::invalidateRect):
88806         * platform/qt/WidgetQt.cpp:
88807         (WebCore::WidgetPrivate::WidgetPrivate):
88808         (WebCore::Widget::invalidateRect):
88809         * platform/win/WidgetWin.cpp:
88810         (WebCore::Widget::Widget):
88811         (WebCore::Widget::invalidateRect):
88812
88813 2008-09-18  David Hyatt  <hyatt@apple.com>
88814
88815         Make invalidate() on Widget non-virtual and make it just call
88816         invalidateRect() on the boundsGeometry() of the Widget.
88817
88818         Reviewed by Dan Bernstein
88819
88820         * platform/Widget.h:
88821         (WebCore::Widget::boundsGeometry):
88822         (WebCore::Widget::invalidate):
88823         * platform/gtk/WidgetGtk.cpp:
88824         * platform/mac/WidgetMac.mm:
88825         * platform/qt/WidgetQt.cpp:
88826         * platform/win/WidgetWin.cpp:
88827         * platform/wx/WidgetWx.cpp:
88828
88829 2008-09-18  Sam Weinig  <sam@webkit.org>
88830
88831         Rubber-stamped in exile by David Hyatt.
88832
88833         Split Animation, AnimationList, BindingURI, ContentData, CounterContent,
88834         KeyframeList, ShadowData, StyleFlexibleBoxData and TimingFunction out of
88835         RenderStyle.h/cpp
88836
88837         * GNUmakefile.am:
88838         * WebCore.pro:
88839         * WebCore.vcproj/WebCore.vcproj:
88840         * WebCore.xcodeproj/project.pbxproj:
88841         * WebCoreSources.bkl:
88842         * css/CSSStyleSelector.cpp:
88843         * css/CSSStyleSelector.h:
88844         * page/animation/CompositeAnimation.cpp:
88845         * page/animation/KeyframeAnimation.cpp:
88846         * page/animation/KeyframeAnimation.h:
88847         * rendering/RenderCounter.h:
88848         * rendering/style/Animation.cpp: Copied from rendering/style/RenderStyle.cpp.
88849         (WebCore::Animation::~Animation):
88850         (WebCore::Animation::animationsMatch):
88851         (WebCore::Animation::keyframeList):
88852         (WebCore::Animation::setAnimationKeyframe):
88853         * rendering/style/Animation.h: Copied from rendering/style/RenderStyle.h.
88854         * rendering/style/AnimationList.cpp: Copied from rendering/style/RenderStyle.cpp.
88855         * rendering/style/AnimationList.h: Copied from rendering/style/RenderStyle.h.
88856         * rendering/style/BindingURI.cpp: Copied from rendering/style/RenderStyle.cpp.
88857         * rendering/style/BindingURI.h: Copied from rendering/style/RenderStyle.h.
88858         (WebCore::BindingURI::operator!=):
88859         * rendering/style/ContentData.cpp: Copied from rendering/style/RenderStyle.cpp.
88860         * rendering/style/ContentData.h: Copied from rendering/style/RenderStyle.h.
88861         (WebCore::ContentData::ContentData):
88862         (WebCore::ContentData::~ContentData):
88863         * rendering/style/CounterContent.h: Copied from rendering/style/RenderStyle.h.
88864         (WebCore::CounterContent::CounterContent):
88865         * rendering/style/CounterDirectives.cpp: Copied from rendering/style/RenderStyle.cpp.
88866         * rendering/style/CounterDirectives.h: Copied from rendering/style/RenderStyle.h.
88867         (WebCore::CounterDirectives::CounterDirectives):
88868         * rendering/style/KeyframeList.cpp: Copied from rendering/style/RenderStyle.cpp.
88869         (WebCore::KeyframeList::insert):
88870         * rendering/style/KeyframeList.h: Copied from rendering/style/RenderStyle.h.
88871         (WebCore::KeyframeValue::KeyframeValue):
88872         (WebCore::KeyframeList::create):
88873         (WebCore::KeyframeList::KeyframeList):
88874         * rendering/style/RenderStyle.cpp:
88875         * rendering/style/RenderStyle.h:
88876         * rendering/style/ShadowData.cpp: Copied from rendering/style/RenderStyle.cpp.
88877         * rendering/style/ShadowData.h: Copied from rendering/style/RenderStyle.h.
88878         (WebCore::ShadowData::ShadowData):
88879         (WebCore::ShadowData::~ShadowData):
88880         (WebCore::ShadowData::operator!=):
88881         * rendering/style/StyleFlexibleBoxData.cpp: Copied from rendering/style/RenderStyle.cpp.
88882         * rendering/style/StyleFlexibleBoxData.h: Copied from rendering/style/RenderStyle.h.
88883         (WebCore::StyleFlexibleBoxData::operator!=):
88884         * rendering/style/TimingFunction.h: Copied from rendering/style/RenderStyle.h.
88885         (WebCore::TimingFunction::TimingFunction):
88886         (WebCore::TimingFunction::operator==):
88887
88888 2008-09-18  Adele Peterson  <adele@apple.com>
88889
88890         Reviewed by Dan Bernstein.
88891
88892         Fix RenderStyle leaks.
88893
88894         * rendering/RenderTextControl.cpp: (WebCore::RenderTextControl::createSubtreeIfNeeded):
88895
88896 2008-09-18  Kevin McCullough  <kmccullough@apple.com>
88897
88898         Accidentally checked in code.
88899
88900         * html/HTMLElementFactory.cpp:
88901         (WebCore::frameConstructor):
88902         (WebCore::iframeConstructor):
88903
88904 2008-09-18  Kevin McCullough  <kmccullough@apple.com>
88905
88906         Reviewed by Tim.
88907
88908         <rdar://problem/5722310> gracefully handle too many console messages
88909         (20904)
88910         - Keep track of the most previous message and then compare it to the
88911         subsequent messages as they come in.  If there are multiple of the same
88912         message create a count that indicates the current number.
88913
88914         * manual-tests/inspector/multiple-console-messages.html: Added.
88915         * page/inspector/Console.js:
88916         * page/inspector/inspector.css:
88917
88918 2008-09-18  Jonathon Jongsma  <jonathon@quotidian.org>
88919
88920         Reviewed by Alp Toker
88921
88922         https://bugs.webkit.org/show_bug.cgi?id=20830
88923         [GTK] Don't use deprecated pango API
88924
88925         Replace deprecated pango functions with non-deprecated ones for newer
88926         versions of pango
88927
88928         * platform/graphics/gtk/FontGtk.cpp:
88929         (WebCore::getDefaultPangoLayout):
88930         * platform/graphics/gtk/FontPlatformDataPango.cpp:
88931         (WebCore::FontPlatformData::FontPlatformData):
88932
88933 2008-09-18  Alp Toker  <alp@nuanti.com>
88934
88935         Build fix for r36587. Add new sources (and sort the lists).
88936
88937         * GNUmakefile.am:
88938
88939 2008-09-17  Sam Weinig  <sam@webkit.org>
88940
88941         Fix Windows build.
88942
88943         * WebCore.vcproj/WebCore.vcproj:
88944
88945 2008-09-17  David Hyatt  <hyatt@apple.com>
88946
88947         Switch back to having frameGeometry be virtual in order to keep Mac
88948         the way it used to be.
88949
88950         Reviewed by Sam Weinig
88951
88952         * WebCore.base.exp:
88953         * platform/Widget.cpp:
88954         (WebCore::Widget::setParent):
88955         * platform/Widget.h:
88956         * platform/gtk/WidgetGtk.cpp:
88957         (WebCore::Widget::frameGeometry):
88958         (WebCore::Widget::setFrameGeometry):
88959         * platform/mac/WidgetMac.mm:
88960         (WebCore::Widget::frameGeometry):
88961         (WebCore::Widget::setFrameGeometry):
88962         * platform/qt/WidgetQt.cpp:
88963         (WebCore::Widget::frameGeometry):
88964         (WebCore::Widget::setFrameGeometry):
88965         * platform/win/WidgetWin.cpp:
88966         (WebCore::Widget::frameGeometry):
88967         (WebCore::Widget::setFrameGeometry):
88968         * platform/wx/WidgetWx.cpp:
88969         (WebCore::Widget::frameGeometry):
88970         (WebCore::Widget::setFrameGeometry):
88971         * plugins/PluginView.cpp:
88972         (WebCore::PluginView::setFrameGeometry):
88973         (WebCore::PluginView::geometryChanged):
88974         * plugins/PluginView.h:
88975         * plugins/gtk/PluginViewGtk.cpp:
88976         (WebCore::PluginView::updatePluginWidget):
88977         * plugins/qt/PluginViewQt.cpp:
88978         (WebCore::PluginView::updatePluginWidget):
88979         * plugins/win/PluginViewWin.cpp:
88980         (WebCore::PluginView::updatePluginWidget):
88981
88982 2008-09-17  Sam Weinig  <sam@webkit.org>
88983
88984         Reviewed by Mark Rowe.
88985
88986         Fix assertion in DOMWindow::adjustWindowRect where we were passing
88987         in garbage values and were getting lucky that they were a not Nan.
88988
88989         * bindings/js/JSDOMWindowBase.cpp:
88990         (WebCore::windowProtoFuncOpen):
88991
88992 2008-09-17  Sam Weinig  <sam@webkit.org>
88993
88994         Fix gtk build.
88995
88996         * rendering/style/MatrixTransformOperation.cpp:
88997
88998 2008-09-17  Sam Weinig  <sam@webkit.org>
88999
89000         Rubber-stamped with love by David Hyatt.
89001
89002         Split IdentityTransformOperation, MatrixTransformOperation, RotateTransformOperation,
89003         ScaleTransformOperation, SkewTransformOperation, StyleTransformData, TransformOperation,
89004         TransformOperations and TranslateTransformOperation out of RenderStyle.h/cpp
89005
89006         * GNUmakefile.am:
89007         * WebCore.pro:
89008         * WebCore.vcproj/WebCore.vcproj:
89009         * WebCore.xcodeproj/project.pbxproj:
89010         * WebCoreSources.bkl:
89011         * css/CSSStyleSelector.cpp:
89012         * page/animation/AnimationBase.cpp:
89013         (WebCore::solveEpsilon):
89014         * rendering/RenderLayer.cpp:
89015         * rendering/style/IdentityTransformOperation.h: Copied from rendering/style/RenderStyle.h.
89016         * rendering/style/MatrixTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
89017         * rendering/style/MatrixTransformOperation.h: Copied from rendering/style/RenderStyle.h.
89018         (WebCore::MatrixTransformOperation::MatrixTransformOperation):
89019         * rendering/style/RenderStyle.cpp:
89020         * rendering/style/RenderStyle.h:
89021         * rendering/style/RotateTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
89022         * rendering/style/RotateTransformOperation.h: Copied from rendering/style/RenderStyle.h.
89023         (WebCore::RotateTransformOperation::RotateTransformOperation):
89024         * rendering/style/ScaleTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
89025         * rendering/style/ScaleTransformOperation.h: Copied from rendering/style/RenderStyle.h.
89026         (WebCore::ScaleTransformOperation::ScaleTransformOperation):
89027         * rendering/style/SkewTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
89028         * rendering/style/SkewTransformOperation.h: Copied from rendering/style/RenderStyle.h.
89029         (WebCore::SkewTransformOperation::SkewTransformOperation):
89030         * rendering/style/StyleTransformData.cpp: Copied from rendering/style/RenderStyle.cpp.
89031         * rendering/style/StyleTransformData.h: Copied from rendering/style/RenderStyle.h.
89032         (WebCore::StyleTransformData::operator!=):
89033         * rendering/style/TransformOperation.h: Copied from rendering/style/RenderStyle.h.
89034         (WebCore::TransformOperation::):
89035         * rendering/style/TransformOperations.cpp: Copied from rendering/style/RenderStyle.cpp.
89036         (WebCore::TransformOperations::TransformOperations):
89037         * rendering/style/TransformOperations.h: Copied from rendering/style/RenderStyle.h.
89038         (WebCore::TransformOperations::operator!=):
89039         * rendering/style/TranslateTransformOperation.cpp: Copied from rendering/style/RenderStyle.cpp.
89040         * rendering/style/TranslateTransformOperation.h: Copied from rendering/style/RenderStyle.h.
89041         (WebCore::TranslateTransformOperation::TranslateTransformOperation):
89042
89043 2008-09-17  Mark Rowe  <mrowe@apple.com>
89044
89045         Build fix.
89046
89047         * rendering/style/StyleDashboardRegion.h:  PlatformString.h rather than String.h.
89048
89049 2008-09-17  David Hyatt  <hyatt@apple.com>
89050
89051         (1) Inline a bunch of methods for accessing frame geometry.
89052         (2) Make sure frameGeometry() works even when you have no underlying
89053         native widget.
89054         (3) Cache a frame geometry rect cross-platform (even for widgets that
89055         have underlying native widgets.
89056         (4) PluginView's updateWindow call is now a virtual function on Widget.
89057
89058         Reviewed by Sam Weinig
89059
89060         * ChangeLog:
89061         * WebCore.base.exp:
89062         * platform/Widget.cpp:
89063         (WebCore::Widget::setFrameGeometry):
89064         * platform/Widget.h:
89065         (WebCore::Widget::x):
89066         (WebCore::Widget::y):
89067         (WebCore::Widget::width):
89068         (WebCore::Widget::height):
89069         (WebCore::Widget::size):
89070         (WebCore::Widget::pos):
89071         (WebCore::Widget::frameGeometry):
89072         (WebCore::Widget::resize):
89073         (WebCore::Widget::move):
89074         (WebCore::Widget::isFrameView):
89075         (WebCore::Widget::windowClipRect):
89076         * platform/mac/WidgetMac.mm:
89077         (WebCore::Widget::~Widget):
89078         (WebCore::Widget::updatePlatformWidgetFrameGeometry):
89079         * platform/win/WidgetWin.cpp:
89080         (WebCore::Widget::updatePlatformWidgetFrameGeometry):
89081         * plugins/PluginView.cpp:
89082         (WebCore::PluginView::setFrameGeometry):
89083         (WebCore::PluginView::geometryChanged):
89084         * plugins/PluginView.h:
89085         * plugins/gtk/PluginViewGtk.cpp:
89086         (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
89087         * plugins/qt/PluginViewQt.cpp:
89088         (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
89089         * plugins/win/PluginViewWin.cpp:
89090         (WebCore::PluginView::updatePlatformWidgetFrameGeometry):
89091         * plugins/wx/PluginViewWx.cpp:
89092
89093 2008-09-17  Sam Weinig  <sam@webkit.org>
89094
89095         Reviewed by David "Waterman" Hyatt.
89096
89097         Fix a leak of NSViews in WidgetMac.mm.
89098
89099         * platform/mac/WidgetMac.mm:
89100         (WebCore::Widget::~Widget):
89101
89102 2008-09-17  Sam Weinig  <sam@webkit.org>
89103
89104         Rubber-stamped by David Waterman Hyatt.
89105
89106         Split FillLayer, StyleBackgroundData, StyleBoxData, StyleDashboardRegion, StyleMarqueeData
89107         StyleMultiColData and StyleVisualData out of RenderStyle.h/cpp
89108
89109         * GNUmakefile.am:
89110         * WebCore.pro:
89111         * WebCore.vcproj/WebCore.vcproj:
89112         * WebCore.xcodeproj/project.pbxproj:
89113         * WebCoreSources.bkl:
89114         * rendering/style/FillLayer.cpp: Copied from rendering/style/RenderStyle.cpp.
89115         * rendering/style/FillLayer.h: Copied from rendering/style/RenderStyle.h.
89116         (WebCore::FillLayer::operator!=):
89117         (WebCore::FillLayer::hasImage):
89118         (WebCore::FillLayer::hasFixedImage):
89119         * rendering/style/RenderStyle.cpp:
89120         * rendering/style/RenderStyle.h:
89121         * rendering/style/StyleBackgroundData.cpp: Copied from rendering/style/RenderStyle.cpp.
89122         (WebCore::StyleBackgroundData::StyleBackgroundData):
89123         * rendering/style/StyleBackgroundData.h: Copied from rendering/style/RenderStyle.h.
89124         (WebCore::StyleBackgroundData::~StyleBackgroundData):
89125         (WebCore::StyleBackgroundData::operator!=):
89126         * rendering/style/StyleBoxData.cpp: Copied from rendering/style/RenderStyle.cpp.
89127         * rendering/style/StyleBoxData.h: Copied from rendering/style/RenderStyle.h.
89128         (WebCore::StyleBoxData::operator!=):
89129         * rendering/style/StyleDashboardRegion.h: Copied from rendering/style/RenderStyle.h.
89130         (WebCore::StyleDashboardRegion::operator!=):
89131         * rendering/style/StyleMarqueeData.cpp: Copied from rendering/style/RenderStyle.cpp.
89132         * rendering/style/StyleMarqueeData.h: Copied from rendering/style/RenderStyle.h.
89133         (WebCore::StyleMarqueeData::operator!=):
89134         * rendering/style/StyleMultiColData.cpp: Copied from rendering/style/RenderStyle.cpp.
89135         * rendering/style/StyleMultiColData.h: Copied from rendering/style/RenderStyle.h.
89136         (WebCore::StyleMultiColData::operator!=):
89137         (WebCore::StyleMultiColData::ruleWidth):
89138         * rendering/style/StyleVisualData.cpp: Copied from rendering/style/RenderStyle.cpp.
89139         * rendering/style/StyleVisualData.h: Copied from rendering/style/RenderStyle.h.
89140         (WebCore::StyleVisualData::operator==):
89141
89142 2008-09-17  David Hyatt  <hyatt@apple.com>
89143
89144         Remove WidgetClient from Widget.
89145
89146         Reviewed by Sam Weinig
89147
89148         * WebCore.xcodeproj/project.pbxproj:
89149         * platform/Widget.h:
89150         (WebCore::Widget::setClient):
89151         (WebCore::Widget::client):
89152         * platform/WidgetClient.h: Removed.
89153         * platform/gtk/WidgetGtk.cpp:
89154         * platform/mac/WidgetMac.mm:
89155         (WebCore::Widget::Widget):
89156         (WebCore::Widget::show):
89157         (WebCore::Widget::hide):
89158         * platform/qt/WidgetQt.cpp:
89159         (WebCore::WidgetPrivate::WidgetPrivate):
89160         * platform/win/WidgetWin.cpp:
89161         (WebCore::Widget::Widget):
89162         * platform/wx/WidgetWx.cpp:
89163         (WebCore::Widget::Widget):
89164
89165 2008-09-17  David Hyatt  <hyatt@apple.com>
89166
89167         Remove isEnabled/setEnabled from Widget.  The concept of being enabled now
89168         only applies to Scrollbars so the method has been moved there and made
89169         cross-platform.  Scrollbar subclasses that have a corresponding native
89170         widget can subclass setEnabled to change the enabled state of the native
89171         widget.
89172
89173         Reviewed by Sam Weinig & Darin Adler
89174
89175         * WebCore.base.exp:
89176         * platform/Scrollbar.cpp:
89177         (WebCore::Scrollbar::Scrollbar):
89178         * platform/Scrollbar.h:
89179         (WebCore::Scrollbar::enabled):
89180         (WebCore::Scrollbar::setEnabled):
89181         * platform/Widget.h:
89182         * platform/gtk/ScrollbarGtk.cpp:
89183         (ScrollbarGtk::setEnabled):
89184         * platform/gtk/ScrollbarGtk.h:
89185         * platform/gtk/WidgetGtk.cpp:
89186         * platform/mac/ScrollbarMac.h:
89187         * platform/mac/ScrollbarMac.mm:
89188         (WebCore::ScrollbarMac::scrollbarHit):
89189         (WebCore::ScrollbarMac::setEnabled):
89190         * platform/mac/WidgetMac.mm:
89191         * platform/qt/WidgetQt.cpp:
89192         (WebCore::WidgetPrivate::WidgetPrivate):
89193         * platform/win/WidgetWin.cpp:
89194         (WebCore::Widget::Widget):
89195         * platform/wx/WidgetWx.cpp:
89196
89197 2008-09-17  Sam Weinig  <sam@webkit.org>
89198
89199         Rubber-stamped by David Hyatt.
89200
89201         Split all RenderStyle enums into their own file.
89202
89203         * GNUmakefile.am:
89204         * WebCore.vcproj/WebCore.vcproj:
89205         * WebCore.xcodeproj/project.pbxproj:
89206         * rendering/style/BorderValue.h:
89207         * rendering/style/CollapsedBorderValue.h:
89208         * rendering/style/RenderStyle.h:
89209         * rendering/style/RenderStyleConstants.h: Copied from rendering/style/RenderStyle.h.
89210         (WebCore::):
89211         * rendering/style/StyleCachedImage.h:
89212         * rendering/style/StyleGeneratedImage.h:
89213         * rendering/style/StyleImage.h:
89214
89215 2008-09-17  Steve Falkenburg  <sfalken@apple.com>
89216
89217         Add back isFrameView check to fix failed assertion during scroll bar teardown.
89218
89219         Reviewed by Dave Hyatt.
89220
89221         * platform/Scrollbar.cpp:
89222         (WebCore::Scrollbar::setParent):
89223
89224 2008-09-17  Brady Eidson  <beidson@apple.com>
89225
89226         Reviewed by Mac build fix
89227
89228         * WebCore.xcodeproj/project.pbxproj: Send appropriate headers to WebKit
89229
89230 2008-09-17  Steve Falkenburg  <sfalken@apple.com>
89231
89232         Fix build.
89233
89234         * platform/win/ScrollViewWin.cpp:
89235         (WebCore::ScrollView::setParentVisible):
89236         * plugins/win/PluginViewWin.cpp:
89237         (WebCore::PluginView::init):
89238
89239 2008-09-17  Holger Hans Peter Freyther  <zecke@selfish.org>
89240
89241         Reviewed by Simon.
89242
89243         [QtWebKit] Implement error handling in TextCodecQt::decode
89244         Use the QTextCodec parsing state to set the sawError out variable. This
89245         is needed to pass Test 70 of acid3. The test case for this bug is
89246         fast/encoding/invalid-xml.html that is now partially passed. To pass
89247         it completely the Qt text codecs need to be adjusted to have proper
89248         error handling.
89249
89250         * platform/text/qt/TextCodecQt.cpp:
89251         (WebCore::TextCodecQt::decode):
89252
89253 2008-09-17  Sam Weinig  <sam@webkit.org>
89254
89255         Rubber-stamped by Dave Hyatt.
89256
89257         Split BorderData, BorderValue, CollapsedBorderValue, OutlineValue and StyleSurroundData
89258         out of RenderStyle.h/cpp
89259
89260         * GNUmakefile.am:
89261         * WebCore.pro:
89262         * WebCore.vcproj/WebCore.vcproj:
89263         * WebCore.xcodeproj/project.pbxproj:
89264         * WebCoreSources.bkl:
89265         * rendering/style/BorderData.h: Copied from rendering/style/RenderStyle.h.
89266         (WebCore::BorderData::hasBorderRadius):
89267         (WebCore::BorderData::borderLeftWidth):
89268         (WebCore::BorderData::borderRightWidth):
89269         (WebCore::BorderData::borderTopWidth):
89270         (WebCore::BorderData::borderBottomWidth):
89271         (WebCore::BorderData::operator!=):
89272         * rendering/style/BorderValue.h: Copied from rendering/style/RenderStyle.h.
89273         (WebCore::):
89274         (WebCore::BorderValue::BorderValue):
89275         (WebCore::BorderValue::nonZero):
89276         (WebCore::BorderValue::isTransparent):
89277         (WebCore::BorderValue::isVisible):
89278         * rendering/style/CollapsedBorderValue.h: Copied from rendering/style/RenderStyle.h.
89279         (WebCore::):
89280         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
89281         (WebCore::CollapsedBorderValue::operator==):
89282         * rendering/style/OutlineValue.h: Copied from rendering/style/RenderStyle.h.
89283         (WebCore::OutlineValue::OutlineValue):
89284         * rendering/style/RenderStyle.cpp:
89285         * rendering/style/RenderStyle.h:
89286         * rendering/style/StyleSurroundData.cpp: Copied from rendering/style/RenderStyle.cpp.
89287         * rendering/style/StyleSurroundData.h: Copied from rendering/style/RenderStyle.h.
89288         (WebCore::StyleSurroundData::operator!=):
89289
89290 2008-09-17  Beth Dakin  <bdakin@apple.com>
89291
89292         Reviewed by Darin Adler.
89293
89294         This is a better fix for: Invalid CSS code crashes Safari
89295         https://bugs.webkit.org/show_bug.cgi?id=20512
89296
89297         The spec indicates that the only valid input for a counter is a
89298         number or an identifier. So that is exactly what we allow.
89299
89300         * css/CSSParser.cpp:
89301         (WebCore::CSSParser::parseCounterContent):
89302
89303 2008-09-17  Alp Toker  <alp@nuanti.com>
89304
89305         GTK+ build fix. Adapt to use PlatformWidget functions.
89306
89307         * platform/gtk/ScrollViewGtk.cpp:
89308         (WebCore::ScrollViewScrollbar::geometryChanged):
89309         (WebCore::ScrollView::addChild):
89310         (WebCore::ScrollView::removeChild):
89311         * platform/gtk/ScrollbarGtk.cpp:
89312         (ScrollbarGtk::ScrollbarGtk):
89313         (ScrollbarGtk::~ScrollbarGtk):
89314         (ScrollbarGtk::geometryChanged):
89315
89316 2008-09-17  Sam Weinig  <sam@webkit.org>
89317
89318         Reviewed by Adele Peterson.
89319
89320         Patch for <rdar://problem/6133884>
89321         Calling window.resizeTo() on a subframe shouldn't change the window size
89322
89323         Test: fast/dom/Window/window-resize-and-move-sub-frame.html
89324
89325         * page/DOMWindow.cpp:
89326         (WebCore::DOMWindow::moveBy):
89327         (WebCore::DOMWindow::moveTo):
89328         (WebCore::DOMWindow::resizeBy):
89329         (WebCore::DOMWindow::resizeTo):
89330
89331 2008-09-17  Beth Dakin  <bdakin@apple.com>
89332
89333         Reviewed by Adam Roben.
89334
89335         Fix for https://bugs.webkit.org/show_bug.cgi?id=20512 Invalid CSS
89336         code crashes Safari
89337         and corresponding: <rdar://problem/6173832>
89338
89339         Reading through the spec, it seems like a function is not valid
89340         input for a counter. So this patch checks for that and bails in the
89341         case of invalid input.
89342
89343         * css/CSSParser.cpp:
89344         (WebCore::CSSParser::parseCounterContent):
89345
89346 2008-09-17  Greg Bolsinga  <bolsinga@apple.com>
89347
89348         Reviewed by Antti Koivisto.
89349
89350         Fix <rdar://problem/6227089>
89351         Crash in WebCore::Frame::setNeedsReapplyStyles()
89352
89353         View is null checked elsewhere too.
89354
89355         * page/Frame.cpp:
89356         (WebCore::Frame::setNeedsReapplyStyles):
89357
89358 2008-09-17  David Hyatt  <hyatt@apple.com>
89359
89360         Make the notion of having a native widget backing a Widget cross-platform.
89361         The PlatformWidget abstraction (which already existed) is used for this.
89362              Windows = HWND
89363              Qt = QWidget
89364              Mac = NSView
89365              wx = wxWindow
89366              Gtk = GtkWidget
89367
89368         There are new cross-platform methods that replace all of the unique
89369         platform-specific methods.
89370              platformWidget()
89371              setPlatformWidget()
89372
89373         For plugins, on every platform except Qt on Windows, the plugin's native
89374         widget is now stored in the Widget base class.  Since Qt on Windows uses
89375         HWNDs for plugins instead of QWidget, it is the only platform to keep the
89376         m_window variable in PluginView.
89377
89378         Reviewed by Sam Weinig
89379
89380         * WebCore.base.exp:
89381         * bindings/js/ScriptControllerMac.mm:
89382         (WebCore::ScriptController::createScriptInstanceForWidget):
89383         * page/mac/AccessibilityObjectWrapper.mm:
89384         (-[AccessibilityObjectWrapper attachmentView]):
89385         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
89386         * page/mac/EventHandlerMac.mm:
89387         (WebCore::EventHandler::passMouseDownEventToWidget):
89388         (WebCore::EventHandler::mouseDownViewIfStillGood):
89389         (WebCore::EventHandler::passWheelEventToWidget):
89390         (WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
89391         * platform/Widget.cpp:
89392         (WebCore::Widget::init):
89393         (WebCore::Widget::setParent):
89394         (WebCore::Widget::releasePlatformWidget):
89395         (WebCore::Widget::retainPlatformWidget):
89396         * platform/Widget.h:
89397         (WebCore::Widget::platformWidget):
89398         (WebCore::Widget::setPlatformWidget):
89399         * platform/gtk/WidgetGtk.cpp:
89400         (WebCore::Widget::Widget):
89401         (WebCore::Widget::setFocus):
89402         (WebCore::gdkDrawable):
89403         (WebCore::Widget::setCursor):
89404         (WebCore::Widget::show):
89405         (WebCore::Widget::hide):
89406         (WebCore::Widget::setEnabled):
89407         (WebCore::Widget::isEnabled):
89408         (WebCore::Widget::paint):
89409         * platform/mac/PlatformScreenMac.mm:
89410         (WebCore::screenRect):
89411         (WebCore::screenAvailableRect):
89412         * platform/mac/ScrollViewMac.mm:
89413         (WebCore::ScrollView::scrollView):
89414         (WebCore::ScrollView::update):
89415         (WebCore::ScrollView::inWindow):
89416         * platform/mac/ScrollbarMac.mm:
89417         (WebCore::ScrollbarMac::ScrollbarMac):
89418         (WebCore::ScrollbarMac::~ScrollbarMac):
89419         (WebCore::ScrollbarMac::updateThumbPosition):
89420         (WebCore::ScrollbarMac::updateThumbProportion):
89421         (WebCore::ScrollbarMac::scrollbarHit):
89422         * platform/mac/WidgetMac.mm:
89423         (WebCore::Widget::Widget):
89424         (WebCore::Widget::setEnabled):
89425         (WebCore::Widget::isEnabled):
89426         (WebCore::Widget::setFocus):
89427         (WebCore::Widget::getOuterView):
89428         (WebCore::Widget::paint):
89429         (WebCore::Widget::invalidate):
89430         (WebCore::Widget::invalidateRect):
89431         (WebCore::Widget::setIsSelected):
89432         (WebCore::Widget::releasePlatformWidget):
89433         (WebCore::Widget::retainPlatformWidget):
89434         * platform/qt/WidgetQt.cpp:
89435         (WebCore::WidgetPrivate::WidgetPrivate):
89436         (WebCore::Widget::Widget):
89437         (WebCore::Widget::setFrameGeometry):
89438         (WebCore::Widget::show):
89439         (WebCore::Widget::hide):
89440         (WebCore::Widget::isEnabled):
89441         (WebCore::Widget::setEnabled):
89442         (WebCore::Widget::invalidateRect):
89443         (WebCore::Widget::containingWindow):
89444         * platform/win/WidgetWin.cpp:
89445         (WebCore::Widget::Widget):
89446         * platform/wx/WidgetWx.cpp:
89447         (WebCore::Widget::Widget):
89448         (WebCore::Widget::frameGeometry):
89449         (WebCore::Widget::setFocus):
89450         (WebCore::Widget::setCursor):
89451         (WebCore::Widget::show):
89452         (WebCore::Widget::hide):
89453         (WebCore::Widget::setFrameGeometry):
89454         (WebCore::Widget::setEnabled):
89455         (WebCore::Widget::isEnabled):
89456         (WebCore::Widget::invalidate):
89457         (WebCore::Widget::invalidateRect):
89458         (WebCore::Widget::paint):
89459         * plugins/PluginView.cpp:
89460         (WebCore::PluginView::PluginView):
89461         * plugins/PluginView.h:
89462         (WebCore::PluginView::platformPluginWidget):
89463         * plugins/gtk/PluginViewGtk.cpp:
89464         (WebCore::PluginView::updateWindow):
89465         (WebCore::PluginView::setFocus):
89466         (WebCore::PluginView::show):
89467         (WebCore::PluginView::hide):
89468         (WebCore::PluginView::setParent):
89469         (WebCore::PluginView::setNPWindowRect):
89470         (WebCore::PluginView::setParentVisible):
89471         (WebCore::PluginView::getValue):
89472         (WebCore::PluginView::forceRedraw):
89473         (WebCore::PluginView::init):
89474         * plugins/qt/PluginViewQt.cpp:
89475         (WebCore::PluginView::updateWindow):
89476         (WebCore::PluginView::setFocus):
89477         (WebCore::PluginView::show):
89478         (WebCore::PluginView::hide):
89479         (WebCore::PluginView::setParent):
89480         (WebCore::PluginView::setNPWindowRect):
89481         (WebCore::PluginView::setParentVisible):
89482         (WebCore::PluginView::getValue):
89483         (WebCore::PluginView::~PluginView):
89484         (WebCore::PluginView::init):
89485         * plugins/win/PluginViewWin.cpp:
89486         (WebCore::PluginView::updateWindow):
89487         (WebCore::PluginView::setFocus):
89488         (WebCore::PluginView::show):
89489         (WebCore::PluginView::hide):
89490         (WebCore::PluginView::paint):
89491         (WebCore::PluginView::setParent):
89492         (WebCore::PluginView::setParentVisible):
89493         (WebCore::PluginView::setNPWindowRect):
89494         (WebCore::PluginView::stop):
89495         (WebCore::PluginView::invalidateRect):
89496         (WebCore::PluginView::forceRedraw):
89497         (WebCore::PluginView::~PluginView):
89498         (WebCore::PluginView::init):
89499
89500 2008-09-17  Sam Weinig  <sam@webkit.org>
89501
89502         Fix assert.
89503
89504         * platform/Widget.cpp:
89505         (WebCore::Widget::setParent):
89506
89507 2008-09-17  David Hyatt  <hyatt@apple.com>
89508
89509         Beginnings of Widget refactoring (in order to make the mixing of
89510         widgets with and without corresponding native widgets more cross-platform).
89511
89512         This first patch makes the concept of a parent ScrollView cross-platform.
89513
89514         Note the similarity of the show/hide methods on the three PluginViews.  This
89515         will be refactored better in a later patch so that they can all share
89516         a base class Widget show/hide method.  For now the changes were made
89517         simply to be able to bring WidgetWin's setParent method up into Widget.
89518
89519         Reviewed by Sam Weinig
89520
89521         * WebCore.base.exp:
89522         * platform/ScrollView.h:
89523         * platform/Widget.cpp:
89524         (WebCore::Widget::init):
89525         (WebCore::Widget::setParent):
89526         * platform/Widget.h:
89527         (WebCore::Widget::isSelfVisible):
89528         (WebCore::Widget::isParentVisible):
89529         (WebCore::Widget::isVisible):
89530         (WebCore::Widget::setParentVisible):
89531         (WebCore::Widget::isPluginView):
89532         (WebCore::Widget::parent):
89533         (WebCore::Widget::handleEvent):
89534         (WebCore::Widget::geometryChanged):
89535         * platform/gtk/WidgetGtk.cpp:
89536         (WebCore::Widget::Widget):
89537         * platform/mac/ScrollViewMac.mm:
89538         (WebCore::ScrollView::addChild):
89539         (WebCore::ScrollView::removeChild):
89540         * platform/mac/ScrollbarMac.mm:
89541         (WebCore::ScrollbarMac::~ScrollbarMac):
89542         * platform/mac/WidgetMac.mm:
89543         (WebCore::Widget::Widget):
89544         (WebCore::Widget::~Widget):
89545         * platform/qt/WidgetQt.cpp:
89546         (WebCore::WidgetPrivate::WidgetPrivate):
89547         (WebCore::Widget::Widget):
89548         (WebCore::Widget::topLevel):
89549         * platform/win/ScrollViewWin.cpp:
89550         (WebCore::ScrollView::ScrollViewPrivate::ScrollViewPrivate):
89551         (WebCore::ScrollView::setAncestorVisible):
89552         (WebCore::ScrollView::show):
89553         (WebCore::ScrollView::hide):
89554         * platform/win/WidgetWin.cpp:
89555         (WebCore::Widget::Widget):
89556         (WebCore::Widget::setParent):
89557         * platform/wx/WidgetWx.cpp:
89558         (WebCore::Widget::Widget):
89559         * plugins/PluginView.cpp:
89560         (WebCore::PluginView::PluginView):
89561         * plugins/PluginView.h:
89562         * plugins/gtk/PluginViewGtk.cpp:
89563         (WebCore::PluginView::show):
89564         (WebCore::PluginView::hide):
89565         (WebCore::PluginView::setParentVisible):
89566         * plugins/qt/PluginViewQt.cpp:
89567         (WebCore::PluginView::show):
89568         (WebCore::PluginView::hide):
89569         (WebCore::PluginView::setParentVisible):
89570         * plugins/win/PluginViewWin.cpp:
89571         (WebCore::PluginView::show):
89572         (WebCore::PluginView::hide):
89573         (WebCore::PluginView::setParentVisible):
89574
89575 2008-09-17  Alexey Proskuryakov  <ap@webkit.org>
89576
89577         Reviewed by Adam Roben.
89578
89579         <rdar://problem/6219577> Spew in console at launch about encoding mappings when running with ICU 4.0
89580
89581         * platform/text/TextCodecICU.cpp:
89582         (WebCore::TextCodecICU::registerExtendedEncodingNames): Updated for new encoding names.
89583
89584 2008-09-17  Tor Arne Vestbø  <tavestbo@trolltech.com>
89585
89586         Fix the QtWebKit/Mac build
89587
89588         * platform/qt/ScrollViewQt.cpp: add include
89589
89590 2008-09-17  David Hyatt  <hyatt@apple.com>
89591
89592         Add a #define to control whether or not to use an NSScroller on Mac.
89593         This ifdef will allow the new NSView-less NSScroller on Mac to be
89594         developed side by side with the current one.
89595
89596         The new scroller paints a debug red if turned on (although due to
89597         Widget issues you won't see anything paint yet).
89598
89599         Reviewed by olliej
89600
89601         * platform/Scrollbar.cpp:
89602         * platform/Scrollbar.h:
89603         * platform/mac/ScrollbarMac.h:
89604         * platform/mac/ScrollbarMac.mm:
89605         * platform/mac/ScrollbarThemeMac.cpp:
89606         (WebCore::ScrollbarThemeMac::paint):
89607         * platform/mac/ScrollbarThemeMac.h:
89608
89609 2008-09-16  Marco Barisione  <marco.barisione@collabora.co.uk>
89610
89611         Reviewed by Alp Toker.
89612
89613         http://bugs.webkit.org/show_bug.cgi?id=20854
89614         [GTK] Windows can be not realized in ScrollView::update
89615
89616         Do not call gdk_window_invalidate_rect on a non-realized GtkWidget.
89617
89618         * platform/gtk/ScrollViewGtk.cpp:
89619         (WebCore::ScrollView::update):
89620
89621 2008-09-16  Alp Toker  <alp@nuanti.com>
89622
89623         Suggested by Dave Hyatt.
89624
89625         Build fix and cleanup. Rename ScrollBar to Scrollbar.
89626
89627         * GNUmakefile.am:
89628         * WebCore.pro:
89629         * WebCore.vcproj/WebCore.vcproj:
89630         * WebCore.xcodeproj/project.pbxproj:
89631         * WebCoreSources.bkl:
89632         * editing/EditorCommand.cpp:
89633         * page/EventHandler.cpp:
89634         * page/gtk/EventHandlerGtk.cpp:
89635         * page/mac/EventHandlerMac.mm:
89636         * page/mac/FrameMac.mm:
89637         * page/qt/EventHandlerQt.cpp:
89638         * page/wx/EventHandlerWx.cpp:
89639         * platform/PopupMenu.h:
89640         * platform/ScrollBar.cpp: Removed.
89641         * platform/ScrollBar.h: Removed.
89642         * platform/Scrollbar.cpp: Copied from WebCore/platform/ScrollBar.cpp.
89643         * platform/Scrollbar.h: Copied from WebCore/platform/ScrollBar.h.
89644         * platform/gtk/ScrollbarGtk.cpp:
89645         (ScrollbarGtk::ScrollbarGtk):
89646         * platform/gtk/ScrollbarGtk.h:
89647         * platform/mac/ScrollbarMac.h:
89648         * platform/qt/ScrollViewQt.cpp:
89649         * platform/qt/ScrollbarQt.cpp:
89650         * platform/qt/ScrollbarThemeQt.cpp:
89651         * platform/win/PlatformScrollBar.h:
89652         * platform/win/PopupMenuWin.cpp:
89653         * platform/win/ScrollViewWin.cpp:
89654         * platform/win/ScrollbarThemeWin.cpp:
89655         * platform/wx/ScrollViewWx.cpp:
89656         * platform/wx/TemporaryLinkStubs.cpp:
89657         * rendering/HitTestResult.cpp:
89658         * rendering/RenderLayer.cpp:
89659         * rendering/RenderTextControl.cpp:
89660
89661 2008-09-16  David Hyatt  <hyatt@apple.com>
89662
89663         Fix Qt build bustage by making moveThumb a member of Scrollbar so that
89664         it can be called from ScrollbarQt.
89665
89666         * platform/ScrollBar.cpp:
89667         (WebCore::Scrollbar::moveThumb):
89668         (WebCore::Scrollbar::handleMouseMoveEvent):
89669         (WebCore::Scrollbar::handleMousePressEvent):
89670         * platform/ScrollBar.h:
89671         * platform/qt/ScrollViewQt.cpp:
89672         * platform/qt/ScrollbarQt.cpp:
89673         (WebCore::Scrollbar::handleContextMenuEvent):
89674
89675 2008-09-16  David Hyatt  <hyatt@apple.com>
89676
89677         Eliminate PlatformScrollbar.  Mac and Gtk now have subclasses for their
89678         native-widget scrollbars (ScrollbarMac and ScrollbarGtk).  Other platforms
89679         now just use Scrollbar.
89680
89681         Reviewed by Sam Weinig
89682
89683         * GNUmakefile.am:
89684         * WebCore.pro:
89685         * WebCore.vcproj/WebCore.vcproj:
89686         * WebCore.xcodeproj/project.pbxproj:
89687         * page/mac/FrameMac.mm:
89688         * platform/PopupMenu.h:
89689         (WebCore::PopupMenu::scrollbar):
89690         * platform/ScrollBar.cpp:
89691         (WebCore::createNativeScrollbar):
89692         * platform/ScrollBar.h:
89693         * platform/gtk/PlatformScrollBar.h: Removed.
89694         * platform/gtk/PlatformScrollBarGtk.cpp: Removed.
89695         * platform/gtk/ScrollbarGtk.cpp: Copied from platform/gtk/PlatformScrollBarGtk.cpp.
89696         (gtkScrollEventCallback):
89697         (ScrollbarGtk::ScrollbarGtk):
89698         (ScrollbarGtk::~ScrollbarGtk):
89699         (ScrollbarGtk::updateThumbPosition):
89700         (ScrollbarGtk::updateThumbProportion):
89701         (ScrollbarGtk::setFrameGeometry):
89702         (ScrollbarGtk::geometryChanged):
89703         (ScrollbarGtk::gtkValueChanged):
89704         * platform/gtk/ScrollbarGtk.h: Copied from platform/gtk/PlatformScrollBar.h.
89705         * platform/mac/PlatformScrollBar.h: Removed.
89706         * platform/mac/PlatformScrollBarMac.mm: Removed.
89707         * platform/mac/ScrollbarMac.h: Copied from platform/mac/PlatformScrollBar.h.
89708         * platform/mac/ScrollbarMac.mm: Copied from platform/mac/PlatformScrollBarMac.mm.
89709         (-[WebCoreScrollBar initWithScrollbarMac:]):
89710         (-[WebCoreScrollBar detachScrollbarMac]):
89711         (WebCore::Scrollbar::createNativeScrollbar):
89712         (WebCore::ScrollbarMac::ScrollbarMac):
89713         (WebCore::ScrollbarMac::~ScrollbarMac):
89714         (WebCore::ScrollbarMac::updateThumbPosition):
89715         (WebCore::ScrollbarMac::updateThumbProportion):
89716         (WebCore::ScrollbarMac::scrollbarHit):
89717         * platform/qt/PlatformScrollBar.h: Removed.
89718         * platform/qt/PlatformScrollBarQt.cpp: Removed.
89719         * platform/qt/ScrollbarQt.cpp: Copied from platform/qt/PlatformScrollBarQt.cpp.
89720         (WebCore::Scrollbar::handleContextMenuEvent):
89721         * rendering/HitTestResult.cpp:
89722         * rendering/RenderLayer.cpp:
89723         (WebCore::RenderLayer::createScrollbar):
89724         (WebCore::RenderLayer::destroyScrollbar):
89725         * rendering/RenderLayer.h:
89726         * rendering/RenderListBox.cpp:
89727         (WebCore::RenderListBox::~RenderListBox):
89728         (WebCore::RenderListBox::updateFromElement):
89729         (WebCore::RenderListBox::isPointInOverflowControl):
89730         * rendering/RenderObject.h:
89731         * rendering/RenderTextControl.cpp:
89732
89733 2008-09-16  David Hyatt  <hyatt@apple.com>
89734
89735         Make the scrollbar resizer-dodging logic cross-platform in the
89736         Scrollbar class.
89737
89738         Reviewed by Sam Weinig
89739
89740         * platform/ScrollBar.cpp:
89741         (WebCore::Scrollbar::setFrameGeometry):
89742         (WebCore::Scrollbar::setParent):
89743         (WebCore::Scrollbar::windowClipRect):
89744         * platform/ScrollBar.h:
89745         * platform/ScrollView.h:
89746         (WebCore::ScrollView::windowResizerRect):
89747         (WebCore::ScrollView::resizerOverlapsContent):
89748         (WebCore::ScrollView::adjustOverlappingScrollbarCount):
89749         * platform/Widget.h:
89750         (WebCore::Widget::setParent):
89751         * platform/mac/WidgetMac.mm:
89752         (WebCore::Widget::convertToContainingWindow):
89753         * platform/win/PlatformScrollBar.h:
89754         * platform/win/PlatformScrollBarWin.cpp:
89755
89756 2008-09-16  Dan Bernstein  <mitz@apple.com>
89757
89758         Reviewed by Darin Adler.
89759
89760         - fix https://bugs.webkit.org/show_bug.cgi?id=15129
89761           <rdar://problem/4644824> adding a new line with DOM does unnecessary additional repaint
89762
89763         Covered by fast/repaint/4776765.html
89764
89765         * rendering/RenderBlock.cpp:
89766         (WebCore::RenderBlock::layoutBlock): Avoid repainting this object if it
89767         did not have layout in the beginning.
89768         (WebCore::RenderBlock::layoutBlockChildren): If a child did not have
89769         layout in the beginning, repaint it in its new position, to compensate
89770         for the above (regardless of whether it "moved").
89771         * rendering/RenderObject.cpp:
89772         (WebCore::RenderObject::checkForRepaintDuringLayout): Added a comment
89773         about generalizing this fix in the future.
89774
89775 2008-09-16  Dan Bernstein  <mitz@apple.com>
89776
89777         Reviewed by Dave Hyatt.
89778
89779         - fix https://bugs.webkit.org/show_bug.cgi?id=15384
89780           Div does not notice when grandparent changes height
89781
89782         Test: fast/block/basic/quirk-percent-height-grandchild.html
89783
89784         - fix https://bugs.webkit.org/show_bug.cgi?id=20714
89785           Resizing Gmail inbox vertically results in whitespace at the bottom of the window
89786
89787         Test: fast/replaced/percent-height-in-anonymous-block.html
89788
89789         Added a two-way mapping between boxes with percentage heights and
89790         their non-parent ancestors up to the one the height is computed relative
89791         to. In quirks mode (the first bug), this can be any number of containing
89792         block with auto height. In strict mode (the second bug) this can be
89793         the containing block of an anonymous block containing a replaced
89794         element.
89795
89796         * rendering/RenderBlock.cpp:
89797         (WebCore::RenderBlock::~RenderBlock): Added code to remove the all the
89798         mapping to/from this block to percentage-height descendants.
89799         (WebCore::RenderBlock::layoutBlockChildren): Added code to mark
89800         percentage-height descendants (and their containing block ancestry chain
89801         up to this block) for layout. This ensures that those descendants whose
89802         height depends on the height of this block (or an ancestor) are updated.
89803         (WebCore::RenderBlock::addPercentHeightDescendant): Added. Establishes
89804         a two-way mapping between this block and the given box.
89805         (WebCore::RenderBlock::removePercentHeightDescendant): Added. Removes
89806         all the mapping to/from this box.
89807         * rendering/RenderBlock.h:
89808         * rendering/RenderBox.cpp:
89809         (WebCore::RenderBox::setStyle): Added calls to
89810         removePercentHeightDescendant() when style changes and the box
89811         previously had a percentage height. An exception is when the style
89812         change does not require layout, in which case the box still has
89813         a percentage height and the mappings are valid. In all other cases,
89814         any required mappings will be (re-)established during layout.
89815         (WebCore::RenderBox::destroy): Added a call to
89816         removePercentHeightDescendant.
89817         (WebCore::RenderBox::calcPercentageHeight): Added code that, in quirks
89818         mode, if a higher-than-parent containing block is affecting the box's
89819         height, creates a mapping between the box and that block.
89820         (WebCore::RenderBox::calcReplacedHeightUsing): Changed to skip over
89821         anonymous containing blocks, if any, and when that happens, use
89822         addPercentHeightDescendant() to ensure that the non-anonymous block
89823         is aware of the dependent percent-height box.
89824
89825 2008-09-16  Dirk Schulze  <vbs85@gmx.de>
89826
89827         Reviewed by Oliver Hunt and Alp Toker.
89828
89829         Implemented toDataURL in Cairo. Only PNG support
89830         at the moment.
89831
89832         Qt, Cairo and wx require toDataURL implementations
89833         https://bugs.webkit.org/show_bug.cgi?id=17719
89834
89835         * platform/MIMETypeRegistry.cpp:
89836         (WebCore::initializeSupportedImageMIMETypesForEncoding):
89837         * platform/graphics/cairo/ImageBufferCairo.cpp:
89838         (WebCore::ImageBuffer::ImageBuffer):
89839         (WebCore::writeFunction):
89840         (WebCore::ImageBuffer::toDataURL):
89841
89842 2008-09-16  Tor Arne Vestbø  <tavestbo@trolltech.com>
89843
89844         Reviewed by Simon.
89845
89846         Hide unused media element controls in the QtWebKit port
89847
89848         * platform/qt/html4-adjustments-qt.css
89849
89850 2008-09-16  Ariya Hidayat  <ariya.hidayat@trolltech.com>
89851
89852         Reviewed by Simon.
89853
89854         Fix compilation of the Qt scrollbar code.
89855
89856         * platform/qt/PlatformScrollBarQt.cpp:
89857         (WebCore::scPart):
89858         (WebCore::styleOptionSlider):
89859         (WebCore::thumbLength):
89860         (WebCore::pixelPosToRangeValue):
89861         (WebCore::PlatformScrollbar::handleContextMenuEvent):
89862
89863 2008-09-16  Adam Treat  <treat@kde.org>
89864
89865         Reviewed by Anders Carlsson.
89866
89867         Prevent accesses off of the end of the buffer introduced in r36450
89868         and when checking for descriptions of mime. Also, coding style fix.
89869
89870         * plugins/qt/PluginPackageQt.cpp:
89871         (WebCore::PluginPackage::fetchInfo):
89872
89873 2008-09-15  Rob Buis  <buis@kde.org>
89874
89875         Reviewed by Eric.
89876
89877         https://bugs.webkit.org/show_bug.cgi?id=20634
89878         SVG transform attribute is ignored by <use> in <clipPath>
89879
89880         Transform the paths with the local transform when part
89881         of a clip path.
89882
89883         Test: svg/custom/use-clipped-transform.svg
89884
89885         * svg/SVGClipPathElement.cpp:
89886         (WebCore::SVGClipPathElement::canvasResource):
89887         * svg/SVGStyledTransformableElement.cpp:
89888         (WebCore::SVGStyledTransformableElement::toClipPath):
89889         * svg/SVGStyledTransformableElement.h:
89890
89891 2008-09-15  Dave Hyatt  <hyatt@apple.com>
89892
89893         Convert Qt over to its ScrollbarTheme.  Add cross-platform support for jumping the thumb location directly
89894         to a pressed location on the track (this is done with the middle mouse on Qt and with Shift-Click on Windows).
89895
89896         Reviewed by Sam Weinig
89897
89898         * platform/ScrollBar.cpp:
89899         (WebCore::thumbUnderMouse):
89900         (WebCore::Scrollbar::autoscrollPressedPart):
89901         (WebCore::Scrollbar::startTimerIfNeeded):
89902         (WebCore::moveThumb):
89903         (WebCore::Scrollbar::handleMouseMoveEvent):
89904         (WebCore::Scrollbar::handleMousePressEvent):
89905         * platform/ScrollBar.h:
89906         (WebCore::Scrollbar::pressedPos):
89907         (WebCore::Scrollbar::pixelStep):
89908         (WebCore::Scrollbar::setPressedPos):
89909         * platform/ScrollbarTheme.h:
89910         (WebCore::ScrollbarTheme::thumbPosition):
89911         (WebCore::ScrollbarTheme::thumbLength):
89912         (WebCore::ScrollbarTheme::trackPosition):
89913         (WebCore::ScrollbarTheme::trackLength):
89914         * platform/ScrollbarThemeComposite.cpp:
89915         (WebCore::ScrollbarThemeComposite::trackPosition):
89916         * platform/ScrollbarThemeComposite.h:
89917         * platform/qt/PlatformScrollBarQt.cpp:
89918         (WebCore::PlatformScrollbar::PlatformScrollbar):
89919         (WebCore::):
89920         * platform/qt/ScrollbarThemeQt.cpp:
89921         (WebCore::styleOptionSlider):
89922         (WebCore::ScrollbarThemeQt::hitTest):
89923         (WebCore::ScrollbarThemeQt::shouldCenterOnThumb):
89924         (WebCore::ScrollbarThemeQt::invalidatePart):
89925         (WebCore::ScrollbarThemeQt::thumbPosition):
89926         (WebCore::):
89927         * platform/qt/ScrollbarThemeQt.h:
89928         * platform/win/ScrollbarThemeSafari.cpp:
89929         (WebCore::ScrollbarThemeSafari::shouldCenterOnThumb):
89930         * platform/win/ScrollbarThemeSafari.h:
89931         * platform/win/ScrollbarThemeWin.cpp:
89932         (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
89933         * platform/win/ScrollbarThemeWin.h:
89934
89935 2008-09-15  David Smith  <catfish.man@gmail.com>
89936
89937         Reviewed by Sam Weinig.
89938
89939         https://bugs.webkit.org/show_bug.cgi?id=20180
89940
89941         Cache the result of parsing the an+b expression in :nth-child(an+b). Roughly a 2x speedup for :nth-child on SlickSpeed.
89942
89943         * GNUmakefile.am: Add CSSNthSelector
89944         * WebCore.pro: Add CSSNthSelector
89945         * WebCore.vcproj/WebCore.vcproj: Add CSSNthSelector
89946         * WebCore.xcodeproj/project.pbxproj: Add CSSNthSelector
89947         * css/CSSGrammar.y: Create CSSNthSelectors instead of CSSSelectors for :nth-*
89948         * css/CSSNthSelector.cpp: Added.
89949         (WebCore::CSSNthSelector::parseNth): Moved from CSSStyleSelector and modified to cache
89950         (WebCore::CSSNthSelector::matchNth): Moved from CSSStyleSelector and modified to use the cache
89951         * css/CSSNthSelector.h: Added.
89952         (WebCore::CSSNthSelector::CSSNthSelector):
89953         (WebCore::CSSNthSelector::~CSSNthSelector):
89954         * css/CSSParser.cpp:
89955         (WebCore::CSSParser::createFloatingNthSelector):
89956         * css/CSSParser.h:
89957         * css/CSSSelector.h: Use the free bit here to store a flag for CSSNthSelector
89958         (WebCore::CSSSelector::CSSSelector):
89959         * css/CSSStyleSelector.cpp:
89960         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Take advantage of knowing that all :nth-* selectors are CSSNthSelectors
89961
89962 2008-09-15  Matt Lilek  <webkit@mattlilek.com>
89963
89964         Reviewed by Tim Hatcher.
89965
89966         Clean up some inspector JS callbacks to remove an extra return.
89967
89968         * page/InspectorController.cpp:
89969         (WebCore::hideDOMNodeHighlight):
89970         (WebCore::loaded):
89971         (WebCore::unloading):
89972         (WebCore::attach):
89973         (WebCore::detach):
89974         (WebCore::startDebuggingAndReloadInspectedPage):
89975         (WebCore::stopDebugging):
89976         (WebCore::debuggerAttached):
89977         (WebCore::pauseOnExceptions):
89978         (WebCore::pauseInDebugger):
89979         (WebCore::resumeDebugger):
89980         (WebCore::stepOverStatementInDebugger):
89981         (WebCore::stepIntoStatementInDebugger):
89982         (WebCore::stepOutOfFunctionInDebugger):
89983         (WebCore::isWindowVisible):
89984         (WebCore::closeWindow):
89985
89986 2008-09-15  Dave Hyatt  <hyatt@apple.com>
89987
89988         Completely switch Windows scrollbars over to ScrollbarTheme.  The Aqua windows scrollbar and native scrollbar
89989         now share most of their code.
89990
89991         Also removing mini size scrollbar support, since it would have crashed Windows had it ever been used, and it
89992         also is never used in our code anyway.
89993
89994         Reviewed by Sam Weinig
89995
89996         * WebCore.vcproj/WebCore.vcproj:
89997         * platform/ScrollTypes.h:
89998         (WebCore::):
89999         * platform/ScrollbarThemeComposite.cpp:
90000         (WebCore::ScrollbarThemeComposite::splitTrack):
90001         (WebCore::ScrollbarThemeComposite::thumbLength):
90002         (WebCore::ScrollbarThemeComposite::minimumThumbLength):
90003         * platform/ScrollbarThemeComposite.h:
90004         * platform/mac/PlatformScrollBarMac.mm:
90005         (NSControlSizeForScrollBarControlSize):
90006         * platform/win/PlatformScrollBar.h:
90007         * platform/win/PlatformScrollBarSafari.cpp: Removed.
90008         * platform/win/PlatformScrollBarWin.cpp:
90009         (WebCore::PlatformScrollbar::PlatformScrollbar):
90010         * platform/win/ScrollbarThemeSafari.cpp:
90011         (WebCore::ScrollbarTheme::nativeTheme):
90012         (WebCore::):
90013         (WebCore::scrollbarControlStateFromThemeState):
90014         (WebCore::ScrollbarThemeSafari::hasButtons):
90015         (WebCore::ScrollbarThemeSafari::hasThumb):
90016         (WebCore::buttonRepaintRect):
90017         (WebCore::ScrollbarThemeSafari::backButtonRect):
90018         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
90019         (WebCore::trackRepaintRect):
90020         (WebCore::ScrollbarThemeSafari::trackRect):
90021         (WebCore::ScrollbarThemeSafari::minimumThumbLength):
90022         (WebCore::ScrollbarThemeSafari::paintTrack):
90023         (WebCore::ScrollbarThemeSafari::paintButton):
90024         (WebCore::ScrollbarThemeSafari::paintThumb):
90025         * platform/win/ScrollbarThemeSafari.h:
90026         * platform/win/ScrollbarThemeWin.cpp:
90027         * platform/win/ScrollbarThemeWin.h:
90028
90029 2008-09-15  Chris Fleizach  <cfleizach@apple.com>
90030
90031         Reviewed by Darin Adler, Beth Dakin
90032
90033         <rdar://problem/4003789> Expose lists as AXList
90034         <rdar://problem/5707399> VO: Definition lists not announced in Safari
90035
90036         Lists are now exposed through AX. On the mac (in SnowLeopard) they use two new subroles
90037         AXContentList for <ul>, <ol> and AXDefinitionList for <dl>
90038         Inside the definition list, each <dt> "term" has an accessibility description ("term"),
90039         as does each <dd> tag ("definition")
90040
90041         Test: accessibility/lists.html
90042
90043         * GNUmakefile.am:
90044         * WebCore.pro:
90045         * WebCore.vcproj/WebCore.vcproj:
90046         * WebCore.xcodeproj/project.pbxproj:
90047         * WebCoreSources.bkl:
90048         * page/AXObjectCache.cpp:
90049         * page/AccessibilityList.cpp: Added.
90050         * page/AccessibilityList.h: Added.
90051         * page/AccessibilityObject.h:
90052         * page/AccessibilityRenderObject.cpp:
90053         * page/AccessibilityTable.cpp:
90054         * page/mac/AccessibilityObjectWrapper.mm:
90055         * page/mac/WebCoreViewFactory.h:
90056         * platform/LocalizedStrings.h:
90057         * platform/mac/LocalizedStringsMac.mm:
90058         * platform/qt/Localizations.cpp:
90059
90060 2008-09-15  Nikolas Zimmermann  <zimmermann@kde.org>
90061
90062         Reviewed by Eric.
90063
90064         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20865
90065         Prepare HTMLScriptElement & SVGScriptElement unification, and unification of event handling.
90066
90067         Several renames:
90068         dispatchHTMLEvent -> dispatchEventForType
90069         setHTMLEventListener -> setEventListenerForType
90070         getHTMLEventListener -> eventListenerForType
90071         removeHTMLEventListener -> removeEventListenerForType
90072         isHTMLEventListener -> isAttachedToEventTargetNode
90073         ...
90074
90075         Similar renames for the dispatch/get/set/*Window*Event functions.
90076         Kill JSSVGLazyEventListener and merge with JSLazyEventListener.
90077
90078         Most important change: Rename setHTMLEventListener to setEventListenerForTypeAndAttribute,
90079         as there exists a generic createEventListener() method now, taking care of JSLazyEventListener creation.
90080
90081         setHTMLEventListener() used createHTMLEventListener() before and was HTML specific.
90082         SVG is able to use the code as well now. This affects most files in html/.
90083
90084         No functional changes.
90085
90086         * GNUmakefile.am:
90087         * WebCore.pro:
90088         * WebCore.vcproj/WebCore.vcproj:
90089         * WebCore.xcodeproj/project.pbxproj:
90090         * bindings/js/JSDOMWindowBase.cpp:
90091         (WebCore::JSDOMWindowBase::~JSDOMWindowBase):
90092         (WebCore::JSDOMWindowBase::setListener):
90093         (WebCore::JSDOMWindowBase::getListener):
90094         (WebCore::JSDOMWindowBase::findJSEventListener):
90095         (WebCore::JSDOMWindowBase::findOrCreateJSEventListener):
90096         (WebCore::JSDOMWindowBase::findJSUnprotectedEventListener):
90097         (WebCore::JSDOMWindowBase::findOrCreateJSUnprotectedEventListener):
90098         (WebCore::JSDOMWindowBase::jsEventListenersAttachedToEventTargetNodes):
90099         (WebCore::JSDOMWindowBase::jsUnprotectedEventListenersAttachedToEventTargetNodes):
90100         * bindings/js/JSDOMWindowBase.h:
90101         * bindings/js/JSEventListener.cpp:
90102         (WebCore::JSAbstractEventListener::handleEvent):
90103         (WebCore::JSAbstractEventListener::isAttachedToEventTargetNode):
90104         (WebCore::JSUnprotectedEventListener::JSUnprotectedEventListener):
90105         (WebCore::JSUnprotectedEventListener::~JSUnprotectedEventListener):
90106         (WebCore::JSEventListener::JSEventListener):
90107         (WebCore::JSEventListener::~JSEventListener):
90108         (WebCore::JSLazyEventListener::JSLazyEventListener):
90109         (WebCore::eventParameterName):
90110         (WebCore::JSLazyEventListener::parseCode):
90111         (WebCore::getNodeEventListener):
90112         * bindings/js/JSEventListener.h:
90113         (WebCore::JSAbstractEventListener::JSAbstractEventListener):
90114         (WebCore::JSUnprotectedEventListener::create):
90115         (WebCore::JSEventListener::create):
90116         (WebCore::JSLazyEventListener::):
90117         (WebCore::JSLazyEventListener::create):
90118         * bindings/js/JSEventTargetNode.cpp:
90119         (WebCore::JSEventTargetNode::setListener):
90120         (WebCore::JSEventTargetNode::getListener):
90121         * bindings/js/JSSVGLazyEventListener.cpp: Removed.
90122         * bindings/js/JSSVGLazyEventListener.h: Removed.
90123         * bindings/js/ScriptController.cpp:
90124         (WebCore::ScriptController::createHTMLEventHandler):
90125         (WebCore::ScriptController::createSVGEventHandler):
90126         * dom/Document.cpp:
90127         (WebCore::Document::setFocusedNode):
90128         (WebCore::Document::handleWindowEvent):
90129         (WebCore::Document::setWindowEventListenerForType):
90130         (WebCore::Document::windowEventListenerForType):
90131         (WebCore::Document::removeWindowEventListenerForType):
90132         (WebCore::Document::addWindowEventListener):
90133         (WebCore::Document::hasWindowEventListener):
90134         (WebCore::Document::removePendingFrameBeforeUnloadEventCount):
90135         (WebCore::Document::createEventListener):
90136         (WebCore::Document::setWindowEventListenerForTypeAndAttribute):
90137         * dom/Document.h:
90138         * dom/EventListener.h:
90139         (WebCore::EventListener::isAttachedToEventTargetNode):
90140         * dom/EventTargetNode.cpp:
90141         (WebCore::EventTargetNode::dispatchFocusEvent):
90142         (WebCore::EventTargetNode::dispatchBlurEvent):
90143         (WebCore::EventTargetNode::dispatchEventForType):
90144         (WebCore::EventTargetNode::removeEventListenerForType):
90145         (WebCore::EventTargetNode::setEventListenerForType):
90146         (WebCore::EventTargetNode::setEventListenerForTypeAndAttribute):
90147         (WebCore::EventTargetNode::eventListenerForType):
90148         * dom/EventTargetNode.h:
90149         * dom/XMLTokenizer.cpp:
90150         (WebCore::XMLTokenizer::notifyFinished):
90151         * editing/ReplaceSelectionCommand.cpp:
90152         (WebCore::ReplacementFragment::ReplacementFragment):
90153         * html/HTMLBodyElement.cpp:
90154         (WebCore::HTMLBodyElement::parseMappedAttribute):
90155         * html/HTMLButtonElement.cpp:
90156         (WebCore::HTMLButtonElement::parseMappedAttribute):
90157         * html/HTMLElement.cpp:
90158         (WebCore::HTMLElement::parseMappedAttribute):
90159         (WebCore::HTMLElement::checkDTD):
90160         * html/HTMLElement.h:
90161         * html/HTMLFormControlElement.cpp:
90162         (WebCore::HTMLFormControlElement::onChange):
90163         * html/HTMLFormElement.cpp:
90164         (WebCore::HTMLFormElement::prepareSubmit):
90165         (WebCore::HTMLFormElement::reset):
90166         (WebCore::HTMLFormElement::parseMappedAttribute):
90167         * html/HTMLFrameElementBase.cpp:
90168         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
90169         * html/HTMLFrameSetElement.cpp:
90170         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
90171         * html/HTMLImageElement.cpp:
90172         (WebCore::HTMLImageElement::parseMappedAttribute):
90173         * html/HTMLImageLoader.cpp:
90174         (WebCore::HTMLImageLoader::dispatchLoadEvent):
90175         * html/HTMLInputElement.cpp:
90176         (WebCore::HTMLInputElement::parseMappedAttribute):
90177         (WebCore::HTMLInputElement::setValueFromRenderer):
90178         (WebCore::HTMLInputElement::onSearch):
90179         * html/HTMLMediaElement.cpp:
90180         (WebCore::HTMLMediaElement::asyncEventTimerFired):
90181         (WebCore::HTMLMediaElement::load):
90182         (WebCore::HTMLMediaElement::mediaPlayerNetworkStateChanged):
90183         (WebCore::HTMLMediaElement::setReadyState):
90184         (WebCore::HTMLMediaElement::seek):
90185         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
90186         (WebCore::HTMLMediaElement::willSaveToCache):
90187         * html/HTMLObjectElement.cpp:
90188         (WebCore::HTMLObjectElement::parseMappedAttribute):
90189         * html/HTMLScriptElement.cpp:
90190         (WebCore::HTMLScriptElement::parseMappedAttribute):
90191         (WebCore::HTMLScriptElement::dispatchLoadEvent):
90192         (WebCore::HTMLScriptElement::dispatchErrorEvent):
90193         * html/HTMLSelectElement.cpp:
90194         (WebCore::HTMLSelectElement::parseMappedAttribute):
90195         * html/HTMLTextAreaElement.cpp:
90196         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
90197         * html/HTMLTokenizer.cpp:
90198         (WebCore::HTMLTokenizer::notifyFinished):
90199         * page/AccessibilityRenderObject.cpp:
90200         (WebCore::AccessibilityRenderObject::mouseButtonListener):
90201         * page/EventHandler.cpp:
90202         (WebCore::EventHandler::canMouseDownStartSelect):
90203         (WebCore::EventHandler::canMouseDragExtendSelect):
90204         * page/Frame.cpp:
90205         (WebCore::Frame::sendScrollEvent):
90206         * page/Page.cpp:
90207         (WebCore::networkStateChanged):
90208         * rendering/RenderListBox.cpp:
90209         (WebCore::RenderListBox::valueChanged):
90210         * rendering/RenderTextControl.cpp:
90211         (WebCore::RenderTextControl::selectionChanged):
90212         * svg/SVGDocumentExtensions.cpp:
90213         * svg/SVGDocumentExtensions.h:
90214         * svg/SVGElement.cpp:
90215         (WebCore::SVGElement::parseMappedAttribute):
90216         (WebCore::SVGElement::finishParsingChildren):
90217         * svg/SVGElement.h:
90218         * svg/SVGSVGElement.cpp:
90219         (WebCore::SVGSVGElement::parseMappedAttribute):
90220         * svg/SVGSVGElement.h:
90221
90222 2008-09-15  Dave Hyatt  <hyatt@apple.com>
90223
90224         Convert PlatformScrollbarWin to use ScrollbarTheme for hit testing.  PlatformScrollbarQt/Gtk still
90225         need to be converted.
90226
90227         Reviewed by Sam Weinig
90228
90229         * platform/ScrollBar.cpp:
90230         (WebCore::Scrollbar::Scrollbar):
90231         (WebCore::Scrollbar::updateThumbPosition):
90232         (WebCore::Scrollbar::updateThumbProportion):
90233         (WebCore::Scrollbar::autoscrollPressedPart):
90234         (WebCore::Scrollbar::startTimerIfNeeded):
90235         * platform/ScrollBar.h:
90236         * platform/ScrollbarTheme.h:
90237         (WebCore::ScrollbarTheme::invalidateParts):
90238         * platform/ScrollbarThemeComposite.cpp:
90239         (WebCore::ScrollbarThemeComposite::hitTest):
90240         (WebCore::ScrollbarThemeComposite::invalidatePart):
90241         (WebCore::ScrollbarThemeComposite::thumbPosition):
90242         (WebCore::ScrollbarThemeComposite::thumbLength):
90243         (WebCore::ScrollbarThemeComposite::trackLength):
90244         * platform/ScrollbarThemeComposite.h:
90245         * platform/win/PlatformScrollBarSafari.cpp:
90246         (WebCore::PlatformScrollbar::PlatformScrollbar):
90247         * platform/win/PlatformScrollBarWin.cpp:
90248         (WebCore::PlatformScrollbar::PlatformScrollbar):
90249
90250 2008-09-15  David Smith  <catfish.man@gmail.com>
90251
90252         "Just do it"'d by Mark Rowe
90253
90254         https://bugs.webkit.org/show_bug.cgi?id=20856
90255         Add missing license header
90256
90257         * dom/NodeRenderStyle.h:
90258
90259 2008-09-15  Dean Jackson  <dino@apple.com>
90260
90261         Reviewed by Tim Hatcher.
90262
90263         Add default constructor for ShadowData
90264         https://bugs.webkit.org/show_bug.cgi?id=20757
90265
90266         Test: transitions/shadow.html
90267
90268         * rendering/style/RenderStyle.h:
90269
90270 2008-09-15  Dean Jackson  <dino@apple.com>
90271
90272         Reviewed by Tim Hatcher.
90273
90274         RenderStyle should update keyframes.
90275         http://bugs.webkit.org/show_bug.cgi?id=20756
90276
90277         * rendering/style/RenderStyle.cpp:
90278         (WebCore::StyleRareNonInheritedData::updateKeyframes):
90279
90280 2008-09-15  Dean Jackson  <dino@apple.com>
90281
90282         Reviewed by Tim Hatcher.
90283
90284         Unnecessary ASSERT in ImplicitAnimation destructor.
90285         https://bugs.webkit.org/show_bug.cgi?id=20817
90286
90287         * page/animation/ImplicitAnimation.cpp:
90288         (WebCore::ImplicitAnimation::~ImplicitAnimation):
90289
90290 2008-09-15  Adam Treat  <treat@kde.org>
90291
90292         Reviewed by Simon.
90293
90294         Fix plugin extension info. It was returning the mimetype where the
90295         extension was given.
90296
90297         * plugins/qt/PluginPackageQt.cpp:
90298         (WebCore::PluginPackage::fetchInfo):
90299
90300 2008-09-15  Dean Jackson  <dino@apple.com>
90301
90302         Reviewed by Tim Hatcher
90303
90304         Coding style violation!!!! Cleanup AnimationBase.cpp
90305
90306         * page/animation/AnimationBase.cpp:
90307         (WebCore::blendFunc):
90308
90309 2008-09-15  David Hyatt  <hyatt@apple.com>
90310
90311         Move all hit testing code for scrollbars into the base class.  Refactor
90312         it to accommodate all platform-specific behaviors using virtual ScrollbarTheme
90313         functions.
90314
90315         No platform is using this code yet.  Although it has been moved and compiles
90316         (even on Mac), it is not being used on any platform.
90317
90318         Reviewed by Sam Weinig
90319
90320         * platform/ScrollBar.cpp:
90321         (WebCore::Scrollbar::autoscrollPressedPart):
90322         (WebCore::Scrollbar::startTimerIfNeeded):
90323         (WebCore::Scrollbar::handleMouseMoveEvent):
90324         (WebCore::Scrollbar::handleMouseOutEvent):
90325         (WebCore::Scrollbar::handleMouseReleaseEvent):
90326         (WebCore::Scrollbar::handleMousePressEvent):
90327         * platform/ScrollBar.h:
90328         (WebCore::Scrollbar::handleContextMenuEvent):
90329         * platform/ScrollbarTheme.h:
90330         (WebCore::ScrollbarTheme::hitTest):
90331         (WebCore::ScrollbarTheme::invalidateOnMouseEnterExit):
90332         (WebCore::ScrollbarTheme::invalidatePart):
90333         (WebCore::ScrollbarTheme::shouldCenterOnThumb):
90334         (WebCore::ScrollbarTheme::centerOnThumb):
90335         (WebCore::ScrollbarTheme::thumbPosition):
90336         (WebCore::ScrollbarTheme::thumbLength):
90337         (WebCore::ScrollbarTheme::trackLength):
90338         (WebCore::ScrollbarTheme::initialAutoscrollTimerDelay):
90339         (WebCore::ScrollbarTheme::autoscrollTimerDelay):
90340         * platform/Widget.h:
90341         (WebCore::Widget::parent):
90342         * platform/mac/PlatformScrollBar.h:
90343         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
90344         (WebCore::PlatformScrollbar::handleMouseOutEvent):
90345         (WebCore::PlatformScrollbar::handleMousePressEvent):
90346         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
90347         * platform/mac/WidgetMac.mm:
90348         (WebCore::Widget::convertFromContainingWindow):
90349         * platform/win/ScrollbarThemeWin.cpp:
90350         (WebCore::ScrollbarThemeWin::invalidateOnMouseEnterExit):
90351         * platform/win/ScrollbarThemeWin.h:
90352
90353 2008-09-15  Dan Bernstein  <mitz@apple.com>
90354
90355         Reviewed by Sam Weinig.
90356
90357         - fix <rdar://problem/5842247> Single long breakable word takes O(n^2) to lay out
90358
90359         Cache the next breakable position for text nodes in InlineIterator.
90360
90361         * rendering/bidi.cpp:
90362         (WebCore::InlineIterator::InlineIterator):
90363         (WebCore::InlineIterator::increment):
90364         (WebCore::RenderBlock::findNextLineBreak):
90365
90366 2008-09-15  Simon Fraser  <simon.fraser@apple.com>
90367
90368         Reviewed by Dan Bernstein
90369
90370         Fix assertion and integral pixel issue when creating subimages.
90371         https://bugs.webkit.org/show_bug.cgi?id=20786
90372
90373         * platform/graphics/cg/ImageCG.cpp:
90374         (WebCore::BitmapImage::draw):
90375
90376 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
90377
90378         Reviewed by Simon.
90379
90380         Implment seek() and clean up and improve debugging output
90381
90382         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
90383         (debugMediaObject):
90384         (WebCore::MediaPlayerPrivate::seek):
90385         (WebCore::MediaPlayerPrivate::setVolume):
90386         (WebCore::MediaPlayerPrivate::setMuted):
90387         (WebCore::MediaPlayerPrivate::updateStates):
90388         (WebCore::MediaPlayerPrivate::naturalSize):
90389         (WebCore::MediaPlayerPrivate::paint):
90390         (WebCore::MediaPlayerPrivate::stateChanged):
90391         (WebCore::MediaPlayerPrivate::tick):
90392
90393 2008-09-15  Holger Hans Peter Freyther  <zecke@selfish.org>
90394
90395         Reviewed by Simon.
90396
90397         Remove bogus Q_ASSERTs from the MediaPlayer Phonon implementation
90398
90399         m_mediaObject, m_audioOutput, m_videoWidget get created in the
90400         c'tor and will only be deleted in the c'tor. The Q_ASSERTs would
90401         only check if we use the MediaPlayerPrivate after it has been deleted.
90402
90403         Acked-by: Tor Arne Vestbø  <tavestbo@trolltech.com>
90404
90405         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
90406         (WebCore::MediaPlayerPrivate::play):
90407         (WebCore::MediaPlayerPrivate::setVolume):
90408         (WebCore::MediaPlayerPrivate::updateStates):
90409
90410 2008-09-15  Anders Carlsson  <andersca@apple.com>
90411
90412         Reviewed by Maciej.
90413
90414         <rdar://problem/6163988>
90415         https://bugs.webkit.org/show_bug.cgi?id=20457
90416         Canvas: createPattern crashes WebKit in WTF::RefPtr<WebCore::Image>::operator!() const + 9 with a 1D pattern
90417
90418         Check the width and height and throw an exception if any of them are 0.
90419
90420         * html/CanvasRenderingContext2D.cpp:
90421         (WebCore::CanvasRenderingContext2D::createPattern):
90422
90423 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
90424
90425         Reviewed by Simon.
90426
90427         Render media element controls with antialiasing enabled
90428
90429         * platform/qt/RenderThemeQt.cpp:
90430         (WebCore::RenderThemeQt::paintMediaMuteButton):
90431         (WebCore::RenderThemeQt::paintMediaPlayButton):
90432         (WebCore::RenderThemeQt::paintMediaSliderTrack):
90433         (WebCore::RenderThemeQt::paintMediaSliderThumb):
90434
90435 2008-09-15  Ariya Hidayat  <ariya.hidayat@trolltech.com>
90436
90437         Reviewed by Simon.
90438
90439         Upon non fatal error, switch to the pause state (so that playback can continue)
90440
90441         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
90442         (WebCore::MediaPlayerPrivate::updateStates):
90443
90444 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
90445
90446         Reviewed by Simon.
90447
90448         Don't set WTF_USE_JSC in WebCore.pro now that it's set in config.h
90449
90450         * WebCore.pro:
90451
90452 2008-09-15  Tor Arne Vestbø  <tavestbo@trolltech.com>
90453
90454         Reviewed by Simon.
90455
90456         Make QtInstance::create() private and fix caching
90457
90458         * bindings/js/ScriptControllerQt.cpp:
90459         (WebCore::ScriptController::createScriptInstanceForWidget):
90460         * bridge/qt/qt_instance.cpp:
90461         (JSC::Bindings::QtInstance::getQtInstance):
90462         (JSC::Bindings::QtInstance::getRuntimeObject):
90463         * bridge/qt/qt_instance.h:
90464         (JSC::Bindings::QtInstance::create):
90465         * bridge/qt/qt_runtime.cpp:
90466         (JSC::Bindings::convertQVariantToValue):
90467         (JSC::Bindings::QtConnectionObject::execute):
90468
90469 2008-09-15  David Smith  <catfish.man@gmail.com>
90470
90471         Reviewed by Dave Hyatt.
90472
90473         https://bugs.webkit.org/show_bug.cgi?id=20180
90474
90475         >2x speedup on querySelector[All] with :nth-child by removing the collectRulesOnly argument on SelectorChecker.
90476         With collectRulesOnly set to true (the default) an optimization is turned off, and no callers were intentionally leaving it true.
90477         querySelector[All] assumed that the default was probably the right way to go, and so ended up being slow.
90478
90479         * css/CSSStyleSelector.cpp:
90480         (WebCore::CSSStyleSelector::CSSStyleSelector):
90481         (WebCore::CSSStyleSelector::SelectorChecker::SelectorChecker):
90482         * css/CSSStyleSelector.h:
90483
90484 2008-09-14  Dave Hyatt  <hyatt@apple.com>
90485
90486         Refactor PlatformScrollbarWin's painting so that it is now done by ScrollbarThemeWin.  PlatformScrollbarSafari
90487         is still painting itself (a subsequent patch will move its painting into ScrollbarThemeSafari).
90488
90489         Reviewed by Sam Weinig
90490
90491         * platform/ScrollBar.h:
90492         (WebCore::Scrollbar::client):
90493         (WebCore::Scrollbar::currentPos):
90494         (WebCore::Scrollbar::totalSize):
90495         * platform/ScrollbarTheme.h:
90496         * platform/ScrollbarThemeComposite.cpp:
90497         (WebCore::pageForScrollView):
90498         (WebCore::ScrollbarThemeComposite::paint):
90499         * platform/ScrollbarThemeComposite.h:
90500         (WebCore::ScrollbarThemeComposite::trackIsSinglePiece):
90501         * platform/win/PlatformScrollBar.h:
90502         * platform/win/PlatformScrollBarSafari.cpp:
90503         * platform/win/PlatformScrollBarWin.cpp:
90504         * platform/win/ScrollbarThemeSafari.h:
90505         (WebCore::ScrollbarThemeSafari::hasButtons):
90506         (WebCore::ScrollbarThemeSafari::hasThumb):
90507         (WebCore::ScrollbarThemeSafari::backButtonRect):
90508         (WebCore::ScrollbarThemeSafari::forwardButtonRect):
90509         (WebCore::ScrollbarThemeSafari::trackRect):
90510         (WebCore::ScrollbarThemeSafari::splitTrack):
90511         (WebCore::ScrollbarThemeSafari::paintTrack):
90512         (WebCore::ScrollbarThemeSafari::paintButton):
90513         (WebCore::ScrollbarThemeSafari::paintThumb):
90514         * platform/win/ScrollbarThemeWin.cpp:
90515         (WebCore::isRunningOnVistaOrLater):
90516         (WebCore::checkAndInitScrollbarTheme):
90517         (WebCore::ScrollbarThemeWin::ScrollbarThemeWin):
90518         (WebCore::ScrollbarThemeWin::themeChanged):
90519         (WebCore::ScrollbarThemeWin::hasThumb):
90520         (WebCore::ScrollbarThemeWin::backButtonRect):
90521         (WebCore::ScrollbarThemeWin::forwardButtonRect):
90522         (WebCore::ScrollbarThemeWin::trackRect):
90523         (WebCore::ScrollbarThemeWin::splitTrack):
90524         (WebCore::ScrollbarThemeWin::paintTrack):
90525         (WebCore::ScrollbarThemeWin::paintButton):
90526         (WebCore::gripperRect):
90527         (WebCore::paintGripper):
90528         (WebCore::ScrollbarThemeWin::paintThumb):
90529         (WebCore::ScrollbarThemeWin::thumbPosition):
90530         (WebCore::ScrollbarThemeWin::thumbLength):
90531         (WebCore::ScrollbarThemeWin::trackLength):
90532         * platform/win/ScrollbarThemeWin.h:
90533         (WebCore::ScrollbarThemeWin::hasButtons):
90534         (WebCore::ScrollbarThemeWin::trackIsSinglePiece):
90535
90536 2008-09-14  Anthony Ricaud  <rik24d@gmail.com>
90537
90538         Moving all resource graphs under the same container for future scalable feature.
90539         This is a speedup on resize but maybe a loss on changing the sorting function.
90540
90541         https://bugs.webkit.org/show_bug.cgi?id=20555
90542
90543         Reviewed by Timothy Hatcher.
90544
90545         * page/inspector/ResourcesPanel.js: Added a container for all resource graphs.
90546         Added WebInspector.ResourceGraph. No more _updateGraphBars on resize.
90547         * page/inspector/inspector.css: Edited corresponding rules and removed unnecessaries.
90548
90549 2008-09-14  Alexey Proskuryakov  <ap@webkit.org>
90550
90551         Reviewed by Maciej Stachowiak.
90552
90553         https://bugs.webkit.org/show_bug.cgi?id=20738
90554         compareBoundaryPoints gives incorrect results
90555
90556         Test: fast/dom/Range/compareBoundaryPoints-2.html
90557
90558         * dom/Range.cpp: (WebCore::Range::compareBoundaryPoints): Correct meanings of START_TO_END
90559         and END_TO_START.
90560         * page/DOMSelection.cpp: (WebCore::DOMSelection::addRange): Updated for this change.
90561
90562 2008-09-14  Maciej Stachowiak  <mjs@apple.com>
90563
90564         Unreviewed build fix.
90565
90566         Trying again.
90567
90568         * bindings/js/JSQuarantinedObjectWrapper.cpp:
90569         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
90570
90571 2008-09-14  Maciej Stachowiak  <mjs@apple.com>
90572
90573         Unreviewed build fix.
90574
90575         Blind attempt to fix build. Correct parameters for hasInstance.
90576
90577         * bindings/js/JSQuarantinedObjectWrapper.cpp:
90578         (WebCore::JSQuarantinedObjectWrapper::hasInstance):
90579         * bindings/js/JSQuarantinedObjectWrapper.h:
90580
90581 2008-09-14  Dan Bernstein  <mitz@apple.com>
90582
90583         Rubber-stamped by Sam Weinig.
90584
90585         - revert <http://trac.webkit.org/changeset/36382> because it exposed
90586           <https://bugs.webkit.org/show_bug.cgi?id=20846> and resulted in crashes
90587           on Tiger.
90588
90589         * platform/graphics/mac/FontCacheMac.mm:
90590         (WebCore::FontCache::getFontDataForCharacters):
90591         (WebCore::FontCache::getLastResortFallbackFont):
90592
90593 2008-09-14  Dave Hyatt  <hyatt@apple.com>
90594
90595         Add a new ScrollbarThemeComposite base class that is shared by ScrollbarThemeSafari and
90596         ScrollbarThemeWin.  Any scrollbar that wants to render by ScrollbarPart can subclass from this
90597         theme.
90598
90599         Reviewed by Sam Weinig
90600
90601         * WebCore.vcproj/WebCore.vcproj:
90602         * platform/win/ScrollbarThemeSafari.h:
90603         * platform/win/ScrollbarThemeWin.h:
90604
90605 2008-09-14  Alp Toker  <alp@nuanti.com>
90606
90607         https://bugs.webkit.org/show_bug.cgi?id=20320
90608         [GTK] A white rectangle is visible behind widgets with rounded corners
90609
90610         Sync bundled gtk2drawing.c to the latest version from Mozilla (coding
90611         style exempt).
90612
90613         Requested by Michael Monreal.
90614
90615         * platform/gtk/RenderThemeGtk.cpp:
90616         (WebCore::RenderThemeGtk::RenderThemeGtk):
90617         * platform/gtk/gtk2drawing.c:
90618         (moz_gtk_set_widget_name):
90619         (ensure_window_widget):
90620         (setup_widget_prototype):
90621         (ensure_button_arrow_widget):
90622         (moz_gtk_get_combo_box_inner_button):
90623         (moz_gtk_get_combo_box_button_inner_widgets):
90624         (ensure_combo_box_widgets):
90625         (moz_gtk_get_combo_box_entry_inner_widgets):
90626         (moz_gtk_get_combo_box_entry_arrow):
90627         (ensure_combo_box_entry_widgets):
90628         (ensure_toolbar_widget):
90629         (ensure_tooltip_widget):
90630         (ensure_menu_bar_widget):
90631         (ensure_menu_bar_item_widget):
90632         (ensure_menu_popup_widget):
90633         (ensure_menu_item_widget):
90634         (ensure_image_menu_item_widget):
90635         (ensure_menu_separator_widget):
90636         (ensure_check_menu_item_widget):
90637         (ensure_tree_header_cell_widget):
90638         (ensure_scrolled_window_widget):
90639         (moz_gtk_button_paint):
90640         (moz_gtk_init):
90641         (moz_gtk_button_get_inner_border):
90642         (moz_gtk_toggle_paint):
90643         (calculate_button_inner_rect):
90644         (calculate_arrow_rect):
90645         (moz_gtk_scrollbar_button_paint):
90646         (moz_gtk_scrollbar_thumb_paint):
90647         (moz_gtk_caret_paint):
90648         (moz_gtk_entry_paint):
90649         (moz_gtk_treeview_paint):
90650         (moz_gtk_tree_header_cell_paint):
90651         (moz_gtk_combo_box_paint):
90652         (moz_gtk_downarrow_paint):
90653         (moz_gtk_combo_box_entry_button_paint):
90654         (moz_gtk_toolbar_paint):
90655         (moz_gtk_tab_scroll_arrow_paint):
90656         (moz_gtk_menu_bar_paint):
90657         (moz_gtk_menu_item_paint):
90658         (moz_gtk_get_widget_border):
90659         (moz_gtk_get_combo_box_entry_button_size):
90660         (moz_gtk_get_tab_scroll_arrow_size):
90661         (moz_gtk_get_downarrow_size):
90662         (moz_gtk_images_in_menus):
90663         (moz_gtk_widget_paint):
90664         (moz_gtk_shutdown):
90665         * platform/gtk/gtkdrawing.h:
90666
90667 2008-09-14  David Hyatt  <hyatt@apple.com>
90668
90669         Convert Mac, Gtk, wx and Qt over to the new ScrollbarTheme for
90670         painting.  Mac and Gtk themes don't do anything and just let the
90671         underlying widget paint.  Qt now uses the theme to paint.  wx doesn't
90672         do anything yet.
90673
90674         Reviewed by Sam Weinig
90675
90676         * platform/ScrollBar.cpp:
90677         (WebCore::Scrollbar::paint):
90678         * platform/ScrollBar.h:
90679         (WebCore::Scrollbar::value):
90680         (WebCore::Scrollbar::visibleSize):
90681         (WebCore::Scrollbar::maximum):
90682         (WebCore::Scrollbar::lineStep):
90683         (WebCore::Scrollbar::pageStep):
90684         (WebCore::Scrollbar::pixelStep):
90685         (WebCore::Scrollbar::pressedPart):
90686         (WebCore::Scrollbar::hoveredPart):
90687         (WebCore::Scrollbar::theme):
90688         * platform/ScrollbarTheme.h:
90689         (WebCore::ScrollbarTheme::paint):
90690         (WebCore::ScrollbarTheme::scrollbarThickness):
90691         (WebCore::ScrollbarTheme::supportsControlTints):
90692         (WebCore::ScrollbarTheme::themeChanged):
90693         * platform/gtk/PlatformScrollBar.h:
90694         * platform/gtk/PlatformScrollBarGtk.cpp:
90695         * platform/mac/PlatformScrollBar.h:
90696         * platform/mac/PlatformScrollBarMac.mm:
90697         * platform/qt/PlatformScrollBar.h:
90698         * platform/qt/PlatformScrollBarQt.cpp:
90699         * platform/qt/ScrollbarThemeQt.cpp:
90700         (WebCore::styleOptionSlider):
90701         * platform/qt/ScrollbarThemeQt.h:
90702         (WebCore::ScrollbarThemeQt::paint):
90703         * platform/win/PlatformScrollBarSafari.cpp:
90704         (WebCore::PlatformScrollbar::paint):
90705         * platform/win/ScrollbarThemeSafari.h:
90706         (WebCore::ScrollbarThemeSafari::supportsControlTints):
90707         * platform/wx/PlatformScrollBar.h:
90708         * platform/wx/TemporaryLinkStubs.cpp:
90709         (PlatformScrollbar::~PlatformScrollbar):
90710
90711 2008-09-14  Sam Weinig  <sam@webkit.org>
90712
90713         Qt build fix.
90714
90715         * platform/qt/PlatformScrollBarQt.cpp:
90716
90717 2008-09-14  Sam Weinig  <sam@webkit.org>
90718
90719         Reviewed by Mark Rowe.
90720
90721         Remove extraneous semicolons.
90722
90723         * bindings/scripts/CodeGeneratorObjC.pm:
90724         * html/HTMLLinkElement.cpp:
90725         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
90726         * html/HTMLScriptElement.cpp:
90727         (WebCore::HTMLScriptElement::charsetAttributeValue):
90728         (WebCore::HTMLScriptElement::typeAttributeValue):
90729         * platform/graphics/qt/GradientQt.cpp:
90730         (WebCore::Gradient::platformGradient):
90731         * platform/qt/ScrollViewQt.cpp:
90732         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
90733         * platform/win/ScrollViewWin.cpp:
90734         (WebCore::ScrollView::updateScrollbars):
90735         * rendering/RenderBlock.cpp:
90736         (WebCore::RenderBlock::paintEllipsisBoxes):
90737         * svg/SVGPathSegList.cpp:
90738         (WebCore::SVGPathSegList::toPathData):
90739
90740 2008-09-14  Sam Weinig  <sam@webkit.org>
90741
90742         Qt build fix.
90743
90744         * platform/qt/ScrollViewQt.cpp:
90745         (WebCore::ScrollView::updateScrollbars):
90746
90747 2008-09-14  Sam Weinig  <sam@webkit.org>
90748
90749         Qt build fix.
90750
90751         * platform/qt/PlatformScrollBarQt.cpp:
90752         (WebCore::PlatformScrollbar::PlatformScrollbar):
90753         (WebCore::PlatformScrollbar::paint):
90754
90755 2008-09-13  Jan Michael Alonzo  <jmalonzo@webkit.org>
90756
90757         Gtk build fix, not reviewed.
90758
90759         * platform/gtk/PlatformScrollBarGtk.cpp:
90760         (PlatformScrollbar::PlatformScrollbar):
90761         * platform/gtk/ScrollViewGtk.cpp:
90762         (WebCore::ScrollView::updateScrollbars):
90763
90764 2008-09-13  Dave Hyatt  <hyatt@apple.com>
90765
90766         Remove scrollbar's setRect method.  Clients can now just call setFrameGeometry (the corresponding Widget) method
90767         to set the dimensions of a scrollbar.
90768
90769         Reviewed by Sam Weinig
90770
90771         * platform/ScrollBar.h:
90772         * platform/gtk/PlatformScrollBar.h:
90773         * platform/gtk/PlatformScrollBarGtk.cpp:
90774         (PlatformScrollbar::setFrameGeometry):
90775         * platform/gtk/ScrollViewGtk.cpp:
90776         (WebCore::ScrollView::updateScrollbars):
90777         * platform/mac/PlatformScrollBarMac.mm:
90778         * platform/qt/PlatformScrollBarQt.cpp:
90779         * platform/qt/ScrollViewQt.cpp:
90780         (WebCore::ScrollView::updateScrollbars):
90781         * platform/win/PlatformScrollBar.h:
90782         * platform/win/PlatformScrollBarSafari.cpp:
90783         (WebCore::PlatformScrollbar::PlatformScrollbar):
90784         (WebCore::PlatformScrollbar::setFrameGeometry):
90785         * platform/win/PlatformScrollBarWin.cpp:
90786         (WebCore::PlatformScrollbar::PlatformScrollbar):
90787         (WebCore::PlatformScrollbar::setFrameGeometry):
90788         * platform/win/PopupMenuWin.cpp:
90789         (WebCore::PopupWndProc):
90790         * platform/win/ScrollViewWin.cpp:
90791         (WebCore::ScrollView::updateScrollbars):
90792         * platform/wx/PlatformScrollBar.h:
90793         * platform/wx/TemporaryLinkStubs.cpp:
90794         (PlatformScrollbar::updateThumbProportion):
90795         * rendering/RenderLayer.cpp:
90796         (WebCore::RenderLayer::positionOverflowControls):
90797         * rendering/RenderListBox.cpp:
90798         (WebCore::RenderListBox::paintScrollbar):
90799
90800 2008-09-13  Dave Hyatt  <hyatt@apple.com>
90801
90802         Remove setEnabled() from all Scrollbar classes that were just using their Widget base class methods.
90803
90804         Reviewed by Sam Weinig
90805
90806         * platform/ScrollBar.h:
90807         * platform/gtk/PlatformScrollBar.h:
90808         * platform/gtk/PlatformScrollBarGtk.cpp:
90809         * platform/mac/PlatformScrollBar.h:
90810         * platform/mac/PlatformScrollBarMac.mm:
90811         * platform/win/PlatformScrollBar.h:
90812         * platform/win/PlatformScrollBarSafari.cpp:
90813         * platform/win/PlatformScrollBarWin.cpp:
90814         * platform/wx/PlatformScrollBar.h:
90815         * platform/wx/TemporaryLinkStubs.cpp:
90816         (PlatformScrollbar::~PlatformScrollbar):
90817
90818 2008-09-13  Dave Hyatt  <hyatt@apple.com>
90819
90820         Remove width()/height() from Scrollbar now that it derives from Widget.  Remove width()/height() from
90821         all PlatformScrollbar subclasses that just called the Widget base class versions of those methods.
90822
90823         Reviewed by Sam Weinig
90824
90825         * platform/ScrollBar.h:
90826         * platform/gtk/PlatformScrollBar.h:
90827         * platform/gtk/PlatformScrollBarGtk.cpp:
90828         * platform/mac/PlatformScrollBar.h:
90829         * platform/mac/PlatformScrollBarMac.mm:
90830         * platform/win/PlatformScrollBarSafari.cpp:
90831         * platform/win/PlatformScrollBarWin.cpp:
90832         * platform/wx/PlatformScrollBar.h:
90833         * platform/wx/TemporaryLinkStubs.cpp:
90834         (PlatformScrollbar::~PlatformScrollbar):
90835
90836 2008-09-13  Dave Hyatt  <hyatt@apple.com>
90837
90838         Move stopTimerIfNeeded out of PlatformScrollbar destructors and into Scrollbar.
90839
90840         Reviewed by Sam Weinig
90841
90842         * platform/ScrollBar.cpp:
90843         (WebCore::Scrollbar::~Scrollbar):
90844         * platform/ScrollBar.h:
90845         * platform/qt/PlatformScrollBarQt.cpp:
90846         (WebCore::PlatformScrollbar::~PlatformScrollbar):
90847         * platform/win/PlatformScrollBarSafari.cpp:
90848         (WebCore::PlatformScrollbar::~PlatformScrollbar):
90849         * platform/win/PlatformScrollBarWin.cpp:
90850         (WebCore::PlatformScrollbar::~PlatformScrollbar):
90851
90852 2008-09-13  David Hyatt  <hyatt@apple.com>
90853
90854         Move maximum() from Qt's PlatformScrollbar to be a cross-platform
90855         function on Scrollbar.  Fixes Qt build bustage.
90856
90857         Reviewed by Sam Weinig
90858
90859         * platform/ScrollBar.h:
90860         (WebCore::Scrollbar::orientation):
90861         (WebCore::Scrollbar::value):
90862         (WebCore::Scrollbar::maximum):
90863         * platform/qt/PlatformScrollBar.h:
90864
90865 2008-09-13  Dan Bernstein  <mitz@apple.com>
90866
90867         Reviewed by Sam Weinig.
90868
90869         - use the LastResort font for missing glyphs instead of showing the
90870           primary font's missing glyph
90871
90872         Test: platform/mac/fast/text/last-resort-font.html
90873
90874         * platform/graphics/mac/FontCacheMac.mm:
90875         (WebCore::FontCache::getFontDataForCharacters): Changed to return the
90876         last resort font if a substitute font cannot be found.
90877         (WebCore::FontCache::getLastResortFallbackFont): Removed an outdated
90878         comment (the user's preferred standard font is included in the search
90879         thanks to code in FontCache::getFontData()) and changed to return the
90880         LastResort font.
90881
90882 2008-09-13  Dave Hyatt  <hyatt@apple.com>
90883
90884         This patch adds ScrollbarTheme to the build.  ScrollbarTheme is similar to RenderTheme (but for
90885         scrollbars only).  For now ScrollbarTheme just handles returning the size of scrollbars.  Subsequent
90886         patches will move rendering and hit testing functionality into this class.
90887
90888         Implemented ScrollbarTheme subclasses for four ports (Mac, Win, Gtk, Qt).  The wxWidgets port does not
90889         implement scrollbars yet, so I added a temporary link stub to keep things compiling on wx.
90890
90891         Reviewed by Sam Weinig
90892
90893         * GNUmakefile.am:
90894         * WebCore.pro:
90895         * WebCore.vcproj/WebCore.vcproj:
90896         * platform/ScrollBar.cpp:
90897         (WebCore::Scrollbar::Scrollbar):
90898         * platform/ScrollBar.h:
90899         * platform/ScrollbarTheme.h: Added.
90900         (WebCore::ScrollbarTheme::~ScrollbarTheme):
90901         (WebCore::ScrollbarTheme::scrollbarThickness):
90902         (WebCore::ScrollbarTheme::themeChanged):
90903         * platform/gtk/ScrollbarThemeGtk.cpp: Added.
90904         (WebCore::ScrollbarTheme::nativeTheme):
90905         (WebCore::ScrollbarThemeGtk::~ScrollbarThemeGtk):
90906         (WebCore::ScrollbarThemeGtk::scrollbarThickness):
90907         * platform/gtk/ScrollbarThemeGtk.h: Added.
90908         * platform/mac/PlatformScrollBar.h:
90909         * platform/mac/ScrollbarThemeMac.cpp: Added.
90910         (WebCore::ScrollbarTheme::nativeTheme):
90911         (WebCore::):
90912         (WebCore::ScrollbarThemeMac::~ScrollbarThemeMac):
90913         (WebCore::ScrollbarThemeMac::scrollbarThickness):
90914         * platform/mac/ScrollbarThemeMac.h: Added.
90915         * platform/qt/PlatformScrollBarQt.cpp:
90916         * platform/qt/ScrollbarThemeQt.cpp: Added.
90917         (WebCore::ScrollbarTheme::nativeTheme):
90918         (WebCore::ScrollbarThemeQt::~ScrollbarThemeQt):
90919         (WebCore::ScrollbarThemeQt::scrollbarThickness):
90920         * platform/qt/ScrollbarThemeQt.h: Added.
90921         * platform/win/PlatformScrollBar.h:
90922         * platform/win/PlatformScrollBarSafari.cpp:
90923         * platform/win/PlatformScrollBarWin.cpp:
90924         * platform/win/PopupMenuWin.cpp:
90925         (WebCore::PopupMenu::calculatePositionAndSize):
90926         * platform/win/ScrollViewWin.cpp:
90927         (WebCore::ScrollView::updateScrollbars):
90928         (WebCore::ScrollView::themeChanged):
90929         * platform/win/ScrollbarThemeSafari.cpp: Added.
90930         (WebCore::ScrollbarTheme::nativeTheme):
90931         (WebCore::):
90932         (WebCore::ScrollbarThemeSafari::~ScrollbarThemeSafari):
90933         (WebCore::ScrollbarThemeSafari::scrollbarThickness):
90934         * platform/win/ScrollbarThemeSafari.h: Added.
90935         * platform/win/ScrollbarThemeWin.cpp: Added.
90936         (WebCore::ScrollbarTheme::nativeTheme):
90937         (WebCore::ScrollbarThemeWin::~ScrollbarThemeWin):
90938         (WebCore::ScrollbarThemeWin::scrollbarThickness):
90939         (WebCore::ScrollbarThemeWin::themeChanged):
90940         * platform/win/ScrollbarThemeWin.h: Added.
90941         * platform/wx/TemporaryLinkStubs.cpp:
90942         (ScrollbarTheme::nativeTheme):
90943         * rendering/RenderLayer.cpp:
90944         (WebCore::scrollCornerRect):
90945         * rendering/RenderTextControl.cpp:
90946         (WebCore::RenderTextControl::calcHeight):
90947         (WebCore::RenderTextControl::calcPrefWidths):
90948
90949 2008-09-13  Chris Fleizach  <cfleizach@apple.com>
90950
90951         Reviewed by Timothy Hatcher.
90952
90953         <rdar://problem/5060439> Web elements should have an AXTopLevelUIElement
90954
90955         * page/mac/AccessibilityObjectWrapper.mm:
90956         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
90957
90958 2008-09-13  Dan Bernstein  <mitz@apple.com>
90959
90960         Reviewed by Timothy Hatcher.
90961
90962         - fix <rdar://problem/6171280> REGRESSION (r35667): Assertion failure in WebCore::FrameView::scheduleRelayout() when releasing a page with counters from the b/f cache
90963
90964         No regression test because the back/forward cache is disabled in DumpRenderTree
90965
90966         * rendering/RenderContainer.cpp:
90967         (WebCore::RenderContainer::invalidateCounters): Bail out if the document
90968         is being destroyed.
90969
90970 2008-09-13  Kevin Ollivier  <kevino@theolliviers.com>
90971
90972         wx build fixes for new methods recently introduced.
90973
90974         * platform/graphics/wx/AffineTransformWx.cpp:
90975         (WebCore::AffineTransform::AffineTransform):
90976         (WebCore::AffineTransform::setMatrix):
90977         (WebCore::AffineTransform::setA):
90978         (WebCore::AffineTransform::setB):
90979         (WebCore::AffineTransform::setC):
90980         (WebCore::AffineTransform::setD):
90981         (WebCore::AffineTransform::setE):
90982         (WebCore::AffineTransform::setF):
90983         * platform/wx/LocalizedStringsWx.cpp:
90984         (WebCore::AXDefinitionListTermText):
90985         (WebCore::AXDefinitionListDefinitionText):
90986
90987 2008-09-12  Dave Hyatt  <hyatt@apple.com>
90988
90989         Move the member variables of PlatformScrollbar up into Scrollbar.  Move autoscroll timer handling
90990         up into scrollbar.  Make sure a bunch of cross-platform code now just uses "Scrollbar" instead of
90991         "PlatformScrollbar."
90992
90993         Reviewed by Sam Weinig
90994
90995         * WebCore.vcproj/WebCore.vcproj:
90996         * editing/EditorCommand.cpp:
90997         * page/EventHandler.cpp:
90998         (WebCore::EventHandler::selectCursor):
90999         (WebCore::EventHandler::handleMousePressEvent):
91000         (WebCore::EventHandler::handleMouseMoveEvent):
91001         * page/EventHandler.h:
91002         * page/MouseEventWithHitTestResults.cpp:
91003         (WebCore::MouseEventWithHitTestResults::scrollbar):
91004         * page/MouseEventWithHitTestResults.h:
91005         * page/gtk/EventHandlerGtk.cpp:
91006         (WebCore::EventHandler::passMousePressEventToScrollbar):
91007         * page/mac/EventHandlerMac.mm:
91008         (WebCore::EventHandler::passMousePressEventToScrollbar):
91009         * page/qt/EventHandlerQt.cpp:
91010         (WebCore::EventHandler::passMousePressEventToScrollbar):
91011         * page/win/EventHandlerWin.cpp:
91012         (WebCore::EventHandler::passMousePressEventToScrollbar):
91013         * page/wx/EventHandlerWx.cpp:
91014         (WebCore::EventHandler::passMousePressEventToScrollbar):
91015         * platform/PopupMenu.h:
91016         * platform/ScrollBar.cpp:
91017         (WebCore::Scrollbar::Scrollbar):
91018         (WebCore::Scrollbar::autoscrollTimerFired):
91019         (WebCore::Scrollbar::autoscrollPressedPart):
91020         (WebCore::Scrollbar::startTimerIfNeeded):
91021         (WebCore::Scrollbar::stopTimerIfNeeded):
91022         (WebCore::Scrollbar::pressedPartScrollDirection):
91023         (WebCore::Scrollbar::pressedPartScrollGranularity):
91024         * platform/ScrollBar.h:
91025         (WebCore::Scrollbar::handleMousePressEvent):
91026         (WebCore::Scrollbar::invalidatePart):
91027         (WebCore::Scrollbar::thumbUnderMouse):
91028         * platform/ScrollView.h:
91029         * platform/ScrollbarClient.h: Added.
91030         (WebCore::ScrollbarClient::~ScrollbarClient):
91031         * platform/gtk/ScrollViewGtk.cpp:
91032         (WebCore::ScrollView::scrollbarUnderMouse):
91033         * platform/qt/PlatformScrollBar.h:
91034         * platform/qt/PlatformScrollBarQt.cpp:
91035         (WebCore::PlatformScrollbar::PlatformScrollbar):
91036         (WebCore::scrollbarPart):
91037         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
91038         (WebCore::PlatformScrollbar::handleMouseOutEvent):
91039         (WebCore::PlatformScrollbar::handleMousePressEvent):
91040         (WebCore::PlatformScrollbar::handleMouseReleaseEvent):
91041         * platform/qt/ScrollViewQt.cpp:
91042         (WebCore::ScrollView::scrollbarUnderMouse):
91043         (WebCore::ScrollView::wheelEvent):
91044         * platform/win/PlatformScrollBar.h:
91045         * platform/win/PlatformScrollBarSafari.cpp:
91046         (WebCore::PlatformScrollbar::PlatformScrollbar):
91047         * platform/win/PlatformScrollBarWin.cpp:
91048         (WebCore::PlatformScrollbar::PlatformScrollbar):
91049         * platform/win/ScrollViewWin.cpp:
91050         (WebCore::ScrollView::scrollbarUnderMouse):
91051         * rendering/HitTestResult.cpp:
91052         (WebCore::HitTestResult::setScrollbar):
91053         * rendering/HitTestResult.h:
91054         (WebCore::HitTestResult::scrollbar):
91055         * rendering/RenderLayer.cpp:
91056         (WebCore::RenderLayer::hitTestOverflowControls):
91057         * rendering/RenderLayer.h:
91058         * rendering/RenderListBox.h:
91059
91060 2008-09-12  Steve Falkenburg  <sfalken@apple.com>
91061
91062         Fix Mac build.
91063
91064         * css/CSSStyleSelector.cpp:
91065         (WebCore::getTransformOperationType):
91066
91067 2008-09-12  Chris Marrin  <cmarrin@apple.com>
91068
91069         Reviewed by Dave Hyatt.
91070
91071         Make transform animation behavior match spec
91072         https://bugs.webkit.org/show_bug.cgi?id=20770
91073
91074         Tests: transitions/transform-op-list-match.html
91075                transitions/transform-op-list-no-match.html
91076
91077         * css/CSSStyleSelector.cpp:
91078         * css/CSSStyleSelector.h:
91079         * page/animation/AnimationBase.cpp:
91080         * page/animation/AnimationBase.h:
91081         * page/animation/ImplicitAnimation.cpp:
91082         * page/animation/ImplicitAnimation.h:
91083         * page/animation/KeyframeAnimation.cpp:
91084         * page/animation/KeyframeAnimation.h:
91085         * rendering/RenderLayer.cpp:
91086         * rendering/style/RenderStyle.cpp:
91087         * rendering/style/RenderStyle.h:
91088
91089 2008-09-12  Ojan Vafai  <ojan@chromium.org>
91090
91091         Properly escape contents of links added to the inspector.
91092         For now, just build the link with the DOM and get the
91093         outerHTML. Eventually, we probably just want to do
91094         this entirely with the DOM.
91095
91096         Reviewed by Timothy Hatcher.
91097
91098         https://bugs.webkit.org/show_bug.cgi?id=20684
91099
91100         * manual-tests/inspector/escape-links.html: Added.
91101         * page/inspector/StylesSidebarPane.js:
91102         * page/inspector/inspector.js:
91103         * page/inspector/utilities.js:
91104
91105 2008-09-12  Adele Peterson  <adele@apple.com>
91106
91107         Reviewed by John Sullivan and Kevin McCullough.
91108
91109         Fix for <rdar://problem/6216951> REGRESSION (r36000?): Crash due to infinite recursion into EventHandler::hitTestResultAtPoint() with disconnected frames
91110
91111         * page/EventHandler.cpp: (WebCore::EventHandler::hitTestResultAtPoint):
91112         Hit testing again on the main frame will only work if we aren't already on the main frame.  If we are already on the main frame, that will
91113         cause infinite recursion.  This change checks that we're not already on the main frame before hit testing again.
91114
91115 2008-09-12  Kevin McCullough  <kmccullough@apple.com>
91116
91117         RS by Tim .
91118
91119         Re-introducing the code since it was not the cause of the crash.
91120         See r36343.
91121
91122         * rendering/RenderObject.cpp:
91123         (WebCore::RenderObject::canBeProgramaticallyScrolled):
91124         * rendering/RenderObject.h:
91125
91126 2008-09-12  Chris Marrin  <cmarrin@apple.com>
91127
91128         Reviewed by Dave Hyatt.
91129
91130         When changing one animation in a list, don't reset other animations
91131         https://bugs.webkit.org/show_bug.cgi?id=20675
91132
91133         Test: animations/change-one-anim.html
91134
91135         * page/animation/AnimationBase.cpp:
91136         (WebCore::AnimationBase::getNumProperties):
91137         * page/animation/AnimationBase.h:
91138         * page/animation/AnimationController.cpp:
91139         * page/animation/CompositeAnimation.cpp:
91140         (WebCore::CompositeAnimation::updateKeyframeAnimations):
91141         * page/animation/CompositeAnimation.h:
91142         * page/animation/ImplicitAnimation.cpp:
91143         * page/animation/KeyframeAnimation.cpp:
91144         * page/animation/KeyframeAnimation.h:
91145         (WebCore::KeyframeAnimation::setIndex):
91146
91147 2008-09-12  Brady Eidson  <beidson@apple.com>
91148
91149         Reviewed by Mitz Pettel
91150
91151         Fix the ASSERT and failure in webarchive/archive-empty-frame-source.html
91152
91153         * loader/DocumentLoader.cpp:
91154         (WebCore::DocumentLoader::mainResource): Further restoration of original WebArchive behavior.
91155           Subresources can never be created from nil data, but there is always a MainResource, whether
91156           or not there's any data.  So in the case where the main resource has no data, fake it for the
91157           sake of creating the ArchiveResource.
91158
91159 2008-09-12  Dave Hyatt  <hyatt@apple.com>
91160
91161         Preparation for major scrollbar rearchitecture.  Eliminate the concept of non-widget based
91162         scrollbars (which we never supported anyway).  Make Scrollbar derive from Widget directly.
91163         Remove all the isWidget and hasPlatformScrollbars guards.
91164
91165         Reviewed by Tim Hatcher
91166
91167         * platform/ScrollBar.h:
91168         * platform/gtk/PlatformScrollBar.h:
91169         * platform/mac/PlatformScrollBar.h:
91170         * platform/qt/PlatformScrollBar.h:
91171         * platform/win/PlatformScrollBar.h:
91172         * platform/win/ScrollViewWin.cpp:
91173         (WebCore::ScrollView::ScrollViewPrivate::setHasHorizontalScrollbar):
91174         (WebCore::ScrollView::ScrollViewPrivate::setHasVerticalScrollbar):
91175         * platform/wx/PlatformScrollBar.h:
91176         * rendering/RenderLayer.cpp:
91177         (WebCore::RenderLayer::horizontalScrollbarWidget):
91178         (WebCore::RenderLayer::verticalScrollbarWidget):
91179         (WebCore::RenderLayer::createScrollbar):
91180         (WebCore::RenderLayer::destroyScrollbar):
91181         * rendering/RenderListBox.cpp:
91182         (WebCore::RenderListBox::~RenderListBox):
91183         (WebCore::RenderListBox::updateFromElement):
91184         (WebCore::RenderListBox::isPointInOverflowControl):
91185
91186 2008-09-12  Dan Bernstein  <mitz@apple.com>
91187
91188         Reviewed by Sam Weinig.
91189
91190         - https://bugs.webkit.org/show_bug.cgi?id=20793 clean up page/animation
91191
91192         * page/animation/AnimationController.cpp:
91193         * page/animation/AnimationController.h:
91194         * page/animation/CompositeAnimation.cpp:
91195         * page/animation/CompositeAnimation.h:
91196         * page/animation/ImplicitAnimation.cpp:
91197         * page/animation/ImplicitAnimation.h:
91198         * page/animation/KeyframeAnimation.cpp:
91199         * page/animation/KeyframeAnimation.h:
91200
91201 2008-09-11  Timothy Hatcher  <timothy@apple.com>
91202
91203         Add a renderedImage method to DOMNode to get an image
91204         of the rendering for the node and it's descendants.
91205
91206         <rdar://problem/5849349> Would like API to create
91207         an image for a DOM node
91208
91209         Reviewed by Oliver Hunt.
91210
91211         * bindings/objc/DOM.mm:
91212         (-[DOMNode renderedImage]): Call Frame::nodeImage.
91213         * bindings/objc/DOMPrivate.h:
91214         * page/Frame.h:
91215         * page/mac/FrameMac.mm:
91216         (WebCore::Frame::nodeImage):
91217
91218 2008-09-08  Chris Marrin  <cmarrin@apple.com>
91219
91220         Reviewed by Dave Hyatt
91221
91222         Need to support comma separated list of key times in keyframes selectors
91223         https://bugs.webkit.org/show_bug.cgi?id=20680
91224
91225         Test: animations/keyframes-comma-separated.html
91226
91227         * css/CSSGrammar.y:
91228         * css/CSSParser.cpp:
91229         (WebCore::CSSParser::createKeyframeRule):
91230         * css/CSSParser.h:
91231         * css/CSSStyleSelector.cpp:
91232         (WebCore::CSSStyleSelector::addKeyframeStyle):
91233         * css/WebKitCSSKeyframeRule.cpp:
91234         (WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
91235         (WebCore::WebKitCSSKeyframeRule::cssText):
91236         (WebCore::WebKitCSSKeyframeRule::parseKeyString):
91237         * css/WebKitCSSKeyframeRule.h:
91238         (WebCore::WebKitCSSKeyframeRule::keyText):
91239         (WebCore::WebKitCSSKeyframeRule::setKeyText):
91240         (WebCore::WebKitCSSKeyframeRule::getKeys):
91241         * css/WebKitCSSKeyframesRule.cpp:
91242         (WebCore::WebKitCSSKeyframesRule::append):
91243         (WebCore::WebKitCSSKeyframesRule::insertRule):
91244         (WebCore::WebKitCSSKeyframesRule::deleteRule):
91245         (WebCore::WebKitCSSKeyframesRule::findRule):
91246         (WebCore::WebKitCSSKeyframesRule::findRuleIndex):
91247         * css/WebKitCSSKeyframesRule.h:
91248         * page/animation/AnimationBase.cpp:
91249         (WebCore::AnimationBase::blendProperties):
91250
91251 2008-09-11  Kevin McCullough  <kmccullough@apple.com>
91252
91253         RS by Tim.
91254
91255         Reverting because this caused a crash.
91256
91257         * rendering/RenderObject.cpp:
91258         (WebCore::RenderObject::canBeProgramaticallyScrolled):
91259         (WebCore::RenderObject::hasScrollableView):
91260         * rendering/RenderObject.h:
91261
91262 2008-09-11  Dean Jackson  <dino@apple.com>
91263
91264         Reviewed by Dan Bernstein.
91265
91266         Fix assertion on transition property "none"
91267         https://bugs.webkit.org/show_bug.cgi?id=20751
91268
91269         Test: transitions/transition-end-event-set-none.html
91270
91271         * page/animation/CompositeAnimation.cpp:
91272         (WebCore::CompositeAnimation::updateTransitions):
91273
91274 2008-09-11  David Smith  <catfish.man@gmail.com>
91275
91276         Rubber-stamped by mitzpettel.
91277
91278         Remove an accidentally added extra file.
91279
91280         * WebCore: Removed.
91281
91282 2008-09-11  David Smith  <catfish.man@gmail.com>
91283
91284         Reviewed by Darin
91285
91286         https://bugs.webkit.org/show_bug.cgi?id=20180
91287
91288         This speeds up :nth-child matching as tested by querySelectorAll by around 10% by inlining the common case of Node::renderStyle(). Many thanks to mitzpettel and othermaciej for suggestions and help.
91289
91290         * WebCore.xcodeproj/project.pbxproj: Add NodeRenderStyle.h
91291         * css/CSSStyleSelector.cpp: include NodeRenderStyle.h
91292         * dom/Element.cpp: include NodeRenderStyle.h
91293         * dom/Node.cpp: Remove the definition of renderStyle()
91294         (WebCore::Node::nonRendererRenderStyle):
91295         * dom/Node.h: Make renderStyle() nonvirtual and add nonRendererRenderStyle()
91296         * dom/NodeRenderStyle.h: Added.
91297         (WebCore::Node::renderStyle): Inline the common case of this, call nonRendererRenderStyle for the part that needed to be virtual
91298         * html/HTMLOptGroupElement.cpp: include NodeRenderStyle.h
91299         * html/HTMLOptGroupElement.h:
91300         (WebCore::HTMLOptGroupElement::nonRendererRenderStyle): override to return m_style
91301         * html/HTMLOptionElement.cpp: include NodeRenderStyle.h
91302         * html/HTMLOptionElement.h:
91303         (WebCore::HTMLOptionElement::nonRendererRenderStyle): override to return m_style
91304         * rendering/RenderListBox.cpp: include NodeRenderStyle.h
91305         * rendering/RenderMenuList.cpp: include NodeRenderStyle.h
91306         * svg/SVGUseElement.cpp: include NodeRenderStyle.h
91307
91308 2008-09-11  Kevin McCullough  <kmccullough@apple.com>
91309
91310         Reviewed by Adele and Tim.
91311
91312         <rdar://problem/6100597> REGRESSION: clicking on search results in Web
91313         Inspector does not scroll to the line of the results (20167)
91314         - This was put in by Max to fix auto scrolling but is not correct for
91315         the whole web: rdar://problem/6213098
91316
91317         * rendering/RenderObject.cpp:
91318         (WebCore::RenderObject::canBeProgramaticallyScrolled):
91319         * rendering/RenderObject.h:
91320
91321 2008-09-11  Chris Fleizach  <cfleizach@apple.com>
91322
91323         Reviewed by Beth Dakin
91324
91325         <rdar://problem/6210511> AX: if a frame has a title, that should be reported as the AXWebArea's title
91326
91327         Test: accessibility/frame-with-title.html
91328
91329         * page/AccessibilityRenderObject.cpp:
91330         (WebCore::AccessibilityRenderObject::accessibilityDescription):
91331
91332 2008-09-11  Dirk Schulze  <vbs85@gmx.de>
91333
91334         Reviewed by Simon.
91335
91336         Fixed stroke() and strokeRect() to support gradients
91337         and patterns on Qt.
91338
91339         [Qt] Canvas stroke don't work for gradients and patterns
91340         [https://bugs.webkit.org/show_bug.cgi?id=20749]
91341
91342         * platform/graphics/qt/GraphicsContextQt.cpp:
91343         (WebCore::GraphicsContext::strokePath):
91344         (WebCore::GraphicsContext::strokeRect):
91345
91346 2008-09-11  Dirk Schulze  <vbs85@gmx.de>
91347
91348         Reviewed by Simon.
91349
91350         https://bugs.webkit.org/show_bug.cgi?id=20729
91351
91352         Fixed canvas gradients for Qt
91353
91354         [Qt] Canvas gradients don't work as expected
91355         [https://bugs.webkit.org/show_bug.cgi?id=20729]
91356
91357         * platform/graphics/qt/GradientQt.cpp:
91358         (WebCore::Gradient::platformGradient):
91359
91360 2008-09-11  Dirk Schulze  <vbs85@gmx.de>
91361
91362         Reviewed by Simon.
91363
91364         https://bugs.webkit.org/show_bug.cgi?id=20568
91365
91366         Add support for patterns to Qt.
91367
91368         * platform/graphics/qt/PatternQt.cpp:
91369         (WebCore::Pattern::createPlatformPattern):
91370
91371 2008-09-10  Dan Bernstein  <mitz@apple.com>
91372
91373         Reviewed by Sam Weinig.
91374
91375         - clean up AnimationBase
91376
91377         * page/animation/AnimationBase.cpp:
91378         * page/animation/AnimationBase.h:
91379         * page/animation/CompositeAnimation.cpp:
91380         * page/animation/ImplicitAnimation.cpp:
91381         * page/animation/ImplicitAnimation.h:
91382         * page/animation/KeyframeAnimation.cpp:
91383         * page/animation/KeyframeAnimation.h:
91384
91385 2008-09-10  Alexey Proskuryakov  <ap@webkit.org>
91386
91387         Reviewed by Darin Adler.
91388
91389         https://bugs.webkit.org/show_bug.cgi?id=20741
91390         REGRESSION: ISO-8859-8-I encoding is registered incorrectly
91391
91392         Turns out that there were no real behavior changes for 8859-8, as it was only a debug-only
91393         check to ignore this specific registration that was failing. Yet, I decided to add a bunch of
91394         tests for ISO-8859-8 encoding aliases, as we handle them in a quite complicated manner.
91395
91396         I also found and fixed a potential crasher for non-Mac ports.
91397
91398         Tests: fast/encoding/hebrew/8859-8-e.html
91399                fast/encoding/hebrew/8859-8-i.html
91400                fast/encoding/hebrew/8859-8.html
91401                fast/encoding/hebrew/csISO88598I.html
91402                fast/encoding/hebrew/hebrew.html
91403                fast/encoding/hebrew/iso-ir-138.html
91404                fast/encoding/hebrew/logical.html
91405
91406         * platform/text/TextEncodingRegistry.cpp: (WebCore::checkExistingName): Check for iso-8859-8
91407         (case-insensitively, because different versions of ICU report this MIME name in different
91408         case).
91409
91410         * platform/text/TextCodecICU.cpp:
91411         (WebCore::TextCodecICU::registerExtendedEncodingNames): Updated some comments.
91412         (WebCore::TextCodecICU::registerExtendedCodecs): Try both MIME and IANA names here, too.
91413         There are four names in ICU that only have MIME names (x-mac-* ones), so we could end up
91414         with an encoding map entry, but no codec for these. This was not an issue on the Mac, as
91415         we also support these via TEC (which we should stop doing), but on Windows, this would
91416         likely crash.
91417
91418 2008-09-09  Dave Hyatt  <hyatt@apple.com
91419
91420         Resurrect PlatformScrollbarWin.
91421
91422         Reviewed by Adam Roben
91423
91424         * WebCore.vcproj/WebCore.vcproj:
91425         * platform/win/PlatformScrollBarWin.cpp:
91426         (WebCore::isRunningOnVistaOrLater):
91427         (WebCore::checkAndInitScrollbarTheme):
91428         (WebCore::PlatformScrollbar::PlatformScrollbar):
91429         (WebCore::PlatformScrollbar::invalidateTrack):
91430         (WebCore::PlatformScrollbar::invalidatePart):
91431         (WebCore::PlatformScrollbar::paint):
91432         (WebCore::PlatformScrollbar::hasButtons):
91433         (WebCore::PlatformScrollbar::hasThumb):
91434         (WebCore::PlatformScrollbar::backButtonRect):
91435         (WebCore::PlatformScrollbar::forwardButtonRect):
91436         (WebCore::PlatformScrollbar::trackRect):
91437         (WebCore::PlatformScrollbar::gripperRect):
91438         (WebCore::PlatformScrollbar::thumbLength):
91439         (WebCore::PlatformScrollbar::paintButton):
91440         (WebCore::PlatformScrollbar::paintTrack):
91441         (WebCore::PlatformScrollbar::paintThumb):
91442         (WebCore::PlatformScrollbar::paintGripper):
91443         (WebCore::PlatformScrollbar::hitTest):
91444         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
91445         (WebCore::PlatformScrollbar::handleMouseOutEvent):
91446         (WebCore::PlatformScrollbar::themeChanged):
91447
91448 2008-09-09  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
91449
91450         Reviewed by Maciej Stachowiak.
91451
91452         Bug 20759: Remove MacroAssembler
91453         <https://bugs.webkit.org/show_bug.cgi?id=20759>
91454
91455         Make the necessary changes to ForwardingHeaders to remove
91456         MacroAssembler.
91457
91458         * ForwardingHeaders/masm/IA32MacroAsm.h: Removed.
91459         * ForwardingHeaders/masm/MacroAssembler.h: Removed.
91460         * ForwardingHeaders/masm/X86Assembler.h: Added.
91461
91462 2008-09-09  Alp Toker  <alp@nuanti.com>
91463
91464         Reviewed by Dave Hyatt.
91465
91466         https://bugs.webkit.org/show_bug.cgi?id=16792
91467         [GTK] Fails to render Japanese/Chinese text with simple path
91468
91469         https://bugs.webkit.org/show_bug.cgi?id=16942
91470         [GTK] Oddities in font selection and fall back
91471
91472         https://bugs.webkit.org/show_bug.cgi?id=16862
91473         [GTK] Custom fonts hard-coded to use grayscale antialiasing and no hinting
91474
91475         GTK+ font fixes and enhancements.
91476
91477         Implement font fallback for the simple FontConfig-based text path and
91478         improve the Pango-based complex text path to make use of requested
91479         font properties and available font selection.
91480
91481         Add text shadow support to the complex path.
91482
91483         * platform/graphics/gtk/FontCacheGtk.cpp:
91484         (WebCore::FontCache::getFontDataForCharacters):
91485         (WebCore::FontCache::getSimilarFontPlatformData):
91486         * platform/graphics/gtk/FontGtk.cpp:
91487         (WebCore::setPangoAttributes):
91488         (WebCore::Font::drawComplexText):
91489         (WebCore::getDefaultPangoLayout):
91490         (WebCore::Font::floatWidthForComplexText):
91491         (WebCore::Font::offsetForPositionForComplexText):
91492         (WebCore::Font::selectionRectForComplexText):
91493         * platform/graphics/gtk/FontPlatformData.h:
91494         (WebCore::FontPlatformData::FontPlatformData):
91495         (WebCore::FontPlatformData::hash):
91496         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
91497         (WebCore::FontPlatformData::FontPlatformData):
91498         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
91499         (WebCore::SimpleFontData::platformDestroy):
91500
91501 2008-09-09  Dave Hyatt  <hyatt@apple.com>
91502
91503         Make the Windows classic case work again.  Overlap in slider constants and other constants broke
91504         the push state for buttons and checkboxes.  Make sure to check the RenderObject's appearance
91505         value to make sure it's really a slider thumb to resolve this conflict.
91506
91507         Reviewed by Adam Roben
91508
91509         * rendering/RenderThemeWin.cpp:
91510         (WebCore::drawControl):
91511
91512 2008-09-05  Chris Marrin  <cmarrin@apple.com>
91513
91514         Reviewed by Sam Weinig.
91515
91516         Need to handle the case when 0% or 100% keyframe is omitted
91517         https://bugs.webkit.org/show_bug.cgi?id=20679
91518
91519         Tests: animations/keyframes-from-missing.html
91520                animations/keyframes-to-missing.html
91521
91522         * css/CSSStyleSelector.cpp:
91523         (WebCore::CSSStyleSelector::addKeyframeStyle):
91524
91525 2008-09-09  Dave Hyatt  <hyatt@apple.com>
91526
91527         Resurrect Safari's original RenderThemeWin and bring it up to date with ToT.  Having a current
91528         RenderThemeWin that does not have any Skia dependencies should provide a good basis for a potential
91529         merge of Google Chrome's RenderThemeWin (to help us see where the Skia stuff can be cut and to see
91530         what changes have been made as compared with the old RenderThemeWin).
91531
91532         Fix CSS2 system fonts to properly set both the rendering mode (so that they properly pick up GDI vs. CG
91533         text rendering modes) and the printer font setting (so that OS X system fonts properly pick up screen
91534         vs. printer advancement rounding).
91535
91536         Reviewed by Adam/Sam
91537
91538         * css/CSSStyleSelector.cpp:
91539         (WebCore::CSSStyleSelector::applyProperty):
91540         * platform/graphics/Icon.h:
91541         (WebCore::Icon::create):
91542         * rendering/RenderThemeWin.cpp:
91543         (WebCore::RenderThemeWin::RenderThemeWin):
91544         (WebCore::RenderThemeWin::~RenderThemeWin):
91545         (WebCore::RenderThemeWin::buttonTheme):
91546         (WebCore::RenderThemeWin::textFieldTheme):
91547         (WebCore::RenderThemeWin::menuListTheme):
91548         (WebCore::RenderThemeWin::sliderTheme):
91549         (WebCore::RenderThemeWin::close):
91550         (WebCore::RenderThemeWin::themeChanged):
91551         (WebCore::RenderThemeWin::supportsHover):
91552         (WebCore::fillFontDescription):
91553         (WebCore::RenderThemeWin::systemFont):
91554         (WebCore::RenderThemeWin::supportsFocus):
91555         (WebCore::RenderThemeWin::determineClassicState):
91556         (WebCore::RenderThemeWin::determineState):
91557         (WebCore::RenderThemeWin::determineSliderThumbState):
91558         (WebCore::RenderThemeWin::getClassicThemeData):
91559         (WebCore::RenderThemeWin::getThemeData):
91560         (WebCore::drawControl):
91561         (WebCore::RenderThemeWin::paintButton):
91562         (WebCore::RenderThemeWin::paintTextField):
91563         (WebCore::RenderThemeWin::paintMenuList):
91564         (WebCore::RenderThemeWin::adjustMenuListStyle):
91565         (WebCore::RenderThemeWin::adjustMenuListButtonStyle):
91566         (WebCore::RenderThemeWin::paintMenuListButton):
91567         (WebCore::RenderThemeWin::paintSliderTrack):
91568         (WebCore::RenderThemeWin::paintSliderThumb):
91569         (WebCore::RenderThemeWin::adjustSliderThumbSize):
91570         (WebCore::RenderThemeWin::paintSearchField):
91571         (WebCore::RenderThemeWin::adjustSearchFieldStyle):
91572         (WebCore::RenderThemeWin::paintSearchFieldCancelButton):
91573         (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
91574         (WebCore::RenderThemeWin::adjustSearchFieldDecorationStyle):
91575         (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationStyle):
91576         (WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
91577         (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
91578         (WebCore::RenderThemeWin::paintSearchFieldResultsButton):
91579         * rendering/RenderThemeWin.h:
91580         (WebCore::ThemeData::ThemeData):
91581         (WebCore::RenderThemeWin::paintSearchFieldDecoration):
91582         (WebCore::RenderThemeWin::adjustButtonStyle):
91583         (WebCore::RenderThemeWin::adjustTextFieldStyle):
91584         (WebCore::RenderThemeWin::adjustTextAreaStyle):
91585
91586 2008-09-09  Dean Jackson  <dino@apple.com>
91587
91588         Reviewed by Sam Weinig.
91589
91590         Document::createEvent missing cases for animation and
91591         transition events.
91592         https://bugs.webkit.org/show_bug.cgi?id=20734
91593
91594         Test: transitions/transition-end-event-create.html
91595         Test: animations/animation-events-create.html
91596
91597         * dom/Document.cpp:
91598         (WebCore::Document::createEvent):
91599             - add the two cases
91600
91601 2008-09-09  Dan Bernstein  <mitz@apple.com>
91602
91603         - Tiger build fix
91604
91605         * WebCore.Tiger.exp:
91606         * WebCore.base.exp:
91607         * platform/mac/WebCoreSystemInterface.h:
91608         * platform/mac/WebCoreSystemInterface.mm:
91609
91610 2008-09-09  Dan Bernstein  <mitz@apple.com>
91611
91612         Reviewed by Darin Adler.
91613
91614         - WebCore part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
91615
91616         * WebCore.Tiger.exp:
91617         * WebCore.base.exp:
91618         * platform/graphics/SimpleFontData.h:
91619         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
91620         (WebCore::GlyphPage::fill):
91621         * platform/graphics/mac/SimpleFontDataMac.mm:
91622         (WebCore::initFontData):
91623         (WebCore::SimpleFontData::platformInit):
91624         (WebCore::SimpleFontData::platformDestroy):
91625         * platform/mac/WebCoreSystemInterface.h:
91626         * platform/mac/WebCoreSystemInterface.mm:
91627
91628 2008-09-09  Kevin McCullough  <kmccullough@apple.com>
91629
91630         Reviewed by Tim.
91631
91632         <rdar://problem/6198545> REGRESSION: Inspector debugger barfs on
91633         breakpoints inside eval.
91634
91635         * page/inspector/inspector.js:
91636
91637 2008-09-09  Joerg Bornemann  <joerg.bornemann@trolltech.com>
91638
91639         Reviewed by Simon.
91640
91641         Fix compilation of the Qt port with disabled plugins on Windows
91642
91643         * WebCore.pro:
91644         * plugins/PluginView.cpp:
91645         (WebCore::PluginView::PluginView):
91646         * plugins/PluginView.h:
91647
91648 2008-09-09  Jungshik Shin  <jungshik.shin@gmail.com>
91649
91650         Reviewed by Alexey Proskuryakov.
91651
91652         Try MIME charset names before trying IANA names
91653         ( https://bugs.webkit.org/show_bug.cgi?id=17537 )
91654
91655         With this change, shorter and more widely used names (preferred MIME
91656         names) are returned by document.charset, document.characterSet,
91657         document.inputEncoding rather than IANA names. This  helps
91658         fixing bug 18085 in addition to web developers who are more familiar
91659         with MIME names. For instance, EUC-JP, ISO-8859-X and US-ASCII will be
91660         returned instead of Extended_UNIX_Code_Packed_Format_for_Japanese,
91661         ISO-8859-X:19xx, and ANSI_X3.4-1968. It also replaces IBM8xx with cp8xx.
91662         Note that cp/IBM 8xx are extremly rare in today's web. Even if they're
91663         used, the former is still recognized as aliases to the latter so that
91664         there's very little, if any, to worry about.
91665
91666         * platform/text/TextCodecICU.cpp:
91667         (WebCore::TextCodecICU::registerExtendedEncodingNames):
91668
91669 2008-09-08  Sam Weinig  <sam@webkit.org>
91670
91671         Reviewed by Maciej Stachowiak and Oliver Hunt.
91672
91673         Add forwarding headers.
91674
91675         * ForwardingHeaders/wtf/HashFunctions.h: Added.
91676
91677 2008-09-05  Dean Jackson  <dino@apple.com>
91678
91679         Reviewed by Dan Bernstein.
91680
91681         Update grammar so that we can add a keyframe rule via the DOM.
91682         https://bugs.webkit.org/show_bug.cgi?id=20613
91683
91684         * css/CSSGrammar.y:
91685         * css/tokenizer.flex:
91686
91687 2008-09-08  Antti Koivisto  <antti@apple.com>
91688
91689         Reviewed by Dan Bernstein.
91690
91691         Allow <br> for simple UA stylesheet. Editing code generates them. It does not
91692         actually show up in any of the default stylesheets.
91693
91694         * css/CSSStyleSelector.cpp:
91695         (WebCore::elementCanUseSimpleDefaultStyle):
91696
91697 2008-09-08  Dimitri Glazkov  <dglazkov@google.com>
91698
91699         Reviewed by Dan Bernstein.
91700
91701         - fix https://bugs.webkit.org/show_bug.cgi?id=20237
91702           Zero width and space characters are displayed incorrectly if not contained in a fallback font
91703
91704         Adds an extra check for Object Replacement Character (U+FFFC) to address
91705         the issue with fast/text/zero-width-characters.html test when run
91706         with Windows system default fonts.
91707
91708         * platform/graphics/Font.h:
91709         (WebCore::Font::treatAsZeroWidthSpace):
91710
91711 2008-09-08  Dean Jackson  <dino@apple.com>
91712
91713         Reviewed by Sam Weinig.
91714
91715         Code style issue I forgot to fix from previous commit.
91716
91717         * platform/graphics/AffineTransform.cpp:
91718         (WebCore::AffineTransform::blend):
91719
91720 2008-09-08  Chris Marrin  <cmarrin@apple.com>
91721
91722         Reviewed by Sam Weinig
91723
91724         - Animation of -webkit-transform matrix() function should not do linear interpolation
91725           https://bugs.webkit.org/show_bug.cgi?id=20667
91726
91727         Test: animations/matrix-anim.html
91728
91729         * ChangeLog:
91730         * platform/graphics/AffineTransform.cpp:
91731         (WebCore::affineTransformDecompose):
91732         (WebCore::affineTransformCompose):
91733         (WebCore::AffineTransform::blend):
91734         * platform/graphics/AffineTransform.h:
91735         * rendering/style/RenderStyle.cpp:
91736         (WebCore::MatrixTransformOperation::blend):
91737
91738 2008-09-08  Alexey Proskuryakov  <ap@webkit.org>
91739
91740         Reviewed by Darin Adler.
91741
91742         https://bugs.webkit.org/show_bug.cgi?id=20668
91743         multipart/form-data does not always include Content-type for submitted files
91744
91745         Cannot be tested with DRT or manual tests.
91746
91747         * platform/MIMETypeRegistry.cpp:
91748         (WebCore::initializeSupportedNonImageMimeTypes): Fix spacing.
91749         (WebCore::MIMETypeRegistry::getMIMETypeForPath): Default to application/octet-stream for
91750         unknown extensions, not just missing ones.
91751
91752 2008-09-08  Simon Hausmann  <hausmann@webkit.org>
91753
91754         Build fix for the Qt/Windows build, define USE_JSC to
91755         enable the WebCore::String -> JSC::UString operator that
91756         MSVC insists on seeing
91757
91758         * WebCore.pro:
91759
91760 2008-09-08  Anders Carlsson  <andersca@apple.com>
91761
91762         Reviewed by Maciej.
91763
91764         <rdar://problem/5850387> Showing bookmarks reloads Google Reader instead.
91765
91766         In some cases, timeouts scheduled by a page in the onunload handler could fire even when the
91767         page had been unloaded and replaced by a non-HTML representation based view (such as the bookmarks view).
91768
91769         Fix this by clearing timeouts for pages that aren't cached when the provisional load is committed.
91770
91771         * bindings/js/JSDOMWindowBase.h:
91772         * loader/FrameLoader.cpp:
91773         (WebCore::FrameLoader::commitProvisionalLoad):
91774
91775 2008-09-07  Antti Koivisto  <antti@apple.com>
91776
91777         Reviewed by Dave Hyatt.
91778
91779         Don't leak the simple stylesheet.
91780         Also call RenderTheme::adjustDefaultStyleSheet() in right place.
91781
91782         * css/CSSStyleSelector.cpp:
91783         (WebCore::loadFullDefaultStyle):
91784         (WebCore::loadSimpleDefaultStyle):
91785         (WebCore::CSSStyleSelector::styleForElement):
91786
91787 2008-09-07  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
91788
91789         Reviewed by Oliver Hunt.
91790
91791         Bug 20711: Change KJS prefix on preprocessor macros to JSC
91792         <https://bugs.webkit.org/show_bug.cgi?id=20711>
91793
91794         * bindings/js/JSEventTargetBase.h:
91795         * bindings/js/JSHTMLInputElementBase.cpp:
91796         * bindings/js/JSHTMLInputElementBase.h:
91797         * bindings/scripts/CodeGeneratorJS.pm:
91798
91799 2008-09-07  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
91800
91801         Reviewed by Maciej Stachowiak.
91802
91803         Bug 20704: Replace the KJS namespace
91804         <https://bugs.webkit.org/show_bug.cgi?id=20704>
91805
91806         Rename the KJS namespace to JSC. There are still some uses of KJS in the
91807         names of JNI functions, and I will check if these are safe to change
91808         as well.
91809
91810         * WebCore.base.exp:
91811         * bindings/js/GCController.cpp:
91812         * bindings/js/JSAttrCustom.cpp:
91813         * bindings/js/JSAudioConstructor.cpp:
91814         * bindings/js/JSAudioConstructor.h:
91815         (WebCore::JSAudioConstructor::classInfo):
91816         * bindings/js/JSCSSRuleCustom.cpp:
91817         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
91818         * bindings/js/JSCSSValueCustom.cpp:
91819         * bindings/js/JSCanvasPixelArrayCustom.cpp:
91820         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
91821         * bindings/js/JSClipboardCustom.cpp:
91822         * bindings/js/JSConsoleCustom.cpp:
91823         * bindings/js/JSCustomSQLStatementCallback.cpp:
91824         (WebCore::JSCustomSQLStatementCallback::handleEvent):
91825         * bindings/js/JSCustomSQLStatementCallback.h:
91826         (WebCore::JSCustomSQLStatementCallback::create):
91827         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
91828         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
91829         * bindings/js/JSCustomSQLStatementErrorCallback.h:
91830         (WebCore::JSCustomSQLStatementErrorCallback::create):
91831         * bindings/js/JSCustomSQLTransactionCallback.cpp:
91832         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
91833         * bindings/js/JSCustomSQLTransactionCallback.h:
91834         (WebCore::JSCustomSQLTransactionCallback::create):
91835         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
91836         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
91837         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
91838         (WebCore::JSCustomSQLTransactionErrorCallback::create):
91839         * bindings/js/JSCustomVoidCallback.cpp:
91840         (WebCore::JSCustomVoidCallback::handleEvent):
91841         * bindings/js/JSCustomVoidCallback.h:
91842         (WebCore::JSCustomVoidCallback::create):
91843         * bindings/js/JSCustomXPathNSResolver.cpp:
91844         (WebCore::JSCustomXPathNSResolver::create):
91845         * bindings/js/JSCustomXPathNSResolver.h:
91846         * bindings/js/JSDOMApplicationCacheCustom.cpp:
91847         (WebCore::JSDOMApplicationCache::dispatchEvent):
91848         * bindings/js/JSDOMBinding.cpp:
91849         (WebCore::jsOwnedStringOrNull):
91850         * bindings/js/JSDOMBinding.h:
91851         (WebCore::DOMObject::DOMObject):
91852         (WebCore::cacheDOMObject):
91853         (WebCore::cacheSVGDOMObject):
91854         (WebCore::DOMExceptionTranslator::DOMExceptionTranslator):
91855         (WebCore::toJS):
91856         * bindings/js/JSDOMWindowBase.cpp:
91857         * bindings/js/JSDOMWindowBase.h:
91858         (WebCore::JSDOMWindowBase::classInfo):
91859         (WebCore::JSDOMWindowBase::d):
91860         * bindings/js/JSDOMWindowCustom.cpp:
91861         (WebCore::JSDOMWindow::getPropertyAttributes):
91862         * bindings/js/JSDOMWindowCustom.h:
91863         (WebCore::asJSDOMWindow):
91864         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
91865         (WebCore::JSDOMWindow::customPut):
91866         (WebCore::JSDOMWindowBase::allowsAccessFrom):
91867         (WebCore::JSDOMWindowBase::allowsAccessFromNoErrorMessage):
91868         * bindings/js/JSDOMWindowShell.cpp:
91869         (WebCore::JSDOMWindowShell::getPropertyAttributes):
91870         * bindings/js/JSDOMWindowShell.h:
91871         (WebCore::JSDOMWindowShell::classInfo):
91872         * bindings/js/JSDatabaseCustom.cpp:
91873         * bindings/js/JSDocumentCustom.cpp:
91874         * bindings/js/JSDocumentFragmentCustom.cpp:
91875         * bindings/js/JSElementCustom.cpp:
91876         * bindings/js/JSEventCustom.cpp:
91877         * bindings/js/JSEventListener.cpp:
91878         * bindings/js/JSEventListener.h:
91879         (WebCore::JSUnprotectedEventListener::create):
91880         (WebCore::JSEventListener::create):
91881         * bindings/js/JSEventTargetBase.cpp:
91882         * bindings/js/JSEventTargetBase.h:
91883         (WebCore::JSEventTargetBase::getValueProperty):
91884         (WebCore::JSEventTargetBase::putValueProperty):
91885         (WebCore::JSEventTargetBase::getOwnPropertySlot):
91886         (WebCore::JSEventTargetBase::put):
91887         (WebCore::JSEventTargetPrototype::JSEventTargetPrototype):
91888         (WebCore::JSEventTargetPrototype::self):
91889         (WebCore::JSEventTargetPrototype::getOwnPropertySlot):
91890         (WebCore::JSEventTargetPrototype::classInfo):
91891         * bindings/js/JSEventTargetNode.cpp:
91892         * bindings/js/JSEventTargetNode.h:
91893         (WebCore::JSEventTargetNode::getOwnPropertySlot):
91894         (WebCore::JSEventTargetNode::getValueProperty):
91895         (WebCore::JSEventTargetNode::put):
91896         (WebCore::JSEventTargetNode::putValueProperty):
91897         * bindings/js/JSHTMLAllCollection.h:
91898         (WebCore::JSHTMLAllCollection::JSHTMLAllCollection):
91899         (WebCore::JSHTMLAllCollection::toBoolean):
91900         * bindings/js/JSHTMLAppletElementCustom.cpp:
91901         * bindings/js/JSHTMLCollectionCustom.cpp:
91902         * bindings/js/JSHTMLDocumentCustom.cpp:
91903         * bindings/js/JSHTMLElementCustom.cpp:
91904         * bindings/js/JSHTMLEmbedElementCustom.cpp:
91905         * bindings/js/JSHTMLFormElementCustom.cpp:
91906         * bindings/js/JSHTMLFrameElementCustom.cpp:
91907         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
91908         * bindings/js/JSHTMLIFrameElementCustom.cpp:
91909         * bindings/js/JSHTMLInputElementBase.cpp:
91910         (WebCore::JSHTMLInputElementBase::JSHTMLInputElementBase):
91911         (WebCore::JSHTMLInputElementBase::getOwnPropertySlot):
91912         * bindings/js/JSHTMLInputElementBase.h:
91913         (WebCore::JSHTMLInputElementBase::classInfo):
91914         * bindings/js/JSHTMLObjectElementCustom.cpp:
91915         * bindings/js/JSHTMLOptionElementConstructor.cpp:
91916         * bindings/js/JSHTMLOptionElementConstructor.h:
91917         (WebCore::JSHTMLOptionElementConstructor::classInfo):
91918         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
91919         * bindings/js/JSHTMLSelectElementCustom.cpp:
91920         (WebCore::selectIndexSetter):
91921         (WebCore::JSHTMLSelectElement::indexSetter):
91922         * bindings/js/JSHTMLSelectElementCustom.h:
91923         * bindings/js/JSHistoryCustom.cpp:
91924         * bindings/js/JSImageConstructor.cpp:
91925         * bindings/js/JSImageConstructor.h:
91926         (WebCore::JSImageConstructor::classInfo):
91927         * bindings/js/JSInspectedObjectWrapper.cpp:
91928         * bindings/js/JSInspectedObjectWrapper.h:
91929         (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
91930         (WebCore::JSInspectedObjectWrapper::classInfo):
91931         * bindings/js/JSInspectorCallbackWrapper.cpp:
91932         * bindings/js/JSInspectorCallbackWrapper.h:
91933         (WebCore::JSInspectorCallbackWrapper::classInfo):
91934         (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
91935         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
91936         * bindings/js/JSLocationCustom.cpp:
91937         * bindings/js/JSMimeTypeArrayCustom.cpp:
91938         * bindings/js/JSNSResolver.cpp:
91939         * bindings/js/JSNSResolver.h:
91940         (WebCore::JSNSResolver::create):
91941         * bindings/js/JSNamedNodeMapCustom.cpp:
91942         * bindings/js/JSNamedNodesCollection.cpp:
91943         (WebCore::JSNamedNodesCollection::JSNamedNodesCollection):
91944         * bindings/js/JSNamedNodesCollection.h:
91945         (WebCore::JSNamedNodesCollection::classInfo):
91946         * bindings/js/JSNavigatorCustom.cpp:
91947         * bindings/js/JSNodeCustom.cpp:
91948         * bindings/js/JSNodeFilterCondition.cpp:
91949         (WebCore::JSNodeFilterCondition::acceptNode):
91950         * bindings/js/JSNodeFilterCondition.h:
91951         (WebCore::JSNodeFilterCondition::create):
91952         * bindings/js/JSNodeFilterCustom.cpp:
91953         * bindings/js/JSNodeIteratorCustom.cpp:
91954         * bindings/js/JSNodeListCustom.cpp:
91955         * bindings/js/JSPluginArrayCustom.cpp:
91956         * bindings/js/JSPluginCustom.cpp:
91957         * bindings/js/JSPluginElementFunctions.cpp:
91958         (WebCore::getRuntimeObject):
91959         * bindings/js/JSPluginElementFunctions.h:
91960         * bindings/js/JSQuarantinedObjectWrapper.cpp:
91961         (WebCore::JSQuarantinedObjectWrapper::construct):
91962         (WebCore::JSQuarantinedObjectWrapper::call):
91963         * bindings/js/JSQuarantinedObjectWrapper.h:
91964         (WebCore::JSQuarantinedObjectWrapper::unwrappedObject):
91965         (WebCore::JSQuarantinedObjectWrapper::unwrappedGlobalObject):
91966         (WebCore::JSQuarantinedObjectWrapper::className):
91967         * bindings/js/JSRGBColor.cpp:
91968         * bindings/js/JSRGBColor.h:
91969         (WebCore::JSRGBColor::classInfo):
91970         * bindings/js/JSSQLResultSetRowListCustom.cpp:
91971         * bindings/js/JSSQLTransactionCustom.cpp:
91972         * bindings/js/JSSVGLazyEventListener.cpp:
91973         * bindings/js/JSSVGLazyEventListener.h:
91974         * bindings/js/JSSVGLengthCustom.cpp:
91975         * bindings/js/JSSVGMatrixCustom.cpp:
91976         (WebCore::JSSVGMatrix::inverse):
91977         (WebCore::JSSVGMatrix::rotateFromVector):
91978         * bindings/js/JSSVGPathSegCustom.cpp:
91979         * bindings/js/JSSVGPathSegListCustom.cpp:
91980         (WebCore::JSSVGPathSegList::initialize):
91981         (WebCore::JSSVGPathSegList::getItem):
91982         (WebCore::JSSVGPathSegList::insertItemBefore):
91983         (WebCore::JSSVGPathSegList::replaceItem):
91984         (WebCore::JSSVGPathSegList::removeItem):
91985         (WebCore::JSSVGPathSegList::appendItem):
91986         * bindings/js/JSSVGPointListCustom.cpp:
91987         * bindings/js/JSSVGTransformListCustom.cpp:
91988         * bindings/js/JSStorageCustom.cpp:
91989         * bindings/js/JSStyleSheetCustom.cpp:
91990         * bindings/js/JSStyleSheetListCustom.cpp:
91991         * bindings/js/JSTextCustom.cpp:
91992         * bindings/js/JSTreeWalkerCustom.cpp:
91993         * bindings/js/JSXMLHttpRequestConstructor.cpp:
91994         * bindings/js/JSXMLHttpRequestConstructor.h:
91995         (WebCore::JSXMLHttpRequestConstructor::classInfo):
91996         * bindings/js/JSXMLHttpRequestCustom.cpp:
91997         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
91998         * bindings/js/JSXSLTProcessorConstructor.cpp:
91999         * bindings/js/JSXSLTProcessorConstructor.h:
92000         (WebCore::JSXSLTProcessorConstructor::classInfo):
92001         * bindings/js/JSXSLTProcessorCustom.cpp:
92002         * bindings/js/ScheduledAction.cpp:
92003         * bindings/js/ScheduledAction.h:
92004         * bindings/js/ScriptController.cpp:
92005         (WebCore::ScriptController::attachDebugger):
92006         (WebCore::ScriptController::windowScriptNPObject):
92007         * bindings/js/ScriptController.h:
92008         * bindings/js/ScriptControllerGtk.cpp:
92009         (WebCore::ScriptController::createScriptInstanceForWidget):
92010         * bindings/js/ScriptControllerMac.mm:
92011         (WebCore::ScriptController::createScriptInstanceForWidget):
92012         (WebCore::ScriptController::windowScriptObject):
92013         (WebCore::ScriptController::clearPlatformScriptObjects):
92014         (WebCore::updateRenderingForBindings):
92015         (WebCore::ScriptController::initJavaJSBindings):
92016         * bindings/js/ScriptControllerQt.cpp:
92017         (WebCore::ScriptController::createScriptInstanceForWidget):
92018         * bindings/js/ScriptControllerWin.cpp:
92019         (WebCore::ScriptController::createScriptInstanceForWidget):
92020         * bindings/js/ScriptControllerWx.cpp:
92021         (WebCore::ScriptController::createScriptInstanceForWidget):
92022         * bindings/js/StringSourceProvider.h:
92023         (WebCore::StringSourceProvider::getRange):
92024         * bindings/objc/DOM.mm:
92025         (-[DOMNode JSC::Bindings::]):
92026         * bindings/objc/DOMInternal.h:
92027         * bindings/objc/DOMInternal.mm:
92028         (-[WebScriptObject _initializeScriptDOMNodeImp]):
92029         * bindings/objc/DOMUtility.mm:
92030         (JSC::createDOMWrapper):
92031         (WebCore::createDOMWrapper):
92032         * bindings/objc/WebScriptObject.mm:
92033         (WebCore::createJSWrapper):
92034         (-[WebScriptObject _initWithJSObject:JSC::originRootObject:JSC::Bindings::rootObject:JSC::Bindings::]):
92035         * bindings/objc/WebScriptObjectPrivate.h:
92036         * bindings/scripts/CodeGeneratorJS.pm:
92037         * bridge/NP_jsobject.cpp:
92038         * bridge/NP_jsobject.h:
92039         * bridge/c/c_class.cpp:
92040         * bridge/c/c_class.h:
92041         * bridge/c/c_instance.cpp:
92042         * bridge/c/c_instance.h:
92043         * bridge/c/c_runtime.cpp:
92044         * bridge/c/c_runtime.h:
92045         * bridge/c/c_utility.cpp:
92046         * bridge/c/c_utility.h:
92047         * bridge/jni/jni_class.cpp:
92048         * bridge/jni/jni_class.h:
92049         * bridge/jni/jni_instance.cpp:
92050         * bridge/jni/jni_instance.h:
92051         * bridge/jni/jni_jsobject.h:
92052         * bridge/jni/jni_jsobject.mm:
92053         (JavaJSObject::call):
92054         (JavaJSObject::convertJObjectToValue):
92055         * bridge/jni/jni_objc.mm:
92056         (JSC::Bindings::dispatchJNICall):
92057         * bridge/jni/jni_runtime.cpp:
92058         * bridge/jni/jni_runtime.h:
92059         * bridge/jni/jni_utility.cpp:
92060         * bridge/jni/jni_utility.h:
92061         * bridge/npruntime.cpp:
92062         (_NPN_GetStringIdentifier):
92063         * bridge/objc/WebScriptObject.h:
92064         * bridge/objc/objc_class.h:
92065         * bridge/objc/objc_class.mm:
92066         * bridge/objc/objc_instance.h:
92067         * bridge/objc/objc_instance.mm:
92068         * bridge/objc/objc_runtime.h:
92069         * bridge/objc/objc_runtime.mm:
92070         * bridge/objc/objc_utility.h:
92071         * bridge/objc/objc_utility.mm:
92072         * bridge/qt/qt_class.cpp:
92073         * bridge/qt/qt_class.h:
92074         * bridge/qt/qt_instance.cpp:
92075         * bridge/qt/qt_instance.h:
92076         * bridge/qt/qt_runtime.cpp:
92077         (JSC::Bindings::convertQVariantToValue):
92078         (JSC::Bindings::):
92079         * bridge/qt/qt_runtime.h:
92080         * bridge/runtime.cpp:
92081         * bridge/runtime.h:
92082         * bridge/runtime_array.cpp:
92083         * bridge/runtime_array.h:
92084         * bridge/runtime_method.cpp:
92085         * bridge/runtime_method.h:
92086         * bridge/runtime_object.cpp:
92087         * bridge/runtime_object.h:
92088         * bridge/runtime_root.cpp:
92089         (JSC::Bindings::RootObject::invalidate):
92090         (JSC::Bindings::RootObject::gcProtect):
92091         (JSC::Bindings::RootObject::gcUnprotect):
92092         * bridge/runtime_root.h:
92093         * bridge/testbindings.cpp:
92094         * bridge/testbindings.mm:
92095         * bridge/testqtbindings.cpp:
92096         * dom/Document.cpp:
92097         (WebCore::Document::~Document):
92098         * dom/NSResolver.h:
92099         * dom/Node.cpp:
92100         (WebCore::Node::setDocument):
92101         (WebCore::ResolveNamespaceFunctor::ResolveNamespaceFunctor):
92102         (WebCore::resolveNamespacesForSelector):
92103         (WebCore::Node::querySelector):
92104         (WebCore::Node::querySelectorAll):
92105         * dom/Node.h:
92106         * dom/NodeFilter.cpp:
92107         * dom/NodeFilter.h:
92108         * dom/NodeFilterCondition.cpp:
92109         * dom/NodeFilterCondition.h:
92110         * dom/NodeIterator.cpp:
92111         * dom/NodeIterator.h:
92112         * dom/Traversal.cpp:
92113         * dom/Traversal.h:
92114         * dom/TreeWalker.cpp:
92115         * dom/TreeWalker.h:
92116         * dom/make_names.pl:
92117         * history/CachedPage.cpp:
92118         * history/CachedPage.h:
92119         * html/HTMLPlugInElement.cpp:
92120         (WebCore::HTMLPlugInElement::getInstance):
92121         * html/HTMLPlugInElement.h:
92122         * loader/FrameLoader.cpp:
92123         * loader/FrameLoader.h:
92124         * loader/icon/IconDatabase.cpp:
92125         (WebCore::iconDatabase):
92126         * page/Console.cpp:
92127         * page/Console.h:
92128         * page/InspectorController.cpp:
92129         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
92130         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
92131         (WebCore::InspectorResource::setXMLHttpRequestProperties):
92132         (WebCore::InspectorResource::sourceString):
92133         (WebCore::getResourceDocumentNode):
92134         (WebCore::search):
92135         (WebCore::InspectorController::focusNode):
92136         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
92137         (WebCore::InspectorController::addDatabaseScriptResource):
92138         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
92139         * page/InspectorController.h:
92140         (WebCore::InspectorController::profiles):
92141         * page/JavaScriptCallFrame.cpp:
92142         (WebCore::JavaScriptCallFrame::scopeChain):
92143         * page/JavaScriptCallFrame.h:
92144         (WebCore::JavaScriptCallFrame::create):
92145         (WebCore::JavaScriptCallFrame::update):
92146         * page/JavaScriptDebugListener.h:
92147         * page/JavaScriptDebugServer.cpp:
92148         (WebCore::dispatchDidParseSource):
92149         * page/JavaScriptDebugServer.h:
92150         * page/JavaScriptProfile.cpp:
92151         * page/JavaScriptProfile.h:
92152         * page/JavaScriptProfileNode.cpp:
92153         (WebCore::getTotalTime):
92154         (WebCore::getSelfTime):
92155         (WebCore::getTotalPercent):
92156         (WebCore::getSelfPercent):
92157         (WebCore::getNumberOfCalls):
92158         (WebCore::getChildren):
92159         (WebCore::getVisible):
92160         * page/JavaScriptProfileNode.h:
92161         * page/Page.cpp:
92162         (WebCore::Page::setDebuggerForAllPages):
92163         (WebCore::Page::setDebugger):
92164         * page/Page.h:
92165         (WebCore::Page::debugger):
92166         * page/mac/FrameMac.mm:
92167         * platform/KURL.h:
92168         (WebCore::KURL::operator JSC::UString):
92169         * platform/text/AtomicString.cpp:
92170         (WebCore::AtomicString::add):
92171         (WebCore::AtomicString::find):
92172         * platform/text/AtomicString.h:
92173         (WebCore::AtomicString::AtomicString):
92174         * platform/text/PlatformString.h:
92175         * platform/text/String.cpp:
92176         (WebCore::charactersToDouble):
92177         * platform/win/BString.cpp:
92178         * platform/win/BString.h:
92179         * plugins/MimeTypeArray.h:
92180         * plugins/Plugin.h:
92181         * plugins/PluginArray.h:
92182         * plugins/PluginView.cpp:
92183         (WebCore::PluginView::start):
92184         (WebCore::PluginView::performRequest):
92185         (WebCore::PluginView::bindingInstance):
92186         * plugins/PluginView.h:
92187         * plugins/gtk/PluginViewGtk.cpp:
92188         (WebCore::PluginView::paint):
92189         (WebCore::PluginView::handleKeyboardEvent):
92190         (WebCore::PluginView::handleMouseEvent):
92191         (WebCore::PluginView::setNPWindowRect):
92192         (WebCore::PluginView::stop):
92193         (WebCore::PluginView::init):
92194         * plugins/qt/PluginViewQt.cpp:
92195         (WebCore::PluginView::setNPWindowRect):
92196         (WebCore::PluginView::stop):
92197         (WebCore::PluginView::init):
92198         * plugins/win/PluginViewWin.cpp:
92199         (WebCore::PluginView::dispatchNPEvent):
92200         (WebCore::PluginView::handleKeyboardEvent):
92201         (WebCore::PluginView::handleMouseEvent):
92202         (WebCore::PluginView::setNPWindowRect):
92203         (WebCore::PluginView::stop):
92204         * storage/Database.cpp:
92205         (WebCore::Database::Database):
92206         * xml/XMLHttpRequest.cpp:
92207         (WebCore::XMLHttpRequest::responseText):
92208         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
92209         (WebCore::XMLHttpRequest::clearResponse):
92210         (WebCore::XMLHttpRequest::dropProtection):
92211         (WebCore::XMLHttpRequest::didFinishLoading):
92212         (WebCore::XMLHttpRequest::didReceiveData):
92213         * xml/XMLHttpRequest.h:
92214
92215 2008-09-07  Adam Barth  <abarth@webkit.org>
92216
92217         Reviewed by Sam Weinig.
92218
92219         Adopt opener restriction on frame navigation.
92220           https://bugs.webkit.org/show_bug.cgi?id=20642
92221
92222         This restriction helps prevent an attacker from navigating top-level
92223         windows that were created by another web site.
92224
92225         Tests: http/tests/security/frameNavigation/not-opener.html
92226                http/tests/security/frameNavigation/opener.html
92227
92228         * loader/FrameLoader.cpp:
92229         (WebCore::canAccessAncestor):
92230         (WebCore::FrameLoader::shouldAllowNavigation):
92231
92232 2008-09-07  Dan Bernstein  <mitz@apple.com>
92233
92234         Reviewed by Maciej Stachowiak.
92235
92236         - use the correct sign for vertical offsets of combining marks
92237
92238         * platform/graphics/win/UniscribeController.cpp:
92239         (WebCore::UniscribeController::shapeAndPlaceItem):
92240
92241 2008-09-07  Dan Bernstein  <mitz@apple.com>
92242
92243         Reviewed by Dave Hyatt.
92244
92245         - add the combining mark offsets in two places where I forgot them
92246
92247         * platform/graphics/win/FontCGWin.cpp:
92248         (WebCore::Font::drawGlyphs):
92249
92250 2008-09-07  Dan Bernstein  <mitz@apple.com>
92251
92252         Reviewed by Dave Hyatt.
92253
92254         - correct glyph advances in complex text using web fonts rendered with
92255           Core Graphics
92256
92257         * platform/graphics/win/FontCustomPlatformData.cpp:
92258         (WebCore::FontCustomPlatformData::fontPlatformData):
92259
92260 2008-09-07  Keishi Hattori  <casey.hattori@gmail.com>
92261
92262         Adds console.dirxml support to the Web Inspector.
92263
92264         https://bugs.webkit.org/show_bug.cgi?id=19156
92265
92266         Reviewed by Timothy Hatcher.
92267
92268         * WebCore.vcproj/WebCore.vcproj: Added ElementsTreeOutline.js.
92269         * bindings/js/JSConsoleCustom.cpp:
92270         (WebCore::JSConsole::dirxml):
92271         * page/Console.cpp:
92272         (WebCore::Console::dirxml): Adds a ConsoleMessage with NodeMessageLevel.
92273         * page/Console.h:
92274         (WebCore::): Added NodeMessageLevel.
92275         * page/Console.idl: Added console.dirxml.
92276         * page/inspector/Console.js: A NodeMessage creates a ElementsTreeOutline.
92277         * page/inspector/ElementsPanel.js: Modified to use ElementsTreeOutline. The ElementsTreeOutline
92278         in the ElementsPanel has includeRootDOMNode and selectEnabled set to true.
92279         * page/inspector/ElementsTreeOutline.js: Added.
92280         (WebInspector.ElementsTreeOutline): A subclass of TreeOutline for displaying a DOM node tree.
92281         (WebInspector.ElementsTreeElement): A subclass of TreeElement for ElementsTreeOutline.
92282         * page/inspector/WebKit.qrc: Added ElementsTreeOutline.js.
92283         * page/inspector/inspector.css:
92284         * page/inspector/inspector.html: Added ElementsTreeOutline.js.
92285         * page/inspector/inspector.js: Moved hover related methods to WebInspector.
92286         (WebInspector.altKeyDown):
92287         (WebInspector.forceHoverHighlight):
92288         (WebInspector.hoveredDOMNode):
92289         (WebInspector._updateHoverHighlightSoon):
92290         (WebInspector._updateHoverHighlight):
92291         (WebInspector.documentKeyDown): Updates WebInspector.altKeyDown
92292         (WebInspector.documentKeyUp): Updates WebInspector.altKeyDown
92293         * page/inspector/utilities.js: Added getDocumentForNode, parentNodeOrFrameElement,
92294         isAncestorIncludingParentFrames.
92295
92296 2008-09-06  Mark Rowe  <mrowe@apple.com>
92297
92298         Qt build fix.
92299
92300         * bridge/qt/qt_runtime.cpp:
92301         (KJS::Bindings::convertQVariantToValue):
92302
92303 === End merge of squirrelfish-extreme ===
92304
92305 2008-09-05  Oliver Hunt  <oliver@apple.com>
92306
92307         Start bringing up SFX on windows.
92308
92309         Reviewed by Mark Rowe and Sam Weinig
92310
92311         Start doing the work to bring up SFX on windows.  Initially
92312         just working on WREC, as it does not make any calls so reduces
92313         the amount of code that needs to be corrected.
92314
92315         Add forwarding headers
92316
92317         * ChangeLog:
92318         * ForwardingHeaders/masm/MacroAssembler.h: Added.
92319         * WebCore.vcproj/WebCore.vcproj:
92320
92321 2008-08-27  Mark Rowe  <mrowe@apple.com>
92322
92323         Reviewed by Oliver Hunt.
92324
92325         Fix the build of the full WebKit stack.
92326
92327         Add forwarding headers.
92328
92329         * ForwardingHeaders/masm/IA32MacroAsm.h: Added.
92330         * ForwardingHeaders/wrec/WREC.h: Added.
92331
92332 === Start merge of squirrelfish-extreme ===
92333
92334 2008-09-06  Antti Koivisto  <antti@apple.com>
92335
92336         Reviewed by Dave Hyatt.
92337
92338         <rdar://problem/6187043>
92339         Don't parse full HTML user agent style sheet unless it is actually needed
92340         <rdar://problem/6131889>
92341         WebView is significantly more expensive to create recently
92342
92343         Parsing the html4.css takes significant amount of time and memory (~50kb) on application
92344         startup. Some clients may never use most of the rules.
92345
92346         With this patch we use simplified UA stylesheet until we hit something it can't handle.
92347         This avoids full stylesheet parsing on application startup (due to empty document construction)
92348         and also makes it possible for clients with very simple demands (divs and spans only) never to load
92349         the full style.
92350
92351         It also delays view source style parsing until it is used.
92352
92353         * css/CSSStyleSelector.cpp:
92354         (WebCore::elementCanUseSimpleDefaultStyle):
92355         (WebCore::CSSStyleSelector::CSSStyleSelector):
92356         (WebCore::loadFullDefaultStyle):
92357         (WebCore::loadSimpleDefaultStyle):
92358         (WebCore::loadViewSourceStyle):
92359         (WebCore::CSSStyleSelector::matchUARules):
92360         (WebCore::CSSStyleSelector::styleForElement):
92361
92362 2008-09-06  Kevin Ollivier  <kevino@theolliviers.com>
92363
92364         wx build fix.
92365
92366         * WebCoreSources.bkl:
92367
92368 2008-09-06  Antti Koivisto  <antti@apple.com>
92369
92370         Reverting r35953 which was causing problems on Windows which relies on
92371         WebCore timers in nested event loops. r36132 did alternative fix.
92372
92373         * page/Chrome.cpp:
92374         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
92375         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
92376
92377 2008-09-06  Antti Koivisto  <antti@apple.com>
92378
92379         Reviewed by Dan Bernstein.
92380
92381         Fix <rdar://problem/6201644>
92382         https://bugs.webkit.org/show_bug.cgi?id=20493
92383         Crash after OK in dialog box and reloading page in secure mode
92384
92385         Limited loader only fix since the general timer fix is causing problems on Windows.
92386
92387         * loader/loader.cpp:
92388         (WebCore::Loader::servePendingRequests):
92389         (WebCore::Loader::Host::Host):
92390         (WebCore::Loader::Host::didFinishLoading):
92391         (WebCore::Loader::Host::didFail):
92392         (WebCore::Loader::Host::didReceiveData):
92393         * loader/loader.h:
92394         (WebCore::Loader::Host::processingResource):
92395
92396 2008-09-06  Dan Bernstein  <mitz@apple.com>
92397
92398         Reviewed by Dave Hyatt.
92399
92400         The initial Core Text adoption prototype was made by Daniel Fenwick.
92401
92402         - <rdar://problem/5158514> Add a Core Text-based complex text code path
92403
92404         Currently the Core Text code path is not used in any configuration.
92405
92406         * WebCore.xcodeproj/project.pbxproj: Added files.
92407         * config.h: Defined WTF_USE_ATSUI and WTF_USE_CORE_TEXT.
92408         * platform/graphics/Font.cpp:
92409         (WebCore::WidthIterator::advance): Moved the spacingDisabled() test out
92410         of the loop.
92411         * platform/graphics/GlyphBuffer.h:
92412         (WebCore::GlyphBuffer::add): Added this version that takes an advance.
92413         * platform/graphics/SimpleFontData.h: Added ATSUI and CORE_TEXT #ifdefs.
92414         Added getCTFont() and getCFStringAttributes() and corresponding data
92415         members for Core Text.
92416         * platform/graphics/mac/CoreTextController.cpp: Added.
92417         (WebCore::roundCGFloat): Helper function.
92418         (WebCore::ceilCGFloat): Helper function.
92419         (WebCore::CoreTextController::CoreTextRun::CoreTextRun):
92420         (WebCore::CoreTextController::CoreTextController):
92421         (WebCore::CoreTextController::offsetForPosition):
92422         (WebCore::CoreTextController::collectCoreTextRuns): Added. Segments the
92423         run into subruns as necessary such that each subrun can be rendered with
92424         a single font. Also separates out soft hyphens and replaces them with
92425         real hyphens, because Core Text does not emit a glyph for soft hyphens.
92426         Then calls collectCoreTextRunsForCharacters() on each subrun.
92427         (WebCore::CoreTextController::advance):
92428         (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Creates
92429         a CTLine from the given subrun and collects its CoreTextRuns.
92430         (WebCore::CoreTextController::adjustGlyphsAndAdvances): Applies the
92431         rounding hacks, letter- and word-spacing and glyph substitutions and
92432         stores the resulting adjusted glyphs and advances.
92433         * platform/graphics/mac/CoreTextController.h: Copied from WebCore/platform/graphics/win/UniscribeController.h.
92434         (WebCore::CoreTextController::totalWidth):
92435         (WebCore::CoreTextController::finalRoundingWidth):
92436         (WebCore::CoreTextController::CoreTextRun::ctRun):
92437         (WebCore::CoreTextController::CoreTextRun::glyphCount):
92438         (WebCore::CoreTextController::CoreTextRun::fontData):
92439         (WebCore::CoreTextController::CoreTextRun::characters):
92440         (WebCore::CoreTextController::CoreTextRun::stringLocation):
92441         (WebCore::CoreTextController::CoreTextRun::stringLength):
92442         (WebCore::CoreTextController::CoreTextRun::indexAt):
92443         * platform/graphics/mac/FontMac.mm: Moved the ATSUI-specific parts to
92444         FontMacATSUI.mm.
92445         * platform/graphics/mac/FontMacATSUI.mm: Copied from WebCore/platform/graphics/mac/FontMac.mm.
92446         (WebCore::disableLigatures): Changed to call
92447         FontPlatformData::allowsLigatures().
92448         (WebCore::overrideLayoutOperation): Changed to call
92449         FontPlatformData::roundsGlyphAdvances().
92450         * platform/graphics/mac/FontMacCoreText.cpp: Copied from WebCore/platform/graphics/win/FontWin.cpp.
92451         (WebCore::Font::selectionRectForComplexText): Changed to use
92452         totalWidth() instead of advancing to the end and using runWidthSoFar().
92453         (WebCore::Font::drawComplexText):
92454         (WebCore::Font::floatWidthForComplexText): Ditto.
92455         (WebCore::Font::offsetForPositionForComplexText):
92456         * platform/graphics/mac/FontPlatformData.h:
92457         * platform/graphics/mac/FontPlatformDataMac.mm:
92458         (WebCore::FontPlatformData::setFont):
92459         (WebCore::FontPlatformData::roundsGlyphAdvances): Added. Checks the
92460         AppKit rendering mode.
92461         (WebCore::FontPlatformData::allowsLigatures): Added. Implements the
92462         heuristic that allows ligatures in fonts that do not have a glyph for
92463         'a', based on the assumption that such fonts are only used in complex
92464         text.
92465         * platform/graphics/mac/SimpleFontDataMac.mm:
92466         (WebCore::SimpleFontData::platformInit):
92467         (WebCore::SimpleFontData::platformDestroy):
92468         (WebCore::SimpleFontData::getCTFont): Added.
92469         (WebCore::SimpleFontData::getCFStringAttributes): Added. Caches and
92470         returns an attributes dictionary.
92471         * platform/text/mac/ShapeArabic.c: Added ATSUI #ifdefs.
92472         * platform/text/mac/ShapeArabic.h: Ditto.
92473
92474 2008-09-06  Dan Bernstein  <mitz@apple.com>
92475
92476         Reviewed by Dave Hyatt.
92477
92478         - make combining mark offsets work in CG text on Windows
92479
92480         * platform/graphics/win/FontCGWin.cpp:
92481         (WebCore::Font::drawGlyphs): The old code tried to translate the text
92482         matrix, but failed for two reasons: it did not actually change the
92483         matrix, and even if it did, CGContextSetTextPosition overwrites the
92484         translation values in the text matrix. Instead, just added the
92485         translation to the anchor point.
92486
92487 2008-09-05  Gustavo Noronha Silva  <gns@gnome.org>
92488
92489         Reviewed by Alp Toker.
92490
92491         https://bugs.webkit.org/show_bug.cgi?id=18346
92492         [GTK] Remove build warnings
92493
92494         Applied some casts, and removed an unused typedef to make the
92495         compiler happy, printing less warnings when building.
92496
92497         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
92498         * platform/graphics/gtk/SimpleFontDataPango.cpp:
92499         (WebCore::SimpleFontData::containsCharacters):
92500         * platform/graphics/gtk/VideoSinkGStreamer.cpp:
92501         (webkit_video_sink_set_caps):
92502         * platform/network/soup/ResourceHandleSoup.cpp:
92503
92504 2008-09-05  Eric Seidel  <eric@webkit.org>
92505
92506         Reviewed by Adam Roben.
92507
92508         Build fix for WebKitWin and Chromium
92509
92510         * platform/FileSystem.h:
92511
92512 2008-09-05  Eric Seidel  <eric@webkit.org>
92513
92514         Reviewed by Darin Adler.
92515
92516         Try to make Chromium compile with ToT:
92517         - Wrap a few places which depend on KJS:: in #if USE(JSC)
92518         - Include some windows forward declarations
92519
92520         * dom/Node.h:
92521         * page/Console.h:
92522         * page/animation/CompositeAnimation.h:
92523         * platform/FileSystem.h:
92524         * platform/graphics/Image.h:
92525         * platform/text/AtomicString.h:
92526         * platform/text/String.cpp:
92527         * rendering/style/RenderStyle.h:
92528
92529 2008-09-05  Dave Hyatt  <hyatt@apple.com>
92530
92531         Add support for runtime switchability of the Aqua look and the native look on Windows.
92532         Make RenderThemeWin compile by default even when USE(SAFARI_THEME) is set.
92533
92534         Reviewed by Adam Roben
92535
92536         * WebCore.vcproj/WebCore.vcproj:
92537         * page/Settings.cpp:
92538         (WebCore::Settings::setShouldPaintNativeControls):
92539         * page/Settings.h:
92540         (WebCore::Settings::shouldPaintNativeControls):
92541         * rendering/RenderThemeSafari.cpp:
92542         (WebCore::theme):
92543         * rendering/RenderThemeWin.cpp:
92544
92545 2008-09-05  Antti Koivisto  <antti@apple.com>
92546
92547         Qt build fix.
92548
92549         * svg/SVGFEImageElement.cpp:
92550         (WebCore::SVGFEImageElement::build):
92551
92552 2008-09-05  Dirk Schulze  <vbs85@gmx.de>
92553
92554         Gtk build fix
92555
92556         * GNUmakefile.am:
92557
92558 2008-09-05  Antti Koivisto  <antti@apple.com>
92559
92560         Another build fix.
92561
92562         * svg/SVGFEImageElement.cpp:
92563         (WebCore::SVGFEImageElement::notifyFinished):
92564
92565 2008-09-05  Antti Koivisto  <antti@apple.com>
92566
92567         Build fixes.
92568
92569         * WebCore.xcodeproj/project.pbxproj:
92570         * svg/graphics/filters/SVGFEImage.cpp:
92571         (WebCore::FEImage::cachedImage):
92572
92573 2008-09-05  Antti Koivisto  <antti@apple.com>
92574
92575         Reviewed by Darin Adler.
92576
92577         Most of the implementation for https://bugs.webkit.org/show_bug.cgi?id=17998
92578         When a resource is cached locally, WebKit should follow RFC 2616 "Specific end-to-end revalidation" instead of "Unspecified end-to-end revalidation"
92579
92580         Implement HTTP 1.1 "Specific end-to-end revalidation" for WebCore memory cache. This patch does
92581         not yet enable it for the biggest use case, reloading. However it is good for general browsing as
92582         well. Doing this in WebCore level as opposed to relying on disk cache has big benefit that
92583         we avoid re-decoding resources, especially images.
92584
92585         To be exact the enabled case is not actually the "Specific end-to-end revalidation" since it does not include
92586         CacheControl: max-age=0 header. That would be added in reload case.
92587
92588         The approach for revalidation is to kick the original resource out from the memory cache
92589         and create a new CachedResource that represents the revalidation request. In case
92590         we get 304 back for the request we put the original resource back to the cache, update
92591         its expiration date and switch the clients registered to revalidation resource to be
92592         clients of the original resource.
92593
92594         All heap allocated CachedImage pointers now use CachedResourceHandle<CachedImage> (and so on) instead.
92595         This allows updating the handles to point to the original resource when the revalidation succeeds. It
92596         also acts as refcounting smart pointer.
92597
92598         * WebCore.pro:
92599         * WebCore.vcproj/WebCore.vcproj:
92600         * WebCore.xcodeproj/project.pbxproj:
92601         * css/CSSFontFaceSource.h:
92602         * css/CSSImportRule.h:
92603         * dom/Clipboard.h:
92604         (WebCore::Clipboard::dragImage):
92605         * dom/ProcessingInstruction.h:
92606         * dom/ScriptElement.h:
92607         * dom/XMLTokenizer.cpp:
92608         (WebCore::XMLTokenizer::isWaitingForScripts):
92609         * dom/XMLTokenizer.h:
92610         * html/HTMLImageLoader.cpp:
92611         (WebCore::HTMLImageLoader::setImage):
92612         (WebCore::HTMLImageLoader::updateFromElement):
92613         (WebCore::HTMLImageLoader::notifyFinished):
92614         * html/HTMLImageLoader.h:
92615         (WebCore::HTMLImageLoader::image):
92616         * html/HTMLLinkElement.h:
92617         * html/HTMLTokenizer.cpp:
92618         (WebCore::HTMLTokenizer::reset):
92619         (WebCore::HTMLTokenizer::scriptHandler):
92620         (WebCore::HTMLTokenizer::notifyFinished):
92621         * html/HTMLTokenizer.h:
92622         * loader/Cache.cpp:
92623         (WebCore::Cache::revalidateResource):
92624         (WebCore::Cache::revalidationSucceeded):
92625         (WebCore::Cache::revalidationFailed):
92626         * loader/Cache.h:
92627         * loader/CachedResource.cpp:
92628         (WebCore::CachedResource::CachedResource):
92629         (WebCore::CachedResource::~CachedResource):
92630         (WebCore::CachedResource::isExpired):
92631         (WebCore::CachedResource::setResponse):
92632         (WebCore::CachedResource::deleteIfPossible):
92633         (WebCore::CachedResource::setResourceToRevalidate):
92634         (WebCore::CachedResource::clearResourceToRevalidate):
92635         (WebCore::CachedResource::switchClientsToRevalidatedResource):
92636         (WebCore::CachedResource::canUseCacheValidator):
92637         (WebCore::CachedResource::mustRevalidate):
92638         * loader/CachedResource.h:
92639         (WebCore::CachedResource::canDelete):
92640         (WebCore::CachedResource::registerHandle):
92641         (WebCore::CachedResource::unregisterHandle):
92642         (WebCore::CachedResource::isCacheValidator):
92643         (WebCore::CachedResource::resourceToRevalidate):
92644         (WebCore::CachedResource::setExpirationDate):
92645         * loader/CachedResourceHandle.cpp: Added.
92646         (WebCore::CachedResourceHandleBase::setResource):
92647         * loader/CachedResourceHandle.h: Added.
92648         (WebCore::CachedResourceHandleBase::~CachedResourceHandleBase):
92649         (WebCore::CachedResourceHandleBase::get):
92650         (WebCore::CachedResourceHandleBase::operator!):
92651         (WebCore::CachedResourceHandleBase::operator UnspecifiedBoolType):
92652         (WebCore::CachedResourceHandleBase::CachedResourceHandleBase):
92653         (WebCore::CachedResourceHandleBase::operator=):
92654         (WebCore::CachedResourceHandle::CachedResourceHandle):
92655         (WebCore::CachedResourceHandle::get):
92656         (WebCore::CachedResourceHandle::operator->):
92657         (WebCore::CachedResourceHandle::operator=):
92658         (WebCore::CachedResourceHandle::operator==):
92659         (WebCore::CachedResourceHandle::operator!=):
92660         (WebCore::operator==):
92661         (WebCore::operator!=):
92662         * loader/DocLoader.cpp:
92663         (WebCore::DocLoader::checkForReload):
92664         * loader/UserStyleSheetLoader.h:
92665         * loader/loader.cpp:
92666         (WebCore::Loader::Host::servePendingRequests):
92667         (WebCore::Loader::Host::didFinishLoading):
92668         (WebCore::Loader::Host::didFail):
92669         (WebCore::Loader::Host::didReceiveResponse):
92670         (WebCore::Loader::Host::didReceiveData):
92671         * page/EventHandler.cpp:
92672         (WebCore::EventHandler::selectCursor):
92673         * rendering/RenderImage.cpp:
92674         (WebCore::RenderImage::setCachedImage):
92675         (WebCore::RenderImage::imageChanged):
92676         * rendering/RenderImage.h:
92677         (WebCore::RenderImage::cachedImage):
92678         (WebCore::RenderImage::imagePtr):
92679         * rendering/style/RenderStyle.h:
92680         * rendering/style/StyleCachedImage.h:
92681         (WebCore::StyleCachedImage::data):
92682         (WebCore::StyleCachedImage::cachedImage):
92683         * svg/SVGFEImageElement.h:
92684         * svg/graphics/filters/SVGFEImage.h:
92685         * xml/XSLImportRule.h:
92686
92687 2008-09-04  Brady Eidson  <beidson@apple.com>
92688
92689         Reviewed by Mitz
92690
92691         <rdar://problem/6180236> - Safari times out connections after 1 or 2 minutes
92692
92693         A 60-second default timeout was added in http://trac.webkit.org/changeset/17144 in an attempt
92694         to model default NSURLRequest behavior in a cross-platform manner.
92695
92696         Sadly by always enforcing this 60 second timeout, WebCore was stomping over the wishes of any Webkit
92697         client that wished to enforce a much larger default timeout using NSURLRequest API.
92698
92699         Additionally, upon reviewing what all other browsers do, it seems apparent that "no limit" is desirable
92700         behavior on the web and this restores previous Safari/WebKit behavior.
92701
92702         It would be easy to write a layout test for this, but to be effective it would have
92703         to run for at least 61 seconds, which seems insane until will can parallelize run-webkit-tests
92704
92705         * manual-tests/timeout-test.html: Added.
92706         * manual-tests/timeout-test.php: Added.
92707
92708         * platform/network/ResourceRequestBase.h:
92709         (WebCore::ResourceRequestBase::ResourceRequestBase):  Rename the constant to "unspecifiedTimeoutInterval"
92710           and make it UINT_MAX so platforms that do set it have an effective "no timeout."  (Windows, for example)
92711         * platform/network/mac/ResourceRequestMac.mm:
92712         (WebCore::ResourceRequest::doUpdatePlatformRequest):  If the timeout for this request is
92713           "unspecifiedTimeoutInterval", then don't bother setting the timeout using NSURLRequest API, allowing
92714           WebKit applications to enforce their own default timeout.
92715
92716 2008-09-04  Dan Bernstein  <mitz@apple.com>
92717
92718         Reviewed by Beth Dakin.
92719
92720         - fix <rdar://problem/6198514> Changing a button's opacity triggers relayout
92721
92722         Test: fast/repaint/button-spurious-layout-hint.html
92723
92724         * rendering/RenderButton.cpp:
92725         (WebCore::RenderButton::setStyle): Reset the inner block's style box
92726         flex to 0 to avoid getting a spurious layout hint.
92727
92728 2008-09-04  Kevin Ollivier  <kevino@theolliviers.com>
92729
92730         wx build fixes.
92731
92732         * WebCoreSources.bkl:
92733         * bindings/js/ScriptControllerWx.cpp: Added.
92734         (WebCore::ScriptController::createScriptInstanceForWidget):
92735         * page/wx/AccessibilityObjectWx.cpp: Added.
92736         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
92737         * platform/graphics/wx/GraphicsContextWx.cpp:
92738         * webcore-base.bkl:
92739         * webcore-wx.bkl:
92740
92741 2008-09-04  Dan Bernstein  <mitz@apple.com>
92742
92743         Reviewed by Mark Rowe.
92744
92745         - roll out r36050 because it made svg/custom/invalid-fill-hex.svg fail,
92746           and fixing https://bugs.webkit.org/show_bug.cgi?id=15360 appears to
92747           require a different approach
92748
92749         * css/CSSGrammar.y:
92750
92751 2008-09-04  Mark Rowe  <mrowe@apple.com>
92752
92753         Reviewed by Eric Seidel.
92754
92755         Fix https://bugs.webkit.org/show_bug.cgi?id=20639.
92756         Bug 20639: ENABLE_DASHBOARD_SUPPORT does not need to be a FEATURE_DEFINE
92757
92758         * Configurations/WebCore.xcconfig: Remove ENABLE_DASHBOARD_SUPPORT from FEATURE_DEFINES.
92759         * DerivedSources.make: Revert to checking for ENABLE_DASHBOARD_SUPPORT rather than looking
92760         for ENABLE_DASHBOARD_SUPPORT in FEATURE_DEFINES.
92761
92762 2008-09-04  Mark Rowe  <mrowe@apple.com>
92763
92764         Mac build fix.
92765
92766         * config.h: Only check the value of HAVE_CONFIG_H if it is defined.
92767
92768 2008-09-04  Eric Seidel  <eric@webkit.org>
92769
92770         Build fix only, no review.
92771
92772         * dom/XMLTokenizer.cpp: Fix the Chromium merge build by adding a missing header (the Mac files must include it somewhere).
92773
92774 2008-09-04  Marco Barisione  <marco.barisione@collabora.co.uk>
92775
92776         Reviewed by Eric Seidel.
92777
92778         http://bugs.webkit.org/show_bug.cgi?id=20380
92779         [GTK][AUTOTOOLS] Include autotoolsconfig.h from config.h
92780
92781         * config.h: Include the configuration header generated by autotools if
92782         available.
92783
92784 2008-09-04  Dan Bernstein  <mitz@apple.com>
92785
92786         Rubber-stamped by Dave Hyatt.
92787
92788         - rename CachedResource::allReferencesRemoved() to allClientsRemoved()
92789
92790         * loader/CachedFont.cpp:
92791         (WebCore::CachedFont::allClientsRemoved):
92792         * loader/CachedFont.h:
92793         * loader/CachedImage.cpp:
92794         (WebCore::CachedImage::allClientsRemoved):
92795         * loader/CachedImage.h:
92796         * loader/CachedResource.cpp:
92797         (WebCore::CachedResource::removeClient):
92798         * loader/CachedResource.h:
92799         (WebCore::CachedResource::allClientsRemoved):
92800
92801 2008-09-04  Adam Roben  <aroben@apple.com>
92802
92803         Windows build fix after r36071
92804
92805         We were getting these errors:
92806
92807         error C2356: initialization segment must not change during translation
92808         unit
92809
92810         This was happening because multiple files #included by
92811         DerivedSources.cpp were themselves #including StaticConstructors.h. I
92812         fixed the error by adding header guards to StaticConstructors.h so its
92813         contents will only be included once.
92814
92815         But it's also not a good idea for StaticConstructors.h to end up in
92816         DerivedSources.cpp, since it ends up "polluting" all the source files
92817         we have in there. So I removed all the files that include
92818         StaticConstructors.h and added some preprocessor directives to
92819         DerivedSources.cpp to catch this error in the future.
92820
92821         * DerivedSources.cpp: Removed the *Names.cpp files, which include
92822         StaticConstructors.h, and added some preprocessor directives to make
92823         sure we don't end up accidentally including StaticConstructors.h in
92824         the future.
92825         * WebCore.vcproj/WebCore.vcproj: Added the *Names.cpp files.
92826         * platform/StaticConstructors.h: Added header guards.
92827
92828 2008-09-04  Adam Roben  <aroben@apple.com>
92829
92830         Windows build fix
92831
92832         * platform/graphics/win/FontPlatformData.h: Added a missing #include
92833         of PassRefPtr.h, and corrected the capitalization of RefCounted.h.
92834         * platform/text/PlatformString.h: Added a missing #include of
92835         PassRefPtr.h.
92836
92837 2008-09-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
92838
92839         Reviewed by Simon.
92840
92841         Fix the QtWebKit build to match changes in r36016
92842
92843         * WebCore.pro:
92844         * bridge/qt/qt_instance.cpp:
92845         (KJS::Bindings::QtInstance::getRuntimeObject):
92846         * bridge/qt/qt_runtime.cpp:
92847         (KJS::Bindings::convertQVariantToValue):
92848         (KJS::Bindings::QtConnectionObject::execute):
92849
92850 2008-09-04  Tor Arne Vestbø  <tavestbo@trolltech.com>
92851
92852         Reviewed by Simon.
92853
92854         Re-enable support for user stylesheets in QtWebKit
92855
92856         QtWebKit now follows the FRAME_LOADS_USER_STYLESHEET
92857         code path, which allows us to keep API support for
92858         loading user style sheets from remote URLs.
92859
92860         As part of the change UserStyleSheetLoader.cpp/h was
92861         moved from WebCore/loader/mac to WebCore/loader.
92862
92863         * WebCore.pro:
92864         * WebCore.xcodeproj/project.pbxproj:
92865         * dom/Document.h:
92866         * loader/UserStyleSheetLoader.cpp: Renamed from WebCore/loader/mac/UserStyleSheetLoader.cpp.
92867         (UserStyleSheetLoader::UserStyleSheetLoader):
92868         (UserStyleSheetLoader::~UserStyleSheetLoader):
92869         * loader/UserStyleSheetLoader.h: Renamed from WebCore/loader/mac/UserStyleSheetLoader.h.
92870         * page/qt/FrameQt.cpp:
92871         (WebCore::Frame::setUserStyleSheetLocation):
92872         (WebCore::Frame::setUserStyleSheet):
92873
92874 2008-09-04  Alp Toker  <alp@nuanti.com>
92875
92876         Reviewed by Eric.
92877
92878         Remove left-over QT and CAIRO platform checks.
92879
92880         * html/CanvasRenderingContext2D.cpp:
92881
92882 2008-09-04  Eric Seidel  <eric@webkit.org>
92883
92884         Reviewed by Mark Rowe.
92885
92886         Fix leak of TextMetrics due to over-ref as see on buildbot.
92887
92888         * html/TextMetrics.h: use adoptRef since RefCounted starts @ refcount 1 instead of 0 now.
92889
92890 2008-09-04  Dan Bernstein  <mitz@apple.com>
92891
92892         Reviewed by Dave Hyatt.
92893
92894         - fix https://bugs.webkit.org/show_bug.cgi?id=19717
92895           <rdar://problem/6026832> REGRESSION (r31876): menu items render horizontally at the Economist
92896
92897         * rendering/RenderBlock.cpp:
92898         (WebCore::RenderBlock::layoutOnlyPositionedObjects): In the
92899         positioned movement only case, call
92900         tryLayoutDoingPositionedMovementOnly() and fall back on doing a full
92901         layout if that fails.
92902         (WebCore::RenderBlock::layoutPositionedObjects): Ditto.
92903         * rendering/RenderBox.h:
92904         (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly): Renamed
92905         layoutDoingPositionedMovementOnly to this, and made this function
92906         check if the width changed. If it did, return, leaving the object
92907         dirty. The caller can then call layout(). The width can change even
92908         in the "positioned movement only" case if the object is shrink-to-fit
92909         and the available width constraint is met. (This was the case in the
92910         bug).
92911         * rendering/RenderObject.h:
92912         (WebCore::RenderObject::tryLayoutDoingPositionedMovementOnly):
92913         Renamed layoutDoingPositionedMovementOnly() to this.
92914
92915 2008-09-03  Eric Seidel  <eric@webkit.org>
92916
92917         No review, build fix only.
92918
92919         Attempt to fix the Qt build.
92920
92921         * WebCore.pro: add page/animation to include path
92922
92923 2008-09-03  Mark Rowe  <mrowe@apple.com>
92924
92925         Mac build fix.  Correctly detect whether dashboard support is enabled.
92926
92927         * DerivedSources.make:
92928
92929 2008-09-03  Eric Seidel  <eric@webkit.org>
92930
92931         Reviewed by Sam.
92932
92933         Clean up Platform.h and add PLATFORM(CHROMIUM), PLATFORM(SKIA) and USE(V8_BINDINGS)
92934
92935         * Configurations/WebCore.xcconfig: add missing ENABLE_*
92936         * config.h: add rules for V8_BINDINGS
92937
92938 2008-09-03  Eric Seidel  <eric@webkit.org>
92939
92940         Reviewed by Sam.
92941
92942         https://bugs.webkit.org/show_bug.cgi?id=20620
92943
92944         Add #if USE(JSC) around KJS dependencies
92945         Remove !USE(JAVASCRIPTCORE_BINDINGS) support for 3 reasons:
92946         1. Most platforms have it on anyway
92947         2. V8 is going to want to share some of that code
92948         3. Those platforms which want it off, should have a separate file instead of an #ifdef in our .cpp
92949
92950         * bindings/js/JSPluginElementFunctions.cpp: remove !USE(JAVASCRIPTCORE_BINDINGS) support
92951         * config.h: change JAVASCRIPTCORE_BINDINGS to JSC and add USE(V8)
92952         * html/HTMLAppletElement.cpp: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
92953         * html/HTMLAppletElement.h: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
92954         * html/HTMLEmbedElement.cpp: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
92955         * html/HTMLEmbedElement.h: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
92956         * html/HTMLObjectElement.cpp: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
92957         * html/HTMLObjectElement.h: remove USE(JAVASCRIPTCORE_BINDINGS) wrappers
92958         * html/HTMLPlugInElement.cpp: replace USE(JAVASCRIPTCORE_BINDINGS) with USE(JSC) where needed
92959         * html/HTMLPlugInElement.h: replace USE(JAVASCRIPTCORE_BINDINGS) with USE(JSC) where needed
92960         * platform/text/AtomicString.cpp: add USE(JSC)
92961         * platform/text/AtomicString.h: add USE(JSC)
92962         * platform/text/PlatformString.h: add USE(JSC)
92963         * platform/text/String.cpp: add USE(JSC)
92964         * platform/text/StringImpl.cpp: add USE(JSC)
92965         * platform/text/StringImpl.h: add USE(JSC)
92966
92967 2008-09-03  Dean McNamee  <deanm@chromium.org>
92968
92969         Reviewed by Darin Adler.
92970
92971         Fix https://bugs.webkit.org/show_bug.cgi?id=20511
92972         Bug 20511: Remove static initializers on Windows
92973
92974         Avoid static initializers on Windows by forcing Visual C++ to put
92975         all static initializers in a code segment that is never executed.
92976
92977         * config.h:
92978         * css/MediaFeatureNames.cpp:
92979         * dom/EventNames.cpp:
92980         * dom/QualifiedName.cpp:
92981         * dom/make_names.pl:
92982         * platform/StaticConstructors.h:
92983         * platform/text/AtomicString.cpp:
92984
92985 2008-09-03  Dirk Schulze  <vbs85@gmx.de>
92986
92987         Reviewed by Dave Hyatt.
92988
92989         Make FontCairo draw TextStroke and TextFill separately.
92990
92991         [CAIRO] draw TextFill and TextStroke separately.
92992         [https://bugs.webkit.org/show_bug.cgi?id=20631]
92993
92994         * platform/graphics/cairo/FontCairo.cpp:
92995         (WebCore::Font::drawGlyphs):
92996
92997 2008-09-03  Peter Kasting  <pkasting@google.com>
92998
92999         Reviewed by Dave Hyatt.
93000
93001         https://bugs.webkit.org/show_bug.cgi?id=19663
93002         Account for paint and timer lag when animating images.  Also pretend
93003         that images whose animations were paused (by becoming invisible)
93004         continued to animate, by "catching up" to the correct frame when they're
93005         shown again.
93006
93007         * platform/graphics/BitmapImage.cpp:
93008         (WebCore::BitmapImage::BitmapImage):
93009         (WebCore::BitmapImage::startAnimation):
93010         (WebCore::BitmapImage::advanceAnimation):
93011         (WebCore::BitmapImage::internalAdvanceAnimation):
93012         (WebCore::BitmapImage::notifyObserverAndTrimDecodedData):
93013         * platform/graphics/BitmapImage.h:
93014         * platform/graphics/cairo/ImageCairo.cpp:
93015         (WebCore::BitmapImage::draw):
93016         * platform/graphics/cg/ImageCG.cpp:
93017         (WebCore::BitmapImage::draw):
93018         * platform/graphics/qt/ImageQt.cpp:
93019         (WebCore::BitmapImage::draw):
93020         * platform/graphics/wx/ImageWx.cpp:
93021         (WebCore::BitmapImage::draw):
93022
93023 2008-09-03  Kevin McCullough  <kmccullough@apple.com>
93024
93025         Reviewed by Tim.
93026
93027         Remove the rest of the "zombie" code from the profiler.
93028         - There is no longer a need for the ProfilerClient callback mechanism.
93029
93030         * page/Console.cpp:
93031         (WebCore::Console::Console):
93032         (WebCore::Console::profile):
93033         (WebCore::Console::profileEnd): Move the variables from the header to
93034         here since we don't have to wait for a callback to use them.
93035         * page/Console.h:
93036         * page/InspectorController.cpp:
93037         (WebCore::InspectorController::startUserInitiatedProfiling):
93038         (WebCore::InspectorController::stopUserInitiatedProfiling):
93039         * page/InspectorController.h:
93040
93041 2008-09-03  Ada Chan  <adachan@apple.com>
93042
93043         Windows build fix.
93044
93045         * WebCore.vcproj/WebCore.vcproj: Added JSWebKitCSSKeyframeRule.cpp and JSWebKitCSSKeyframesRule.cpp to the project.
93046
93047 2008-09-01  Dean Jackson  <dino@apple.com>
93048
93049         Reviewed by Dave Hyatt.
93050
93051         https://bugs.webkit.org/show_bug.cgi?id=20594
93052         Add DOM interfaces for WebKitCSSKeyframeRule
93053         and WebKitCSSKeyframesRule.
93054
93055         TEST: LayoutTests/css3/keyframes-rule.html
93056
93057         * css/WebKitCSSKeyframeRule.idl: Added
93058         * css/WebKitCSSKeyframesRule.idl: Added
93059
93060         * bindings/js/JSCSSRuleCustom.cpp:
93061         (WebCore::toJS):
93062             Add return of new JS Keyframe rules
93063         * bindings/objc/DOMInternal.h:
93064             Include new internal header
93065
93066         * DerivedSources.make:
93067         * GNUmakefile.am:
93068         * WebCore.pro:
93069         * WebCore.vcproj/WebCore.vcproj:
93070         * WebCore.xcodeproj/project.pbxproj:
93071         * WebCoreSources.bkl:
93072             Build configs for new files
93073
93074 2008-09-03  Adam Roben  <aroben@apple.com>
93075
93076         Windows build fix
93077
93078         * DerivedSources.cpp: Add JSTextMetrics.cpp to fix the build.
93079         * WebCore.vcproj/WebCore.vcproj: Add JSTextMetrics.h for
93080         convenience/consistency.
93081
93082 2008-09-03  Adele Peterson  <adele@apple.com>
93083
93084         Build fix.
93085
93086         * WebCore.vcproj/WebCore.vcproj:
93087
93088 2008-09-03  David Hyatt  <hyatt@apple.com>
93089
93090         Fix for bug 18203, right floats should be allowed to overflow past the left border edge.
93091
93092         Reviewed by Darin (ages ago)
93093
93094         Added fast/block/float/clamped-right-float.html
93095
93096         * rendering/RenderBlock.cpp:
93097         (WebCore::RenderBlock::positionNewFloats):
93098
93099 2008-09-02  David Hyatt  <hyatt@apple.com>
93100
93101         Add support for canvas text drawing APIs.
93102
93103         Reviewed by olliej
93104
93105         Tests added as fast/canvas/canvas-text-*.html
93106
93107         * DerivedSources.make:
93108         * WebCore.xcodeproj/project.pbxproj:
93109         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
93110         (WebCore::JSCanvasRenderingContext2D::fillText):
93111         (WebCore::JSCanvasRenderingContext2D::strokeText):
93112         * css/CSSStyleSelector.cpp:
93113         (WebCore::CSSStyleSelector::initForStyleResolve):
93114         (WebCore::CSSStyleSelector::applyPropertyToStyle):
93115         * css/CSSStyleSelector.h:
93116         * html/CanvasRenderingContext2D.cpp:
93117         (WebCore::CanvasRenderingContext2D::State::State):
93118         (WebCore::CanvasRenderingContext2D::font):
93119         (WebCore::CanvasRenderingContext2D::setFont):
93120         (WebCore::CanvasRenderingContext2D::textAlign):
93121         (WebCore::CanvasRenderingContext2D::setTextAlign):
93122         (WebCore::CanvasRenderingContext2D::textBaseline):
93123         (WebCore::CanvasRenderingContext2D::setTextBaseline):
93124         (WebCore::CanvasRenderingContext2D::fillText):
93125         (WebCore::CanvasRenderingContext2D::strokeText):
93126         (WebCore::CanvasRenderingContext2D::measureText):
93127         (WebCore::CanvasRenderingContext2D::drawTextInternal):
93128         (WebCore::CanvasRenderingContext2D::accessFont):
93129         * html/CanvasRenderingContext2D.h:
93130         * html/CanvasRenderingContext2D.idl:
93131         * html/TextMetrics.h: Added.
93132         (WebCore::TextMetrics::create):
93133         (WebCore::TextMetrics::width):
93134         (WebCore::TextMetrics::setWidth):
93135         (WebCore::TextMetrics::TextMetrics):
93136         * html/TextMetrics.idl: Added.
93137         * platform/graphics/Font.cpp:
93138         (WebCore::Font::lineGap):
93139         * platform/graphics/Font.h:
93140         * platform/graphics/GraphicsContext.cpp:
93141         (WebCore::GraphicsContext::drawBidiText):
93142         * platform/graphics/GraphicsContext.h:
93143         * platform/graphics/GraphicsTypes.cpp:
93144         (WebCore::textAlignName):
93145         (WebCore::parseTextAlign):
93146         (WebCore::textBaselineName):
93147         (WebCore::parseTextBaseline):
93148         * platform/graphics/GraphicsTypes.h:
93149         (WebCore::):
93150
93151 2008-09-03  John Sullivan  <sullivan@apple.com>
93152
93153         Fixed <rdar://problem/6193022> <rdar://problem/6193022> Crash occurs at WebCore::AnimationBase::propertiesEqual () after certain steps
93154
93155         Fixed by Darin, reviewed by me
93156
93157         * page/animation/AnimationBase.cpp:
93158         (WebCore::AnimationBase::propertiesEqual):
93159         added ensurePropertyMap() to this static function
93160         (WebCore::AnimationBase::getPropertyAtIndex):
93161         ditto
93162         (WebCore::AnimationBase::getNumProperties):
93163         ditto
93164
93165 2008-09-03  Kevin McCullough  <kmccullough@apple.com>
93166
93167         Reviewed by Darin and Tim.
93168
93169         Remove most of the "zombie" mode from the profiler.  Next we will need
93170         to remove the client callback mechanism in profiles.
93171         - These changes are a result of changes to JSCore.
93172
93173         * manual-tests/inspector/profiler-test-nested-start-and-stop-profiler.html:
93174         * page/Console.cpp:
93175         (WebCore::retrieveLastCaller):
93176         (WebCore::Console::profileEnd):
93177         * page/InspectorController.cpp:
93178         (WebCore::InspectorController::stopUserInitiatedProfiling):
93179
93180 2008-09-03  Adele Peterson  <adele@apple.com>
93181
93182         Reviewed by Darin Adler.
93183
93184         Test: fast/forms/search-display-none-cancel-button.html
93185
93186         Allow display:none to work on a search field's cancel button.  Prepare for adding more style-ability for the results button too.
93187
93188         * css/html4.css: Set display:inline-block for these buttons.  Now they can be overridden by a web author.
93189
93190         * rendering/RenderTextControl.cpp:
93191         (WebCore::RenderTextControl::setStyle): Add nil checks for the button renderers.
93192         (WebCore::RenderTextControl::createResultsButtonStyle): Don't set the display explicitly.  This is now done in html4.css.
93193         (WebCore::RenderTextControl::createCancelButtonStyle): ditto.
93194         (WebCore::RenderTextControl::createSubtreeIfNeeded):
93195         Reorganize this code so our complicated way of adding shadow nodes is abstracted out into the TextControlInnerElement class.
93196         (WebCore::RenderTextControl::updateFromElement): Added nil checks for the button renderers.
93197         (WebCore::RenderTextControl::subtreeHasChanged): ditto.
93198         (WebCore::RenderTextControl::calcHeight): ditto.
93199         (WebCore::RenderTextControl::nodeAtPoint): ditto.
93200         (WebCore::RenderTextControl::layout): ditto.
93201         (WebCore::RenderTextControl::calcPrefWidths): ditto.
93202         (WebCore::RenderTextControl::clientPaddingLeft): ditto.
93203         (WebCore::RenderTextControl::clientPaddingRight): ditto.
93204
93205         * rendering/TextControlInnerElements.cpp:
93206         (WebCore::RenderTextControlInnerBlock::RenderTextControlInnerBlock): Moved from RenderTextControl.cpp.
93207         (WebCore::RenderTextControlInnerBlock::nodeAtPoint): ditto.
93208         (WebCore::TextControlInnerElement::attachInnerElement): Added.
93209          This does all the separate steps of attaching a shadow node that used to be repeated in RenderTextControl::createSubtreeIfNeeded for each element.
93210         (WebCore::TextControlInnerTextElement::createRenderer): Added.  Creates a RenderTextControlInnerBlock.
93211         * rendering/TextControlInnerElements.h:
93212
93213 2008-08-28  Alexey Proskuryakov  <ap@webkit.org>
93214
93215         Reviewed by Maciej.
93216
93217         Elminate SQLiteAuthorizer class.
93218
93219         * WebCore.xcodeproj/project.pbxproj:
93220         * WebCore.vcproj/WebCore.vcproj:
93221         * GNUmakefile.am
93222         Removed SQLiteAuthorizer.h.
93223
93224         * platform/sql/SQLiteAuthorizer.cpp:
93225         * platform/sql/SQLiteAuthorizer.h: Removed.
93226         * platform/sql/SQLiteDatabase.cpp:
93227         (WebCore::SQLiteDatabase::authorizerFunction):
93228         (WebCore::SQLiteDatabase::setAuthorizer):
93229         * platform/sql/SQLiteDatabase.h:
93230         * storage/DatabaseAuthorizer.h:
93231         (WebCore::DatabaseAuthorizer::create):
93232         (WebCore::DatabaseAuthorizer::createView):
93233         (WebCore::DatabaseAuthorizer::createTempView):
93234         (WebCore::DatabaseAuthorizer::dropView):
93235         (WebCore::DatabaseAuthorizer::dropTempView):
93236         (WebCore::DatabaseAuthorizer::allowSelect):
93237         (WebCore::DatabaseAuthorizer::allowReindex):
93238         Merge SQLiteAuthorizer and DatabaseAuthorizer, as keeping them separate serves no purpose.
93239
93240 2008-09-03  Dirk Schulze  <vbs85@gmx.de>
93241
93242         Reviewed by Mark Rowe.
93243
93244         WebKitGtk build fix.
93245
93246         * GNUmakefile.am:
93247         * page/animation/AnimationController.h:
93248
93249 2008-09-02  Robert Blaut  <webkit@blaut.biz>
93250
93251         Reviewed by Geoff Garen.
93252
93253         Fix for <https://bugs.webkit.org/show_bug.cgi?id=16913>
93254         Misplaced elements should not close DL lists.
93255
93256         Test: fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html
93257
93258         * html/HTMLParser.cpp:
93259         (WebCore::HTMLParser::handleError):
93260
93261 2008-09-02  Glenn Wilson  <wilsong@gmail.com>
93262
93263         Reviewed by Darin Adler.
93264
93265         Fix for <https://bugs.webkit.org/show_bug.cgi?id=15360>
93266         Bug 15360: color:#{predefined colorName} is treated as colorName in Safari
93267
93268         We would inappropriately interpret and apply an invalid CSS "color" property
93269         when the value is a predefined color preceded by a '#' symbol.  For example,
93270         style="color:#gray;" would apply the color gray when it should not.
93271
93272         In the bison template, "hexcolor" was defined as both "HEX maybe_space" OR "IDENT maybe_space".
93273         This caused identifiers not fitting the appropriate hex format but preceded by a '#' to be
93274         interpreted as a valid color (CSSPrimitiveValue::CSS_PARSER_HEXCOLOR), when it was really just
93275         an ignorable token.
93276
93277         To correct this, "IDENT maybe_space" was removed from "hexcolor" and added under "term" as
93278         '#' IDENT maybe_space, which is then processed as a CSSPrimitiveValue::CSS_STRING instead of
93279         CSSPrimitiveValue::CSS_PARSER_HEXCOLOR.
93280
93281         Test: css1/color_and_background/invalid_color.html
93282
93283         * css/CSSGrammar.y:
93284
93285 2008-09-02  Mihnea Ovidenie  <mihnea@adobe.com>
93286
93287         Reviewed by Darin Adler.
93288
93289         Fix for https://bugs.webkit.org/show_bug.cgi?id=19964
93290         Bug 19964: Divide by zero crash in RenderBox::calculateBackgroundSize with 0,0 bmp background image
93291
93292         Add a check to RenderBox::repaintLayerRectsForImage to make sure the current layer image can be rendered.
93293
93294         Test: css3/khtml-background-size-0x0-bmp.html
93295
93296         * rendering/RenderBox.cpp:
93297         (WebCore::RenderBox::repaintLayerRectsForImage):
93298
93299 2008-09-02  Glenn Wilson  <wilsong@gmail.com>
93300
93301         Reviewed by Eric Seidel.
93302
93303         Fix https://bugs.webkit.org/show_bug.cgi?id=20397
93304         Bug 20397: Invalid webkit-border-bottom-left-radius property causes crash
93305
93306         The function checkForOrphanedUnits() would change the length of a list whose size was
93307         was already determined before the call to checkForOrphanedUnits was made.  Later in
93308         the caller, the old size was being used for boundary management.
93309
93310         This has been fixed by moving the call to checkForOrphanedUnits() earlier in the
93311         calling function, before the size of the list is determined.
93312
93313         Test: fast/css/orphaned_units_crash.html
93314
93315         * css/CSSParser.cpp:
93316         (WebCore::CSSParser::parseValue):  Moved call to checkForOrphanedUnits() earlier in the function.
93317
93318 2008-09-02  Dirk Schulze  <vbs85@gmx.de>
93319
93320         Reviewed by Darin Adler.
93321
93322         Fallback on invalid fill or stroke styles in Canvas was
93323         transparent black. Changed it to last valid style.
93324
93325         Canvas fillStyle() and strokeStyle() needs fallback
93326         https://bugs.webkit.org/show_bug.cgi?id=20474
93327
93328         Tests: fast/canvas/canvas-invalid-fillstyle.html
93329                fast/canvas/canvas-invalid-strokestyle.html
93330
93331         * html/CanvasStyle.cpp:
93332         (WebCore::CanvasStyle::applyStrokeColor):
93333         (WebCore::CanvasStyle::applyFillColor):
93334
93335 2008-09-02  Dirk Schulze  <vbs85@gmx.de>
93336
93337         Reviewed by Darin Adler.
93338
93339         Fix https://bugs.webkit.org/show_bug.cgi?id=20468
93340         Updated drawImage() in canvas to match the current specification.
93341
93342         Test: fast/canvas/drawImage-with-negative-source-destination.html
93343
93344         * html/CanvasRenderingContext2D.cpp:
93345         (WebCore::normalizeRect):
93346         (WebCore::CanvasRenderingContext2D::drawImage):
93347
93348 2008-08-26  Mark Rowe  <mrowe@apple.com>
93349
93350         Reviewed by Darin Adler.
93351
93352         <rdar://problem/5768210> Switch back to the system version of SQLite
93353
93354         Use the system version of SQLite when it is new enough to provide the functionality
93355         that WebCore requires.
93356
93357         * Configurations/Base.xcconfig:
93358         * Configurations/DebugRelease.xcconfig:
93359         * Configurations/WebCore.xcconfig:
93360
93361 2008-09-02  Dan Bernstein  <mitz@apple.com>
93362
93363         - build fix
93364
93365         * page/animation/AnimationBase.h:
93366
93367 2008-09-02  Chris Marrin  <cmarrin@apple.com>
93368
93369         Reviewed by Dave Hyatt.
93370
93371         AnimationController.cpp should be split into separate files
93372         https://bugs.webkit.org/show_bug.cgi?id=20604
93373
93374         Note: All makefiles, except WebCore.xcodeproj have been changed without testing, upon
93375         recommendation of Dave Hyatt.
93376
93377         * GNUmakefile.am:
93378         * WebCore.pro:
93379         * WebCore.vcproj/WebCore.vcproj:
93380         * WebCore.xcodeproj/project.pbxproj:
93381         * WebCoreSources.bkl:
93382             Build files.
93383
93384         * page/AnimationController.cpp: Removed.
93385         * page/AnimationController.h: Removed.
93386         * page/animation: Added.
93387         * page/animation/AnimationBase.cpp: Added.
93388         * page/animation/AnimationBase.h: Added.
93389         * page/animation/AnimationController.cpp: Copied from WebCore/page/AnimationController.cpp.
93390         * page/animation/AnimationController.h: Copied from WebCore/page/AnimationController.h.
93391         * page/animation/CompositeAnimation.cpp: Added.
93392         * page/animation/CompositeAnimation.h: Added.
93393         * page/animation/ImplicitAnimation.cpp: Added.
93394         * page/animation/ImplicitAnimation.h: Added.
93395         * page/animation/KeyframeAnimation.cpp: Added.
93396         * page/animation/KeyframeAnimation.h: Added.
93397
93398 2008-09-02  Dan Bernstein  <mitz@apple.com>
93399
93400         - release build fix
93401
93402         * platform/graphics/cg/GraphicsContextCG.cpp:
93403         (WebCore::calculateDrawingMode):
93404
93405 2008-09-02  Timothy Hatcher  <timothy@apple.com>
93406
93407         Make console functions log the correct resource URL and
93408         line number for where the call originated.
93409
93410         https://bugs.webkit.org/show_bug.cgi?id=17234
93411         <rdar://problem/5732837>
93412
93413         Reviewed by Kevin McCullough.
93414
93415         Test: manual-tests/inspector/console-call-line-numbers.html
93416
93417         * bindings/js/JSConsoleCustom.cpp:
93418         (WebCore::JSConsole::count): Call the impl.
93419         (WebCore::JSConsole::timeEnd): Ditto.
93420         * manual-tests/inspector/console-call-line-numbers.html: Added.
93421         * manual-tests/inspector/resources/script-console-calls.js: Added.
93422         * page/Console.cpp:
93423         (WebCore::retrieveLastCaller): Helper to get the URL and line.
93424         (WebCore::Console::error): Call retrieveLastCaller to get the URL and
93425         line number to pass to addMessageToConsole.
93426         (WebCore::Console::info): Ditto.
93427         (WebCore::Console::log): Ditto.
93428         (WebCore::Console::assertCondition): Ditto.
93429         (WebCore::Console::count): Ditto.
93430         (WebCore::Console::timeEnd): Ditto.
93431         (WebCore::Console::warn): Ditto.
93432         * page/Console.h:
93433         * page/Console.idl: Make count and timeEnd custom.
93434
93435 2008-09-02  Timothy Hatcher  <timothy@apple.com>
93436
93437         Removed IDL files from WebCore's framework resources.
93438
93439         * WebCore.xcodeproj/project.pbxproj:
93440
93441 2008-09-02  Dan Bernstein  <mitz@apple.com>
93442
93443         Reviewed by Dave Hyatt.
93444
93445         - <rdar://problem/5681647> pages at http://www.stendmarsofa.com/ are so slow to calculate style it seems like a hang
93446
93447         * html/HTMLParser.cpp:
93448         (WebCore::HTMLParser::handleResidualStyleCloseTagAcrossBlocks): Added a
93449         cap on the number of consecutive identical residual style tags to
93450         reopen.
93451         (WebCore::HTMLParser::popBlock): Ditto.
93452
93453 2008-09-02  Alexey Proskuryakov  <ap@webkit.org>
93454
93455         Reviewed by Adam Roben.
93456
93457         A little database quota management cleanup.
93458
93459         * storage/OriginQuotaManager.cpp:
93460         (WebCore::OriginQuotaManager::OriginQuotaManager):
93461         (WebCore::OriginQuotaManager::lock):
93462         (WebCore::OriginQuotaManager::unlock):
93463         (WebCore::OriginQuotaManager::trackOrigin):
93464         (WebCore::OriginQuotaManager::tracksOrigin):
93465         (WebCore::OriginQuotaManager::addDatabase):
93466         (WebCore::OriginQuotaManager::removeDatabase):
93467         (WebCore::OriginQuotaManager::removeOrigin):
93468         (WebCore::OriginQuotaManager::markDatabase):
93469         (WebCore::OriginQuotaManager::diskUsage):
93470         * storage/OriginQuotaManager.h:
93471         Changed to assert that a lock is taken more directly and reliably. Removed comments about
93472         main/background threads, as this is likely to stop being true with synchronous Database calls
93473         being made on worker threads.
93474
93475         * storage/OriginUsageRecord.cpp:
93476         (WebCore::OriginUsageRecord::OriginUsageRecord):
93477         (WebCore::OriginUsageRecord::addDatabase):
93478         (WebCore::OriginUsageRecord::removeDatabase):
93479         (WebCore::OriginUsageRecord::markDatabase):
93480         (WebCore::OriginUsageRecord::diskUsage):
93481         * storage/OriginUsageRecord.h:
93482         (WebCore::OriginUsageRecord::DatabaseEntry::DatabaseEntry):
93483         Don't use a magic value for unknown. It is totally unnecessary for DatabaseEntry, and
93484         can be replaced with a single boolean for OriginUsageRecord.
93485         Added assertions for string parameters being unshared.
93486
93487
93488 2008-09-01  Adam Barth  <abarth@webkit.org>
93489
93490         Reviewed by Sam Weinig.
93491
93492         https://bugs.webkit.org/show_bug.cgi?id=19760
93493
93494         Make granting LoadLocalResources conditional on a policy.
93495
93496         * WebCore.base.exp:
93497         * dom/Document.cpp:
93498         (WebCore::Document::initSecurityContext):
93499         * loader/FrameLoader.cpp:
93500         (WebCore::FrameLoader::setLocalLoadPolicy):
93501         (WebCore::FrameLoader::restrictAccessToLocal):
93502         * loader/FrameLoader.h:
93503         (WebCore::FrameLoader::):
93504         * platform/SecurityOrigin.cpp:
93505         (WebCore::SecurityOrigin::grantLoadLocalResources):
93506         * platform/SecurityOrigin.h:
93507
93508 2008-09-01  Dean Jackson  <dino@apple.com>
93509
93510         Reviewed by Sam Weinig.
93511
93512         https://bugs.webkit.org/show_bug.cgi?id=20571
93513         Make sure Window object can assign Animation/Transition event
93514         listeners via attributes.
93515
93516         Also added a bunch of transition event tests, although
93517         only transition-end-event-window is directly relevant to this patch.
93518
93519         (WebCore::JSDOMWindowBase::put):
93520
93521         Tests: transitions/transition-end-event-all-properties.html
93522                transitions/transition-end-event-attributes.html
93523                transitions/transition-end-event-container.html
93524                transitions/transition-end-event-left.html
93525                transitions/transition-end-event-multiple-01.html
93526                transitions/transition-end-event-multiple-02.html
93527                transitions/transition-end-event-multiple-03.html
93528                transitions/transition-end-event-multiple-04.html
93529                transitions/transition-end-event-nested.html
93530                transitions/transition-end-event-transform.html
93531                transitions/transition-end-event-window.html
93532
93533 2008-09-01  Dean Jackson  <dino@apple.com>
93534
93535         Reviewed by Sam Weinig
93536
93537         Code styling cleanup.
93538
93539         * bindings/js/JSDOMWindowBase.cpp:
93540         (WebCore::JSDOMWindowBase::getValueProperty):
93541         (WebCore::JSDOMWindowBase::put):
93542
93543 2008-09-01  Geoffrey Garen  <ggaren@apple.com>
93544
93545         Reviewed by Darin Adler.
93546
93547         First cut at inline caching for access to vanilla JavaScript properties.
93548
93549         Updated for JavaScriptCore changes. Mostly mechanical addition of StructureIDs
93550         to WebCore classes, and PutPropertySlot& arguments to put functions.
93551
93552         (WebCore::JSCSSStyleDeclaration::customPut): Be sure to play nice with
93553         inline caching for global properties, so global assignment can be optimized.
93554
93555         * ForwardingHeaders/kjs/StructureID.h: Added.
93556         * bindings/js/JSDOMBinding.h:
93557         (WebCore::DOMObject::DOMObject):
93558         * bindings/js/JSDOMWindowBase.cpp:
93559         (WebCore::JSDOMWindowBase::put):
93560         * bindings/js/JSDOMWindowBase.h:
93561         * bindings/js/JSDOMWindowCustom.h:
93562         (WebCore::JSDOMWindow::customPut):
93563         * bindings/js/JSDOMWindowShell.cpp:
93564         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
93565         (WebCore::JSDOMWindowShell::put):
93566         * bindings/js/JSDOMWindowShell.h:
93567         * bindings/js/JSEventTargetBase.h:
93568         (WebCore::JSEventTargetBase::put):
93569         * bindings/js/JSEventTargetNode.h:
93570         (WebCore::JSEventTargetNode::put):
93571         * bindings/js/JSHTMLAppletElementCustom.cpp:
93572         (WebCore::JSHTMLAppletElement::customPut):
93573         * bindings/js/JSHTMLEmbedElementCustom.cpp:
93574         (WebCore::JSHTMLEmbedElement::customPut):
93575         * bindings/js/JSHTMLInputElementBase.cpp:
93576         (WebCore::JSHTMLInputElementBase::put):
93577         * bindings/js/JSHTMLInputElementBase.h:
93578         * bindings/js/JSHTMLObjectElementCustom.cpp:
93579         (WebCore::JSHTMLObjectElement::customPut):
93580         * bindings/js/JSHistoryCustom.cpp:
93581         (WebCore::JSHistory::customPut):
93582         * bindings/js/JSInspectedObjectWrapper.cpp:
93583         (WebCore::JSInspectedObjectWrapper::wrap):
93584         (WebCore::JSInspectedObjectWrapper::JSInspectedObjectWrapper):
93585         * bindings/js/JSInspectedObjectWrapper.h:
93586         * bindings/js/JSInspectorCallbackWrapper.cpp:
93587         (WebCore::JSInspectorCallbackWrapper::wrap):
93588         (WebCore::JSInspectorCallbackWrapper::JSInspectorCallbackWrapper):
93589         * bindings/js/JSInspectorCallbackWrapper.h:
93590         * bindings/js/JSLocationCustom.cpp:
93591         (WebCore::JSLocation::customPut):
93592         * bindings/js/JSPluginElementFunctions.cpp:
93593         (WebCore::runtimeObjectCustomPut):
93594         * bindings/js/JSPluginElementFunctions.h:
93595         * bindings/js/JSQuarantinedObjectWrapper.cpp:
93596         (WebCore::JSQuarantinedObjectWrapper::JSQuarantinedObjectWrapper):
93597         (WebCore::JSQuarantinedObjectWrapper::put):
93598         * bindings/js/JSQuarantinedObjectWrapper.h:
93599         * bindings/js/JSStorageCustom.cpp:
93600         (WebCore::JSStorage::customPut):
93601         * bindings/objc/WebScriptObject.mm:
93602         (-[WebScriptObject setValue:forKey:]):
93603         * bindings/scripts/CodeGeneratorJS.pm:
93604         * bridge/NP_jsobject.cpp:
93605         (_NPN_SetProperty):
93606         * bridge/jni/jni_jsobject.mm:
93607         (JavaJSObject::setMember):
93608         * bridge/objc/objc_class.mm:
93609         (KJS::Bindings::ObjcClass::fallbackObject):
93610         * bridge/objc/objc_runtime.h:
93611         * bridge/objc/objc_runtime.mm:
93612         (ObjcFallbackObjectImp::ObjcFallbackObjectImp):
93613         (ObjcFallbackObjectImp::put):
93614         * bridge/runtime.cpp:
93615         (KJS::Bindings::Instance::createRuntimeObject):
93616         * bridge/runtime_array.cpp:
93617         (RuntimeArray::put):
93618         * bridge/runtime_array.h:
93619         * bridge/runtime_object.cpp:
93620         (RuntimeObjectImp::RuntimeObjectImp):
93621         (RuntimeObjectImp::put):
93622         * bridge/runtime_object.h:
93623
93624 2008-09-01  Dirk Schulze  <vbs85@gmx.de>
93625
93626         Reviewed by Eric Seidel.
93627
93628         Fixed border-radius for Cairo.
93629
93630         * platform/graphics/cairo/GraphicsContextCairo.cpp:
93631         (WebCore::GraphicsContext::strokeArc):
93632
93633 2008-09-01  Dirk Schulze  <vbs85@gmx.de>
93634
93635         Reviewed by Eric Seidel.
93636
93637         Added canvas's globalAlpha to cairo.
93638
93639         * platform/graphics/GraphicsContext.h:
93640         * platform/graphics/cairo/GraphicsContextCairo.cpp:
93641         (WebCore::GraphicsContext::fillPath):
93642         (WebCore::GraphicsContext::strokePath):
93643         (WebCore::GraphicsContext::setAlpha):
93644         (WebCore::GraphicsContext::getAlpha):
93645         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
93646         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
93647         * platform/graphics/cairo/ImageCairo.cpp:
93648         (WebCore::BitmapImage::draw):
93649
93650 2008-08-31  Simon Hausmann  <hausmann@webkit.org>
93651
93652         Unreviewed Qt build fix.
93653
93654         * WebCore.pro: Add TextControlInnerElements.cpp to SOURCES instead of
93655         the .h file
93656
93657 2008-08-30  Darin Adler  <darin@apple.com>
93658
93659         Reviewed by Maciej.
93660
93661         - adopt some new JavaScriptCore functions where appropriate
93662
93663         * bindings/js/JSDOMWindowBase.cpp:
93664         (WebCore::windowProtoFuncAToB): Adopted jsEmptyString.
93665         (WebCore::windowProtoFuncBToA): Ditto.
93666         * bindings/js/JSEventListener.cpp:
93667         (WebCore::JSLazyEventListener::eventParameterName): Adopted
93668         jsNontrivialString.
93669         * bindings/js/JSSVGLazyEventListener.cpp:
93670         (WebCore::JSSVGLazyEventListener::eventParameterName): Ditto.
93671
93672 2008-08-29  Brady Eidson  <beidson@apple.com>
93673
93674         Reviewed by Anders' rubberstamp
93675
93676         Style cleanup to match MediaTokenizer::writeRawData()
93677
93678         * loader/PluginDocument.cpp:
93679         (WebCore::PluginTokenizer::writeRawData):
93680
93681 2008-08-29  Brady Eidson  <beidson@apple.com>
93682
93683         Reviewed by Anders
93684
93685         https://bugs.webkit.org/show_bug.cgi?id=20556
93686         <rdar://problem/6181817> REGRESSION (r35946): media/video-click-dlbclick-standalone.html [sic] fails because load never fires
93687
93688         Fix regression I introducted in 35946
93689         Already covered by media/video-click-dlbclick-standalone.html
93690
93691         * loader/MediaDocument.cpp:
93692         (WebCore::MediaTokenizer::createDocumentStructure): Don't cancel the load here - too early!
93693         (WebCore::MediaTokenizer::writeRawData): Call finish() here so onload() can be called.  Also add
93694           an ASSERT signifying that this method should only be called once, to more closely follow the
93695           PluginDocument case.
93696
93697 2008-08-29  Beth Dakin  <bdakin@apple.com>
93698
93699         Reviewed by Sam Weinig.
93700
93701         Fix for <rdar://problem/6181588>
93702
93703         This patch makes hit testing take into account the new concept of a
93704         disconnected frame, in which some of the content may not be
93705         visible. The current hit testing mechanism starts at a target frame
93706         and drills down for a HitTestResult. In some cases, drilling down
93707         will find a non-visible result. When this happens, we need to try
93708         again, starting at a higher level -- namely, starting at the main
93709         frame.
93710
93711         * editing/Editor.cpp:
93712         (WebCore::Editor::insideVisibleArea): New function that tests if a
93713         point is inside the visible area for a disconnected frame.
93714         * editing/Editor.h:
93715         * page/EventHandler.cpp:
93716         (WebCore::EventHandler::hitTestResultAtPoint):
93717
93718 2008-08-29  Adele Peterson  <adele@apple.com>
93719
93720         Reviewed by Adam Roben.
93721
93722         Rename HTMLTextFieldInnerElement.h/.cpp to TextControlInnerElements.h/.cpp
93723
93724         * GNUmakefile.am:
93725         * WebCore.pro:
93726         * WebCore.vcproj/WebCore.vcproj:
93727         * WebCore.xcodeproj/project.pbxproj:
93728         * WebCoreSources.bkl:
93729         * html/HTMLTextFieldInnerElement.cpp: Removed.
93730         * html/HTMLTextFieldInnerElement.h: Removed.
93731         * rendering/RenderTextControl.cpp:
93732         (WebCore::RenderTextControl::createSubtreeIfNeeded):
93733         * rendering/RenderTextControl.h:
93734         * rendering/TextControlInnerElements.cpp: Copied from html/HTMLTextFieldInnerElement.cpp.
93735         (WebCore::TextControlInnerElement::TextControlInnerElement):
93736         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
93737         (WebCore::TextControlInnerTextElement::defaultEventHandler):
93738         (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
93739         (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
93740         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
93741         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
93742         * rendering/TextControlInnerElements.h: Copied from html/HTMLTextFieldInnerElement.h.
93743
93744 2008-08-29  Eric Seidel  <eric@webkit.org>
93745
93746         Rubber-stamped by aroben.
93747
93748         Add GraphicsContext.h include to GraphcisContextPrivate.h
93749
93750         GraphicsContextPrivate uses StrokeStyle which is defined
93751         in GraphicsContext.h but it doesn't include that header.
93752         CoreGraphics build doesn't fail here due to the order
93753         it happens to include files.
93754
93755         * platform/graphics/GraphicsContextPrivate.h:
93756
93757 2008-08-29  Eric Seidel  <eric@webkit.org>
93758
93759         Reviewed by hyatt.
93760
93761         Fix GeneratedImage to respect Image's refcounting
93762         Fixing potential crashers (future if not current)
93763         https://bugs.webkit.org/show_bug.cgi?id=20567
93764
93765         I don't know if it's possible to make the current code
93766         crash, thus I've not made a test.
93767
93768         * css/CSSGradientValue.cpp:
93769         (WebCore::CSSGradientValue::image):
93770         * css/CSSImageGeneratorValue.cpp:
93771         (WebCore::CSSImageGeneratorValue::removeClient):
93772         (WebCore::CSSImageGeneratorValue::getImage):
93773         * css/CSSImageGeneratorValue.h:
93774         * platform/graphics/GeneratedImage.h:
93775         (WebCore::GeneratedImage::GeneratedImage):
93776         * rendering/style/RenderStyle.cpp:
93777         (WebCore::RenderStyle::setContent):
93778         * rendering/style/RenderStyle.h:
93779
93780 2008-08-29  Eric Carlson  <eric.carlson@apple.com>
93781
93782         Reviewed by Adele.
93783
93784         Fix for <rdar://problem/6093767>
93785         https://bugs.webkit.org/show_bug.cgi?id=20526
93786
93787         Don't allow video to render until unsupported track types have been disabled.
93788
93789         * platform/graphics/win/QTMovieWin.cpp:
93790         (QTMovieWinPrivate::task):
93791         (QTMovieWinPrivate::drawingComplete):
93792         (QTMovieWinPrivate::clearGWorld):
93793
93794 2008-08-29  Eric Carlson  <eric.carlson@apple.com>
93795
93796         Reviewed by Adele.
93797
93798         Fix for https://bugs.webkit.org/show_bug.cgi?id=20525
93799         <rdar://problem/6169301>
93800
93801         Return the size of the movie data instead of 1000.
93802
93803         Test: media/progress-event-total.html
93804
93805         * platform/graphics/win/QTMovieWin.cpp:
93806         (QTMovieWin::dataSize):
93807
93808 2008-08-29  Holger Hans Peter Freyther  <zecke@selfish.org>
93809
93810         Reviewed by Eric Seidel.
93811
93812         [janitor/qt] Start replacing port specific getters with the generic native getter
93813         To get the native presentation of an image we currently have platform
93814         specific #ifdef's and a generic getter using NativeImagePtr. This patch
93815         extends this to the ImageBuffer and updates the Qt platform to get rid
93816         of the special #ifdefs.
93817
93818         https://bugs.webkit.org/attachment.cgi?id=22861
93819
93820         * platform/graphics/BitmapImage.h:
93821         * platform/graphics/Image.h:
93822         * platform/graphics/qt/ImageQt.cpp:
93823         * platform/graphics/qt/StillImageQt.cpp:
93824         * platform/graphics/qt/StillImageQt.h:
93825         * platform/qt/ClipboardQt.cpp:
93826         (WebCore::ClipboardQt::createDragImage):
93827         (WebCore::ClipboardQt::declareAndWriteDragImage):
93828         * platform/qt/CursorQt.cpp:
93829         * platform/qt/PasteboardQt.cpp:
93830         (WebCore::Pasteboard::writeImage):
93831
93832 2008-08-29  Holger Hans Peter Freyther  <zecke@selfish.org>
93833
93834         Reviewed by Simon.
93835
93836         [svg/qt] Stop crashing... when no RenderPath/RenderObject is given...
93837
93838         * svg/graphics/qt/SVGPaintServerQt.cpp:
93839         (WebCore::SVGPaintServer::renderPath):
93840         * svg/graphics/qt/SVGPaintServerSolidQt.cpp:
93841         (WebCore::SVGPaintServerSolid::setup):
93842
93843 2008-08-29  Holger Hans Peter Freyther  <zecke@selfish.org>
93844
93845         Reviewed by Simon.
93846
93847         [network/qt] Implement defering of loading ResourceHandle's
93848         This is needed otherwise we end in an ASSERT in the MainResourceLoader. The
93849         implementation is simply not forwarding anything to the
93850         ResourceHandleClient until we are allowed to. This might lead to a deadlock
93851         in Qt as we do not empty the QNetworkReply input buffer and wait until we
93852         are allowed to read. If that happens we are forced to buffer the data
93853         within QNetworkReplyHandler, for now this is not done.
93854
93855         Manual test:
93856         - Open http://acid3.acidtests.org
93857         - Wait for the test to complete
93858         - Click on the Reference Rendering link
93859         - Be fast and see the results of acid3
93860         => assert
93861
93862         * platform/network/qt/QNetworkReplyHandler.cpp:
93863         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
93864         (WebCore::QNetworkReplyHandler::setLoadMode):
93865         (WebCore::QNetworkReplyHandler::finish):
93866         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
93867         (WebCore::QNetworkReplyHandler::forwardData):
93868         (WebCore::QNetworkReplyHandler::start):
93869         (WebCore::QNetworkReplyHandler::resetState):
93870         (WebCore::QNetworkReplyHandler::sendQueuedItems):
93871         * platform/network/qt/QNetworkReplyHandler.h:
93872         (WebCore::QNetworkReplyHandler::):
93873         * platform/network/qt/ResourceHandleQt.cpp:
93874         (WebCore::ResourceHandle::start):
93875         (WebCore::ResourceHandle::loadResourceSynchronously):
93876         (WebCore::ResourceHandle::setDefersLoading):
93877
93878 2008-08-29  Simon Hausmann  <hausmann@webkit.org>
93879
93880         Reviewed by Holger.
93881
93882         Don't crash when drawing patterns with the HTML canvas. Patterns
93883         remain unimplemented but at least they don't crash anymore. This is
93884         done by changing the PlatformPatternPtr to be a brush for the Qt
93885         platform.
93886
93887         * platform/graphics/Pattern.h:
93888         * platform/graphics/qt/GraphicsContextQt.cpp:
93889         (WebCore::GraphicsContext::fillPath):
93890         (WebCore::GraphicsContext::strokePath):
93891         (WebCore::GraphicsContext::fillRect):
93892         * platform/graphics/qt/PatternQt.cpp:
93893         (WebCore::Pattern::createPlatformPattern):
93894
93895 2008-08-29  Simon Hausmann  <hausmann@webkit.org>
93896
93897         Fix the Qt build, fontSelector() is not used by the Qt port yet
93898         and we just return 0 in Font::fontSelector().
93899
93900         * platform/graphics/Font.h:
93901
93902 2008-08-28  Alp Toker  <alp@nuanti.com>
93903
93904         GTK+ dist/build fix. List newly added header files.
93905
93906         * GNUmakefile.am:
93907
93908 2008-08-28  Simon Fraser  <simon.fraser@apple.com>
93909
93910         Reviewed by Dave Hyatt
93911
93912         Various WebKitCSSTransformValue-related fixes
93913         https://bugs.webkit.org/show_bug.cgi?id=20562
93914
93915         Test: css3/transform-value-types.html
93916
93917         * bindings/js/JSCSSValueCustom.cpp:
93918         (WebCore::toJS):
93919         * css/CSSValue.h:
93920         * css/WebKitCSSTransformValue.cpp:
93921         (WebCore::WebKitCSSTransformValue::cssText):
93922         * css/WebKitCSSTransformValue.h:
93923         (WebCore::WebKitCSSTransformValue::):
93924         * css/WebKitCSSTransformValue.idl:
93925
93926 2008-08-28  Dan Bernstein  <mitz@apple.com>
93927
93928         Reviewed by Steve Falkenburg.
93929
93930         - do not let the "last chance" WM_TIMER trigger WebCore timers when they should be deferred
93931
93932         * platform/win/SharedTimerWin.cpp:
93933         (WebCore::TimerWindowWndProc):
93934
93935 2008-08-28  David Hyatt  <hyatt@apple.com>
93936
93937         RenderStyle cleanup.
93938
93939         Break out StyleImage, StyleGeneratedImage, StyleCachedImage and NinePieceImage into separate files.
93940
93941         Reviewed by Adam
93942
93943         * css/CSSImageGeneratorValue.cpp:
93944         * css/CSSImageValue.cpp:
93945         * css/CSSStyleSelector.cpp:
93946         * rendering/RenderImageGeneratedContent.cpp:
93947         * rendering/style/NinePieceImage.cpp: Added.
93948         * rendering/style/NinePieceImage.h: Added.
93949         * rendering/style/RenderStyle.cpp:
93950         (WebCore::FillLayer::operator==):
93951         (WebCore::FillLayer::containsImage):
93952         (WebCore::StyleInheritedData::operator==):
93953         (WebCore::RenderStyle::contentDataEquivalent):
93954         * rendering/style/RenderStyle.h:
93955         * rendering/style/StyleCachedImage.cpp: Added.
93956         * rendering/style/StyleCachedImage.h: Added.
93957         * rendering/style/StyleGeneratedImage.cpp: Added.
93958         * rendering/style/StyleGeneratedImage.h: Added.
93959         * rendering/style/StyleImage.h: Added.
93960
93961 2008-08-28  Simon Fraser  <simon.fraser@apple.com>
93962
93963         Reviewed by Dave Hyatt
93964
93965         Make all the 'isFoo()' methods on CSSValue const,
93966         and fix the subclasses.
93967
93968         https://bugs.webkit.org/show_bug.cgi?id=20561
93969
93970         * css/CSSTimingFunctionValue.h:
93971         * css/CSSValue.h:
93972         (WebCore::CSSValue::isFontValue):
93973         (WebCore::CSSValue::isImageGeneratorValue):
93974         (WebCore::CSSValue::isImageValue):
93975         (WebCore::CSSValue::isImplicitInitialValue):
93976         * css/CSSValueList.h:
93977         * css/FontValue.h:
93978
93979 2008-08-28  David Hyatt  <hyatt@apple.com>
93980
93981         The great RenderStyle cleanup begins!
93982
93983         Move LengthBox and LengthSize out of RenderStyle and into Length.
93984
93985         Reviewed by Adam
93986
93987         * rendering/Length.h:
93988         (WebCore::):
93989         (WebCore::Length::Length):
93990         (WebCore::Length::operator==):
93991         (WebCore::Length::operator!=):
93992         (WebCore::Length::value):
93993         (WebCore::Length::rawValue):
93994         (WebCore::Length::percent):
93995         (WebCore::Length::type):
93996         (WebCore::Length::quirk):
93997         (WebCore::Length::setValue):
93998         (WebCore::Length::setRawValue):
93999         (WebCore::Length::calcValue):
94000         (WebCore::Length::calcMinValue):
94001         (WebCore::Length::calcFloatValue):
94002         (WebCore::Length::isUndefined):
94003         (WebCore::Length::isZero):
94004         (WebCore::Length::isPositive):
94005         (WebCore::Length::isNegative):
94006         (WebCore::Length::isAuto):
94007         (WebCore::Length::isRelative):
94008         (WebCore::Length::isPercent):
94009         (WebCore::Length::isFixed):
94010         (WebCore::Length::isStatic):
94011         (WebCore::Length::isIntrinsicOrAuto):
94012         (WebCore::Length::blend):
94013         (WebCore::LengthBox::LengthBox):
94014         (WebCore::LengthBox::operator=):
94015         (WebCore::LengthBox::operator==):
94016         (WebCore::LengthBox::operator!=):
94017         (WebCore::LengthBox::nonZero):
94018         (WebCore::LengthSize::LengthSize):
94019         * rendering/style/RenderStyle.h:
94020
94021 2008-08-28  David Hyatt  <hyatt@apple.com>
94022
94023         Reviewed by Darin
94024
94025         https://bugs.webkit.org/show_bug.cgi?id=18091
94026
94027         font-size should be animatable using -webkit-transition.
94028
94029         * page/AnimationController.cpp:
94030         (WebCore::AnimationControllerPrivate::ensurePropertyMap):
94031         * rendering/style/RenderStyle.h:
94032         (WebCore::RenderStyle::setFontSize):
94033
94034 2008-08-28  Brad Garcia  <bgarcia@google.com>
94035
94036         Reviewed by Dan Bernstein.
94037
94038         https://bugs.webkit.org/show_bug.cgi?id=20549
94039         Correctly determine when cursor is over a resizable border within
94040         a nested frameset.
94041
94042         * rendering/RenderFrameSet.cpp:
94043         (WebCore::RenderFrameSet::canResizeRow):
94044         (WebCore::RenderFrameSet::canResizeColumn):
94045
94046 2008-08-28  Simon Fraser  <simon.fraser@apple.com>
94047
94048         Reviewed by Eric Seidel
94049
94050         Add RuleTypes to CSSRule.idl for keyframes and keyframe rules.
94051         https://bugs.webkit.org/show_bug.cgi?id=20552
94052
94053         Test: animations/animation-css-rule-types.html
94054
94055         * css/CSSRule.idl:
94056
94057 2008-08-28  Anders Carlsson  <andersca@apple.com>
94058
94059         Reviewed by Kevin and Darin.
94060
94061         <rdar://problem/6182541>
94062         https://bugs.webkit.org/show_bug.cgi?id=20202
94063         Missing http status line from the http headers.
94064
94065         Add a status line to the header string.
94066
94067         * plugins/PluginStream.cpp:
94068         (WebCore::PluginStream::startStream):
94069
94070 2008-08-28  Holger Hans Peter Freyther  <zecke@selfish.org>
94071
94072         Rubber-stamped by Darin Adler.
94073
94074         https://bugs.webkit.org/show_bug.cgi?id=17261
94075
94076         Make it possible to theme the default Url icon and enable this for
94077         the Qt port. To have a minimal usage of #ifdef in the code the setting
94078         of the icon was moved to a new method which comes in two flavors.
94079
94080         * loader/icon/IconDatabase.cpp:
94081         (WebCore::loadDefaultIconRecord): Load or set the default icon
94082         (WebCore::IconDatabase::defaultIcon):
94083
94084 2008-08-28  Holger Hans Peter Freyther <zecke@selfish.org>
94085
94086         Unreviewed compile fix
94087
94088         * platform/graphics/qt/GraphicsContextQt.cpp: Remove redefinitions
94089
94090 2008-08-28  Adam Roben  <aroben@apple.com>
94091
94092         Windows (and others?) build fix
94093
94094         * page/Chrome.cpp: Added a missing #include.
94095         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer): Fixed typo.
94096
94097 2008-08-27  Eric Seidel  <eric@webkit.org>
94098
94099         Reviewed by Oliver Hunt.
94100
94101         Qt and Cairo support from krit (and blind stab @ wx compile support)
94102         https://bugs.webkit.org/show_bug.cgi?id=20373
94103
94104         * platform/graphics/cairo/GraphicsContextCairo.cpp:
94105         (WebCore::GraphicsContext::fillPath):
94106         (WebCore::GraphicsContext::strokePath):
94107         (WebCore::GraphicsContext::drawPath):
94108         (WebCore::GraphicsContext::fillRect):
94109         (WebCore::GraphicsContext::setPlatformFillColor):
94110         (WebCore::GraphicsContext::setPlatformStrokeColor):
94111         (WebCore::GraphicsContext::setPlatformStrokeStyle):
94112         (WebCore::GraphicsContext::strokeRect):
94113         (WebCore::GraphicsContext::setImageInterpolationQuality):
94114         (WebCore::GraphicsContext::imageInterpolationQuality):
94115         (WebCore::GraphicsContext::setPlatformFillPattern):
94116         (WebCore::GraphicsContext::setPlatformStrokePattern):
94117         (WebCore::GraphicsContext::setPlatformFillGradient):
94118         (WebCore::GraphicsContext::setPlatformStrokeGradient):
94119         * platform/graphics/qt/GraphicsContextQt.cpp:
94120         (WebCore::GraphicsContext::fillPath):
94121         (WebCore::GraphicsContext::strokePath):
94122         (WebCore::GraphicsContext::fillRect):
94123         (WebCore::GraphicsContext::strokeRect):
94124         (WebCore::GraphicsContext::clipToImageBuffer):
94125         (WebCore::GraphicsContext::setPlatformFillPattern):
94126         (WebCore::GraphicsContext::setPlatformStrokePattern):
94127         (WebCore::GraphicsContext::setPlatformFillGradient):
94128         (WebCore::GraphicsContext::setPlatformStrokeGradient):
94129         (WebCore::GraphicsContext::setImageInterpolationQuality):
94130         (WebCore::GraphicsContext::imageInterpolationQuality):
94131         * platform/graphics/wx/GraphicsContextWx.cpp:
94132         (WebCore::GraphicsContext::clipToImageBuffer):
94133         (WebCore::GraphicsContext::setImageInterpolationQuality):
94134         (WebCore::GraphicsContext::imageInterpolationQuality):
94135         (WebCore::GraphicsContext::fillPath):
94136         (WebCore::GraphicsContext::strokePath):
94137         (WebCore::GraphicsContext::drawPath):
94138         (WebCore::GraphicsContext::fillRect):
94139         (WebCore::GraphicsContext::setPlatformFillPattern):
94140         (WebCore::GraphicsContext::setPlatformStrokePattern):
94141         (WebCore::GraphicsContext::setPlatformFillGradient):
94142
94143 2008-08-27  Eric Seidel  <eric@webkit.org>
94144
94145         Reviewed by Oliver Hunt.
94146
94147         Add stroke/fill Gradient and Pattern support to GraphicsContext and update <canvas> to use it.
94148         https://bugs.webkit.org/show_bug.cgi?id=20373
94149
94150         Changed pattern() to canvasPattern() on CanvasStyle to match canvasGradient()
94151
94152         Made Generator (aka Gradient) RefCounted so that GraphicsContext didn't
94153         have to store large Gradient objects in the GraphicsContextState
94154
94155         Made Pattern RefCounted for the same reason.
94156
94157         Many updates to GraphicsContext to support easier drawing with
94158         Patterns and Gradients.
94159
94160         * WebCore.xcodeproj/project.pbxproj: Add pre-existing GraphicsContextPrivate.h
94161         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
94162         (WebCore::toJS):
94163         * css/CSSGradientValue.cpp:
94164         (WebCore::CSSGradientValue::createGradient):
94165         * css/CSSGradientValue.h:
94166         * html/CanvasGradient.cpp:
94167         (WebCore::CanvasGradient::CanvasGradient):
94168         * html/CanvasGradient.h:
94169         (WebCore::CanvasGradient::gradient):
94170         (WebCore::CanvasGradient::addColorStop):
94171         (WebCore::CanvasGradient::getColor):
94172         * html/CanvasPattern.cpp:
94173         * html/CanvasPattern.h:
94174         (WebCore::CanvasPattern::pattern):
94175         (WebCore::CanvasPattern::originClean):
94176         * html/CanvasRenderingContext2D.cpp:
94177         (WebCore::CanvasRenderingContext2D::State::State):
94178         (WebCore::CanvasRenderingContext2D::setStrokeStyle):
94179         (WebCore::CanvasRenderingContext2D::setFillStyle):
94180         (WebCore::CanvasRenderingContext2D::fill):
94181         (WebCore::CanvasRenderingContext2D::stroke):
94182         (WebCore::CanvasRenderingContext2D::fillRect):
94183         (WebCore::CanvasRenderingContext2D::strokeRect):
94184         * html/CanvasRenderingContext2D.h:
94185         * html/CanvasStyle.cpp:
94186         (WebCore::CanvasStyle::applyStrokeColor):
94187         (WebCore::CanvasStyle::applyFillColor):
94188         * html/CanvasStyle.h:
94189         * platform/graphics/GeneratedImage.h:
94190         (WebCore::GeneratedImage::GeneratedImage):
94191         * platform/graphics/Generator.h:
94192         * platform/graphics/Gradient.h:
94193         (WebCore::Gradient::create):
94194         * platform/graphics/GraphicsContext.cpp:
94195         (WebCore::GraphicsContext::fillRule):
94196         (WebCore::GraphicsContext::setFillRule):
94197         (WebCore::GraphicsContext::setStrokePattern):
94198         (WebCore::GraphicsContext::setFillPattern):
94199         (WebCore::GraphicsContext::setStrokeGradient):
94200         (WebCore::GraphicsContext::setFillGradient):
94201         * platform/graphics/GraphicsContext.h:
94202         * platform/graphics/GraphicsContextPrivate.h:
94203         (WebCore::):
94204         (WebCore::GraphicsContextState::GraphicsContextState):
94205         * platform/graphics/GraphicsTypes.h:
94206         * platform/graphics/Path.h:
94207         * platform/graphics/Pattern.h:
94208         (WebCore::Pattern::create):
94209         (WebCore::Pattern::tileImage):
94210         * platform/graphics/cg/GraphicsContextCG.cpp:
94211         (WebCore::GraphicsContext::drawRect):
94212         (WebCore::GraphicsContext::drawEllipse):
94213         (WebCore::GraphicsContext::drawConvexPolygon):
94214         (WebCore::calculateDrawingMode):
94215         (WebCore::GraphicsContext::drawPath):
94216         (WebCore::fillPathWithFillRule):
94217         (WebCore::GraphicsContext::fillPath):
94218         (WebCore::GraphicsContext::strokePath):
94219         (WebCore::GraphicsContext::fillRect):
94220         (WebCore::GraphicsContext::fillRoundedRect):
94221         (WebCore::GraphicsContext::setPlatformStrokePattern):
94222         (WebCore::GraphicsContext::setPlatformFillPattern):
94223         (WebCore::GraphicsContext::setPlatformStrokeGradient):
94224         (WebCore::GraphicsContext::setPlatformFillGradient):
94225
94226 2008-08-20  Eric Seidel  <eric@webkit.org>
94227
94228         Reviewed by Darin and Alexey.
94229
94230         Close a leak of PausedTimeouts if the JavaScriptDebugServer was destroyed
94231         with timeouts paused.
94232         https://bugs.webkit.org/show_bug.cgi?id=20469
94233
94234         I attempted to clean up the memory management of PausedTimeouts, I'm not
94235         sure the solution I came up with is "cleaner", but it's in some ways
94236         "safer", since it no longer uses raw pointers and manual new/delete.
94237
94238         This also now prevents CachedPage from needlessly creating Window
94239         objects when caching pages which didn't already have one. :)
94240
94241         I also made Chrome.cpp no longer depend on the JavaScript bindings
94242         (aka JSDOMWindowBase.h), since there was no real reason for it to.
94243
94244         * bindings/js/JSDOMWindowBase.cpp:
94245         (WebCore::JSDOMWindowBase::pauseTimeouts):
94246         (WebCore::JSDOMWindowBase::resumeTimeouts):
94247         * bindings/js/JSDOMWindowBase.h:
94248         * bindings/js/ScriptController.cpp:
94249         (WebCore::ScriptController::pauseTimeouts):
94250         (WebCore::ScriptController::resumeTimeouts):
94251         * bindings/js/ScriptController.h:
94252         * history/CachedPage.cpp:
94253         (WebCore::CachedPage::CachedPage):
94254         (WebCore::CachedPage::restore):
94255         * page/Chrome.cpp:
94256         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
94257         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
94258         * page/JavaScriptDebugServer.cpp:
94259         (WebCore::JavaScriptDebugServer::~JavaScriptDebugServer):
94260         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
94261
94262 2008-08-27  Holger Hans Peter Freyther <zecke@selfish.org>
94263
94264         Unreviewed compile fix
94265
94266         Add the stub for the Qt port.
94267
94268         * WebCore.pro:
94269         * page/qt/AccessibilityObjectQt.cpp: Added.
94270         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
94271
94272 2008-08-27  Alp Toker  <alp@nuanti.com>
94273
94274         Reviewed by Eric.
94275
94276         https://bugs.webkit.org/show_bug.cgi?id=20551
94277         [GTK] search popup crash
94278
94279         * platform/gtk/SearchPopupMenuGtk.cpp:
94280         (WebCore::SearchPopupMenu::enabled):
94281         Fix a search popup crasher by disabling the history popup since we
94282         don't support this feature yet in the GTK+ port.
94283
94284 2008-08-27  Alp Toker  <alp@nuanti.com>
94285
94286         Reviewed by Eric.
94287
94288         https://bugs.webkit.org/show_bug.cgi?id=20551
94289         [GTK] curl crashers
94290
94291         * platform/network/curl/ResourceHandleManager.cpp:
94292         (WebCore::ResourceHandleManager::startScheduledJobs):
94293         Remove the resource handle from the pending list before starting the
94294         job, not afterwards. Fixes crashers in the test suite.
94295
94296         Test: fast/dom/clientWidthAfterDocumentIsRemoved.html
94297         Test: fast/encoding/char-encoding.html
94298
94299 2008-08-27  Dirk Schulze  <vbs85@gmx.de>
94300
94301         Reviewed by eseidel.
94302
94303         Fix canvas drawImage to support composite operations.
94304         Composite had no effect on canvas elements like these:
94305         http://philip.html5.org/tests/canvas/suite/tests/index.2d.composite.canvas.html
94306
94307         [CAIRO] Canvas composite don't work on canvas-elements.
94308         https://bugs.webkit.org/show_bug.cgi?id=20548
94309
94310         * html/CanvasRenderingContext2D.cpp:
94311         (WebCore::CanvasRenderingContext2D::drawImage): pass the current composite operator to the drawImage call
94312
94313 2008-08-27  Mario Bensi  <mbensi@pleyo.com>
94314
94315         Reviewed by Eric Seidel.
94316
94317         Fix the data content of an image with a base64.
94318
94319         * platform/network/curl/ResourceHandleManager.cpp:
94320         (WebCore::parseDataUrl): Remove the String and use only the data
94321         Vector because the data.latin1().data() convert the data content and
94322         the image test ( https://bugs.webkit.org/attachment.cgi?id=21726 ) is
94323         not drawn correctly.
94324
94325 2008-08-27  Antti Koivisto  <antti@apple.com>
94326
94327         Reviewed by Eric Seidel.
94328
94329         Crash after OK in dialog box and reloading page in secure mode
94330         https://bugs.webkit.org/show_bug.cgi?id=20493
94331
94332         The new run loop spawned by a modal dialog causes a timer in the loader to run
94333         synchronously inside didFinishLoading() deleting "this" object.
94334
94335         Defer all WebCore timers when a modal dialog is up. They are not
94336         safe to execute.
94337
94338         * page/Chrome.cpp:
94339         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
94340         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
94341
94342 2008-08-27  Chris Marrin  <cmarrin@apple.com>
94343
94344         Reviewed by Dave Hyatt
94345
94346         Memory leaks when animating transforms
94347         https://bugs.webkit.org/show_bug.cgi?id=20532
94348
94349         * rendering/style/RenderStyle.cpp:
94350         (WebCore::ScaleTransformOperation::blend):
94351         (WebCore::RotateTransformOperation::blend):
94352         (WebCore::SkewTransformOperation::blend):
94353         (WebCore::TranslateTransformOperation::blend):
94354         (WebCore::MatrixTransformOperation::blend):
94355         * rendering/style/RenderStyle.h:
94356
94357 2008-08-27  Timothy Hatcher  <timothy@apple.com>
94358
94359         Add support for support for -webkit-appearance: default-button on the Mac platform.
94360
94361         <rdar://problem/6173530>
94362
94363         Reviewed by Dave Hyatt.
94364
94365         * WebCore.base.exp: Export new symbols.
94366         * platform/mac/WebCoreSystemInterface.h: Add wkAdvanceDefaultButtonPulseAnimation.
94367         * platform/mac/WebCoreSystemInterface.mm: Ditto.
94368         * rendering/RenderButton.cpp:
94369         (WebCore::RenderButton::RenderButton): Remove #if PLATFORM(WIN).
94370         (WebCore::RenderButton::setStyle): Ditto.
94371         * rendering/RenderButton.h: Ditto.
94372         * rendering/RenderThemeMac.mm:
94373         (WebCore::RenderThemeMac::adjustRepaintRect): Add a case for DefaultButtonAppearance.
94374         (WebCore::RenderThemeMac::setButtonCellState): Set the key equivalent to the return
94375         key if the button is default, otherwise reset the key equivalent.
94376         (WebCore::RenderThemeMac::paintButton): If the button is default call setDefaultButtonCell:
94377         on the window, then wkAdvanceDefaultButtonPulseAnimation before painting. Restore
94378         the window's previous default button cell when finished.
94379
94380 2008-08-26  David Hyatt  <hyatt@apple.com>
94381
94382         First cut at making form controls on OS X respect full page zoom.  There are lots of bugs.
94383
94384         Reviewed by weinig
94385
94386         Added fast/forms/zoomed-controls.html
94387
94388         * css/CSSStyleSelector.cpp:
94389         (WebCore::addIntrinsicMargins):
94390         * rendering/RenderSlider.cpp:
94391         (WebCore::RenderSlider::calcPrefWidths):
94392         * rendering/RenderThemeMac.h:
94393         * rendering/RenderThemeMac.mm:
94394         (WebCore::RenderThemeMac::adjustRepaintRect):
94395         (WebCore::RenderThemeMac::inflateRect):
94396         (WebCore::RenderThemeMac::baselinePosition):
94397         (WebCore::RenderThemeMac::setControlSize):
94398         (WebCore::RenderThemeMac::sizeForFont):
94399         (WebCore::RenderThemeMac::sizeForSystemFont):
94400         (WebCore::RenderThemeMac::setFontFromControlSize):
94401         (WebCore::RenderThemeMac::paintCheckbox):
94402         (WebCore::RenderThemeMac::setCheckboxCellState):
94403         (WebCore::RenderThemeMac::paintRadio):
94404         (WebCore::RenderThemeMac::setRadioCellState):
94405         (WebCore::RenderThemeMac::setButtonPaddingFromControlSize):
94406         (WebCore::RenderThemeMac::adjustButtonStyle):
94407         (WebCore::RenderThemeMac::setButtonCellState):
94408         (WebCore::RenderThemeMac::paintButton):
94409         (WebCore::RenderThemeMac::paintMenuList):
94410         (WebCore::RenderThemeMac::paintMenuListButton):
94411         (WebCore::RenderThemeMac::popupInternalPaddingLeft):
94412         (WebCore::RenderThemeMac::popupInternalPaddingRight):
94413         (WebCore::RenderThemeMac::popupInternalPaddingTop):
94414         (WebCore::RenderThemeMac::popupInternalPaddingBottom):
94415         (WebCore::RenderThemeMac::setPopupButtonCellState):
94416         (WebCore::RenderThemeMac::paintSliderTrack):
94417         (WebCore::RenderThemeMac::paintSliderThumb):
94418         (WebCore::RenderThemeMac::adjustSliderThumbSize):
94419         (WebCore::RenderThemeMac::paintSearchField):
94420         (WebCore::RenderThemeMac::adjustSearchFieldStyle):
94421         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
94422         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
94423
94424 2008-08-27  Brady Eidson  <beidson@apple.com>
94425
94426         Reviewed by Anders
94427
94428         <rdar://problem/6134133> - Crash when loading large movie as a standalone document
94429
94430         We hand off these loads to Quicktime which manages and spools the data itself, but we also continued
94431         to load and buffer the data for the movie in WebCore.  With large media files, this results in blowing
94432         away the virtual address space and a crash.
94433
94434         * loader/EmptyClients.h:
94435         (WebCore::EmptyFrameLoaderClient::pluginWillHandleLoadError):
94436         * loader/FrameLoaderClient.h:  Added client method to get platform specific error for
94437           "plugin will handle load"
94438
94439         * loader/MediaDocument.cpp:
94440         (WebCore::MediaTokenizer::createDocumentStructure): Tell the MainResourceLoader to not buffer data,
94441           and cancel the WebCore-managed load
94442         (WebCore::MediaTokenizer::writeRawData):
94443         (WebCore::MediaTokenizer::finish):
94444
94445 2008-08-26  Simon Fraser  <simon.fraser@apple.com>
94446
94447         Reviewed by Eric Seidel
94448
94449         Linear timing functions should have control points 0, 0, 1, 1.
94450         https://bugs.webkit.org/show_bug.cgi?id=20535
94451
94452         * css/CSSStyleSelector.cpp:
94453         (WebCore::CSSStyleSelector::mapAnimationTimingFunction):
94454         * rendering/style/RenderStyle.h:
94455
94456 2008-08-27  Adam Roben  <aroben@apple.com>
94457
94458         Windows build fix
94459
94460         * WebCore.vcproj/WebCore.vcproj: Fix file extension.
94461
94462 2008-08-26  Chris Fleizach  <cfleizach@apple.com>
94463
94464         Reviewed by Beth Dakin.
94465
94466         <rdar://problem/6069462> REGRESSION: webkit is returning flash objects as AXUnknown
94467
94468         Added platform-specific accessibilityIgnoreAttachment, which allows the platform
94469         to determine if an attachment is ignored through accessibility. Added equivalent
94470         methods in Gtk, Win and Mac
94471
94472         Test: accessibility/plugin.html
94473
94474         * GNUmakefile.am:
94475         * WebCore.vcproj/WebCore.vcproj:
94476         * WebCore.xcodeproj/project.pbxproj:
94477         * page/AccessibilityObject.h:
94478         * page/AccessibilityRenderObject.cpp:
94479         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
94480         * page/gtk/AccessibilityObjectAtk.cpp: Added.
94481         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
94482         * page/mac/AccessibilityObjectMac.mm: Added.
94483         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
94484         * page/mac/AccessibilityObjectWrapper.h:
94485         * page/win/AccessibilityObjectWin.cpp: Added.
94486         (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
94487
94488 2008-08-26  Chris Fleizach  <cfleizach@apple.com>
94489
94490         Reviewed by Beth Dakin.
94491
94492         <rdar://problem/5817770> can't bring up contextual menu for embedded objects in WebText
94493
94494         * page/mac/AccessibilityObjectWrapper.mm:
94495         (-[AccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
94496         (-[AccessibilityObjectWrapper accessibilityShowContextMenu]):
94497
94498 2008-08-26  Chris Fleizach  <cfleizach@apple.com>
94499
94500         Reviewed by Darin Adler.
94501
94502         <rdar://problem/6176924> CrashTracer: [USER] 4 crashes in Safari at com.apple.WebCore: WebCore::RenderTableSection::numColumns
94503
94504         Tests: accessibility/table-notbody.html
94505
94506         * page/AccessibilityTable.cpp:
94507         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
94508
94509 2008-08-26  Sam Weinig  <sam@webkit.org>
94510
94511         Reviewed by Beth Dakin.
94512
94513         Fix typo.
94514
94515         * dom/DOMCoreException.h:
94516
94517 2008-08-26  Sam Weinig  <sam@webkit.org>
94518
94519         Reviewed by Oliver Hunt.
94520
94521         Fix https://bugs.webkit.org/show_bug.cgi?id=20479
94522         <rdar://problem/6167660>
94523         Take image redirects into account when tainting the canvas.
94524
94525         Test: http/tests/security/canvas-remote-read-redirect-to-remote-image.html
94526
94527         * html/CanvasRenderingContext2D.cpp:
94528         (WebCore::CanvasRenderingContext2D::drawImage):
94529         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
94530
94531 2008-08-26  Sam Weinig  <sam@webkit.org>
94532
94533         Reviewed by Darin Adler.
94534
94535         Change canvas tainting logic to ask the image if it contains
94536         any resources outside of its own origin. Since there is no
94537         way to determine if SVG images contain any resources outside its
94538         origin, we always assume it does.
94539
94540         * html/CanvasRenderingContext2D.cpp:
94541         (WebCore::CanvasRenderingContext2D::drawImage):
94542         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
94543         * platform/graphics/BitmapImage.h:
94544         (WebCore::BitmapImage::hasSingleSecurityOrigin):
94545         * platform/graphics/GeneratedImage.h:
94546         (WebCore::GeneratedImage::hasSingleSecurityOrigin):
94547         * platform/graphics/Image.h:
94548         (WebCore::Image::hasSingleSecurityOrigin):
94549         * platform/graphics/cg/PDFDocumentImage.h:
94550         (WebCore::PDFDocumentImage::hasSingleSecurityOrigin):
94551         * svg/graphics/SVGImage.h:
94552
94553 2008-08-26  Maxime Britto  <britto@apple.com>
94554
94555         Reviewed by Adele.
94556
94557         <rdar://6159244> Pan-scrolling does not work on particular sites (starmagazine.com, nytimes.com)
94558         This patch fixes the issues and modify the behavior of the panscroll by allowing it to jump to a parent layer when it reaches the end of its scrollable area.
94559         This is matching the behavior of the mouse wheel when trying to scroll in a smaller layer of the page (div, textarea, ...) and when we reach the edge and keep scrolling then the whole page scrolls.
94560
94561         * page/EventHandler.cpp:
94562         (WebCore::EventHandler::updateAutoscrollRenderer): if we switch to the parent layer to do the scroll we want to change the renderer for the panning
94563         * page/EventHandler.h:
94564         * rendering/RenderLayer.cpp:
94565         (WebCore::RenderLayer::panScrollFromPoint): now calls the scrollByRecursively method when it has computed the xDelta and yDelta
94566         (WebCore::RenderLayer::scrollByRecursively): try to scroll the current layer by the xDelta and yDelta provided, if it can't it ask its parent layer to do so.
94567         * rendering/RenderLayer.h:
94568         * rendering/RenderObject.cpp:
94569         (WebCore::RenderObject::canBeProgramaticallyScrolled): a RenderObject must have a RenderLayer to be programatically scrolled
94570         (WebCore::RenderObject::autoscroll): No need to check for the layer anymore since we verify it's present in the upmentionned method
94571         (WebCore::RenderObject::panScroll): No need to check for the layer anymore too.
94572
94573 2008-08-25  Julien Chaffraix  <jchaffraix@webkit.org>
94574
94575         Reviewed by Darin Adler.
94576
94577         Bug 20247: setAttributeNode() does not work when attribute name has a capital letter in it
94578         https://bugs.webkit.org/show_bug.cgi?id=20247
94579
94580         <rdar://problem/6118218>
94581
94582         Add a boolean parameter to getAttributeItem to choose between case sensitive and case insensitive
94583         check. This keeps the behaviour for setAttribute / hasAttribute (case sensitive) and getAttribute
94584         (case insensitive for HTML elements).
94585
94586         Test: fast/dom/Element/getAttribute-check-case-sensitivity.html
94587
94588         * dom/Element.cpp:
94589         (WebCore::Element::getAttribute):
94590         * dom/NamedAttrMap.cpp:
94591         (WebCore::NamedAttrMap::getNamedItem):
94592         (WebCore::NamedAttrMap::getAttributeItem):
94593         * dom/NamedAttrMap.h:
94594
94595 2008-08-25  Sam Weinig  <sam@webkit.org>
94596
94597         Reviewed by Oliver Hunt.
94598
94599         Fix for https://bugs.webkit.org/show_bug.cgi?id=20514
94600         <rdar://problem/6174096>
94601         Treat SVG images as dirty when drawing to a canvas.
94602
94603         Test: http/tests/security/canvas-remote-read-svg-image.html
94604
94605         * html/CanvasRenderingContext2D.cpp:
94606         (WebCore::CanvasRenderingContext2D::drawImage):
94607         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
94608         * platform/graphics/Image.h:
94609         (WebCore::Image::isSVGImage):
94610         * svg/graphics/SVGImage.h:
94611         (WebCore::SVGImage::isSVGImage):
94612
94613 2008-08-25  Sam Weinig  <sam@webkit.org>
94614
94615         Reviewed by Mark Rowe.
94616
94617         Fix https://bugs.webkit.org/show_bug.cgi?id=20377
94618         Leak in XMLHttpRequest.
94619
94620         * xml/XMLHttpRequest.cpp:
94621         (WebCore::XMLHttpRequest::makeCrossSiteAccessRequestWithPreflight):
94622
94623 2008-08-25  Brady Eidson  <beidson@apple.com>
94624
94625         Reviewed by Anders
94626
94627         Speculative fix for <rdar://problem/6173217>
94628
94629         Moves the "clearArchivedResources()" call to exactly where it used to be in the old version of WebArchive code.
94630         Also, adds a null check for m_documentLoader since DocumentLoader::stopLoading() can end up clearing it, rendering
94631         the first null check invalid.
94632
94633         * loader/FrameLoader.cpp:
94634         (WebCore::FrameLoader::stopAllLoaders):
94635
94636
94637 2008-08-25  Kevin McCullough  <kmccullough@apple.com>
94638
94639         Reviewed by Tim.
94640
94641         <rdar://problem/6157711> Heavy/Tree view selector is not grayed out if
94642         there is no profile, can cause crash
94643
94644         * page/inspector/ProfilesPanel.js:
94645
94646 2008-08-25  Dean Jackson  <dino@apple.com>
94647
94648         Reviewed by Dave Hyatt
94649
94650         Make sure 'inherit' is handled by transition property.
94651         https://bugs.webkit.org/show_bug.cgi?id=20513
94652
94653         Test: transitions/inherit.html
94654         Test: transitions/inherit-other-props.html
94655
94656         * css/CSSStyleSelector.cpp:
94657           fix macro to check existence of list before getting size
94658
94659 2008-08-25  Anders Carlsson  <andersca@apple.com>
94660
94661         Reviewed by Mark.
94662
94663         <rdar://problem/6149787> crash @ com.apple.JavaScriptCore: WTF::callOnMainThread + 37.
94664
94665         Initialize threading in the call to WebCoreObjCFinalizeOnMainThread. We currently assume
94666         (safely) that any class that needs finalization on the main thread will also need to be deallocated
94667         on the main thread, and calling initializeThreading from WebCoreObjCFinalizeOnMainThread instead of
94668         calling it from WebCoreObjCScheduleDeallocateOnMainThread seems safer.
94669
94670         * platform/mac/WebCoreObjCExtras.c:
94671         (WebCoreObjCFinalizeOnMainThread):
94672
94673 2008-08-25  Antti Koivisto  <antti@apple.com>
94674
94675         Reviewed by Dan Bernstein.
94676
94677         Rename CachedResource::referenced() to CachedResource::hasClients() to
94678         match previous ref() -> addClient() rename.
94679
94680         * loader/Cache.cpp:
94681         (WebCore::Cache::pruneLiveResources):
94682         (WebCore::Cache::pruneDeadResources):
94683         (WebCore::Cache::remove):
94684         (WebCore::Cache::getStatistics):
94685         (WebCore::Cache::dumpLRULists):
94686         * loader/CachedResource.cpp:
94687         (WebCore::CachedResource::addClient):
94688         (WebCore::CachedResource::removeClient):
94689         (WebCore::CachedResource::setDecodedSize):
94690         (WebCore::CachedResource::setEncodedSize):
94691         * loader/CachedResource.h:
94692         (WebCore::CachedResource::hasClients):
94693         (WebCore::CachedResource::canDelete):
94694
94695 2008-08-25  Anthony Ricaud  <rik24d@gmail.com>
94696
94697         Add a missing Inspector localized string for "other".
94698
94699         https://bugs.webkit.org/show_bug.cgi?id=20509
94700
94701         Reviewed by Tim Hatcher.
94702
94703         * English.lproj/localizedStrings.js:
94704
94705 2008-08-22  Kevin McCullough  <kmccullough@apple.com>
94706
94707         Reviewed by Geoff, Mark and Tim.
94708
94709         <rdar://problem/6150623> JSProfiler: It would be nice if the profiles
94710         in the console said what file and line number they came from
94711         - Lay the foundation for getting line numbers and other data from the
94712         JavaScript engine.
94713
94714         * ForwardingHeaders/VM: Added.
94715         * ForwardingHeaders/VM/Machine.h: Added.
94716         * page/Console.cpp: Gather the line number and file information when
94717         profileEnd has been called, but don't use it until didFinishProfiling is
94718         called.  We won't need to wait once we remove the profiler "zombie" mode
94719         which this patch helps pave the foundation for.
94720         (WebCore::Console::Console):
94721         (WebCore::Console::profileEnd):
94722         (WebCore::Console::finishedProfiling):
94723         * page/Console.h:
94724         * page/InspectorController.cpp: Modify calls to
94725         addProfileMessageToConsole to satisfy the new arguments it takes.
94726         (WebCore::InspectorController::finishedProfiling):
94727         (WebCore::InspectorController::addProfile):
94728         (WebCore::InspectorController::addProfileMessageToConsole):
94729         (WebCore::InspectorController::finishedProfiling):
94730         * page/InspectorController.h:
94731
94732 2008-08-25  Holger Hans Peter Freyther  <zecke@selfish.org>
94733
94734         Reviewed by Simon.
94735
94736         [inspector] Update the WebKit.qrc Qt resources file
94737         Catchup with the changes in the directory.
94738
94739         * page/inspector/WebKit.qrc:
94740
94741 2008-08-25  Dirk Schulze  <vbs85@gmx.de>
94742
94743         Reviewed by Simon.
94744
94745         Transformed the radian to degree, to get rotate()
94746         in canvas work as expected.
94747
94748         [Qt] Canvas.rotate() doesn't work
94749         https://bugs.webkit.org/show_bug.cgi?id=20496
94750
94751         * platform/graphics/qt/GraphicsContextQt.cpp:
94752         (WebCore::GraphicsContext::rotate):
94753
94754 2008-08-24  Steve Falkenburg  <sfalken@apple.com>
94755
94756         Add a "last chance" WM_TIMER to the Windows shared timer.
94757
94758         The last chance timer fires every 5 seconds to run any lost WM_TIMER based timers.
94759         Failure to fire a timer is fatal to the cross-platform Timer code, since it won't re-schedule
94760         timers if a timer with an earlier expiration is already pending. This results in no timers
94761         firing from that point on.
94762
94763         We lose WM_TIMER messages occasionally (in the neighborhood of 1 per hour) probably due to a
94764         buggy window message hook.
94765
94766         This timer will start when the first WM_TIMER is scheduled, and will
94767         fire every 5 seconds thereafter, causing any lost timers to be fired.
94768
94769         Found this via one of its symptoms: leaking WebFrames. The fix prevents timers from stalling
94770         and prevents the WebFrame leak.
94771
94772         Reviewed by Darin Adler, Geoff Garen.
94773
94774         * platform/win/SharedTimerWin.cpp:
94775         (WebCore::):
94776         (WebCore::TimerWindowWndProc):
94777         (WebCore::setSharedTimerFireTime):
94778
94779 2008-08-24  Dan Bernstein  <mitz@apple.com>
94780
94781         Reviewed by Darin Adler.
94782
94783         - fix <rdar://problem/6065547> REGRESSION (r34879): "Subject" in unread emails in Yahoo mail is not shown in bold
94784
94785         Test: fast/css/font-property-priority.html
94786
94787         * css/CSSParser.cpp:
94788         (WebCore::CSSParser::parseValue): Changed to pass the 'important' flag
94789         to the font-property-parsing functions.
94790         (WebCore::CSSParser::parseFontStyle): Added an 'important' argument and
94791         changed to use it rather than the m_important member.
94792         (WebCore::CSSParser::parseFontVariant): Ditto.
94793         (WebCore::CSSParser::parseFontWeight): Ditto.
94794         * css/CSSParser.h:
94795
94796 2008-08-24  Timothy Hatcher  <timothy@apple.com>
94797
94798         Fixes a bug where the Inspector's UI would not animate or
94799         fully function because JavaScript timeouts, intervals and
94800         CSS animation timers where not firing while paused at a
94801         a breakpoint in the inspected page.
94802
94803         https://bugs.webkit.org/show_bug.cgi?id=20042
94804
94805         Reviewed by Darin Adler.
94806
94807         Test: manual-tests/inspector/forzen-ui-while-paused.html
94808
94809         * page/JavaScriptDebugServer.cpp:
94810         (WebCore::JavaScriptDebugServer::pauseIfNeeded):
94811         Add a call to TimerBase::fireTimersInNestedEventLoop before
94812         spinning the EventLoop.
94813
94814 2008-08-24  Rob Buis  <buis@kde.org>
94815
94816         Reviewed by Sam Weinig.
94817
94818         https://bugs.webkit.org/show_bug.cgi?id=20324
94819         A change in SVG Glyph wont show up
94820
94821         Invalidate the glyph cache when the d attribute is set.
94822
94823         Test: svg/custom/glyph-setting-d-attribute.svg
94824
94825         * svg/SVGGlyphElement.cpp:
94826         (WebCore::SVGGlyphElement::invalidateGlyphCache):
94827         (WebCore::SVGGlyphElement::parseMappedAttribute):
94828         (WebCore::SVGGlyphElement::insertedIntoDocument):
94829         (WebCore::SVGGlyphElement::removedFromDocument):
94830         * svg/SVGGlyphElement.h:
94831
94832 2008-08-24  Dan Bernstein  <mitz@apple.com>
94833
94834         Reviewed by Sam Weinig.
94835
94836         - fix https://bugs.webkit.org/show_bug.cgi?id=13864
94837           <rdar://problem/5451470> REGRESSION: Uninitialized value in RenderBlock::calcInlinePrefWidths()
94838
94839         * rendering/RenderText.cpp:
94840         (WebCore::RenderText::trimmedPrefWidths): Moved the assignment to
94841         beginWS and endWS before the early return to ensure that they are
94842         initialized in that case.
94843
94844 2008-08-23  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
94845
94846         Rubber-stamped by Mark Rowe.
94847
94848         Remove modelines.
94849
94850         * WebCore.pro:
94851         * bridge/testbindings.cpp:
94852         * dom/DocPtr.h:
94853         * loader/SubstituteData.h:
94854         * page/Chrome.cpp:
94855         * page/Chrome.h:
94856         * page/ChromeClient.h:
94857         * page/Frame.h:
94858         * page/FrameLoadRequest.h:
94859         * page/FrameTree.cpp:
94860         * page/FrameTree.h:
94861         * page/Page.h:
94862         * page/mac/ChromeMac.mm:
94863         * platform/network/HTTPHeaderMap.h:
94864         * platform/network/ResourceErrorBase.cpp:
94865         * platform/network/ResourceErrorBase.h:
94866         * platform/network/ResourceHandleInternal.h:
94867         * platform/network/ResourceRequestBase.cpp:
94868         * platform/network/ResourceRequestBase.h:
94869         * platform/network/ResourceResponseBase.cpp:
94870         * platform/network/ResourceResponseBase.h:
94871         * platform/network/cf/ResourceError.h:
94872         * platform/network/cf/ResourceRequest.h:
94873         * platform/network/cf/ResourceRequestCFNet.h:
94874         * platform/network/cf/ResourceResponse.h:
94875         * platform/network/cf/ResourceResponseCFNet.h:
94876         * platform/network/curl/ResourceError.h:
94877         * platform/network/curl/ResourceRequest.h:
94878         * platform/network/curl/ResourceResponse.h:
94879         * platform/network/mac/ResourceError.h:
94880         * platform/network/mac/ResourceErrorMac.mm:
94881         * platform/network/mac/ResourceRequest.h:
94882         * platform/network/mac/ResourceRequestMac.mm:
94883         * platform/network/mac/ResourceResponse.h:
94884         * platform/network/mac/ResourceResponseMac.mm:
94885         * platform/network/qt/ResourceError.h:
94886         * platform/network/qt/ResourceRequest.h:
94887         * platform/network/qt/ResourceResponse.h:
94888         * platform/network/soup/CookieJarSoup.cpp:
94889         * platform/network/soup/ResourceError.h:
94890         * platform/network/soup/ResourceRequest.h:
94891         * platform/network/soup/ResourceResponse.h:
94892
94893 2008-08-23  Dan Bernstein  <mitz@apple.com>
94894
94895         Reviewed by Dave Hyatt.
94896
94897         - fix <rdar://problem/6065143> Reflowed image in first line of table doesn't affect baseline
94898
94899         Test: fast/table/vertical-align-baseline.html
94900
94901         * rendering/RenderTable.cpp:
94902         (WebCore::RenderTable::getBaselineOfFirstLineBox): Added. Returns the
94903         baseline of the first table row, if there is one, -1 otherwise.
94904         * rendering/RenderTable.h:
94905         * rendering/RenderTableCell.cpp:
94906         (WebCore::RenderTableCell::baselinePosition): Changed to follow the
94907         CSS2.1 definition of the baseline of a table cell.
94908         * rendering/RenderTableSection.cpp:
94909         (WebCore::RenderTableSection::getBaselineOfFirstLineBox): Added. Returns
94910         the baseline of the first row in the section.
94911         * rendering/RenderTableSection.h:
94912
94913 2008-08-18  Jon Honeycutt  <jhoneycutt@apple.com>
94914
94915         Add SPI to make a Windows WebView transparent.
94916
94917         Reviewed by Dan Bernstein.
94918
94919         * platform/graphics/GraphicsContext.h: Add a parameter, hasAlpha, that
94920         determines whether the created context has an alpha channel.
94921         * platform/graphics/win/GraphicsContextCGWin.cpp:
94922         (WebCore::CGContextWithHDC):
94923
94924 2008-08-22  Timothy Hatcher  <timothy@apple.com>
94925
94926         Rolls out r35834 because it caused a regression in the Inspector's
94927         Console where some expressions always threw a syntax error.
94928
94929         https://bugs.webkit.org/show_bug.cgi?id=20487
94930
94931         * page/inspector/Console.js:
94932         (Console.prototype._evalInInspectedWindow): Removes parenthesis
94933         around the expression.
94934
94935 2008-08-22  Timothy Hatcher  <timothy@apple.com>
94936
94937         Makes getStyleProperty return a value for the overflow property
94938         when overflow-x and overflow-y are equal.
94939
94940         https://bugs.webkit.org/show_bug.cgi?id=20485
94941
94942         Reviewed by Dan Bernstein.
94943
94944         Test: fast/css/overflow-property.html
94945
94946         * css/CSSMutableStyleDeclaration.cpp:
94947         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
94948
94949 2008-08-22  Timothy Hatcher  <timothy@apple.com>
94950
94951         Fixes a bug where while editing in the Inspector the
94952         sidebar scroll position would jump to the top.
94953
94954         https://bugs.webkit.org/show_bug.cgi?id=20484
94955
94956         Reviewed by Darin Adler.
94957
94958         * page/inspector/treeoutline.js:
94959         (TreeOutline._removeChildren): Remove the offsetTop call that
94960         was forcing a layout, since layout causes scroll positions
94961         to be clamped to the new scrollHeight/Width. Layout will happen
94962         normally when needed.
94963
94964 2008-08-22  Kevin Ollivier  <kevino@theolliviers.com>
94965
94966         wx build fix. Add AccessibilityTable sources.
94967
94968         * WebCoreSources.bkl:
94969
94970 2008-08-21  Dan Bernstein  <mitz@apple.com>
94971
94972         Reviewed by Jon Honeycutt and Alexey Proskuryakov.
94973
94974         - fix <rdar://problem/6162701> WebKit should correct Geeza Pro's font metrics
94975
94976         Test: platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment.html
94977
94978         * platform/graphics/mac/SimpleFontDataMac.mm:
94979         (WebCore::SimpleFontData::platformInit): Add 8% to Geeza Pro's reported
94980         ascent and 100% to its reported descent.
94981
94982 2008-08-21  Kalle Vahlman  <kalle.vahlman@movial.com>
94983
94984         Reviewed by Darin Adler.
94985
94986         https://bugs.webkit.org/show_bug.cgi?id=20267
94987         [GTK] Crash on some pages due to a plugin
94988
94989         Fix handling of badly formatted and empty plugin mime descriptions
94990
94991         * plugins/gtk/PluginPackageGtk.cpp:
94992         (WebCore::PluginPackage::fetchInfo):
94993
94994 2008-08-21  Kevin Watters  <kevinwatters@gmail.com>
94995
94996         Reviewed by Darin Adler.
94997
94998         Follow other ports (and IE) in ImageSourceWx.cpp never to return an
94999         animated GIF frame duration of less than 50ms.
95000
95001         * platform/graphics/wx/ImageSourceWx.cpp:
95002         (WebCore::ImageSource::frameDurationAtIndex):
95003
95004 2008-08-21  Maxime Britto  <britto@apple.com>
95005
95006         Reviewed by Kevin McCullough.
95007
95008         Test: fast/events/autoscroll-nonscrollable-iframe-in-scrollable-div.html
95009         https://bugs.webkit.org/show_bug.cgi?id=20451
95010
95011         rdar://problem/6166435 Inspector doesn't auto scroll when selecting text (20451)
95012         When we climb up the rendering tree looking for a scrollable renderer, we need to be able to jump outside of an iframe.
95013         This way we can see if what is embedding the iframe can be scrolled even if the iframe content can't.
95014
95015         * page/EventHandler.cpp:
95016         (WebCore::EventHandler::handleMouseDraggedEvent): when we reach the document node and it can't be scrolled we set the next parent as the document's owner element if it exists.
95017
95018         (WebCore::EventHandler::handleMousePressEvent): ditto
95019
95020 2008-08-21  Anthony Ricaud  <rik24d@gmail.com>
95021
95022         Small optimization for when the dividers in the Inspector's
95023         Resources panel are updated.
95024
95025         Reviewed by Tim Hatcher.
95026
95027         * page/inspector/ResourcesPanel.js:
95028         (WebInsector.ResourcesPanel.prototype._updateGraphDividersIfNeeded):
95029         Combind a for loop and clone the divider element.
95030
95031 2008-08-21  Chris Marrin  <cmarrin@apple.com>
95032
95033         Allow 0 (without units) for Time eg. duration
95034         Fix for https://bugs.webkit.org/show_bug.cgi?id=20467
95035
95036         Reviewed by Dave Hyatt.
95037
95038         Test: css1/units/zero-duration-without-units.html
95039
95040         * css/CSSParser.cpp:
95041         (WebCore::CSSParser::validUnit):
95042
95043 2008-08-21  Timothy Hatcher  <timothy@apple.com>
95044
95045         Make deleting all text while editing a DOM attribute in
95046         the Inspector delete the attribute. This also fixes
95047         an exception that would happen before.
95048
95049         https://bugs.webkit.org/show_bug.cgi?id=20472
95050
95051         Reviewed by Kevin McCullough.
95052
95053         * page/inspector/ElementsPanel.js:
95054         (WebInspector.DOMNodeTreeElement.prototype._attributeEditingCommitted):
95055         Don't check for hasAttributes on the parseElement, continuing
95056         through the function will correctly remove the attribute.
95057         If the parseElement is null, call _editingCancelled not
95058         editingCancelled, this fixes an exception.
95059
95060 2008-08-21  Timothy Hatcher  <timothy@apple.com>
95061
95062         Update the Inspector's Metrics pane when editing in
95063         the Styles pane. This makes sure the metrics shown
95064         always match what the Styles pane shows.
95065
95066         https://bugs.webkit.org/show_bug.cgi?id=20470
95067
95068         Reviewed by Kevin McCullough.
95069
95070         * page/inspector/ElementsPanel.js:
95071         (WebInspector.ElementsPanel): Add event listeners for
95072         the "style edited" and "style property toggled" events,
95073         so the Metrics pane is updated.
95074         (WebInspector.ElementsPanel.prototype._stylesPaneEdited):
95075         Update the Metrics pane.
95076         * page/inspector/StylesSidebarPane.js:
95077         (WebInspector.StylePropertyTreeElement.prototype.toggleEnabled):
95078         Dispatch the "style property toggled" event.
95079         (WebInspector.StylePropertyTreeElement.prototype.editingCancelled):
95080         Dispatch the "style edited" event when the CSS text is restored.
95081         (WebInspector.StylePropertyTreeElement.prototype.applyStyleText):
95082         Dispatch the "style edited" event.
95083
95084 2008-08-21  Timothy Hatcher  <timothy@apple.com>
95085
95086         Make the Inspector's Metrics sidebar pane editable.
95087
95088         https://bugs.webkit.org/show_bug.cgi?id=17218
95089         rdar://problem/5732818
95090
95091         Reviewed by Kevin McCullough.
95092
95093         * page/inspector/ElementsPanel.js:
95094         (WebInspector.ElementsPanel): Add an event listener for
95095         the "metrics edited" event, so the Styles pane is updated.
95096         * page/inspector/MetricsSidebarPane.js:
95097         (WebInspector.MetricsSidebarPane.prototype.update): Remember the node
95098         so future updates work. Add a double click event listener for the
95099         metric values to start editing.
95100         (WebInspector.MetricsSidebarPane.prototype.startEditing):
95101         Call WebInspector.startEditing with some context.
95102         (WebInspector.MetricsSidebarPane.prototype.editingCancelled):
95103         (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
95104         Set the user input on the elements inline style. Fire the
95105         "metrics edited" event.
95106
95107 2008-08-21  Steve Falkenburg  <sfalken@apple.com>
95108
95109         Fix a race condition in Windows timer code.
95110         Timer function could end up being called with a 0 timer, leading to a Windows exception.
95111
95112         Don't post a timer message if one is already pending.
95113
95114         Reviewed by Ada Chan.
95115
95116         * platform/win/SharedTimerWin.cpp:
95117         (WebCore::TimerWindowWndProc):
95118         (WebCore::clearTimer):
95119         (WebCore::queueTimerProc):
95120         (WebCore::setSharedTimerFireTime):
95121
95122 2008-08-21  Anthony Ricaud  <rik24d@gmail.com>
95123
95124         After trying to add the expression, try again with quotes for
95125         easier edition.
95126
95127         https://bugs.webkit.org/show_bug.cgi?id=20466
95128
95129         Reviewed by Tim Hatcher.
95130
95131         * page/inspector/ObjectPropertiesSection.js: Added an
95132         evaluateExpression function.
95133
95134 2008-08-21  Anthony Ricaud  <rik24d@gmail.com>
95135
95136         Perform Inspector searches on search event to clear results when
95137         clicking the cross to empty it. Delete the lastQuery when the field
95138         is emptied in order to perform the search if exactly the same query
95139         is entered next.
95140
95141         https://bugs.webkit.org/show_bug.cgi?id=20462
95142
95143         Reviewed by Tim Hatcher.
95144
95145         * page/inspector/inspector.js:
95146
95147 2008-08-21  Marco Barisione  <marco.barisione@collabora.co.uk>
95148
95149         Reviewed by Mark Rowe.
95150
95151         http://bugs.webkit.org/show_bug.cgi?id=19656
95152         [SOUP] The gio code should call didFail() instead of
95153         didFinishLoading() in case of error
95154
95155         In case of error call didFail() instead of didReceiveResponse() and
95156         didFinishLoading().
95157
95158         * platform/network/soup/ResourceHandleSoup.cpp:
95159         (WebCore::networkErrorForFile):
95160         (WebCore::readCallback):
95161         (WebCore::openCallback):
95162         (WebCore::queryInfoCallback):
95163
95164 2008-08-20  Mark Rowe  <mrowe@apple.com>
95165
95166         Reviewed by Jon Honeycutt.
95167
95168         Fix build failure.
95169
95170         * bridge/c/c_instance.cpp:
95171         (KJS::Bindings::CInstance::getPropertyNames): Declare count as uint32_t rather than unsigned
95172         as that is what NPEnumerationFunctionPtr is declared as accepting.
95173
95174 2008-08-20  Mark Rowe  <mrowe@apple.com>
95175
95176         Reviewed by Dan Bernstein.
95177
95178         Build fix.  Handle kCGInterpolationMedium in switch statements if it is available.
95179
95180         * platform/graphics/GraphicsContext.h:
95181         (WebCore::):
95182         * platform/graphics/cg/GraphicsContextCG.cpp:
95183         (WebCore::GraphicsContext::setImageInterpolationQuality):
95184         (WebCore::GraphicsContext::imageInterpolationQuality):
95185
95186 2008-08-20  Dan Bernstein  <mitz@apple.com>
95187
95188         Rubber-stamped by John Sullivan.
95189
95190         - rename shouldUpdateWhileHidden to shouldUpdateWhileOffscreen and
95191           rename related methods and variables accordingly.
95192
95193         * WebCore.base.exp:
95194         * page/FrameView.cpp:
95195         (WebCore::FrameViewPrivate::FrameViewPrivate):
95196         (WebCore::FrameView::shouldUpdateWhileOffscreen):
95197         (WebCore::FrameView::setShouldUpdateWhileOffscreen):
95198         * page/FrameView.h:
95199         * platform/ScrollView.h:
95200         * platform/mac/ScrollViewMac.mm:
95201         (WebCore::ScrollView::updateContents):
95202
95203 2008-08-20  Brady Eidson  <beidson@apple.com>
95204
95205         Reviewed by Mitzpettel
95206
95207         <rdar://problem/6153432> - Many images broken in Mail
95208
95209         This can be traced back to the preload scanner.  With that change, CachedResources are created a lot
95210         sooner than before and confuse the WebArchive machinery.
95211
95212         When referencing WebArchive subresources directly through the WebKit API it is appropriate to ignore
95213         such CachedResources since they are placeholders and have not been submitted to the ResourceLoadDelegate
95214         machinery and nothing is known about where the data will eventually come from.
95215
95216         * loader/DocumentLoader.cpp:
95217         (WebCore::DocumentLoader::subresource):  Ignore a CachedResource if its preloadResult is
95218           CachedResource::PreloadReferenced.
95219
95220 2008-08-20  Holger Hans Peter Freyther  <zecke@selfish.org>
95221
95222         Unreviewed compile fix
95223
95224         Catch up with the JSValue::type elimination.
95225
95226         * bridge/qt/qt_instance.cpp:
95227         (KJS::Bindings::QtRuntimeObjectImp::construct):
95228         (KJS::Bindings::QtInstance::defaultValue):
95229         * bridge/qt/qt_runtime.cpp:
95230         (KJS::Bindings::QtRuntimeConnectionMethod::call):
95231
95232 2008-08-20  Chris Teague  <chris.teague@gmail.com>
95233
95234         Reviewed by Mark Rowe.
95235
95236         Fix https://bugs.webkit.org/show_bug.cgi?id=20449
95237         Bug 20449: Build fails if LOW_BANDWIDTH_DISPLAY is defined
95238
95239         * ChangeLog:
95240         * loader/FrameLoader.cpp:
95241         (WebCore::FrameLoader::switchOutLowBandwidthDisplayIfReady):
95242
95243 2008-08-20  Simon Fraser  <simon.fraser@apple.com>
95244
95245         Reviewed by Dave Hyatt
95246
95247         getComputedStyle() for webkitTransform should return a transform
95248         that does not have the transform origin baked into it.
95249         https://bugs.webkit.org/show_bug.cgi?id=20464
95250
95251         Test: fast/css/getComputedStyle-transform.html
95252
95253         * css/CSSComputedStyleDeclaration.cpp:
95254         (WebCore::computedTransform):
95255         * rendering/style/RenderStyle.cpp:
95256         (WebCore::RenderStyle::applyTransform):
95257         * rendering/style/RenderStyle.h:
95258
95259 2008-08-20  Josh Aas  <joshmoz@gmail.com>
95260
95261         Reviewed and landed by Anders.
95262
95263         <rdar://problem/6163636>
95264         rename NPCocoaEvent's "event" struct to "data" (20446)
95265
95266         * bridge/npapi.h:
95267         (_NPCocoaEvent::):
95268
95269 2008-08-20  Beth Dakin  <bdakin@apple.com>
95270
95271         Reviewed by Darin Adler.
95272
95273         Fix for <rdar://problem/6145626>
95274         This patch fixes a number of remaining problems getting
95275         disconnected frames to work correctly with markAllMatchesForText()
95276         and findString(). Details inline.
95277
95278         This was a static helper function in Frame, but this patch requires
95279         the same functionality in Editor, so I just added it as a function
95280         on Node.
95281         * dom/Node.cpp:
95282         (WebCore::Node::isInShadowTree):
95283         * dom/Node.h:
95284
95285         * editing/Editor.cpp:
95286         (WebCore::Editor::insideVisibleArea): Returns false if
95287         excludeFromTextSearch() is true.
95288
95289         In a normal (non-disconnected) frame, findString returns a range of
95290         the document node if the text is not found in the frame. I changed
95291         firstVisibleRange and lastVisibleRange to match that behavior when
95292         the text is not found
95293         (WebCore::Editor::firstVisibleRange):
95294         (WebCore::Editor::lastVisibleRange):
95295
95296         Here are the bulk of the changes in the patch. A lot of text was
95297         not being found in disconnected frames because I failed to account
95298         for all of the possible problems associated with shadow trees. That
95299         is fixed here.
95300         (WebCore::Editor::nextVisibleRange):
95301         * editing/Editor.h:
95302
95303         excludeFromTextSearch() is new. It allows a WebKit client to mark a
95304         frame as not-text-searchable through SPI.
95305         * WebCore.base.exp:
95306         * page/Frame.cpp:
95307         (WebCore::Frame::excludeFromTextSearch):
95308         (WebCore::Frame::setExcludeFromTextSearch):
95309         (WebCore::FramePrivate::FramePrivate):
95310         * page/Frame.h:
95311         * page/FramePrivate.h:
95312
95313         (WebCore::Frame::findString):
95314         (WebCore::Frame::markAllMatchesForText):  I kept running into an
95315         assertion failure in paining code because of the forced paint on
95316         empty visible rects.
95317
95318 2008-08-20  Timothy Hatcher  <timothy@apple.com>
95319
95320         Adds a positon box to the Inspector's Metrics sidebar
95321         pane. When an element is not statically positioned, there
95322         is now a position box that show top, right, bottom and
95323         left computed values.
95324
95325         Reviewed by Kevin McCullough.
95326
95327         * English.lproj/localizedStrings.js: Updated the strings.
95328         * page/inspector/MetricsSidebarPane.js:
95329         (WebInspector.MetricsSidebarPane.prototype.update):
95330         Renamed the boxPartValue function to createBoxPartElement
95331         and made it create the entire element. Made it understand
95332         how to get position style properties. Don't use the figure dash
95333         when 0px is used for positions, since the 0 is meaningful there.
95334         Instead use the figure dash when a position is auto.
95335         * page/inspector/inspector.css: Added a new rule for position.
95336
95337 2008-08-20  Chris Fleizach  <cfleizach@apple.com>
95338
95339         Reviewed by Beth Dakin
95340
95341         Qt build fix
95342
95343         * WebCore.pro:
95344
95345 2008-08-20  Dan Bernstein  <mitz@apple.com>
95346
95347         Reviewed by Anders Carlsson.
95348
95349         - avoid using a deprecated NSScroller method on Leopard
95350
95351         * platform/mac/PlatformScrollBarMac.mm:
95352         (WebCore::PlatformScrollbar::updateThumbPosition):
95353         (WebCore::PlatformScrollbar::updateThumbProportion):
95354
95355 2008-08-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
95356
95357         Reviewed by Oliver Hunt.
95358
95359         Gtk build fix
95360
95361         * GNUmakefile.am:
95362         * page/AccessibilityTable.cpp: Change nil to 0
95363         (WebCore::AccessibilityTable::cellForColumnAndRow):
95364
95365 2008-08-19  Alexey Proskuryakov  <ap@webkit.org>
95366
95367         Reviewed by Geoff Garen.
95368
95369         Bring back shared JSGlobalData and implicit locking, because too many clients rely on it.
95370
95371         * ForwardingHeaders/kjs/JSLock.h: Added.
95372         * WebCore.vcproj/WebCore.vcproj:
95373         * bindings/js/GCController.cpp:
95374         (WebCore::collect):
95375         (WebCore::GCController::gcTimerFired):
95376         (WebCore::GCController::garbageCollectNow):
95377         * bindings/js/JSCustomSQLStatementCallback.cpp:
95378         (WebCore::JSCustomSQLStatementCallback::handleEvent):
95379         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
95380         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
95381         * bindings/js/JSCustomSQLTransactionCallback.cpp:
95382         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
95383         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
95384         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
95385         * bindings/js/JSCustomVoidCallback.cpp:
95386         (WebCore::JSCustomVoidCallback::handleEvent):
95387         * bindings/js/JSCustomXPathNSResolver.cpp:
95388         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
95389         * bindings/js/JSDOMWindowBase.cpp:
95390         (WebCore::DOMWindowTimer::~DOMWindowTimer):
95391         (WebCore::JSDOMWindowBase::clear):
95392         (WebCore::JSDOMWindowBase::timerFired):
95393         * bindings/js/JSEventCustom.cpp:
95394         (WebCore::toJS):
95395         * bindings/js/JSEventListener.cpp:
95396         (WebCore::JSAbstractEventListener::handleEvent):
95397         * bindings/js/JSNSResolver.cpp:
95398         (WebCore::JSNSResolver::lookupNamespaceURI):
95399         * bindings/js/JSNodeFilterCondition.cpp:
95400         (WebCore::JSNodeFilterCondition::acceptNode):
95401         * bindings/js/ScheduledAction.cpp:
95402         (WebCore::ScheduledAction::execute):
95403         * bindings/js/ScriptController.cpp:
95404         (WebCore::ScriptController::evaluate):
95405         (WebCore::ScriptController::clearWindowShell):
95406         (WebCore::ScriptController::createHTMLEventHandler):
95407         (WebCore::ScriptController::createSVGEventHandler):
95408         (WebCore::ScriptController::initScript):
95409         (WebCore::ScriptController::updateDocument):
95410         (WebCore::ScriptController::bindingRootObject):
95411         (WebCore::ScriptController::windowScriptNPObject):
95412         (WebCore::ScriptController::createScriptObjectForPluginElement):
95413         (WebCore::ScriptController::clearScriptObjects):
95414         * bindings/js/ScriptControllerMac.mm:
95415         (WebCore::ScriptController::windowScriptObject):
95416         * bindings/objc/WebScriptObject.mm:
95417         (_didExecute):
95418         (-[WebScriptObject callWebScriptMethod:withArguments:]):
95419         (-[WebScriptObject evaluateWebScript:]):
95420         (-[WebScriptObject setValue:forKey:]):
95421         (-[WebScriptObject valueForKey:]):
95422         (-[WebScriptObject removeWebScriptKey:]):
95423         (-[WebScriptObject stringRepresentation]):
95424         (-[WebScriptObject webScriptValueAtIndex:]):
95425         (-[WebScriptObject setWebScriptValueAtIndex:value:]):
95426         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
95427         * bridge/NP_jsobject.cpp:
95428         (_NPN_InvokeDefault):
95429         (_NPN_Invoke):
95430         (_NPN_Evaluate):
95431         (_NPN_GetProperty):
95432         (_NPN_SetProperty):
95433         (_NPN_RemoveProperty):
95434         (_NPN_HasProperty):
95435         (_NPN_HasMethod):
95436         (_NPN_Enumerate):
95437         * bridge/c/c_class.cpp:
95438         (KJS::Bindings::CClass::~CClass):
95439         (KJS::Bindings::CClass::methodsNamed):
95440         (KJS::Bindings::CClass::fieldNamed):
95441         * bridge/c/c_instance.cpp:
95442         (KJS::Bindings::CInstance::invokeMethod):
95443         (KJS::Bindings::CInstance::invokeDefaultMethod):
95444         (KJS::Bindings::CInstance::getPropertyNames):
95445         * bridge/c/c_runtime.cpp:
95446         (KJS::Bindings::CField::valueFromInstance):
95447         (KJS::Bindings::CField::setValueToInstance):
95448         * bridge/c/c_utility.cpp:
95449         (KJS::Bindings::convertValueToNPVariant):
95450         (KJS::Bindings::convertNPVariantToValue):
95451         * bridge/jni/jni_class.cpp:
95452         (JavaClass::JavaClass):
95453         (JavaClass::~JavaClass):
95454         * bridge/jni/jni_instance.cpp:
95455         (JavaInstance::stringValue):
95456         * bridge/jni/jni_jsobject.mm:
95457         (JavaJSObject::call):
95458         (JavaJSObject::eval):
95459         (JavaJSObject::getMember):
95460         (JavaJSObject::setMember):
95461         (JavaJSObject::removeMember):
95462         (JavaJSObject::getSlot):
95463         (JavaJSObject::setSlot):
95464         (JavaJSObject::toString):
95465         (JavaJSObject::convertValueToJObject):
95466         (JavaJSObject::convertJObjectToValue):
95467         * bridge/jni/jni_objc.mm:
95468         (KJS::Bindings::dispatchJNICall):
95469         * bridge/jni/jni_runtime.cpp:
95470         (appendClassName):
95471         (JavaMethod::signature):
95472         * bridge/jni/jni_runtime.h:
95473         (KJS::Bindings::JavaString::JavaString):
95474         (KJS::Bindings::JavaString::_commonInit):
95475         (KJS::Bindings::JavaString::~JavaString):
95476         (KJS::Bindings::JavaString::UTF8String):
95477         * bridge/jni/jni_utility.cpp:
95478         (KJS::Bindings::convertValueToJValue):
95479         * bridge/npruntime.cpp:
95480         (_NPN_GetStringIdentifier):
95481         * bridge/objc/objc_instance.mm:
95482         (ObjcInstance::moveGlobalExceptionToExecState):
95483         (ObjcInstance::invokeMethod):
95484         (ObjcInstance::invokeDefaultMethod):
95485         (ObjcInstance::setValueOfUndefinedField):
95486         (ObjcInstance::getValueOfUndefinedField):
95487         * bridge/objc/objc_runtime.mm:
95488         (ObjcField::valueFromInstance):
95489         (ObjcField::setValueToInstance):
95490         * bridge/objc/objc_utility.mm:
95491         (KJS::Bindings::convertValueToObjcValue):
95492         (KJS::Bindings::convertNSStringToString):
95493         (KJS::Bindings::convertObjcValueToValue):
95494         * bridge/qt/qt_instance.cpp:
95495         (KJS::Bindings::QtRuntimeObjectImp::removeFromCache):
95496         (KJS::Bindings::QtInstance::~QtInstance):
95497         (KJS::Bindings::QtInstance::getQtInstance):
95498         (KJS::Bindings::QtInstance::getRuntimeObject):
95499         * bridge/qt/qt_runtime.cpp:
95500         (KJS::Bindings::convertValueToQVariant):
95501         (KJS::Bindings::convertQVariantToValue):
95502         (KJS::Bindings::QtRuntimeMetaMethod::call):
95503         (KJS::Bindings::QtRuntimeConnectionMethod::call):
95504         (KJS::Bindings::QtConnectionObject::QtConnectionObject):
95505         (KJS::Bindings::QtConnectionObject::execute):
95506         * bridge/runtime.cpp:
95507         (KJS::Bindings::Instance::createRuntimeObject):
95508         * bridge/testbindings.cpp:
95509         (main):
95510         * bridge/testbindings.mm:
95511         (main):
95512         * bridge/testqtbindings.cpp:
95513         (main):
95514         * dom/Document.cpp:
95515         (WebCore::Document::~Document):
95516         * dom/Node.cpp:
95517         (WebCore::Node::setDocument):
95518         * history/CachedPage.cpp:
95519         (WebCore::CachedPage::CachedPage):
95520         (WebCore::CachedPage::restore):
95521         (WebCore::CachedPage::clear):
95522         * loader/FrameLoader.cpp:
95523         (WebCore::getString):
95524         * page/InspectorController.cpp:
95525         (WebCore::ConsoleMessage::ConsoleMessage):
95526         (WebCore::XMLHttpRequestResource::XMLHttpRequestResource):
95527         (WebCore::XMLHttpRequestResource::~XMLHttpRequestResource):
95528         (WebCore::getResourceDocumentNode):
95529         (WebCore::search):
95530         (WebCore::inspectedWindow):
95531         (WebCore::wrapCallback):
95532         (WebCore::currentCallFrame):
95533         (WebCore::profiles):
95534         (WebCore::InspectorController::focusNode):
95535         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
95536         (WebCore::InspectorController::addDatabaseScriptResource):
95537         (WebCore::InspectorController::addScriptProfile):
95538         * page/JavaScriptCallFrame.cpp:
95539         (WebCore::JavaScriptCallFrame::evaluate):
95540         * page/JavaScriptProfileNode.cpp:
95541         (WebCore::getTotalTime):
95542         (WebCore::getSelfTime):
95543         (WebCore::getTotalPercent):
95544         (WebCore::getSelfPercent):
95545         (WebCore::getNumberOfCalls):
95546         (WebCore::getChildren):
95547         (WebCore::getVisible):
95548         * page/Page.cpp:
95549         * page/mac/FrameMac.mm:
95550         * plugins/PluginView.cpp:
95551         (WebCore::PluginView::start):
95552         (WebCore::getString):
95553         (WebCore::PluginView::performRequest):
95554         (WebCore::PluginView::bindingInstance):
95555         * plugins/gtk/PluginViewGtk.cpp:
95556         (WebCore::PluginView::paint):
95557         (WebCore::PluginView::handleKeyboardEvent):
95558         (WebCore::PluginView::handleMouseEvent):
95559         (WebCore::PluginView::setNPWindowRect):
95560         (WebCore::PluginView::stop):
95561         (WebCore::PluginView::init):
95562         * plugins/qt/PluginViewQt.cpp:
95563         (WebCore::PluginView::setNPWindowRect):
95564         (WebCore::PluginView::stop):
95565         (WebCore::PluginView::init):
95566         * plugins/win/PluginViewWin.cpp:
95567         (WebCore::PluginView::dispatchNPEvent):
95568         (WebCore::PluginView::handleKeyboardEvent):
95569         (WebCore::PluginView::handleMouseEvent):
95570         (WebCore::PluginView::setNPWindowRect):
95571         (WebCore::PluginView::stop):
95572         * xml/XMLHttpRequest.cpp:
95573         (WebCore::XMLHttpRequest::clearResponse):
95574         (WebCore::XMLHttpRequest::didFinishLoading):
95575         (WebCore::XMLHttpRequest::didReceiveData):
95576
95577 2008-08-19  Eric Seidel  <eric@webkit.org>
95578
95579         Reviewed by Geoff Garen.
95580
95581         Add the beginnings of Skia graphics support to WebCore
95582         as I try to begin the long process of un-forking the changes
95583         needed to WebCore to make Andriod's WebCore build.
95584
95585         I'll follow this up with actual *Skia.cpp files in a separate patch.
95586
95587         * platform/graphics/AffineTransform.h:
95588         * platform/graphics/FloatPoint.h:
95589         * platform/graphics/FloatRect.h:
95590         * platform/graphics/Gradient.h:
95591         * platform/graphics/GraphicsContext.h:
95592         * platform/graphics/Image.h:
95593         * platform/graphics/ImageBuffer.h:
95594         * platform/graphics/ImageSource.h:
95595         * platform/graphics/IntPoint.h:
95596         * platform/graphics/IntRect.h:
95597         * platform/graphics/Path.h:
95598         * platform/graphics/Pattern.h:
95599         * svg/graphics/SVGPaintServerPattern.h:
95600         * svg/graphics/SVGPaintServerSolid.h:
95601
95602 2008-08-19  Steve Falkenburg  <sfalken@apple.com>
95603
95604         Fix Windows build more.
95605
95606         * WebCore.vcproj/WebCore.vcproj:
95607
95608 2008-08-19  Steve Falkenburg  <sfalken@apple.com>
95609
95610         Fix Windows build.
95611
95612         * page/AccessibilityRenderObject.cpp:
95613         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
95614
95615 2008-08-19  Chris Fleizach  <cfleizach@apple.com>
95616
95617         Reviewed by Beth Dakin.
95618
95619         <rdar://problem/4003764> Expose tables as AXTables
95620
95621         Tests: accessibility/table-attributes.html
95622                accessibility/table-cell-spans.html
95623                accessibility/table-cells.html
95624                accessibility/table-detection.html
95625                accessibility/table-sections.html
95626                accessibility/table-with-rules.html
95627
95628         * WebCore.xcodeproj/project.pbxproj:
95629         * page/AXObjectCache.cpp:
95630         (WebCore::AXObjectCache::get):
95631         * page/AccessibilityObject.h:
95632         (WebCore::):
95633         (WebCore::AccessibilityObject::isDataTable):
95634         (WebCore::AccessibilityObject::isTableRow):
95635         (WebCore::AccessibilityObject::isTableColumn):
95636         (WebCore::AccessibilityObject::isTableCell):
95637         * page/AccessibilityRenderObject.cpp:
95638         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
95639         * page/AccessibilityTable.cpp: Added.
95640         (WebCore::AccessibilityTable::AccessibilityTable):
95641         (WebCore::AccessibilityTable::~AccessibilityTable):
95642         (WebCore::AccessibilityTable::create):
95643         (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
95644         (WebCore::AccessibilityTable::clearChildren):
95645         (WebCore::AccessibilityTable::addChildren):
95646         (WebCore::AccessibilityTable::headerContainer):
95647         (WebCore::AccessibilityTable::columns):
95648         (WebCore::AccessibilityTable::rows):
95649         (WebCore::AccessibilityTable::rowHeaders):
95650         (WebCore::AccessibilityTable::columnHeaders):
95651         (WebCore::AccessibilityTable::cells):
95652         (WebCore::AccessibilityTable::columnCount):
95653         (WebCore::AccessibilityTable::rowCount):
95654         (WebCore::AccessibilityTable::cellForColumnAndRow):
95655         (WebCore::AccessibilityTable::roleValue):
95656         (WebCore::AccessibilityTable::accessibilityIsIgnored):
95657         (WebCore::AccessibilityTable::title):
95658         (WebCore::AccessibilityTable::isDataTable):
95659         * page/AccessibilityTable.h: Added.
95660         * page/AccessibilityTableCell.cpp: Added.
95661         (WebCore::AccessibilityTableCell::AccessibilityTableCell):
95662         (WebCore::AccessibilityTableCell::~AccessibilityTableCell):
95663         (WebCore::AccessibilityTableCell::create):
95664         (WebCore::AccessibilityTableCell::accessibilityIsIgnored):
95665         (WebCore::AccessibilityTableCell::rowIndexRange):
95666         (WebCore::AccessibilityTableCell::columnIndexRange):
95667         * page/AccessibilityTableCell.h: Added.
95668         (WebCore::AccessibilityTableCell::isTableCell):
95669         (WebCore::AccessibilityTableCell::roleValue):
95670         * page/AccessibilityTableColumn.cpp: Added.
95671         (WebCore::AccessibilityTableColumn::AccessibilityTableColumn):
95672         (WebCore::AccessibilityTableColumn::~AccessibilityTableColumn):
95673         (WebCore::AccessibilityTableColumn::create):
95674         (WebCore::AccessibilityTableColumn::setParentTable):
95675         (WebCore::AccessibilityTableColumn::elementRect):
95676         (WebCore::AccessibilityTableColumn::size):
95677         (WebCore::AccessibilityTableColumn::children):
95678         (WebCore::AccessibilityTableColumn::headerObject):
95679         (WebCore::AccessibilityTableColumn::headerObjectForSection):
95680         (WebCore::AccessibilityTableColumn::addChildren):
95681         * page/AccessibilityTableColumn.h: Added.
95682         (WebCore::AccessibilityTableColumn::parentObject):
95683         (WebCore::AccessibilityTableColumn::roleValue):
95684         (WebCore::AccessibilityTableColumn::accessibilityIsIgnored):
95685         (WebCore::AccessibilityTableColumn::isTableColumn):
95686         (WebCore::AccessibilityTableColumn::setColumnIndex):
95687         (WebCore::AccessibilityTableColumn::columnIndex):
95688         * page/AccessibilityTableHeaderContainer.cpp: Added.
95689         (WebCore::AccessibilityTableHeaderContainer::AccessibilityTableHeaderContainer):
95690         (WebCore::AccessibilityTableHeaderContainer::~AccessibilityTableHeaderContainer):
95691         (WebCore::AccessibilityTableHeaderContainer::create):
95692         (WebCore::AccessibilityTableHeaderContainer::children):
95693         (WebCore::AccessibilityTableHeaderContainer::elementRect):
95694         (WebCore::AccessibilityTableHeaderContainer::size):
95695         (WebCore::AccessibilityTableHeaderContainer::addChildren):
95696         * page/AccessibilityTableHeaderContainer.h: Added.
95697         (WebCore::AccessibilityTableHeaderContainer::roleValue):
95698         (WebCore::AccessibilityTableHeaderContainer::setParentTable):
95699         (WebCore::AccessibilityTableHeaderContainer::parentObject):
95700         (WebCore::AccessibilityTableHeaderContainer::accessibilityIsIgnored):
95701         * page/AccessibilityTableRow.cpp: Added.
95702         (WebCore::AccessibilityTableRow::AccessibilityTableRow):
95703         (WebCore::AccessibilityTableRow::~AccessibilityTableRow):
95704         (WebCore::AccessibilityTableRow::create):
95705         (WebCore::AccessibilityTableRow::accessibilityIsIgnored):
95706         (WebCore::AccessibilityTableRow::headerObject):
95707         * page/AccessibilityTableRow.h: Added.
95708         (WebCore::AccessibilityTableRow::isTableRow):
95709         (WebCore::AccessibilityTableRow::roleValue):
95710         (WebCore::AccessibilityTableRow::setRowIndex):
95711         (WebCore::AccessibilityTableRow::rowIndex):
95712         * page/mac/AccessibilityObjectWrapper.mm:
95713         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
95714         (RoleEntry::):
95715         (-[AccessibilityObjectWrapper roleDescription]):
95716         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
95717         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
95718         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
95719
95720 2008-08-19  Steve Falkenburg  <sfalken@apple.com>
95721
95722         Build fix.
95723         Add buildfailed support to stop builds early (preventing inaccurate error messages).
95724         Add missing post-build rule to Release.
95725
95726         * WebCore.vcproj/QTMovieWin.vcproj:
95727
95728 2008-08-19  Keishi Hattori  <casey.hattori@gmail.com>
95729
95730         Added support for console.count in the inspector.
95731
95732         Reviewed by Geoff Garen.
95733
95734         * page/Console.cpp:
95735         (WebCore::Console::count):
95736         * page/Console.h:
95737         * page/Console.idl: Added console.count.
95738         * page/InspectorController.cpp:
95739         (WebCore::InspectorController::didCommitLoad): Clears m_counts.
95740         (WebCore::InspectorController::count): Updates the count number
95741         sing "title@source:line" as the identifier, and adds a
95742         message to the console.
95743         * page/InspectorController.h: Added m_counts.
95744
95745 2008-08-19  Keishi Hattori  <casey.hattori@gmail.com>
95746
95747         Clear console.time timers when changing page.
95748
95749         Reviewed by Geoff Garen.
95750
95751         * page/InspectorController.cpp:
95752         (WebCore::InspectorController::didCommitLoad):
95753
95754 2008-08-19  Eric Carlson  <eric.carlson@apple.com>
95755
95756         Reviewed by Adele.
95757
95758         Fix for <rdar://problem/6154695> Full-page movies flicker while playing
95759         https://bugs.webkit.org/show_bug.cgi?id=20404
95760
95761         Ignore setVisible() when visibility doesn't change.
95762
95763         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
95764         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
95765         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
95766         (WebCore::MediaPlayerPrivate::setVisible):
95767
95768 2008-08-19  Timothy Hatcher  <timothy@apple.com>
95769
95770         Fixes a bug in the Profile view where switching sort order, then
95771         switching from heavy to tree mode would show the tree in the
95772         previous sort order.
95773
95774         https://bugs.webkit.org/show_bug.cgi?id=20441
95775
95776         Reviewed by Kevin McCullough.
95777
95778         * page/inspector/ProfileView.js:
95779         (WebInspector.ProfileView.prototype._changeView): Call _sortProfile
95780         on the next profile before assigning it to this.profile.
95781         (WebInspector.ProfileView.prototype._sortData): Call _sortProfile.
95782         (WebInspector.ProfileView.prototype._sortProfile): Moves from
95783         _sortData and takes a profile argument. If the profile passed in
95784         matches the this.profile, then call refresh.
95785
95786 2008-08-18  Timothy Hatcher  <timothy@apple.com>
95787
95788         Changed the default sort order now that heavy view is the default.
95789         Also fixes a bug where the heavy profile was not sorted at first.
95790
95791         https://bugs.webkit.org/show_bug.cgi?id=20440
95792
95793         Reviewed by Kevin McCullough.
95794
95795         * page/inspector/ProfileView.js:
95796         (WebInspector.ProfileView): Changed the default sort column. Also assign
95797         heavyProfile to profile, so the sortSelfTimeDescending call happens
95798         on the heavy profile before assigning to this.profile.
95799
95800 2008-08-18  Timothy Hatcher  <timothy@apple.com>
95801
95802         Add support for editing DOM properties and scope variables by double
95803         clicking a property to enter edit mode.
95804
95805         https://bugs.webkit.org/show_bug.cgi?id=20415
95806
95807         Reviewed by Kevin McCullough.
95808
95809         * page/inspector/ObjectPropertiesSection.js:
95810         (WebInspector.ObjectPropertiesSection): Set editable to true by default.
95811         (WebInspector.ObjectPropertiesSection.prototype.onpopulate):
95812         Factored out code into update, and calls update.
95813         (WebInspector.ObjectPropertiesSection.prototype.update): Moved from onpopulate.
95814         Call removeChildren since this method can be called multiple times now.
95815         (WebInspector.ObjectPropertyTreeElement): Pass an empty title, the title
95816         gets made later in onattach.
95817         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate): Don't return early
95818         if shouldRefreshChildren is true. Call removeChildren since this method can be
95819         called multiple times now.
95820         (WebInspector.ObjectPropertyTreeElement.prototype.ondblclick): Call startEditing.
95821         (WebInspector.ObjectPropertyTreeElement.prototype.onattach): Call update.
95822         (WebInspector.ObjectPropertyTreeElement.prototype.update): Update the title for
95823         this element (code moved from the constructor.)
95824         (WebInspector.ObjectPropertyTreeElement.prototype.updateSiblings): Recreate all
95825         sibling property elements.
95826         (WebInspector.ObjectPropertyTreeElement.prototype.startEditing): Call
95827         WebInspector.startEditing after rememebring some context.
95828         (WebInspector.ObjectPropertyTreeElement.prototype.editingEnded): Reset the scrollLeft
95829         for the list element, since it might have scrolled during editing.
95830         (WebInspector.ObjectPropertyTreeElement.prototype.editingCancelled): Call editingEnded
95831         then restore the state from the context. Then call update to restore the title.
95832         (WebInspector.ObjectPropertyTreeElement.prototype.editingCommitted): Call editingCancelled
95833         if the user input and the previous input are the same. Call editingEnded, then call applyExpression
95834         to commit the user input.
95835         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression): Evaluates the input expression
95836         and stores the result on the object for the property name of this element. If the expression is
95837         empty, delete the property and remove the tree element.
95838         * page/inspector/ScopeChainSidebarPane.js:
95839         (WebInspector.ScopeChainSidebarPane.prototype.update): Set the editInSelectedCallFrameWhenPaused
95840         property on each ObjectPropertiesSection.
95841         (WebInspector.ScopeVariableTreeElement.prototype.onattach): Call ObjectPropertyTreeElement's onattach
95842         since it is now implemented.
95843         * page/inspector/ScriptsPanel.js:
95844         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): Added an updateInterface argument
95845         that defaults to true if omitted. It specifies whether to call update on the scope chain.
95846         * page/inspector/inspector.css: New styles.
95847         * page/inspector/treeoutline.js:
95848         (TreeElement.prototype._attach): Fixed an exception that fired when handling the shouldRefreshChildren
95849         change. The nextSibling would exist but have a _listItemNode that didn't match the new parent.
95850
95851 2008-08-18  Timothy Hatcher  <timothy@apple.com>
95852
95853         Surround the expression to be evaluated in parenthesis so the
95854         result of the eval is the result of the whole expression not
95855         the last potential sub-expression. So evaluating {x: 123}
95856         will show the Object not 123.
95857
95858         https://bugs.webkit.org/show_bug.cgi?id=20428
95859
95860         Reviewed by Kevin McCullough.
95861
95862         * page/inspector/Console.js:
95863         (Console.prototype._evalInInspectedWindow): Add parenthesis
95864         around the expression. And add couple comments.
95865
95866 2008-08-19 Kevin McCullough <kmccullough@apple.com>
95867
95868         Reviewed by Geoff.
95869
95870         -Implement a page() function to extract a common code pattern.
95871
95872         * WebCore.xcodeproj/project.pbxproj:
95873         * page/Console.cpp:
95874         (WebCore::Console::addMessage):
95875         (WebCore::Console::error):
95876         (WebCore::Console::info):
95877         (WebCore::Console::log):
95878         (WebCore::Console::dir):
95879         (WebCore::Console::assertCondition):
95880         (WebCore::Console::time):
95881         (WebCore::Console::timeEnd):
95882         (WebCore::Console::group):
95883         (WebCore::Console::groupEnd):
95884         (WebCore::Console::finishedProfiling):
95885         (WebCore::Console::warn):
95886         (WebCore::Console::framePage):
95887         * page/Console.h:
95888
95889 2008-08-12  Darin Adler  <darin@apple.com>
95890
95891         Reviewed by Geoff.
95892
95893         - eliminate JSValue::type()
95894
95895         * bridge/c/c_instance.cpp:
95896         (KJS::Bindings::CInstance::defaultValue): Take PreferredPrimitiveType
95897         argument instead of JSType argument. Removed unneeded code to handle
95898         boolean, since that's never passed.
95899         * bridge/c/c_instance.h: Ditto.
95900
95901         * bridge/c/c_utility.cpp:
95902         (KJS::Bindings::convertValueToNPVariant): Use JSValue::is functions
95903         instead of JSValue::type(). Removed unneeded code to handle
95904         "unspecified".
95905
95906         * bridge/jni/jni_instance.cpp:
95907         (JavaInstance::defaultValue): Take PreferredPrimitiveType argument
95908         instead of JSType argument. Removed unneeded code to handle boolean.
95909         * bridge/jni/jni_instance.h: Ditto.
95910
95911         * bridge/jni/jni_jsobject.mm:
95912         (JavaJSObject::convertValueToJObject): Use JSValue::is functions
95913         instead of JSValue::type().
95914
95915         * bridge/objc/objc_instance.h: Take PreferredPrimitiveType argument
95916         instead of JSType argument. Removed unused argument.
95917         * bridge/objc/objc_instance.mm:
95918         (ObjcInstance::getValueOfUndefinedField): Removed unused argument.
95919         (ObjcInstance::defaultValue): Take PreferredPrimitiveType argument
95920         instead of JSType argument. Removed unneeded code to handle boolean
95921         and another dead code path for unknown types.
95922
95923         * bridge/objc/objc_runtime.h: Take PreferredPrimitiveType argument
95924         instead of JSType argument. Removed override of type() that caused
95925         the fallback object to return "UndefinedType" when there is no
95926         invokeUndefinedMethodFromWebScript:withArguments: method defined.
95927         That didn't accomplish much, since most checks for undefined don't
95928         ever call type().
95929         * bridge/objc/objc_runtime.mm:
95930         (ObjcFallbackObjectImp::defaultValue): Ditto.
95931
95932         * bridge/qt/qt_instance.cpp:
95933         (KJS::Bindings::QtInstance::defaultValue): Take PreferredPrimitiveType
95934         argument instead of JSType argument. Removed unneeded code to handle
95935         boolean.
95936         * bridge/qt/qt_instance.h: Ditto.
95937
95938         * bridge/runtime.h:
95939         (KJS::Bindings::Instance::getValueOfUndefinedField): Removed
95940         unsed argument.
95941         * bridge/runtime_object.cpp:
95942         (RuntimeObjectImp::defaultValue): Take PreferredPrimitiveType
95943         argument instead of JSType argument.
95944         * bridge/runtime_object.h: Ditto.
95945
95946 2008-08-18  Maxime Britto  <britto@apple.com>
95947
95948         Reviewed by Adele.
95949
95950         <rdar://6157207> Mouse pointer does not change when new window is opened after pan-scrolling original window
95951         Related to the discussion from rdar://6102511 , we should disable every key event (except for the esc key which stops the panning).
95952         We shouldn't be able to create another window while we are in pan scrolling.
95953         Other browsers behaviors :
95954           FF3 : Most of the keys are disabled, there is no way to create another window while in panscroll mode
95955           IE7 : Keys are not disabled but stops immediately the panning.
95956         This patch matches FF3 behavior by disabling every key but the esc key.
95957
95958         * page/EventHandler.cpp:
95959         (WebCore::EventHandler::stopAutoscrollTimer): Change the cursor back to the regular arrow cursor when the pannning is stopped.
95960         (WebCore::EventHandler::keyEvent): When a key event is received while in panning or autoscroll we swallow the event early.
95961
95962 2008-08-18  Dan Bernstein  <mitz@apple.com>
95963
95964         Reviewed by Dave Hyatt.
95965
95966         - fix <rdar://problem/5862634> REGRESSION (3.1.1): In iChat, inline image not resizable past current size after another IM is received
95967
95968         Test: fast/replaced/max-width-percent.html
95969
95970         Added an includeMaxWidth boolean to RenderBox::calcReplaedWidth().
95971         When false, max-width is not factored into the
95972         calculation.
95973         Changed RenderReplaced and subclasses' calcPrefWidths() to call
95974         calcReplacedWidth(false) and then apply max-width only if it has a
95975         fixed, positive value.
95976
95977         * rendering/RenderBox.cpp:
95978         (WebCore::RenderBox::calcReplacedWidth):
95979         * rendering/RenderBox.h:
95980         * rendering/RenderImage.cpp:
95981         (WebCore::RenderImage::calcReplacedWidth):
95982         (WebCore::RenderImage::calcPrefWidths):
95983         * rendering/RenderImage.h:
95984         * rendering/RenderReplaced.cpp:
95985         (WebCore::RenderReplaced::calcPrefWidths):
95986         * rendering/RenderSVGRoot.cpp:
95987         (WebCore::RenderSVGRoot::calcPrefWidths):
95988         * rendering/RenderVideo.cpp:
95989         (WebCore::RenderVideo::calcReplacedWidth):
95990         (WebCore::RenderVideo::calcPrefWidths):
95991         * rendering/RenderVideo.h:
95992
95993 2008-08-18  Daniel Macks  <dmacks@netspace.org>
95994
95995         Reviewed by Mark Rowe.
95996
95997         https://bugs.webkit.org/show_bug.cgi?id=20410
95998         More portable/self-documenting replacement for SIZE_MAX.
95999
96000         * platform/network/curl/FormDataStreamCurl.cpp:
96001         (WebCore::FormDataStream::read):
96002
96003 2008-08-18  Simon Fraser  <simon.fraser@apple.com>
96004
96005         Reviewed by Dave Hyatt
96006
96007         Need to make sure we have an Animation in the AnimationList
96008         before setting the initial value.
96009         https://bugs.webkit.org/show_bug.cgi?id=20408
96010
96011         Test: fast/css/transition_shorthand_parsing.html
96012
96013         * css/CSSStyleSelector.cpp:
96014
96015 2008-08-18  Kevin McCullough  <kmccullough@apple.com>
96016
96017         Reviewed by Tim.
96018
96019         <rdar://problem/6150593> JSProfiler: Empty profiles disappear when there
96020         is another profile.
96021
96022         * page/inspector/ProfilesPanel.js:
96023
96024 2008-08-18  Kevin McCullough  <kmccullough@apple.com>
96025
96026         Reviewed by Geoff.
96027
96028         <rdar://problem/6150642> REGRESSION: Closing the Web Inspector clears
96029         all console messages
96030
96031         * page/inspector/Console.js:
96032
96033 2008-08-18  Dirk Schulze  <vbs85@gmx.de>
96034
96035         Reviewed by Eric Seidel.
96036
96037         Fixed Canvas for Cairo. Stroke and fill colors didn't work after
96038         the canvas clean up.
96039
96040         https://bugs.webkit.org/show_bug.cgi?id=20405
96041
96042         * html/CanvasRenderingContext2D.cpp:
96043         (WebCore::CanvasRenderingContext2D::fill):
96044         (WebCore::CanvasRenderingContext2D::stroke):
96045         (WebCore::CanvasRenderingContext2D::fillRect):
96046
96047 2008-08-17  Timothy Hatcher  <timothy@apple.com>
96048
96049         Complete in scope variables in the Console when paused.
96050
96051         https://bugs.webkit.org/show_bug.cgi?id=19115
96052
96053         Reviewed by Geoffrey Garen.
96054
96055         * page/inspector/Console.js:
96056         (WebInspector.Console.prototype.completions): If the expressionString
96057         is null or empty and the debugger is paused, call variablesInScopeForSelectedCallFrame
96058         to get an object that declares all the in scope variables. That way
96059         "top level" expressions are completed.
96060         * page/inspector/ScriptsPanel.js:
96061         (WebInspector.ScriptsPanel.prototype.variablesInScopeForSelectedCallFrame):
96062         Return an object that has all the variables that are in scope for the
96063         selected call frame. The value of each property is just true.
96064         The return object is useful for quick lookups or auto completion.
96065
96066 2008-08-17  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
96067
96068         Not reviewed.
96069
96070         Speculative Qt build fix.
96071
96072         * bridge/qt/qt_runtime.cpp:
96073         (KJS::Bindings::convertValueToQVariant):
96074         (KJS::Bindings::QtRuntimeMethod::QtRuntimeMethod):
96075
96076 2008-08-17  Geoffrey Garen  <ggaren@apple.com>
96077
96078         Reviewed by Cameron Zwarich.
96079
96080         Updated project files to XCode 3.1.
96081
96082         * manual-tests/NPN_Invoke/NPN_Invoke.xcodeproj/project.pbxproj:
96083
96084 2008-08-17  Geoffrey Garen  <ggaren@apple.com>
96085
96086         Reviewed by Cameron Zwarich.
96087
96088         Made room for a free word in JSCell.
96089
96090         Changed JSDOMWindowBase to store its auxiliary data in a subclass of
96091         JSGlobalData, so the two could share a pointer.
96092
96093         Added a bunch of ASSERTs, to help catch over-sized objects.
96094
96095 2008-08-15  Mark Rowe  <mrowe@apple.com>
96096
96097         Reviewed by Dan Bernstein.
96098
96099         Disable dead code stripping in debug builds.
96100
96101         * Configurations/Base.xcconfig:
96102         * WebCore.xcodeproj/project.pbxproj:
96103
96104 2008-08-15  Mark Rowe  <mrowe@apple.com>
96105
96106         Rubber-stamped by Geoff Garen.
96107
96108         <rdar://problem/6139914> Please include a _debug version of JavaScriptCore framework
96109
96110         * Configurations/Base.xcconfig: Factor out the debug-only settings so that they can shared
96111         between the Debug configuration and debug Production variant.
96112         * WebCore.xcodeproj/project.pbxproj: Enable the debug variant.
96113
96114 2008-08-15  Antti Koivisto  <antti@apple.com>
96115
96116         Reviewed by Anders.
96117
96118         Don't start preloading body resources before the head is complete. This prevents
96119         body preloads from slowing down initial display when there is limited amount
96120         of bandwidth available.
96121
96122         Works by queuing up found body preloads to DocLoader and only issuing them
96123         after document has rendering.
96124
96125         With bandwidth capped to 300kbit/s this speeds up cnn.com initial display by ~25% or 5s
96126         without affecting complete load time.
96127
96128         * html/PreloadScanner.cpp:
96129         (WebCore::PreloadScanner::PreloadScanner):
96130         (WebCore::PreloadScanner::scanningBody):
96131         (WebCore::PreloadScanner::emitTag):
96132         (WebCore::PreloadScanner::emitCSSRule):
96133         * html/PreloadScanner.h:
96134         * loader/DocLoader.cpp:
96135         (WebCore::DocLoader::preload):
96136         (WebCore::DocLoader::checkForPendingPreloads):
96137         (WebCore::DocLoader::requestPreload):
96138         * loader/DocLoader.h:
96139         * loader/loader.cpp:
96140         (WebCore::Loader::Host::didFinishLoading):
96141         (WebCore::Loader::Host::didFail):
96142
96143 2008-08-15  Ada Chan  <adachan@apple.com>
96144
96145         Use item's computed style if the render style is 0 before falling back to the <select>'s style.
96146         This way style set on an <hr> within a <select> will be honored.
96147
96148         Reviewed by Dave Hyatt and Dan Bernstein.
96149
96150         * rendering/RenderMenuList.cpp:
96151         (WebCore::RenderMenuList::itemStyle):
96152
96153 2008-08-15  Antti Koivisto  <antti@apple.com>
96154
96155         Reviewed by Oliver.
96156
96157         Some loader performance tweaks:
96158         - Make stylesheets highest priority instead of scripts. We block script execution on stylesheets.
96159           Especially if a stylesheet @imports other stylesheets it is important to get them to the front of the queue
96160           to not delay rendering.
96161         - Issue the first resource load for a host immediately even if the resource is low priority. TCP connection setup
96162           can take long time when latency is high so it is good to get started early.
96163         - When the document is fully parsed and stylesheets have been loaded there is no need to keep managing the
96164           load queues. Issue remaining loads to the network layer.
96165
96166         * loader/loader.cpp:
96167         (WebCore::Loader::determinePriority):
96168         (WebCore::Loader::load):
96169         (WebCore::Loader::Host::servePendingRequests):
96170         * loader/loader.h:
96171
96172 2008-08-15  Timothy Hatcher  <timothy@apple.com>
96173
96174         Detach the script debugger when the Web Inspector's window closes.
96175         This has always been the intended design, but never fully implemented.
96176
96177         https://bugs.webkit.org/show_bug.cgi?id=20402
96178
96179         Reviewed by Adam Roben.
96180
96181         * page/InspectorController.cpp:
96182         (WebCore::InspectorController::setWindowVisible): Call stopDebugging()
96183         if the window is no longer visible.
96184
96185 2008-08-15  Håvard Wall  <hwall@trolltech.com>
96186
96187         Reviewed by Simon.
96188
96189         Fixes:    compile with QT_NO_CONTEXTMENU
96190
96191         * platform/qt/PlatformMouseEventQt.cpp:
96192         (WebCore::PlatformMouseEvent::PlatformMouseEvent):
96193         * platform/qt/PlatformScrollBarQt.cpp:
96194         (WebCore::PlatformScrollbar::handleMouseMoveEvent):
96195         (WebCore::PlatformScrollbar::handleContextMenuEvent):
96196
96197 2008-08-15  Håvard Wall  <hwall@trolltech.com>
96198
96199         Reviewed by Simon.
96200
96201         Fixes: compile with QT_NO_WHEELEVENT
96202
96203         * platform/qt/WheelEventQt.cpp:
96204         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
96205
96206 2008-08-15  Keishi Hattori  <casey.hattori@gmail.com>
96207
96208         Fixed Bug 20210: Console groups are incorrect when closing and reopening the Inspector
96209
96210         https://bugs.webkit.org/show_bug.cgi?id=20210
96211
96212         Reviewed by Tim Hatcher.
96213
96214         * page/Console.cpp:
96215         (WebCore::Console::group):
96216         (WebCore::Console::groupEnd):
96217         * page/Console.h:
96218         (WebCore::): Removed GroupTitleMessageLevel. Added StartGroupMessaageLevel and EndGroupMessageLevel.
96219         * page/InspectorController.cpp:
96220         (WebCore::InspectorController::startGroup): Increments group level by
96221         one and adds console message with StartGroupMessaageLevel.
96222         (WebCore::InspectorController::endGroup): Decrements group level by one
96223         and adds console message with EndGroupMessaageLevel.
96224         * page/InspectorController.h:
96225         * page/inspector/Console.js:
96226         (WebInspector.Console.prototype.addMessage): Creates new ConsoleGroup
96227         if the message is StartGroupMessaageLevel.
96228         (WebInspector.ConsoleMessage.prototype.toMessageElement):
96229         (WebInspector.ConsoleGroup.prototype.addMessage):
96230         * page/inspector/inspector.js:
96231
96232 2008-08-15  Keishi Hattori  <casey.hattori@gmail.com>
96233
96234         Adds support for console.dir to the Inspector
96235
96236         https://bugs.webkit.org/show_bug.cgi?id=19155
96237
96238         Reviewed by Tim Hatcher.
96239
96240         * bindings/js/JSConsoleCustom.cpp:
96241         (WebCore::JSConsole::dir):
96242         * page/Console.cpp:
96243         (WebCore::Console::dir):
96244         * page/Console.h: Added ObjectMessageLevel.
96245         * page/Console.idl: Added console.dir.
96246         * page/inspector/Console.js:
96247         (WebInspector.ConsoleMessage.prototypet.toMessageElement): Creates an
96248         ObjectPropertiesSection if the MessageLevel is Object.
96249         * page/inspector/ObjectPropertiesSection.js: "in" operator can't be
96250         used on primitive data types.
96251         * page/inspector/inspector.css:
96252
96253 2008-08-15  Keishi Hattori  <casey.hattori@gmail.com>
96254
96255         Adds support for clear() in the Inspector console.
96256
96257         https://bugs.webkit.org/show_bug.cgi?id=19873
96258
96259         Reviewed by Tim Hatcher.
96260
96261         * page/inspector/Console.js:
96262
96263 2008-08-15  Anthony Ricaud  <rik24d@gmail.com>
96264
96265         Cmd-F on Mac or Ctrl-F on other platforms now focus the search field.
96266
96267         Platform distinction and modifier key matching adjusted
96268         by Daniel Jalkut <jalkut@red-sweater.com>
96269
96270         Bug 16313: text search (find) keybindings should work in the Web Inspector
96271         https://bugs.webkit.org/show_bug.cgi?id=16313
96272
96273         Reviewed by Tim Hatcher.
96274
96275         * page/inspector/inspector.js: Added a case for the F key
96276
96277 2008-08-15  Keishi Hattori  <casey.hattori@gmail.com>
96278
96279         Fix for error when the string doesn't contain a webkit-profile link.
96280
96281         https://bugs.webkit.org/show_bug.cgi?id=20399
96282
96283         Reviewed by Tim Hatcher.
96284
96285         * page/inspector/inspector.js:
96286
96287 2008-08-15  Timothy Hatcher  <timothy@apple.com>
96288
96289         Fixes two bugs where JavaScript could be executed from the page
96290         while the debugger is paused.
96291
96292         The first issue was JSLazyEventListener not checking the paused
96293         state before parsing the code.
96294
96295         The second issue was with the PageGroup version of
96296         JavaScriptDebugServer::setJavaScriptPaused always passing false
96297         to the Page version of JavaScriptDebugServer::setJavaScriptPaused,
96298         and not the paused argument.
96299
96300         https://bugs.webkit.org/show_bug.cgi?id=20284
96301
96302         Reviewed by Adam Roben.
96303
96304         * bindings/js/JSEventListener.cpp:
96305         (WebCore::JSLazyEventListener::parseCode): Check the paused
96306         state of the ScriptController. Return early if paused.
96307         * manual-tests/inspector/debugger-execution-while-paused.html: Added.
96308         * page/JavaScriptDebugServer.cpp:
96309         (WebCore::JavaScriptDebugServer::setJavaScriptPaused):
96310         Pass the paused argument to the Page version of setJavaScriptPaused.
96311
96312 2008-08-15  Alexey Proskuryakov  <ap@webkit.org>
96313
96314         Reviewed by Geoff Garen.
96315
96316         JSStringRef is created context-free, but can get linked to one via an identifier table,
96317         breaking an implicit API contract.
96318
96319         * page/InspectorController.cpp:
96320         (WebCore::jsStringRef):
96321         (WebCore::InspectorController::didParseSource):
96322         (WebCore::InspectorController::failedToParseSource):
96323         * page/JavaScriptProfile.cpp:
96324         (WebCore::getTitleCallback):
96325         Updated for JavaScriptCore changes.
96326
96327 2008-08-14  Kevin Ollivier  <kevino@theolliviers.com>
96328
96329         wx !USE(WXGC) build fix. This is necessary until we find a way to replace GDI with
96330         an alternative that performs reasonably well. (GDI+ is too slow in many cases.)
96331
96332         * platform/graphics/AffineTransform.h:
96333
96334 2008-08-14  Eric Carlson  <eric.carlson@apple.com>
96335
96336         Reviewed by Adele.
96337
96338         Fix for https://bugs.webkit.org/show_bug.cgi?id=20388
96339         <video> elements on Windows never becomes visible when a page is restored from the cache
96340
96341         Always pass "set" calls down to MediaPlayerPrivate instead of only when the
96342         value is different from the cached value. Let the implementation decide when
96343         to avoid work because nothing has changed.
96344
96345         * platform/graphics/MediaPlayer.cpp:
96346         (WebCore::MediaPlayer::setVolume):
96347         (WebCore::MediaPlayer::setRate):
96348         (WebCore::MediaPlayer::setRect):
96349         (WebCore::MediaPlayer::setVisible):
96350
96351 2008-08-14  Keishi Hattori  <casey.hattori@gmail.com>
96352
96353         Make Firebug command line API respect predefined variables.
96354
96355         https://bugs.webkit.org/show_bug.cgi?id=20385
96356
96357         Reviewed by Tim Hatcher.
96358
96359         * page/inspector/Console.js:
96360
96361 2008-08-14  Sam Weinig  <sam@webkit.org>
96362
96363         Reviewed by Geoffrey Garen and Timothy Hatcher.
96364
96365         Allow programatically setting the HTMLTokenizers time delay and chunk size
96366         which are used for determining how aggressively we yield.
96367
96368         * WebCore.base.exp:
96369         * html/HTMLTokenizer.cpp:
96370         (WebCore::HTMLTokenizer::begin):
96371         (WebCore::HTMLTokenizer::continueProcessing):
96372         * html/HTMLTokenizer.h:
96373         * page/Page.cpp:
96374         (WebCore::Page::Page):
96375         (WebCore::Page::setCustomHTMLTokenizerTimeDelay):
96376         (WebCore::Page::setCustomHTMLTokenizerChunkSize):
96377         * page/Page.h:
96378         (WebCore::Page::hasCustomHTMLTokenizerTimeDelay):
96379         (WebCore::Page::customHTMLTokenizerTimeDelay):
96380         (WebCore::Page::hasCustomHTMLTokenizerChunkSize):
96381         (WebCore::Page::customHTMLTokenizerChunkSize):
96382
96383 2008-08-14  Eric Seidel  <eric@webkit.org>
96384
96385         Reviewed by Beth.
96386
96387         Move us one step closer to cross-platform svg/graphics code
96388
96389         * WebCore.xcodeproj/project.pbxproj:
96390         * html/CanvasStyle.cpp:
96391         * platform/graphics/Color.cpp:
96392         (WebCore::colorWithOverrideAlpha):
96393         * platform/graphics/Color.h:
96394         * svg/graphics/cg/CgSupport.cpp:
96395         (WebCore::applyStrokeStyleToContext):
96396         (WebCore::strokeBoundingBox):
96397         * svg/graphics/cg/SVGPaintServerSolidCg.cpp:
96398         (WebCore::SVGPaintServerSolid::setup):
96399
96400 2008-08-14  Eric Seidel  <eric@webkit.org>
96401
96402         Reviewed by Alexey.
96403
96404         Remove un-need includes from HTMLCanvas and use the
96405         Gradient platform abstraction in one place in CanvasStyle
96406
96407         * html/CanvasRenderingContext2D.cpp:
96408         (WebCore::CanvasRenderingContext2D::fillRect):
96409         * html/CanvasStyle.cpp:
96410         * html/HTMLCanvasElement.cpp:
96411
96412 2008-08-14  Eric Seidel  <eric@webkit.org>
96413
96414         Reviewed by Alexey.
96415
96416         Clean up GlyphBuffer.h, removing more #ifdefs
96417
96418         * platform/graphics/GlyphBuffer.h:
96419         (WebCore::GlyphBuffer::glyphAt):
96420         (WebCore::GlyphBuffer::advanceAt):
96421         (WebCore::GlyphBuffer::add):
96422
96423 2008-08-14  Eric Seidel  <eric@webkit.org>
96424
96425         Reviewed by Sam.
96426
96427         Clean up AffineTransform.h, removing #ifdefs
96428
96429         * platform/graphics/AffineTransform.h:
96430         * platform/graphics/cairo/AffineTransformCairo.cpp:
96431         * platform/graphics/cg/AffineTransformCG.cpp:
96432         * platform/graphics/qt/AffineTransformQt.cpp:
96433         * platform/graphics/wx/AffineTransformWx.cpp:
96434
96435 2008-08-14  Dan Bernstein  <mitz@apple.com>
96436
96437         - fix non-CG builds by adding an ImageSource::frameSizeAtIndex() that returns size().
96438
96439         * platform/graphics/cairo/ImageSourceCairo.cpp:
96440         (WebCore::ImageSource::frameSizeAtIndex):
96441         * platform/graphics/qt/ImageSourceQt.cpp:
96442         (WebCore::ImageSource::frameSizeAtIndex):
96443         * platform/graphics/wx/ImageSourceWx.cpp:
96444         (WebCore::ImageSource::frameSizeAtIndex):
96445
96446 2008-08-14  Dan Bernstein  <mitz@apple.com>
96447
96448         Reviewed by Brady Eidson.
96449
96450         - fix <rdar://problem/5993323> REGRESSION (r34210): Apple.com favicon appears stretched/clipped
96451
96452         * platform/graphics/BitmapImage.cpp:
96453         (WebCore::BitmapImage::BitmapImage): Added initialization of
96454         m_hasUniformFrameSize.
96455         (WebCore::BitmapImage::cacheFrame): Added code to get the size of the
96456         cached frame for use in decoded size computation and for setting
96457         m_hasUniformFrameSize.
96458         (WebCore::BitmapImage::currentFrameSize): Added.
96459         (WebCore::BitmapImage::dataChanged): Added code to reset
96460         m_hasUniformFrameSize.
96461         * platform/graphics/BitmapImage.h: Added currentFrameSize() and
96462         m_hasUniformFrameSize.
96463         * platform/graphics/ImageSource.h: Added frameSizeAtIndex().
96464         * platform/graphics/cg/ImageCG.cpp:
96465         (WebCore::BitmapImage::draw): Changed to use currentFrameSize(). This
96466         fixes the bug, which resulted from assuming that the frame being drawn
96467         was the same size as the first frame.
96468         * platform/graphics/cg/ImageSourceCG.cpp:
96469         (WebCore::ImageSource::frameSizeAtIndex): Renamed size() to this and
96470         changed to get the size of the frame at the given index.
96471         (WebCore::ImageSource::size): Added. Returns frameSizeAtIndex(0).
96472
96473 2008-08-13  Simon Fraser  <simon.fraser@apple.com>
96474
96475         Reviewed by Eric Seidel
96476
96477         Fix @font-face inside @media rule crash.
96478         https://bugs.webkit.org/show_bug.cgi?id=20367
96479
96480         Test: fast/css/font-face-in-media-rule.html
96481
96482         * css/CSSStyleSelector.cpp:
96483         (WebCore::CSSRuleSet::addRulesFromSheet):
96484
96485 2008-08-14  Kevin Ollivier  <kevino@theolliviers.com>
96486
96487         wx build fixes after recent changes to Canvas and Image classes.
96488
96489         * platform/graphics/Pattern.h:
96490         * platform/graphics/wx/GradientWx.cpp:
96491         (WebCore::Gradient::fill):
96492         * platform/graphics/wx/GraphicsContextWx.cpp:
96493         (WebCore::GraphicsContext::applyFillPattern):
96494         (WebCore::GraphicsContext::applyStrokePattern):
96495         * platform/graphics/wx/ImageBufferWx.cpp:
96496         (WebCore::ImageBuffer::image):
96497         * platform/graphics/wx/ImageWx.cpp:
96498         (WebCore::Image::loadPlatformResource):
96499
96500 2008-08-14  Maxime Britto  <britto@apple.com>
96501
96502         Reviewed by Sam Weinig.
96503
96504         rdar://6102511
96505         When pan-scrolling, typing on the keyboard should either stop the pan scroll or be ignored
96506         IE and FF are both preventing the keyboard event to interact with the page while scrolling.
96507         Some differences exist between them concerning the kind of key which is pressed :
96508         IE7 : every key leads to a stop of the panning
96509         FF3 : the ESC and TAB keys leads to a stop, the other keys are inactive.
96510         For WebKit this patch is adopting the FF3 behavior except for the TAB key which is inactive too.
96511
96512         * page/EventHandler.cpp:
96513         (WebCore::EventHandler::keyEvent): Verifies which key has been hit and decide either to stop the pan scroll or to swallow the key event.
96514
96515 2008-08-14  Christian Dywan  <christian@twotoasts.de>
96516
96517         Gtk+/ Cairo build fix, patch by Dirk Schulze.
96518
96519         * html/CanvasStyle.cpp:
96520         * platform/graphics/cairo/PatternCairo.cpp:
96521         (WebCore::Pattern::createPlatformPattern):
96522         * svg/graphics/cairo/SVGResourceMaskerCairo.cpp:
96523
96524 2008-08-14  Kevin McCullough  <kmccullough@apple.com>
96525
96526         Reviewed by Tim.
96527
96528         <rdar://problem/6115819> Notify of profile in console
96529
96530         * page/InspectorController.cpp:
96531         (WebCore::InspectorController::addProfile):
96532         (WebCore::InspectorController::addProfileMessageToConsole): Called by
96533         addProfile this is the function that adds a message to the console that
96534         a profile finished.
96535         * page/InspectorController.h:
96536         * page/JavaScriptProfile.cpp: Expose the profiler's unique ID to match
96537         the console log to the profile in the web inspector.
96538         (WebCore::getUniqueIdCallback):
96539         (WebCore::ProfileClass):
96540         * page/inspector/ProfilesPanel.js: Created a map of all the profiles by
96541         Id to bring up the requested profile.  Also select and reveal the
96542         profile in the profile panel.  And created displayTitleForProfileLink()
96543         which formats a title taking into account if it's user initiated or if
96544         there are multiples. Lasty, I put the user initiated profile in a
96545         variable.
96546         * page/inspector/inspector.js: Make the profile title be a clickable
96547         link that will take the user to the identified profile.  Also expose
96548         the count of user initiated profiles so they can be displayed in the
96549         console with the correct count.
96550
96551 2008-08-14  Timothy Hatcher  <timothy@apple.com>
96552
96553         Avoid formating ConsoleMessages twice unless the message will be
96554         displayed in bubbles of a SourceFrame.
96555
96556         Reviewed by Kevin McCullough.
96557
96558         * page/inspector/Console.js:
96559         (WebInspector.ConsoleMessage): Only format the plain text message
96560         if the URL and line are valid and the level is error or warning.
96561         (WebInspector.ConsoleMessage.prototype.isErrorOrWarning): Added.
96562         Helper to test for error or warning level.
96563         * page/inspector/SourceFrame.js:
96564         (WebInspector.SourceFrame.prototype.addMessage): Don't add the
96565         message if there is no message or valid line or if the msg
96566         isn't an error or warning.
96567
96568 2008-08-14  Jan Michael Alonzo  <jmalonzo@webkit.org>
96569
96570         partial Gtk build fix, not reviewed
96571
96572         * platform/graphics/cairo/PatternCairo.cpp:
96573
96574 2008-08-13  Sam Weinig  <sam@webkit.org>
96575
96576         Reviewed by Anders Carlsson.
96577
96578         Fix style issue.
96579
96580         * html/HTMLMediaElement.cpp:
96581         (WebCore::HTMLMediaElement::pickMedia):
96582
96583 2008-08-13  Nikolas Zimmermann  <zimmermann@kde.org>
96584
96585         Build fix for Cairo, not reviewed. (exposed by gtk build slave)
96586         Continue Erics build fixes, after the Image cleanup.
96587
96588         * platform/graphics/cairo/ImageBufferCairo.cpp:
96589         (WebCore::ImageBuffer::image):
96590
96591 2008-08-13  Nikolas Zimmermann  <zimmermann@kde.org>
96592
96593         Build fix for Qt, not reviewed.
96594         Don't declare eventuallyMarkAsParserCreated in a block wrapped by !USE_QXMLSTREAM.
96595
96596         * dom/XMLTokenizer.cpp:
96597         (WebCore::eventuallyMarkAsParserCreated): Was erre
96598
96599 2008-08-13  Nikolas Zimmermann  <zimmermann@kde.org>
96600
96601         Build fix, not reviewed.
96602         Add ScriptElement.cpp to Gtk build.
96603
96604         * GNUmakefile.am:
96605
96606 2008-08-13  Nikolas Zimmermann  <zimmermann@kde.org>
96607
96608         Reviewed by Eric.
96609
96610         Fixes: https://bugs.webkit.org/show_bug.cgi?id=20372
96611
96612         Refactor HTMLScriptElement's code into a common base class: ScriptElement.
96613         SVGScriptElement will be converted to use ScriptElement in a follow-up patch.
96614
96615         This resolves code duplications and allows us to completly replace the old
96616         SVGScriptElement (which doesn't use CachedScript, no dynamic injected scripts etc..)
96617
96618         As ScriptElement, doesn't actually inherit from Element, we may want to rename
96619         it, though StyleElement uses the same naming convention, so I left it as is for now.
96620         Eventually we'll rename both files in future.
96621
96622         No functional changes yet, as SVGScriptElement doesn't yet use the new base class.
96623
96624         * WebCore.pro: Add new ScriptElement.cpp to build.
96625         * WebCore.vcproj/WebCore.vcproj: Ditto.
96626         * WebCore.xcodeproj/project.pbxproj: Ditto.
96627         * WebCoreSources.bkl: Dutto.
96628         * dom/ScriptElement.cpp: Added. 1:1 based on HTMLScriptElement
96629         (WebCore::ScriptElement::insertedIntoDocument):
96630         (WebCore::ScriptElement::removedFromDocument):
96631         (WebCore::ScriptElement::childrenChanged):
96632         (WebCore::ScriptElement::finishParsingChildren):
96633         (WebCore::ScriptElement::handleSourceAttribute):
96634         (WebCore::isSupportedJavaScriptLanguage):
96635         (WebCore::ScriptElementData::ScriptElementData):
96636         (WebCore::ScriptElementData::~ScriptElementData):
96637         (WebCore::ScriptElementData::requestScript):
96638         (WebCore::ScriptElementData::evaluateScript):
96639         (WebCore::ScriptElementData::stopLoadRequest):
96640         (WebCore::ScriptElementData::notifyFinished):
96641         (WebCore::ScriptElementData::ignoresLoadRequest):
96642         (WebCore::ScriptElementData::shouldExecuteAsJavaScript):
96643         (WebCore::ScriptElementData::scriptCharset):
96644         (WebCore::ScriptElementData::scriptContent):
96645         * dom/ScriptElement.h: Added.
96646         (WebCore::ScriptElement::ScriptElement):
96647         (WebCore::ScriptElement::~ScriptElement):
96648         (WebCore::ScriptElementData::element):
96649         (WebCore::ScriptElementData::createdByParser):
96650         (WebCore::ScriptElementData::setCreatedByParser):
96651         * dom/XMLTokenizer.cpp:
96652         (WebCore::isScriptElement):
96653         (WebCore::castToScriptElement):
96654         (WebCore::eventuallyMarkAsParserCreated):
96655         (WebCore::XMLTokenizer::startElementNs):
96656         (WebCore::XMLTokenizer::endElementNs):
96657         (WebCore::createXHTMLParserErrorHeader):
96658         (WebCore::XMLTokenizer::insertErrorMessageBlock):
96659         * html/HTMLScriptElement.cpp: Refactored code, pushed most code down to ScriptElement.
96660         (WebCore::HTMLScriptElement::HTMLScriptElement):
96661         (WebCore::HTMLScriptElement::~HTMLScriptElement):
96662         (WebCore::HTMLScriptElement::isURLAttribute):
96663         (WebCore::HTMLScriptElement::setCreatedByParser):
96664         (WebCore::HTMLScriptElement::shouldExecuteAsJavaScript):
96665         (WebCore::HTMLScriptElement::childrenChanged):
96666         (WebCore::HTMLScriptElement::parseMappedAttribute):
96667         (WebCore::HTMLScriptElement::finishParsingChildren):
96668         (WebCore::HTMLScriptElement::insertedIntoDocument):
96669         (WebCore::HTMLScriptElement::removedFromDocument):
96670         (WebCore::HTMLScriptElement::text):
96671         (WebCore::HTMLScriptElement::setText):
96672         (WebCore::HTMLScriptElement::setHtmlFor):
96673         (WebCore::HTMLScriptElement::setEvent):
96674         (WebCore::HTMLScriptElement::charset):
96675         (WebCore::HTMLScriptElement::src):
96676         (WebCore::HTMLScriptElement::type):
96677         (WebCore::HTMLScriptElement::scriptCharset):
96678         (WebCore::HTMLScriptElement::scriptContent):
96679         (WebCore::HTMLScriptElement::sourceAttributeValue):
96680         (WebCore::HTMLScriptElement::charsetAttributeValue):
96681         (WebCore::HTMLScriptElement::typeAttributeValue):
96682         (WebCore::HTMLScriptElement::languageAttributeValue):
96683         (WebCore::HTMLScriptElement::dispatchLoadEvent):
96684         (WebCore::HTMLScriptElement::dispatchErrorEvent):
96685         * html/HTMLScriptElement.h:
96686         * svg/SVGScriptElement.cpp: Inherit from ScriptElement, don't actually use it yet.
96687         * svg/SVGScriptElement.cpp:
96688         (WebCore::SVGScriptElement::SVGScriptElement):
96689         (WebCore::SVGScriptElement::scriptContent):
96690         (WebCore::SVGScriptElement::sourceAttributeValue):
96691         (WebCore::SVGScriptElement::charsetAttributeValue):
96692         (WebCore::SVGScriptElement::typeAttributeValue):
96693         (WebCore::SVGScriptElement::languageAttributeValue):
96694         (WebCore::SVGScriptElement::dispatchLoadEvent):
96695         (WebCore::SVGScriptElement::dispatchErrorEvent):
96696         * svg/SVGScriptElement.h:
96697         (WebCore::SVGScriptElement::setCreatedByParser):
96698
96699 2008-08-13  Eric Seidel  <eric@webkit.org>
96700
96701         Attempt to fix the Gtk build, no review.
96702
96703         I removed the bogus GraphicsContext::translatePoint() hack for Gtk in the process.
96704
96705         * platform/graphics/GraphicsContext.h:
96706         * platform/graphics/cairo/GraphicsContextCairo.cpp:
96707         * platform/graphics/qt/GradientQt.cpp:
96708         * platform/graphics/qt/GraphicsContextQt.cpp:
96709         * platform/gtk/RenderThemeGtk.cpp:
96710         (WebCore::paintMozWidget):
96711
96712 2008-08-13  Eric Seidel  <eric@webkit.org>
96713
96714         Yet another attempt to fix the Qt build, no review.
96715
96716         * platform/graphics/qt/GradientQt.cpp:
96717         * platform/graphics/qt/GraphicsContextQt.cpp:
96718         (WebCore::GraphicsContext::applyStrokePattern):
96719         (WebCore::GraphicsContext::applyFillPattern):
96720
96721 2008-08-13  Eric Seidel  <eric@webkit.org>
96722
96723         Attempt to fix the Windows build, no review.
96724
96725         * platform/win/CursorWin.cpp:
96726         (WebCore::loadCursorByName):
96727         * platform/win/ScrollViewWin.cpp:
96728         (WebCore::ScrollView::paint):
96729
96730 2008-08-13  Eric Seidel  <eric@webkit.org>
96731
96732         Attempt to fix the Windows build, no review.
96733
96734         * platform/win/CursorWin.cpp:
96735         (WebCore::loadCursorByName):
96736         * platform/win/ScrollViewWin.cpp:
96737         (WebCore::ScrollView::paint):
96738
96739 2008-08-13  Eric Seidel  <eric@webkit.org>
96740
96741         Attempt to fix the Qt build, no review.
96742
96743         * platform/graphics/qt/ImageBufferQt.cpp:
96744         (WebCore::ImageBuffer::image):
96745
96746 2008-08-13  Eric Seidel  <eric@webkit.org>
96747
96748         Attempt to fix the Windows build, no review.
96749
96750         * platform/graphics/win/ImageWin.cpp:
96751         (WebCore::Image::loadPlatformResource):
96752         * plugins/win/PluginViewWin.cpp:
96753         (WebCore::PluginView::paintMissingPluginIcon):
96754
96755 2008-08-13  Eric Seidel  <eric@webkit.org>
96756
96757         Another attempt to fix the Qt build, no review.
96758
96759         * platform/graphics/qt/ImageQt.cpp:
96760         * platform/graphics/qt/StillImageQt.h:
96761
96762 2008-08-13  Eric Seidel  <eric@webkit.org>
96763
96764         No review, build fix only.
96765
96766         Fix mac build, due to change in new code since my patch was written.
96767
96768         * svg/graphics/cg/SVGResourceMaskerCg.mm:
96769         (WebCore::SVGResourceMasker::applyMask):
96770
96771 2008-08-13  Eric Seidel  <eric@webkit.org>
96772
96773         Build fix only, no review.
96774
96775         Attempt to fix the Qt build.
96776
96777         * platform/graphics/qt/ImageBufferQt.cpp:
96778         * platform/graphics/qt/StillImageQt.h:
96779         (WebCore::StillImage::create):
96780         (WebCore::StillImage::destroyDecodedData):
96781         (WebCore::StillImage::decodedSize):
96782
96783 2008-08-13  Eric Seidel  <eric@webkit.org>
96784
96785         Build fix only, no review.
96786
96787         Attempt to fix the Qt build.
96788
96789         * html/CanvasStyle.cpp:
96790         (WebCore::CanvasStyle::applyStrokeColor):
96791         (WebCore::CanvasStyle::applyFillColor):
96792
96793 2008-08-13  Eric Seidel  <eric@webkit.org>
96794
96795         Reviewed by Sam.
96796
96797         Match HTML5 spec by throwing INVALID_STATE_ERR when
96798         createPattern is called and the HTMLImageElement is not
96799         yet done loading the image (!isComplete)
96800         https://bugs.webkit.org/show_bug.cgi?id=20351
96801
96802         Test: http/misc/canvas-pattern-from-incremental-image.html
96803
96804         * html/CanvasRenderingContext2D.cpp:
96805         (WebCore::CanvasRenderingContext2D::createPattern):
96806
96807 2008-08-13  Eric Seidel  <eric@webkit.org>
96808
96809         Reviewed by Niko.
96810
96811         Split out a Pattern class from CanvasPattern
96812         and remove all the Pattern-related #ifdefs
96813         (This will break non-mac platforms!  I will fix them.)
96814         https://bugs.webkit.org/show_bug.cgi?id=20351
96815
96816         * GNUmakefile.am:
96817         * WebCore.pro:
96818         * WebCore.vcproj/WebCore.vcproj:
96819         * WebCore.xcodeproj/project.pbxproj:
96820         * WebCoreSources.bkl:
96821         * html/CanvasPattern.cpp:
96822         (WebCore::CanvasPattern::parseRepetitionType):
96823         (WebCore::CanvasPattern::CanvasPattern):
96824         * html/CanvasPattern.h:
96825         (WebCore::CanvasPattern::create):
96826         (WebCore::CanvasPattern::pattern):
96827         (WebCore::CanvasPattern::originClean):
96828         * html/CanvasRenderingContext2D.cpp:
96829         (WebCore::CanvasRenderingContext2D::createPattern):
96830         (WebCore::CanvasRenderingContext2D::applyStrokePattern):
96831         (WebCore::CanvasRenderingContext2D::applyFillPattern):
96832         * html/CanvasRenderingContext2D.h:
96833         * html/HTMLCanvasElement.cpp:
96834         * html/HTMLCanvasElement.h:
96835         * loader/FrameLoader.cpp:
96836         (WebCore::FrameLoader::createHistoryItem):
96837         * platform/graphics/GraphicsContext.h:
96838         * platform/graphics/cairo/GraphicsContextCairo.cpp:
96839         (WebCore::GraphicsContext::applyStrokePattern):
96840         (WebCore::GraphicsContext::applyFillPattern):
96841         * platform/graphics/cg/GraphicsContextCG.cpp:
96842         (WebCore::GraphicsContext::clipToImageBuffer):
96843         (WebCore::GraphicsContext::applyStrokePattern):
96844         (WebCore::GraphicsContext::applyFillPattern):
96845
96846 2008-08-13  Eric Seidel  <eric@webkit.org>
96847
96848         Reviewed by Niko.
96849
96850         Make Images RefCounted (and clean up callers)
96851         https://bugs.webkit.org/show_bug.cgi?id=20351
96852
96853         * editing/DeleteButtonController.cpp:
96854         (WebCore::DeleteButtonController::createDeletionUI):
96855         * loader/CachedImage.cpp:
96856         (WebCore::CachedImage::CachedImage):
96857         (WebCore::brokenImage):
96858         (WebCore::nullImage):
96859         (WebCore::CachedImage::image):
96860         (WebCore::CachedImage::notifyObservers):
96861         (WebCore::CachedImage::createImage):
96862         * loader/CachedImage.h:
96863         * loader/icon/IconRecord.cpp:
96864         (WebCore::IconRecord::setImageData):
96865         (WebCore::IconRecord::loadImageFromResource):
96866         * loader/icon/IconRecord.h:
96867         * platform/graphics/BitmapImage.h:
96868         (WebCore::BitmapImage::create):
96869         * platform/graphics/GeneratedImage.h:
96870         * platform/graphics/Gradient.cpp:
96871         * platform/graphics/Gradient.h:
96872         * platform/graphics/Image.cpp:
96873         (WebCore::Image::nullImage):
96874         * platform/graphics/Image.h:
96875         * platform/graphics/ImageBuffer.h:
96876         * platform/graphics/cairo/ImageBufferCairo.cpp:
96877         (WebCore::ImageBuffer::image):
96878         * platform/graphics/cg/ImageBufferCG.cpp:
96879         (WebCore::ImageBuffer::image):
96880         (WebCore::ImageBuffer::getImageData):
96881         (WebCore::ImageBuffer::putImageData):
96882         * platform/graphics/cg/PDFDocumentImage.h:
96883         (WebCore::PDFDocumentImage::create):
96884         (WebCore::PDFDocumentImage::destroyDecodedData):
96885         (WebCore::PDFDocumentImage::decodedSize):
96886         * platform/graphics/gtk/ImageGtk.cpp:
96887         (WebCore::Image::loadPlatformResource):
96888         * platform/graphics/mac/ImageMac.mm:
96889         (WebCore::Image::loadPlatformResource):
96890         * rendering/RenderImage.cpp:
96891         * rendering/RenderLayer.cpp:
96892         (WebCore::RenderLayer::paintOverflowControls):
96893         * svg/graphics/SVGImage.cpp:
96894         (WebCore::SVGImage::nativeImageForCurrentFrame):
96895         * svg/graphics/SVGImage.h:
96896         (WebCore::SVGImage::create):
96897         (WebCore::SVGImage::destroyDecodedData):
96898         (WebCore::SVGImage::decodedSize):
96899         (WebCore::SVGImage::frameAtIndex):
96900         * svg/graphics/cairo/SVGPaintServerPatternCairo.cpp:
96901         (WebCore::SVGPaintServerPattern::setup):
96902         * svg/graphics/cairo/SVGResourceMaskerCairo.cpp:
96903         (WebCore::SVGResourceMasker::applyMask):
96904         * svg/graphics/cg/SVGPaintServerPatternCg.cpp:
96905         (WebCore::patternCallback):
96906         * svg/graphics/cg/SVGResourceMaskerCg.mm:
96907         (WebCore::SVGResourceMasker::applyMask):
96908
96909 2008-08-13  Eric Seidel  <eric@webkit.org>
96910
96911         Reviewed by Niko.
96912
96913         Remove #ifdefs from CanvasStyle by using platform/Color.h
96914         https://bugs.webkit.org/show_bug.cgi?id=20351
96915
96916         There are some down-sides to this commit.
96917         This commit limits us to 255 levels of grey for calls like:
96918         context.setStrokeStyle(.37, 1.0)
96919         previously CG might have used up to 32bits to store the grey level
96920         Since setStrokeStyle is not part of HTML5, I don't suspect the web will notice.
96921
96922         Likewise, setStrokeStyle/setFillStyle calls which used float colors are now limited
96923         to RGBA32 (like all the rest of colors in WebCore), thus:
96924         context.setStrokStyle(.37, .24, .456, .99) will now have the same precision as:
96925         context.strokeStyle = "rgba(.37, .24, .456, .99)", which is to say RGBA32
96926
96927         If this is a problem for Dashboard, we can either roll out this commit
96928         or add a beefier Color abstraction, which can be used internally by GraphicsContext
96929         when keeping state, and then GraphicsContext can grow some additional set* routines
96930         for setting the a grey/float/whatever fill and stroke.
96931
96932         * html/CanvasRenderingContext2D.cpp:
96933         (WebCore::CanvasRenderingContext2D::setFillStyle):
96934         * html/CanvasStyle.cpp:
96935         (WebCore::CanvasStyle::CanvasStyle):
96936         (WebCore::colorWithOverrideAlpha):
96937         (WebCore::CanvasStyle::applyStrokeColor):
96938         (WebCore::CanvasStyle::applyFillColor):
96939         * html/CanvasStyle.h:
96940         * platform/graphics/Color.cpp:
96941         (WebCore::colorFloatToRGBAByte):
96942         (WebCore::makeRGBA32FromFloats):
96943         * platform/graphics/Color.h:
96944
96945 2008-08-13  Eric Carlson  <eric.carlson@apple.com>
96946
96947         Reviewed by Adele Peterson.
96948
96949         Fix for <rdar://problem/6137931>
96950         https://bugs.webkit.org/show_bug.cgi?id=20360
96951         Remove all parameters from the MIME type before checking with the MIME type registry
96952
96953         Tests: media/video-source-type-params.html
96954
96955         * html/HTMLMediaElement.cpp:
96956         (WebCore::HTMLMediaElement::pickMedia): only pass the portion before the first ';'
96957         to isSupportedMediaMIMEType()
96958
96959 2008-08-13  Beth Dakin  <bdakin@apple.com>
96960
96961         Reviewed by Sam Weinig.
96962
96963         Fix for <rdar://problem/6141345>
96964
96965         This patch refines findString and markAllMatchesForText functions'
96966         interactions with disconnected frames. They no longer rely on
96967         knowing where a range is relative to the visible region and work
96968         with disconnected frames that contain frames.
96969
96970         * editing/Editor.cpp:
96971         (WebCore::Editor::insideVisibleArea): Now returns a bool instead of
96972         the visiblity enum.
96973         (WebCore::Editor::firstVisibleRange): This now returns the very
96974         first visible range in the document. It's no longer dependent on
96975         searching forward.
96976         (WebCore::Editor::lastVisibleRange): This now returns the very last
96977         visible range in the document. It's no longer dependent on
96978         searching backwards.
96979         (WebCore::Editor::nextVisibleRange): This returns the next visible
96980         range in the appropriate direction from the current range.
96981         * editing/Editor.h:
96982         * page/Frame.cpp:
96983         (WebCore::Frame::findString):
96984         (WebCore::Frame::markAllMatchesForText):
96985
96986 2008-08-13  Kevin Ollivier  <kevino@theolliviers.com>
96987
96988         wx build fix for case-sensitive platforms, like Linux.
96989
96990         * WebCoreSources.bkl:
96991
96992 2008-08-13  Marco Barisione  <marco.barisione@collabora.co.uk>
96993
96994         Reviewed by Holger Freyther.
96995
96996         http://bugs.webkit.org/show_bug.cgi?id=16881
96997         [GTK] PlatformScreenGtk is unimplemented
96998
96999         Original patch by Christian Dywan.
97000
97001         * platform/gtk/PlatformScreenGtk.cpp:
97002         (WebCore::screenDepth):
97003         (WebCore::screenDepthPerComponent):
97004         (WebCore::screenIsMonochrome):
97005         (WebCore::screenRect):
97006         (WebCore::screenAvailableRect):
97007
97008 2008-08-13  Jan Michael Alonzo  <jmalonzo@webkit.org>
97009
97010         Reviewed by Holger Freyther.
97011
97012         http://bugs.webkit.org/show_bug.cgi?id=20318
97013         SharedTimerGtk should use G_PRIORITY_DEFAULT_IDLE for g_idle_add
97014
97015         g_idle_add is the same as g_idle_add_full with a priority of
97016         G_PRIORITY_DEFAULT_IDLE, so we can safely use that.
97017
97018         * platform/gtk/SharedTimerGtk.cpp:
97019         (WebCore::setSharedTimerFireTime):
97020
97021 2008-08-13  Timothy Hatcher  <timothy@apple.com>
97022
97023         Changed the InspectorController so it can be notified when the
97024         attached state of the Inspector changes in WebKit.
97025
97026         Reviewed by Kevin McCullough.
97027
97028         * WebCore.base.exp: Updated the symbol for setWindowVisible.
97029         * page/InspectorController.cpp:
97030         (WebCore::InspectorController::setWindowVisible): Added an attached argument,
97031         that defaults to false.Call setAttachedWindow with the attached argument.
97032         (WebCore::InspectorController::setAttachedWindow): Call the script version
97033         of setAttachedWindow.
97034         * page/InspectorController.h:
97035         * page/inspector/inspector.js:
97036         (WebInspector.setAttachedWindow): Set the attached property.
97037
97038 2008-08-12  Timothy Hatcher  <timothy@apple.com>
97039
97040         Added a close button to the Inspector's toolbar when docked.
97041
97042         https://bugs.webkit.org/show_bug.cgi?id=14270
97043
97044         Reviewed by Kevin McCullough.
97045
97046         * page/InspectorController.cpp:
97047         (WebCore::closeWindow): Call InspectorController::closeWindow.
97048         (WebCore::InspectorController::windowScriptObjectAvailable):
97049         Added closeWindow to the script class.
97050         * page/InspectorController.h:
97051         * page/inspector/Images/closeButtons.png: Added.
97052         * page/inspector/inspector.css: Added and changed styles.
97053         * page/inspector/inspector.html: Added the close button.
97054         * page/inspector/inspector.js:
97055         (WebInspector.loaded): Added click event listener to the close button.
97056         (WebInspector.close): Call InspectorController.closeWindow.
97057
97058 2008-08-12  Timothy Hatcher  <timothy@apple.com>
97059
97060         Make the docked Web Inspector resizable. This is the cross platform
97061         portion of the code. Each InspectorClient needs to implement the
97062         real resize code.
97063
97064         https://bugs.webkit.org/show_bug.cgi?id=14282
97065
97066         Reviewed by Kevin McCullough.
97067
97068         * loader/EmptyClients.h: Added an empty setAttachedWindowHeight.
97069         * page/InspectorClient.h: Added setAttachedWindowHeight.
97070         * page/InspectorController.cpp:
97071         (WebCore::setAttachedWindowHeight): Call setAttachedWindowHeight
97072         on the InspectorController.
97073         (WebCore::InspectorController::setAttachedWindowHeight): Call
97074         setAttachedWindowHeight on the client.
97075         (WebCore::InspectorController::windowScriptObjectAvailable):
97076         Added setAttachedWindowHeight to the script class.
97077         * page/InspectorController.h:
97078         * page/inspector/inspector.css: Make the cursor on the toolbar be
97079         row-resize when docked.
97080         * page/inspector/inspector.js:
97081         (WebInspector.loaded): Always add the toolbarDragStart event listener.
97082         (WebInspector.toolbarDragStart): Return early if we are not attached
97083         and not on Leopard. Call WebInspector.elementDragStart.
97084         (WebInspector.toolbarDragEnd): Call WebInspector.elementDragEnd.
97085         (WebInspector.toolbarDrag): When attached call setAttachedWindowHeight,
97086         otherwise call moveByUnrestricted.
97087
97088 2008-08-13  Simon Hausmann  <hausmann@webkit.org>
97089
97090         Reviewed by Holger.
97091
97092         Initialize m_zoomsTextOnly in the Settings constructor.
97093
97094         * page/Settings.cpp:
97095         (WebCore::Settings::Settings):
97096
97097 2008-08-13  Brad Hughes <bhughes@trolltech.com>
97098
97099         Reviewed by Simon.
97100
97101         Fix compiling of QtWebKit in release mode with the Intel C++ Compiler for Linux
97102
97103         The latest upgrade of the intel compiler allows us to compile all of
97104         Qt with optimizations enabled (yay!).
97105
97106         * WebCore.pro:
97107
97108 2008-08-13  Prasanth Ullattil  <prasanth.ullattil@trolltech.com>
97109
97110         Reviewed by Simon.
97111
97112         Fix QtWebKit not displaying content on 403 HTTP responses
97113
97114         Just like with 404 responses also display content with 403, as
97115         used by http://audiio.ejamming.proteus-tech.com/audiio/profile/original_signup/
97116
97117         * platform/network/qt/QNetworkReplyHandler.cpp:
97118         (WebCore::QNetworkReplyHandler::finish):
97119
97120 2008-08-13  Simon Hausmann  <hausmann@webkit.org>
97121
97122         Reviewed by Holger.
97123
97124         Qt part of https://bugs.webkit.org/show_bug.cgi?id=18994
97125
97126         Make the formatting of String::format() locale independent through the use of QString::vsprintf.
97127
97128         * platform/text/String.cpp:
97129         (WebCore::String::format):
97130
97131 2008-08-13  Simon Hausmann  <hausmann@webkit.org>
97132
97133         Reviewed by Lars.
97134
97135         Fix QWebFrame::setHtml() not setting the new contents immediately.
97136
97137         Added a setter to the DocumentLoader to toggle the deferred loading of the main
97138         resource when it comes from substitute data.
97139
97140         Disable deferred loading of the main resource when we have valid substitute data,
97141         as used by QWebFrame::setHtml.
97142
97143         * loader/DocumentLoader.h:
97144
97145 2008-08-13  Mark Rowe  <mrowe@apple.com>
97146
97147         Speculative GTK build fix.
97148
97149         * GNUmakefile.am:  Add dependency info for JSSVGElementWrapperFactory.cpp.
97150
97151 2008-08-13  Thiago Macieira  <tjmaciei@trolltech.com>
97152
97153         Reviewed by Simon.
97154
97155         Fix encoding of [ and ] in the host part of the URL
97156
97157         Until QUrl is fixed (making QUrl's tolerant parser more tolerant), we have to
97158         add this workaround to the QUrl <> WebCore::KURL conversion operator so that it
97159         doesn't encode [ and ] when they are found in the host part. That is, the
97160         following URL:
97161         http://[::1]/
97162         is valid and should not be reencoded to:
97163         http://%5b::1%5d/
97164
97165         * platform/qt/KURLQt.cpp:
97166         (WebCore::KURL::operator QUrl):
97167
97168 2008-08-12  Mihnea Ovidenie  <mihnea@adobe.com>
97169
97170         Fix for https://bugs.webkit.org/show_bug.cgi?id=19891
97171         Broken HTML object elements cause de-reference of pointer to freed memory.
97172         If we fail to load an image for an object tag and we no longer believe the object tag points at
97173         an image, then clear m_imageLoader in the HTMLObjectElement so that we attempt to render the
97174         fall back content.
97175
97176         Reviewed by Dave Hyatt and Alexey Proskuryakov.
97177
97178         Test: http/tests/misc/object-image-error-with-onload.html
97179
97180         * html/HTMLObjectElement.cpp:
97181         (WebCore::HTMLObjectElement::renderFallbackContent):
97182         * page/Frame.cpp:
97183         (WebCore::Frame::Frame):
97184
97185 2008-08-12  Nikolas Zimmermann  <zimmermann@kde.org>
97186
97187         Reviewed by Dave.
97188
97189         Fixes: https://bugs.webkit.org/show_bug.cgi?id=19798
97190         Masks are translated, and the mask images are swapped on the y-axis.
97191
97192         Turned out that http://trac.webkit.org/changeset/31830/trunk/WebCore/svg/graphics/cg/SVGResourceMaskerCg.mm
97193         is guilty. GraphicsContext::clipToImageBuffer() does some extra transformations that SVGResourcesMaskerCg does not want.
97194
97195         Long term goal is to remove the SVGResource*/SVGPaintServer* classes anyway, so it's okay to duplicate
97196         the "clip to image buffer" functionality, in the CG specific SVGResourceMaskerCg class - as it was before.
97197
97198         * svg/graphics/cg/SVGResourceMaskerCg.mm:
97199         (WebCore::SVGResourceMasker::applyMask): Changed back to use CG clipping again.
97200
97201 2008-08-12  Dan Bernstein  <mitz@apple.com>
97202
97203         - WebCore part of <rdar://problem/6121636>
97204           Make fast*alloc() abort() on failure and add "try" variants that
97205           return NULL on failure.
97206
97207         Reviewed by Darin Adler.
97208
97209         * platform/Arena.cpp:
97210         (WebCore::ArenaAllocate): Removed null checking of fastMalloc()'s
97211         result.
97212         * platform/graphics/cg/ImageBufferCG.cpp:
97213         (WebCore::ImageBuffer::create): Changed to use tryFastCalloc().
97214
97215 2008-08-12  Dan Bernstein  <mitz@apple.com>
97216
97217         Reviewed by Darin Adler.
97218
97219         - fix https://bugs.webkit.org/show_bug.cgi?id=19348
97220           <rdar://problem/5978447> REGRESSION (r34193): Setting the size of a frame with javascript document.body.row no longer works
97221
97222         Test: fast/frames/frameset-style-recalc.html
97223
97224         * html/HTMLFrameSetElement.cpp:
97225         (WebCore::HTMLFrameSetElement::recalcStyle): Changed to call the base
97226         class implementation after marking for layout.
97227
97228 2008-08-12  Dan Bernstein  <mitz@apple.com>
97229
97230         Reviewed by John Sullivan.
97231
97232         - move shouldUpdateWhenOffscreen from Settings to FrameView and rename it shouldUpdateWhileHidden
97233
97234         * WebCore.base.exp:
97235         * page/FrameView.cpp:
97236         (WebCore::FrameViewPrivate::FrameViewPrivate):
97237         (WebCore::FrameView::shouldUpdateWhileHidden):
97238         (WebCore::FrameView::setShouldUpdateWhileHidden):
97239         * page/FrameView.h:
97240         * page/Settings.cpp:
97241         * page/Settings.h:
97242
97243 2008-08-12  Adam Roben  <aroben@apple.com>
97244
97245         Windows build fix
97246
97247         * bindings/js/JSSVGPODTypeWrapper.h: Align
97248         JSSVGDynamicPODTypeWrapper's and JSSVGStaticPODTypeWrapperWithParent's
97249         members on 16-byte boundaries to avoid an alignment warning.
97250
97251 2008-08-12  Nikolas Zimmermann  <zimmermann@kde.org>
97252
97253         Reviewed by Oliver.
97254
97255         Add new dynamice-update layout tests covering SVGMarkerElement.
97256         Fix bug: SVGMarkerElement's SVG DOM function calls don't update rendering.
97257         Fix orientAngle/orientType confusion: "auto" orient should always return "0" as angle.
97258
97259         Tests: svg/dynamic-updates/SVGMarkerElement-dom-markerHeight-attr.html
97260                svg/dynamic-updates/SVGMarkerElement-dom-markerUnits-attr.html
97261                svg/dynamic-updates/SVGMarkerElement-dom-markerWidth-attr.html
97262                svg/dynamic-updates/SVGMarkerElement-dom-orient-attr.html
97263                svg/dynamic-updates/SVGMarkerElement-dom-refX-attr.html
97264                svg/dynamic-updates/SVGMarkerElement-dom-refY-attr.html
97265                svg/dynamic-updates/SVGMarkerElement-svgdom-markerHeight-prop.html
97266                svg/dynamic-updates/SVGMarkerElement-svgdom-markerUnits-prop.html
97267                svg/dynamic-updates/SVGMarkerElement-svgdom-markerWidth-prop.html
97268                svg/dynamic-updates/SVGMarkerElement-svgdom-orientAngle-prop.html
97269                svg/dynamic-updates/SVGMarkerElement-svgdom-orientType-prop.html
97270                svg/dynamic-updates/SVGMarkerElement-svgdom-refX-prop.html
97271                svg/dynamic-updates/SVGMarkerElement-svgdom-refY-prop.html
97272                svg/dynamic-updates/SVGMarkerElement-svgdom-setOrientToAngle-call.html
97273                svg/dynamic-updates/SVGMarkerElement-svgdom-setOrientToAuto-call.html
97274
97275         * svg/SVGMarkerElement.cpp:
97276         (WebCore::SVGMarkerElement::SVGMarkerElement):
97277         (WebCore::SVGMarkerElement::parseMappedAttribute):
97278         (WebCore::SVGMarkerElement::svgAttributeChanged):
97279         (WebCore::SVGMarkerElement::childrenChanged):
97280         (WebCore::SVGMarkerElement::setOrientToAuto):
97281         (WebCore::SVGMarkerElement::setOrientToAngle):
97282         (WebCore::SVGMarkerElement::canvasResource):
97283
97284 2008-08-12  Nikolas Zimmermann  <zimmermann@kde.org>
97285
97286         Reviewed by Oliver.
97287
97288         Add new dynamic-update layout tests covering SVGImageElement.
97289         Fix bug: SVGImageElement doesn't react on 'preserveAspectRatio' changes.
97290
97291         Tests: svg/dynamic-updates/SVGImageElement-dom-height-attr.html
97292                svg/dynamic-updates/SVGImageElement-dom-preserveAspectRatio-attr.html
97293                svg/dynamic-updates/SVGImageElement-dom-width-attr.html
97294                svg/dynamic-updates/SVGImageElement-dom-x-attr.html
97295                svg/dynamic-updates/SVGImageElement-dom-y-attr.html
97296                svg/dynamic-updates/SVGImageElement-svgdom-height-prop.html
97297                svg/dynamic-updates/SVGImageElement-svgdom-preserveAspectRatio-prop.html
97298                svg/dynamic-updates/SVGImageElement-svgdom-width-prop.html
97299                svg/dynamic-updates/SVGImageElement-svgdom-x-prop.html
97300                svg/dynamic-updates/SVGImageElement-svgdom-y-prop.html
97301
97302         * svg/SVGImageElement.cpp:
97303         (WebCore::SVGImageElement::svgAttributeChanged):
97304
97305 2008-08-11  Anthony Ricaud  <rik24d@gmail.com>
97306
97307         Changed Option/Alt-Up or Down in CSS editing when the value is
97308         near zero to jump to the next integer.
97309
97310         Reviewed by Tim Hatcher.
97311
97312         https://bugs.webkit.org/show_bug.cgi?id=20326
97313
97314         * page/inspector/StylesSidebarPane.js:
97315
97316 2008-08-11  Anthony Ricaud  <rik24d@gmail.com>
97317
97318         Changed the line highlight transition for an easier animation.
97319
97320         Reviewed by Tim Hatcher.
97321
97322         * page/inspector/SourceFrame.js:
97323
97324 2008-08-11  Keishi Hattori  <casey.hattori@gmail.com>
97325
97326         Added support for some Firebug Command Line APIs.
97327
97328         Reviewed by Tim Hatcher.
97329
97330         https://bugs.webkit.org/show_bug.cgi?id=19867
97331         https://bugs.webkit.org/show_bug.cgi?id=19868
97332         https://bugs.webkit.org/show_bug.cgi?id=19869
97333         https://bugs.webkit.org/show_bug.cgi?id=19875
97334         https://bugs.webkit.org/show_bug.cgi?id=19876
97335         https://bugs.webkit.org/show_bug.cgi?id=19880
97336
97337         * page/inspector/Console.js:
97338         (WebInspector.Console.prototype._evalInInspectedWindow):
97339         Create an object on the inspected window that holds the console
97340         command line API functions. This object is used in a with statement
97341         around the typed expression.
97342
97343 2008-08-11  Nikolas Zimmermann  <zimmermann@kde.org>
97344
97345         Reviewed by Antti.
97346
97347         Fixes: http://bugs.webkit.org/show_bug.cgi?id=17736
97348
97349         JS wrapper objects around SVG POD types, that contain other SVG POD types with writable properties
97350         failed to update. Modification of the values were completly ignored (ie. transform.matrix.a = 50, didn't take any effect)
97351
97352         Added tests: svg/custom/svg-modify-currentTranslate.html
97353                      svg/custom/tearoffs-with-tearoffs.html
97354                      svg/custom/immutable-properties.html
97355
97356         Fixed tests: svg/dynamic-updates/SVGLinearGradientElement-svgdom-gradientTransform-prop.html
97357
97358         * bindings/js/JSSVGPODTypeWrapper.h:
97359         (WebCore::JSSVGDynamicPODTypeWrapper::commitChange):
97360         (WebCore::JSSVGStaticPODTypeWrapperWithPODTypeParent::create):
97361         (WebCore::JSSVGStaticPODTypeWrapperWithPODTypeParent::commitChange):
97362         (WebCore::JSSVGStaticPODTypeWrapperWithPODTypeParent::JSSVGStaticPODTypeWrapperWithPODTypeParent):
97363         (WebCore::JSSVGStaticPODTypeWrapperWithParent::create):
97364         (WebCore::JSSVGStaticPODTypeWrapperWithParent::operator PODType):
97365         (WebCore::JSSVGStaticPODTypeWrapperWithParent::commitChange):
97366         (WebCore::JSSVGStaticPODTypeWrapperWithParent::JSSVGStaticPODTypeWrapperWithParent):
97367         * bindings/scripts/CodeGenerator.pm:
97368         * bindings/scripts/CodeGeneratorJS.pm:
97369         * svg/SVGSVGElement.idl: Add [Immutable] markers to SVG POD attributes, that contain POD types with writable attributes.
97370         * svg/SVGZoomEvent.idl:  SVG specification explicitely demands these attributes to be readonly, even its content.
97371
97372 2008-08-11  Brady Eidson  <beidson@apple.com>
97373
97374         Reviewed by John and Anders
97375
97376         Fix for <rdar://problem/6141797>
97377
97378         When WebArchives were entirely a WebKit concept, there was a guarantee that a WebResource
97379         would never have nil data.
97380
97381         When they were pushed down into WebCore, that guarantee was lost, subtly changing a few
97382         semantics with some WebKit applications.
97383
97384         The guarantee was a good one and should be restored.
97385
97386         Note that ApplicationCacheResource doesn't need any updates to follow this rule as it already
97387         creates an empty data object in the case of null data for its own purposes.
97388
97389         * loader/SubstituteResource.h:
97390         (WebCore::SubstituteResource::SubstituteResource): ASSERT that the data is not null.  This
97391           well help any future subclassers not make this mistake.
97392
97393         * loader/archive/ArchiveResource.cpp:
97394         (WebCore::ArchiveResource::create): Return 0 if the data is null.
97395
97396 2008-08-11  Simon Fraser  <simon.fraser@apple.com>
97397
97398         Reviewed by Dave Hyatt
97399
97400         https://bugs.webkit.org/show_bug.cgi?id=20328
97401         Fix a problem when an 'all' transition transition with more than
97402         one property changing is interrupted, and did some AnimationController
97403         cleanup.
97404
97405         Test: transitions/interrupted-all-transition.html
97406
97407         * page/AnimationController.cpp:
97408         (WebCore::ImplicitAnimation::ImplicitAnimation):
97409         (WebCore::AnimationControllerPrivate::blendProperties):
97410         (WebCore::CompositeAnimation::updateTransitions):
97411         (WebCore::CompositeAnimation::cleanupFinishedAnimations):
97412         (WebCore::CompositeAnimation::setTransitionStartTime):
97413         (WebCore::CompositeAnimation::overrideImplicitAnimations):
97414         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
97415         (WebCore::ImplicitAnimation::animate):
97416         (WebCore::ImplicitAnimation::onAnimationEnd):
97417         (WebCore::ImplicitAnimation::sendTransitionEvent):
97418         (WebCore::ImplicitAnimation::affectsProperty):
97419         (WebCore::KeyframeAnimation::endAnimation):
97420         (WebCore::KeyframeAnimation::onAnimationEnd):
97421
97422 2008-08-11  Kevin McCullough  <kmccullough@apple.com>
97423
97424         Reviewed by Tim.
97425
97426         - Because console messages have group levels now, newly created messages
97427         that do not specify the level lose their message since the number of
97428         arguments is wrong.
97429
97430         * page/inspector/Console.js:
97431         * page/inspector/Resource.js:
97432
97433 2008-08-11  Alp Toker  <alp@nuanti.com>
97434
97435         Build fix. Add new files from r35666 (WebKitAnimationEvent). Also take
97436         the opportunity to sort the sources lists.
97437
97438         * GNUmakefile.am:
97439
97440 2008-08-11  Timothy Hatcher  <timothy@apple.com>
97441
97442         Speed up the the JavaScript syntax highlighter by generating
97443         the finders only once per script instead of per line.
97444
97445         https://bugs.webkit.org/show_bug.cgi?id=20346
97446
97447         Reviewed by Adam Roben.
97448
97449         * page/inspector/SourceFrame.js:
97450         (WebInspector.SourceFrame.prototype._syntaxHighlightJavascriptLine):
97451         Removed, factored into syntaxHighlightJavascript as an inline function.
97452         (WebInspector.SourceFrame.prototype.syntaxHighlightJavascript):
97453         Pulled in the _syntaxHighlightJavascriptLine so it will create a closure.
97454         Generate the finders before iterating the lines.
97455
97456 2008-08-11  Adam Roben  <aroben@apple.com>
97457
97458         Windows build fix
97459
97460         * WebCore.vcproj/WebCore.vcproj: Added JSWebKitAnimationEvent.cpp and
97461         JSWebKitTransitionEvent.cpp to the project. Let VS reformat the file,
97462         too.
97463
97464 2008-08-11  Dan Bernstein  <mitz@apple.com>
97465
97466         Reviewed by Darin Adler.
97467
97468         - fix <rdar://problem/6131096> Reproducible crash in CounterNode::isReset under guard malloc
97469
97470         Test: fast/css/counters/invalidate-cached-counter-node.html
97471
97472         * rendering/RenderContainer.cpp:
97473         (WebCore::RenderContainer::invalidateCounters): Added. Invalidates all
97474         RenderCounters in :before and :after content.
97475         * rendering/RenderContainer.h:
97476         * rendering/RenderCounter.cpp:
97477         (WebCore::RenderCounter::isCounter): Renamed isRenderCounter() to this
97478         to match the RenderObject method.
97479         (WebCore::RenderCounter::invalidate): Added. Resets the cached
97480         CounterNode and invalidates the object's layout and preferred widths.
97481         (WebCore::destroyCounterNodeChildren): Added a call to
97482         invalidateCounters().
97483         * rendering/RenderCounter.h:
97484         * rendering/RenderObject.h:
97485         (WebCore::RenderObject::invalidateCounters):
97486
97487 2008-08-11  Dean Jackson  <dino@apple.com>
97488
97489         Implement CSS Animation and Transition Events
97490         https://bugs.webkit.org/show_bug.cgi?id=20337
97491
97492         Implement the events defined in the CSS Animations
97493         and Transitions specifications so code can react
97494         to animations and transitions.
97495
97496         Reviewed by Tim Hatcher and Dave Hyatt.
97497
97498         * DerivedSources.make:
97499         * GNUmakefile.am:
97500         * WebCore.pro:
97501         * WebCore.vcproj/WebCore.vcproj:
97502         * WebCore.xcodeproj/project.pbxproj:
97503         * WebCoreSources.bkl:
97504             Build configs for new files
97505
97506         * bindings/js/JSDOMWindowBase.cpp:
97507         * bindings/js/JSDOMWindowBase.h:
97508         * bindings/js/JSEventCustom.cpp:
97509         * dom/Document.h:
97510         * dom/Event.cpp:
97511         * dom/Event.h:
97512         * dom/EventTarget.cpp:
97513         * dom/EventTargetNode.cpp:
97514         * dom/EventTargetNode.h:
97515         * html/HTMLElement.cpp:
97516         * page/AnimationController.cpp:
97517             do all the new event stuff
97518
97519         * html/HTMLAttributeNames.in:
97520             the onwebkitanimation* and onwebkittransitionend attrs
97521
97522         * dom/WebKitAnimationEvent.cpp: Added.
97523         * dom/WebKitAnimationEvent.h: Added.
97524         * dom/WebKitAnimationEvent.idl: Added.
97525         * dom/WebKitTransitionEvent.cpp: Added.
97526         * dom/WebKitTransitionEvent.h: Added.
97527         * dom/WebKitTransitionEvent.idl: Added.
97528             New files for the events
97529
97530         * manual-tests/transition-events.html: Added.
97531             New testfile
97532
97533 2008-08-11  Adam Roben  <aroben@apple.com>
97534
97535         Add a ForwardingHeader for wtf/NotFound.h
97536
97537         Rubberstamped by Darin Adler.
97538
97539         * ForwardingHeaders/wtf/NotFound.h: Added.
97540
97541 2008-08-11  Timothy Hatcher  <timothy@apple.com>
97542
97543         Fixes a bug where error bubbles in JavaScript resources would
97544         be clobbered by the syntax highlighter.
97545
97546         https://bugs.webkit.org/show_bug.cgi?id=20345
97547
97548         Reviewed by Adam Roben.
97549
97550         * manual-tests/inspector/resources/script-error.js: Added.
97551         * manual-tests/inspector/styled-error-bubbles-in-scripts.html: Added.
97552         * page/inspector/SourceFrame.js:
97553         (WebInspector.SourceFrame.prototype._addMessageToSource):
97554         Check the nodeType and not the nodeName, this is less fragile.
97555         (WebInspector.SourceFrame.prototype._syntaxHighlightJavascriptLine):
97556         Check if the lastChild is an error bubble, if so remove it before
97557         getting the line's textContent. Add the error bubble back at the end.
97558
97559 == Rolled over to ChangeLog-2008-08-10 ==