2009-04-22 Darin Adler <darin@apple.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2009-04-22  Darin Adler  <darin@apple.com>
2
3         * page/Navigator.idl: Touch this file to fix build since Geolocation
4         configuration was recently turned off.
5
6 2009-04-22  Justin Garcia  <justin.garcia@apple.com>
7
8         Reviewed by Darin Adler.
9
10         https://bugs.webkit.org/show_bug.cgi?id=25322
11         Can't delete empty paragraph after a block image
12         
13         Empty paragraph removal would have been handled by mergeParagraphs, but we stopped short
14         because of some code that avoided problems that would arise from Positions that would go
15         bad during deletion.  
16         
17         We have several checks that prevent us from using bad Positions, this one in particular
18         was added to avoid bad Positions that result from text removal.  So, I removed the check
19         and started correctly updating m_downstreamEnd during text removal so that it doesn't go
20         bad.  m_upstreamStart doesn't need to be updated during text removal, since only text
21         after it will ever be removed.
22
23         * editing/DeleteSelectionCommand.cpp:
24         (WebCore::DeleteSelectionCommand::deleteTextFromNode):
25         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
26         (WebCore::DeleteSelectionCommand::mergeParagraphs):
27
28 2009-04-22  Oliver Hunt  <oliver@apple.com>
29
30         Reviewed by Darin Adler.
31
32         <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves
33
34         Make mouseUp target the correct frame when the original
35         mousedown made the drag non-capturing.
36
37         * page/mac/EventHandlerMac.mm:
38         (WebCore::EventHandler::passSubframeEventToSubframe):
39
40 2009-04-22  Oliver Hunt  <oliver@apple.com>
41
42         Reviewed by Darin Adler.
43
44         <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves
45
46         This is the first step of allowing drag events to match the behaviour
47         of mouse move events when the default action of the initial mouse down
48         is prevented.  Remaining issue is that the final mouse up event still
49         targets the original root frame.
50
51         Test: fast/events/mouse-drag-from-frame-to-other-frame.html
52
53         * page/mac/EventHandlerMac.mm:
54         (WebCore::EventHandler::passSubframeEventToSubframe):
55
56 2009-04-22  Simon Fraser  <simon.fraser@apple.com>
57
58         Reviewed by Adele Peterson
59         
60         <rdar://problem/6702882> QT movie's video fails to be displayed after switching between tabs
61         <rdar://problem/6754957> Resizing Web browser window and hitting play will cause video blocks and artifacting
62
63         When in a media document, MediaPlayerPrivateQTKit uses a QTMovieView which may get
64         layer backing under some circumstances. However, drawing the view via
65         displayRectIgnoringOpacity:inContext: bypasses any layer setup that AppKit normally performs.
66         So when in the media document, we draw via displayRectIgnoringOpacity:.
67
68         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
69         (WebCore::MediaPlayerPrivate::paint):
70
71 2009-04-22  Timothy Hatcher  <timothy@apple.com>
72
73         Fix a crash in Mail when forwarding a specific HTML email.
74         Caused by the fix for <rdar://problem/6512520> (r42096).
75         Unable to create a test case that works outside of Mail.
76
77         <rdar://problem/6796069>
78
79         Reviewed by Ada Chan.
80
81         * editing/markup.cpp:
82         (WebCore::createMarkup): Null check pastEnd before trying to
83         call Range::compareBoundaryPoints.
84
85 2009-04-22  Sam Weinig  <sam@webkit.org>
86
87         Rubber-stamped by Darin Adler.
88
89         Fix for <rdar://problem/6816957>
90         Turn off Geolocation by default
91
92         * Configurations/FeatureDefines.xcconfig:
93
94 2009-04-22  Eric Seidel  <eric@webkit.org>
95
96         Rubber-stamped by David Hyatt.
97
98         Change RenderSVGImage to dump as RenderSVGImage instead of RenderImage
99
100         * rendering/RenderSVGImage.h:
101         (WebCore::RenderSVGImage::renderName):
102
103 2009-04-21  Timothy Hatcher  <timothy@apple.com>
104
105         Fix a crash on Gmail when they remove a "before unload" event listener when
106         it was never added to the pending map in the first place.
107
108         <rdar://problem/6814144>
109
110         Reviewed by Darin Adler.
111
112         * page/DOMWindow.cpp:
113         (WebCore::allowsPendingBeforeUnloadListeners): Renamed from shouldAddPendingBeforeUnloadListener.
114         (WebCore::DOMWindow::addEventListener): Call allowsPendingBeforeUnloadListeners now.
115         (WebCore::DOMWindow::removeEventListener): Call allowsPendingBeforeUnloadListeners before
116         removing the before unload listener.
117         (WebCore::DOMWindow::clearAttributeEventListener): Ditto.
118
119 2009-04-22  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
120
121         Reviewed by Ariya Hidayat.
122
123         Made windowed plugins move/resize synchronized with the painting, so
124         that windowed plugins are not moved before the rest of the parent
125         frame during scrolling.
126
127         * plugins/qt/PluginContainerQt.cpp:
128         (PluginContainerQt::PluginContainerQt):
129         (PluginContainerQt::requestGeometry):
130         (PluginContainerQt::adjustGeometry):
131         * plugins/qt/PluginContainerQt.h:
132         * plugins/qt/PluginViewQt.cpp:
133         (WebCore::PluginView::updatePluginWidget):
134         (WebCore::PluginView::paint):
135
136 2009-04-22  Simon Hausmann  <simon.hausmann@nokia.com>
137
138         Reviewed by Ariya Hidayat.
139
140         Fix various bugs in the X11 Qt plugin focus handling.
141
142         Notify the focus controller on activation/deactivation of the plugin and
143         set focus on the plugin's element when it receives the window system
144         focus.
145
146         * WebCore.pro: Added PluginContainerQt to the Qt build.
147         * plugins/PluginView.cpp:
148         (WebCore::PluginView::focusPluginElement): New helper function, moved from PluginViewWin.
149         * plugins/PluginView.h:
150         (WebCore::PluginView::parentFrame): Added parent frame accessor.
151         * plugins/qt/PluginContainerQt.cpp: Added.
152         (PluginContainerQt::PluginContainerQt):
153         (PluginContainerQt::focusInEvent): Set the focus controller active on focus in events.
154         (PluginContainerQt::focusOutEvent): Deactivate the focus controller when loosing the focus.
155         * plugins/qt/PluginContainerQt.h: Added.
156         * plugins/qt/PluginViewQt.cpp:
157         (WebCore::PluginView::init): Allocate a PluginContainerQt instead of QX11EmbedContainer.
158         * plugins/win/PluginViewWin.cpp:
159         (WebCore::PluginView::handleMouseEvent): Moved the code to set focus on the plugin element
160         to PluginView::focusPluginElement.
161
162 2009-04-22  Tamas Szirbucz  <szirbucz.tamas@stud.u-szeged.hu>
163
164         Reviewed by Ariya Hidayat.
165
166         https://bugs.webkit.org/show_bug.cgi?id=25023
167         Delete reply in QNetworkReplyHandler::abort() to avoid leak.
168
169         * platform/network/qt/QNetworkReplyHandler.cpp:
170         (WebCore::QNetworkReplyHandler::abort):
171
172 2009-04-21  Jon Honeycutt  <jhoneycutt@apple.com>
173
174         Allow the UI delegate to control cursor-setting.
175
176         Reviewed by Ada Chan.
177
178         * page/Chrome.cpp:
179         (WebCore::Chrome::setCursor):
180         Pass the call to the client.
181
182         * page/Chrome.h:
183
184         * page/ChromeClient.h:
185         (WebCore::ChromeClient::setCursor):
186         Stubbed; returns false.
187
188         * platform/Cursor.h:
189         Define PlatformCursorHandle for each platform.
190
191         * platform/win/WidgetWin.cpp:
192         Reordered some includes. Added an include of Page.h.
193         (WebCore::Widget::setCursor):
194         Fixed a typo in the comment about ignoreNextSetCursor. Get the Page, and
195         call its Chrome's setCursor() method with the passed cursor. Fall back
196         to SetCursor() if the Page is not available.
197
198         * plugins/win/PluginViewWin.cpp:
199         (WebCore::PluginView::handleMouseEvent):
200         Remove an unused variable. Cleaned up some whitespace.
201
202 2009-04-21  John Abd-El-Malek  <jam@google.com>
203
204         Reviewed by Dimitri Glazkov.
205
206         Add a method to purge the Chromium plugin list cache.
207         https://bugs.webkit.org/show_bug.cgi?id=25318
208
209         * plugins/chromium/PluginDataChromium.cpp:
210         (WebCore::resetChromiumPluginCache):
211
212 2009-04-21  Mark Rowe  <mrowe@apple.com>
213
214         Reviewed by Darin Adler.
215
216         Fix <https://bugs.webkit.org/show_bug.cgi?id=25164> / <rdar://problem/6786319>.
217
218         We need to ensure that XMLTokenizer sets the current DocLoader before calling in to
219         any libxml2 methods that may trigger a load.  The presence of a DocLoader indicates
220         that the load was originated by WebCore's use of libxml2 and that we should enforce
221         the same-origin policy on it.  XMLTokenizer::initializeParserContext,
222         XMLTokenizer::doWrite and XMLTokenizer::doEnd were three methods that were not setting
223         the current DocLoader when they should have.
224
225         The XMLTokenizerScope class is introduced to simplify the pattern of saving, setting and
226         restoring the current DocLoader and libxml2 error handlers.  The DocLoader and error handlers
227         are saved and set when the scope is allocated, and restored to their previous values when
228         the scope is exited.
229
230         Test: http/tests/security/xss-DENIED-xml-external-entity.xhtml
231
232         * GNUmakefile.am:
233         * WebCore.pro:
234         * WebCore.scons:
235         * WebCore.vcproj/WebCore.vcproj:
236         * WebCore.xcodeproj/project.pbxproj:
237         * dom/XMLTokenizer.cpp:
238         * dom/XMLTokenizer.h:
239         * dom/XMLTokenizerLibxml2.cpp:
240         (WebCore::matchFunc):
241         (WebCore::shouldAllowExternalLoad):
242         (WebCore::openFunc):
243         (WebCore::XMLTokenizer::doWrite):
244         (WebCore::XMLTokenizer::initializeParserContext):
245         (WebCore::XMLTokenizer::doEnd):
246         (WebCore::xmlDocPtrForString):
247         * dom/XMLTokenizerScope.cpp:
248         (WebCore::XMLTokenizerScope::XMLTokenizerScope):
249         (WebCore::XMLTokenizerScope::~XMLTokenizerScope):
250         * dom/XMLTokenizerScope.h:
251         * xml/XSLStyleSheet.cpp:
252         (WebCore::XSLStyleSheet::parseString):
253         * xml/XSLTProcessor.cpp:
254
255 2009-04-21  Sam Weinig  <sam@webkit.org>
256
257         Reviewed by Dan Bernstein.
258
259         Fix for <rdar://problem/5874009>
260         Add port 3659 (apple-sasl / PasswordServer) to the list of blocked ports.
261
262         * platform/network/ResourceHandle.cpp:
263         (WebCore::portAllowed):
264
265 2009-04-21  Justin Garcia  <justin.garcia@apple.com>
266
267         Reviewed by Dan Bernstein.
268
269         https://bugs.webkit.org/show_bug.cgi?id=25320
270         Crash when changing block styles in a root that contains no visible content (but contains nodes with renderers)
271
272         * editing/CompositeEditCommand.cpp:
273         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): If the enclosing block is the 
274         root editable element and it contains no visible content, create a new block but don't try and move 
275         content into it, since there's nothing for moveParagraphs to move.
276         
277
278 2009-04-21  Darin Adler  <darin@apple.com>
279
280         Reviewed by Dan Bernstein.
281
282         Bug 25162: REGRESSION (r41176-r41242): Drag-selection above/below the line does not select to beginning/end
283         https://bugs.webkit.org/show_bug.cgi?id=25162
284         rdar://problem/6764354
285
286         * page/Settings.cpp:
287         (WebCore::Settings::Settings): Initialize editing behavior to Mac-style for PLATFORM(MAC).
288         Later we may want to change this default to encompass other versions running on Mac.
289
290         * page/Settings.h: Added EditingBehavior, setEditingBehavior, editingBehavior, and
291         m_editingBehavior. Also moved m_maximumDecodedImageSize out of the middle of all
292         the bit fields.
293
294         * platform/graphics/IntPoint.h: Added a constructor to turn an IntSize into an IntPoint.
295         I'm not sure the distinction here is serving us well at the moment. When converting from
296         global to local coordinates you want to do IntPoint - IntPoint and have the result be
297         another IntPoint, not an IntSize. And so on.
298
299         * rendering/RenderBlock.cpp:
300         (WebCore::positionForPointRespectingEditingBoundaries): Changed to use pointers more and
301         separate coordinates less.
302         (WebCore::RenderBlock::positionForPointWithInlineChildren): Turned into a member function.
303         Added separate cases to support the Mac and Windows behavior.
304         (WebCore::RenderBlock::positionForPoint): Updated for the change above. Also moved the
305         computation of pointInContents closer to the place it's used.
306
307         * rendering/RenderBlock.h: Updated for the new private member function.
308
309 2009-04-17  Timothy Hatcher  <timothy@apple.com>
310
311         Change pending unload and beforeunload counts to store the listeners
312         in a single data structure that can be quickly iterated for dispatch.
313
314         <rdar://problem/6383352&6383379&6383940>
315
316         Reviewed by Darin Adler.
317
318         * WebCore.base.exp: Change what symbols are exported.
319         * loader/FrameLoader.cpp:
320         (WebCore::FrameLoader::stopLoading): Remove count updating code
321         and move an if inside a block already checking m_frame->document().
322         * page/Chrome.cpp: Remove disableSuddenTermination/enableSuddenTermination.
323         * page/Chrome.h: Ditto.
324         * page/ChromeClient.h: Ditto.
325         * page/DOMWindow.cpp:
326         (WebCore::pendingUnloadEventListenerMap): Create a static map.
327         (WebCore::pendingBeforeUnloadEventListenerMap): Ditto.
328         (WebCore::addPendingEventListener): Add the event listener to the map.
329         (WebCore::removePendingEventListener): Remove the event listener from the map.
330         (WebCore::removePendingEventListeners): Remove all listeners for the window.
331         (WebCore::dispatchWindowEventToListeners): Dispatch the event to the given listeners.
332         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Send the beforeunload event.
333         (WebCore::DOMWindow::pendingUnloadEventListeners): Return a count of pending listeners.
334         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Send the unload event.
335         (WebCore::DOMWindow::~DOMWindow): Remove the window from both event listener maps.
336         (WebCore::DOMWindow::addEventListener): Call addPendingEventListener when needed.
337         (WebCore::DOMWindow::removeEventListener): Call removePendingEventListener when needed.
338         (WebCore::DOMWindow::removeAllEventListeners): Call removePendingEventListeners.
339         (WebCore::DOMWindow::removeInlineEventListenerForType): Call removePendingEventListener when needed.
340         * page/DOMWindow.h:
341         (WebCore::DOMWindow::frame): Changed to be const.
342         * page/EventHandler.cpp:
343         (WebCore::EventHandler::EventHandler): Remove count tracking code.
344         * page/EventHandler.h: Ditto.
345         * page/Page.cpp:
346         (WebCore::Page::Page): Ditto.
347         * page/Page.h: Ditto.
348
349 2009-04-21  Justin Garcia  <justin.garcia@apple.com>
350
351         Reviewed by Darin Adler.
352
353         https://bugs.webkit.org/show_bug.cgi?id=19644
354         Text copied with Select All pastes with a indent but shouldn't
355         <rdar://problem/6102483> 
356         Pasting the content of an HTML message in Mail causes addition nested <div> elements to be added
357         
358         To improve selectall/copy/paste fidelity of certain pages, we began wrapping copied content with
359         a div that held properties and attributes from the fully selected body.  To fix the above issues, 
360         only do this if if the body has certain properties or attributes.  We'll begin adding to this list as 
361         necessary.  For now it's just background colors and images.  Tested copy/paste of nytimes, wired,
362         arstechnica, and several others.
363         
364         Massive nesting can still happen, it will just be much less common.
365
366         * editing/markup.cpp:
367         (WebCore::createMarkup): 
368
369 2009-04-21  Peter Kasting  <pkasting@google.com>
370
371         Reviewed by David Hyatt.
372
373         https://bugs.webkit.org/show_bug.cgi?id=25250
374         Allow platforms to snap the scroll thumb back to the drag origin
375         during a drag.  Implement functions for Safari/Win and Chromium/Win
376         to do this snapping at distances approximating the native ones.
377
378         * platform/Scrollbar.cpp:
379         (WebCore::Scrollbar::Scrollbar):
380         (WebCore::Scrollbar::setValue):
381         (WebCore::Scrollbar::scroll):
382         (WebCore::Scrollbar::moveThumb):
383         (WebCore::Scrollbar::setCurrentPos):
384         (WebCore::Scrollbar::mouseMoved):
385         (WebCore::Scrollbar::mouseDown):
386         * platform/Scrollbar.h:
387         * platform/ScrollbarTheme.h:
388         (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
389         * platform/chromium/ScrollbarThemeChromium.h:
390         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
391         (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin):
392         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
393         (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin):
394         * platform/win/ScrollbarThemeWin.cpp:
395         (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
396         (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
397         * platform/win/ScrollbarThemeWin.h:
398
399 2009-04-21  Adam Roben  <aroben@apple.com>
400
401         Windows build fix
402
403         * bindings/js/JSLazyEventListener.cpp:
404         (WebCore::eventParameterName): Remove unreachable code when SVG is
405         enabled.
406
407 2009-04-21  Kevin Ollivier  <kevino@theolliviers.com>
408
409         !ENABLE(SVG) build fix.
410         
411         * bindings/js/JSLazyEventListener.cpp:
412         (WebCore::eventParameterName):
413
414 2009-04-21  Dave Moore  <davemoore@google.com>
415
416         Reviewed by Dimitri Glazkov.
417
418         https://bugs.webkit.org/show_bug.cgi?id=25309
419         Better use AtomicStrings when calling from the V8
420         bindings into WebCore code.
421
422         * bindings/v8/custom/V8DOMWindowCustom.cpp:
423         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
424         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
425         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
426
427 2009-04-21  Chris Fleizach  <cfleizach@apple.com>
428
429         Reviewed by Darin Adler.
430  
431         Bug 25304: AX: Safari not identifying a secure text field
432         https://bugs.webkit.org/show_bug.cgi?id=25304
433
434         Secure text fields need to be able to return AXTitleUIElements.
435
436         Test: accessibility/secure-textfield-title-ui.html
437
438         * page/mac/AccessibilityObjectWrapper.mm:
439         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
440
441 2009-04-21  Dan Bernstein  <mitz@apple.com>
442
443         - fix the Tiger build
444
445         * page/mac/EventHandlerMac.mm:
446         (method_setImplementation):
447
448 2009-04-21   Laszlo Gombos  <laszlo.1.gombos@nokia.com>
449
450         Reviewed by Sam Weinig.
451
452         https://bugs.webkit.org/show_bug.cgi?id=25271
453
454         Fix the build with disabled DOM storage or disabled database support.
455
456         * bindings/js/ScriptObjectQuarantine.cpp:
457         * bindings/js/ScriptObjectQuarantine.h:
458
459 2009-04-21  Holger Hans Peter Freyther  <zecke@selfish.org>
460
461         Unreviewed build fix.
462
463         Compile fix for r42633. const qualifier does not work
464         on a static method.
465
466         * dom/Document.h:
467         (WebCore::Document::isSVGDocument):
468
469 2009-04-21  Dan Bernstein  <mitz@apple.com>
470
471         Reviewed by Darin Adler and John Sullivan.
472
473         - fix <rdar://problem/5914146> Crash at -[NSScrollView scrollWheel:]
474
475         -[NSScrollView scrollWheel:] runs a nested event-tracking run loop
476         in a mode that allows WebCore timers to fire and NSURLConnection
477         callbacks to be dispatched, which can release the NSScrollView and
478         cause it to be deallocated (one example is a DOM timer callback that
479         removes a subframe from the document). This leads to a crash in
480         -scrollView:.
481
482         The fix is to replace the implementation of -[NSScrollView scrollWheel:]
483         with one that optionally retains the receiver for the duration of the
484         call.
485
486         * page/mac/EventHandlerMac.mm:
487         (WebCore::nsScrollViewScrollWheelShouldRetainSelf): Added.
488         (WebCore::setNSScrollViewScrollWheelShouldRetainSelf): Added. Replaces
489         the implementation of -[NSScrollView scrollWheel:] with the
490         self-retaining one, and sets a static boolean that tells it whether to
491         retain the receiver around the call to the original implementation.
492         (WebCore::selfRetainingNSScrollViewScrollWheel): Added. If
493         setNSScrollViewScrollWheelShouldRetainSelf(true) was called and this
494         function is executing on the main thread, it retains the NSScrollView,
495         invokes the original -[NSScrollView scrollWheel:], then releases the
496         view. Otherwise it just calls through to the original implementation.
497         (WebCore::EventHandler::passWheelEventToWidget): Added calls to
498         setNSScrollViewScrollWheelShouldRetainSelf() around the call to
499         -scrollWheel:.
500
501 2009-04-21  Geoffrey Garen  <ggaren@apple.com>
502
503         Reviewed by Mark Rowe.
504
505         Tiger crash fix: Put VM tags in their own header file, and fixed up the
506         #ifdefs so they're not used on Tiger.
507
508         * ForwardingHeaders/wtf/VMTags.h: Copied from WebCore/ForwardingHeaders/wtf/HashTraits.h.
509
510 2009-04-21  Xan Lopez  <xlopez@igalia.com>
511
512         Reviewed by Gustavo Noronha.
513
514         https://bugs.webkit.org/show_bug.cgi?id=21546
515         [GTK] ATK accessibility enhancements
516
517         Based on a patch by Alp Toker.
518
519         Implement AtkComponent interface.
520
521         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
522         (core):
523
524 2009-04-21  Xan Lopez  <xlopez@igalia.com>
525
526         Reviewed by Gustavo Noronha.
527
528         https://bugs.webkit.org/show_bug.cgi?id=21546
529         [GTK] ATK accessibility enhancements
530
531         Only implement AtkAction interface if we actually have an action.
532
533         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
534
535 2009-04-20  Alexey Proskuryakov  <ap@webkit.org>
536
537         Reviewed by Darin Adler.
538
539         https://bugs.webkit.org/show_bug.cgi?id=25290
540         REGRESSION(r41732): Crash when constructing XMLHttpRequest in a detached document
541
542         Test: fast/dom/xmlhttprequest-constructor-in-detached-document.html
543
544         * bindings/js/JSAudioConstructor.cpp:
545         (WebCore::JSAudioConstructor::JSAudioConstructor):
546         * bindings/js/JSAudioConstructor.h:
547         * bindings/js/JSDOMGlobalObject.h:
548         (WebCore::getDOMConstructor):
549         * bindings/js/JSImageConstructor.cpp:
550         (WebCore::JSImageConstructor::JSImageConstructor):
551         * bindings/js/JSImageConstructor.h:
552         * bindings/js/JSMessageChannelConstructor.cpp:
553         (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
554         * bindings/js/JSMessageChannelConstructor.h:
555         * bindings/js/JSOptionConstructor.cpp:
556         (WebCore::JSOptionConstructor::JSOptionConstructor):
557         * bindings/js/JSOptionConstructor.h:
558         * bindings/js/JSXMLHttpRequestConstructor.cpp:
559         (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
560         * bindings/js/JSXMLHttpRequestConstructor.h:
561         Avoid accessing JSDOMGlobalObject via ScriptExecutionContext, since it may not
562         work during frame teardown.
563
564 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
565
566         Rubber stamped by Darin Adler and Sam Weinig.
567
568         Renamed "*InlineEventListener*" => "*AttributeEventListener*", and
569         "isInline" => "isAttribute".
570
571         * bindings/js/JSDOMGlobalObject.cpp:
572         (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
573         * bindings/js/JSEventListener.cpp:
574         (WebCore::JSEventListener::JSEventListener):
575         (WebCore::JSEventListener::~JSEventListener):
576         (WebCore::JSEventListener::handleEvent):
577         (WebCore::JSEventListener::virtualisAttribute):
578         * bindings/js/JSEventListener.h:
579         (WebCore::JSEventListener::create):
580         (WebCore::JSEventListener::isAttribute):
581         * bindings/js/JSLazyEventListener.cpp:
582         (WebCore::createAttributeEventListener):
583         * bindings/js/JSLazyEventListener.h:
584         * bindings/scripts/CodeGeneratorJS.pm:
585         * dom/Element.cpp:
586         (WebCore::Element::setWindowAttributeEventListener):
587         * dom/Element.h:
588         * dom/EventListener.h:
589         (WebCore::EventListener::isAttribute):
590         (WebCore::EventListener::virtualisAttribute):
591         * dom/Node.cpp:
592         (WebCore::Node::clearAttributeEventListener):
593         (WebCore::Node::setAttributeEventListener):
594         (WebCore::Node::getAttributeEventListener):
595         (WebCore::Node::onabort):
596         (WebCore::Node::setOnabort):
597         (WebCore::Node::onblur):
598         (WebCore::Node::setOnblur):
599         (WebCore::Node::onchange):
600         (WebCore::Node::setOnchange):
601         (WebCore::Node::onclick):
602         (WebCore::Node::setOnclick):
603         (WebCore::Node::oncontextmenu):
604         (WebCore::Node::setOncontextmenu):
605         (WebCore::Node::ondblclick):
606         (WebCore::Node::setOndblclick):
607         (WebCore::Node::onerror):
608         (WebCore::Node::setOnerror):
609         (WebCore::Node::onfocus):
610         (WebCore::Node::setOnfocus):
611         (WebCore::Node::oninput):
612         (WebCore::Node::setOninput):
613         (WebCore::Node::onkeydown):
614         (WebCore::Node::setOnkeydown):
615         (WebCore::Node::onkeypress):
616         (WebCore::Node::setOnkeypress):
617         (WebCore::Node::onkeyup):
618         (WebCore::Node::setOnkeyup):
619         (WebCore::Node::onload):
620         (WebCore::Node::setOnload):
621         (WebCore::Node::onmousedown):
622         (WebCore::Node::setOnmousedown):
623         (WebCore::Node::onmousemove):
624         (WebCore::Node::setOnmousemove):
625         (WebCore::Node::onmouseout):
626         (WebCore::Node::setOnmouseout):
627         (WebCore::Node::onmouseover):
628         (WebCore::Node::setOnmouseover):
629         (WebCore::Node::onmouseup):
630         (WebCore::Node::setOnmouseup):
631         (WebCore::Node::onmousewheel):
632         (WebCore::Node::setOnmousewheel):
633         (WebCore::Node::onbeforecut):
634         (WebCore::Node::setOnbeforecut):
635         (WebCore::Node::oncut):
636         (WebCore::Node::setOncut):
637         (WebCore::Node::onbeforecopy):
638         (WebCore::Node::setOnbeforecopy):
639         (WebCore::Node::oncopy):
640         (WebCore::Node::setOncopy):
641         (WebCore::Node::onbeforepaste):
642         (WebCore::Node::setOnbeforepaste):
643         (WebCore::Node::onpaste):
644         (WebCore::Node::setOnpaste):
645         (WebCore::Node::ondragenter):
646         (WebCore::Node::setOndragenter):
647         (WebCore::Node::ondragover):
648         (WebCore::Node::setOndragover):
649         (WebCore::Node::ondragleave):
650         (WebCore::Node::setOndragleave):
651         (WebCore::Node::ondrop):
652         (WebCore::Node::setOndrop):
653         (WebCore::Node::ondragstart):
654         (WebCore::Node::setOndragstart):
655         (WebCore::Node::ondrag):
656         (WebCore::Node::setOndrag):
657         (WebCore::Node::ondragend):
658         (WebCore::Node::setOndragend):
659         (WebCore::Node::onreset):
660         (WebCore::Node::setOnreset):
661         (WebCore::Node::onresize):
662         (WebCore::Node::setOnresize):
663         (WebCore::Node::onscroll):
664         (WebCore::Node::setOnscroll):
665         (WebCore::Node::onsearch):
666         (WebCore::Node::setOnsearch):
667         (WebCore::Node::onselect):
668         (WebCore::Node::setOnselect):
669         (WebCore::Node::onselectstart):
670         (WebCore::Node::setOnselectstart):
671         (WebCore::Node::onsubmit):
672         (WebCore::Node::setOnsubmit):
673         (WebCore::Node::onunload):
674         (WebCore::Node::setOnunload):
675         * dom/Node.h:
676         * editing/ReplaceSelectionCommand.cpp:
677         (WebCore::ReplacementFragment::ReplacementFragment):
678         * html/HTMLBodyElement.cpp:
679         (WebCore::HTMLBodyElement::parseMappedAttribute):
680         * html/HTMLButtonElement.cpp:
681         (WebCore::HTMLButtonElement::parseMappedAttribute):
682         * html/HTMLElement.cpp:
683         (WebCore::HTMLElement::parseMappedAttribute):
684         * html/HTMLFormElement.cpp:
685         (WebCore::HTMLFormElement::parseMappedAttribute):
686         * html/HTMLFrameElementBase.cpp:
687         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
688         * html/HTMLFrameSetElement.cpp:
689         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
690         * html/HTMLImageElement.cpp:
691         (WebCore::HTMLImageElement::parseMappedAttribute):
692         * html/HTMLInputElement.cpp:
693         (WebCore::HTMLInputElement::parseMappedAttribute):
694         * html/HTMLObjectElement.cpp:
695         (WebCore::HTMLObjectElement::parseMappedAttribute):
696         * html/HTMLScriptElement.cpp:
697         (WebCore::HTMLScriptElement::parseMappedAttribute):
698         * html/HTMLSelectElement.cpp:
699         (WebCore::HTMLSelectElement::parseMappedAttribute):
700         * html/HTMLTextAreaElement.cpp:
701         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
702         * page/AccessibilityRenderObject.cpp:
703         (WebCore::AccessibilityRenderObject::mouseButtonListener):
704         * page/DOMWindow.cpp:
705         (WebCore::DOMWindow::setAttributeEventListener):
706         (WebCore::DOMWindow::clearAttributeEventListener):
707         (WebCore::DOMWindow::getAttributeEventListener):
708         (WebCore::DOMWindow::onabort):
709         (WebCore::DOMWindow::setOnabort):
710         (WebCore::DOMWindow::onblur):
711         (WebCore::DOMWindow::setOnblur):
712         (WebCore::DOMWindow::onchange):
713         (WebCore::DOMWindow::setOnchange):
714         (WebCore::DOMWindow::onclick):
715         (WebCore::DOMWindow::setOnclick):
716         (WebCore::DOMWindow::ondblclick):
717         (WebCore::DOMWindow::setOndblclick):
718         (WebCore::DOMWindow::onerror):
719         (WebCore::DOMWindow::setOnerror):
720         (WebCore::DOMWindow::onfocus):
721         (WebCore::DOMWindow::setOnfocus):
722         (WebCore::DOMWindow::onkeydown):
723         (WebCore::DOMWindow::setOnkeydown):
724         (WebCore::DOMWindow::onkeypress):
725         (WebCore::DOMWindow::setOnkeypress):
726         (WebCore::DOMWindow::onkeyup):
727         (WebCore::DOMWindow::setOnkeyup):
728         (WebCore::DOMWindow::onload):
729         (WebCore::DOMWindow::setOnload):
730         (WebCore::DOMWindow::onmousedown):
731         (WebCore::DOMWindow::setOnmousedown):
732         (WebCore::DOMWindow::onmousemove):
733         (WebCore::DOMWindow::setOnmousemove):
734         (WebCore::DOMWindow::onmouseout):
735         (WebCore::DOMWindow::setOnmouseout):
736         (WebCore::DOMWindow::onmouseover):
737         (WebCore::DOMWindow::setOnmouseover):
738         (WebCore::DOMWindow::onmouseup):
739         (WebCore::DOMWindow::setOnmouseup):
740         (WebCore::DOMWindow::onmousewheel):
741         (WebCore::DOMWindow::setOnmousewheel):
742         (WebCore::DOMWindow::onreset):
743         (WebCore::DOMWindow::setOnreset):
744         (WebCore::DOMWindow::onresize):
745         (WebCore::DOMWindow::setOnresize):
746         (WebCore::DOMWindow::onscroll):
747         (WebCore::DOMWindow::setOnscroll):
748         (WebCore::DOMWindow::onsearch):
749         (WebCore::DOMWindow::setOnsearch):
750         (WebCore::DOMWindow::onselect):
751         (WebCore::DOMWindow::setOnselect):
752         (WebCore::DOMWindow::onsubmit):
753         (WebCore::DOMWindow::setOnsubmit):
754         (WebCore::DOMWindow::onunload):
755         (WebCore::DOMWindow::setOnunload):
756         (WebCore::DOMWindow::onbeforeunload):
757         (WebCore::DOMWindow::setOnbeforeunload):
758         (WebCore::DOMWindow::onwebkitanimationstart):
759         (WebCore::DOMWindow::setOnwebkitanimationstart):
760         (WebCore::DOMWindow::onwebkitanimationiteration):
761         (WebCore::DOMWindow::setOnwebkitanimationiteration):
762         (WebCore::DOMWindow::onwebkitanimationend):
763         (WebCore::DOMWindow::setOnwebkitanimationend):
764         (WebCore::DOMWindow::onwebkittransitionend):
765         (WebCore::DOMWindow::setOnwebkittransitionend):
766         * page/DOMWindow.h:
767         * svg/SVGElement.cpp:
768         (WebCore::SVGElement::parseMappedAttribute):
769         * svg/SVGElementInstance.cpp:
770         (WebCore::SVGElementInstance::onabort):
771         (WebCore::SVGElementInstance::setOnabort):
772         (WebCore::SVGElementInstance::onblur):
773         (WebCore::SVGElementInstance::setOnblur):
774         (WebCore::SVGElementInstance::onchange):
775         (WebCore::SVGElementInstance::setOnchange):
776         (WebCore::SVGElementInstance::onclick):
777         (WebCore::SVGElementInstance::setOnclick):
778         (WebCore::SVGElementInstance::oncontextmenu):
779         (WebCore::SVGElementInstance::setOncontextmenu):
780         (WebCore::SVGElementInstance::ondblclick):
781         (WebCore::SVGElementInstance::setOndblclick):
782         (WebCore::SVGElementInstance::onerror):
783         (WebCore::SVGElementInstance::setOnerror):
784         (WebCore::SVGElementInstance::onfocus):
785         (WebCore::SVGElementInstance::setOnfocus):
786         (WebCore::SVGElementInstance::oninput):
787         (WebCore::SVGElementInstance::setOninput):
788         (WebCore::SVGElementInstance::onkeydown):
789         (WebCore::SVGElementInstance::setOnkeydown):
790         (WebCore::SVGElementInstance::onkeypress):
791         (WebCore::SVGElementInstance::setOnkeypress):
792         (WebCore::SVGElementInstance::onkeyup):
793         (WebCore::SVGElementInstance::setOnkeyup):
794         (WebCore::SVGElementInstance::onload):
795         (WebCore::SVGElementInstance::setOnload):
796         (WebCore::SVGElementInstance::onmousedown):
797         (WebCore::SVGElementInstance::setOnmousedown):
798         (WebCore::SVGElementInstance::onmousemove):
799         (WebCore::SVGElementInstance::setOnmousemove):
800         (WebCore::SVGElementInstance::onmouseout):
801         (WebCore::SVGElementInstance::setOnmouseout):
802         (WebCore::SVGElementInstance::onmouseover):
803         (WebCore::SVGElementInstance::setOnmouseover):
804         (WebCore::SVGElementInstance::onmouseup):
805         (WebCore::SVGElementInstance::setOnmouseup):
806         (WebCore::SVGElementInstance::onmousewheel):
807         (WebCore::SVGElementInstance::setOnmousewheel):
808         (WebCore::SVGElementInstance::onbeforecut):
809         (WebCore::SVGElementInstance::setOnbeforecut):
810         (WebCore::SVGElementInstance::oncut):
811         (WebCore::SVGElementInstance::setOncut):
812         (WebCore::SVGElementInstance::onbeforecopy):
813         (WebCore::SVGElementInstance::setOnbeforecopy):
814         (WebCore::SVGElementInstance::oncopy):
815         (WebCore::SVGElementInstance::setOncopy):
816         (WebCore::SVGElementInstance::onbeforepaste):
817         (WebCore::SVGElementInstance::setOnbeforepaste):
818         (WebCore::SVGElementInstance::onpaste):
819         (WebCore::SVGElementInstance::setOnpaste):
820         (WebCore::SVGElementInstance::ondragenter):
821         (WebCore::SVGElementInstance::setOndragenter):
822         (WebCore::SVGElementInstance::ondragover):
823         (WebCore::SVGElementInstance::setOndragover):
824         (WebCore::SVGElementInstance::ondragleave):
825         (WebCore::SVGElementInstance::setOndragleave):
826         (WebCore::SVGElementInstance::ondrop):
827         (WebCore::SVGElementInstance::setOndrop):
828         (WebCore::SVGElementInstance::ondragstart):
829         (WebCore::SVGElementInstance::setOndragstart):
830         (WebCore::SVGElementInstance::ondrag):
831         (WebCore::SVGElementInstance::setOndrag):
832         (WebCore::SVGElementInstance::ondragend):
833         (WebCore::SVGElementInstance::setOndragend):
834         (WebCore::SVGElementInstance::onreset):
835         (WebCore::SVGElementInstance::setOnreset):
836         (WebCore::SVGElementInstance::onresize):
837         (WebCore::SVGElementInstance::setOnresize):
838         (WebCore::SVGElementInstance::onscroll):
839         (WebCore::SVGElementInstance::setOnscroll):
840         (WebCore::SVGElementInstance::onsearch):
841         (WebCore::SVGElementInstance::setOnsearch):
842         (WebCore::SVGElementInstance::onselect):
843         (WebCore::SVGElementInstance::setOnselect):
844         (WebCore::SVGElementInstance::onselectstart):
845         (WebCore::SVGElementInstance::setOnselectstart):
846         (WebCore::SVGElementInstance::onsubmit):
847         (WebCore::SVGElementInstance::setOnsubmit):
848         (WebCore::SVGElementInstance::onunload):
849         (WebCore::SVGElementInstance::setOnunload):
850         * svg/SVGSVGElement.cpp:
851         (WebCore::SVGSVGElement::parseMappedAttribute):
852
853 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
854
855         Approved by Mark Rowe, Cameron Zwarich, Oliver Hunt, and Ojan Vafai.
856         
857         Used svn merge to roll out revisions 42678, 42690, 42694, 42697 because
858         they broke the Tiger and Windows buildbots.
859
860         * css/html4.css:
861         * css/themeWin.css:
862         * platform/graphics/SimpleFontData.cpp:
863         * platform/graphics/SimpleFontData.h:
864         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
865         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
866         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
867         * platform/graphics/gtk/SimpleFontDataPango.cpp:
868         * platform/graphics/mac/SimpleFontDataMac.mm:
869         * platform/graphics/qt/SimpleFontDataQt.cpp:
870         * platform/graphics/win/SimpleFontDataCGWin.cpp:
871         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
872         * platform/graphics/win/SimpleFontDataWin.cpp:
873         * platform/graphics/wx/SimpleFontDataWx.cpp:
874         * rendering/RenderTextControl.cpp:
875         * rendering/RenderTextControlMultiLine.cpp:
876         * rendering/RenderTextControlSingleLine.cpp:
877
878 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
879
880         Reviewed by Adam Roben.
881
882         One last loose end, discovered using COLLECT_ON_EVERY_ALLOCATION, for
883         https://bugs.webkit.org/show_bug.cgi?id=21260
884         Unbounded memory growth when churning elements with anonymous event handler functions
885         
886         * bindings/js/JSSVGElementInstanceCustom.cpp:
887         (WebCore::JSSVGElementInstance::mark): Don't ASSERT that an ElementInstance's
888         correspondingElement has a JS wrapper. If a GC falls exactly between the
889         allocation of the ElementInstance wrapper and the correspondingElement
890         wrapper, the correspondingElement won't have a wrapper at the time we
891         mark the ElementInstance's wrapper.
892
893 2009-04-20  Brady Eidson  <beidson@apple.com>
894
895         Rubberstamped by Mark Rowe
896
897         Clean builds are broken on case-sensitive filesystems.  Let's fix, shall we?
898
899         * platform/graphics/SimpleFontData.cpp: Remove "String.h" include.  Ojan probably intended to include
900           "PlatformString.h" which was unnecessary because it is pulled in through other headers.  This wasn't a 
901           build failure on case-insensitive file systems because those systems would find the system <string.h>, averting
902           the warning.
903
904 2009-04-20  Geoffrey Garen  <ggaren@apple.com>
905
906         Reviewed by Darin Adler.
907
908         Last patch for https://bugs.webkit.org/show_bug.cgi?id=21260
909         Unbounded memory growth when churning elements with anonymous event handler functions
910         
911         Converted "lazy" event listeners to be unprotected, just like all the others.
912
913         * bindings/js/JSEventListener.cpp:
914         (WebCore::JSEventListener::JSEventListener):
915         (WebCore::JSEventListener::~JSEventListener):
916         (WebCore::JSEventListener::jsFunction):
917         (WebCore::JSEventListener::markJSFunction):
918         (WebCore::JSEventListener::handleEvent):
919         (WebCore::JSEventListener::virtualIsInline):
920         * bindings/js/JSEventListener.h:
921         (WebCore::JSEventListener::isInline): Merged JSAbstractEventListener
922         into JSEventListener. Now that the only difference between JSEventListener
923         and JSLazyEventListener is that JSLazyEventListener compiles lazily,
924         there's no need for an abstract base class.
925
926         * bindings/js/JSLazyEventListener.cpp: Converted JSLazyEventListener to
927         inherit from JSEventListener and match its un-GC-protected behavior.
928         (WebCore::JSLazyEventListener::JSLazyEventListener): ditto
929         (WebCore::JSLazyEventListener::parseCode): ditto
930         (WebCore::createInlineEventListener): When creating a lazy event listener,
931         ensure that the related node has a JS wrapper to mark the listener. Since
932         the parser makes these listeners, it's possible that no JS reference has
933         been made to the node yet.
934         * bindings/js/JSLazyEventListener.h: ditto
935
936         * dom/EventListener.h:
937         (WebCore::EventListener::clearJSFunction): Removed an usused function.
938
939 2009-04-20  Justin Garcia  <justin.garcia@apple.com>
940
941         Reviewed by Dan Bernstein.
942
943         https://bugs.webkit.org/show_bug.cgi?id=25299
944         Don't bound caret to root line box if it is still inside its containing block
945         
946         Can't yet write tests for behavior of non-standard caret widths.
947
948         * rendering/RenderText.cpp:
949         (WebCore::RenderText::localCaretRect):
950
951 2009-04-20  Steve Falkenburg  <sfalken@apple.com>
952
953         Separate JavaScriptCore.dll from WebKit.dll.
954         Slight performance improvement or no change on benchmarks.
955         
956         Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
957         and simplifies standalone JavaScriptCore builds.
958
959         Reviewed by Oliver Hunt.
960
961         * config.h: Specify __declspec(dllexport/dllimport) appropriately when exporting data.
962
963 2009-04-20  Anders Carlsson  <andersca@apple.com>
964
965         Reviewed by Sam Weinig.
966
967         <rdar://problem/6722845> In the Cocoa event model, NPWindow's window field should be null
968
969         * bridge/npapi.h:
970         (_NPCocoaEvent::):
971         Add a CGContextRef member to the draw struct. Add an NPCoordinateSpace enum.
972         
973         * plugins/npfunctions.h:
974         Add a prototype for NPN_ConvertPoint.
975
976 2009-04-10  Ojan Vafai  <ojan@chromium.org>
977
978         Reviewed by Dan Bernstein.
979
980         Make textarea and text input metrics more closely match IEs.
981         https://bugs.webkit.org/show_bug.cgi?id=15312
982
983         This involves:
984         -set text input width to size*avgCharWidth + maxCharWidth - avgCharWidth
985         -set textarea width to cols*avgCharWidth
986         -Make default CSS match IEs
987         -Correctly initializing m_avgCharWidth and m_maxCharWidth for each platform and SVG.
988
989         Those values for textarea and inputs were derived by doing a ton of manual
990         testing of IE's width values for various textareas and fonts.
991
992         To get the average and max character width of a font, we do the following
993         for each platform:
994         -Win: TextMetrics expose avgCharWidth and maxCharWidth
995         -SVG: avgCharWidth = width of an '0', fallback on width of a space glyph, then m_xHeight
996             maxCharWidth = width of a 'W' for roman fonts, fallback on m_ascent
997         -Linux: avgCharWidth = width of an '0', fallback on m_xHeight
998             maxCharWidth = max of avgCharWidth and m_ascent
999         -Mac: look in the OS/2 table for avgCharWidth and grab the maxCharWidth off the font.
1000             If either one is not there, then calculate the value using the Linux approach.
1001
1002         Linux ports could probably dig into the OS/2 table as well, but I'll leave
1003         that up to them to implement.
1004
1005         Tests: fast/forms/text-control-intrinsic-widths.html
1006                fast/forms/textarea-metrics.html
1007                svg/custom/svg-fonts-in-text-controls.html
1008
1009         * css/html4.css:
1010         * css/themeWin.css:
1011         * platform/graphics/SimpleFontData.cpp:
1012         (WebCore::SimpleFontData::SimpleFontData):
1013         (WebCore::SimpleFontData::initCharWidths):
1014         * platform/graphics/SimpleFontData.h:
1015         (WebCore::SimpleFontData::maxCharWidth):
1016         (WebCore::SimpleFontData::avgCharWidth):
1017         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
1018         (WebCore::SimpleFontData::platformCharWidthInit):
1019         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
1020         (WebCore::SimpleFontData::platformCharWidthInit):
1021         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
1022         (WebCore::SimpleFontData::platformCharWidthInit):
1023         * platform/graphics/gtk/SimpleFontDataPango.cpp:
1024         (WebCore::SimpleFontData::platformCharWidthInit):
1025         * platform/graphics/mac/SimpleFontDataMac.mm:
1026         (WebCore::SimpleFontData::platformCharWidthInit):
1027         * platform/graphics/qt/SimpleFontDataQt.cpp:
1028         (WebCore::SimpleFontData::platformCharWidthInit):
1029         * platform/graphics/win/SimpleFontDataCGWin.cpp:
1030         (WebCore::SimpleFontData::platformCharWidthInit):
1031         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
1032         (WebCore::SimpleFontData::platformInit):
1033         (WebCore::SimpleFontData::platformCharWidthInit):
1034         * platform/graphics/win/SimpleFontDataWin.cpp:
1035         (WebCore::SimpleFontData::initGDIFont):
1036         * platform/graphics/wx/SimpleFontDataWx.cpp:
1037         (WebCore::SimpleFontData::platformCharWidthInit):
1038         * rendering/RenderTextControl.cpp:
1039         (WebCore::RenderTextControl::calcPrefWidths):
1040         * rendering/RenderTextControlMultiLine.cpp:
1041         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
1042         * rendering/RenderTextControlSingleLine.cpp:
1043         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
1044
1045 2009-04-17  Eric Seidel  <eric@webkit.org>
1046
1047         Reviewed by Simon Fraser.
1048
1049         Remove m_absoluteBounds hack from SVG renderers and move outlineBoundsForRepaint into RenderSVGModelObject
1050         https://bugs.webkit.org/show_bug.cgi?id=25276
1051
1052         This also exposed a buggy paint check in RenderSVGContainer::layout()
1053         we should repaint if we are self painting OR if our kids changed, not AND.
1054
1055         Writing real outlineBoundsForRepaint required writing a mapLocalToContainer() function
1056
1057         No functional changes, thus no tests.
1058
1059         * rendering/RenderPath.cpp:
1060         (WebCore::RenderPath::localToParentTransform):
1061         (WebCore::RenderPath::layout):
1062         * rendering/RenderPath.h:
1063         * rendering/RenderSVGContainer.cpp:
1064         (WebCore::RenderSVGContainer::layout):
1065         * rendering/RenderSVGContainer.h:
1066         * rendering/RenderSVGModelObject.cpp:
1067         (WebCore::RenderSVGModelObject::mapLocalToContainer):
1068         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
1069         * rendering/RenderSVGModelObject.h:
1070         * rendering/RenderSVGRoot.cpp:
1071         (WebCore::RenderSVGRoot::layout):
1072         (WebCore::RenderSVGRoot::paint):
1073         (WebCore::RenderSVGRoot::localToParentTransformWithoutCSSParentOffset):
1074         (WebCore::RenderSVGRoot::localToParentTransform):
1075         (WebCore::RenderSVGRoot::computeRectForRepaint):
1076         * rendering/RenderSVGRoot.h:
1077         * rendering/RenderSVGViewportContainer.cpp:
1078         (WebCore::RenderSVGViewportContainer::layout):
1079
1080 2009-04-20  Simon Fraser  <simon.fraser@apple.com>
1081
1082         Reviewed by Eric Seidel
1083
1084         https://bugs.webkit.org/show_bug.cgi?id=25282
1085         
1086         outlineBoundsForRepaint() should compute a quad relative to the
1087         repaintContainer. This fixes the repaint issues originally fixed in
1088         https://bugs.webkit.org/show_bug.cgi?id=12885 for elements in compositing layers.
1089         Failure was only apparent when building with ACCELERATED_COMPOSITING enabled.
1090
1091         Tests: compositing/repaint/content-into-overflow.html
1092                compositing/repaint/overflow-into-content.html
1093
1094         * rendering/RenderBox.cpp:
1095         (WebCore::RenderBox::outlineBoundsForRepaint):
1096
1097 2009-04-20  Sam Weinig  <sam@webkit.org>
1098
1099         Rubber-stamped by Tim Hatcher.
1100
1101         Add licenses for xcconfig files.
1102
1103         * Configurations/Base.xcconfig:
1104         * Configurations/DebugRelease.xcconfig:
1105         * Configurations/FeatureDefines.xcconfig:
1106         * Configurations/Version.xcconfig:
1107         * Configurations/WebCore.xcconfig:
1108
1109 2009-04-20  Eric Roman  <eroman@chromium.org>
1110
1111         Reviewed by Dimitri Glazkov.
1112
1113         https://bugs.webkit.org/show_bug.cgi?id=25261
1114         Implement the V8 binding for DOMWindow.event similarly to JSC, by using
1115         the custom getter boilerplate from the IDL file. 
1116         Also, stub out DOMWindow.crypto which is defined by the idl.
1117
1118         * bindings/v8/V8AbstractEventListener.cpp:
1119         (WebCore::V8AbstractEventListener::invokeEventHandler):
1120         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1121         (WebCore::ACCESSOR_GETTER):
1122
1123 2009-04-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1124
1125         Reviewed by Xan Lopez.
1126
1127         https://bugs.webkit.org/show_bug.cgi?id=25243
1128         Crash when data:// loads are cancelled
1129
1130         Properly handle cancellation of the load for data:// loads. This
1131         fixes crashing in the followin test:
1132
1133         plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html
1134
1135         * platform/network/soup/ResourceHandleSoup.cpp:
1136         (WebCore::parseDataUrl):
1137
1138 2009-04-19  Dan Bernstein  <mitz@apple.com>
1139
1140         - maybe fix release builds
1141
1142         * dom/ScriptElement.cpp:
1143         (WebCore::ScriptElementData::notifyFinished):
1144
1145 2009-04-19  Dan Bernstein  <mitz@apple.com>
1146
1147         - not fix release builds
1148
1149         * dom/Document.cpp:
1150         (WebCore::Document::executeScriptSoonTimerFired):
1151
1152 2009-04-19  Dan Bernstein  <mitz@apple.com>
1153
1154         Reviewed by Mark Rowe.
1155
1156         - fix <rdar://problem/6734365> REGRESSION eBay "Save this search" link
1157           does nothing the second time search results are opened
1158
1159         Test: fast/dom/HTMLScriptElement/nested-execution.html
1160
1161         Instead of executing scripts as soon as they finish loading, which may
1162         happen synchronously during execution of another script, defer their
1163         execution until the next run loop iteration, using a queue that is
1164         similar to the HTML5 notion of the "list of scripts that will execute as
1165         soon as possible", and in my testing was consistent with how Firefox
1166         behaved.
1167
1168         * dom/Document.cpp:
1169         (WebCore::Document::Document): Initialize m_executeScriptSoonTimer.
1170         (WebCore::Document::~Document): deref() script elements in
1171         m_scriptsToExecuteSoon.
1172         (WebCore::Document::executeScriptSoonTimerFired): Added. Executes the
1173         scripts in m_scriptsToExecuteSoon and deref()s them.
1174         (WebCore::Document::executeScriptSoon): Added. Appends to
1175         m_scriptsToExecuteSoon and ref()s the script element, which keeps the
1176         ScriptElementData alive as well.
1177         * dom/Document.h:
1178         * dom/ScriptElement.cpp:
1179         (WebCore::ScriptElementData::ScriptElementData): Initialize m_requested.
1180         (WebCore::ScriptElementData::requestScript): Set m_requested to true, to
1181         prevent further load requests.
1182         (WebCore::ScriptElementData::execute): Added. Moved the code from
1183         notifyFinished() which should not execute synchronously here, to be
1184         called by the Document on a 0-interval timer.
1185         (WebCore::ScriptElementData::notifyFinished): Moved the code to
1186         dispatch events and evaluate the script, which should not execute
1187         synchronously, out of here.
1188         (WebCore::ScriptElementData::ignoresLoadRequest): Changed to test for
1189         m_requested instead of m_cachedScript, because the latter is cleared
1190         before the script is evaluated.
1191         * dom/ScriptElement.h:
1192
1193 2009-04-19  Oliver Hunt  <oliver@apple.com>
1194
1195         Reviewed by Antti Koivisto and Darin Adler.
1196
1197         <rdar://problem/6127705> Excessive memory consumption on image load failure
1198
1199         When we fail to decode an image we clear most of the image data, but not the
1200         input data itself, which can be backed by a CFData object that itself holds onto
1201         a few hundred Kbs of memory.  This patch merely ensures that this buffer gets
1202         cleared.
1203
1204         * loader/CachedImage.cpp:
1205         (WebCore::CachedImage::error):
1206
1207 2009-04-19  Darin Adler  <darin@apple.com>
1208
1209         Reviewed by Sam Weinig.
1210
1211         Add hooks so sudden termination will not cause loss of icons or local storage.
1212         rdar://problem/5951701
1213
1214         * loader/icon/IconDatabase.cpp: Marked various constants static to give them
1215         internal linkage.
1216         (WebCore::IconDatabase::IconDatabase): Added initial value for m_syncTimer.
1217         Removed unneeded initial value for m_defaultIconRecord. Changed assertion to
1218         work cross-platform.
1219         (WebCore::IconDatabase::wakeSyncThread): Added disableSuddenTermination, so
1220         we won't terminate until the sync thread has done its thing.
1221         (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Added disableSuddenTermination,
1222         so we won't terminate if we have an outstanding sync timer.
1223         (WebCore::IconDatabase::syncTimerFired): Added enableSuddenTermination, to
1224         balance the one in scheduleOrDeferSyncTimer.
1225         (WebCore::IconDatabase::syncThreadMainLoop): Added enableSuddenTermination, to
1226         balance the one in wakeSyncThread.
1227         (WebCore::IconDatabase::deleteAllPreparedStatements): Use clear() instead of set(0).
1228
1229         * loader/icon/IconDatabase.h: Use a Timer instead of an OwnPtr<Timer>.
1230
1231         * storage/LocalStorageArea.cpp:
1232         (WebCore::LocalStorageArea::scheduleFinalSync): Added disableSuddenTermination.
1233         (WebCore::LocalStorageArea::scheduleItemForSync): Ditto.
1234         (WebCore::LocalStorageArea::scheduleClear): Ditto.
1235         (WebCore::LocalStorageArea::syncTimerFired): Added a disableSuddenTermination if
1236         we schedule a performSync callback for later and an unconditional
1237         enableSuddenTermination to balance the ones in the schedule calls above.
1238         (WebCore::LocalStorageArea::sync): Factored out the work of the sync function so it
1239         can continue to use early return idiom.
1240         (WebCore::LocalStorageArea::performSync): Added a call to enableSuddenTermination.
1241
1242         * storage/LocalStorageArea.h: Added declaration of the sync function.
1243
1244 2009-04-19  David Kilzer  <ddkilzer@apple.com>
1245
1246         Make FEATURE_DEFINES completely dynamic
1247
1248         Reviewed by Darin Adler.
1249
1250         Make FEATURE_DEFINES depend on individual ENABLE_FEATURE_NAME
1251         variables for each feature, making it possible to remove all
1252         knowledge of FEATURE_DEFINES from build-webkit.
1253
1254         * Configurations/FeatureDefines.xcconfig: Extract a variable
1255         from FEATURE_DEFINES for each feature setting.
1256
1257 2009-04-18  Geoffrey Garen  <ggaren@apple.com>
1258
1259         Reviewed by Alexey Proskuryakov.
1260
1261         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
1262         Unbounded memory growth when churning elements with anonymous event handler functions
1263         
1264         Removed a little more complexity from event handler creation and destruction.
1265         
1266         Removed the jsProtectedEventListeners, jsProtectedInlineEventListeners,
1267         and jsInlineEventListeners maps, and all the code for managing them.
1268         
1269         ProtectedEventListeners don't exist anymore, so they're easy to nix.
1270         
1271         Inline EventListeners do still exist, but there's no reason to track
1272         them in a map. The map exists to enable 'removeEventListener' to associate
1273         a unique JSEventListener with a given JavaScript function. But the
1274         'removeEventListener' API only works with non-inline event listeners!
1275         
1276         * bindings/js/JSDOMGlobalObject.cpp:
1277         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
1278         (WebCore::JSDOMGlobalObject::findJSEventListener):
1279         (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
1280         (WebCore::JSDOMGlobalObject::createJSInlineEventListener):
1281         * bindings/js/JSDOMGlobalObject.h:
1282         * bindings/js/JSEventListener.cpp:
1283         (WebCore::JSEventListener::JSEventListener):
1284         (WebCore::JSEventListener::clearJSFunctionInline):
1285         * bindings/js/JSLazyEventListener.cpp:
1286         (WebCore::JSLazyEventListener::~JSLazyEventListener):
1287         (WebCore::JSLazyEventListener::parseCode):
1288         * bindings/scripts/CodeGeneratorJS.pm:
1289
1290 2009-04-18  Dan Bernstein  <mitz@apple.com>
1291
1292         - try to fix the Windows build
1293
1294         * editing/VisiblePosition.cpp:
1295         (WebCore::VisiblePosition::characterAfter):
1296
1297 2009-04-18  Dan Bernstein  <mitz@apple.com>
1298
1299         - revert the previous change, which was to a file that the Windows
1300           port does not even use
1301
1302         * icu/unicode/utf16.h:
1303
1304 2009-04-18  Dan Bernstein  <mitz@apple.com>
1305
1306         Reviewed by Geoffrey Garen.
1307
1308         - try to fix the Windows build
1309
1310         * icu/unicode/utf16.h:
1311
1312 2009-04-18  Simon Fraser  <simon.fraser@apple.com>
1313
1314         Reviewed by Antti Koivisto.
1315         
1316         https://bugs.webkit.org/show_bug.cgi?id=25066
1317         
1318         When a <video> element gained a RenderLayer via opacity, reflection etc., the
1319         layer hierarchy was not correctly updated because RenderMedia skipped a level
1320         when asked for its children; it skipped m_controlsShadowRoot's renderer, which
1321         actually has a layer.
1322
1323         Test: fast/layers/video-layer.html
1324
1325         * rendering/MediaControlElements.cpp:
1326         (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
1327         Don't manually call setParent() on the renderer. It will happen later
1328         as a result of addChild().
1329         
1330         * rendering/RenderMedia.cpp:
1331         (WebCore::RenderMedia::createControlsShadowRoot):
1332         Add m_controlsShadowRoot's renderer as a child. 
1333
1334         * rendering/RenderMedia.h:
1335         (WebCore::RenderMedia::children):
1336         Now maintain a RenderObjectChildList, m_children, and remove the unneeded
1337         removeChild() method. Make the two children() methods inline.
1338
1339         * rendering/RenderObject.cpp:
1340         (WebCore::RenderObject::moveLayers):
1341         Assert if moveLayers() is called with an oldParent that is not the
1342         layer's actual parent (which would have revealed this bug).
1343
1344 2009-04-18  Geoffrey Garen  <ggaren@apple.com>
1345
1346         Reviewed by Cameron Zwarich.
1347
1348         Fixed a layout test failure, caused by my last check-in
1349         (fast/dom/script-element-gc.html).
1350
1351         * bindings/js/JSDOMBinding.cpp:
1352         (WebCore::isObservableThroughDOM):
1353         * html/HTMLScriptElement.h:
1354         (WebCore::HTMLScriptElement::haveFiredLoadEvent): Treat script elements
1355         just like image elements: if a script element is loading, mark its JS
1356         wrapper, even if the element is not in the document.
1357
1358 2009-04-18  Jian Li  <jianli@chromium.org>
1359
1360         Reviewed by Dimitri Glazkov.
1361
1362         https://bugs.webkit.org/show_bug.cgi?id=25170
1363         Upstream V8WorkerCustom.cpp and V8WorkerContextCustom.cpp for V8 bindings.
1364
1365         * bindings/v8/WorkerContextExecutionProxy.cpp:
1366         (WebCore::WorkerContextExecutionProxy::findOrCreateEventListener):
1367         * bindings/v8/WorkerContextExecutionProxy.h:
1368         * bindings/v8/custom/V8WorkerContextCustom.cpp: Added.
1369         * bindings/v8/custom/V8WorkerCustom.cpp: Added.
1370
1371 2009-04-18  Jian Li  <jianli@chromium.org>
1372
1373         Reviewed by Dimitri Glazkov.
1374
1375         https://bugs.webkit.org/post_bug.cg://bugs.webkit.org/show_bug.cgi?id=25167 
1376         Change createHiddenXHRDependency and removeHiddenXHRDependency so that they can be used by other custom code in V8 bindings.
1377
1378         * bindings/v8/V8Utilities.cpp: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.cpp.
1379         (WebCore::createHiddenDependency):
1380         (WebCore::removeHiddenDependency):
1381         * bindings/v8/V8Utilities.h: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.h.
1382         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1383         (WebCore::ACCESSOR_SETTER):
1384         (WebCore::CALLBACK_FUNC_DECL):
1385         * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
1386         (WebCore::ACCESSOR_SETTER):
1387         (WebCore::CALLBACK_FUNC_DECL):
1388
1389 2009-04-18  Drew Wilson  <amw@apple.com>
1390
1391         <rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32
1392
1393         Reviewed by Dan Bernstein.
1394
1395         No test case since there is no change in behavior.
1396
1397         * editing/VisiblePosition.cpp:
1398         (WebCore::VisiblePosition::characterAfter): Now handles surrogate
1399         pairs correctly and returns a UChar32.
1400         * editing/VisiblePosition.h:
1401         (WebCore::VisiblePosition::characterBefore): Now returns a UChar32.
1402         * editing/visible_units.cpp:
1403         (WebCore::endOfFirstWordBoundaryContext): Renamed
1404         firstNonComplexContextLineBreak() to this. Changed it to use the
1405         generic requiresContextForWordBoundary() instead of
1406         hasLineBreakingPropertyComplexContext().
1407         (WebCore::startOfLastWordBoundaryContext): Replaces
1408         lastNonComplexContextLineBreak(), but returns the offset of
1409         the character after the last character that does not require
1410         context for word breaking. Also changed to use
1411         requiresContextForWordBoundary().
1412         (WebCore::previousBoundary): Updated for the above changes in
1413         names and semantics, and changed to use
1414         requiresContextForWordBoundary().
1415         (WebCore::nextBoundary): Ditto.
1416         (WebCore::startWordBoundary): Ditto.
1417         (WebCore::endWordBoundary): Ditto.
1418         (WebCore::previousWordPositionBoundary): Ditto.
1419         (WebCore::nextWordPositionBoundary): Ditto.
1420         * platform/text/TextBoundaries.h:
1421         (WebCore::requiresContextForWordBoundary): Added.
1422         * platform/text/mac/TextBoundaries.mm:
1423
1424 2009-04-18  Geoffrey Garen  <ggaren@apple.com>
1425
1426         Reviewed by Cameron Zwarich.
1427
1428         Fixed <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285
1429         REGRESSION (r42569): Profiles cannot be selected in inspector profiler
1430         
1431         EventListeners are shared; RegisteredEventListeners are not. Therefore,
1432         when a node wrapper needs to invalidate the node's JS event listeners,
1433         it should invalidate its RegisteredEventListeners, not its EventListeners.
1434         Otherwise, it might invalidate an EventListener shared by another node.
1435
1436         * dom/RegisteredEventListener.h:
1437         (WebCore::invalidateEventListeners): ditto
1438
1439 2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
1440
1441         Reviewed by Mark Rowe.
1442
1443         <rdar://problem/6781295> video.buffered and video.seekable are not
1444         the same. video.buffered should return only what is buffered and
1445         not what is seekable
1446
1447         * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable.
1448
1449         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1450         (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable.
1451
1452         * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable.
1453         * platform/mac/WebCoreSystemInterface.mm: Ditto.
1454
1455 2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>
1456
1457         Reviewed by Adele Peterson.
1458
1459         <rdar://problem/6747241> work around QTKit no longer reaching
1460         QTMovieLoadStateComplete
1461
1462         * WebCore.base.exp: Export wkQTMovieMaxTimeLoadedChangeNotification.
1463
1464         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1465         (WebCore::MediaPlayerPrivate::createQTMovie): observe QTMovieMaxTimeLoadedChangeNotification.
1466         (WebCore::MediaPlayerPrivate::updateStates): compare duuration() with maxTimeLoaded() instead of
1467         using QTMovieLoadStateComplete to determine if a movie are fully loaded.
1468
1469         * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeLoadedChangeNotification.
1470         * platform/mac/WebCoreSystemInterface.mm: Ditto.
1471
1472 2009-04-18  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
1473
1474         Reviewed by George Staikos.
1475
1476         Make WML work again, most regressions test were failing.
1477
1478         * dom/Document.cpp: Be sure to create WML elements in WML namespace. Otherwhise hasTagName() comparisions fail.
1479         (WebCore::Document::createElement):
1480         * wml/WMLCardElement.cpp: Add ASSERT(hasTagName(cardTag)) to catch errors like this in future.
1481         (WebCore::WMLCardElement::WMLCardElement):
1482         * wml/WMLTagNames.in: Wrap comment in #if 0/#endif blocks, to silence the generation script.
1483
1484 2009-04-17  Justin Garcia  <justin.garcia@apple.com>
1485
1486         Reviewed by Dan Bernstein.
1487
1488         https://bugs.webkit.org/show_bug.cgi?id=25277
1489         If there is no line wrapping, a caret can leave its containing block but it shouldn't leave its root line box
1490         
1491         Also added code to handle a caret wider than one pixel.
1492         
1493         Added fast/inline/25277.html and fast/inline/25277-2.html
1494
1495         * rendering/RenderText.cpp:
1496         (WebCore::RenderText::localCaretRect): Distribute a caret's width to either side of the offset,
1497         so that a caret between two characters doesn't hang over one character more than the other.
1498         If there is no wrapping, the caret can leave its containing block, but not its root line box.
1499
1500 2009-04-17  Geoffrey Garen  <ggaren@apple.com>
1501
1502         Reviewed by Oliver Hunt.
1503
1504         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
1505         Unbounded memory growth when churning elements with anonymous event handler functions
1506         
1507         Some refactoring of "inline" event listeners.
1508         
1509         Renames:
1510             dispatchEventForType => dispatchEvent
1511             setWindowInlineEventListenerForTypeAndAttribute => setWindowInlineEventListener
1512             removeInlineEventListenerForType => clearInlineEventListener
1513             setInlineEventListenerForType => setInlineEventListener
1514             inlineEventListenerForType => getInlineEventListener
1515
1516         * bindings/js/JSLazyEventListener.cpp:
1517         (WebCore::eventParameterName):
1518         (WebCore::JSLazyEventListener::JSLazyEventListener):
1519         (WebCore::createInlineEventListener):
1520         * bindings/js/JSLazyEventListener.h: Added two helper functions for
1521         creating "inline" event listeners. These replace Document::createEventListener,
1522         and abstract the creation of JS event listeners for DOM attributes out
1523         of the DOM. Removed legacy JSProtectedEventListener constructor code for
1524         adding the event listener's function to a map, since lazy event listeners
1525         don't have functions at construction time.
1526
1527         * dom/Document.cpp:
1528         (WebCore::Document::setFocusedNode):
1529         * dom/Document.h:
1530         (WebCore::Document::isSVGDocument):
1531         * dom/Element.cpp:
1532         (WebCore::Element::setWindowInlineEventListener):
1533         * dom/Element.h: Updated for renames. Nixed Document::createEventListener,
1534         mentioned above. Moved setWindowInlineEventListenerForTypeAndAttribute
1535         to Element, for simplicity.
1536
1537         * dom/InputElement.cpp:
1538         (WebCore::InputElement::setValueFromRenderer):
1539         * dom/Node.cpp:
1540         (WebCore::Node::dispatchFocusEvent):
1541         (WebCore::Node::dispatchBlurEvent):
1542         (WebCore::Node::dispatchEvent):
1543         (WebCore::Node::clearInlineEventListener):
1544         (WebCore::Node::setInlineEventListener):
1545         (WebCore::Node::getInlineEventListener):
1546         (WebCore::Node::onabort):
1547         (WebCore::Node::setOnabort):
1548         (WebCore::Node::etc.):
1549         * dom/Node.h: Updated for renames.
1550         
1551         * editing/ReplaceSelectionCommand.cpp:
1552         (WebCore::ReplacementFragment::ReplacementFragment): Updated for renames.
1553         
1554         Updated these files for renames, and to use the new createInlineEventListener
1555         helper function:
1556
1557         * html/HTMLBodyElement.cpp:
1558         (WebCore::HTMLBodyElement::parseMappedAttribute):
1559         * html/HTMLButtonElement.cpp:
1560         (WebCore::HTMLButtonElement::parseMappedAttribute):
1561         * html/HTMLElement.cpp:
1562         (WebCore::HTMLElement::parseMappedAttribute):
1563         * html/HTMLFormControlElement.cpp:
1564         (WebCore::HTMLFormControlElement::onChange):
1565         * html/HTMLFormElement.cpp:
1566         (WebCore::HTMLFormElement::prepareSubmit):
1567         (WebCore::HTMLFormElement::reset):
1568         (WebCore::HTMLFormElement::parseMappedAttribute):
1569         * html/HTMLFrameElementBase.cpp:
1570         (WebCore::HTMLFrameElementBase::parseMappedAttribute):
1571         * html/HTMLFrameSetElement.cpp:
1572         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
1573         * html/HTMLImageElement.cpp:
1574         (WebCore::HTMLImageElement::parseMappedAttribute):
1575         * html/HTMLImageLoader.cpp:
1576         (WebCore::HTMLImageLoader::dispatchLoadEvent):
1577         * html/HTMLInputElement.cpp:
1578         (WebCore::HTMLInputElement::parseMappedAttribute):
1579         (WebCore::HTMLInputElement::onSearch):
1580         * html/HTMLMediaElement.cpp:
1581         (WebCore::HTMLMediaElement::loadInternal):
1582         * html/HTMLObjectElement.cpp:
1583         (WebCore::HTMLObjectElement::parseMappedAttribute):
1584         * html/HTMLScriptElement.cpp:
1585         (WebCore::HTMLScriptElement::parseMappedAttribute):
1586         (WebCore::HTMLScriptElement::dispatchLoadEvent):
1587         (WebCore::HTMLScriptElement::dispatchErrorEvent):
1588         * html/HTMLSelectElement.cpp:
1589         (WebCore::HTMLSelectElement::parseMappedAttribute):
1590         * html/HTMLTextAreaElement.cpp:
1591         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
1592         * html/HTMLTokenizer.cpp:
1593         (WebCore::HTMLTokenizer::notifyFinished):
1594         * page/AccessibilityRenderObject.cpp:
1595         (WebCore::AccessibilityRenderObject::mouseButtonListener):
1596         * page/DOMWindow.cpp:
1597         * page/DOMWindow.h:
1598         (WebCore::DOMWindow::eventListeners):
1599         * page/EventHandler.cpp:
1600         (WebCore::EventHandler::canMouseDownStartSelect):
1601         (WebCore::EventHandler::canMouseDragExtendSelect):
1602         (WebCore::EventHandler::sendScrollEvent):
1603         * page/Page.cpp:
1604         (WebCore::networkStateChanged):
1605         * rendering/RenderListBox.cpp:
1606         (WebCore::RenderListBox::valueChanged):
1607         * rendering/RenderTextControl.cpp:
1608         (WebCore::RenderTextControl::selectionChanged):
1609         * svg/SVGElement.cpp:
1610         (WebCore::SVGElement::parseMappedAttribute):
1611         * svg/SVGElementInstance.cpp:
1612         * svg/SVGImageLoader.cpp:
1613         (WebCore::SVGImageLoader::dispatchLoadEvent):
1614         * svg/SVGSVGElement.cpp:
1615         (WebCore::SVGSVGElement::parseMappedAttribute):
1616         * svg/SVGScriptElement.cpp:
1617         (WebCore::SVGScriptElement::dispatchErrorEvent):
1618         * wml/WMLInputElement.cpp:
1619         (WebCore::WMLInputElement::defaultEventHandler):
1620
1621 2009-04-17  David Kilzer  <ddkilzer@apple.com>
1622
1623         Simplify FEATURE_DEFINES definition
1624
1625         Reviewed by Darin Adler.
1626
1627         This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME
1628         variables to their own FeatureDefines.xcconfig file.  It also
1629         extracts a new ENABLE_GEOLOCATION variable so that
1630         FEATURE_DEFINES only needs to be defined once.
1631
1632         * Configurations/FeatureDefines.xcconfig: Added.
1633         * Configurations/WebCore.xcconfig: Removed definition of
1634         ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES.  Added include
1635         of FeatureDefines.xcconfig.
1636         * WebCore.xcodeproj/project.pbxproj: Added
1637         FeatureDefines.xcconfig file.
1638         * bindings/scripts/CodeGeneratorObjC.pm: When creating a list of
1639         command-line macro definitions, split on one-or-more spaces
1640         instead of a single space since the FEATURE_DEFINES macro may
1641         now contain more than one space between macros if some macros
1642         aren't defined.
1643
1644 2009-04-17  Brady Eidson  <beidson@apple.com>
1645
1646         Reviewed by Mark Rowe
1647
1648         <rdar://problem/6786999> Tiger WebKit shouldn't try to POST on back/forward without nagging.
1649
1650         * platform/network/mac/ResourceHandleMac.mm:
1651         (WebCore::ResourceHandle::willLoadFromCache):
1652
1653 2009-04-17  Darin Adler  <darin@apple.com>
1654
1655         Reviewed by Timothy Hatcher.
1656
1657         Added sudden termination functions that can be called without involving
1658         the page or client.
1659
1660         * GNUmakefile.am: Added SuddenTermination.h.
1661         * WebCore.vcproj/WebCore.vcproj: Ditto.
1662         * WebCore.xcodeproj/project.pbxproj: Ditto. Also added SuddenTermination.mm.
1663
1664         * platform/SuddenTermination.h: Added.
1665         * platform/mac/SuddenTermination.mm: Added.
1666
1667 2009-04-17  Eric Seidel  <eric@webkit.org>
1668
1669         Reviewed by Simon Fraser.
1670
1671         Move more code into RenderSVGModelObject
1672
1673         needsLayer() already returns false from RenderSVGModelObject
1674         lineHeight and baselinePosition are from days of RenderPath having RenderBox parents.
1675
1676         I also added comments to explain how focus rings work (now that I understand)
1677         I got rid of two more uses of m_absoluteBounds (nearly dead!)
1678
1679         * rendering/RenderPath.cpp:
1680         * rendering/RenderPath.h:
1681         * rendering/RenderSVGContainer.cpp:
1682         (WebCore::RenderSVGContainer::paint):
1683         (WebCore::RenderSVGContainer::addFocusRingRects):
1684         * rendering/RenderSVGContainer.h:
1685         * rendering/RenderSVGModelObject.cpp:
1686         (WebCore::RenderSVGModelObject::absoluteRects):
1687         (WebCore::RenderSVGModelObject::absoluteQuads):
1688         * rendering/RenderSVGModelObject.h:
1689
1690 2009-04-16  Peter Kasting  <pkasting@google.com>
1691
1692         Reviewed by Adele Peterson.
1693
1694         https://bugs.webkit.org/show_bug.cgi?id=25238
1695         Invalidate the hovered scrollbar part when resetting the pressed part,
1696         since once there is no pressed part we can draw a hovered state.
1697
1698         * platform/Scrollbar.cpp:
1699         (WebCore::Scrollbar::setHoveredPart):
1700         (WebCore::Scrollbar::setPressedPart):
1701
1702 2009-04-16  Darin Fisher  <darin@chromium.org>
1703
1704         Reviewed by Darin Adler.
1705
1706         https://bugs.webkit.org/show_bug.cgi?id=25223
1707         REGRESSION: Back button after form submission to the same URL fails to navigate.
1708
1709         Test: http/tests/navigation/post-goback-same-url.html
1710
1711         * loader/FrameLoader.cpp:
1712         (WebCore::FrameLoader::loadItem): Check if the page we are leaving has
1713         FormData.
1714
1715 2009-04-17  Nikolas Zimmermann  <nikolas.zimmerman@torchmobile.com>
1716
1717         Not reviewed. Fix WML enabled builds.
1718
1719         * rendering/RenderTableRow.cpp: Remove dead code, which is no longer necessary.
1720         (WebCore::RenderTableRow::addChild):
1721         * wml/WMLInputElement.cpp: Apply same fix HTMLInputElement received. Covert RenderObject's to RenderTextControl where needed.
1722         (WebCore::WMLInputElement::defaultEventHandler):
1723
1724 2009-04-17  Pierre d'Herbemont  <pdherbemont@apple.com>
1725
1726         Reviewed by Simon Fraser.
1727         
1728         https://bugs.webkit.org/show_bug.cgi?id=24849
1729
1730         Add support for the media element 'played' attribute.
1731         This involves support of "normalized TimeRanges" as described by
1732         the spec.
1733
1734         Test: media/video-played.html
1735
1736         * html/HTMLMediaElement.cpp:
1737         (WebCore::HTMLMediaElement::HTMLMediaElement): Renamed 
1738         m_currentTimeDuringSeek->m_lastSeekTime. Added m_playing and m_playedTimeRanges.
1739         (WebCore::HTMLMediaElement::loadInternal): Reset m_playing, m_lastSeekTime, and
1740         m_playedTimeRanges
1741         (WebCore::HTMLMediaElement::seek): Set current time to m_playedTimeRanges
1742         (WebCore::HTMLMediaElement::currentTime): m_currentTimeDuringSeek -> m_lastSeekTime
1743         (WebCore::HTMLMediaElement::played): Returns m_playedTimeRanges.
1744         (WebCore::HTMLMediaElement::updatePlayState): Add the new played time ranges when pausing. 
1745         Set the m_playing flag.
1746         * html/HTMLMediaElement.h:
1747
1748         * html/TimeRanges.cpp:
1749         (TimeRanges::add): Merge range(s) if overlap.
1750         * html/TimeRanges.h: Add various helpers (below).
1751         (WebCore::TimeRanges::Range::isPointInRange): Added.
1752         (WebCore::TimeRanges::Range::isOverlappingRange): Ditto.
1753         (WebCore::TimeRanges::Range::unionWithOverlappingRange): Ditto.
1754         (WebCore::TimeRanges::Range::isBeforeRange): Ditto.
1755
1756 2009-04-17  Darin Adler  <darin@apple.com>
1757
1758         Reviewed by Antti Koivisto.
1759
1760         Bug 25210: don't use ObjC methods to wrap/unwrap DOM objects with ObjC
1761         https://bugs.webkit.org/show_bug.cgi?id=25210
1762
1763         * WebCore.base.exp: Export the core and kit function overloads that are used
1764         in WebKit. Also resorted this file.
1765
1766         * WebCore.xcodeproj/project.pbxproj: Re-added DOMHTMLCanvasElement.h to fix
1767         a strange problem with the file type.
1768
1769         * bindings/objc/DOM.mm: Removed the many extraneous includes. Added new includes
1770         so we can use and implement the new core and kit functions. Import DOMInternal.h
1771         first so it can do its public/private magic.
1772         (-[DOMNode _rootObject]): Changed to use early-return style.
1773         (kitClass): Added. Tells the wrapper generator what kind of node class to create
1774         to wrap DOM nodes. This has the code that used to be in the _wrapNode method.
1775         (kit): Added. Takes an EventTarget and makes the appropriate type of wrapper,
1776         dpending on whether it's a Node or an SVGElementInstance. This replace methods
1777         that used to be on both of those classes.
1778         (-[DOMNode boundingBox]): Changed to use early return, and the core function.
1779         (-[DOMNode lineBoxRects]): Ditto.
1780         (-[DOMNode renderedImage]): Ditto.
1781         (-[DOMRange boundingBox]): Ditto.
1782         (-[DOMRange lineBoxRects]): Ditto.
1783         (-[DOMElement image]): Ditto.
1784         (-[DOMElement _font]): Ditto.
1785         (-[DOMElement _imageTIFFRepresentation]): Ditto.
1786         (-[DOMElement _getURLAttribute:]): Ditto.
1787         (-[DOMElement isFocused]): Ditto.
1788         (kit): Hand-wrote the version of this for NodeFilter, since it's a protocol,
1789         not a class in the binding.
1790         (core): Ditto.
1791         (-[DOMNodeFilter acceptNode:]): Use core.
1792
1793         * bindings/objc/DOMAbstractView.mm:
1794         (-[DOMAbstractView document]): Use kit.
1795         (-[DOMAbstractView _disconnectFrame]): Call removeDOMWrapper, which is no longer
1796         in the WebCore namespace, since it's headed for WebKit in the future.
1797         (core): Hand-wrote the version of this for DOMAbstractView.mm, since we store
1798         a pointer to the Frame, not the DMWindow.
1799         (kit): Ditto.
1800
1801         * bindings/objc/DOMCSS.mm:
1802         (kitClass): Added. Tells the wrapper generator what kind of node class to create
1803         to wrap CSS objects. This has the code that used to be in the _wrapStyleSheet,
1804         _wrapCSSRule, and _wrapCSSValue methods.
1805
1806         * bindings/objc/DOMEvents.mm:
1807         (kitClass): Added. Tells the wrapper generator what kind of node class to create
1808         to wrap event objects. This has the code that used to be in the _wrapEvent methods.
1809
1810         * bindings/objc/DOMHTML.mm:
1811         (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]): Use kit and core.
1812         (-[DOMHTMLDocument createDocumentFragmentWithText:]): Ditto.
1813         (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto.
1814         (-[DOMHTMLInputElement _rectOnScreen]): Ditto.
1815         (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]): Ditto.
1816         (-[DOMHTMLInputElement _selectedRange]): Ditto.
1817         (-[DOMHTMLInputElement _setAutofilled:]): Ditto.
1818         (-[DOMHTMLSelectElement _activateItemAtIndex:]): Ditto.
1819         (-[DOMHTMLInputElement _isEdited]): Ditto.
1820         (-[DOMHTMLTextAreaElement _isEdited]): Ditto.
1821         (kitClass): Added. Gives HTMLOptionCollection objects an appropriate wrapper.
1822
1823         * bindings/objc/DOMInternal.h: Removed most of the imports. There's no reason
1824         to have this header include all the other internal DOM headers. Removed unneeded
1825         interfaces, including the redeclaration of _init in DOMObject, since it's already
1826         inherited from WebScriptObject. Moved all the functions out of the WebCore
1827         namespace since this code is destined for WebKit, which doesn't use a namespace.
1828         Added kit and core functions for the two classes that live in this header.
1829
1830         * bindings/objc/DOMInternal.mm:
1831         (-[WebScriptObject _initializeScriptDOMNodeImp]): Use core.
1832
1833         * bindings/objc/DOMObject.h: Made the _internal field be private instead of
1834         protected. This also allows the "#define private public" trick to be used to
1835         make the field accessible inside the bindings code.
1836
1837         * bindings/objc/DOMObject.mm:
1838         (-[DOMObject dealloc]): Updated for namespace change.
1839         (-[DOMObject sheet]): Use core and kit functions.
1840
1841         * bindings/objc/DOMRGBColor.mm:
1842         (-[DOMRGBColor dealloc]): Updated for namespace change.
1843         (-[DOMRGBColor red]): Use kit function.
1844         (-[DOMRGBColor green]): Ditto.
1845         (-[DOMRGBColor blue]): Ditto.
1846         (-[DOMRGBColor alpha]): Ditto.
1847         (core): Added. Replaces the _RGBColor method.
1848         (kit): Added. Replaces the _wrapRGBColor method.
1849
1850         * bindings/objc/DOMSVGPathSegInternal.mm:
1851         (kitClass): Added. Replaces the _wrapSVGPathSeg method.
1852
1853         * bindings/objc/DOMUtility.mm:
1854         (JSC::createDOMWrapper): Use kit function.
1855         (createDOMWrapper): Ditto.
1856
1857         * bindings/objc/DOMXPath.mm:
1858         (core): Added. Replaces the _xpathNSResolver method.
1859         (kit): Added. Replaces the _wrapXPathNSResolver method.
1860
1861         * bindings/objc/ObjCEventListener.mm:
1862         (WebCore::ObjCEventListener::find): Changed to use early return.
1863         (WebCore::ObjCEventListener::handleEvent): Use kit function.
1864
1865         * bindings/objc/ObjCNodeFilterCondition.mm:
1866         (WebCore::ObjCNodeFilterCondition::acceptNode): Use kit function.
1867
1868         * bindings/objc/WebScriptObject.mm:
1869         (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
1870         Updated for namespace change.
1871
1872         * bindings/scripts/CodeGeneratorObjC.pm: Changed spelling of "license"
1873         to U.S. spelling. Removed GetObjCTypeMaker, GetObjCTypeGetterName,
1874         GetInternalTypeGetterSignature, and GetInternalTypeMakerSignature.
1875         Changed includes to conform to new scheme. Generate core and kit
1876         functions instead of methods and calls to those functions. Added a new
1877         attribute, Polymorphic, to indicate classes that have derived subclasses.
1878         Removed the old ObjCCustomInternalImpl attribute.
1879
1880         * css/CSSRule.idl: Use Polymorphic attribute, so core and kit functions
1881         will be generated, with kit calling kitClass. This requires less hand-
1882         written code than the old ObjCCustomInternalImpl.
1883         * css/CSSValue.idl: Ditto.
1884         * css/StyleSheet.idl: Ditto.
1885         * dom/Event.idl: Ditto.
1886         * dom/Node.idl: Ditto.
1887         * html/HTMLCollection.idl: Ditto.
1888         * svg/SVGPathSeg.idl: Ditto.
1889
1890         * editing/TextAffinity.h: Moved kit and core functions out of the
1891         WebCore namespace since this code is destined for WebKit, which
1892         doesn't use a namespace
1893
1894         * platform/mac/ClipboardMac.mm:
1895         (WebCore::ClipboardMac::declareAndWriteDragImage): Use kit function.
1896
1897         * platform/mac/DragDataMac.mm:
1898         (WebCore::DragData::asFragment): Use core function.
1899
1900         * platform/mac/PasteboardMac.mm:
1901         (WebCore::Pasteboard::writeSelection): Use kit function.
1902
1903         * svg/SVGElementInstance.idl: Removed now-unneeded ObjCCustomInternalImpl
1904         function. This can be generated in a standard way now.
1905         * svg/SVGViewSpec.idl: Ditto.
1906
1907 2009-04-17  Brady Eidson  <beidson@apple.com>
1908
1909         Reviewed by Maciej Stachowiak
1910
1911         <rdar://problem/5753299> "Private Browsing" doesn't affect HTML 5 Database storage
1912
1913         If the Page is in private browsing mode when a statement is queued up, flag that 
1914         statement as read-only.
1915
1916         It would be better to set the read-only flag on the database thread when it actually
1917         executes, but that would either require making Settings access a lock-protected operation
1918         or involve a synchronous callback to the WebCore thread, neither of which seem worth it.
1919         If it becomes an issue in practice, we can revisit this later.
1920
1921         Test: storage/private-browsing-readonly.html
1922
1923         * storage/Database.cpp:
1924         (WebCore::Database::setAuthorizerReadOnly):
1925         * storage/Database.h:
1926
1927         * storage/DatabaseAuthorizer.cpp:  For all action types that would alter the database,
1928           deny when in read-only mode.
1929         (WebCore::DatabaseAuthorizer::reset):
1930         (WebCore::DatabaseAuthorizer::createTable):
1931         (WebCore::DatabaseAuthorizer::dropTable):
1932         (WebCore::DatabaseAuthorizer::allowAlterTable):
1933         (WebCore::DatabaseAuthorizer::createIndex):
1934         (WebCore::DatabaseAuthorizer::dropIndex):
1935         (WebCore::DatabaseAuthorizer::createTrigger):
1936         (WebCore::DatabaseAuthorizer::dropTrigger):
1937         (WebCore::DatabaseAuthorizer::createVTable):
1938         (WebCore::DatabaseAuthorizer::dropVTable):
1939         (WebCore::DatabaseAuthorizer::allowDelete):
1940         (WebCore::DatabaseAuthorizer::allowInsert):
1941         (WebCore::DatabaseAuthorizer::allowUpdate):
1942         (WebCore::DatabaseAuthorizer::setReadOnly):
1943         * storage/DatabaseAuthorizer.h:
1944
1945         * storage/SQLStatement.cpp:
1946         (WebCore::SQLStatement::create): Add a m_readOnly flag.
1947         (WebCore::SQLStatement::SQLStatement): Ditto.
1948         (WebCore::SQLStatement::execute): If m_readOnly is set, tell the authorizer to change
1949           to read-only mode.
1950         * storage/SQLStatement.h:
1951
1952         * storage/SQLTransaction.cpp:
1953         (WebCore::SQLTransaction::executeSQL): Flag the statement as read-only if the Page is
1954           currently in private browsing mode.
1955
1956 2009-04-17  Eric Seidel  <eric@webkit.org>
1957
1958         Reviewed by Antti Koivisto.
1959
1960         Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint
1961         https://bugs.webkit.org/show_bug.cgi?id=25268
1962
1963         Lots of minus lines.  Now we're sharing more sane code
1964         (which will respect -webkit-transforms! and scroll offsets correctly)
1965
1966         Which means this fixes:
1967         https://bugs.webkit.org/show_bug.cgi?id=20769 and
1968         https://bugs.webkit.org/show_bug.cgi?id=21968 too!
1969
1970         We're no longer expanding the paint rect "for anti-aliasing", since
1971         I can't find a case where that's required.  If it is, repaintRectInLocalCoordinates()
1972         should be fixed to handle those cases instead of here.
1973
1974         This fixes svg/custom/scroll-hit-test (now that we respect scroll offsets when repainting)
1975         as well as improves our focus ring drawing seen in svg/custom/focus-ring
1976         focus rings are now closer to transformed content by a couple pixels (they were needlessly outset by the antialiasing hack)
1977         Also, it fixes the dumped rects for markers, causing a progression in svg/custom/marker-overflow-clip
1978
1979         * rendering/RenderPath.cpp:
1980         (WebCore::RenderPath::repaintRectInLocalCoordinates):
1981         (WebCore::RenderPath::setPath):
1982         * rendering/RenderPath.h:
1983         * rendering/RenderSVGContainer.cpp:
1984         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
1985         * rendering/RenderSVGContainer.h:
1986         * rendering/RenderSVGModelObject.cpp:
1987         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
1988         (WebCore::RenderSVGModelObject::computeRectForRepaint):
1989         * rendering/RenderSVGModelObject.h:
1990         * rendering/RenderSVGRoot.cpp:
1991         (WebCore::RenderSVGRoot::computeRectForRepaint):
1992         * rendering/RenderSVGRoot.h:
1993
1994 2009-04-17  Chris Fleizach  <cfleizach@apple.com>
1995
1996         Reviewed by Darin Adler.
1997
1998         Bug 25259: AX: VoiceOver cmd-cntl-space does not follow the google.com->more link
1999         https://bugs.webkit.org/show_bug.cgi?id=25259
2000   
2001         When a node becomes visible or hidden, accessibility needs to be told to update.
2002
2003         Test: accessibility/visible-elements.html
2004
2005         * rendering/RenderObject.cpp:
2006         (WebCore::RenderObject::styleWillChange):
2007
2008 2009-04-17  Kevin Ollivier  <kevino@theolliviers.com>
2009
2010         wx build fix, added missing header.
2011
2012         * platform/graphics/wx/TransformationMatrixWx.cpp:
2013
2014 2009-04-17  Simon Hausmann  <simon.hausmann@nokia.com>
2015
2016         Unreviewed build fix.
2017
2018         Fix the build with enabled SVG filters
2019
2020         * rendering/RenderSVGModelObject.cpp: Include SVGResourceFilter.h.
2021
2022 2009-04-16  Eric Roman  <eroman@chromium.org>
2023
2024         Reviewed by Dimitri Glazkov.
2025
2026         https://bugs.webkit.org/show_bug.cgi?id=25196
2027         Add a missing V8DOMMap include.
2028
2029         * bindings/v8/WorkerScriptController.cpp: Included V8DOMMap.h.
2030
2031 2009-04-16  Dimitri Glazkov  <dglazkov@chromium.org>
2032
2033         Reviewed by Darin Fisher.
2034
2035         https://bugs.webkit.org/show_bug.cgi?id=25260
2036         Finish V8 custom bindings for InspectorController.
2037
2038         * bindings/v8/custom/V8InspectorControllerCustom.cpp:
2039         (WebCore::CALLBACK_FUNC_DECL): Added.
2040
2041 2009-04-16  Kevin Watters  <kevinwatters@gmail.com>
2042
2043         Reviewed by Kevin Ollivier.
2044
2045         Switch to wxGraphicsBitmap when using wxGraphicsContext so that we're not doing
2046         unnecessary conversions internally when drawing bitmaps.
2047         
2048         https://bugs.webkit.org/show_bug.cgi?id=25248
2049
2050         * platform/graphics/ImageSource.h:
2051         * platform/graphics/wx/ImageSourceWx.cpp:
2052         (WebCore::ImageSource::createFrameAtIndex):
2053         * platform/graphics/wx/ImageWx.cpp:
2054         (WebCore::BitmapImage::draw):
2055         (WebCore::BitmapImage::drawPattern):
2056
2057 2009-04-16  Justin Garcia  <justin.garcia@apple.com>
2058
2059         Reviewed by Dan Bernstein.
2060
2061         Performing a block style change in an editable root that contains only a br adds a newline
2062         https://bugs.webkit.org/show_bug.cgi?id=25256
2063
2064         * editing/CompositeEditCommand.cpp:
2065         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix a bad check for an root
2066         block that didn't handle a root that contained a placeholder.
2067
2068 2009-04-16  Eric Seidel  <eric@webkit.org>
2069
2070         Reviewed by Simon Fraser.
2071
2072         Fix computeContainerBoundingBox to respect viewport translations
2073         https://bugs.webkit.org/show_bug.cgi?id=25254
2074
2075         Previously computeContainerBoundingBox was just adding the viewportTranslation.
2076         Which, although it has a confusing name, only contains the scale and translation
2077         for the viewBox/preserveAspectRatio adjustment.  It does not contain the
2078         translation for the x/y offset of the viewport.
2079         localToParentTransform() does contain this offset, so we use that instead
2080         of the previous hacky code.
2081
2082         * rendering/RenderSVGContainer.h:
2083         * rendering/RenderSVGViewportContainer.h:
2084         * rendering/SVGRenderSupport.cpp:
2085         (WebCore::computeContainerBoundingBox):
2086
2087 2009-04-16  Eric Seidel  <eric@webkit.org>
2088
2089         Reviewed by Simon Fraser.
2090
2091         Add a localToParentTransform() method which includes the
2092         full transform between local and parent local coordinates.
2093         https://bugs.webkit.org/show_bug.cgi?id=25226
2094
2095         Moved m_localTransform up into RenderSVGTransformableContainer
2096         and added a comment to RenderSVGViewportContainer to make it more
2097         clear that it does not have a localTransform().
2098
2099         This patch reveals two more failed design decisions:
2100         1.  Use of RenderBox::absoluteTransform() to mean "absoluteTransform()
2101             including only my localTransform()" callers are probably using it
2102             incorrectly anyway and are just masking bugs in the confused code.
2103         2.  computeContainerBoundingBox does not include viewport translations in
2104             its computed bounding box, so bounding boxes will be off for parents of
2105             inner <svg> elements.  I'll fix this an updated the results in a separate change.
2106
2107         No functional changes, thus no tests.
2108
2109         * rendering/RenderObject.cpp:
2110         (WebCore::RenderObject::localToParentTransform):
2111         (WebCore::RenderObject::absoluteTransform):
2112         * rendering/RenderObject.h:
2113         * rendering/RenderSVGContainer.cpp:
2114         (WebCore::RenderSVGContainer::layout):
2115         * rendering/RenderSVGContainer.h:
2116         (WebCore::RenderSVGContainer::viewportTransform):
2117         * rendering/RenderSVGHiddenContainer.cpp:
2118         * rendering/RenderSVGHiddenContainer.h:
2119         (WebCore::RenderSVGHiddenContainer::absoluteTransform):
2120         * rendering/RenderSVGRoot.cpp:
2121         (WebCore::RenderSVGRoot::localToParentTransform):
2122         (WebCore::RenderSVGRoot::absoluteTransform):
2123         * rendering/RenderSVGRoot.h:
2124         * rendering/RenderSVGTransformableContainer.cpp:
2125         (WebCore::RenderSVGTransformableContainer::localToParentTransform):
2126         (WebCore::RenderSVGTransformableContainer::localTransform):
2127         * rendering/RenderSVGTransformableContainer.h:
2128         * rendering/RenderSVGViewportContainer.cpp:
2129         (WebCore::RenderSVGViewportContainer::localToParentTransform):
2130         (WebCore::RenderSVGViewportContainer::absoluteTransform):
2131         * rendering/RenderSVGViewportContainer.h:
2132         * rendering/SVGRenderSupport.cpp:
2133         (WebCore::computeContainerBoundingBox):
2134
2135 2009-04-16  Adam Langley  <agl@google.com>
2136
2137         Reviewed by Darin Fisher.
2138
2139         Fix Chromium's rendering of <option> elements inside of <optgroups>.
2140
2141         https://bugs.webkit.org/show_bug.cgi?id=25244
2142
2143         Test (will included as a manual test by https://bugs.webkit.org/show_bug.cgi?id=24900):
2144
2145         <select>
2146           <optgroup label="Should be bold">
2147             <option>Should not be bold</option>
2148           </optgroup>
2149         </select>
2150
2151         * css/themeWin.css: adding comments
2152         * platform/chromium/PopupMenuChromium.cpp:
2153         (WebCore::PopupListBox::getRowFont): use menuStyle() rather than the item's style
2154
2155 2009-04-16  Eric Roman  <eroman@chromium.org>
2156
2157         Reviewed by Alexey Proskuryakov.
2158
2159         https://bugs.webkit.org/show_bug.cgi?id=25218
2160
2161         Make DOMWindow::inlineEventListenerForType not have the "inline"
2162         keyword. As this method gets used outside of DOMWindow.
2163
2164         * page/DOMWindow.cpp:
2165         (WebCore::DOMWindow::inlineEventListenerForType):
2166
2167 2009-04-16  Greg Bolsinga  <bolsinga@apple.com>
2168
2169         Reviewed by Antti Koivisto.
2170
2171         Fix <rdar://problem/6766969>
2172         
2173         When deferred repaints are enabled and being reset and there is a active
2174         timer, stop the timer and do the deferred repaints immediately.
2175
2176         * page/FrameView.cpp:
2177         (WebCore::FrameView::resetDeferredRepaintDelay):
2178
2179 2009-04-16  Xan Lopez  <xlopez@igalia.com>
2180
2181         Reviewed by Sam Weinig.
2182
2183         https://bugs.webkit.org/show_bug.cgi?id=25241
2184         Remove superfluous NotImplemented.h includes.
2185
2186         * html/CanvasRenderingContext2D.cpp:
2187         * html/CanvasStyle.cpp:
2188         * page/AccessibilityRenderObject.cpp:
2189         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
2190         * platform/graphics/GraphicsContext.cpp:
2191         * platform/graphics/cairo/ImageBufferCairo.cpp:
2192         * platform/graphics/cairo/PathCairo.cpp:
2193         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2194         * platform/graphics/gtk/FontGtk.cpp:
2195         * platform/graphics/gtk/IconGtk.cpp:
2196         * platform/graphics/qt/IconQt.cpp:
2197         * platform/graphics/qt/ImageQt.cpp:
2198         * platform/graphics/qt/ImageSourceQt.cpp:
2199         * platform/graphics/skia/ImageBufferSkia.cpp:
2200         * platform/graphics/skia/ImageSkia.cpp:
2201         * platform/graphics/win/ColorSafari.cpp:
2202         * platform/graphics/win/FontWin.cpp:
2203         * platform/graphics/win/GraphicsContextCGWin.cpp:
2204         * platform/graphics/win/GraphicsContextCairoWin.cpp:
2205         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
2206         * platform/graphics/wx/ImageWx.cpp:
2207         * platform/graphics/wx/TransformationMatrixWx.cpp:
2208         * platform/gtk/PlatformScreenGtk.cpp:
2209         * platform/gtk/PopupMenuGtk.cpp:
2210         * platform/gtk/ScrollViewGtk.cpp:
2211         * platform/gtk/ScrollbarGtk.cpp:
2212         * platform/network/cf/ResourceHandleCFNet.cpp:
2213         * platform/posix/FileSystemPOSIX.cpp:
2214         * platform/qt/DragDataQt.cpp:
2215         * platform/qt/FileSystemQt.cpp:
2216         * platform/qt/Localizations.cpp:
2217         * platform/qt/PopupMenuQt.cpp:
2218         * platform/win/EditorWin.cpp:
2219         * platform/win/PasteboardWin.cpp:
2220         * platform/wx/KeyboardEventWx.cpp:
2221         * platform/wx/PopupMenuWx.cpp:
2222         * platform/wx/SharedTimerWx.cpp:
2223         * plugins/gtk/PluginViewGtk.cpp:
2224         * plugins/mac/PluginPackageMac.cpp:
2225         * plugins/qt/PluginPackageQt.cpp:
2226         * plugins/win/PluginViewWin.cpp:
2227         * rendering/RenderThemeChromiumLinux.cpp:
2228         * svg/graphics/SVGImage.cpp:
2229
2230 2009-04-16  Geoffrey Garen  <ggaren@apple.com>
2231
2232         Reviewed by Sam Weinig.
2233
2234         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
2235         Unbounded memory growth when churning elements with anonymous event handler functions
2236         
2237         Some cleanup in event handling code.
2238
2239         * bindings/js/JSDOMGlobalObject.cpp:
2240         * bindings/js/JSDOMGlobalObject.h: Removed findJSProtectedEventListener
2241         and findJSProtectedEventListener because they are now unused.
2242
2243         * bindings/js/JSEventListener.cpp:
2244         * bindings/js/JSEventListener.h:
2245         (WebCore::JSEventListener::clearGlobalObject):
2246         * bindings/js/JSLazyEventListener.cpp:
2247         (WebCore::JSLazyEventListener::JSLazyEventListener):
2248         (WebCore::JSLazyEventListener::~JSLazyEventListener):
2249         (WebCore::JSLazyEventListener::globalObject):
2250         * bindings/js/JSLazyEventListener.h:
2251         (WebCore::JSLazyEventListener::clearGlobalObject): Nixed JSProtectedEventListener,
2252         and merged it with JSLazyEventListener, the only remaining event listener
2253         that still GC-protects its function and global object.
2254
2255         * bindings/js/ScriptController.cpp:
2256         (WebCore::ScriptController::ScriptController):
2257         * bindings/js/ScriptController.h:
2258         (WebCore::ScriptController::setEventHandlerLineNumber):
2259         (WebCore::ScriptController::eventHandlerLineNumber): Renamed handlerLineno =>
2260         handlerLineNumber, because anything less would be uncivilized. Removed
2261         createInlineEventListener because it mostly did irrelevent work, so it
2262         just got in the way of understanding how event handler creation works.
2263
2264         * dom/Document.cpp:
2265         (WebCore::Document::createEventListener):
2266         * dom/XMLTokenizerLibxml2.cpp:
2267         (WebCore::XMLTokenizer::startElementNs):
2268         * html/HTMLTokenizer.cpp:
2269         (WebCore::HTMLTokenizer::processToken): Ditto.
2270
2271 2009-04-16  Beth Dakin  <bdakin@apple.com>
2272
2273         Reviewed by Dave Hyatt.
2274
2275         Fix for https://bugs.webkit.org/show_bug.cgi?id=20765 Website 
2276         crashes on load due to messy HTML in search form
2277         -and corresponding-
2278         <rdar://problem/6210633>
2279
2280         Before this patch, <form>s were allowed to sit inside tables 
2281         without being wrapped by anonymous table parts. There was also a 
2282         concept that such a form could be "demoted" and would not be 
2283         allowed to have any children. This patch has the HTML parser mark 
2284         form elements that have been demoted as such, and then the demoted 
2285         forms are not given renderers. I also removed the code that allowed 
2286         forms to sit in tables without anonymous table sections. So now any 
2287         forms that do manage to get a renderer inside a table will also be 
2288         wrapped with appropriate table parts.
2289
2290         * html/HTMLFormElement.cpp:
2291         (WebCore::HTMLFormElement::HTMLFormElement):
2292         (WebCore::HTMLFormElement::rendererIsNeeded):
2293         * html/HTMLFormElement.h:
2294         (WebCore::HTMLFormElement::setDemoted):
2295         (WebCore::HTMLFormElement::isDemoted):
2296         * html/HTMLParser.cpp:
2297         (WebCore::HTMLParser::insertNode):
2298         * rendering/RenderTable.cpp:
2299         (WebCore::RenderTable::addChild):
2300         * rendering/RenderTableRow.cpp:
2301         (WebCore::RenderTableRow::addChild):
2302         * rendering/RenderTableSection.cpp:
2303         (WebCore::RenderTableSection::addChild):
2304
2305 2009-04-16  Xiaomei Ji  <xji@chromium.org>
2306
2307         Reviewed by Simon Fraser.
2308
2309         Fix https://bugs.webkit.org/show_bug.cgi?id=24527
2310         caret does not paint the first time you focus on a 0px right padding RTL div
2311
2312         Test: fast/forms/caret-rtl.html
2313
2314         * rendering/RenderBlock.cpp:
2315         (WebCore::RenderBlock::localCaretRect): When calculating x-axis if 
2316         alignment is alignRight, we need to subtract the caretWidth so that the
2317         caret at IntRect(x, y, caretWidth, height) is inside the block.
2318
2319 2009-04-16  Justin Garcia  <justin.garcia@apple.com>
2320
2321         Reviewed by Simon Fraser.
2322
2323         https://bugs.webkit.org/show_bug.cgi?id=25228
2324         SelectionController::absoluteCaretBounds returns an inflated caret (the caret repaint rect)
2325         
2326         Return the bounds of the transformed caret, not the transformed repaint rect for the caret (which is inflated).
2327
2328         * editing/SelectionController.cpp:
2329         (WebCore::SelectionController::localCaretRect):
2330         (WebCore::SelectionController::absoluteBoundsForLocalRect):
2331         (WebCore::SelectionController::caretRepaintRect):
2332         (WebCore::SelectionController::recomputeCaretRect):
2333         * editing/SelectionController.h:
2334
2335 2009-04-16  Pierre d'Herbemont  <pdherbemont@apple.com>
2336
2337         Reviewed by Simon Fraser.
2338
2339         https://bugs.webkit.org/show_bug.cgi?id=25187
2340         Bug 25187: <video> may not be rendered upon certain racy conditions
2341
2342         Always create the video renderer when the load state reaches QTMovieLoadStateLoaded and
2343         the element is visible, not just when the movie has just been opened.
2344
2345         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2346         (WebCore::MediaPlayerPrivate::updateStates): Make sure we do not make false
2347         assumption on the state changes order. Create the renderer if none is present,
2348         when movie is loaded instead.
2349
2350 2009-04-16  Eric Seidel  <eric@webkit.org>
2351
2352         Reviewed by Geoffrey Garen.
2353
2354         Add filterBoundingBox() to RenderSVGModelObject to share a tiny bit of code
2355
2356         RenderSVGModelObject has much more interesting code it can share,
2357         but I'm just trying to get the commits out of my local branch and into
2358         the repository in any order I can. :)  This one was small.
2359
2360         This will be used by the unified RenderSVGModelObject
2361         clippedOverflowRectForRepaint patch coming soon.
2362
2363         * rendering/RenderPath.cpp:
2364         (WebCore::RenderPath::clippedOverflowRectForRepaint):
2365         * rendering/RenderSVGContainer.cpp:
2366         (WebCore::RenderSVGContainer::clippedOverflowRectForRepaint):
2367         * rendering/RenderSVGModelObject.cpp:
2368         (WebCore::RenderSVGModelObject::filterBoundingBox):
2369         * rendering/RenderSVGModelObject.h:
2370
2371 2009-04-16  Geoffrey Garen  <ggaren@apple.com>
2372
2373         Reviewed by Eric Seidel and Adam Roben.
2374
2375         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
2376         Unbounded memory growth when churning elements with anonymous event handler functions
2377         
2378         Simplified some EventHandler creation code.
2379         
2380         Removed a pile of code whose sole purpose was to allow SVG event handlers
2381         to supply a parameter named "evt" instead of the normal "event", and
2382         replaced it with a single parameter to JSLazyEventListener's constructor
2383         specifying the parameter name to use.
2384
2385         * bindings/js/JSDOMWindowBase.h:
2386         * bindings/js/JSLazyEventListener.cpp:
2387         (WebCore::JSLazyEventListener::JSLazyEventListener):
2388         (WebCore::JSLazyEventListener::parseCode):
2389         * bindings/js/JSLazyEventListener.h:
2390         (WebCore::JSLazyEventListener::create):
2391         * bindings/js/ScriptController.cpp:
2392         (WebCore::ScriptController::createInlineEventListener):
2393         * bindings/js/ScriptController.h:
2394         * dom/Document.cpp:
2395         (WebCore::Document::createEventListener):
2396
2397 2009-04-15  Eric Seidel  <eric@webkit.org>
2398
2399         Reviewed by David Hyatt.
2400
2401         Split out objectBoundingBox and repaintRectInLocalCoordinates from relativeBBox
2402         in preparation for simplifying (and fixing) repaint logic in the SVG rendering tree.
2403         https://bugs.webkit.org/show_bug.cgi?id=25224
2404
2405         objectBoundingBox() matches the SVG 1.1 concept of a "bounding box"
2406
2407         repaintRectInLocalCoordinates() should return the a rect covering all painted content.
2408         However, repaintRectInLocalCoordinates() still only returns the "stroke bounding box"
2409         in this patch.  In a future patch, repaintRectInLocalCoordinates will be fixed to return
2410         a rect covering all painted content.  In order to avoid changing several hundred layout test results, I've left
2411         the behavior as-is for now.  The returned rect is used by various repaintRectInLocalCoordinates
2412         implementations and sometimes adjusted to include all painted content, but not always, and
2413         the places where the adjustments are made are sometimes wrong.  Again, will be fixed in
2414         an upcoming patch.
2415
2416         This patch discovered a bug in Font::drawTextUsingSVGFont, which is probably causing
2417         bounding-box relative gradients on SVGFont glyphs to not paint correctly.
2418         I chose not to try and fix the bug in this patch and instead left a FIXME.
2419
2420         This patch also discovered that at least tspan.getBBox() is broken.  This
2421         along with the foreignObject.getBBox() change will be tested (and fixed) in a
2422         later patch.  https://bugs.webkit.org/show_bug.cgi?id=25225
2423
2424         No change in behavior (besides the above mentioned foreignObject.getBBox()), thus no tests.
2425
2426         * rendering/RenderForeignObject.cpp:
2427         (WebCore::RenderForeignObject::objectBoundingBox): this is a behavior improvement for getBBox() test case coming in a later patch
2428         (WebCore::RenderForeignObject::repaintRectInLocalCoordinates): only really used for layout test results, might some day be used for repaint.
2429         * rendering/RenderForeignObject.h:
2430         * rendering/RenderObject.cpp:
2431         (WebCore::RenderObject::objectBoundingBox): new methods, ASSERT if used but not implemented.
2432         (WebCore::RenderObject::repaintRectInLocalCoordinates):
2433         * rendering/RenderObject.h:
2434         * rendering/RenderPath.cpp:
2435         (WebCore::RenderPath::objectBoundingBox):
2436         (WebCore::RenderPath::repaintRectInLocalCoordinates):
2437         (WebCore::RenderPath::clippedOverflowRectForRepaint):
2438         (WebCore::RenderPath::lineHeight):
2439         (WebCore::RenderPath::baselinePosition):
2440         (WebCore::RenderPath::paint):
2441         (WebCore::RenderPath::addFocusRingRects):
2442         * rendering/RenderPath.h:
2443         * rendering/RenderSVGContainer.cpp:
2444         (WebCore::RenderSVGContainer::paint):
2445         (WebCore::RenderSVGContainer::objectBoundingBox):
2446         (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
2447         * rendering/RenderSVGContainer.h:
2448         * rendering/RenderSVGGradientStop.h:
2449         (WebCore::RenderSVGGradientStop::objectBoundingBox):
2450         (WebCore::RenderSVGGradientStop::repaintRectInLocalCoordinates):
2451         * rendering/RenderSVGHiddenContainer.cpp:
2452         (WebCore::RenderSVGHiddenContainer::objectBoundingBox):
2453         (WebCore::RenderSVGHiddenContainer::repaintRectInLocalCoordinates):
2454         * rendering/RenderSVGHiddenContainer.h:
2455         * rendering/RenderSVGImage.cpp:
2456         (WebCore::RenderSVGImage::objectBoundingBox):
2457         (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
2458         (WebCore::RenderSVGImage::calculateAbsoluteBounds):
2459         (WebCore::RenderSVGImage::addFocusRingRects):
2460         * rendering/RenderSVGImage.h:
2461         * rendering/RenderSVGRoot.cpp:
2462         (WebCore::RenderSVGRoot::paint):
2463         (WebCore::RenderSVGRoot::objectBoundingBox):
2464         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
2465         * rendering/RenderSVGRoot.h:
2466         * rendering/RenderSVGTSpan.h:
2467         (WebCore::RenderSVGTSpan::objectBoundingBox):
2468         (WebCore::RenderSVGTSpan::repaintRectInLocalCoordinates):
2469         * rendering/RenderSVGText.cpp:
2470         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
2471         (WebCore::RenderSVGText::absoluteRects):
2472         (WebCore::RenderSVGText::absoluteQuads):
2473         (WebCore::RenderSVGText::objectBoundingBox):
2474         (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
2475         * rendering/RenderSVGText.h:
2476         * rendering/RenderSVGViewportContainer.cpp:
2477         (WebCore::RenderSVGViewportContainer::viewportTransform):
2478         * rendering/SVGRenderSupport.cpp:
2479         (WebCore::computeContainerBoundingBox):
2480         * rendering/SVGRenderSupport.h:
2481         * rendering/SVGRenderTreeAsText.cpp:
2482         (WebCore::operator<<):
2483         * svg/SVGFont.cpp:
2484         (WebCore::Font::drawTextUsingSVGFont):
2485         * svg/SVGLocatable.cpp:
2486         (WebCore::SVGLocatable::getBBox):
2487         * svg/SVGPatternElement.cpp:
2488         (WebCore::SVGPatternElement::buildPattern):
2489         * svg/graphics/SVGPaintServerGradient.cpp:
2490         (WebCore::createMaskAndSwapContextForTextGradient):
2491         (WebCore::clipToTextMask):
2492         (WebCore::SVGPaintServerGradient::setup):
2493         * svg/graphics/SVGPaintServerPattern.cpp:
2494         (WebCore::SVGPaintServerPattern::setup):
2495
2496 2009-04-16  Dan Bernstein  <mitz@apple.com>
2497
2498         Reviewed by Darin Adler.
2499
2500         - fix <rdar://problem/6032139> Table cell widths calculated
2501           incorrectly on table that uses table-layout:fixed, colspans, and a mix
2502           of percentage and pixel widths
2503
2504         Test: fast/table/fixed-granular-cols.html
2505
2506         The incorrect widths resulted from incorrect handling of the case where
2507         the <col> elements are more granular than the table cells.
2508
2509         * rendering/FixedTableLayout.cpp:
2510         (WebCore::FixedTableLayout::calcWidthArray): When processing <col>
2511         elements, append effective columns or split existing effective columns
2512         as needed.
2513
2514 2009-04-16  Alexey Proskuryakov  <ap@webkit.org>
2515
2516         <rdar://problem/6795285> Infinite recursion in ResourceHandle::receivedRequestToContinueWithoutCredential
2517
2518         Rolled out <http://trac.webkit.org/projects/webkit/changeset/42536> - the two instances of
2519         authentication challenge are different, after all. Added a FIXME comment about a possible
2520         future improvement.
2521
2522         * platform/network/ResourceHandle.cpp:
2523         (WebCore::ResourceHandle::clearAuthentication):
2524         * platform/network/ResourceHandleInternal.h:
2525         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2526         * platform/network/cf/ResourceHandleCFNet.cpp:
2527         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
2528         (WebCore::ResourceHandle::receivedCredential):
2529         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
2530         (WebCore::ResourceHandle::receivedCancellation):
2531         * platform/network/mac/ResourceHandleMac.mm:
2532         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
2533         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
2534         (WebCore::ResourceHandle::receivedCredential):
2535         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
2536         (WebCore::ResourceHandle::receivedCancellation):
2537
2538 2009-04-15  Geoffrey Garen  <ggaren@apple.com>
2539
2540         Reviewed by Sam Weinig.
2541         
2542         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
2543         Unbounded memory growth when churning elements with anonymous event handler functions
2544
2545         Also fixed <rdar://problem/6792909> WebInspector crashes when reloading
2546         a page with breakpoints set
2547         
2548         * bindings/js/JSEventListener.cpp:
2549         (WebCore::JSEventListener::clearJSFunctionInline):
2550         (WebCore::JSEventListener::markJSFunction):
2551         * bindings/js/JSEventListener.h: Actually clear our function and global
2552         object pointers when our client instructs us to. (Oops!) Also, mark
2553         our global object while we still intend to use it.
2554
2555         * bindings/js/JSSVGElementInstanceCustom.cpp:
2556         (WebCore::JSSVGElementInstance::mark):
2557         (WebCore::toJS):
2558         * bindings/scripts/CodeGeneratorJS.pm:
2559         * svg/SVGElementInstance.idl: For every SVGElementInstance wrapper, ensure
2560         that the corresponding element also has a wrapper, to keep its event
2561         listeners alive.
2562
2563 2009-04-15  Dimitri Glazkov  <dglazkov@chromium.org>
2564
2565         Reviewed by Darin Fisher.
2566
2567         https://bugs.webkit.org/show_bug.cgi?id=25201
2568         Add ScriptFunctionCall/ScriptObject for V8.
2569
2570         * bindings/v8/ScriptFunctionCall.cpp: Added.
2571         * bindings/v8/ScriptFunctionCall.h: Added.
2572         * bindings/v8/ScriptObject.cpp: Added.
2573         * bindings/v8/ScriptObject.h: Added.
2574         * bindings/v8/ScriptObjectQuarantine.cpp: Added.
2575         * bindings/v8/ScriptObjectQuarantine.h: Added.
2576         * bindings/v8/ScriptScope.cpp: Added.
2577         * bindings/v8/ScriptScope.h: Added.
2578         * bindings/v8/ScriptState.h:
2579         (WebCore::ScriptState::ScriptState): Added new constructors.
2580         (WebCore::ScriptState::frame): Added Frame ptr accessor.
2581         * bindings/v8/ScriptString.h:
2582         (WebCore::ScriptString::ScriptString): Added default constructor.
2583         * bindings/v8/ScriptValue.h:
2584         (WebCore::ScriptValue::isEqual): Added.
2585
2586 2009-04-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2587
2588         Unreviewed build fix. Add RenderSVGModelObject.* to GTK+'s build.
2589
2590         * GNUmakefile.am:
2591
2592 2009-04-15  Steve Falkenburg  <sfalken@apple.com>
2593
2594         <rdar://problem/6785760> WebCore should use a maximum of 6 connections per host, not 4
2595
2596         Reviewed by Adam Roben.
2597
2598         * platform/network/ResourceRequestBase.cpp:
2599         * platform/network/cf/ResourceRequestCFNet.cpp:
2600         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
2601
2602 2009-04-15  Sam Weinig  <sam@webkit.org>
2603
2604         Reviewed by Mark Rowe.
2605
2606         Add special casing to bindings generator so that custom functions
2607         starting with xml or xslt conform to WebKit style guidelines.
2608
2609         * bindings/js/JSDOMWindowCustom.cpp:
2610         (WebCore::JSDOMWindow::xmlHttpRequest):
2611         (WebCore::JSDOMWindow::xsltProcessor):
2612         * bindings/scripts/CodeGenerator.pm:
2613
2614 2009-04-15  Eric Seidel  <eric@webkit.org>
2615
2616         Reviewed by Simon Fraser.
2617
2618         Add minimal RenderSVGModelObject and make RenderPath and RenderSVGContainer use it.
2619         https://bugs.webkit.org/show_bug.cgi?id=25221
2620         
2621         RenderSVGModelObject is the base rendering class for things which live
2622         in the SVG rendering tree.  Not all SVG renders are RenderSVGModelObjects yet.
2623         
2624         More patches coming.  This is just adding the class, future patches
2625         will pull more logic out of RenderPath and RenderSVGContainer into RenderSVGModelObject.
2626
2627         * WebCore.pro:
2628         * WebCore.scons:
2629         * WebCore.vcproj/WebCore.vcproj:
2630         * WebCore.xcodeproj/project.pbxproj:
2631         * rendering/RenderPath.cpp:
2632         (WebCore::RenderPath::RenderPath):
2633         * rendering/RenderPath.h:
2634         * rendering/RenderSVGContainer.cpp:
2635         (WebCore::RenderSVGContainer::RenderSVGContainer):
2636         * rendering/RenderSVGContainer.h:
2637         * rendering/RenderSVGModelObject.cpp: Added.
2638         (WebCore::RenderSVGModelObject::RenderSVGModelObject):
2639         * rendering/RenderSVGModelObject.h: Added.
2640         (WebCore::RenderSVGModelObject::requiresLayer):
2641         * rendering/RenderTreeAsText.cpp:
2642         * rendering/SVGRenderTreeAsText.cpp:
2643
2644 2009-04-15  Eric Seidel  <eric@webkit.org>
2645
2646         Reviewed by Simon Fraser.
2647
2648         Remove more dead code from RenderSVGHiddenContainer.
2649
2650         lineHeight and baselinePosition used to be on RenderSVGContainer
2651         (of which this is a subclass) because RenderSVGContainer used
2652         to be a RenderBox and always the renderer for <svg>
2653         Now <svg> uses RenderSVGRoot when needing a RenderBox (inside HTML)
2654         and RenderSVGViewportContainer (when inside SVG content)
2655         so there is no need for RenderSVGHiddenContainer to have these HTML-specific methods.
2656
2657         * rendering/RenderSVGHiddenContainer.cpp:
2658         * rendering/RenderSVGHiddenContainer.h:
2659
2660 2009-04-15  Eric Seidel  <eric@webkit.org>
2661
2662         Reviewed by Simon Fraser.
2663
2664         Remove unneeded (broken) code from SVG renderers
2665         https://bugs.webkit.org/show_bug.cgi?id=25214
2666
2667         Mostly due to my historical confusions about the render tree
2668         and some methods not being removed after classes were split.
2669
2670         RenderSVGRoot is an RenderBox and should just use all the
2671         standard RenderBox methods for inspector and repaint rects.
2672
2673         RenderSVGContainer is *not* a RenderBox (any more) and thus
2674         doesn't need lineHeight or width/height or calcBounds.
2675
2676         RenderSVGViewportContainer had some broken code which tried
2677         to see if the click was inside the container at all, but it
2678         was using width/height metrics based off of the containing
2679         block (from calcWidth) which is wrong (since its real
2680         width/height are from its containing viewport not containing block).
2681
2682         * rendering/RenderSVGContainer.cpp:
2683         (WebCore::RenderSVGContainer::RenderSVGContainer):
2684         (WebCore::RenderSVGContainer::layout):
2685         * rendering/RenderSVGContainer.h:
2686         * rendering/RenderSVGRoot.cpp:
2687         * rendering/RenderSVGRoot.h:
2688         * rendering/RenderSVGViewportContainer.cpp:
2689         (WebCore::RenderSVGViewportContainer::layout):
2690         (WebCore::RenderSVGViewportContainer::nodeAtPoint):
2691
2692 2009-04-15  Eric Seidel  <eric@webkit.org>
2693
2694         Reviewed by Simon Fraser and Sam Weinig.
2695
2696         https://bugs.webkit.org/show_bug.cgi?id=25217
2697         Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop
2698         Add ASSERT(element) to all these functions since they should never be passed a null element.
2699
2700         * svg/SVGLocatable.cpp:
2701         (WebCore::isViewportElement):
2702         (WebCore::SVGLocatable::nearestViewportElement):
2703         (WebCore::SVGLocatable::farthestViewportElement):
2704         (WebCore::SVGLocatable::getBBox):
2705         (WebCore::SVGLocatable::getCTM):
2706         (WebCore::SVGLocatable::getScreenCTM):
2707
2708 2009-04-15  Sam Weinig  <sam@webkit.org>
2709
2710         Reviewed by Anders Carlsson.
2711
2712         Remove support for the ObjCIvar extended attribute from the Objective-C
2713         bindings generator.  It is not used anymore.
2714
2715         * bindings/scripts/CodeGeneratorObjC.pm:
2716
2717 2009-04-15  Justin Garcia  <justin.garcia@apple.com>
2718
2719         Reviewed by Dan Bernstein.
2720
2721         https://bugs.webkit.org/show_bug.cgi?id=25204
2722         Create a fast path for ReplaceSelectionCommand that merges text nodes
2723         
2724         During simple pastes, where we're just pasting a text node into a run of text, we would split the current
2725         text and insert the new node in between.  This is slow and we hit this bug:
2726
2727         https://bugs.webkit.org/show_bug.cgi?id=6148
2728
2729         in the layout and rendering code where adjacent text nodes don't shape correctly in Arabic.
2730         
2731         This change creates a fast path for ReplaceSelectionCommand that inserts text directly into the
2732         text node that holds the selection (very similar to the fast path we wrote for InsertTextCommand).
2733
2734         * editing/ReplaceSelectionCommand.cpp:
2735         (WebCore::ReplaceSelectionCommand::doApply):
2736         (WebCore::ReplaceSelectionCommand::performTrivialReplace):
2737         * editing/ReplaceSelectionCommand.h:
2738         * editing/TextIterator.cpp:
2739
2740 2009-04-15  Adam Langley  <agl@google.com>
2741
2742         Reviewed by Darin Fisher.
2743
2744         Move VDMX parsing into the Chromium Linux port.
2745
2746         https://bugs.webkit.org/show_bug.cgi?id=25116
2747
2748         VDMX tables are optional tables in TrueType fonts which contain the
2749         exact pixel height of a given font at a given pel size. In order to
2750         match Windows font metrics we have to use these numbers.
2751
2752         Previously, the parsing was performed in Skia. As part of the merge
2753         with upstream Skia, an interface for getting table data from a font
2754         has been added to Skia and we're moving the parsing into WebKit.
2755
2756         This does not change any layout tests.
2757
2758         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2759         (WebCore::FontPlatformData::uniqueID):
2760         * platform/graphics/chromium/FontPlatformDataLinux.h:
2761         * platform/graphics/chromium/FontTrueTypeLinux.cpp: Added.
2762         * platform/graphics/chromium/FontTrueTypeLinux.h: Added.
2763         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
2764         (WebCore::SimpleFontData::platformInit):
2765         (WebCore::SimpleFontData::platformWidthForGlyph):
2766
2767 2009-04-15  Stephen White  <senorblanco@chromium.org>
2768
2769         Reviewed by Dimitri Glazkov.
2770
2771         https://bugs.webkit.org/show_bug.cgi?id=25180
2772
2773         Restore stroked outlines to PlatformContextSkia::drawRect().
2774         These were removed inadvertently in r41805, aka
2775         https://bugs.webkit.org/show_bug.cgi?id=24662.
2776         SkRect is { left, top, right, bottom }, not { left, top, width, height }.
2777
2778         * platform/graphics/skia/PlatformContextSkia.cpp:
2779         (PlatformContextSkia::drawRect):
2780
2781 2009-04-15  Dan Bernstein  <mitz@apple.com>
2782
2783         Reviewed by Dave Hyatt.
2784
2785         - fix <rdar://problem/6777374> Generated content with display: run-in
2786           causes a crash
2787
2788         Test: fast/runin/generated.html
2789
2790         * rendering/RenderBlock.cpp:
2791         (WebCore::RenderBlock::handleRunInChild): Check if the run-in block is
2792         generated, and if so, make the RenderInline anonymous instead of passing
2793         a 0 node to the RenderInline constructor. If the run-in itself is
2794         generated, do move :before and :after children from the block into the
2795         inline, as they will not be regenerated. Changed nested ifs into early
2796         returns.
2797
2798 2009-04-15  Eric Roman  <eroman@chromium.org>
2799
2800         Reviewed by Geoffrey Garen.
2801
2802         https://bugs.webkit.org/show_bug.cgi?id=25192
2803
2804         Expose DOMWindow::removeInlineEventListenerForType and
2805         DOMWindow::inlineEventListenerForType as public.
2806
2807         * page/DOMWindow.h:
2808
2809 2009-04-14  Eric Roman  <eroman@chromium.org>
2810
2811         Reviewed by Darin Adler.
2812
2813         https://bugs.webkit.org/show_bug.cgi?id=25198
2814
2815         Wrap RegisteredEventListener's markEventListeners and invalidateEventListeners
2816         in a USE(JSC), since it doesn't compile with V8 bindings.
2817
2818         * dom/RegisteredEventListener.h:
2819
2820 2009-04-15  Eric Roman  <eroman@chromium.org>
2821
2822         Reviewed by Darin Adler.
2823
2824         https://bugs.webkit.org/show_bug.cgi?id=25194
2825
2826         Fix a caller of Settings::javaScriptCanOpenWindowsAutomatically() to
2827         use the new name.
2828
2829         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2830
2831 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
2832
2833         Rubber-stamped by Darin Adler.
2834
2835         Don't keep platform objects for authentication challenge in ResourceHandleInternal.
2836         We already have a copy in AuthenticationChallenge object.
2837
2838         * platform/network/ResourceHandle.cpp:
2839         (WebCore::ResourceHandle::clearAuthentication):
2840         * platform/network/ResourceHandleInternal.h:
2841         (WebCore::ResourceHandleInternal::ResourceHandleInternal):
2842         * platform/network/cf/ResourceHandleCFNet.cpp:
2843         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
2844         (WebCore::ResourceHandle::receivedCredential):
2845         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
2846         (WebCore::ResourceHandle::receivedCancellation):
2847         * platform/network/mac/ResourceHandleMac.mm:
2848         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
2849         (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
2850         (WebCore::ResourceHandle::receivedCredential):
2851         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
2852         (WebCore::ResourceHandle::receivedCancellation):
2853
2854 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
2855
2856         Reviewed by Sam Weinig.
2857
2858         Nixed some now-defunct autogeneration code.
2859
2860         * bindings/scripts/CodeGeneratorJS.pm:
2861
2862 2009-04-14  Eric Carlson  <eric.carlson@apple.com>
2863
2864         Reviewed by Alexey Proskuryakov.
2865         
2866         Fix <rdar://problem/6755724> <audio> and <video> elements can reference local 
2867         file:/// URLs from remote in Safari
2868
2869         Tests: http/tests/security/local-video-poster-from-remote.html
2870                http/tests/security/local-video-source-from-remote.html
2871                http/tests/security/local-video-src-from-remote.html
2872
2873         * html/HTMLMediaElement.cpp:
2874         (WebCore::HTMLMediaElement::loadResource): Don't pass url to media engine unless loader->canLoad()
2875         says it is OK.
2876
2877 2009-04-14  Sam Weinig  <sam@webkit.org>
2878
2879         Reviewed by Darin Adler.
2880
2881         Part of <rdar://problem/6150868>
2882         Fix incorrect handling of content that needs to go into the head element
2883         once the head element has been removed.
2884
2885         Test: fast/parser/head-content-after-head-removal.html
2886
2887         * html/HTMLParser.cpp:
2888         (WebCore::HTMLParser::HTMLParser): Remove unneeded initializer of m_head.
2889         (WebCore::HTMLParser::handleError): Update since m_head is now a RefPtr.
2890         (WebCore::HTMLParser::createHead): Ditto.
2891         * html/HTMLParser.h: Make m_head a RefPtr.
2892
2893 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
2894
2895         Used svn merge -r42529:42528 to roll out my last patch because it broke
2896         the build.
2897
2898         * bindings/js/JSDOMGlobalObject.cpp:
2899         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
2900         (WebCore::JSDOMGlobalObject::findJSProtectedEventListener):
2901         (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
2902         (WebCore::JSDOMGlobalObject::jsProtectedEventListeners):
2903         (WebCore::JSDOMGlobalObject::jsProtectedInlineEventListeners):
2904         * bindings/js/JSDOMGlobalObject.h:
2905
2906 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
2907
2908         Reviewed by Sam Weinig.
2909
2910         Nixed some now-dead code related to protected event listeners.
2911
2912         * bindings/js/JSDOMGlobalObject.cpp:
2913         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
2914         * bindings/js/JSDOMGlobalObject.h:
2915
2916 2009-04-14  Geoffrey Garen  <ggaren@apple.com>
2917
2918         Reviewed by Sam Weinig.
2919
2920         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
2921         Unbounded memory growth when churning elements with anonymous event handler functions
2922
2923         Stop using protected event listeners on SVGElementInstance.
2924
2925         * bindings/js/JSSVGElementInstanceCustom.cpp:
2926         (WebCore::JSSVGElementInstance::mark): Mark our event listeners, since
2927         they're not protected anymore.
2928
2929         (WebCore::JSSVGElementInstance::addEventListener):
2930         (WebCore::JSSVGElementInstance::removeEventListener): Make unprotected
2931         event listeners, since we mark them now.
2932
2933         * bindings/scripts/CodeGeneratorJS.pm: Autogenerate event listener
2934         invalidation for SVGElementInstance.
2935
2936         * svg/SVGElementInstance.h:
2937         (WebCore::SVGElementInstance::eventListeners): Added an accessor, for
2938         the sake of autogenerated code.
2939
2940         * svg/SVGElementInstance.idl: Removed the ProtectedEventListener attribute
2941         from event listener properties. Added a CustomMarkFunction attribute,
2942         since we need to mark our event listeners.
2943
2944 2009-04-14  Steve Falkenburg  <sfalken@apple.com>
2945
2946         Windows build fix.
2947
2948         * WebCore.vcproj/WebCore.vcproj:
2949
2950 2009-04-14  Steve Falkenburg  <sfalken@apple.com>
2951
2952         Add header guards to WebCore forwarding headers.
2953         
2954         Speeds up WebCore debug build on Windows by 12% on my system,
2955         since Visual Studio appears to not optimize for standard header
2956         guards in included files.
2957         
2958         Rubber stamped by Ada Chan.
2959
2960         * ForwardingHeaders/debugger/Debugger.h:
2961         * ForwardingHeaders/debugger/DebuggerActivation.h:
2962         * ForwardingHeaders/debugger/DebuggerCallFrame.h:
2963         * ForwardingHeaders/interpreter/CallFrame.h:
2964         * ForwardingHeaders/interpreter/Interpreter.h:
2965         * ForwardingHeaders/masm/X86Assembler.h:
2966         * ForwardingHeaders/parser/Parser.h:
2967         * ForwardingHeaders/parser/SourceCode.h:
2968         * ForwardingHeaders/parser/SourceProvider.h:
2969         * ForwardingHeaders/pcre/pcre.h:
2970         * ForwardingHeaders/profiler/Profile.h:
2971         * ForwardingHeaders/profiler/ProfileNode.h:
2972         * ForwardingHeaders/profiler/Profiler.h:
2973         * ForwardingHeaders/runtime/ArgList.h:
2974         * ForwardingHeaders/runtime/ArrayPrototype.h:
2975         * ForwardingHeaders/runtime/BooleanObject.h:
2976         * ForwardingHeaders/runtime/CallData.h:
2977         * ForwardingHeaders/runtime/Collector.h:
2978         * ForwardingHeaders/runtime/CollectorHeapIterator.h:
2979         * ForwardingHeaders/runtime/Completion.h:
2980         * ForwardingHeaders/runtime/ConstructData.h:
2981         * ForwardingHeaders/runtime/DateInstance.h:
2982         * ForwardingHeaders/runtime/Error.h:
2983         * ForwardingHeaders/runtime/FunctionConstructor.h:
2984         * ForwardingHeaders/runtime/FunctionPrototype.h:
2985         * ForwardingHeaders/runtime/Identifier.h:
2986         * ForwardingHeaders/runtime/InitializeThreading.h:
2987         * ForwardingHeaders/runtime/InternalFunction.h:
2988         * ForwardingHeaders/runtime/JSArray.h:
2989         * ForwardingHeaders/runtime/JSByteArray.h:
2990         * ForwardingHeaders/runtime/JSFunction.h:
2991         * ForwardingHeaders/runtime/JSGlobalData.h:
2992         * ForwardingHeaders/runtime/JSGlobalObject.h:
2993         * ForwardingHeaders/runtime/JSLock.h:
2994         * ForwardingHeaders/runtime/JSNumberCell.h:
2995         * ForwardingHeaders/runtime/JSObject.h:
2996         * ForwardingHeaders/runtime/JSString.h:
2997         * ForwardingHeaders/runtime/JSValue.h:
2998         * ForwardingHeaders/runtime/Lookup.h:
2999         * ForwardingHeaders/runtime/ObjectPrototype.h:
3000         * ForwardingHeaders/runtime/Operations.h:
3001         * ForwardingHeaders/runtime/PropertyMap.h:
3002         * ForwardingHeaders/runtime/PropertyNameArray.h:
3003         * ForwardingHeaders/runtime/Protect.h:
3004         * ForwardingHeaders/runtime/PrototypeFunction.h:
3005         * ForwardingHeaders/runtime/StringObject.h:
3006         * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h:
3007         * ForwardingHeaders/runtime/StringPrototype.h:
3008         * ForwardingHeaders/runtime/Structure.h:
3009         * ForwardingHeaders/runtime/SymbolTable.h:
3010         * ForwardingHeaders/runtime/UString.h:
3011         * ForwardingHeaders/wrec/WREC.h:
3012         * ForwardingHeaders/wtf/ASCIICType.h:
3013         * ForwardingHeaders/wtf/AlwaysInline.h:
3014         * ForwardingHeaders/wtf/Assertions.h:
3015         * ForwardingHeaders/wtf/ByteArray.h:
3016         * ForwardingHeaders/wtf/CurrentTime.h:
3017         * ForwardingHeaders/wtf/Deque.h:
3018         * ForwardingHeaders/wtf/DisallowCType.h:
3019         * ForwardingHeaders/wtf/FastMalloc.h:
3020         * ForwardingHeaders/wtf/Forward.h:
3021         * ForwardingHeaders/wtf/GetPtr.h:
3022         * ForwardingHeaders/wtf/HashCountedSet.h:
3023         * ForwardingHeaders/wtf/HashFunctions.h:
3024         * ForwardingHeaders/wtf/HashMap.h:
3025         * ForwardingHeaders/wtf/HashSet.h:
3026         * ForwardingHeaders/wtf/HashTable.h:
3027         * ForwardingHeaders/wtf/HashTraits.h:
3028         * ForwardingHeaders/wtf/ListHashSet.h:
3029         * ForwardingHeaders/wtf/ListRefPtr.h:
3030         * ForwardingHeaders/wtf/Locker.h:
3031         * ForwardingHeaders/wtf/MainThread.h:
3032         * ForwardingHeaders/wtf/MathExtras.h:
3033         * ForwardingHeaders/wtf/MessageQueue.h:
3034         * ForwardingHeaders/wtf/Noncopyable.h:
3035         * ForwardingHeaders/wtf/NotFound.h:
3036         * ForwardingHeaders/wtf/OwnArrayPtr.h:
3037         * ForwardingHeaders/wtf/OwnPtr.h:
3038         * ForwardingHeaders/wtf/PassRefPtr.h:
3039         * ForwardingHeaders/wtf/Platform.h:
3040         * ForwardingHeaders/wtf/PtrAndFlags.h:
3041         * ForwardingHeaders/wtf/RandomNumber.h:
3042         * ForwardingHeaders/wtf/RefCounted.h:
3043         * ForwardingHeaders/wtf/RefCountedLeakCounter.h:
3044         * ForwardingHeaders/wtf/RefPtr.h:
3045         * ForwardingHeaders/wtf/RetainPtr.h:
3046         * ForwardingHeaders/wtf/StdLibExtras.h:
3047         * ForwardingHeaders/wtf/StringExtras.h:
3048         * ForwardingHeaders/wtf/ThreadSpecific.h:
3049         * ForwardingHeaders/wtf/Threading.h:
3050         * ForwardingHeaders/wtf/TypeTraits.h:
3051         * ForwardingHeaders/wtf/UnusedParam.h:
3052         * ForwardingHeaders/wtf/Vector.h:
3053         * ForwardingHeaders/wtf/VectorTraits.h:
3054         * ForwardingHeaders/wtf/dtoa.h:
3055         * ForwardingHeaders/wtf/unicode/Collator.h:
3056         * ForwardingHeaders/wtf/unicode/UTF8.h:
3057         * ForwardingHeaders/wtf/unicode/Unicode.h:
3058         * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h:
3059
3060 2009-04-14  Sam Weinig  <sam@webkit.org>
3061
3062         Reviewed by Adele Peterson.
3063
3064         Use a template function to generalize the way we create non-caching
3065         JS function getters.
3066
3067         * bindings/js/JSDOMWindowCustom.cpp:
3068         * bindings/js/JSDOMWindowCustom.h:
3069         (WebCore::nonCachingStaticFunctionGetter):
3070         (WebCore::JSDOMWindow::customGetOwnPropertySlot):
3071
3072 2009-04-14  Benjamin C Meyer  <benjamin.meyer@torchmobile.com>
3073
3074         Reviewed by George Staikos.
3075
3076         https://bugs.webkit.org/show_bug.cgi?id=25099
3077
3078         When creating a QNetworkRequest make sure to populate the
3079         CacheLoadControlAttribute with the value set by the ResourceRequest::cachePolicy() so that the cache will be used as WebKit expects.
3080
3081         * WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:
3082         (tst_QWebPage::requestCache):
3083
3084         * platform/network/qt/ResourceRequestQt.cpp:
3085         (WebCore::ResourceRequest::toNetworkRequest):
3086
3087 2009-04-14  Timothy Hatcher  <timothy@apple.com>
3088
3089         Fix a world leak caused by opening the Web Inspector. This was
3090         a regression caused by the InspectorController becoming refcounted.
3091
3092         <rdar://problem/6782944>
3093
3094         Reviewed by Darin Adler.
3095
3096         * bindings/js/ScriptObject.cpp:
3097         (WebCore::ScriptGlobalObject::get): Renamed to better match the
3098         other functions.
3099         (WebCore::ScriptGlobalObject::remove): Added. Deletes the property.
3100         * bindings/js/ScriptObject.h:
3101         * inspector/InspectorController.cpp:
3102         (WebCore::InspectorController::~InspectorController): Do less work
3103         at destruction time since the object lifetime is tied to JS GC.
3104         Assert that inspectedPageDestroyed cleared everything needed.
3105         (WebCore::InspectorController::inspectedPageDestroyed): Do most
3106         of the work that ~InspectorController was doing.
3107         (WebCore::InspectorController::scriptObjectReady): Renamed getObject.
3108
3109 2009-04-14  Antony Sargent  <asargent@chromium.org>
3110
3111         Reviewed by Dimitri Glazkov.
3112
3113         This is some cleanup motivated by the crash in http://crbug.com/9775 , which 
3114         happens because of calling window.open inside a window.onload handler. 
3115
3116         These changes are just part of the fix, along with some asserts to help prevent
3117         breakage on future changes. 
3118
3119         https://bugs.webkit.org/show_bug.cgi?id=25132
3120
3121         * bindings/v8/V8EventListenerList.cpp:
3122         (WebCore::V8EventListenerList::add):
3123         (WebCore::V8EventListenerList::remove):
3124         (WebCore::V8EventListenerList::clear):
3125         * bindings/v8/V8EventListenerList.h:
3126         (WebCore::V8EventListenerList::size):
3127
3128 2009-04-14  Evan Martin  <evan@chromium.org>
3129
3130         Reviewed by Darin Adler.
3131
3132         https://bugs.webkit.org/show_bug.cgi?id=25142
3133         Fix a race that can occur between flex and the perl script that parses
3134         its output.
3135
3136         * css/maketokenizer: Consume all input.
3137
3138 2009-04-14  Rohit Rao  <rohitrao@google.com>
3139
3140         Reviewed by Dan Bernstein.
3141
3142         https://bugs.webkit.org/show_bug.cgi?id=25184
3143         Do not change the text color for selected text in Mac Chromium.
3144
3145         * rendering/RenderThemeChromiumMac.h:
3146         (WebCore::RenderThemeChromiumMac::supportsSelectionForegroundColors):
3147         Now returns false, matching the behavior of Safari on Mac.
3148
3149 2009-04-14  Justin Garcia  <justin.garcia@apple.com>
3150
3151         Reviewed by Eric Seidel.
3152
3153         https://bugs.webkit.org/show_bug.cgi?id=25172
3154         Extra partial layout during the first keypress in an empty block
3155         
3156         Determining if a placeholder needs to be removed requires the creation of a VisiblePosition 
3157         which was triggering layout before we were finished modifying the DOM for the insert operation.
3158         
3159         Find out if we need to remove a placeholder near the start of the operation, and if we do remember 
3160         where it's located.  Then, later, remove it along with all of the other DOM operations we perform.
3161         
3162         Renamed lineBreakExistsAtPosition to lineBreakExistsAtVisiblePosition and added a lineBreakExistsAtPosition
3163         that takes in a Position.  In InsertTextCommand, we can use the latter, since we normalize manually.
3164         
3165         removePlaceholderAt now takes in a Position that it assumes has already been checked for a placeholder.
3166         
3167         No test added as this only effects performance.
3168
3169         * editing/BreakBlockquoteCommand.cpp:
3170         (WebCore::BreakBlockquoteCommand::doApply):
3171         * editing/CompositeEditCommand.cpp:
3172         (WebCore::CompositeEditCommand::removePlaceholderAt):
3173         (WebCore::CompositeEditCommand::moveParagraphs):
3174         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
3175         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
3176         * editing/CompositeEditCommand.h:
3177         * editing/DeleteSelectionCommand.cpp:
3178         (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
3179         (WebCore::DeleteSelectionCommand::doApply):
3180         * editing/FormatBlockCommand.cpp:
3181         (WebCore::FormatBlockCommand::doApply):
3182         * editing/InsertLineBreakCommand.cpp:
3183         (WebCore::InsertLineBreakCommand::doApply):
3184         * editing/InsertParagraphSeparatorCommand.cpp:
3185         (WebCore::InsertParagraphSeparatorCommand::doApply):
3186         * editing/InsertTextCommand.cpp:
3187         (WebCore::InsertTextCommand::input):
3188         * editing/htmlediting.cpp:
3189         (WebCore::lineBreakExistsAtVisiblePosition):
3190         (WebCore::lineBreakExistsAtPosition):
3191         * editing/htmlediting.h:
3192
3193 2009-04-14  Adam Roben  <aroben@apple.com>
3194
3195         Remove support for profile-guided optimization on Windows
3196
3197         Rubber-stamped by Steve Falkenburg.
3198
3199         * WebCore.vcproj/WebCore.vcproj: Removed the Release_PGO
3200         configuration.
3201
3202 2009-04-14  Dmitry Titov  <dimich@chromium.org>
3203
3204         Reviewed by Dimitri Glazkov.
3205
3206         https://bugs.webkit.org/show_bug.cgi?id=25163
3207         Upstream fix for releasing v8 objects on worker thread termination in Chromium.
3208
3209         * bindings/v8/V8DOMMap.cpp:
3210         (WebCore::domDataList): Now uses Vector instead of HashMap.
3211         (WebCore::domDataListMutex):
3212         (WebCore::ThreadSpecificDOMData::ThreadSpecificDOMData):  remove usage of currentThread();
3213         (WebCore::ThreadSpecificDOMData::~ThreadSpecificDOMData): ditto.
3214         (WebCore::NonMainThreadSpecificDOMData::~NonMainThreadSpecificDOMData): moved call to removeAllDOMObjectsInCurrentThread() to ~WorkerScriptController.
3215         (WebCore::handleWeakObjectInOwningThread):
3216         (WebCore::derefDelayedObjects):
3217         (WebCore::removeAllDOMObjectsInCurrentThread): not static anymore.
3218         * bindings/v8/V8DOMMap.h:
3219         * bindings/v8/WorkerContextExecutionProxy.cpp:
3220         (WebCore::WorkerContextExecutionProxy::dispose): removed code that avoided dual-dereference of WorkerContext.
3221         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): this ref() is countered in removeAllDOMObjectsInCurrentThread(), when the WorkerContext is removed from the v8 map.
3222         * bindings/v8/WorkerScriptController.cpp:
3223         (WebCore::WorkerScriptController::~WorkerScriptController):
3224
3225 2009-04-14  Adam Roben  <aroben@apple.com>
3226
3227         Fix Bug 25183: Split up WebCore.vcproj's settings into vsprops files
3228
3229         <https://bugs.webkit.org/show_bug.cgi?id=25183>
3230
3231         WebCore.vcproj now uses a set of .vsprops files to store most of its
3232         settings.
3233
3234         Reviewed by Darin Adler.
3235
3236         * WebCore.vcproj/WebCore.vcproj: Moved settings from here into the new
3237         .vsprops files.
3238
3239         * WebCore.vcproj/WebCoreCFNetwork.vsprops: Added. Contains settings
3240         for ports that build against CFNetwork.
3241         * WebCore.vcproj/WebCoreCG.vsprops: Added. Contains settings for ports
3242         that build against CoreGraphics.
3243         * WebCore.vcproj/WebCoreCURL.vsprops: Added. Contains settings for
3244         ports that build against libcurl.
3245         * WebCore.vcproj/WebCoreCairo.vsprops: Added. Contains settings for
3246         ports that build against Cairo.
3247         * WebCore.vcproj/WebCoreCommon.vsprops: Added. Contains settings
3248         shared by all ports.
3249         * WebCore.vcproj/WebCoreMediaQT.vsprops: Added. Contains settings for
3250         ports that use QTMovieWin to implement the MediaPlayerPrivate
3251         interface.
3252         * WebCore.vcproj/WebCorePthreads.vsprops: Added. Contains settings for
3253         ports that build against pthreads.
3254
3255 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
3256
3257         Reviewed by Darin Adler.
3258
3259         http/tests/xmlhttprequest/basic-auth.html fails on Tiger.
3260
3261         Turns out that NSURLCredentialPersistenceNone doesn't work on Tiger, so we have to use
3262         session persistence.
3263
3264         * platform/network/mac/ResourceHandleMac.mm:
3265         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Route the credential through
3266         receivedCredential(), ensuring that the Tiger-specific need to use session credentials
3267         is honored.
3268         (WebCore::ResourceHandle::receivedCredential): On Tiger, change PersistenceNone to
3269         PersistenceForSession, because the former doesn't work.
3270
3271 2009-04-14  Adele Peterson  <adele@apple.com>
3272
3273         Reviewed by Darin Adler.
3274
3275         Fix for <rdar://problem/6703873> Triple-click quoted line and type Return creates an extra quoted blank line
3276
3277         Test: editing/inserting/6703873.html
3278
3279         * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply):
3280         If the startNode's original parent is now empty, we can remove it.  Its already been cloned and copied with the startNode,
3281         so we only need to keep it around if it actually holds some original content, otherwise it will look like an extra empty 
3282         container in the document.
3283
3284 2009-04-14  Xan Lopez  <xlopez@igalia.com>
3285
3286         Reviewed by Holger Freyther.
3287
3288         https://bugs.webkit.org/show_bug.cgi?id=21546
3289         [GTK] ATK accessibility enhancements
3290
3291         Add a proper implementation of AtkText::get_text and
3292         AtkText::get_character_count, which takes into account non
3293         TextControl text. With this the 'Text' field in Accerciser's
3294         Interface Viewer is filled correctly.
3295
3296         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
3297
3298 2009-04-14  Xan Lopez  <xlopez@igalia.com>
3299
3300         Reviewed by Holger Freyther.
3301
3302         https://bugs.webkit.org/show_bug.cgi?id=21546
3303         [GTK] ATK accessibility enhancements
3304
3305         Remove some dead code and g_return_if_fail from static functions.
3306
3307         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
3308
3309 2009-04-14  Xan Lopez  <xlopez@igalia.com>
3310
3311         Reviewed by Holger Freyther.
3312
3313         https://bugs.webkit.org/show_bug.cgi?id=21546
3314         [GTK] ATK accessibility enhancements
3315
3316         Also implement text interface for StaticTextRole, which covers
3317         most of the text in web pages.
3318
3319         * page/gtk/AccessibilityObjectWrapperAtk.cpp:
3320
3321 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
3322
3323         Another Windows build fix.
3324
3325         * platform/network/cf/ResourceHandleCFNet.cpp:
3326         (WebCore::WebCoreSynchronousLoader::load):
3327
3328 2009-04-14  Alexey Proskuryakov  <ap@webkit.org>
3329
3330         Windows build fix.
3331
3332         * platform/network/cf/ResourceHandleCFNet.cpp:
3333         (WebCore::WebCoreSynchronousLoader::willSendRequest):
3334         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
3335
3336 2009-04-13  Alexey Proskuryakov  <ap@webkit.org>
3337
3338         Reviewed by Sam Weinig.
3339
3340         <rdar://problem/6698851> Implement XMLHttpRequest withCredentials attribute
3341
3342         * WebCore.xcodeproj/project.pbxproj: Made ThreadableLoader.h private, as enum definitions
3343         from it are now used in otehr private headers.
3344
3345         * xml/XMLHttpRequest.h:
3346         * xml/XMLHttpRequest.idl:
3347         Added withCredentials attribute. When it is false (default), neither credentials nor cookies
3348         are sent with cross origin requests, When it is true, those are sent, but the server needs
3349         to allow handling results via Access-Control-Allow-Credentials header. It was always possible
3350         to send a cross-site request with credentials via IFRAME or IMG, so this just adds a way to
3351         read results, as long as the server reports that it's allowed.
3352         Having the default set to false ensures that requests won't fail unexpectedly because of
3353         stored credentials and cookies for other resources in the target protection space.
3354
3355         * xml/XMLHttpRequest.cpp:
3356         (WebCore::XMLHttpRequest::loadRequestSynchronously): Allow stored credentials for same origin
3357         requests, and for cross origin ones that have withCredentials attribute set. Such code already
3358         existed for cookies (but it's simpler, because we could just set a ResourceRequest flag).
3359         (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto.
3360
3361         * platform/network/ResourceHandle.h: Added willSendRequest() - just like for other callbacks,
3362         is is easier to have code in the class. Also, loadResourceSynchronously() now takes a
3363         StoredCredentials option, matching async case.
3364
3365         * platform/network/ResourceHandleClient.h:
3366         (WebCore::ResourceHandleClient::receivedCredential): Removed. This method could never be
3367         called, and no client used it.
3368         (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential): Ditto.
3369
3370         * platform/network/ResourceHandleInternal.h:
3371         (WebCore::ResourceHandleInternal::ResourceHandleInternal): Split username and password out
3372         of request URL. We want to always get a callback for credentials to manage them in WebCore,
3373         so network back-end shouldn't see them too early.
3374
3375         * platform/network/ResourceRequestBase.cpp:
3376         (WebCore::ResourceRequestBase::removeCredentials):
3377         * platform/network/ResourceRequestBase.h:
3378         Added a removeCredentials() method that removes login and password parts from request URL.
3379
3380         * platform/network/mac/ResourceHandleMac.mm:
3381         (WebCoreCredentialStorage): Added a simple storage class for per-session credentials.
3382         (WebCore::ResourceHandle::loadResourceSynchronously): Pass allowStoredCredentials through.
3383         (WebCore::ResourceHandle::willSendRequest): On a redirect, credentials should be replaced.
3384         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Try credentials from the URL
3385         and per-session credentials. Code was partially moved from Obj-C callback.
3386         (WebCore::ResourceHandle::receivedCredential): Intercept per-session credentials and store
3387         them in WebCore storage.
3388         (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Don't
3389         store the redirected URL - we only needed credentials, which are now stored separately.
3390         (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): Removed
3391         code that was setting credentials from URL. First, the code is now in ResourceHandle, and
3392         also, it wasn't actually needed in Leopard release before this patch, see <rdar://problem/5298142>.
3393         (-[WebCoreSynchronousLoader dealloc]): Release credentials. Note that unlike ResourceHandle,
3394         this class still needs to track URL for checking whether a redirect is allowed. This is
3395         not a great solution, and we should unify client code to use the same checks in sync and
3396         async cases.
3397         (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Just like in
3398         async case, put credentials aside to ensure that network back-end asks for them.
3399         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Use credentials
3400         from URL, or from WebCore storage.
3401         (-[WebCoreSynchronousLoader connectionShouldUseCredentialStorage:]): Don't use stored
3402         credentials when not allowed to.
3403         (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
3404         Put credentials aside to ensure that network back-end asks for them.
3405
3406         * platform/network/cf/ResourceHandleCFNet.cpp:
3407         (WebCore::WebCoreCredentialStorage::set):
3408         (WebCore::WebCoreCredentialStorage::get):
3409         (WebCore::willSendRequest):
3410         (WebCore::ResourceHandle::start):
3411         (WebCore::ResourceHandle::willSendRequest):
3412         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
3413         (WebCore::ResourceHandle::receivedCredential):
3414         (WebCore::ResourceHandle::loadResourceSynchronously):
3415         (WebCore::WebCoreSynchronousLoader::willSendRequest):
3416         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
3417         (WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage):
3418         (WebCore::WebCoreSynchronousLoader::load):
3419         Same changes as in Mac case.
3420
3421         * platform/network/curl/ResourceHandleCurl.cpp:
3422         (WebCore::ResourceHandle::loadResourceSynchronously):
3423         * platform/network/qt/ResourceHandleQt.cpp:
3424         (WebCore::ResourceHandle::loadResourceSynchronously):
3425         * platform/network/soup/ResourceHandleSoup.cpp:
3426         (WebCore::ResourceHandle::loadResourceSynchronously):
3427         Trying not to break the build.
3428
3429         * dom/XMLTokenizerLibxml2.cpp: (WebCore::openFunc):
3430         * xml/XSLTProcessor.cpp: (WebCore::docLoaderFunc):
3431         Unconditionally allow stored credentials for these, as they only support same origin loads.
3432
3433         * workers/WorkerContext.cpp: (WebCore::WorkerContext::importScripts):
3434         WorkerContext.importScripts() can be cross-origin, but sending credentials with it is no worse
3435         than sending them with <script src=...>, so this is also unconditionally allowed.
3436
3437         * loader/DocumentThreadableLoader.cpp:
3438         (WebCore::DocumentThreadableLoader::loadResourceSynchronously): Pass through storedCredentials.
3439         (WebCore::DocumentThreadableLoader::create): Ditto.
3440         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Save storedCredentials and
3441         sameOrigin flags foruse in callbacks.
3442         (WebCore::DocumentThreadableLoader::willSendRequest): Assert that loaders aren't all confused.
3443         (WebCore::DocumentThreadableLoader::didSendData): Ditto.
3444         (WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
3445         (WebCore::DocumentThreadableLoader::didReceiveData): Ditto.
3446         (WebCore::DocumentThreadableLoader::didFinishLoading): Ditto.
3447         (WebCore::DocumentThreadableLoader::didFail): Ditto.
3448         (WebCore::DocumentThreadableLoader::getShouldUseCredentialStorage): Don't use credential
3449         storage if that's not allowed by the code that invoked DocumentThreadableLoader.
3450         (WebCore::DocumentThreadableLoader::didReceiveAuthenticationChallenge): Simulate a failure
3451         and cancel the request if we are about to ask the user for credentials for a cross-origin
3452         request, which is forbidden by CORS (and would have been very confusing if allowed).
3453         (WebCore::DocumentThreadableLoader::receivedCancellation): Assert that loaders aren't all confused.
3454
3455         * loader/DocumentThreadableLoader.h: Updated for the new flags (storedCredentials and
3456         sameOrigin) that affect the loader. Eventually, we need to move all CORS logic from XHR here.
3457
3458         * loader/ThreadableLoader.h: (StoredCredentials): Added another flag that affects loader
3459         behavior. We should combine all of these into a structure, and use it for sync requests, too.
3460
3461         * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
3462         * loader/FrameLoader.h:
3463         * loader/ThreadableLoader.cpp:
3464         (WebCore::ThreadableLoader::create):
3465         (WebCore::ThreadableLoader::loadResourceSynchronously):
3466         * loader/WorkerThreadableLoader.cpp:
3467         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
3468         (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
3469         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
3470         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
3471         * loader/WorkerThreadableLoader.h:
3472         (WebCore::WorkerThreadableLoader::create):
3473         Pass through storedCredentials.
3474
3475 2009-04-13  David Hyatt  <hyatt@apple.com>
3476
3477         Reviewed by Cameron Zwarich.
3478
3479         Remove an outdated comment in ScrollView.h
3480
3481         * platform/ScrollView.h:
3482
3483 2009-04-13  Eric Carlson  <eric.carlson@apple.com>
3484
3485         Reviewed by Mark Rowe.
3486
3487         https://bugs.webkit.org/show_bug.cgi?id=25177
3488
3489         QTTrack's -media method always return NULL in 64-bit QTKit, so
3490         MediaPlayerPrivate::disableUnsupportedTracks should use 
3491         QTTrackMediaTypeAttribute to get a track's type.
3492
3493         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3494         (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):
3495
3496 2009-04-13  Geoffrey Garen  <ggaren@apple.com>
3497
3498         Reviewed by Cameron Zwarich.
3499
3500         More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
3501         Unbounded memory growth when churning elements with anonymous event handler functions
3502
3503         Stop using protected event listeners on the window object.
3504
3505         * bindings/js/JSDOMWindowCustom.cpp:
3506         (WebCore::JSDOMWindow::mark): Mark our event listeners, since they're
3507         no longer protected.
3508
3509         (WebCore::JSDOMWindow::addEventListener):
3510         (WebCore::JSDOMWindow::removeEventListener): Create unprotected event
3511         listeners, since we mark them now.
3512
3513         * bindings/js/JSEventListener.h: Made some functions public so
3514         DOMWindow could call them.
3515
3516         * bindings/js/JSNodeCustom.cpp: Moved markEventListeners to a header,
3517         so it could be shared.
3518
3519         * bindings/scripts/CodeGeneratorJS.pm: Generate event listener marking
3520         and invalidating code for the DOMWindow.
3521
3522         * dom/RegisteredEventListener.h:
3523         (WebCore::markEventListeners):
3524         (WebCore::invalidateEventListeners): Added helper functions.
3525
3526         * page/DOMWindow.idl: Make the window's event listener attributes not
3527         protected.
3528
3529 2009-04-13  Eric Carlson  <eric.carlson@apple.com>
3530
3531         Reviewed by Mark Rowe.
3532         
3533         https://bugs.webkit.org/show_bug.cgi?id=25155
3534
3535         OS X standalone media documents should not switch from <video> to <embed> when