WebCore: Fix for https://bugs.webkit.org/show_bug.cgi?id=29703
[WebKit.git] / WebCore / ChangeLog
1 2009-09-24  Sam Weinig  <sam@webkit.org>
2
3         Reviewed by Dan Bernstein.
4
5         Fix for https://bugs.webkit.org/show_bug.cgi?id=29703
6         Add a function to element to check whether it matches a CSS selector
7
8         Implement Element.webkitMatchesSelector.
9
10         * css/CSSSelectorList.cpp:
11         (WebCore::forEachTagSelector):
12         (WebCore::forEachSelector):
13         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
14         (WebCore::CSSSelectorList::selectorsNeedNamespaceResolution):
15         * css/CSSSelectorList.h:
16         Moved code to iterate the CSSSelectorList and determine if any
17         selectors need namespace resolution from a static function in
18         Node.cpp to CSSSelectorList so that it can be used by webkitMatchesSelector
19         as well as querySelector/querySelectorAll.
20
21         * dom/Element.cpp:
22         (WebCore::Element::webkitMatchesSelector):
23         * dom/Element.h: 
24         * dom/Element.idl:
25         Implement the new function. Handles exceptional cases identically to
26         querySelector/querySelectorAll.
27
28         * dom/Node.cpp:
29         (WebCore::Node::querySelector):
30         (WebCore::Node::querySelectorAll):
31         Moved selectorsNeedNamespaceResolution to CSSSelectorList from here.
32
33 2009-09-24  Vitaly Repeshko  <vitalyr@chromium.org>
34
35         Reviewed by Dimitri Glazkov.
36
37         [V8] Fixed bindings build after http://trac.webkit.org/changeset/48701
38         https://bugs.webkit.org/show_bug.cgi?id=29713
39
40         Got rid of isWindowEvent in function signatures:
41         * bindings/v8/V8AbstractEventListener.cpp:
42         (WebCore::V8AbstractEventListener::invokeEventHandler):
43         (WebCore::V8AbstractEventListener::handleEvent):
44         (WebCore::V8AbstractEventListener::getReceiverObject):
45         * bindings/v8/V8AbstractEventListener.h:
46         * bindings/v8/V8LazyEventListener.cpp:
47         (WebCore::V8LazyEventListener::callListenerFunction):
48         * bindings/v8/V8LazyEventListener.h:
49         * bindings/v8/V8WorkerContextEventListener.cpp:
50         (WebCore::V8WorkerContextEventListener::handleEvent):
51         (WebCore::V8WorkerContextEventListener::callListenerFunction):
52         (WebCore::V8WorkerContextEventListener::getReceiverObject):
53         * bindings/v8/V8WorkerContextEventListener.h:
54         * bindings/v8/custom/V8CustomEventListener.cpp:
55         (WebCore::V8EventListener::callListenerFunction):
56         * bindings/v8/custom/V8CustomEventListener.h:
57
58         Switched to EventTarget methods of adding/removing listeners:
59         * bindings/v8/custom/V8DOMApplicationCacheCustom.cpp:
60         (WebCore::toEventID):
61         (WebCore::ACCESSOR_SETTER):
62
63         * dom/EventTarget.h: Some functions were incorrectly marked
64         as JSC-specific.
65
66 2009-09-24  Pavel Feldman  <pfeldman@chromium.org>
67
68         Reviewed by Timothy Hatcher.
69
70         Web Inspector: Color-code watch expression errors with red.
71
72         https://bugs.webkit.org/show_bug.cgi?id=29707
73
74         * inspector/front-end/WatchExpressionsSidebarPane.js:
75         (WebInspector.WatchExpressionsSection.prototype.update):
76         (WebInspector.WatchExpressionTreeElement.prototype.update):
77         * inspector/front-end/inspector.css:
78
79 2009-09-24  Pavel Feldman  <pfeldman@chromium.org>
80
81         Reviewed by Timothy Hatcher.
82
83         Web Inspector: Fix formatting for messages derived from resource warnings,
84         couple of drive-by formatting fixes.
85
86         https://bugs.webkit.org/show_bug.cgi?id=29705
87
88         * inspector/InspectorFrontend.cpp:
89         (WebCore::InspectorFrontend::addMessageToConsole):
90         * inspector/front-end/ConsoleView.js:
91         * inspector/front-end/InjectedScript.js:
92         (InjectedScript._evaluateAndWrap):
93         * inspector/front-end/WatchExpressionsSidebarPane.js:
94         (WebInspector.WatchExpressionsSection.prototype.update):
95
96 2009-09-22  Pavel Feldman  <pfeldman@chromium.org>
97
98         Reviewed by Timothy Hatcher.
99
100         WebInspector: Implement InspectorController::copyNode(id).
101
102         https://bugs.webkit.org/show_bug.cgi?id=28357
103
104         * inspector/InspectorBackend.cpp:
105         (WebCore::InspectorBackend::copyNode):
106         * inspector/InspectorBackend.h:
107         * inspector/InspectorBackend.idl:
108         * inspector/front-end/ElementsPanel.js:
109         (WebInspector.ElementsPanel.prototype.handleCopyEvent):
110
111 2009-09-24  Oliver Hunt  <oliver@apple.com>
112
113         Reviewed by NOBODY(rollout)
114
115         Roll out r48712 as it is incorrect.
116
117         Overriding getPropertyNames is incorrect.
118
119         * bridge/runtime_array.cpp:
120         * bridge/runtime_array.h:
121
122 2009-09-24  Xan Lopez  <xlopez@igalia.com>
123
124         Revert r48697, since it broke key handling notification to GTK+.
125
126         * platform/gtk/KeyEventGtk.cpp:
127         (WebCore::keyIdentifierForGdkKeyCode):
128         (WebCore::singleCharacterString):
129
130 2009-09-24  Philippe Normand  <pnormand@igalia.com>
131
132         Reviewed by Xan Lopez.
133
134         [GTK] GStreamer MediaPlayer is unable to correctly querry duration
135         https://bugs.webkit.org/show_bug.cgi?id=24639
136
137         check duration returned by gst_element_query_duration() only
138         when using GStreamer < 0.10.23.
139
140         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
141         (WebCore::MediaPlayerPrivate::duration):
142
143 2009-09-24  Benjamin Poulain  <benjamin.poulain@nokia.com>
144
145         Reviewed by Eric Seidel.
146
147         The indices of RuntimeArray should be enumerated like for a regular array.
148         https://bugs.webkit.org/show_bug.cgi?id=29005
149
150         * bridge/runtime_array.cpp:
151         (JSC::RuntimeArray::getPropertyNames):
152         * bridge/runtime_array.h:
153
154 2009-09-23  Alexander Pavlov  <apavlov@chromium.org>
155
156         Reviewed by Eric Seidel.
157
158         Introduce Pasteboard::writePlaintext(const String&) so that copying
159         of the inspected elements HTML will be possible in WebInspector.
160         https://bugs.webkit.org/show_bug.cgi?id=29634
161
162         * platform/Pasteboard.h:
163         * platform/android/TemporaryLinkStubs.cpp:
164         (Pasteboard::writePlainText):
165         * platform/chromium/ChromiumBridge.h:
166         * platform/chromium/PasteboardChromium.cpp:
167         (WebCore::Pasteboard::writePlainText):
168         * platform/gtk/PasteboardGtk.cpp:
169         (WebCore::Pasteboard::writePlainText):
170         * platform/haiku/PasteboardHaiku.cpp:
171         (WebCore::Pasteboard::writePlainText):
172         * platform/mac/PasteboardMac.mm:
173         (WebCore::Pasteboard::writePlainText):
174         * platform/qt/PasteboardQt.cpp:
175         (WebCore::Pasteboard::writePlainText):
176         * platform/win/PasteboardWin.cpp:
177         (WebCore::Pasteboard::writeSelection):
178         (WebCore::Pasteboard::writePlainText):
179         * platform/wince/PasteboardWince.cpp:
180         (WebCore::Pasteboard::writePlainText):
181         * platform/wx/PasteboardWx.cpp:
182         (WebCore::Pasteboard::writeSelection):
183         (WebCore::Pasteboard::writePlainText):
184         (WebCore::Pasteboard::writeURL):
185
186 2009-09-24  Oswald Buddenhagen  <oswald.buddenhagen@nokia.com>
187
188         Reviewed by Simon Hausmann.
189
190         Fix QApp::translate() calls to provide the correct class name without
191         a trailing comma.
192
193         * platform/qt/Localizations.cpp:
194         (WebCore::localizedMediaTimeDescription):
195
196 2009-09-24  Geoffrey Garen  <ggaren@apple.com>
197
198         More build fix: Removed JSSharedWorkerContextCustom.cpp from project
199         files, since it no longer exists in the repository.
200
201         * GNUmakefile.am:
202         * WebCore.gypi:
203         * WebCore.pro:
204         * WebCore.vcproj/WebCore.vcproj:
205
206 2009-09-24  Geoffrey Garen  <ggaren@apple.com>
207
208         Windows build fix: Declare set/unsetPendingActivity public, so
209         SharedWorkerScriptLoader can call them.
210
211         * dom/ActiveDOMObject.h:
212
213 2009-09-24  Geoffrey Garen  <ggaren@apple.com>
214
215         Fixed a bit of the Windows build.
216
217         * workers/SharedWorker.idl: Declare a custom mark function. (I accidentally
218         removed this in my last patch.)
219         * WebCore.xcodeproj/project.pbxproj: Added JSSharedWorkerCustom.cpp back
220         to the build. (I accidentally removed this in my last patch.)
221
222 2009-09-23  Geoffrey Garen  <ggaren@apple.com>
223
224         32-bit build fix: restore previous cast that I thought was unnecessary.
225
226         * xml/XMLHttpRequest.cpp:
227         (WebCore::XMLHttpRequest::didSendData):
228         (WebCore::XMLHttpRequest::didReceiveData):
229
230 2009-09-23  Geoffrey Garen  <ggaren@apple.com>
231
232         Reviewed by Sam Weinig.
233
234         Bring a little sanity to this crazy EventTarget world of ours
235         https://bugs.webkit.org/show_bug.cgi?id=29701
236
237         Lots of EventTarget refactoring to achieve a single shared implementation
238         that fixes some of the performance and correctness bugs of the many individual
239         implementations, and makes reasoning about EventTargets and EventListeners
240         much easier.
241         
242         The basic design is this:
243             - EventTarget manages a set of EventListeners.
244             - onXXX EventListener attributes forward to standard EventTarget APIs.
245             - Since the onXXX code is repetitive, it is usually done with macros
246               of the form DEFINE_ATTRIBUTE_EVENT_LISTENER(attributeName).
247             - EventTarget provides a shared implementation of dispatchEvent,
248               which subclasses with special event dispatch rules, like Node, override.
249             - To support Node, which lazily instantiates its EventTarget data,
250               EventTarget has no data members, and instead makes a virtual call
251               to get its data from wherever its subclass chose to store it.
252               
253         Code that used to call dispatchEvent, passing an ExceptionCode paratmeter,
254         even though no exception could be thrown, has been changed not to do so,
255         to improve clarity and performance.
256         
257         Code that used to call a special dispatchXXXEvent function, which just
258         turned around and called dispatchEvent, has been changed to call
259         dispatchEvent, to improve clarity and performance.
260
261         * WebCore.base.exp:
262         * WebCore.xcodeproj/project.pbxproj: Another day in the life of a WebKit
263         engineer.
264
265         * bindings/js/JSDOMBinding.cpp:
266         (WebCore::isObservableThroughDOM): Updated for Node API change. Added
267         "is not in the document but is firing event listeners" as a condition
268         that makes a Node observable in the DOM, so that event listeners firing
269         on removed nodes are not destroyed midstream. (This was a long-standing
270         bug that was somewhat hidden by the old implementation's habit of
271         copying the RegisteredEventListener vector before firing events, which
272         would keep almost all the relevant objects from being destroyed.)
273
274         * bindings/js/JSEventListener.cpp:
275         (WebCore::JSEventListener::handleEvent): Removed the isWindowEvent flag
276         because it was one of the most elaborately planned no-ops in the history
277         of software crime, and one of the reasons clients thought they needed more
278         than one dispatchEvent function even though they didn't.
279         * bindings/js/JSEventListener.h:
280
281         * bindings/js/JSDOMWindowCustom.cpp:
282         (WebCore::JSDOMWindow::markChildren):
283         (WebCore::JSMessagePort::markChildren):
284         * bindings/js/JSNodeCustom.cpp:
285         (WebCore::JSNode::markChildren):
286         * bindings/js/JSAbstractWorkerCustom.cpp:
287         * bindings/js/JSDOMApplicationCacheCustom.cpp:
288         * bindings/js/JSDedicatedWorkerContextCustom.cpp:
289         * bindings/js/JSEventSourceCustom.cpp:
290         * bindings/js/JSMessagePortCustom.cpp:
291         * bindings/js/JSSharedWorkerContextCustom.cpp: Removed.
292         * bindings/js/JSWebSocketCustom.cpp:
293         * bindings/js/JSWorkerContextCustom.cpp:
294         (WebCore::JSWorkerContext::markChildren):
295         * bindings/js/JSWorkerCustom.cpp:
296         * bindings/js/JSXMLHttpRequestCustom.cpp:
297         (WebCore::JSXMLHttpRequest::markChildren):
298         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
299         (WebCore::JSXMLHttpRequestUpload::markChildren): EventListener marking is
300         now autogenerated. Classes that still have custom mark functions for other
301         reasons now call a shared EventTarget API to mark their EventListeners.
302
303         * bindings/objc/ObjCEventListener.h:
304         * bindings/objc/ObjCEventListener.mm:
305         (WebCore::ObjCEventListener::handleEvent): Bye bye isWindowEvent.
306
307         * bindings/scripts/CodeGeneratorJS.pm: Autogeneration support for
308         marking and invalidating event listeners.
309
310         * dom/CharacterData.cpp:
311         (WebCore::CharacterData::dispatchModifiedEvent):
312         * dom/ContainerNode.cpp:
313         (WebCore::ContainerNode::insertBefore):
314         (WebCore::ContainerNode::replaceChild):
315         (WebCore::willRemoveChild):
316         (WebCore::ContainerNode::appendChild):
317         (WebCore::dispatchChildInsertionEvents):
318         (WebCore::dispatchChildRemovalEvents):
319         * dom/Document.cpp:
320         (WebCore::Document::removeAllEventListeners):
321         (WebCore::Document::implicitClose):
322         (WebCore::Document::setFocusedNode):
323         (WebCore::Document::dispatchWindowEvent):
324         (WebCore::Document::dispatchWindowLoadEvent):
325         (WebCore::Document::finishedParsing):
326         * dom/Document.h: Use dispatchEvent directly.
327
328         * dom/Element.h: Moved a few event listener attributes down from Node,
329         since they don't apply to all Nodes, only Elements.
330
331         * dom/EventListener.h: Removed isWindowEvent parameter.
332
333         * dom/EventNames.h: Added the "display" event name, so it works correctly
334         with attribute macros, and for performance.
335
336         * dom/EventTarget.cpp:
337         (WebCore::forbidEventDispatch):
338         (WebCore::allowEventDispatch):
339         (WebCore::eventDispatchForbidden): Made this code (embarrasingly) thread
340         safe, since it's now called on multiple threads. (Currently, we only forbid
341         event dispatch on the main thread. If we ever want to forbid event dispatch
342         on secondary threads, we can improve it then.)
343
344         (WebCore::EventTarget::addEventListener):
345         (WebCore::EventTarget::removeEventListener):
346         (WebCore::EventTarget::setAttributeEventListener):
347         (WebCore::EventTarget::getAttributeEventListener):
348         (WebCore::EventTarget::clearAttributeEventListener):
349         (WebCore::EventTarget::dispatchEvent):
350         (WebCore::EventTarget::fireEventListeners):
351         (WebCore::EventTarget::getEventListeners):
352         (WebCore::EventTarget::removeAllEventListeners):
353         * dom/EventTarget.h:
354         (WebCore::FiringEventEndIterator::FiringEventEndIterator):
355         (WebCore::EventTarget::ref):
356         (WebCore::EventTarget::deref):
357         (WebCore::EventTarget::markEventListeners):
358         (WebCore::EventTarget::invalidateEventListeners):
359         (WebCore::EventTarget::isFiringEventListeners):
360         (WebCore::EventTarget::hasEventListeners): The ONE TRUE IMPLEMENTATION of
361         EventTarget APIs, crafted from an amalgam of all the different versions
362         we used to have. The most significant change here is that we no longer
363         make a copy of an EventListener vector before firing the events in the
364         vector -- instead, we use a reference to the original vector, along with
365         a notification mechanism for the unlikely case when an EventListener is
366         removed from the vector. This substantially reduces malloc, copying, and
367         refcount overhead, and complexity.
368
369         * dom/InputElement.cpp:
370         (WebCore::InputElement::setValueFromRenderer):
371         * dom/MessageEvent.h:
372         (WebCore::MessageEvent::create): Use dispatchEvent directly.
373
374         * dom/MessagePort.cpp:
375         (WebCore::MessagePort::dispatchMessages):
376         (WebCore::MessagePort::eventTargetData):
377         (WebCore::MessagePort::ensureEventTargetData):
378         * dom/MessagePort.h:
379         (WebCore::MessagePort::setOnmessage):
380         (WebCore::MessagePort::onmessage):
381         * dom/MessagePort.idl: Removed custom EventTarget implementation.
382
383         * dom/MutationEvent.h:
384         (WebCore::MutationEvent::create): Added some default values so callers
385         can construct MutationEvents more easily, without calling a custom dispatch
386         function.
387
388         * dom/Node.cpp:
389         (WebCore::Node::addEventListener):
390         (WebCore::Node::removeEventListener):
391         (WebCore::Node::eventTargetData):
392         (WebCore::Node::ensureEventTargetData):
393         (WebCore::Node::handleLocalEvents):
394         (WebCore::Node::dispatchEvent):
395         (WebCore::Node::dispatchGenericEvent):
396         (WebCore::Node::dispatchSubtreeModifiedEvent):
397         (WebCore::Node::dispatchUIEvent):
398         (WebCore::Node::dispatchKeyEvent):
399         (WebCore::Node::dispatchMouseEvent):
400         (WebCore::Node::dispatchWheelEvent):
401         (WebCore::Node::dispatchFocusEvent):
402         (WebCore::Node::dispatchBlurEvent):
403         * dom/Node.h:
404         (WebCore::Node::preDispatchEventHandler):
405         (WebCore::Node::postDispatchEventHandler):
406         * dom/Node.idl:
407         * dom/NodeRareData.h:
408         (WebCore::NodeRareData::eventTargetData):
409         (WebCore::NodeRareData::ensureEventTargetData): Use the shared EventTarget
410         interface, and call dispatchEvent directly instead of custom dispatchXXXEvent
411         functions that just forwarded to dispatchEvent.
412
413         * dom/RegisteredEventListener.cpp:
414         * dom/RegisteredEventListener.h:
415         (WebCore::RegisteredEventListener::RegisteredEventListener):
416         (WebCore::operator==): This is just a simple struct now, since we no longer
417         do a complicated copy / refCount / isRemoved dance just to honor the rule
418         that an EventListener can be removed during event dispatch.
419
420         * history/CachedFrame.cpp:
421         (WebCore::CachedFrameBase::restore): Removed another custom dispatchEvent.
422
423         * html/HTMLBodyElement.cpp:
424         * html/HTMLBodyElement.h: Use the shared EventTarget API.
425
426         * html/HTMLFormControlElement.cpp:
427         (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent):
428         (WebCore::HTMLFormControlElement::checkValidity):
429         * html/HTMLFormElement.cpp:
430         (WebCore::HTMLFormElement::handleLocalEvents):
431         (WebCore::HTMLFormElement::prepareSubmit):
432         (WebCore::HTMLFormElement::reset):
433         * html/HTMLFormElement.h: Use the standard dispatchEvent API.
434
435         * html/HTMLFrameSetElement.cpp:
436         * html/HTMLFrameSetElement.h: Use the shared EventTarget API.
437
438         * html/HTMLImageLoader.cpp:
439         (WebCore::HTMLImageLoader::dispatchLoadEvent):
440         * html/HTMLInputElement.cpp:
441         (WebCore::HTMLInputElement::onSearch):
442         * html/HTMLMediaElement.cpp:
443         (WebCore::HTMLMediaElement::loadInternal):
444         * html/HTMLScriptElement.cpp:
445         (WebCore::HTMLScriptElement::dispatchLoadEvent):
446         (WebCore::HTMLScriptElement::dispatchErrorEvent):
447         * html/HTMLSourceElement.cpp:
448         (WebCore::HTMLSourceElement::errorEventTimerFired):
449         * html/HTMLTokenizer.cpp:
450         (WebCore::HTMLTokenizer::notifyFinished): Use the standard dispatchEvent API.
451
452         * inspector/InspectorDOMAgent.cpp:
453         (WebCore::InspectorDOMAgent::handleEvent):
454         * inspector/InspectorDOMAgent.h:
455         * inspector/InspectorDOMStorageResource.cpp:
456         (WebCore::InspectorDOMStorageResource::handleEvent):
457         * inspector/InspectorDOMStorageResource.h:
458         * loader/FrameLoader.cpp:
459         (WebCore::FrameLoader::stopLoading):
460         (WebCore::FrameLoader::canCachePageContainingThisFrame):
461         (WebCore::FrameLoader::logCanCacheFrameDecision):
462         (WebCore::HashChangeEventTask::performTask):
463         (WebCore::FrameLoader::pageHidden): No more isWindowEvent.
464
465         * loader/ImageDocument.cpp:
466         (WebCore::ImageEventListener::handleEvent):
467         * loader/appcache/ApplicationCacheGroup.cpp:
468         (WebCore::CallCacheListenerTask::performTask):
469         * loader/appcache/ApplicationCacheHost.cpp:
470         (WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
471         * loader/appcache/ApplicationCacheHost.h:
472         * loader/appcache/DOMApplicationCache.cpp:
473         (WebCore::DOMApplicationCache::eventTargetData):
474         (WebCore::DOMApplicationCache::ensureEventTargetData):
475         * loader/appcache/DOMApplicationCache.h:
476         * loader/appcache/DOMApplicationCache.idl: Switched to the standard
477         EventTarget API. As a part of this, I switched this class from using a
478         custom internal event name enumeration to using the standard EventNames.
479
480         * notifications/Notification.cpp:
481         (WebCore::Notification::eventTargetData):
482         (WebCore::Notification::ensureEventTargetData):
483         * notifications/Notification.h:
484         (WebCore::Notification::scriptExecutionContext):
485         * notifications/Notification.idl: Switched to the standard EventTarget API.
486
487         * page/DOMWindow.cpp:
488         (WebCore::PostMessageTimer::event):
489         (WebCore::windowsWithUnloadEventListeners):
490         (WebCore::windowsWithBeforeUnloadEventListeners):
491         (WebCore::allowsBeforeUnloadListeners):
492         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
493         (WebCore::DOMWindow::pendingUnloadEventListeners):
494         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Changed the "pending"
495         unload / beforeunload listener tracker just to track which windows had
496         such listeners, instead of actually keeping a copy of the listeners. Now,
497         this code can use the standard EventTarget API.
498
499         (WebCore::DOMWindow::~DOMWindow):
500         (WebCore::DOMWindow::postMessageTimerFired):
501         (WebCore::DOMWindow::addEventListener):
502         (WebCore::DOMWindow::removeEventListener):
503         (WebCore::DOMWindow::dispatchLoadEvent):
504         (WebCore::DOMWindow::dispatchEvent):
505         (WebCore::DOMWindow::removeAllEventListeners):
506         (WebCore::DOMWindow::captureEvents):
507         (WebCore::DOMWindow::releaseEvents):
508         (WebCore::DOMWindow::eventTargetData):
509         (WebCore::DOMWindow::ensureEventTargetData):
510         * page/DOMWindow.h:
511         * page/DOMWindow.idl: Use the standard EventTarget APIs.
512
513         * page/EventHandler.cpp:
514         (WebCore::EventHandler::canMouseDownStartSelect):
515         (WebCore::EventHandler::canMouseDragExtendSelect):
516         (WebCore::EventHandler::sendResizeEvent):
517         (WebCore::EventHandler::sendScrollEvent): Use dispatchEvent directly.
518
519         * page/EventSource.cpp:
520         (WebCore::EventSource::endRequest):
521         (WebCore::EventSource::didReceiveResponse):
522         (WebCore::EventSource::parseEventStreamLine):
523         (WebCore::EventSource::stop):
524         (WebCore::EventSource::createMessageEvent):
525         (WebCore::EventSource::eventTargetData):
526         (WebCore::EventSource::ensureEventTargetData):
527         * page/EventSource.h:
528         * page/EventSource.idl: Use the standard EventTarget APIs.
529
530         * page/FocusController.cpp:
531         (WebCore::dispatchEventsOnWindowAndFocusedNode):
532         (WebCore::FocusController::setFocusedFrame):
533         * page/Frame.cpp:
534         (WebCore::Frame::shouldClose):
535         * page/Frame.h:
536         * page/Page.cpp:
537         (WebCore::networkStateChanged):
538         * page/animation/AnimationController.cpp:
539         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
540         * rendering/RenderListBox.cpp:
541         (WebCore::RenderListBox::valueChanged):
542         * rendering/RenderTextControl.cpp:
543         (WebCore::RenderTextControl::selectionChanged):
544         * rendering/RenderTextControlMultiLine.cpp:
545         (WebCore::RenderTextControlMultiLine::subtreeHasChanged): Use dispatchEvent.
546
547         * svg/SVGElement.cpp:
548         (WebCore::hasLoadListener): Rewritten for new EventTarget API.
549
550         * svg/SVGElementInstance.cpp:
551         (WebCore::dummyEventTargetData):
552         (WebCore::SVGElementInstance::addEventListener):
553         (WebCore::SVGElementInstance::removeEventListener):
554         (WebCore::SVGElementInstance::removeAllEventListeners):
555         (WebCore::SVGElementInstance::dispatchEvent):
556         (WebCore::SVGElementInstance::eventTargetData):
557         (WebCore::SVGElementInstance::ensureEventTargetData): Use the EventTarget API.
558
559         * svg/SVGElementInstance.h:
560         * svg/SVGImageLoader.cpp:
561         (WebCore::SVGImageLoader::dispatchLoadEvent):
562         * svg/SVGScriptElement.cpp:
563         (WebCore::SVGScriptElement::dispatchErrorEvent): Use dispatchEvent directly.
564
565         * svg/SVGUseElement.cpp:
566         (WebCore::SVGUseElement::transferEventListenersToShadowTree): Updated for
567         new EventTarget API.
568
569         * svg/animation/SVGSMILElement.cpp:
570         (WebCore::ConditionEventListener::handleEvent): No more isWindowEvent.
571
572         * websockets/WebSocket.cpp:
573         (WebCore::ProcessWebSocketEventTask::create):
574         (WebCore::ProcessWebSocketEventTask::performTask):
575         (WebCore::ProcessWebSocketEventTask::ProcessWebSocketEventTask):
576         (WebCore::WebSocket::didConnect):
577         (WebCore::WebSocket::didReceiveMessage):
578         (WebCore::WebSocket::didClose):
579         (WebCore::WebSocket::eventTargetData):
580         (WebCore::WebSocket::ensureEventTargetData):
581         * websockets/WebSocket.h:
582         * websockets/WebSocket.idl:
583         * workers/AbstractWorker.cpp:
584         (WebCore::AbstractWorker::eventTargetData):
585         (WebCore::AbstractWorker::ensureEventTargetData):
586         * workers/AbstractWorker.h:
587         * workers/AbstractWorker.idl:
588         * workers/DedicatedWorkerContext.cpp:
589         * workers/DedicatedWorkerContext.h:
590         * workers/DedicatedWorkerContext.idl:
591         * workers/DefaultSharedWorkerRepository.cpp:
592         (WebCore::SharedWorkerConnectTask::performTask):
593         (WebCore::SharedWorkerScriptLoader::load):
594         (WebCore::SharedWorkerScriptLoader::notifyFinished):
595         * workers/SharedWorker.idl:
596         * workers/SharedWorkerContext.cpp:
597         (WebCore::createConnectEvent):
598         * workers/SharedWorkerContext.h:
599         * workers/SharedWorkerContext.idl:
600         * workers/Worker.cpp:
601         (WebCore::Worker::notifyFinished):
602         * workers/Worker.h:
603         * workers/Worker.idl:
604         * workers/WorkerContext.cpp:
605         (WebCore::WorkerContext::eventTargetData):
606         (WebCore::WorkerContext::ensureEventTargetData):
607         * workers/WorkerContext.h:
608         * workers/WorkerContext.idl:
609         * workers/WorkerMessagingProxy.cpp:
610         (WebCore::MessageWorkerContextTask::performTask):
611         (WebCore::MessageWorkerTask::performTask):
612         (WebCore::WorkerExceptionTask::performTask):
613         * xml/XMLHttpRequest.cpp:
614         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
615         (WebCore::XMLHttpRequest::createRequest):
616         (WebCore::XMLHttpRequest::abort):
617         (WebCore::XMLHttpRequest::networkError):
618         (WebCore::XMLHttpRequest::abortError):
619         (WebCore::XMLHttpRequest::didSendData):
620         (WebCore::XMLHttpRequest::didReceiveData):
621         (WebCore::XMLHttpRequest::eventTargetData):
622         (WebCore::XMLHttpRequest::ensureEventTargetData):
623         * xml/XMLHttpRequest.h:
624         * xml/XMLHttpRequest.idl:
625         * xml/XMLHttpRequestProgressEvent.h:
626         (WebCore::XMLHttpRequestProgressEvent::create):
627         * xml/XMLHttpRequestUpload.cpp:
628         (WebCore::XMLHttpRequestUpload::eventTargetData):
629         (WebCore::XMLHttpRequestUpload::ensureEventTargetData):
630         * xml/XMLHttpRequestUpload.h:
631         * xml/XMLHttpRequestUpload.idl: Use new EventTarget API.
632
633 2009-09-23  Kent Tamura  <tkent@chromium.org>
634
635         Reviewed by Darin Adler.
636
637         - Support for maxLength of <textarea>
638         - Move numGraphemeClusters() and numCharactersInGraphemeClusters() from InputElement to String.
639         https://bugs.webkit.org/show_bug.cgi?id=29292
640
641         Test: fast/forms/textarea-maxlength.html
642
643         * dom/InputElement.cpp:
644         (WebCore::InputElement::sanitizeUserInputValue):
645         (WebCore::InputElement::handleBeforeTextInsertedEvent):
646         * html/HTMLTextAreaElement.cpp:
647         (WebCore::HTMLTextAreaElement::defaultEventHandler):
648         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
649         (WebCore::HTMLTextAreaElement::sanitizeUserInputValue):
650         (WebCore::HTMLTextAreaElement::maxLength):
651         (WebCore::HTMLTextAreaElement::setMaxLength):
652         * html/HTMLTextAreaElement.h:
653         * html/HTMLTextAreaElement.idl:
654         * platform/text/PlatformString.h:
655         * platform/text/String.cpp:
656         (WebCore::String::numGraphemeClusters):
657         (WebCore::String::numCharactersInGraphemeClusters):
658
659 2009-09-23  Martin Robinson  <martin.james.robinson@gmail.com>
660
661         Reviewed by Xan Lopez.
662
663         [GTK] REGRESSION: BitmapImage::getGdkPixbuf fails for non-square images
664         https://bugs.webkit.org/show_bug.cgi?id=29654
665
666         Give GDK_Backspace key events the proper text properties.
667
668         Instead of adding new tests, this change removes existing tests
669         from Gtk's skipped list.
670
671         * platform/gtk/KeyEventGtk.cpp:
672         (WebCore::keyIdentifierForGdkKeyCode):
673         (WebCore::singleCharacterString):
674
675 2009-09-23  Sam Weinig  <sam@webkit.org>
676
677         Reviewed by Adam Barth.
678
679         Fix for https://bugs.webkit.org/show_bug.cgi?id=26989
680         Should allow navigation of top-level openers
681         <rdar://problem/7034025>
682
683         Allow navigation of cross-origin window.opener if it is top-level frame.
684
685         Test: http/tests/security/frameNavigation/cross-origin-opener.html
686
687         * loader/FrameLoader.cpp:
688         (WebCore::FrameLoader::shouldAllowNavigation):
689
690 2009-09-23  Marshall Culpepper  <mculpepper@appcelerator.com>
691
692         Reviewed by Eric Seidel.
693
694         Added $(WebKitLibrariesDir)/include/cairo so cairo.h is found by
695         default when the necessary dependencies are extracted into the
696         WebKitLibrariesDir.
697         https://bugs.webkit.org/show_bug.cgi?id=29661
698
699         * WebCore.vcproj/WebCoreCairo.vsprops:
700
701 2009-09-23  Darin Adler  <darin@apple.com>
702
703         Reviewed by Sam Weinig.
704
705         Crash when website does a history.back() followed by an alert()
706         https://bugs.webkit.org/show_bug.cgi?id=29686
707         rdar://problem/6984996
708
709         When loading is deferred, we need to defer timer-based loads
710         too, not just networking-driven loads. Otherwise we can get
711         syncronouse navigation while running a script, which leads to
712         crashes and other badness.
713
714         This patch includes a manual test; an automated test may be
715         possible some time in the future.
716
717         * dom/Document.cpp:
718         (WebCore::Document::processHttpEquiv): Use scheduleLocationChange
719         instead of scheduleHTTPRedirection to implement the navigation
720         needed for x-frame-options.
721
722         * loader/FrameLoader.cpp:
723         (WebCore::FrameLoader::FrameLoader): Updated for data members with
724         new names and new data members.
725         (WebCore::FrameLoader::setDefersLoading): When turning deferral
726         off, call startRedirectionTimer and startCheckCompleteTimer, since
727         either of them might have been fired and ignored while defersLoading
728         was true.
729         (WebCore::FrameLoader::clear): Updated for replacement of the
730         m_checkCompletedTimer and m_checkLoadCompleteTimer timers.
731         (WebCore::FrameLoader::allAncestorsAreComplete): Added.
732         (WebCore::FrameLoader::checkCompleted): Added code to set
733         m_shouldCallCheckCompleted to false. Changed code that calls
734         startRedirectionTimer to call it unconditionally, since that
735         function now knows when to do work and doesn't expect callers
736         to handle that any more.
737         (WebCore::FrameLoader::checkTimerFired): Added. Replaces the old
738         timer fired callbacks. Calls checkCompleted and checkLoadComplete
739         as appropriate, but not when defersLoading is true.
740         (WebCore::FrameLoader::startCheckCompleteTimer): Added. Replaces
741         the two different calls to start timers before. Only starts the
742         timers if they are needed.
743         (WebCore::FrameLoader::scheduleCheckCompleted): Changed to call
744         startCheckCompleteTimer after setting boolean.
745         (WebCore::FrameLoader::scheduleCheckLoadComplete): Ditto.
746         (WebCore::FrameLoader::scheduleHistoryNavigation): Removed
747         canGoBackOrForward check. The logic works more naturally when
748         we don't do anything until the timer fires.
749         (WebCore::FrameLoader::redirectionTimerFired): Do nothing if
750         defersLoading is true. Also moved canGoBackOrForward check here.
751         (WebCore::FrameLoader::scheduleRedirection): Changed code that
752         calls startRedirectionTimer to do so unconditionally. That
753         function now handles the rules about when to start the timer
754         rather than expecting the caller to do so.
755         (WebCore::FrameLoader::startRedirectionTimer): Added code to
756         handle the case where there is no redirection scheduled,
757         where the timer is already active, or where this is a classic
758         redirection and there is an ancestor that has not yet completed
759         loading.
760         (WebCore::FrameLoader::completed): Call startRedirectionTimer
761         here directly instead of calling a cover named parentCompleted.
762         Hooray! One less function in the giant FrameLoader class!
763         (WebCore::FrameLoader::checkLoadComplete): Added code to set
764         m_shouldCallCheckLoadComplete to false.
765
766         * loader/FrameLoader.h: Replaced the two functions
767         checkCompletedTimerFired and checkLoadCompleteTimerFired with
768         one function, checkTimerFired. Removed the parentCompleted
769         function. Added the startCheckCompleteTimer and
770         allAncestorsAreComplete functions. Replaced the
771         m_checkCompletedTimer and m_checkLoadCompleteTimer data
772         members with m_checkTimer, m_shouldCallCheckCompleted, and
773         m_shouldCallCheckLoadComplete.
774
775         * manual-tests/go-back-after-alert.html: Added.
776         * manual-tests/resources/alert-and-go-back.html: Added.
777
778 2009-09-23  David Kilzer  <ddkilzer@apple.com>
779
780         <http://webkit.org/b/29660> Move "Generate 64-bit Export File" build phase script into DerivedSources.make
781
782         Reviewed by Mark Rowe.
783
784         The "Generate 64-bit Export File" build phase script generated
785         the WebCore.LP64.exp export file used to link 64-bit WebCore.
786         Instead of having a separate build phase script, move its
787         generation into DerivedSources.make where WebCore.exp is
788         generated.
789
790         * DerivedSources.make: Added a rule to make WebCore.LP64.exp.
791         Added code to append WebCore.PluginHostProcess.exp to
792         $(WEBCORE_EXPORT_DEPENDENCIES) when WTF_USE_PLUGIN_HOST_PROCESS
793         is set to 1.
794         * WebCore.PluginHostProcess.exp: Renamed from WebCore/WebCore.LP64.exp.
795         * WebCore.xcodeproj/project.pbxproj: Removed the "Generate
796         64-bit Export File" build phase script. Renamed WebCore.LP64.exp
797         to WebCore.PluginHostProcess.exp.
798
799 2009-09-23  Peter Kasting  <pkasting@google.com>
800
801         Reviewed by Dimitri Glazkov.
802
803         https://bugs.webkit.org/show_bug.cgi?id=29694
804         [Chromium] Eliminate dependency on gfx::Rect from ImageSkia.
805
806         * platform/graphics/skia/ImageSkia.cpp:
807         (WebCore::drawResampledBitmap):
808
809 2009-09-22  Timothy Hatcher  <timothy@apple.com>
810
811         Prevent scrolling multiple elements during latched wheel events.
812
813         Reviewed by Anders Carlsson.
814
815         * page/EventHandler.cpp:
816         (WebCore::scrollAndAcceptEvent):
817         (WebCore::EventHandler::clear):
818         (WebCore::EventHandler::handleWheelEvent):
819         * page/EventHandler.h:
820         * rendering/RenderBox.cpp:
821         (WebCore::RenderBox::scroll):
822         * rendering/RenderBox.h:
823
824 2009-09-23  Daniel Bates  <dbates@webkit.org>
825
826         Reviewed by Adam Barth.
827
828         https://bugs.webkit.org/show_bug.cgi?id=29523
829         
830         Fixes an issue where a JavaScript URL that was URL-encoded twice can bypass the
831         XSSAuditor.
832         
833         The method FrameLoader::executeIfJavaScriptURL decodes the URL escape 
834         sequences in a JavaScript URL before it is eventually passed to the XSSAuditor.
835         Because the XSSAuditor also decodes the URL escape sequences as part of its
836         canonicalization, the double decoding of a JavaScript URL would
837         not match the canonicalization of the input parameters.
838
839         Tests: http/tests/security/xssAuditor/iframe-javascript-url-url-encoded.html
840                http/tests/security/xssAuditor/javascript-link-url-encoded.html
841
842         * bindings/js/ScriptController.cpp:
843         (WebCore::ScriptController::evaluate): Moved call to 
844         XSSAuditor::canEvaluateJavaScriptURL into FrameLoader::executeIfJavaScriptURL.
845         * bindings/v8/ScriptController.cpp:
846         (WebCore::ScriptController::evaluate): Ditto.
847         * loader/FrameLoader.cpp:
848         (WebCore::FrameLoader::executeIfJavaScriptURL): Modified to call 
849         XSSAuditor::canEvaluateJavaScriptURL on the JavaScript URL before it is
850         decoded.
851
852 2009-09-22  Dave Hyatt  <hyatt@apple.com>
853
854         Reviewed by John Sullivan.
855
856         https://bugs.webkit.org/show_bug.cgi?id=29657
857         Columns don't break properly in positioned elements with a fixed height.  Make sure that
858         a block is still considered to have columns even when the column count is 1 if the column
859         width is non-auto.
860     
861         Added fast/multicol/positioned-with-constrained-height.html
862
863         * rendering/RenderBlock.cpp:
864         (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
865
866 2009-09-23  Holger Hans Peter Freyther  <zecke@selfish.org>
867
868         Rubber-stamped by Simon Hausmann.
869
870         Add a null check for the Document*. In the mirror benchmarking
871         application a crash from a call from JavaScript was observed.
872
873         I was not able to come up with a test case for this issue.
874
875         * platform/qt/CookieJarQt.cpp:
876         (WebCore::cookieJar):
877
878 2009-09-23  Simon Hausmann  <simon.hausmann@nokia.com>
879
880         Reviewed by Tor Arne Vestbø.
881
882         Fix the Qt/Windows build, after the introduction of
883         the page client.
884
885         * plugins/win/PluginViewWin.cpp:
886         (windowHandleForPageClient):
887         (WebCore::PluginView::getValue):
888         (WebCore::PluginView::forceRedraw):
889         (WebCore::PluginView::platformStart):
890
891 2009-09-23  Gustavo Noronha Silva  <gns@gnome.org>
892
893         Reviewed by Xan Lopez.
894
895         [GTK] media tests failing after their rework
896         https://bugs.webkit.org/show_bug.cgi?id=29532
897
898         Correctly advertise the mime types used by the common formats used
899         in the tests.
900
901         Tests that regressed, and will pass again:
902
903            media/video-canvas-source.html
904            media/video-controls.html
905            media/video-currentTime-set2.html
906            media/video-dom-autoplay.html
907            media/video-dom-src.html
908            media/video-error-abort.html
909            media/video-load-networkState.html
910            media/video-load-readyState.html
911            media/video-muted.html
912            media/video-no-autoplay.html
913            media/video-pause-empty-events.html
914            media/video-play-empty-events.html
915            media/video-seekable.html
916            media/video-seeking.html
917            media/video-size.html
918            media/video-source-type-params.html
919            media/video-source-type.html
920            media/video-source.html
921            media/video-src-change.html
922            media/video-src-invalid-remove.html
923            media/video-src-remove.html
924            media/video-src-set.html
925            media/video-src-source.html
926            media/video-src.html
927            media/video-timeupdate-during-playback.html
928            media/video-volume.html
929
930         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
931         (WebCore::mimeTypeCache):
932
933 2009-09-22  Charles Wei  <charles.wei@torchmobile.com.cn>
934
935         Reviewed by Eric Seidel.
936
937         Fix the crash problem with absolte positioned children in foreignobject
938         htts://bugs.webkit.org/show_bug.cgi?id=26342
939
940         Test: svg/custom/foreignobject-crash-with-absolute-positioned-children.svg
941
942         * rendering/RenderForeignObject.h:
943         (WebCore::RenderForeignObject::isSVGForeignObject):
944         * rendering/RenderObject.cpp:
945         (WebCore::RenderObject::containingBlock):
946         * rendering/RenderObject.h:
947         (WebCore::RenderObject::isSVGForeignObject):
948
949 2009-09-22  Drew Wilson  <atwilson@google.com>
950
951         Reviewed by David Levin.
952
953         SharedWorkers "name" attribute is now optional.
954         https://bugs.webkit.org/show_bug.cgi?id=28897
955
956         Test: fast/workers/shared-worker-name.html
957
958         * bindings/js/JSSharedWorkerConstructor.cpp:
959         (WebCore::constructSharedWorker):
960         Default 'name' attribute to empty string if it is not provided.
961         * bindings/v8/custom/V8SharedWorkerCustom.cpp:
962         (WebCore::CALLBACK_FUNC_DECL):
963         Default 'name' attribute to empty string if it is not provided.
964         * workers/DefaultSharedWorkerRepository.cpp:
965         (WebCore::SharedWorkerProxy::matches):
966         Now matches URLs if names are empty strings.
967         (WebCore::DefaultSharedWorkerRepository::getProxy):
968         Pass URL in to SharedWorkerProxy::matches().
969
970 2009-09-22  Dimitri Glazkov  <dglazkov@chromium.org>
971
972         Unreviewed, another build fix.
973
974         [Chromium] Add another missing include.
975         https://bugs.webkit.org/show_bug.cgi?id=29536
976
977         * inspector/InspectorController.cpp: Added DOMWindow.h include.
978
979 2009-09-22  Dimitri Glazkov  <dglazkov@chromium.org>
980
981         Unreviewed, build fix.
982
983         [Chromium] Add missing include.
984         https://bugs.webkit.org/show_bug.cgi?id=29536
985
986         * inspector/InspectorDOMStorageResource.cpp: Added DOMWindow.h include.
987
988 2009-09-22  Darin Adler  <darin@apple.com>
989
990         Reviewed by Sam Weinig.
991
992         Tighten up the ScheduledRedirection machinery to prepare for a bug fix
993         https://bugs.webkit.org/show_bug.cgi?id=29663
994
995         * loader/FrameLoader.cpp:
996         (WebCore::ScheduledRedirection::ScheduledRedirection): Added a boolean,
997         initialized to false, to keep track if the redirection has been
998         communicated to the client.
999         (WebCore::FrameLoader::stopLoading): Tweaked a comment.
1000         (WebCore::FrameLoader::cancelRedirection): Removed code to clear
1001         m_scheduledRedirection.clear since stopRedirectionTimer does that now.
1002         (WebCore::FrameLoader::allChildrenAreComplete): Added.
1003         (WebCore::FrameLoader::checkCompleted): Use allChildrenAreComplete
1004         function for clarity.
1005         (WebCore::FrameLoader::checkCallImplicitClose): Ditto.
1006         (WebCore::FrameLoader::scheduleRedirection): Changed to take a PassOwnPtr.
1007         (WebCore::FrameLoader::startRedirectionTimer): Added code to set the
1008         toldClient flag and not call clientRedirected a second time if it is set.
1009         (WebCore::FrameLoader::stopRedirectionTimer): Changed so this can be safely
1010         called multiple times and it will call clientRedirectCancelledOrFinished
1011         only once.
1012
1013         * loader/FrameLoader.h: Changed scheduleRedirection to be a PassOwnPtr.
1014         Added allChildrenAreComplete function.
1015
1016 2009-09-22  Yury Semikhatsky  <yurys@chromium.org>
1017
1018         Reviewed by Timothy Hatcher.
1019
1020         WebInspector: Migrate Databases tab to InjectedScript /
1021         serialized interaction.
1022
1023         DOMStorage interaction is now serialized into JSON messages
1024         and doesn't require quarantined objects.
1025         
1026         https://bugs.webkit.org/show_bug.cgi?id=28873
1027
1028         * dom/EventListener.h:
1029         (WebCore::EventListener::):
1030         * inspector/InspectorBackend.cpp:
1031         (WebCore::InspectorBackend::selectDOMStorage):
1032         (WebCore::InspectorBackend::getDOMStorageEntries):
1033         (WebCore::InspectorBackend::setDOMStorageItem):
1034         (WebCore::InspectorBackend::removeDOMStorageItem):
1035         * inspector/InspectorBackend.h:
1036         * inspector/InspectorBackend.idl:
1037         * inspector/InspectorController.cpp:
1038         (WebCore::InspectorController::didCommitLoad):
1039         (WebCore::InspectorController::selectDOMStorage):
1040         (WebCore::InspectorController::getDOMStorageEntries):
1041         (WebCore::InspectorController::setDOMStorageItem):
1042         (WebCore::InspectorController::removeDOMStorageItem):
1043         (WebCore::InspectorController::getDOMStorageResourceForId):
1044         * inspector/InspectorController.h:
1045         * inspector/InspectorDOMStorageResource.cpp:
1046         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
1047         (WebCore::InspectorDOMStorageResource::bind):
1048         (WebCore::InspectorDOMStorageResource::unbind):
1049         (WebCore::InspectorDOMStorageResource::startReportingChangesToFrontend):
1050         (WebCore::InspectorDOMStorageResource::handleEvent):
1051         (WebCore::InspectorDOMStorageResource::operator==):
1052         * inspector/InspectorDOMStorageResource.h:
1053         (WebCore::InspectorDOMStorageResource::cast):
1054         (WebCore::InspectorDOMStorageResource::id):
1055         (WebCore::InspectorDOMStorageResource::domStorage):
1056         * inspector/InspectorFrontend.cpp:
1057         (WebCore::InspectorFrontend::selectDOMStorage):
1058         (WebCore::InspectorFrontend::didGetDOMStorageEntries):
1059         (WebCore::InspectorFrontend::didSetDOMStorageItem):
1060         (WebCore::InspectorFrontend::didRemoveDOMStorageItem):
1061         (WebCore::InspectorFrontend::updateDOMStorage):
1062         * inspector/InspectorFrontend.h:
1063         * inspector/front-end/DOMStorage.js:
1064         (WebInspector.DOMStorage):
1065         (WebInspector.DOMStorage.prototype.get id):
1066         (WebInspector.DOMStorage.prototype.get domStorage):
1067         (WebInspector.DOMStorage.prototype.get isLocalStorage):
1068         (WebInspector.DOMStorage.prototype.getEntriesAsync):
1069         (WebInspector.DOMStorage.prototype.setItemAsync):
1070         (WebInspector.DOMStorage.prototype.removeItemAsync):
1071         * inspector/front-end/DOMStorageDataGrid.js:
1072         (WebInspector.DOMStorageDataGrid):
1073         (WebInspector.DOMStorageDataGrid.prototype._startEditingColumnOfDataGridNode):
1074         (WebInspector.DOMStorageDataGrid.prototype._startEditing):
1075         (WebInspector.DOMStorageDataGrid.prototype._editingCommitted):
1076         (WebInspector.DOMStorageDataGrid.prototype._editingCancelled):
1077         (WebInspector.DOMStorageDataGrid.prototype.deleteSelectedRow):
1078         * inspector/front-end/DOMStorageItemsView.js:
1079         (WebInspector.DOMStorageItemsView.prototype.update):
1080         (WebInspector.DOMStorageItemsView.prototype._showDOMStorageEntries):
1081         (WebInspector.DOMStorageItemsView.prototype._dataGridForDOMStorageEntries):
1082         * inspector/front-end/StoragePanel.js:
1083         (WebInspector.StoragePanel.prototype.show):
1084         (WebInspector.StoragePanel.prototype.reset):
1085         (WebInspector.StoragePanel.prototype.selectDOMStorage):
1086         (WebInspector.StoragePanel.prototype.updateDOMStorage):
1087         (WebInspector.StoragePanel.prototype._domStorageForId):
1088         * inspector/front-end/inspector.js:
1089         (WebInspector.addDOMStorage):
1090         (WebInspector.updateDOMStorage):
1091
1092 2009-09-22  Sam Weinig  <sam@webkit.org>
1093
1094         Reviewed by Alexey Proskuryakov.
1095
1096         Fix for XMLHttpRequest.abort() should destroy the response text.
1097         https://bugs.webkit.org/show_bug.cgi?id=29658
1098         <rdar://problem/5301430>
1099
1100         Clearing the response text after calling XMLHttpRequest.abort() is necessary
1101         per spec and matches Firefox. It is also a potential memory win.
1102
1103         Test: http/tests/xmlhttprequest/abort-should-destroy-responseText.html
1104
1105         * xml/XMLHttpRequest.cpp:
1106         (WebCore::XMLHttpRequest::abort): Clear the response text making sure to
1107         keep the actual ResourceReponse around so that the response status and response
1108         status text are kept around.
1109
1110 2009-09-22  Dimitri Glazkov  <dglazkov@chromium.org>
1111
1112         No review, rolling out r48639.
1113         http://trac.webkit.org/changeset/48639
1114
1115         * bindings/v8/V8GCController.cpp:
1116         (WebCore::ObjectGrouperVisitor::visitDOMWrapper):
1117
1118 2009-09-22  Dumitru Daniliuc  <dumi@chromium.org>
1119
1120         Reviewed by Dimitri Glazkov.
1121
1122         Changing the transaction coordinator to (re-)allow multiple read
1123         transactions on the same database to run concurrently (without
1124         risking a deadlock this time).
1125
1126         https://bugs.webkit.org/show_bug.cgi?id=29115
1127
1128         Tests: storage/read-and-write-transactions-dont-run-together.html
1129                storage/read-transactions-running-concurrently.html
1130
1131         * storage/SQLTransaction.h:
1132         (WebCore::SQLTransaction::isReadOnly): Returns the type of the
1133         transaction.
1134         * storage/SQLTransactionCoordinator.cpp:
1135         (WebCore::SQLTransactionCoordinator::acquireLock): Changed to
1136         allow multiple read transactions on the same DB to run
1137         concurrently.
1138         (WebCore::SQLTransactionCoordinator::releaseLock): Changed to
1139         allow multiple read transactions on the same DB to run
1140         concurrently.
1141         (WebCore::SQLTransactionCoordinator::shutdown): Renamed the map.
1142         * storage/SQLTransactionCoordinator.h:
1143
1144 2009-09-22  Peter Kasting  <pkasting@google.com>
1145
1146         Reviewed by David Levin.
1147
1148         https://bugs.webkit.org/show_bug.cgi?id=29652
1149         Support true system colors for CSS system colors in Chromium/Win.
1150
1151         * rendering/RenderThemeChromiumWin.cpp:
1152         (WebCore::cssValueIdToSysColorIndex):
1153         (WebCore::RenderThemeChromiumWin::systemColor):
1154         * rendering/RenderThemeChromiumWin.h:
1155
1156 2009-09-22  Beth Dakin  <bdakin@apple.com>
1157
1158         Reviewed by Dave Hyatt.
1159
1160         Fix for <rdar://problem/6925121> SAP: Wrong width calculation in 
1161         table with fixed layout
1162         -and corresponding-
1163         https://bugs.webkit.org/show_bug.cgi?id=29501
1164
1165         New Tests:
1166         * fast/table/fixed-table-with-percent-inside-percent-table.html: Added.
1167         * fast/table/fixed-table-with-percent-width-inside-auto-table.html: Added.
1168         * fast/table/fixed-table-with-percent-width-inside-div.html: Added.
1169         * fast/table/fixed-table-with-percent-width-inside-extra-large-div.html: Added.
1170         * fast/table/fixed-table-with-percent-width-inside-fixed-width-table.html: Added.
1171         * fast/table/fixed-table-with-small-percent-width.html: Added.
1172
1173         This new quirk is very similar to an existing one that was 
1174         implemented in revision 4316.
1175         * rendering/FixedTableLayout.cpp:
1176         (WebCore::FixedTableLayout::calcPrefWidths):
1177
1178 2009-09-22  Brian Weinstein  <bweinstein@apple.com>
1179
1180         Reviewed by Timothy Hatcher.
1181
1182         List HTTP status code with response headers in resources tab of Web Inspector.
1183         http://webkit.org/b/19945
1184
1185         This patch adds a new top level list in the resources tab, HTTP Information, that 
1186         for now, contains the Request Method (GET, POST, etc.) and the Status Code (200, 404, etc.).
1187         Additionally, it adds a colored dot next to the requested URL to show the status 
1188         (green for success, orange for redirect, red for error).
1189
1190         * English.lproj/localizedStrings.js:
1191         * inspector/front-end/ImageView.js:
1192         (WebInspector.ImageView):
1193         * inspector/front-end/Images/errorRedDot.png: Added.
1194         * inspector/front-end/Images/successGreenDot.png: Added.
1195         * inspector/front-end/Images/warningOrangeDot.png: Added.
1196         * inspector/front-end/Resource.js:
1197         (WebInspector.Resource.StatusTextForCode):
1198         * inspector/front-end/ResourceView.js:
1199         (WebInspector.ResourceView):
1200         (WebInspector.ResourceView.prototype._refreshURL):
1201         (WebInspector.ResourceView.prototype._refreshHTTPInformation):
1202         * inspector/front-end/inspector.css:
1203
1204 2009-09-22  Brady Eidson  <beidson@apple.com>
1205
1206         Reviewed by Darin Adler.
1207
1208         Back list isn't properly updated for fragment changes after a redirect.
1209         <rdar://problem/6142803> and https://bugs.webkit.org/show_bug.cgi?id=20355
1210
1211         Test: fast/loader/fragment-after-redirect-gets-back-entry.html
1212
1213         * loader/FrameLoader.cpp:
1214         (WebCore::FrameLoader::loadURL): Properly reset the policy FrameLoadType before
1215           consulting the policy delegate for fragment scrolling.
1216
1217 2009-09-22  Darin Fisher  <darin@chromium.org>
1218
1219         Reviewed by Dimitri Glazkov.
1220
1221         Drop down selects get stuck in the non-visible state and cannot be opened.
1222         https://bugs.webkit.org/show_bug.cgi?id=29645
1223
1224         All paths that lead to hiding the popup menu must call popupDidHide on
1225         the PopupMenuClient.  This change makes it so by moving all of the
1226         hiding logic to PopupListBox::hidePopup.
1227
1228         * platform/chromium/PopupMenuChromium.cpp:
1229         (WebCore::PopupContainer::hidePopup):
1230         (WebCore::PopupListBox::hidePopup):
1231         * platform/chromium/PopupMenuChromium.h:
1232
1233 2009-09-22  Patrick Mueller  <Patrick_Mueller@us.ibm.com>
1234
1235         Reviewed by Timothy Hatcher.
1236
1237         WebInspector.log() function not protected if console not yet created
1238         https://bugs.webkit.org/show_bug.cgi?id=29336
1239         
1240         No new tests.  Only affects Web Inspector developers adding logging
1241         to their code during development.
1242
1243         * inspector/front-end/inspector.js:
1244         (WebInspector.log.isLogAvailable):
1245         (WebInspector.log.flushQueue):
1246         (WebInspector.log.flushQueueIfAvailable):
1247         (WebInspector.log.logMessage):
1248         (WebInspector.log):
1249
1250 2009-09-22  Yaar Schnitman  <yaar@chromium.org>
1251
1252         Reviewed by David Levin.
1253
1254         Ported chromium.org's webcore.gyp for the webkit chromium port.
1255
1256         https://bugs.webkit.org/show_bug.cgi?id=29617
1257
1258         * WebCore.gyp/WebCore.gyp: Added.
1259
1260 2009-09-22  Christian Plesner Hansen  <christian.plesner.hansen@gmail.com>
1261
1262         Reviewed by Adam Barth.
1263
1264         [v8] Don't keep clean wrappers artificially alive        
1265         We currently keep all DOM node wrappers alive, even when there are
1266         no more references to them from JS, in case they have properties
1267         that we need to keep around if new JS references are created.
1268         This changes the policy to only keep wrappers artificially alive
1269         if they have changed since they were created. Empty wrappers are
1270         discarded and recreated as needed.
1271         https://bugs.webkit.org/show_bug.cgi?id=29330
1272
1273         * bindings/v8/V8GCController.cpp:
1274         (WebCore::ObjectGrouperVisitor::visitDOMWrapper):
1275
1276 2009-09-22  Pavel Feldman  <pfeldman@chromium.org>
1277
1278         Reviewed by Timothy Hatcher.
1279
1280         Web Inspector: console.count and console.timeEnd
1281         crash when inspector is opened.
1282
1283         https://bugs.webkit.org/show_bug.cgi?id=29632
1284
1285         * inspector/InspectorFrontend.cpp:
1286         (WebCore::InspectorFrontend::addMessageToConsole):
1287
1288 2009-09-22  Adam Barth  <abarth@webkit.org>
1289
1290         Unreviewed.
1291
1292         Fix bogus build fix I did last night.
1293
1294         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1295         (WebCore::V8Custom::WindowSetTimeoutImpl):
1296
1297 2009-09-22  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1298
1299         Reviewed by Simon Hausmann.
1300
1301         NPAPI/Mac: Don't paint plugins if we don't have a CGContextRef
1302
1303         * plugins/mac/PluginViewMac.cpp:
1304
1305 2009-09-22  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1306
1307         Reivewed by Simon Hausmann.
1308
1309         Fix the Qt/Mac build after r48604 (Implement new QWebPageClient class)
1310
1311         There's no QWidget::x11Info() on Mac, and setPlatformPluginWidget()
1312         takes a QWidget*, not a QWebPageClient*
1313
1314         * plugins/mac/PluginViewMac.cpp:
1315         (WebCore::PluginView::platformStart):
1316
1317 2009-09-21  Adam Barth  <abarth@webkit.org>
1318
1319         Attempted fix for the V8 build.
1320
1321         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1322         (WebCore::V8Custom::WindowSetTimeoutImpl):
1323
1324 2009-09-21  Adam Barth  <abarth@webkit.org>
1325
1326         Reviewed by Sam Weinig.
1327
1328         Don't re-enter JavaScript after performing access checks
1329         https://bugs.webkit.org/show_bug.cgi?id=29531
1330
1331         Moved the access check slightly later in this functions to avoid
1332         re-entering the JavaScript interpreter (typically via toString)
1333         after performing the access check.
1334
1335         I can't really think of a meaningful test for this change.  It's more
1336         security hygiene.
1337
1338         * bindings/js/JSDOMWindowCustom.cpp:
1339         (WebCore::JSDOMWindow::setLocation):
1340         (WebCore::JSDOMWindow::open):
1341         (WebCore::JSDOMWindow::showModalDialog):
1342         * bindings/js/JSLocationCustom.cpp:
1343         (WebCore::JSLocation::setHref):
1344         (WebCore::JSLocation::replace):
1345         (WebCore::JSLocation::assign):
1346         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1347         (WebCore::V8Custom::WindowSetTimeoutImpl):
1348         (WebCore::if):
1349         (CALLBACK_FUNC_DECL):
1350         (V8Custom::WindowSetLocation):
1351         (V8Custom::ClearTimeoutImpl):
1352         * bindings/v8/custom/V8LocationCustom.cpp:
1353         (WebCore::ACCESSOR_SETTER):
1354         (WebCore::CALLBACK_FUNC_DECL):
1355
1356 2009-09-21  Dumitru Daniliuc  <dumi@chromium.org>
1357
1358         Reviewed by Eric Seidel.
1359
1360         Make all write transaction start with a BEGIN IMMEDIATE command
1361         instead of BEGIN.
1362
1363         We cannot test this change in a layout test, because in order to
1364         test it we need to spawn two database threads and execute
1365         transaction steps on these two threads in a very specific order,
1366         which seems impossible to do when they share the same main thread
1367         (as they would in a layout test). The SQLite docs and the case
1368         described in the bug though should be enough proof that we do have
1369         a problem here and that this patch will fix it.
1370
1371         Relevant SQLite documentation:
1372         http://www.sqlite.org/lang_transaction.html
1373         http://www.sqlite.org/lockingv3.html#locking
1374
1375         https://bugs.webkit.org/show_bug.cgi?id=29218
1376
1377         * platform/sql/SQLiteTransaction.cpp:
1378         (WebCore::SQLiteTransaction::SQLiteTransaction): Added a readOnly
1379         parameter.
1380         (WebCore::SQLiteTransaction::begin): Changed to BEGIN IMMEDIATE
1381         for write transactions.
1382         * platform/sql/SQLiteTransaction.h:
1383         * storage/SQLTransaction.cpp:
1384         (WebCore::SQLTransaction::openTransactionAndPreflight): Passing
1385         the read-only flag to the SQLiteTransaction instance.
1386
1387 2009-09-21  Brady Eidson  <beidson@apple.com>
1388
1389         Rubberstamped by Mark Rowe.
1390
1391         * DerivedSources.make: Fix the Xcode build on SnowLeopard.
1392
1393 2009-09-15  John Abd-El-Malek  <jam@chromium.org>
1394
1395         Reviewed by Darin Fisher.
1396
1397         Prevent sleeps in unload handlers.
1398         https://bugs.webkit.org/show_bug.cgi?id=29193
1399
1400         Test: fast/dom/Window/slow_unload_handler.html
1401
1402         * WebCore.gypi:
1403         * bindings/v8/DateExtension.cpp: Added.
1404         (WebCore::DateExtension::DateExtension):
1405         (WebCore::DateExtension::get):
1406         (WebCore::DateExtension::setAllowSleep):
1407         (WebCore::DateExtension::GetNativeFunction):
1408         (WebCore::DateExtension::weakCallback):
1409         (WebCore::DateExtension::GiveEnableSleepDetectionFunction):
1410         (WebCore::DateExtension::OnSleepDetected):
1411         * bindings/v8/DateExtension.h: Added.
1412         * bindings/v8/V8AbstractEventListener.cpp:
1413         (WebCore::V8AbstractEventListener::invokeEventHandler):
1414         * bindings/v8/V8Proxy.cpp:
1415         (WebCore::V8Proxy::createNewContext):
1416         (WebCore::V8Proxy::registerExtensionWithV8):
1417         (WebCore::V8Proxy::registeredExtensionWithV8):
1418         * bindings/v8/V8Proxy.h:
1419
1420 2009-09-21  Jian Li  <jianli@chromium.org>
1421
1422         Reviewed by David Levin.
1423
1424         [V8] Run-time exception in onmessage handler is not forwarded to the
1425         worker object.
1426         https://bugs.webkit.org/show_bug.cgi?id=28980
1427
1428         The previous fix was partially reverted due to a reliability build break
1429         in chromium. The break happens when an exception is thrown without
1430         setting a message. We need to check for this scenario and handle it.
1431
1432         Tested by worker-close.html.
1433
1434         * bindings/v8/V8AbstractEventListener.cpp:
1435         (WebCore::V8AbstractEventListener::invokeEventHandler):
1436         * bindings/v8/V8Utilities.cpp:
1437         (WebCore::reportException):
1438
1439 2009-09-21  Greg Bolsinga  <bolsinga@apple.com>
1440
1441         Reviewed by Simon Fraser & Sam Weinig.
1442
1443         Add ENABLE(ORIENTATION_EVENTS)
1444         https://bugs.webkit.org/show_bug.cgi?id=29508
1445         
1446         See documentation here:
1447         http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW16
1448
1449         * DerivedSources.make: Use new WebCore.OrientationEvents.exp file if ENABLE_ORIENTATION_EVENTS.
1450         Add ENABLE_ORIENTATION_EVENTS to the new ADDITIONAL_IDL_DEFINES variable that is passed to the IDL
1451         code generator. This is because ENABLE_ORIENTATION_EVENTS is not in FEATURE_DEFINES.
1452         * WebCore.OrientationEvents.exp: Added.
1453         * WebCore.xcodeproj/project.pbxproj: Add WebCore.OrientationEvents.exp.
1454         * dom/EventNames.h: Add onorientationchange.
1455         * html/HTMLAttributeNames.in: Ditto.
1456         * html/HTMLBodyElement.cpp: Handle onorientationchange properly.
1457         (WebCore::HTMLBodyElement::parseMappedAttribute):
1458         (WebCore::HTMLBodyElement::onorientationchange):
1459         (WebCore::HTMLBodyElement::setOnorientationchange):
1460         * html/HTMLBodyElement.h: Ditto.
1461         * html/HTMLBodyElement.idl: Ditto.
1462         * html/HTMLFrameSetElement.cpp: Ditto.
1463         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
1464         (WebCore::HTMLFrameSetElement::onorientationchange):
1465         (WebCore::HTMLFrameSetElement::setOnorientationchange):
1466         * html/HTMLFrameSetElement.h: Ditto.
1467         * html/HTMLFrameSetElement.idl: Ditto.
1468         * page/DOMWindow.cpp: Ditto.
1469         (WebCore::DOMWindow::orientation): Calls up the to the Frame for the orientation value.
1470         (WebCore::DOMWindow::onorientationchange):
1471         (WebCore::DOMWindow::setOnorientationchange):
1472         * page/DOMWindow.h: Handle onorientationchange properly.
1473         * page/DOMWindow.idl: Ditto.
1474         * page/Frame.cpp: Ditto.
1475         (WebCore::Frame::Frame):
1476         (WebCore::Frame::sendOrientationChangeEvent):
1477         * page/Frame.h: Ditto.
1478         (WebCore::Frame::orientation):
1479
1480 2009-09-18  Anders Carlsson  <andersca@apple.com>
1481
1482         Try fixing the build again.
1483         
1484         * platform/win/PopupMenuWin.cpp:
1485         (WebCore::PopupMenu::wndProc):
1486
1487 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1488
1489         Reviewed by Timothy Hatcher.
1490
1491         Web Inspector: completions are always evaluated against
1492         window (discarding call frames).
1493
1494         https://bugs.webkit.org/show_bug.cgi?id=29616
1495
1496         * inspector/front-end/ConsoleView.js:
1497         (WebInspector.ConsoleView.prototype.completions):
1498         * inspector/front-end/InjectedScript.js:
1499         (InjectedScript.getCompletions):
1500         * inspector/front-end/ScriptsPanel.js:
1501         (WebInspector.ScriptsPanel.prototype.selectedCallFrameId):
1502
1503 2009-09-21  Brent Fulgham  <bfulgham@webkit.org>
1504
1505         Unreviewed build fix for Windows (Cairo) target.
1506
1507         Add stubs for SocketStream classes added in @r47788, which
1508         broke the WinCairo build.
1509
1510         No new tests. (Build failure).
1511
1512         * WebCore.vcproj/WebCore.vcproj:  Add references to new files
1513           to Cairo build, exclude from standard Apple build.
1514         * platform/network/curl/SocketStreamError.h: Added.
1515         * platform/network/curl/SocketStreamHandle.h: Added.
1516         * platform/network/curl/SocketStreamHandleCurl.cpp: Added.
1517
1518 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1519
1520         Reviewed by Timothy Hatcher.
1521
1522         Web Inspector: Expose InspectorResource fields.
1523
1524         https://bugs.webkit.org/show_bug.cgi?id=29537
1525
1526         * inspector/InspectorResource.cpp:
1527         (WebCore::InspectorResource::sourceString):
1528         (WebCore::InspectorResource::resourceData):
1529         * inspector/InspectorResource.h:
1530         (WebCore::InspectorResource::requestHeaderFields):
1531         (WebCore::InspectorResource::responseHeaderFields):
1532         (WebCore::InspectorResource::responseStatusCode):
1533         (WebCore::InspectorResource::requestMethod):
1534         (WebCore::InspectorResource::requestFormData):
1535
1536 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1537
1538         Reviewed by Timothy Hatcher.
1539
1540         Web Inspector: JS error drilling down childless node.
1541         No need to dispatch double click twice - it is already handled
1542         in TreeElement.treeElementDoubleClicked.
1543
1544         https://bugs.webkit.org/show_bug.cgi?id=22144
1545
1546         * inspector/front-end/ElementsTreeOutline.js:
1547         (WebInspector.ElementsTreeOutline):
1548
1549 2009-09-21  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1550
1551         Reviewed by Simon Hausmann.
1552
1553         Implement new QWebPageClient class and let our classes
1554         QWebViewPrivate and QWebGraphicsItemPrivate inherit from it.
1555
1556         For Qt, platformPageClient() will now return a class derived from
1557         the QWebPageClient, so the patch adapts our Qt hooks to go though
1558         this class and not depend on the QWebView.
1559
1560         * WebCore.pro:
1561         * platform/Widget.h:
1562         * platform/qt/PlatformScreenQt.cpp:
1563         (WebCore::screenDepth):
1564         (WebCore::screenDepthPerComponent):
1565         (WebCore::screenIsMonochrome):
1566         (WebCore::screenRect):
1567         (WebCore::screenAvailableRect):
1568         * platform/qt/PopupMenuQt.cpp:
1569         (WebCore::PopupMenu::show):
1570         * platform/qt/QWebPageClient.h: Added.
1571         * platform/qt/WidgetQt.cpp:
1572         (WebCore::Widget::setCursor):
1573         * plugins/qt/PluginViewQt.cpp:
1574         (WebCore::PluginView::handleKeyboardEvent):
1575         (WebCore::PluginView::getValue):
1576         (WebCore::PluginView::platformStart):
1577
1578 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1579
1580         Reviewed by Timothy Hatcher.
1581
1582         Web Inspector: Evaluating on call frame always returns "undefined".
1583
1584         https://bugs.webkit.org/show_bug.cgi?id=29613
1585
1586         * inspector/front-end/InjectedScript.js:
1587         (InjectedScript.evaluate):
1588         (InjectedScript._evaluateAndWrap):
1589         (InjectedScript._evaluateOn):
1590         (InjectedScript.evaluateInCallFrame):
1591
1592 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1593
1594         Reviewed by Timothy Hatcher.
1595
1596         Web Inspector: Exception formatting is broken in console.
1597
1598         https://bugs.webkit.org/show_bug.cgi?id=29608
1599
1600         * inspector/front-end/ConsoleView.js:
1601         (WebInspector.ConsoleCommandResult):
1602         * inspector/front-end/InjectedScript.js:
1603         (InjectedScript.evaluate):
1604         (InjectedScript.createProxyObject):
1605
1606 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1607
1608         Reviewed by Timothy Hatcher.
1609
1610         Web Inspector: Console object formatting is broken.
1611
1612         https://bugs.webkit.org/show_bug.cgi?id=29607
1613
1614         * inspector/front-end/ConsoleView.js:
1615         (WebInspector.ConsoleMessage.prototype._format):
1616         * inspector/front-end/ObjectProxy.js:
1617         (WebInspector.ObjectProxy.wrapPrimitiveValue):
1618
1619 2009-09-21  Pavel Feldman  <pfeldman@chromium.org>
1620
1621         Reviewed by Timothy Hatcher.
1622
1623         Web Inspector: Crash When Logging an Element Before Opening Inspector
1624
1625         https://bugs.webkit.org/show_bug.cgi?id=29514
1626
1627         * inspector/InspectorController.cpp:
1628         (WebCore::InspectorController::populateScriptObjects):
1629
1630 2009-09-21  Simon Fraser  <simon.fraser@apple.com>
1631
1632         Reviewed by Dan Bernstein.
1633
1634         Incorrect clipping with accelerated compositing content, and position:fixed
1635         https://bugs.webkit.org/show_bug.cgi?id=29347
1636         
1637         Fix the compositing clipping logic to behave correctly when position:fixed
1638         elements clip, by using the new backgroundClipRect() method to determine
1639         when we need to clip, and to compute the clipping layer position.
1640
1641         Test: compositing/overflow/fixed-position-ancestor-clip.html
1642
1643         * rendering/RenderLayerBacking.cpp:
1644         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1645         * rendering/RenderLayerCompositor.cpp:
1646         (WebCore::RenderLayerCompositor::clippedByAncestor):
1647
1648 2009-09-21  Nate Chapin  <japhet@chromium.org>
1649
1650         Reviewed by Adam Barth.
1651
1652         Add back in a special case for window.top in the V8 bindings.
1653
1654         https://bugs.webkit.org/show_bug.cgi?id=29605
1655
1656         Fixes LayoutTests/fast/dom/Window/window-property-shadowing.html in the Chromium port.
1657
1658         * bindings/scripts/CodeGeneratorV8.pm: Ensure window.top is not marked as read only, as this breaks the shadowing disabling.
1659
1660 2009-09-21  Eric Carlson  <eric.carlson@apple.com>
1661
1662         Reviewed by Brady Eidson.
1663
1664         HTMLMediaElement: media file should not reload when page comes out of page cache
1665         https://bugs.webkit.org/show_bug.cgi?id=29604
1666
1667         Test: media/restore-from-page-cache.html
1668
1669         * html/HTMLMediaElement.cpp:
1670         (WebCore::HTMLMediaElement::userCancelledLoad): Do nothing unless the element
1671         is still loading. Only fire an 'emptied' event if the readyState is HAVE_NOTHING,
1672         otherwise set the network state to NETWORK_IDLE.
1673
1674 2009-09-21  Sam Weinig  <sam@webkit.org>
1675
1676         Reviewed by Geoffrey "Sean/Shawn/Shaun" Garen.
1677
1678         Clarify two FIXMEs.
1679
1680         * bindings/js/JSHTMLCollectionCustom.cpp:
1681         (WebCore::getNamedItems):
1682         * bindings/js/JSHTMLFormElementCustom.cpp:
1683         (WebCore::JSHTMLFormElement::nameGetter):
1684
1685 2009-09-21  Darin Fisher  <darin@chromium.org>
1686
1687         Reviewed by Dimitri Glazkov.
1688
1689         Drop down selects fail to close when a value is selected
1690         https://bugs.webkit.org/show_bug.cgi?id=29582
1691
1692         Implement PopupListBox::hidePopup, which was previously
1693         declared but unimplemented.  Removes the declaration of
1694         showPopup since that method is not implemented.
1695
1696         PopupListBox::hidePopup takes care of hiding the popup,
1697         by invoking hidePopup on its parent PopupContainer, and
1698         then informs the PopupMenuClient that popupDidHide.
1699         This mimics the old behavior prior to r48370.
1700
1701         * platform/chromium/PopupMenuChromium.cpp:
1702         (WebCore::PopupListBox::handleKeyEvent):
1703         (WebCore::PopupListBox::abandon):
1704         (WebCore::PopupListBox::acceptIndex):
1705         (WebCore::PopupListBox::hidePopup):
1706
1707 2009-09-21  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>
1708
1709         Rubber-stamped by Simon Hausmann.
1710
1711         [Qt] Windows build fix.
1712         https://bugs.webkit.org/show_bug.cgi?id=29535
1713
1714         * platform/network/qt/DnsPrefetchHelper.cpp: Missing #include "config.h"  added.
1715
1716 2009-09-21  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1717
1718         Unreviewed make dist build fix. Missing files.
1719
1720         * GNUmakefile.am:
1721
1722 2009-09-20  Adam Barth  <abarth@webkit.org>
1723
1724         Reviewed by Maciej Stachowiak.
1725
1726         Crash when clicking link in unload handler
1727         https://bugs.webkit.org/show_bug.cgi?id=29525
1728
1729         Test that the first navigation always wins when the page tries to start
1730         a new navigation in an unload handler.
1731
1732         Tests: fast/loader/unload-form-about-blank.html
1733                fast/loader/unload-form-post-about-blank.html
1734                fast/loader/unload-form-post.html
1735                fast/loader/unload-form.html
1736                fast/loader/unload-hyperlink.html
1737                fast/loader/unload-javascript-url.html
1738                fast/loader/unload-reload.html
1739                fast/loader/unload-window-location.html
1740
1741         * loader/FrameLoader.cpp:
1742         (WebCore::FrameLoader::loadURL):
1743         (WebCore::FrameLoader::loadWithDocumentLoader):
1744
1745 2009-09-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1746
1747         Reviewed by Xan Lopez.
1748
1749         [GTK] Sometimes crashes when a page is destroyed/loads another URL while playing video
1750         https://bugs.webkit.org/show_bug.cgi?id=29496
1751
1752         Protect the video sink object, and destroy it in an idle callback
1753         to hopefully avoid a race condition that leads to a crash.
1754
1755         This is already tested by media/video-seekable.html
1756
1757         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1758         (WebCore::idleUnref):
1759         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
1760         (WebCore::MediaPlayerPrivate::createGSTPlayBin):
1761
1762 2009-09-19  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1763
1764         Unreviewed build fix for GTK+ and a blind one for Qt after r48566.
1765
1766         * GNUmakefile.am:
1767         * WebCore.pro:
1768
1769 2009-09-19  Sam Weinig  <sam@webkit.org>
1770
1771         Reviewed by Oliver Hunt.
1772
1773         Fix for https://bugs.webkit.org/show_bug.cgi?id=29519
1774         Remove JSNameNodeCollection and just use StaticNodeList
1775
1776         * WebCore.vcproj/WebCore.vcproj:
1777         * WebCore.xcodeproj/project.pbxproj:
1778         * WebCoreSources.bkl:
1779         * bindings/js/JSHTMLCollectionCustom.cpp:
1780         (WebCore::getNamedItems):
1781         * bindings/js/JSHTMLFormElementCustom.cpp:
1782         (WebCore::JSHTMLFormElement::nameGetter):
1783         * bindings/js/JSNamedNodesCollection.cpp: Removed.
1784         * bindings/js/JSNamedNodesCollection.h: Removed.
1785
1786 2009-09-19  Daniel Bates  <dbates@webkit.org>
1787
1788         Reviewed by Adam Barth.
1789
1790         https://bugs.webkit.org/show_bug.cgi?id=29511
1791         
1792         Fixes an issue where script code that contains non-ASCII characters may bypass the 
1793         XSSAuditor.
1794         
1795         Before performing a comparison between the script source code and input parameters, we
1796         remove all non-ASCII characters, including non-printable ASCII characters from the
1797         script source code and input parameters.
1798
1799         Tests: http/tests/security/xssAuditor/img-onerror-non-ASCII-char.html
1800                http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding.html
1801                http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding.html
1802                http/tests/security/xssAuditor/img-onerror-non-ASCII-char2.html
1803
1804         * page/XSSAuditor.cpp:
1805         (WebCore::isNonCanonicalCharacter): Modified to remove all non-ASCII characters,
1806         including non-printable ASCII characters.
1807
1808 2009-09-19  Simon Fraser  <simon.fraser@apple.com>
1809
1810         Reviewed by Dan Bernstein.
1811
1812         Incorrect animation with scale(0) transform (singular matrix)
1813         https://bugs.webkit.org/show_bug.cgi?id=29465
1814         
1815         Make accelerated scale() and translate() animations go through the component animation
1816         path (rather than just matrix animation) to avoid problems with singular scale matrices,
1817         and be slightly more efficient.
1818
1819         Test: compositing/transitions/singular-scale-transition.html
1820
1821         * platform/graphics/mac/GraphicsLayerCA.mm:
1822         (WebCore::getTransformFunctionValue):
1823         (WebCore::getValueFunctionNameForTransformOperation):
1824
1825 2009-09-19  Alex Milowski  <alex@milowski.com>
1826
1827         Reviewed by Maciej Stachowiak.
1828
1829         Adds CSS styling and basic DOM element support for MathML
1830
1831         * DerivedSources.make:
1832           Added user stylesheet and tag factory generation
1833
1834         * WebCore.xcodeproj/project.pbxproj:
1835           Added new DOM element code
1836
1837         * css/CSSParser.cpp:
1838         (WebCore::CSSParser::parseAttr):
1839           Added check for document since stylesheet can be added before there is a document
1840
1841         * css/CSSStyleSelector.cpp:
1842         (WebCore::CSSStyleSelector::styleForElement):
1843           Added check to add MathML user agent stylesheet
1844
1845         * css/mathml.css: Added.
1846           MathML user agent stylesheet
1847
1848         * dom/Document.cpp:
1849         (WebCore::Document::createElement):
1850           Added support for creation of MathML DOM objects
1851
1852         * dom/Node.h:
1853         (WebCore::Node::isMathMLElement):
1854           Added check method for whether the node is a MathML node
1855
1856         * mathml: Added.
1857         * mathml/MathMLElement.cpp: Added.
1858         (WebCore::MathMLElement::MathMLElement):
1859         (WebCore::MathMLElement::create):
1860         (WebCore::MathMLElement::createRenderer):
1861         * mathml/MathMLElement.h: Added.
1862         (WebCore::MathMLElement::isMathMLElement):
1863           MathML DOM base class
1864
1865
1866         * mathml/MathMLInlineContainerElement.cpp: Added.
1867         (WebCore::MathMLInlineContainerElement::MathMLInlineContainerElement):
1868         (WebCore::MathMLInlineContainerElement::create):
1869         (WebCore::MathMLInlineContainerElement::createRenderer):
1870         * mathml/MathMLInlineContainerElement.h: Added.
1871           Base class for non-text containers
1872
1873         * mathml/MathMLMathElement.cpp: Added.
1874         (WebCore::MathMLMathElement::MathMLMathElement):
1875         (WebCore::MathMLMathElement::create):
1876         * mathml/MathMLMathElement.h: Added.
1877           Root Math element
1878
1879         * mathml/mathtags.in: Added.
1880           Element list mappings
1881
1882         * page/Frame.cpp:
1883         (WebCore::Frame::Frame):
1884           Added MathML name initialization
1885 2009-09-19  Adam Barth  <abarth@webkit.org>
1886
1887         Reviewed by Oliver Hunt.
1888
1889         Canvas drawn with data URL image raises SECURITY_ERR when toDataUrl() called.
1890         https://bugs.webkit.org/show_bug.cgi?id=29305
1891
1892         We need to special-case data URLs when tainting a canvas because we
1893         treat data URLs has having no security origin, unlike other
1894         browsers.  The reason we do this is to help sites avoid XSS via data
1895         URLs, but that consideration doesn't apply to canvas taint.
1896
1897         Also, we were previously incorrectly taking document.domain state
1898         into account when tainting canvas.
1899
1900         Tests: http/tests/security/canvas-remote-read-data-url-image.html
1901                http/tests/security/canvas-remote-read-data-url-svg-image.html
1902                http/tests/security/canvas-remote-read-remote-image-document-domain.html
1903
1904         * html/canvas/CanvasRenderingContext2D.cpp:
1905         (WebCore::CanvasRenderingContext2D::checkOrigin):
1906         (WebCore::CanvasRenderingContext2D::createPattern):
1907         * page/SecurityOrigin.cpp:
1908         (WebCore::SecurityOrigin::taintsCanvas):
1909         * page/SecurityOrigin.h:
1910
1911 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
1912
1913         Fix stylistic issue raised in code review for previous commit.
1914
1915         * rendering/RenderLayerBacking.cpp:
1916         (WebCore::hasNonZeroTransformOrigin):
1917
1918 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
1919
1920         Reviewed by Dan Bernstein.
1921
1922         Element is misplaced during opacity transition with certain configuration of transform-origin and clipping
1923         https://bugs.webkit.org/show_bug.cgi?id=29495
1924         
1925         If an element has zero size, but has a transform origin with absolute values,
1926         then the transform origin would not be applied because it is implemented via
1927         anchorPoint, which is expressed as a fraction of the layer size.
1928         
1929         Work around this by artificially inflating the size of the backing store when we need to.
1930
1931         Test: compositing/geometry/transfrom-origin-on-zero-size-layer.html
1932
1933         * rendering/RenderLayerBacking.h:
1934         * rendering/RenderLayerBacking.cpp:
1935         (WebCore::RenderLayerBacking::RenderLayerBacking):
1936         Init m_artificiallyInflatedBounds to false.
1937         
1938         (WebCore::hasNonZeroTransformOrigin):
1939         Utility function that describes whether the transform-origin contains non-percentage
1940         x or y offsets.
1941         
1942         (WebCore::RenderLayerBacking::updateCompositedBounds):
1943         New wrapper method around setCompositedBounds() that applies the size inflation
1944         when necessary, setting the m_artificiallyInflatedBounds as appropriate.
1945         
1946         (WebCore::RenderLayerBacking::updateAfterLayout): Call updateCompositedBounds().
1947         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Ditto
1948         
1949         * rendering/RenderLayerCompositor.cpp:
1950         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Ditto
1951         (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): Ditto
1952
1953 2009-09-18  Antti Koivisto  <antti@apple.com>
1954
1955         Reviewed by Maciej Stachowiak.
1956
1957         https://bugs.webkit.org/show_bug.cgi?id=29512
1958         Don't recalculate style when restoring from the page cache
1959
1960         FrameLoaderClient::forceLayout() also forces style recalc. Instead call FrameView::forceLayout() 
1961         directly to update the scrollbars while keeping the existing style.
1962         
1963         Makes back/forward really fast on complex pages (in cases where page cache works).
1964
1965         * loader/FrameLoader.cpp:
1966         (WebCore::FrameLoader::commitProvisionalLoad):
1967
1968 2009-09-18  Oliver Hunt  <oliver@apple.com>
1969
1970         Reviewed by Geoff Garen.
1971
1972         Implement ES5 Object.defineProperty function
1973         https://bugs.webkit.org/show_bug.cgi?id=29503
1974
1975         Override defineOwnProperty on JSDOMWindowShell to forward appropriately,
1976         and then override defineOwnProperty on JSDOMWindow to disallow cross origin
1977         defineOwnProperty usage.  We also override defineOwnProperty on QuarantinedObjectWrapper
1978         to ensure correct wrapping semantics of quarantined objects.
1979
1980         One major caveat in this patch is that it currently disallows the use
1981         of Object.defineProperty on DOMObjects other than the window due to
1982         the significant work involved in correctly propagating attributes and
1983         ensuring correct semantics on dom objects.
1984
1985         Tests: fast/js/Object-defineProperty.html
1986                http/tests/security/xss-DENIED-defineProperty.html
1987
1988         * bindings/js/JSDOMBinding.cpp:
1989         (WebCore::DOMObject::defineOwnProperty):
1990         * bindings/js/JSDOMBinding.h:
1991         * bindings/js/JSDOMWindowCustom.cpp:
1992         (WebCore::JSDOMWindow::defineGetter):
1993         (WebCore::JSDOMWindow::defineSetter):
1994         (WebCore::JSDOMWindow::defineOwnProperty):
1995         * bindings/js/JSDOMWindowShell.cpp:
1996         (WebCore::JSDOMWindowShell::defineOwnProperty):
1997         (WebCore::JSDOMWindowShell::defineGetter):
1998         (WebCore::JSDOMWindowShell::defineSetter):
1999         * bindings/js/JSDOMWindowShell.h:
2000         * bindings/js/JSLocationCustom.cpp:
2001         (WebCore::JSLocation::defineGetter):
2002         (WebCore::JSLocationPrototype::defineGetter):
2003         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2004         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertyDescriptor):
2005         (WebCore::JSQuarantinedObjectWrapper::defineOwnProperty):
2006         * bindings/js/JSQuarantinedObjectWrapper.h:
2007         * bindings/scripts/CodeGeneratorJS.pm:
2008
2009 2009-09-18  Alexey Proskuryakov  <ap@apple.com>
2010
2011         Reviewed by Darin Adler.
2012
2013         https://bugs.webkit.org/show_bug.cgi?id=29510
2014         Active DOM objects should be suspended while a modal dialog is displayed
2015
2016         * manual-tests/js-timers-beneath-modal-dialog.html: Added a test for JS timers.
2017
2018         * page/PageGroupLoadDeferrer.cpp:
2019         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
2020         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
2021         Match other platforms, and make Mac also suspend active DOM objects. Since a page that
2022         currently displays a modal dialog cannot go into page cache, there is no danger of suspending
2023         an object twice.        
2024
2025 2009-09-18  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>
2026
2027         Reviewed by Eric Seidel.
2028
2029         [Qt] Buildfix caused by http://trac.webkit.org/changeset/48513
2030         https://bugs.webkit.org/show_bug.cgi?id=29351
2031
2032         * bridge/qt/qt_instance.h: createRuntimeObject method renamed to newRuntimeObject.
2033         * bridge/runtime.h: Visibility of newRuntimeObject method modified to protected.
2034
2035 2009-09-18  Yury Semikhatsky  <yurys@chromium.org>
2036
2037         Reviewed by Timothy Hatcher.
2038
2039         Fix parameter substitutions in console.log().
2040
2041         https://bugs.webkit.org/show_bug.cgi?id=29366
2042
2043         * inspector/front-end/ConsoleView.js:
2044         (WebInspector.ConsoleMessage.prototype._format):
2045         * inspector/front-end/InjectedScript.js:
2046         (InjectedScript.getPrototypes):
2047         (InjectedScript.CallFrameProxy.prototype._wrapScopeChain):
2048         * inspector/front-end/utilities.js:
2049         ():
2050
2051 2009-09-18  Sam Weinig  <sam@webkit.org>
2052
2053         Reviewed by Geoffrey Garen and Brady Eidson.
2054
2055         Temporarily remove an assertion that was getting hit when going
2056         back to a page in the page cache while a banner in Safari was visible.
2057         We should re-enable this once that is fixed. See <rdar://problem/7218118>
2058
2059         * page/FrameView.cpp:
2060         (WebCore::FrameView::scheduleRelayout):
2061
2062 2009-09-18  Anders Carlsson  <andersca@apple.com>
2063
2064         Try fixing the build again.
2065         
2066         * platform/win/PopupMenuWin.cpp:
2067         (WebCore::PopupMenu::wndProc):
2068
2069 2009-09-18  Anders Carlsson  <andersca@apple.com>
2070
2071         Fix windows build.
2072         
2073         * platform/win/PopupMenuWin.cpp:
2074
2075 2009-09-18  Sam Weinig  <sam@webkit.org>
2076
2077         Reviewed by Gavin 'BearClaw' Barraclough.
2078
2079         Convert another callback type object to store the global object
2080         instead of the frame.
2081
2082         * bindings/js/JSCustomXPathNSResolver.cpp:
2083         (WebCore::JSCustomXPathNSResolver::create):
2084         (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
2085         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2086         * bindings/js/JSCustomXPathNSResolver.h:
2087
2088 2009-09-18  Anders Carlsson  <andersca@apple.com>
2089
2090         Reviewed by Sam Weinig.
2091
2092         https://bugs.webkit.org/show_bug.cgi?id=29332
2093         <rdar://problem/7231652> 
2094         REGRESSION (r48446): While a <select> popup menu is open, the
2095         rest of the WebView doesn't respond to mouse move events.
2096
2097         * platform/win/PopupMenuWin.cpp:
2098         (WebCore::translatePoint):
2099         New helper function that translates a point between HWND coordinates.
2100         
2101         (WebCore::PopupMenu::show):
2102         Protect the PopupMenu if someone removes the <select> in response to a mouse
2103         event. Handle WM_HOST_WINDOW_MOUSEMOVE events.
2104         
2105         (WebCore::PopupMenu::wndProc):
2106         in the WM_MOUSEMOVE handler, if the mouse is not over the popup, post a 
2107         WM_HOST_WINDOW_MOUSEMOVE event so that the host window (the WebView) gets the
2108         mouse move event.
2109
2110 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
2111
2112         Reviewed by Dave Hyatt.
2113
2114         Compositing layers are incorrectly positioned after scrolling with position:fixed
2115         https://bugs.webkit.org/show_bug.cgi?id=29262
2116         
2117         When scrolling a page with compositing layers inside a position:fixed element,
2118         we need to update the compositing layer positions when the scroll position changes.
2119
2120         Test: compositing/geometry/fixed-position.html
2121
2122         * WebCore.base.exp:
2123         Export FrameView::scrollPositionChanged()
2124         
2125         * page/FrameView.h:
2126         * page/FrameView.cpp:
2127         (WebCore::FrameView::scrollPositionChanged):
2128         New method that sends the scroll event, and updates compositing layers positions if necessary.
2129
2130 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
2131
2132         Reviewed by Dave Hyatt.
2133
2134         Transformed elements inside position:fixed container are clipped incorrectly
2135         https://bugs.webkit.org/show_bug.cgi?id=29346
2136         
2137         Fix clipping and hit testing on transformed elements inside a position:fixed element.
2138         Previously, the code used the overflowClipRect of the parent clip rects, but
2139         this is not correct for fixed postion elements. Instead, share code that is
2140         already present in calculateRects() to get the correct rect.
2141
2142         Test: fast/overflow/position-fixed-transform-clipping.html
2143
2144         * rendering/RenderLayer.h:
2145         * rendering/RenderLayer.cpp:
2146         (WebCore::RenderLayer::paintLayer):
2147         (WebCore::RenderLayer::hitTestLayer):
2148         Call the new backgroundClipRect() to get the correct clipRect.
2149         
2150         (WebCore::RenderLayer::backgroundClipRect):
2151         New method, factored out of calculateRects(), that computes the clip rect,
2152         doing the right thing for fixed position elements.
2153         
2154         (WebCore::RenderLayer::calculateRects):
2155         Call the new backgroundClipRect() method.
2156         
2157 2009-09-18  Dan Bernstein  <mitz@apple.com>
2158
2159         Reviewed by Darin Adler.
2160
2161         Fix <rdar://problem/7050773> REGRESSION (r40098) Crash at
2162         WebCore::RenderBlock::layoutBlock()
2163         https://bugs.webkit.org/show_bug.cgi?id=29498
2164
2165         Test: accessibility/nested-layout-crash.html
2166
2167         * accessibility/AccessibilityRenderObject.cpp:
2168         (WebCore::AccessibilityRenderObject::updateBackingStore): Changed to
2169             call Document::updateLayoutIgnorePendingStylesheets() instead of
2170             calling RenderObject::layoutIfNeeded(). The latter requires that
2171             there be no pending style recalc, which allows methods that call
2172             Document::updateLayout() to be called during layout without risking
2173             re-entry into layout.
2174         * accessibility/mac/AccessibilityObjectWrapper.mm:
2175         (-[AccessibilityObjectWrapper accessibilityActionNames]): Null-check
2176             m_object after calling updateBackingStore(), since style recalc may
2177             destroy the renderer, which destroys the accessibility object and
2178             detaches it from the wrapper.
2179         (-[AccessibilityObjectWrapper accessibilityAttributeNames]): Ditto.
2180         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): Ditto.
2181         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]): Ditto.
2182         (-[AccessibilityObjectWrapper accessibilityHitTest:]): Ditto.
2183         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
2184             Ditto.
2185         (-[AccessibilityObjectWrapper accessibilityIsIgnored]): Ditto.
2186         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
2187              Ditto.
2188         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]): Ditto.
2189         (-[AccessibilityObjectWrapper accessibilityPerformIncrementAction]):
2190             Ditto.
2191         (-[AccessibilityObjectWrapper accessibilityPerformDecrementAction]):
2192             Ditto.
2193         (-[AccessibilityObjectWrapper accessibilityPerformAction:]): Ditto.
2194         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
2195             Ditto.
2196         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2197             Ditto.
2198         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]): Ditto.
2199         (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
2200             Ditto.
2201         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
2202             Ditto.
2203
2204 2009-09-18  Fumitoshi Ukai  <ukai@chromium.org>
2205
2206         Reviewed by Simon Hausmann.
2207
2208         Update Qt build system for Web Socket.
2209         https://bugs.webkit.org/show_bug.cgi?id=29270
2210
2211         * WebCore.pro:
2212         * platform/network/qt/SocketStreamError.h: Added.
2213         * platform/network/qt/SocketStreamHandle.h: Added.
2214         * platform/network/qt/SocketStreamHandleSoup.cpp: Added.
2215
2216 2009-09-18  Eric Carlson  <eric.carlson@apple.com>
2217
2218         Reviewed by Darin Adler.
2219
2220         NULL check HTMLMediaElement::m_playedTimeRanges.
2221         Fix for https://bugs.webkit.org/show_bug.cgi?id=29494
2222
2223         * html/HTMLMediaElement.cpp:
2224         (WebCore::HTMLMediaElement::addPlayedRange): New. Create m_playedTimeRanges if
2225         necessary, add range specified.
2226         (WebCore::HTMLMediaElement::seek): Use addPlayedRange. 
2227         (WebCore::HTMLMediaElement::played): Use addPlayedRange. Change time comparison 
2228         to be more readable.
2229         (WebCore::HTMLMediaElement::updatePlayState): Ditto.
2230         * html/HTMLMediaElement.h:
2231
2232 2009-09-18  Sam Weinig  <sam@webkit.org>
2233
2234         Reviewed by Adele Peterson.
2235
2236         Follow up fix for https://bugs.webkit.org/show_bug.cgi?id=29276
2237         REGRESSION(r48334): WebKit crashes on file select by drag
2238
2239         Don't use Document.elementFromPoint since it returns null if the point
2240         is outside the viewport.  Instead, just hit test ourselves.
2241
2242         Test: fast/events/drag-file-crash.html
2243
2244         * page/DragController.cpp:
2245         (WebCore::elementUnderMouse):
2246         (WebCore::DragController::tryDocumentDrag):
2247         (WebCore::DragController::concludeEditDrag):
2248
2249 2009-09-18  Darin Adler  <darin@apple.com>
2250
2251         Reviewed by Sam Weinig.
2252
2253         Each wrapped Objective-C object should use a single RuntimeObjectImp
2254         https://bugs.webkit.org/show_bug.cgi?id=29351
2255         rdar://problem/7142294
2256
2257         * WebCore.base.exp: Added a newly-needed exported symbol.
2258
2259         * bindings/objc/DOMInternal.h: Eliminated unused
2260         createWrapperCacheWithIntegerKeys; it has not been needed since the
2261         RGBColor wrappers were reworked.
2262         * bindings/objc/DOMInternal.mm: Ditto.
2263
2264         * bridge/objc/objc_instance.h: Made the create function non-inline.
2265         * bridge/objc/objc_instance.mm:
2266         (createInstanceWrapperCache): Added. Creates an appropriate map table.
2267         (ObjcInstance::create): Moved here from header. Uses NSMapGet and
2268         NSMapInsert to cache the instance in a map table.
2269         (ObjcInstance::~ObjcInstance): Added a call to NSMapRemove to remove
2270         the instance from the map table.
2271
2272         * bridge/qt/qt_instance.cpp:
2273         (JSC::Bindings::QtInstance::~QtInstance): Remove unneeded code to remove
2274         the instance from cachedObjects, which no longer exists.
2275         (JSC::Bindings::QtInstance::newRuntimeObject): Renamed to overload new
2276         bottleneck. Caching is now handled by the base class.
2277
2278         * bridge/runtime.cpp:
2279         (JSC::Bindings::Instance::Instance): Initialize m_runtimeObject to 0.
2280         (JSC::Bindings::Instance::~Instance): Assert m_runtimeObject is 0.
2281         (JSC::Bindings::Instance::createRuntimeObject): Use m_runtimeObject
2282         if it's already set. Set m_runtimeObject and call addRuntimeObject
2283         if it's not.
2284         (JSC::Bindings::Instance::newRuntimeObject): Added. Virtual function,
2285         used only by createRuntimeObject.
2286         (JSC::Bindings::Instance::willDestroyRuntimeObject): Added.
2287         Calls removeRuntimeObject and then clears m_runtimeObject.
2288         (JSC::Bindings::Instance::willInvalidateRuntimeObject): Added.
2289         Clears m_runtimeObject.
2290
2291         * bridge/runtime.h: Made createRuntimeObject non-virtual. Added
2292         willDestroyRuntimeObject, willInvalidateRuntimeObject,
2293         newRuntimeObject, and m_runtimeObject.
2294
2295         * bridge/runtime_object.cpp:
2296         (JSC::RuntimeObjectImp::RuntimeObjectImp): Removed addRuntimeObject
2297         call, now handled by caller.
2298         (JSC::RuntimeObjectImp::~RuntimeObjectImp): Replaced removeRuntimeObject
2299         call with willDestroyRuntimeObject call; the latter nows calls
2300         removeRuntimeObject.
2301         (JSC::RuntimeObjectImp::invalidate): Added willInvalidateRuntimeObject
2302         call.
2303
2304         * bridge/runtime_object.h: Made invalidate non-virtual.
2305
2306 2009-09-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2307
2308         Reviewed by Simon Hausmann.
2309
2310         Make PlatformWindow return something else than PlatformWidget
2311         https://bugs.webkit.org/show_bug.cgi?id=29085
2312
2313         Make platformWindow return a PlatformPageClient
2314         (for now typedef'ed to PlatformWidget)
2315
2316         Also, change the name of platformWindow to platformPageClient()
2317
2318         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2319         (getPangoLayoutForAtk):
2320         * accessibility/win/AXObjectCacheWin.cpp:
2321         (WebCore::AXObjectCache::postPlatformNotification):
2322         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
2323         * loader/EmptyClients.h:
2324         (WebCore::EmptyChromeClient::platformPageClient):
2325         * page/Chrome.cpp:
2326         (WebCore::Chrome::platformPageClient):
2327         * page/Chrome.h:
2328         * page/ChromeClient.h:
2329         * page/mac/EventHandlerMac.mm:
2330         (WebCore::EventHandler::wheelEvent):
2331         (WebCore::EventHandler::currentPlatformMouseEvent):
2332         (WebCore::EventHandler::sendContextMenuEvent):
2333         (WebCore::EventHandler::eventMayStartDrag):
2334         * platform/HostWindow.h:
2335         * platform/Widget.h:
2336         * platform/gtk/PlatformScreenGtk.cpp:
2337         (WebCore::getVisual):
2338         (WebCore::screenRect):
2339         (WebCore::screenAvailableRect):
2340         * platform/gtk/PopupMenuGtk.cpp:
2341         (WebCore::PopupMenu::show):
2342         * platform/gtk/ScrollViewGtk.cpp:
2343         (WebCore::ScrollView::platformAddChild):
2344         (WebCore::ScrollView::platformRemoveChild):
2345         (WebCore::ScrollView::visibleContentRect):
2346         * platform/gtk/WidgetGtk.cpp:
2347         (WebCore::Widget::setFocus):
2348         (WebCore::Widget::setCursor):
2349         * platform/qt/PlatformScreenQt.cpp:
2350         (WebCore::screenDepth):
2351         (WebCore::screenDepthPerComponent):
2352         (WebCore::screenIsMonochrome):
2353         (WebCore::screenRect):
2354         (WebCore::screenAvailableRect):
2355         * platform/qt/PopupMenuQt.cpp:
2356         (WebCore::PopupMenu::show):
2357         * platform/qt/WidgetQt.cpp:
2358         (WebCore::Widget::setCursor):
2359         * platform/win/PlatformScreenWin.cpp:
2360         (WebCore::monitorInfoForWidget):
2361         * platform/win/PopupMenuWin.cpp:
2362         (WebCore::PopupMenu::show):
2363         (WebCore::PopupMenu::calculatePositionAndSize):
2364         (WebCore::PopupMenu::wndProc):
2365         * platform/wx/RenderThemeWx.cpp:
2366         (WebCore::nativeWindowForRenderObject):
2367         * platform/wx/ScrollbarThemeWx.cpp:
2368         (WebCore::ScrollbarThemeWx::paint):
2369         * plugins/gtk/PluginViewGtk.cpp:
2370         (WebCore::PluginView::getValue):
2371         (WebCore::PluginView::forceRedraw):
2372         (WebCore::PluginView::platformStart):
2373         * plugins/mac/PluginViewMac.cpp:
2374         (WebCore::PluginView::platformStart):
2375         * plugins/qt/PluginViewQt.cpp:
2376         (WebCore::PluginView::handleKeyboardEvent):
2377         (WebCore::PluginView::getValue):
2378         (WebCore::PluginView::platformStart):
2379         * plugins/win/PluginViewWin.cpp:
2380         (WebCore::PluginView::getValue):
2381         (WebCore::PluginView::forceRedraw):
2382         (WebCore::PluginView::platformStart):
2383
2384 2009-09-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2385
2386         Reviewed by Simon Hausmann.
2387
2388         [Qt] Web inspector UI adjustments specific to the Qt platform:
2389         - Hide the close button
2390         - Hide the dock button
2391         - Disable the draggable toolbar
2392
2393         https://bugs.webkit.org/show_bug.cgi?id=29384
2394
2395         * inspector/front-end/inspector.css:
2396         * inspector/front-end/inspector.js:
2397         (WebInspector.toolbarDragStart):
2398
2399 2009-09-18  Joerg Bornemann  <joerg.bornemann@nokia.com>
2400
2401         Reviewed by Simon Hausmann.
2402
2403         QtWebKit Windows CE compile fixes
2404
2405         Exclude certain pure-WINCE specific code paths from the Qt build.
2406
2407         * platform/graphics/BitmapImage.h:
2408         * platform/graphics/FontCache.h:
2409         * platform/graphics/MediaPlayer.cpp:
2410         * platform/text/TextEncodingRegistry.cpp:
2411         (WebCore::buildBaseTextCodecMaps):
2412         (WebCore::extendTextCodecMaps):
2413         * plugins/PluginView.cpp:
2414         (WebCore::PluginView::stop): Guard this code block with NETSCAPE_PLUGIN_API as
2415         the corresponding PluginViewWndProc has the same guard in the header file.
2416
2417 2009-09-18  Steve Block  <steveblock@google.com>
2418
2419         Reviewed by Dimitri Glazkov.
2420
2421         Geolocation does not correctly handle Infinity for PositionOptions properties.
2422         https://bugs.webkit.org/show_bug.cgi?id=29099
2423
2424         * bindings/js/JSGeolocationCustom.cpp: Modified.
2425         (WebCore::createPositionOptions): Modified. If timeout or maximumAge is positive infinity, applies these values as a special case.
2426         * page/PositionOptions.h: Modified.
2427         (WebCore::PositionOptions::hasMaximumAge): Added. Determines whether the object has a maximum age.
2428         (WebCore::PositionOptions::maximumAge): Modified. Asserts that the object has a maximum age.
2429         (WebCore::PositionOptions::clearMaximumAge): Added. Clears the maximum age.
2430         (WebCore::PositionOptions::setMaximumAge): Modified. Registers that the maximum age has been set.
2431         (WebCore::PositionOptions::PositionOptions): Modified. Registers that the maximum age has been set.
2432
2433 2009-09-17  Sam Weinig  <sam@webkit.org>
2434
2435         Reviewed by Adele Peterson.
2436
2437         Fix for https://bugs.webkit.org/show_bug.cgi?id=29276
2438         REGRESSION(r48334): WebKit crashes on file select by drag
2439
2440         Document.elementFromPoint now takes point in client space, not page space.
2441
2442         * page/DragController.cpp:
2443         (WebCore::DragController::tryDocumentDrag):
2444         (WebCore::DragController::concludeEditDrag):
2445
2446 2009-09-17  Albert J. Wong  <ajwong@chromium.org>
2447
2448         Reviewed by David Levin.
2449
2450         Reimplement default media UI for Mac Chromium to match the style
2451         of the Windows and Linux versions.  Also breaks the dependency
2452         on the internal wk* functions that were previously used to
2453         render the media controller widgets.
2454         https://bugs.webkit.org/show_bug.cgi?id=29161
2455
2456         No media layout tests are currently enabled in Mac Chromium, so
2457         nothing needs rebaselineing, etc.
2458
2459         This is a recommit of r48438 with a compile fix and merges of
2460         recent changes to the file.
2461
2462         * css/mediaControlsChromium.css:
2463         * rendering/RenderThemeChromiumMac.h:
2464         * rendering/RenderThemeChromiumMac.mm:
2465         (WebCore::mediaElementParent):
2466         (WebCore::RenderThemeChromiumMac::extraMediaControlsStyleSheet):
2467         (WebCore::mediaSliderThumbImage):
2468         (WebCore::mediaVolumeSliderThumbImage):
2469         (WebCore::RenderThemeChromiumMac::paintSliderTrack):
2470         (WebCore::RenderThemeChromiumMac::adjustSliderThumbSize):
2471         (WebCore::RenderThemeChromiumMac::paintMediaButtonInternal):
2472         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
2473         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
2474         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
2475         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack):
2476         (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):
2477         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb):
2478         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
2479         * rendering/RenderThemeChromiumSkia.cpp:
2480         (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize):
2481
2482 2009-09-17  Brian Weinstein  <bweinstein@apple.com>
2483
2484         Reviewed by Timothy Hatcher.
2485
2486         The Console scope bar should have a divider between All and the other possible
2487         values (Errors, Warnings, Logs). It will look something like:
2488         
2489         All | Errors Warnings Logs.
2490
2491         * inspector/front-end/ConsoleView.js:
2492         (WebInspector.ConsoleView.createDividerElement):
2493         (WebInspector.ConsoleView):
2494         * inspector/front-end/inspector.css:
2495
2496 2009-09-17  Sam Weinig  <sam@webkit.org>
2497
2498         Reviewed by Mark Rowe.
2499
2500         Remove additional references to JSVoidCallback which no longer exists.
2501
2502         * DerivedSources.cpp:
2503         * WebCore.vcproj/WebCore.vcproj:
2504
2505 2009-09-17  Sam Weinig  <sam@webkit.org>
2506
2507         Reviewed by Brady Eidson.
2508
2509         Remove commented out onhashchange attribute now that it is implemented.
2510
2511         * page/DOMWindow.idl:
2512
2513 2009-09-17  Anders Carlsson  <andersca@apple.com>
2514
2515         Reviewed by Oliver Hunt.
2516
2517         <rdar://problem/7007541> 
2518         CrashTracer: 4800+ crashes in Safari at com.apple.WebKit • WTF::HashTableIterator...
2519         
2520         Make RuntimeObjectImp more robust against m_instance being a null (which can happen if an OOP plug-in
2521         crashes while we're calling into it).
2522         
2523         * bridge/runtime_object.cpp:
2524         (JSC::RuntimeObjectImp::RuntimeObjectImp):
2525         (JSC::RuntimeObjectImp::~RuntimeObjectImp):
2526         (JSC::RuntimeObjectImp::invalidate):
2527         (JSC::RuntimeObjectImp::fallbackObjectGetter):
2528         (JSC::RuntimeObjectImp::fieldGetter):
2529         (JSC::RuntimeObjectImp::methodGetter):
2530         (JSC::RuntimeObjectImp::getOwnPropertySlot):
2531         (JSC::RuntimeObjectImp::getOwnPropertyDescriptor):
2532         (JSC::RuntimeObjectImp::put):
2533         (JSC::RuntimeObjectImp::defaultValue):
2534         (JSC::RuntimeObjectImp::getCallData):
2535         (JSC::RuntimeObjectImp::getConstructData):
2536         (JSC::RuntimeObjectImp::getPropertyNames):
2537         * bridge/runtime_object.h:
2538         (JSC::RuntimeObjectImp::getInternalInstance):
2539
2540 2009-09-17  Yury Semikhatsky  <yurys@chromium.org>
2541
2542         Reviewed by Timothy Hatcher.
2543
2544         Wrap primitive values (as objects) in InspectorController::wrap.
2545
2546         https://bugs.webkit.org/show_bug.cgi?id=28983
2547
2548         * inspector/InspectorController.cpp:
2549         (WebCore::InspectorController::wrapObject): objects of any type will be wrapped into proxies,
2550          only object proxies will have objectId.
2551         * inspector/front-end/ConsoleView.js:
2552         (WebInspector.ConsoleView.prototype.completions): there is InjectedScript.getCompletionsi
2553          that accepts an expression and returns possible completions. This way we don't need to wrap
2554          and unwrap the completions result into a proxy object.
2555         * inspector/front-end/InjectedScript.js:
2556         (InjectedScript.getCompletions):
2557         (InjectedScript.evaluate):
2558         (InjectedScript._evaluateOn):
2559         (InjectedScript.createProxyObject):
2560         * inspector/front-end/InjectedScriptAccess.js:
2561
2562 2009-09-17  Nate Chapin  <japhet@chromium.org>
2563
2564         Reviewed by Dimitri Glazkov.
2565
2566         Wrap PageTransitionEvents properly for V8's use.
2567
2568         https://bugs.webkit.org/show_bug.cgi?id=29340
2569
2570         Fixes Chromium's failures for LayoutTests/fast/events/pageshow-pagehide.html.
2571
2572         * bindings/v8/V8DOMWrapper.cpp:
2573         (WebCore::V8DOMWrapper::convertEventToV8Object): Wrap PageTransitionEvents properly.
2574
2575 2009-09-17  Simon Fraser  <simon.fraser@apple.com>
2576
2577         Reviewed by Dave Hyatt.
2578
2579         Hardware-accelerated opacity transition on inline asserts
2580         https://bugs.webkit.org/show_bug.cgi?id=29342
2581         
2582         Remove an erroneous toRenderBox() that could be called on a RenderInline; we can just
2583         pass an empty size, because the box size is only required for transform animations.
2584
2585         Test: compositing/transitions/opacity-on-inline.html
2586
2587         * rendering/RenderLayerBacking.cpp:
2588         (WebCore::RenderLayerBacking::startTransition):
2589
2590 2009-09-17  Adam Barth  <abarth@webkit.org>
2591
2592         Reviewed by Eric Seidel.
2593
2594         [V8] OwnHandle might get a weak callback after destruction
2595         https://bugs.webkit.org/show_bug.cgi?id=29172
2596
2597         Be sure to clear out weak reference so we don't get a weak callback
2598         after we've destructed ourselves.  Also, removed some tricky methods
2599         that had no clients.
2600
2601         * bindings/v8/OwnHandle.h:
2602         (WebCore::OwnHandle::clear):
2603
2604 2009-09-17  Dimitri Glazkov  <dglazkov@chromium.org>
2605
2606         Unreviewed, build fix.
2607
2608         [V8] Partial roll out of http://trac.webkit.org/changeset/48455 to
2609         fix crashes that started happening in V8Proxy::getEnteredContext().
2610
2611         * bindings/v8/ScheduledAction.cpp:
2612         (WebCore::ScheduledAction::execute):
2613
2614 2009-09-17  Chris Fleizach  <cfleizach@apple.com>
2615
2616         Reviewed by Beth Dakin.
2617
2618         AX: labels of checkboxes should, when hit-tested, return the checkbox
2619         https://bugs.webkit.org/show_bug.cgi?id=29335
2620
2621         When an accessibility hit test is done and it hits the label of a control element,
2622         the control element should be returned instead of nothing, since the label
2623         itself is usually ignored.
2624
2625         Test: accessibility/label-for-control-hittest.html
2626
2627         * accessibility/AccessibilityObject.h:
2628         (WebCore::AccessibilityObject::correspondingControlForLabelElement):
2629         * accessibility/AccessibilityRenderObject.cpp:
2630         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
2631         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
2632         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
2633         * accessibility/AccessibilityRenderObject.h:
2634
2635 2009-09-17  Avi Drissman  <avi@chromium.org>
2636
2637         Reviewed by Dimitri Glazkov, build fix.
2638
2639         Change to make RenderThemeChromiumMac compile inside of non PLATFORM(MAC).
2640         https://bugs.webkit.org/show_bug.cgi?id=29243
2641
2642         Covered by existing tests.
2643
2644         * rendering/RenderThemeChromiumMac.mm:
2645         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
2646
2647 2009-09-17  Dimitri Glazkov  <dglazkov@chromium.org>
2648
2649         Reviewed by Eric Seidel.
2650
2651         [V8] Accessing properties/methods of an object, created with document.implementation.createDocumentType
2652         creates nodes that have no document (ScriptExecutionContext), which in turn produces NULL-ref crashes.
2653         https://bugs.webkit.org/show_bug.cgi?id=26402
2654
2655         Test: fast/dom/DOMImplementation/detached-doctype.html
2656               fast/dom/doctype-event-listener-crash.html
2657
2658         * bindings/v8/V8DOMWrapper.cpp:
2659         (WebCore::V8DOMWrapper::getEventListener): Added an extra NULL-check.
2660
2661 2009-09-17  Dan Bernstein  <mitz@apple.com>
2662
2663         Reviewed by Simon Fraser.
2664
2665         FontDescription.h includes RenderStyleConstants.h, which violates layering
2666         https://bugs.webkit.org/show_bug.cgi?id=29327
2667
2668         * GNUmakefile.am: Added FontSmoothingMode.h.
2669         * WebCore.gypi: Added FontSmoothingMode.h.
2670         * WebCore.vcproj/WebCore.vcproj: Added FontSmoothingMode.h.
2671         * WebCore.xcodeproj/project.pbxproj: Added FontSmoothingMode.h and made
2672             it a private header.
2673         * css/CSSComputedStyleDeclaration.cpp:
2674         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the
2675             font smoothing mode via the font description.
2676         * css/CSSPrimitiveValueMappings.h: Include FontSmoothingMode.h
2677         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Updated for the rename
2678             of FontSmoothing to FontSmoothingMode.
2679         (WebCore::CSSPrimitiveValue::operator FontSmoothingMode): Ditto.
2680         * css/CSSStyleSelector.cpp:
2681         (WebCore::CSSStyleSelector::applyProperty): Get the font smoothing mode
2682             via the font description.
2683         * platform/graphics/FontDescription.h: Do not include
2684             RenderStyleConstants.h.
2685         (WebCore::FontDescription::fontSmoothing): Updated for the rename of
2686             FontSmoothing to FontSmoothingMode.
2687         (WebCore::FontDescription::setFontSmoothing): Ditto.
2688         * platform/graphics/FontSmoothingMode.h: Added.
2689         (WebCore::FontSmoothingMode): Moved the FontSmoothing enum from
2690             RenderStyleConstants here and renamed it to this.
2691         * rendering/style/RenderStyle.h:
2692         (WebCore::InheritedFlags::fontSmoothing): Removed this getter, since
2693             this can be accessed via the font description.
2694         * rendering/style/RenderStyleConstants.h: Moved the FontSmoothing enum
2695             from here to FontSmoothingMode.h.
2696
2697 2009-09-17  Kevin Ollivier  <kevino@theolliviers.com>
2698
2699         wx 2.9 build fix.
2700
2701         * platform/wx/wxcode/gtk/scrollbar_render.cpp:
2702         (wxGetGdkWindowForDC):
2703
2704 2009-09-16  Simon Fraser  <simon.fraser@apple.com>
2705
2706         Reviewed by Dan Bernstein.
2707
2708         Elements appear behind <video> when they should be in front sometimes
2709         https://bugs.webkit.org/show_bug.cgi?id=29314
2710         
2711         r45598 added logic that tests for overlap with <video> to determine when to throw
2712         a layer into compositing mode. That logic was incorrect in some cases, and this patch
2713         fixes it. When testing overlap, the layer needs to be composited iff some previous layer
2714         is composited (which adds a rect to the overlay map), and there is overlap.
2715
2716         Test: compositing/geometry/video-opacity-overlay.html
2717
2718         * rendering/RenderLayerCompositor.cpp:
2719         (WebCore::CompositingState::CompositingState):
2720         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
2721
2722 2009-09-17  Avi Drissman  <avi@google.com>
2723
2724         Reviewed by Darin Fisher.
2725
2726         Update the Chromium Mac theming files (RenderTheme and Theme) to be
2727         up-to-date.
2728         
2729         https://bugs.webkit.org/show_bug.cgi?id=29243
2730         http://crbug.com/19604
2731
2732         Covered by existing tests.
2733
2734         * WebCore.gypi:
2735         * platform/chromium/ThemeChromiumMac.h: Added.
2736         (WebCore::ThemeChromiumMac::ThemeChromiumMac):
2737         (WebCore::ThemeChromiumMac::~ThemeChromiumMac):
2738         (WebCore::ThemeChromiumMac::controlRequiresPreWhiteSpace):
2739         * platform/chromium/ThemeChromiumMac.mm: Added.
2740         (WebCore::):
2741         (WebCore::platformTheme):
2742         (WebCore::controlSizeForFont):
2743         (WebCore::sizeFromFont):
2744         (WebCore::setControlSize):
2745         (WebCore::updateStates):
2746         (WebCore::inflateRect):
2747         (WebCore::checkboxSizes):
2748         (WebCore::checkboxMargins):
2749         (WebCore::checkboxSize):
2750         (WebCore::checkbox):
2751         (WebCore::paintCheckbox):
2752         (WebCore::radioSizes):
2753         (WebCore::radioMargins):
2754         (WebCore::radioSize):
2755         (WebCore::radio):
2756         (WebCore::paintRadio):
2757         (WebCore::buttonSizes):
2758         (WebCore::buttonMargins):
2759         (WebCore::button):
2760         (WebCore::paintButton):
2761         (WebCore::ThemeChromiumMac::baselinePositionAdjustment):
2762         (WebCore::ThemeChromiumMac::controlFont):
2763         (WebCore::ThemeChromiumMac::controlSize):
2764         (WebCore::ThemeChromiumMac::minimumControlSize):
2765         (WebCore::ThemeChromiumMac::controlBorder):
2766         (WebCore::ThemeChromiumMac::controlPadding):
2767         (WebCore::ThemeChromiumMac::inflateControlPaintRect):
2768         (WebCore::ThemeChromiumMac::paint):
2769         * platform/graphics/FloatPoint.h:
2770         * platform/graphics/FloatRect.h:
2771         * platform/graphics/FloatSize.h:
2772         * platform/graphics/IntRect.h:
2773         * rendering/RenderThemeChromiumMac.h:
2774         (WebCore::RenderThemeChromiumMac::supportsControlTints):
2775         (WebCore::RenderThemeChromiumMac::scrollbarControlSizeForPart):
2776         (WebCore::RenderThemeChromiumMac::supportsSelectionForegroundColors):
2777         * rendering/RenderThemeChromiumMac.mm:
2778         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
2779         (-[RTCMFlippedView isFlipped]):
2780         (-[RTCMFlippedView currentEditor]):
2781         (WebCore::):
2782         (WebCore::FlippedView):
2783         (WebCore::RenderTheme::themeForPage):
2784         (WebCore::RenderThemeChromiumMac::platformActiveListBoxSelectionForegroundColor):
2785         (WebCore::RenderThemeChromiumMac::platformInactiveListBoxSelectionForegroundColor):
2786         (WebCore::RenderThemeChromiumMac::platformInactiveListBoxSelectionBackgroundColor):
2787         (WebCore::RenderThemeChromiumMac::systemFont):
2788         (WebCore::convertNSColorToColor):
2789         (WebCore::menuBackgroundColor):
2790         (WebCore::RenderThemeChromiumMac::systemColor):
2791         (WebCore::RenderThemeChromiumMac::isControlStyled):
2792         (WebCore::RenderThemeChromiumMac::adjustRepaintRect):
2793         (WebCore::RenderThemeChromiumMac::inflateRect):
2794         (WebCore::RenderThemeChromiumMac::convertToPaintingRect):
2795         (WebCore::RenderThemeChromiumMac::setFontFromControlSize):
2796         (WebCore::RenderThemeChromiumMac::paintTextField):
2797         (WebCore::RenderThemeChromiumMac::paintCapsLockIndicator):
2798         (WebCore::RenderThemeChromiumMac::paintTextArea):
2799         (WebCore::RenderThemeChromiumMac::paintMenuList):
2800         (WebCore::TopGradientInterpolate):
2801         (WebCore::BottomGradientInterpolate):
2802         (WebCore::MainGradientInterpolate):
2803         (WebCore::TrackGradientInterpolate):
2804         (WebCore::RenderThemeChromiumMac::paintMenuListButtonGradients):
2805         (WebCore::RenderThemeChromiumMac::paintMenuListButton):
2806         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
2807         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
2808         (WebCore::RenderThemeChromiumMac::popupInternalPaddingTop):
2809         (WebCore::RenderThemeChromiumMac::popupInternalPaddingBottom):
2810         (WebCore::RenderThemeChromiumMac::adjustMenuListButtonStyle):
2811         (WebCore::RenderThemeChromiumMac::adjustSliderTrackStyle):
2812         (WebCore::RenderThemeChromiumMac::adjustSliderThumbStyle):
2813         (WebCore::RenderThemeChromiumMac::paintSliderThumb):
2814         (WebCore::RenderThemeChromiumMac::paintSearchField):
2815         (WebCore::RenderThemeChromiumMac::setSearchCellState):
2816         (WebCore::RenderThemeChromiumMac::adjustSearchFieldStyle):
2817         (WebCore::RenderThemeChromiumMac::paintSearchFieldCancelButton):
2818         (WebCore::RenderThemeChromiumMac::adjustSearchFieldCancelButtonStyle):
2819         (WebCore::RenderThemeChromiumMac::adjustSearchFieldDecorationStyle):
2820         (WebCore::RenderThemeChromiumMac::paintSearchFieldDecoration):
2821         (WebCore::RenderThemeChromiumMac::adjustSearchFieldResultsDecorationStyle):
2822         (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsDecoration):
2823         (WebCore::RenderThemeChromiumMac::adjustSearchFieldResultsButtonStyle):
2824         (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsButton):
2825         (WebCore::mediaControllerTheme):
2826         (WebCore::RenderThemeChromiumMac::adjustSliderThumbSize):
2827         (WebCore::getMediaUIPartStateFlags):
2828         (WebCore::getUnzoomedRectAndAdjustCurrentContext):
2829         (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
2830         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
2831         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
2832         (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton):
2833         (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton):
2834         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
2835         (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):
2836         (WebCore::RenderThemeChromiumMac::paintMediaRewindButton):
2837         (WebCore::RenderThemeChromiumMac::paintMediaReturnToRealtimeButton):
2838         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
2839         (WebCore::RenderThemeChromiumMac::paintMediaCurrentTime):
2840         (WebCore::RenderThemeChromiumMac::paintMediaTimeRemaining):
2841         (WebCore::RenderThemeChromiumMac::extraMediaControlsStyleSheet):
2842
2843 2009-09-16  Daniel Bates  <dbates@webkit.org>
2844
2845         Reviewed by Darin Adler.
2846
2847         https://bugs.webkit.org/show_bug.cgi?id=29306
2848         
2849         Fixes an issue where an attack that contains accented characters can
2850         bypass the XSSAuditor.
2851         
2852         XSSAuditor::decodeURL used the wrong length for the input string. 
2853         When the input string was decoded, the decoded result was truncated.
2854         Hence, XSSAuditor was comparing the source code of the script to the 
2855         truncated input parameters.
2856
2857         Test: http/tests/security/xssAuditor/img-onerror-accented-char.html
2858
2859         * page/XSSAuditor.cpp:
2860         (WebCore::XSSAuditor::decodeURL):
2861
2862 2009-09-16  Brady Eidson  <beidson@apple.com>
2863
2864         Reviewed by Sam Weinig.
2865
2866         Explore allowing pages with unload handlers into the Page Cache
2867         https://bugs.webkit.org/show_bug.cgi?id=29021
2868
2869         No new tests. (All previous tests continue to pass)
2870
2871         * loader/FrameLoader.cpp:
2872         (WebCore::FrameLoader::stopLoading): If the document is in the page cache, don't fire the unload event.
2873
2874 2009-09-16  Adam Barth  <abarth@webkit.org>
2875
2876         Reviewed by Dimitri Glazkov.
2877
2878         [V8] Teach ScheduledAction::execute about isolated worlds
2879         https://bugs.webkit.org/show_bug.cgi?id=27703
2880
2881         We now save a handle to the original context.  We use that handle to
2882         call the timeout in the right context / world.
2883
2884         Tests: http/tests/security/isolatedWorld/window-setTimeout-function.html
2885                http/tests/security/isolatedWorld/window-setTimeout-string.html
2886
2887         * bindings/v8/ScheduledAction.cpp:
2888         (WebCore::ScheduledAction::ScheduledAction):
2889         (WebCore::ScheduledAction::execute):
2890         * bindings/v8/ScheduledAction.h:
2891         (WebCore::ScheduledAction::ScheduledAction):
2892         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2893         (WebCore::V8Custom::WindowSetTimeoutImpl):
2894         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2895         (WebCore::SetTimeoutOrInterval):
2896
2897 2009-09-16  Adam Barth  <abarth@webkit.org>
2898
2899         Reviewed by Dimitri Glazkov.
2900
2901         [V8] Teach ScheduledAction::execute about isolated worlds
2902         https://bugs.webkit.org/show_bug.cgi?id=27703
2903
2904         We now save a handle to the original context.  We use that handle to
2905         call the timeout in the right context / world.
2906
2907         Tests: http/tests/security/isolatedWorld/window-setTimeout-function.html
2908                http/tests/security/isolatedWorld/window-setTimeout-string.html
2909
2910         * bindings/v8/ScheduledAction.cpp:
2911         (WebCore::ScheduledAction::ScheduledAction):
2912         (WebCore::ScheduledAction::execute):
2913         * bindings/v8/ScheduledAction.h:
2914         (WebCore::ScheduledAction::ScheduledAction):
2915         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2916         (WebCore::V8Custom::WindowSetTimeoutImpl):
2917         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2918         (WebCore::SetTimeoutOrInterval):
2919
2920 2009-09-16  Sam Weinig  <sam@webkit.org>
2921
2922         Reviewed by Anders Carlsson.
2923
2924         Add some groups to the xcode project to make the bindings/js/ group
2925         a little nicer.
2926
2927         * WebCore.xcodeproj/project.pbxproj:
2928
2929 2009-09-16  Sam Weinig  <sam@webkit.org>
2930
2931         Reviewed by Anders Carlsson.
2932
2933         Fix for https://bugs.webkit.org/show_bug.cgi?id=29320
2934         JS callback objects should store the global object
2935
2936         This just changes the callback objects to store the global object instead
2937         of the frame. A follow up patch will change them to store the 'current' 
2938         global object instead of the lexical or dynamic.
2939
2940         * DerivedSources.make: Remove unused VoidCallback.
2941         * WebCore.xcodeproj/project.pbxproj: Ditto.
2942         * bindings/js/JSCustomPositionCallback.cpp:
2943         (WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
2944         (WebCore::JSCustomPositionCallback::handleEvent):
2945         * bindings/js/JSCustomPositionCallback.h:
2946         (WebCore::JSCustomPositionCallback::create):
2947         * bindings/js/JSCustomPositionErrorCallback.cpp:
2948         (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
2949         (WebCore::JSCustomPositionErrorCallback::handleEvent):
2950         * bindings/js/JSCustomPositionErrorCallback.h:
2951         (WebCore::JSCustomPositionErrorCallback::create):
2952         * bindings/js/JSCustomSQLStatementCallback.cpp:
2953         (WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
2954         (WebCore::JSCustomSQLStatementCallback::handleEvent):
2955         * bindings/js/JSCustomSQLStatementCallback.h:
2956         (WebCore::JSCustomSQLStatementCallback::create):
2957         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
2958         (WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
2959         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
2960         * bindings/js/JSCustomSQLStatementErrorCallback.h:
2961         (WebCore::JSCustomSQLStatementErrorCallback::create):
2962         * bindings/js/JSCustomSQLTransactionCallback.cpp:
2963         (WebCore::JSCustomSQLTransactionCallback::Data::Data):
2964         (WebCore::JSCustomSQLTransactionCallback::Data::globalObject):
2965         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
2966         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
2967         * bindings/js/JSCustomSQLTransactionCallback.h:
2968         (WebCore::JSCustomSQLTransactionCallback::create):
2969         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
2970         (WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
2971         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
2972         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
2973         (WebCore::JSCustomSQLTransactionErrorCallback::create):
2974         * bindings/js/JSCustomVoidCallback.cpp:
2975         (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
2976         (WebCore::JSCustomVoidCallback::handleEvent):
2977         * bindings/js/JSCustomVoidCallback.h:
2978         (WebCore::JSCustomVoidCallback::create):
2979         * bindings/js/JSDatabaseCustom.cpp:
2980         (WebCore::JSDatabase::changeVersion):
2981         (WebCore::createTransaction):
2982         (WebCore::JSDatabase::transaction):
2983         (WebCore::JSDatabase::readTransaction):
2984         * bindings/js/JSGeolocationCustom.cpp:
2985         (WebCore::createPositionCallback):
2986         (WebCore::createPositionErrorCallback):
2987         (WebCore::JSGeolocation::getCurrentPosition):
2988         (WebCore::JSGeolocation::watchPosition):
2989         * bindings/js/JSSQLTransactionCustom.cpp:
2990         (WebCore::JSSQLTransaction::executeSql):
2991
2992 2009-09-15  Kent Tamura  <tkent@chromium.org>
2993
2994         Reviewed by Eric Seidel.
2995
2996         <input maxlength=> should restrict only values specified by users.
2997         https://bugs.webkit.org/show_bug.cgi?id=21271
2998
2999         * dom/InputElement.cpp:
3000         (WebCore::InputElement::setValueFromRenderer):
3001         (WebCore::InputElement::sanitizeValue):
3002         (WebCore::InputElement::sanitizeUserInputValue): Rename from constrainValue().
3003         (WebCore::InputElement::handleBeforeTextInsertedEvent):
3004         (WebCore::InputElement::updateValueIfNeeded):
3005         * dom/InputElement.h:
3006         * html/HTMLInputElement.cpp:
3007         (WebCore::HTMLInputElement::setInputType):
3008         (WebCore::HTMLInputElement::value):
3009         (WebCore::HTMLInputElement::setValue):
3010         (WebCore::HTMLInputElement::sanitizeValue):
3011         * html/HTMLInputElement.h:
3012         * rendering/RenderTextControlSingleLine.cpp:
3013         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
3014         * wml/WMLInputElement.cpp:
3015         (WebCore::WMLInputElement::constrainValue):
3016         * wml/WMLInputElement.h:
3017         (WebCore::WMLInputElement::sanitizeValue):
3018
3019 2009-09-16  Enrica Casucci  <enrica@apple.com>
3020
3021         Reviewed by Eric Seidel.
3022
3023         Reorganizing helper functions in htmlediting.h to group them by type of object they return/operate upon.
3024         https://bugs.webkit.org/show_bug.cgi?id=29319
3025
3026         * editing/IndentOutdentCommand.cpp:
3027         Removed implementation of isAtUnsplittableElement.
3028
3029         * editing/IndentOutdentCommand.h:
3030         Removed member function isAtUnsplittableElement, because it was not class specific and belonged logically among the helper functions.
3031
3032         * editing/htmlediting.cpp:
3033         (WebCore::isAtUnsplittableElement): added. The code was taken from IndentOutdentCommand.
3034
3035         * editing/htmlediting.h:
3036         Reordered functions to group them by type of object returned or operate upon.
3037         Added comments.
3038         Added isAtUnsplittableElement declaration.
3039
3040 2009-09-16  Geoffrey Garen  <ggaren@apple.com>
3041
3042         Reviewed by Sam Weinig and Anders Carlsson.
3043
3044         Removed some vestigial and potentially crashy code that makes consolidating
3045         event listeners hard.
3046
3047         * dom/Node.cpp:
3048         (WebCore::Node::addEventListener): No need to limit when event listeners
3049         can be added. Other EventTargets don't do this.
3050         
3051         Also, check for null when accessing document(). Technically, the JS bindings
3052         do this check for us, but let's not rely on that.
3053
3054 2009-09-16  Anders Carlsson  <andersca@apple.com>
3055
3056         Reviewed by Adam Roben.
3057
3058         <rdar://problem/7155710>
3059         HTML selects on windows cause containing window to become inactive when opened
3060         
3061         Redo the way we handle events when a popup menu is shown, based on
3062         http://blogs.msdn.com/oldnewthing/archive/2004/08/20/217684.aspx
3063         
3064         Since a non-active window can't capture the mouse, we use the owning window 
3065         (the WebView) as the capture window. We then run a recursive message pump that 
3066         forwards all mouse and keyboard events to the popup menu.
3067         
3068         * platform/PopupMenu.h:
3069         * platform/win/PopupMenuWin.cpp:
3070         (WebCore::PopupMenu::PopupMenu):
3071         (WebCore::PopupMenu::show):
3072         (WebCore::PopupMenu::hide):
3073         (WebCore::PopupMenu::wndProc):
3074
3075 2009-09-16  Dan Bernstein  <mitz@apple.com>
3076
3077         Reviewed by Ada Chan.
3078
3079         Speculative fix for
3080         <rdar://problem/6937089> Crashes at RenderWidget::destroy()
3081
3082         * rendering/RenderWidget.cpp:
3083         (WebCore::RenderWidget::destroy): Avoid calling renderArena() if node()
3084         is null. Add two assertions that can help determine how this crash
3085         happens (in particular, whether node() becomes null during destroy() or
3086         it is null before destroy() is called).
3087
3088 2009-09-16  Beth Dakin  <bdakin@apple.com>
3089
3090         Speculative build fix.
3091
3092         * css/CSSStyleSelector.cpp:
3093         (WebCore::CSSStyleSelector::applyProperty):
3094
3095 2009-09-16  Beth Dakin  <bdakin@apple.com>
3096
3097         Reviewed by Darin Adler.
3098
3099         Fix for <rdar://problem/7083741> Implement a CSS extension to 
3100         adjust sub-pixel anti-aliasing for text
3101         -and corresponding-
3102         https://bugs.webkit.org/show_bug.cgi?id=29291
3103
3104         Added tests:
3105         * fast/css/font-smoothing.html: Added.
3106         * fast/css/parsing-webkit-font-smoothing.html: Added.
3107
3108         This patch adds a new CSS property called -webkit-font-smoothing 
3109         that accepts the following as valid input: auto | none | 
3110         antialiased | subpixel-antialiased
3111
3112         Return appropriate computed style for -webkit-font-smoothing
3113         * css/CSSComputedStyleDeclaration.cpp:
3114         (WebCore::):
3115         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3116
3117         Add a case for CSSPropertyWebkitFontSmoothing, and accept valid 
3118         input.
3119         * css/CSSParser.cpp:
3120         (WebCore::CSSParser::parseValue):
3121
3122         Add mappings for FontSmoothing to the right CSS values.
3123         * css/CSSPrimitiveValueMappings.h:
3124         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
3125         (WebCore::CSSPrimitiveValue::operator FontSmoothing):
3126
3127         Add -webkit-font-smoothing
3128         * css/CSSPropertyNames.in:
3129
3130         Set fontSmoothing on the FontDescription.
3131         * css/CSSStyleSelector.cpp:
3132         (WebCore::CSSStyleSelector::applyProperty):
3133
3134         Add antialiased and subpixel-antialiased as possible new CSS 
3135         values.
3136         * css/CSSValueKeywords.in:
3137         Store the font smoothing CSS value in the FontDescription.
3138         * platform/graphics/FontDescription.h:
3139         (WebCore::FontDescription::FontDescription):
3140         (WebCore::FontDescription::fontSmoothing):
3141         (WebCore::FontDescription::setFontSmoothing):
3142         (WebCore::FontDescription::operator==):
3143
3144         Call setShouldAntialias() and setShouldUseSmoothing() appropriately 
3145         based on the CSS fontSmoothing() value.
3146         * platform/graphics/mac/FontMac.mm:
3147         (WebCore::Font::drawGlyphs):
3148         * platform/graphics/win/FontCGWin.cpp:
3149         (WebCore::Font::drawGlyphs):
3150
3151         New function fontSmoothing()
3152         * rendering/style/RenderStyle.h:
3153         (WebCore::InheritedFlags::fontSmoothing):
3154
3155         New enum FontSmoothing.
3156         * rendering/style/RenderStyleConstants.h:
3157         (WebCore::):
3158
3159 2009-09-16  Yury Semikhatsky  <yurys@chromium.org>
3160
3161         Reviewed by Timothy Hatcher.
3162
3163         Remove style property if empty string is entered.
3164
3165         https://bugs.webkit.org/show_bug.cgi?id=29163
3166
3167         * inspector/front-end/ElementsTreeOutline.js:
3168         (WebInspector.ElementsTreeOutline.prototype._onmouseout): fixed null pointer exception
3169         * inspector/front-end/InjectedScript.js:
3170         (InjectedScript.applyStyleText): if styletext to apply is empty it will return an array to confirm the property removal
3171         * inspector/front-end/StylesSidebarPane.js:
3172         (WebInspector.StylePropertyTreeElement.prototype.):
3173         (WebInspector.StylePropertyTreeElement.prototype):
3174
3175 2009-09-16  Yury Semikhatsky  <yurys@chromium.org>
3176
3177         Reviewed by Timothy Hatcher.
3178
3179         Always reset m_implicitShorthand to false after parsing
3180         background-repeat style property otherwise properties
3181         following after it may be erroneously marked as implicit.
3182
3183         https://bugs.webkit.org/show_bug.cgi?id=28972
3184         https://bugs.webkit.org/show_bug.cgi?id=28973
3185
3186         Test: fast/backgrounds/repeat/margin-shorthand.html
3187
3188         * css/CSSParser.cpp:
3189         (WebCore::CSSParser::parseValue):
3190
3191 2009-09-16  Carol Szabo  <carol.szabo@nokia.com>
3192
3193         Reviewed by Alexey Proskuryakov.
3194
3195         Incorrect behavior of XMLHttpRequest::getAllResponseHeaders and
3196         XMLHttpRequest::getResponseHeader in the
3197         HEADERS_RECEIVED readyState.
3198         https://bugs.webkit.org/show_bug.cgi?id=29121
3199
3200         Tests: http/tests/xmlhttprequest/getAllResponseHeaders.html
3201                http/tests/xmlhttprequest/getResponseHeader.html
3202
3203         * xml/XMLHttpRequest.cpp:
3204         (WebCore::XMLHttpRequest::getAllResponseHeaders):
3205         (WebCore::XMLHttpRequest::getResponseHeader):
3206         Changed the minimum valid state from LOADING to HEADERS_RECEIVED.
3207
3208 2009-09-16  Vitaly Repeshko  <vitalyr@chromium.org>
3209
3210         Reviewed by Dimitri Glazkov.
3211
3212         [V8] Fix style violation in V8AbstractEventListener.
3213         https://bugs.webkit.org/show_bug.cgi?id=29303
3214
3215         * bindings/v8/V8AbstractEventListener.h:
3216         (WebCore::V8AbstractEventListener::operator==):
3217
3218 2009-09-16  Patrick Mueller  <Patrick_Mueller@us.ibm.com>
3219
3220         Reviewed by Timothy Hatcher.
3221
3222         Add Watch Expression support to inspector
3223         https://bugs.webkit.org/show_bug.cgi?id=27514
3224
3225         Manual test added.
3226
3227         * English.lproj/localizedStrings.js:
3228         * WebCore.gypi:
3229         * WebCore.vcproj/WebCore.vcproj:
3230         * inspector/front-end/ConsoleView.js:
3231         (WebInspector.ConsoleView.prototype.completions):
3232         (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
3233         (WebInspector.ConsoleView.prototype._enterKeyPressed):
3234         * inspector/front-end/ObjectPropertiesSection.js:
3235         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
3236         (WebInspector.ObjectPropertiesSection.prototype.update):
3237         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
3238         (WebInspector.ObjectPropertiesSection.CompareProperties):
3239         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
3240         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
3241         (WebInspector.ObjectPropertyTreeElement.prototype.update):
3242         * inspector/front-end/ScriptsPanel.js:
3243         (WebInspector.ScriptsPanel):
3244         (WebInspector.ScriptsPanel.prototype.reset):
3245         (WebInspector.ScriptsPanel.prototype._callFrameSelected):
3246         * inspector/front-end/WatchExpressionsSidebarPane.js: Added.
3247         (WebInspector.WatchExpressionsSidebarPane):
3248         (WebInspector.WatchExpressionsSidebarPane.prototype.refreshExpressions):
3249         (WebInspector.WatchExpressionsSection):
3250         (WebInspector.WatchExpressionsSection.prototype.update):
3251         (WebInspector.WatchExpressionsSection.prototype.addExpression):
3252         (WebInspector.WatchExpressionsSection.prototype.updateExpression):
3253         (WebInspector.WatchExpressionsSection.prototype.findAddedTreeElement):
3254         (WebInspector.WatchExpressionsSection.prototype.loadSavedExpressions):
3255         (WebInspector.WatchExpressionsSection.prototype.saveExpressions):
3256         (WebInspector.WatchExpressionsSection.CompareProperties):
3257         (WebInspector.WatchExpressionTreeElement):
3258         (WebInspector.WatchExpressionTreeElement.prototype.update):
3259         (WebInspector.WatchExpressionTreeElement.prototype._deleteButtonClicked):
3260         (WebInspector.WatchExpressionTreeElement.prototype.startEditing):
3261         (WebInspector.WatchExpressionTreeElement.prototype.editingCancelled):
3262         (WebInspector.WatchExpressionTreeElement.prototype.applyExpression):
3263         * inspector/front-end/WebKit.qrc:
3264         * inspector/front-end/inspector.css:
3265         * inspector/front-end/inspector.html:
3266         * manual-tests/inspector/debugger-watch-expressions.html: Added.
3267
3268 2009-09-16  Greg Bolsinga  <bolsinga@apple.com>
3269
3270         Add ENABLE(INSPECTOR)
3271         https://bugs.webkit.org/show_bug.cgi?id=29260
3272
3273         Reviewed by David Kilzer.
3274
3275         No new tests. (No change in default behavior.)
3276
3277         * DerivedSources.make: Use new WebCore.Inspector.exp file if ENABLE_DRAG_SUPPORT.
3278         * WebCore.base.exp: Move Inspector only exports to WebCore.Inspector.exp.
3279         * WebCore.xcodeproj/project.pbxproj: Add WebCore.Inspector.exp.
3280         * bindings/js/JSDOMWindowBase.cpp: Use ENABLE(INSPECTOR) where applicable.
3281         (WebCore::JSDOMWindowBase::supportsProfiling):
3282         * bindings/js/JSInspectedObjectWrapper.cpp: Wrap entire file in ENABLE(INSPECTOR).
3283         * bindings/js/JSInspectorBackendCustom.cpp: Ditto.
3284         * bindings/js/JSInspectorCallbackWrapper.cpp: Ditto.
3285         * bindings/js/ScriptObject.cpp: Use ENABLE(INSPECTOR) where applicable.
3286         * bindings/js/ScriptObject.h: Ditto.
3287         * bindings/js/ScriptObjectQuarantine.cpp: Wrap entire file in ENABLE(INSPECTOR).
3288         * dom/Document.cpp: Use ENABLE(INSPECTOR) where applicable.
3289         (WebCore::Document::recalcStyle):
3290         (WebCore::Document::addMessage):
3291         (WebCore::Document::resourceRetrievedByXMLHttpRequest):
3292         (WebCore::Document::scriptImported):
3293         * dom/Document.h: Ditto.
3294         * dom/Node.cpp: Ditto.
3295         (WebCore::Node::dispatchGenericEvent):
3296         * dom/ScriptExecutionContext.h: Ditto.
3297         (WebCore::):
3298         * html/HTMLDocument.cpp: Ditto.
3299         (WebCore::HTMLDocument::createTokenizer):
3300         * html/HTMLTokenizer.cpp: Ditto.
3301         (WebCore::HTMLTokenizer::write):
3302         * inspector/ConsoleMessage.cpp: Ditto.
3303         (WebCore::ConsoleMessage::ConsoleMessage):
3304         (WebCore::ConsoleMessage::isEqual):
3305         * inspector/ConsoleMessage.h: Ditto.
3306         * inspector/DOMDispatchTimelineItem.cpp: Wrap entire file in ENABLE(INSPECTOR).
3307         * inspector/InspectorBackend.cpp: Ditto.
3308         * inspector/InspectorController.cpp: Ditto.
3309         * inspector/InspectorDOMAgent.cpp: Ditto.
3310         * inspector/InspectorDOMStorageResource.cpp: Ditto.
3311         * inspector/InspectorDatabaseResource.cpp: Ditto.
3312         * inspector/InspectorFrontend.cpp: Ditto.
3313         * inspector/InspectorResource.cpp: Ditto.
3314         * inspector/InspectorTimelineAgent.cpp: Ditto.
3315         * inspector/TimelineItem.cpp: Ditto.
3316         * loader/FrameLoader.cpp: Use ENABLE(INSPECTOR) where applicable.
3317         (WebCore::FrameLoader::detachFromParent):
3318         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
3319         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
3320         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
3321         (WebCore::FrameLoader::dispatchDidCommitLoad):
3322         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest):
3323         (WebCore::FrameLoader::dispatchWillSendRequest):
3324         (WebCore::FrameLoader::dispatchDidReceiveResponse):
3325         (WebCore::FrameLoader::dispatchDidReceiveContentLength):
3326         (WebCore::FrameLoader::dispatchDidFinishLoading):
3327         * page/Chrome.cpp: Ditto.
3328         (WebCore::Chrome::mouseDidMoveOverElement):
3329         * page/Console.cpp: Ditto.
3330         (WebCore::Console::addMessage):
3331         (WebCore::Console::count):
3332         (WebCore::Console::profile):
3333         (WebCore::Console::profileEnd):
3334         (WebCore::Console::time):
3335         (WebCore::Console::timeEnd):
3336         (WebCore::Console::group):
3337         (WebCore::Console::groupEnd):
3338         * page/ContextMenuController.cpp: Ditto.
3339         (WebCore::ContextMenuController::handleContextMenuEvent):
3340         (WebCore::ContextMenuController::contextMenuItemSelected):
3341         * page/DOMWindow.cpp: Ditto.
3342         (WebCore::DOMWindow::sessionStorage):
3343         (WebCore::DOMWindow::localStorage):
3344         * page/EventHandler.cpp: Ditto.
3345         (WebCore::EventHandler::handleMousePressEvent):
3346         * page/FrameView.cpp: Ditto.
3347         (WebCore::FrameView::layout):
3348         (WebCore::FrameView::paintContents):
3349         * page/FrameView.h: Ditto.
3350         * page/Page.cpp: Ditto.
3351         (WebCore::Page::Page):
3352         (WebCore::Page::~Page):
3353         * page/Page.h: Ditto.
3354         * platform/ContextMenu.cpp: Ditto.
3355         (WebCore::ContextMenu::checkOrEnableIfNeeded):
3356         * platform/ContextMenuItem.h: Ditto.
3357         (WebCore::):
3358         * storage/Database.cpp: Ditto.
3359         (WebCore::Database::openDatabase):
3360         * workers/WorkerContext.cpp: Ditto.
3361         (WebCore::WorkerContext::importScripts):
3362         * xml/XMLHttpRequest.cpp: Ditto.
3363         (WebCore::XMLHttpRequest::didFinishLoading):
3364
3365 2009-09-16  Greg Bolsinga  <bolsinga@apple.com>
3366
3367         Add ENABLE(CONTEXT_MENUS)
3368         https://bugs.webkit.org/show_bug.cgi?id=29225
3369
3370         Reviewed by David Kilzer.
3371
3372         No new tests. (No change in default behavior.)
3373
3374         * DerivedSources.make: Use new WebCore.ContextMenus.exp file if ENABLE_CONTEXT_MENUS.
3375         * WebCore.base.exp: Move ContextMenu only exports to WebCore.ContextMenus.exp.
3376         * WebCore.xcodeproj/project.pbxproj: Add WebCore.ContextMenus.exp.
3377         * dom/Node.cpp: Use ENABLE(CONTEXT_MENUS) where applicable.
3378         (WebCore::Node::defaultEventHandler):
3379         * loader/EmptyClients.h: Ditto.
3380         * page/ContextMenuController.cpp: Wrap entire file in ENABLE(CONTEXT_MENUS).
3381         * page/EventHandler.cpp: Use ENABLE(CONTEXT_MENUS) where applicable.
3382         * page/EventHandler.h: Ditto.
3383         * page/Page.cpp: Ditto.
3384         (WebCore::Page::Page):
3385         * page/Page.h: Ditto.
3386         * page/mac/EventHandlerMac.mm: Ditto.
3387         * page/mac/WebCoreViewFactory.h: Ditto.
3388         * platform/ContextMenu.cpp: Wrap entire file in ENABLE(CONTEXT_MENUS).
3389         * platform/LocalizedStrings.h: Use ENABLE(CONTEXT_MENUS) where applicable.
3390         * platform/mac/ContextMenuItemMac.mm: Wrap entire file in ENABLE(CONTEXT_MENUS).
3391         * platform/mac/ContextMenuMac.mm: Ditto.
3392         * platform/mac/LocalizedStringsMac.mm: Use ENABLE(CONTEXT_MENUS) where applicable.
3393         * svg/graphics/SVGImage.cpp: Ditto.
3394         (WebCore::SVGImage::dataChanged):
3395
3396 2009-09-16  Dave Hyatt  <hyatt@apple.com>
3397
3398         Reviewed by Adam Roben.
3399
3400         Clean up invalidation for repainting.  Hoist the dirty rect intersection test in ScrollViewMac up
3401         into ScrollView so that all platforms do it.
3402         
3403         Patch deferred repaints in FrameView::repaintContentRectangle to only add the visible portion of
3404         the rectangle for repainting.
3405
3406         * page/FrameView.cpp:
3407         (WebCore::FrameView::repaintContentRectangle):
3408         * platform/ScrollView.cpp:
3409         (WebCore::ScrollView::repaintContentRectangle):
3410         * platform/mac/ScrollViewMac.mm:
3411         (WebCore::ScrollView::platformRepaintContentRectangle):
3412
3413 2009-09-16  Greg Bolsinga  <bolsinga@apple.com>
3414
3415         Add ENABLE(DRAG_SUPPORT)
3416         https://bugs.webkit.org/show_bug.cgi?id=29233
3417
3418         Reviewed by David Kilzer.
3419
3420         No new tests. (No change in default behavior.)
3421
3422         * DerivedSources.make: Use new WebCore.DragSupport.exp file if ENABLE_DRAG_SUPPORT.
3423         * WebCore.base.exp: Move Drag Support only exports to WebCore.DragSupport.exp.
3424         * WebCore.xcodeproj/project.pbxproj: Add WebCore.DragSupport.exp.
3425         * dom/Clipboard.h: Use ENABLE(DRAG_SUPPORT) where applicable.
3426         * loader/EmptyClients.h: Ditto.
3427         * page/DragController.cpp: Wrap entire file in ENABLE(DRAG_SUPPORT).
3428         * page/EventHandler.cpp: Use ENABLE(DRAG_SUPPORT) where applicable.
3429         (WebCore::EventHandler::EventHandler):
3430         (WebCore::EventHandler::clear):
3431         (WebCore::EventHandler::handleMousePressEvent):
3432         (WebCore::EventHandler::handleMouseReleaseEvent):
3433         (WebCore::EventHandler::handleMouseMoveEvent):
3434         * page/EventHandler.h: Ditto.
3435         * page/Page.cpp: Ditto.
3436         (WebCore::Page::Page):
3437         * page/Page.h: Ditto.
3438         * page/mac/DragControllerMac.mm: Wrap entire file in ENABLE(DRAG_SUPPORT).
3439         * page/mac/EventHandlerMac.mm: Use ENABLE(DRAG_SUPPORT) where applicable.
3440         (WebCore::EventHandler::passSubframeEventToSubframe):
3441         * platform/DragData.cpp: Wrap entire file in ENABLE(DRAG_SUPPORT).
3442         * platform/DragImage.cpp: Wrap entire file in ENABLE(DRAG_SUPPORT).
3443         * platform/mac/ClipboardMac.h: Use ENABLE(DRAG_SUPPORT) where applicable.
3444         * platform/mac/ClipboardMac.mm: Ditto.
3445         * platform/mac/DragDataMac.mm: Wrap entire file in ENABLE(DRAG_SUPPORT).
3446         * platform/mac/DragImageMac.mm: Wrap entire file in ENABLE(DRAG_SUPPORT).
3447         * rendering/RenderLayer.cpp: Use ENABLE(DRAG_SUPPORT) where applicable.
3448         (WebCore::RenderLayer::autoscroll):
3449         * rendering/RenderObject.cpp: Ditto.
3450         * rendering/RenderObject.h: Ditto.
3451         * svg/graphics/SVGImage.cpp: Ditto.
3452         (WebCore::SVGImage::dataChanged):
3453
3454 2009-09-16  Kevin Ollivier  <kevino@theolliviers.com>
3455
3456         wxMSW build fix after adding support for high resolution times in Win.
3457
3458         * page/Settings.cpp:
3459         * page/Settings.h:
3460
3461 2009-09-16  Vitaly Repeshko  <vitalyr@chromium.org>
3462
3463         Reviewed by Dimitri Glazkov.
3464
3465         [V8] Added operator==() to event listeners. This fixes V8 bindings
3466         build broken in http://trac.webkit.org/changeset/48402.
3467         https://bugs.webkit.org/show_bug.cgi?id=29298
3468
3469         * bindings/v8/V8AbstractEventListener.cpp:
3470         (WebCore::V8AbstractEventListener::V8AbstractEventListener): Now
3471         uses JSEventListenerType.
3472         * bindings/v8/V8AbstractEventListener.h:
3473         (WebCore::V8AbstractEventListener::operator==): Only compares
3474         pointers since we create at most one wrapper for a JS object.
3475
3476 2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3477
3478         Reviewed by Xan Lopez.
3479
3480         [GTK] Crash when visiting http://flipper.googlelabs.com/
3481         https://bugs.webkit.org/show_bug.cgi?id=29293
3482
3483         Check type for being null or empty before looking it up in the
3484         hash of supported types.
3485
3486         Tested by http/tests/loading/redirect-with-no-location-crash.html
3487
3488         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3489         (WebCore::MediaPlayerPrivate::supportsType):
3490
3491 2009-09-15  Geoffrey Garen  <ggaren@apple.com>
3492
3493         Reviewed by Sam Weinig.
3494         
3495         Removed the notion of "disconnected nodes with event listeners" because
3496         it was vestigial. The reference cycle it tried to solve was solved another
3497         way in https://bugs.webkit.org/show_bug.cgi?id=21260.
3498
3499         * dom/Document.cpp:
3500         (WebCore::Document::removeAllEventListeners):
3501         * dom/Document.h:
3502         * dom/Node.cpp:
3503         (WebCore::Node::~Node):
3504         (WebCore::Node::insertedIntoDocument):
3505         (WebCore::Node::removedFromDocument):
3506         (WebCore::Node::willMoveToNewOwnerDocument):
3507         (WebCore::Node::didMoveToNewOwnerDocument):
3508         (WebCore::Node::addEventListener):
3509         (WebCore::Node::removeEventListener):
3510         (WebCore::Node::clearAttributeEventListener):
3511
3512 2009-09-15  Chris Fleizach  <cfleizach@apple.com>
3513
3514         Reviewed by Beth Dakin.
3515
3516         WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
3517         https://bugs.webkit.org/show_bug.cgi?id=28841
3518
3519         Allow certain ARIA roles to change value with AXIncrement and AXDecrement. 
3520         Consolidate increment/decrement/changeValue methods. 
3521
3522         Test: accessibility/aria-slider-value-change.html
3523
3524         * accessibility/AccessibilityObject.cpp:
3525         * accessibility/AccessibilityRenderObject.cpp:
3526         (WebCore::AccessibilityRenderObject::increment):
3527         (WebCore::AccessibilityRenderObject::decrement):
3528         (WebCore::AccessibilityRenderObject::changeValueByPercent):
3529         (WebCore::AccessibilityRenderObject::setValue):
3530         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
3531         * accessibility/AccessibilityRenderObject.h:
3532         * accessibility/AccessibilitySlider.cpp:
3533         * accessibility/AccessibilitySlider.h:
3534         * dom/Element.cpp:
3535         (WebCore::Element::updateAfterAttributeChanged):
3536
3537 2009-09-15  Geoffrey Garen  <ggaren@apple.com>
3538
3539         Reviewed by Sam Weinig.
3540
3541         Removed the jsEventListeners set from JSDOMGlobalObject, to simplify
3542         creation and destruction of JSDOMGlobalObject and event listeners.
3543         
3544         Added an abstract operator==() to EventListener, to replace the
3545         jsEventListeners set's role in determining if two event listeners are
3546         equal from the DOM's perspective.
3547         
3548         Added a type field to EventListener, and casting operations, to support
3549         operator==() and other abstract operations.
3550
3551         * WebCore.xcodeproj/project.pbxproj:
3552         * bindings/js/JSAbstractWorkerCustom.cpp:
3553         (WebCore::JSAbstractWorker::addEventListener):
3554         (WebCore::JSAbstractWorker::removeEventListener):
3555         * bindings/js/JSDOMApplicationCacheCustom.cpp:
3556         (WebCore::JSDOMApplicationCache::addEventListener):
3557         (WebCore::JSDOMApplicationCache::removeEventListener):
3558         * bindings/js/JSDOMGlobalObject.cpp:
3559         * bindings/js/JSDOMGlobalObject.h:
3560         * bindings/js/JSDOMWindowCustom.cpp:
3561         (WebCore::JSDOMWindow::addEventListener):
3562         (WebCore::JSDOMWindow::removeEventListener):
3563         * bindings/js/JSDesktopNotificationsCustom.cpp:
3564         (WebCore::JSNotification::addEventListener):
3565         (WebCore::):
3566         * bindings/js/JSEventListener.cpp:
3567         (WebCore::JSEventListener::JSEventListener):
3568         (WebCore::JSEventListener::~JSEventListener):
3569         (WebCore::JSEventListener::markJSFunction):
3570         (WebCore::JSEventListener::handleEvent):
3571         (WebCore::JSEventListener::reportError):
3572         (WebCore::JSEventListener::operator==):
3573         * bindings/js/JSEventListener.h:
3574         (WebCore::JSEventListener::cast):
3575         * bindings/js/JSEventSourceCustom.cpp:
3576         (WebCore::JSEventSource::addEventListener):
3577         (WebCore::JSEventSource::removeEventListener):
3578         * bindings/js/JSMessagePortCustom.cpp:
3579         (WebCore::JSMessagePort::addEventListener):
3580         (WebCore::JSMessagePort::removeEventListener):
3581         * bindings/js/JSNodeCustom.cpp:
3582         (WebCore::JSNode::addEventListener):
3583         (WebCore::JSNode::removeEventListener):
3584         * bindings/js/JSSVGElementInstanceCustom.cpp:
3585         (WebCore::JSSVGElementInstance::addEventListener):
3586         (WebCore::JSSVGElementInstance::removeEventListener):
3587         * bindings/js/JSWorkerContextCustom.cpp:
3588         (WebCore::JSWorkerContext::addEventListener):
3589         (WebCore::JSWorkerContext::removeEventListener):
3590         * bindings/js/JSXMLHttpRequestCustom.cpp:
3591         (WebCore::JSXMLHttpRequest::addEventListener):
3592         (WebCore::JSXMLHttpRequest::removeEventListener):
3593         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
3594         (WebCore::JSXMLHttpRequestUpload::addEventListener):
3595         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
3596         * bindings/objc/ObjCEventListener.h:
3597         (WebCore::ObjCEventListener::cast):
3598         * bindings/objc/ObjCEventListener.mm:
3599         (WebCore::ObjCEventListener::ObjCEventListener):
3600         (WebCore::ObjCEventListener::operator==):
3601         * dom/EventListener.h:
3602         (WebCore::EventListener::):
3603         (WebCore::EventListener::type):
3604         (WebCore::EventListener::EventListener):
3605         * dom/MessagePort.cpp:
3606         (WebCore::MessagePort::addEventListener):
3607         (WebCore::MessagePort::removeEventListener):
3608         * dom/Node.cpp:
3609         (WebCore::Node::removeEventListener):
3610         * inspector/InspectorDOMAgent.cpp:
3611         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
3612         (WebCore::InspectorDOMAgent::mainFrameDocument):
3613         (WebCore::InspectorDOMAgent::operator==):
3614         * inspector/InspectorDOMAgent.h:
3615         (WebCore::InspectorDOMAgent::cast):
3616         * loader/ImageDocument.cpp:
3617         (WebCore::ImageEventListener::cast):
3618         (WebCore::ImageEventListener::ImageEventListener):
3619         (WebCore::ImageEventListener::operator==):
3620         * loader/appcache/DOMApplicationCache.cpp:
3621         (WebCore::DOMApplicationCache::addEventListener):
3622         (WebCore::DOMApplicationCache::removeEventListener):
3623         * notifications/Notification.cpp:
3624         (WebCore::Notification::removeEventListener):
3625         * page/DOMWindow.cpp:
3626         (WebCore::DOMWindow::removeEventListener):
3627         * page/EventSource.cpp:
3628         (WebCore::EventSource::addEventListener):
3629         (WebCore::EventSource::removeEventListener):
3630         * svg/animation/SVGSMILElement.cpp:
3631         (WebCore::ConditionEventListener::cast):
3632         (WebCore::ConditionEventListener::ConditionEventListener):
3633         (WebCore::ConditionEventListener::operator==):
3634         (WebCore::ConditionEventListener::handleEvent):
3635         * workers/AbstractWorker.cpp:
3636         (WebCore::AbstractWorker::addEventListener):
3637         (WebCore::AbstractWorker::removeEventListener):
3638         * workers/WorkerContext.cpp:
3639         (WebCore::WorkerContext::addEventListener):
3640         (WebCore::WorkerContext::removeEventListener):
3641         * xml/XMLHttpRequest.cpp:
3642         (WebCore::XMLHttpRequest::addEventListener):
3643         (WebCore::XMLHttpRequest::removeEventListener):
3644         * xml/XMLHttpRequestUpload.cpp:
3645         (WebCore::XMLHttpRequestUpload::addEventListener):
3646         (WebCore::XMLHttpRequestUpload::removeEventListener):
3647
3648 2009-09-15  Alex Milowski  <alex@milowski.com>
3649
3650         Reviewed by Tor Arne Vestbø.
3651
3652         Added ENABLE_MATHML to feature defines
3653
3654         * Configurations/FeatureDefines.xcconfig:
3655
3656 2009-09-14  Andrew Richards  <randrew@gmail.com>
3657
3658         Reviewed by Sam Weinig.
3659
3660         Document.elementFromPoint() and Document.caretRangeFromPoint() erroneously returning null at p