7f2a94db9bbadb3435c3a5461cca46a389de67d4
[WebKit-https.git] / WebCore / ChangeLog
1 2009-09-19  Adam Barth  <abarth@webkit.org>
2
3         Reviewed by Oliver Hunt.
4
5         Canvas drawn with data URL image raises SECURITY_ERR when toDataUrl() called.
6         https://bugs.webkit.org/show_bug.cgi?id=29305
7
8         We need to special-case data URLs when tainting a canvas because we
9         treat data URLs has having no security origin, unlike other
10         browsers.  The reason we do this is to help sites avoid XSS via data
11         URLs, but that consideration doesn't apply to canvas taint.
12
13         Also, we were previously incorrectly taking document.domain state
14         into account when tainting canvas.
15
16         Tests: http/tests/security/canvas-remote-read-data-url-image.html
17                http/tests/security/canvas-remote-read-data-url-svg-image.html
18                http/tests/security/canvas-remote-read-remote-image-document-domain.html
19
20         * html/canvas/CanvasRenderingContext2D.cpp:
21         (WebCore::CanvasRenderingContext2D::checkOrigin):
22         (WebCore::CanvasRenderingContext2D::createPattern):
23         * page/SecurityOrigin.cpp:
24         (WebCore::SecurityOrigin::taintsCanvas):
25         * page/SecurityOrigin.h:
26
27 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
28
29         Fix stylistic issue raised in code review for previous commit.
30
31         * rendering/RenderLayerBacking.cpp:
32         (WebCore::hasNonZeroTransformOrigin):
33
34 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
35
36         Reviewed by Dan Bernstein.
37
38         Element is misplaced during opacity transition with certain configuration of transform-origin and clipping
39         https://bugs.webkit.org/show_bug.cgi?id=29495
40         
41         If an element has zero size, but has a transform origin with absolute values,
42         then the transform origin would not be applied because it is implemented via
43         anchorPoint, which is expressed as a fraction of the layer size.
44         
45         Work around this by artificially inflating the size of the backing store when we need to.
46
47         Test: compositing/geometry/transfrom-origin-on-zero-size-layer.html
48
49         * rendering/RenderLayerBacking.h:
50         * rendering/RenderLayerBacking.cpp:
51         (WebCore::RenderLayerBacking::RenderLayerBacking):
52         Init m_artificiallyInflatedBounds to false.
53         
54         (WebCore::hasNonZeroTransformOrigin):
55         Utility function that describes whether the transform-origin contains non-percentage
56         x or y offsets.
57         
58         (WebCore::RenderLayerBacking::updateCompositedBounds):
59         New wrapper method around setCompositedBounds() that applies the size inflation
60         when necessary, setting the m_artificiallyInflatedBounds as appropriate.
61         
62         (WebCore::RenderLayerBacking::updateAfterLayout): Call updateCompositedBounds().
63         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Ditto
64         
65         * rendering/RenderLayerCompositor.cpp:
66         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Ditto
67         (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): Ditto
68
69 2009-09-18  Antti Koivisto  <antti@apple.com>
70
71         Reviewed by Maciej Stachowiak.
72
73         https://bugs.webkit.org/show_bug.cgi?id=29512
74         Don't recalculate style when restoring from the page cache
75
76         FrameLoaderClient::forceLayout() also forces style recalc. Instead call FrameView::forceLayout() 
77         directly to update the scrollbars while keeping the existing style.
78         
79         Makes back/forward really fast on complex pages (in cases where page cache works).
80
81         * loader/FrameLoader.cpp:
82         (WebCore::FrameLoader::commitProvisionalLoad):
83
84 2009-09-18  Oliver Hunt  <oliver@apple.com>
85
86         Reviewed by Geoff Garen.
87
88         Implement ES5 Object.defineProperty function
89         https://bugs.webkit.org/show_bug.cgi?id=29503
90
91         Override defineOwnProperty on JSDOMWindowShell to forward appropriately,
92         and then override defineOwnProperty on JSDOMWindow to disallow cross origin
93         defineOwnProperty usage.  We also override defineOwnProperty on QuarantinedObjectWrapper
94         to ensure correct wrapping semantics of quarantined objects.
95
96         One major caveat in this patch is that it currently disallows the use
97         of Object.defineProperty on DOMObjects other than the window due to
98         the significant work involved in correctly propagating attributes and
99         ensuring correct semantics on dom objects.
100
101         Tests: fast/js/Object-defineProperty.html
102                http/tests/security/xss-DENIED-defineProperty.html
103
104         * bindings/js/JSDOMBinding.cpp:
105         (WebCore::DOMObject::defineOwnProperty):
106         * bindings/js/JSDOMBinding.h:
107         * bindings/js/JSDOMWindowCustom.cpp:
108         (WebCore::JSDOMWindow::defineGetter):
109         (WebCore::JSDOMWindow::defineSetter):
110         (WebCore::JSDOMWindow::defineOwnProperty):
111         * bindings/js/JSDOMWindowShell.cpp:
112         (WebCore::JSDOMWindowShell::defineOwnProperty):
113         (WebCore::JSDOMWindowShell::defineGetter):
114         (WebCore::JSDOMWindowShell::defineSetter):
115         * bindings/js/JSDOMWindowShell.h:
116         * bindings/js/JSLocationCustom.cpp:
117         (WebCore::JSLocation::defineGetter):
118         (WebCore::JSLocationPrototype::defineGetter):
119         * bindings/js/JSQuarantinedObjectWrapper.cpp:
120         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertyDescriptor):
121         (WebCore::JSQuarantinedObjectWrapper::defineOwnProperty):
122         * bindings/js/JSQuarantinedObjectWrapper.h:
123         * bindings/scripts/CodeGeneratorJS.pm:
124
125 2009-09-18  Alexey Proskuryakov  <ap@apple.com>
126
127         Reviewed by Darin Adler.
128
129         https://bugs.webkit.org/show_bug.cgi?id=29510
130         Active DOM objects should be suspended while a modal dialog is displayed
131
132         * manual-tests/js-timers-beneath-modal-dialog.html: Added a test for JS timers.
133
134         * page/PageGroupLoadDeferrer.cpp:
135         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
136         (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
137         Match other platforms, and make Mac also suspend active DOM objects. Since a page that
138         currently displays a modal dialog cannot go into page cache, there is no danger of suspending
139         an object twice.        
140
141 2009-09-18  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>
142
143         Reviewed by Eric Seidel.
144
145         [Qt] Buildfix caused by http://trac.webkit.org/changeset/48513
146         https://bugs.webkit.org/show_bug.cgi?id=29351
147
148         * bridge/qt/qt_instance.h: createRuntimeObject method renamed to newRuntimeObject.
149         * bridge/runtime.h: Visibility of newRuntimeObject method modified to protected.
150
151 2009-09-18  Yury Semikhatsky  <yurys@chromium.org>
152
153         Reviewed by Timothy Hatcher.
154
155         Fix parameter substitutions in console.log().
156
157         https://bugs.webkit.org/show_bug.cgi?id=29366
158
159         * inspector/front-end/ConsoleView.js:
160         (WebInspector.ConsoleMessage.prototype._format):
161         * inspector/front-end/InjectedScript.js:
162         (InjectedScript.getPrototypes):
163         (InjectedScript.CallFrameProxy.prototype._wrapScopeChain):
164         * inspector/front-end/utilities.js:
165         ():
166
167 2009-09-18  Sam Weinig  <sam@webkit.org>
168
169         Reviewed by Geoffrey Garen and Brady Eidson.
170
171         Temporarily remove an assertion that was getting hit when going
172         back to a page in the page cache while a banner in Safari was visible.
173         We should re-enable this once that is fixed. See <rdar://problem/7218118>
174
175         * page/FrameView.cpp:
176         (WebCore::FrameView::scheduleRelayout):
177
178 2009-09-18  Anders Carlsson  <andersca@apple.com>
179
180         Try fixing the build again.
181         
182         * platform/win/PopupMenuWin.cpp:
183         (WebCore::PopupMenu::wndProc):
184
185 2009-09-18  Anders Carlsson  <andersca@apple.com>
186
187         Fix windows build.
188         
189         * platform/win/PopupMenuWin.cpp:
190
191 2009-09-18  Sam Weinig  <sam@webkit.org>
192
193         Reviewed by Gavin 'BearClaw' Barraclough.
194
195         Convert another callback type object to store the global object
196         instead of the frame.
197
198         * bindings/js/JSCustomXPathNSResolver.cpp:
199         (WebCore::JSCustomXPathNSResolver::create):
200         (WebCore::JSCustomXPathNSResolver::JSCustomXPathNSResolver):
201         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
202         * bindings/js/JSCustomXPathNSResolver.h:
203
204 2009-09-18  Anders Carlsson  <andersca@apple.com>
205
206         Reviewed by Sam Weinig.
207
208         https://bugs.webkit.org/show_bug.cgi?id=29332
209         <rdar://problem/7231652> 
210         REGRESSION (r48446): While a <select> popup menu is open, the
211         rest of the WebView doesn't respond to mouse move events.
212
213         * platform/win/PopupMenuWin.cpp:
214         (WebCore::translatePoint):
215         New helper function that translates a point between HWND coordinates.
216         
217         (WebCore::PopupMenu::show):
218         Protect the PopupMenu if someone removes the <select> in response to a mouse
219         event. Handle WM_HOST_WINDOW_MOUSEMOVE events.
220         
221         (WebCore::PopupMenu::wndProc):
222         in the WM_MOUSEMOVE handler, if the mouse is not over the popup, post a 
223         WM_HOST_WINDOW_MOUSEMOVE event so that the host window (the WebView) gets the
224         mouse move event.
225
226 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
227
228         Reviewed by Dave Hyatt.
229
230         Compositing layers are incorrectly positioned after scrolling with position:fixed
231         https://bugs.webkit.org/show_bug.cgi?id=29262
232         
233         When scrolling a page with compositing layers inside a position:fixed element,
234         we need to update the compositing layer positions when the scroll position changes.
235
236         Test: compositing/geometry/fixed-position.html
237
238         * WebCore.base.exp:
239         Export FrameView::scrollPositionChanged()
240         
241         * page/FrameView.h:
242         * page/FrameView.cpp:
243         (WebCore::FrameView::scrollPositionChanged):
244         New method that sends the scroll event, and updates compositing layers positions if necessary.
245
246 2009-09-18  Simon Fraser  <simon.fraser@apple.com>
247
248         Reviewed by Dave Hyatt.
249
250         Transformed elements inside position:fixed container are clipped incorrectly
251         https://bugs.webkit.org/show_bug.cgi?id=29346
252         
253         Fix clipping and hit testing on transformed elements inside a position:fixed element.
254         Previously, the code used the overflowClipRect of the parent clip rects, but
255         this is not correct for fixed postion elements. Instead, share code that is
256         already present in calculateRects() to get the correct rect.
257
258         Test: fast/overflow/position-fixed-transform-clipping.html
259
260         * rendering/RenderLayer.h:
261         * rendering/RenderLayer.cpp:
262         (WebCore::RenderLayer::paintLayer):
263         (WebCore::RenderLayer::hitTestLayer):
264         Call the new backgroundClipRect() to get the correct clipRect.
265         
266         (WebCore::RenderLayer::backgroundClipRect):
267         New method, factored out of calculateRects(), that computes the clip rect,
268         doing the right thing for fixed position elements.
269         
270         (WebCore::RenderLayer::calculateRects):
271         Call the new backgroundClipRect() method.
272         
273 2009-09-18  Dan Bernstein  <mitz@apple.com>
274
275         Reviewed by Darin Adler.
276
277         Fix <rdar://problem/7050773> REGRESSION (r40098) Crash at
278         WebCore::RenderBlock::layoutBlock()
279         https://bugs.webkit.org/show_bug.cgi?id=29498
280
281         Test: accessibility/nested-layout-crash.html
282
283         * accessibility/AccessibilityRenderObject.cpp:
284         (WebCore::AccessibilityRenderObject::updateBackingStore): Changed to
285             call Document::updateLayoutIgnorePendingStylesheets() instead of
286             calling RenderObject::layoutIfNeeded(). The latter requires that
287             there be no pending style recalc, which allows methods that call
288             Document::updateLayout() to be called during layout without risking
289             re-entry into layout.
290         * accessibility/mac/AccessibilityObjectWrapper.mm:
291         (-[AccessibilityObjectWrapper accessibilityActionNames]): Null-check
292             m_object after calling updateBackingStore(), since style recalc may
293             destroy the renderer, which destroys the accessibility object and
294             detaches it from the wrapper.
295         (-[AccessibilityObjectWrapper accessibilityAttributeNames]): Ditto.
296         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): Ditto.
297         (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]): Ditto.
298         (-[AccessibilityObjectWrapper accessibilityHitTest:]): Ditto.
299         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
300             Ditto.
301         (-[AccessibilityObjectWrapper accessibilityIsIgnored]): Ditto.
302         (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
303              Ditto.
304         (-[AccessibilityObjectWrapper accessibilityPerformPressAction]): Ditto.
305         (-[AccessibilityObjectWrapper accessibilityPerformIncrementAction]):
306             Ditto.
307         (-[AccessibilityObjectWrapper accessibilityPerformDecrementAction]):
308             Ditto.
309         (-[AccessibilityObjectWrapper accessibilityPerformAction:]): Ditto.
310         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
311             Ditto.
312         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
313             Ditto.
314         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]): Ditto.
315         (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
316             Ditto.
317         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
318             Ditto.
319
320 2009-09-18  Fumitoshi Ukai  <ukai@chromium.org>
321
322         Reviewed by Simon Hausmann.
323
324         Update Qt build system for Web Socket.
325         https://bugs.webkit.org/show_bug.cgi?id=29270
326
327         * WebCore.pro:
328         * platform/network/qt/SocketStreamError.h: Added.
329         * platform/network/qt/SocketStreamHandle.h: Added.
330         * platform/network/qt/SocketStreamHandleSoup.cpp: Added.
331
332 2009-09-18  Eric Carlson  <eric.carlson@apple.com>
333
334         Reviewed by Darin Adler.
335
336         NULL check HTMLMediaElement::m_playedTimeRanges.
337         Fix for https://bugs.webkit.org/show_bug.cgi?id=29494
338
339         * html/HTMLMediaElement.cpp:
340         (WebCore::HTMLMediaElement::addPlayedRange): New. Create m_playedTimeRanges if
341         necessary, add range specified.
342         (WebCore::HTMLMediaElement::seek): Use addPlayedRange. 
343         (WebCore::HTMLMediaElement::played): Use addPlayedRange. Change time comparison 
344         to be more readable.
345         (WebCore::HTMLMediaElement::updatePlayState): Ditto.
346         * html/HTMLMediaElement.h:
347
348 2009-09-18  Sam Weinig  <sam@webkit.org>
349
350         Reviewed by Adele Peterson.
351
352         Follow up fix for https://bugs.webkit.org/show_bug.cgi?id=29276
353         REGRESSION(r48334): WebKit crashes on file select by drag
354
355         Don't use Document.elementFromPoint since it returns null if the point
356         is outside the viewport.  Instead, just hit test ourselves.
357
358         Test: fast/events/drag-file-crash.html
359
360         * page/DragController.cpp:
361         (WebCore::elementUnderMouse):
362         (WebCore::DragController::tryDocumentDrag):
363         (WebCore::DragController::concludeEditDrag):
364
365 2009-09-18  Darin Adler  <darin@apple.com>
366
367         Reviewed by Sam Weinig.
368
369         Each wrapped Objective-C object should use a single RuntimeObjectImp
370         https://bugs.webkit.org/show_bug.cgi?id=29351
371         rdar://problem/7142294
372
373         * WebCore.base.exp: Added a newly-needed exported symbol.
374
375         * bindings/objc/DOMInternal.h: Eliminated unused
376         createWrapperCacheWithIntegerKeys; it has not been needed since the
377         RGBColor wrappers were reworked.
378         * bindings/objc/DOMInternal.mm: Ditto.
379
380         * bridge/objc/objc_instance.h: Made the create function non-inline.
381         * bridge/objc/objc_instance.mm:
382         (createInstanceWrapperCache): Added. Creates an appropriate map table.
383         (ObjcInstance::create): Moved here from header. Uses NSMapGet and
384         NSMapInsert to cache the instance in a map table.
385         (ObjcInstance::~ObjcInstance): Added a call to NSMapRemove to remove
386         the instance from the map table.
387
388         * bridge/qt/qt_instance.cpp:
389         (JSC::Bindings::QtInstance::~QtInstance): Remove unneeded code to remove
390         the instance from cachedObjects, which no longer exists.
391         (JSC::Bindings::QtInstance::newRuntimeObject): Renamed to overload new
392         bottleneck. Caching is now handled by the base class.
393
394         * bridge/runtime.cpp:
395         (JSC::Bindings::Instance::Instance): Initialize m_runtimeObject to 0.
396         (JSC::Bindings::Instance::~Instance): Assert m_runtimeObject is 0.
397         (JSC::Bindings::Instance::createRuntimeObject): Use m_runtimeObject
398         if it's already set. Set m_runtimeObject and call addRuntimeObject
399         if it's not.
400         (JSC::Bindings::Instance::newRuntimeObject): Added. Virtual function,
401         used only by createRuntimeObject.
402         (JSC::Bindings::Instance::willDestroyRuntimeObject): Added.
403         Calls removeRuntimeObject and then clears m_runtimeObject.
404         (JSC::Bindings::Instance::willInvalidateRuntimeObject): Added.
405         Clears m_runtimeObject.
406
407         * bridge/runtime.h: Made createRuntimeObject non-virtual. Added
408         willDestroyRuntimeObject, willInvalidateRuntimeObject,
409         newRuntimeObject, and m_runtimeObject.
410
411         * bridge/runtime_object.cpp:
412         (JSC::RuntimeObjectImp::RuntimeObjectImp): Removed addRuntimeObject
413         call, now handled by caller.
414         (JSC::RuntimeObjectImp::~RuntimeObjectImp): Replaced removeRuntimeObject
415         call with willDestroyRuntimeObject call; the latter nows calls
416         removeRuntimeObject.
417         (JSC::RuntimeObjectImp::invalidate): Added willInvalidateRuntimeObject
418         call.
419
420         * bridge/runtime_object.h: Made invalidate non-virtual.
421
422 2009-09-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
423
424         Reviewed by Simon Hausmann.
425
426         Make PlatformWindow return something else than PlatformWidget
427         https://bugs.webkit.org/show_bug.cgi?id=29085
428
429         Make platformWindow return a PlatformPageClient
430         (for now typedef'ed to PlatformWidget)
431
432         Also, change the name of platformWindow to platformPageClient()
433
434         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
435         (getPangoLayoutForAtk):
436         * accessibility/win/AXObjectCacheWin.cpp:
437         (WebCore::AXObjectCache::postPlatformNotification):
438         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
439         * loader/EmptyClients.h:
440         (WebCore::EmptyChromeClient::platformPageClient):
441         * page/Chrome.cpp:
442         (WebCore::Chrome::platformPageClient):
443         * page/Chrome.h:
444         * page/ChromeClient.h:
445         * page/mac/EventHandlerMac.mm:
446         (WebCore::EventHandler::wheelEvent):
447         (WebCore::EventHandler::currentPlatformMouseEvent):
448         (WebCore::EventHandler::sendContextMenuEvent):
449         (WebCore::EventHandler::eventMayStartDrag):
450         * platform/HostWindow.h:
451         * platform/Widget.h:
452         * platform/gtk/PlatformScreenGtk.cpp:
453         (WebCore::getVisual):
454         (WebCore::screenRect):
455         (WebCore::screenAvailableRect):
456         * platform/gtk/PopupMenuGtk.cpp:
457         (WebCore::PopupMenu::show):
458         * platform/gtk/ScrollViewGtk.cpp:
459         (WebCore::ScrollView::platformAddChild):
460         (WebCore::ScrollView::platformRemoveChild):
461         (WebCore::ScrollView::visibleContentRect):
462         * platform/gtk/WidgetGtk.cpp:
463         (WebCore::Widget::setFocus):
464         (WebCore::Widget::setCursor):
465         * platform/qt/PlatformScreenQt.cpp:
466         (WebCore::screenDepth):
467         (WebCore::screenDepthPerComponent):
468         (WebCore::screenIsMonochrome):
469         (WebCore::screenRect):
470         (WebCore::screenAvailableRect):
471         * platform/qt/PopupMenuQt.cpp:
472         (WebCore::PopupMenu::show):
473         * platform/qt/WidgetQt.cpp:
474         (WebCore::Widget::setCursor):
475         * platform/win/PlatformScreenWin.cpp:
476         (WebCore::monitorInfoForWidget):
477         * platform/win/PopupMenuWin.cpp:
478         (WebCore::PopupMenu::show):
479         (WebCore::PopupMenu::calculatePositionAndSize):
480         (WebCore::PopupMenu::wndProc):
481         * platform/wx/RenderThemeWx.cpp:
482         (WebCore::nativeWindowForRenderObject):
483         * platform/wx/ScrollbarThemeWx.cpp:
484         (WebCore::ScrollbarThemeWx::paint):
485         * plugins/gtk/PluginViewGtk.cpp:
486         (WebCore::PluginView::getValue):
487         (WebCore::PluginView::forceRedraw):
488         (WebCore::PluginView::platformStart):
489         * plugins/mac/PluginViewMac.cpp:
490         (WebCore::PluginView::platformStart):
491         * plugins/qt/PluginViewQt.cpp:
492         (WebCore::PluginView::handleKeyboardEvent):
493         (WebCore::PluginView::getValue):
494         (WebCore::PluginView::platformStart):
495         * plugins/win/PluginViewWin.cpp:
496         (WebCore::PluginView::getValue):
497         (WebCore::PluginView::forceRedraw):
498         (WebCore::PluginView::platformStart):
499
500 2009-09-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
501
502         Reviewed by Simon Hausmann.
503
504         [Qt] Web inspector UI adjustments specific to the Qt platform:
505         - Hide the close button
506         - Hide the dock button
507         - Disable the draggable toolbar
508
509         https://bugs.webkit.org/show_bug.cgi?id=29384
510
511         * inspector/front-end/inspector.css:
512         * inspector/front-end/inspector.js:
513         (WebInspector.toolbarDragStart):
514
515 2009-09-18  Joerg Bornemann  <joerg.bornemann@nokia.com>
516
517         Reviewed by Simon Hausmann.
518
519         QtWebKit Windows CE compile fixes
520
521         Exclude certain pure-WINCE specific code paths from the Qt build.
522
523         * platform/graphics/BitmapImage.h:
524         * platform/graphics/FontCache.h:
525         * platform/graphics/MediaPlayer.cpp:
526         * platform/text/TextEncodingRegistry.cpp:
527         (WebCore::buildBaseTextCodecMaps):
528         (WebCore::extendTextCodecMaps):
529         * plugins/PluginView.cpp:
530         (WebCore::PluginView::stop): Guard this code block with NETSCAPE_PLUGIN_API as
531         the corresponding PluginViewWndProc has the same guard in the header file.
532
533 2009-09-18  Steve Block  <steveblock@google.com>
534
535         Reviewed by Dimitri Glazkov.
536
537         Geolocation does not correctly handle Infinity for PositionOptions properties.
538         https://bugs.webkit.org/show_bug.cgi?id=29099
539
540         * bindings/js/JSGeolocationCustom.cpp: Modified.
541         (WebCore::createPositionOptions): Modified. If timeout or maximumAge is positive infinity, applies these values as a special case.
542         * page/PositionOptions.h: Modified.
543         (WebCore::PositionOptions::hasMaximumAge): Added. Determines whether the object has a maximum age.
544         (WebCore::PositionOptions::maximumAge): Modified. Asserts that the object has a maximum age.
545         (WebCore::PositionOptions::clearMaximumAge): Added. Clears the maximum age.
546         (WebCore::PositionOptions::setMaximumAge): Modified. Registers that the maximum age has been set.
547         (WebCore::PositionOptions::PositionOptions): Modified. Registers that the maximum age has been set.
548
549 2009-09-17  Sam Weinig  <sam@webkit.org>
550
551         Reviewed by Adele Peterson.
552
553         Fix for https://bugs.webkit.org/show_bug.cgi?id=29276
554         REGRESSION(r48334): WebKit crashes on file select by drag
555
556         Document.elementFromPoint now takes point in client space, not page space.
557
558         * page/DragController.cpp:
559         (WebCore::DragController::tryDocumentDrag):
560         (WebCore::DragController::concludeEditDrag):
561
562 2009-09-17  Albert J. Wong  <ajwong@chromium.org>
563
564         Reviewed by David Levin.
565
566         Reimplement default media UI for Mac Chromium to match the style
567         of the Windows and Linux versions.  Also breaks the dependency
568         on the internal wk* functions that were previously used to
569         render the media controller widgets.
570         https://bugs.webkit.org/show_bug.cgi?id=29161
571
572         No media layout tests are currently enabled in Mac Chromium, so
573         nothing needs rebaselineing, etc.
574
575         This is a recommit of r48438 with a compile fix and merges of
576         recent changes to the file.
577
578         * css/mediaControlsChromium.css:
579         * rendering/RenderThemeChromiumMac.h:
580         * rendering/RenderThemeChromiumMac.mm:
581         (WebCore::mediaElementParent):
582         (WebCore::RenderThemeChromiumMac::extraMediaControlsStyleSheet):
583         (WebCore::mediaSliderThumbImage):
584         (WebCore::mediaVolumeSliderThumbImage):
585         (WebCore::RenderThemeChromiumMac::paintSliderTrack):
586         (WebCore::RenderThemeChromiumMac::adjustSliderThumbSize):
587         (WebCore::RenderThemeChromiumMac::paintMediaButtonInternal):
588         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
589         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
590         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
591         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack):
592         (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):
593         (WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb):
594         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
595         * rendering/RenderThemeChromiumSkia.cpp:
596         (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize):
597
598 2009-09-17  Brian Weinstein  <bweinstein@apple.com>
599
600         Reviewed by Timothy Hatcher.
601
602         The Console scope bar should have a divider between All and the other possible
603         values (Errors, Warnings, Logs). It will look something like:
604         
605         All | Errors Warnings Logs.
606
607         * inspector/front-end/ConsoleView.js:
608         (WebInspector.ConsoleView.createDividerElement):
609         (WebInspector.ConsoleView):
610         * inspector/front-end/inspector.css:
611
612 2009-09-17  Sam Weinig  <sam@webkit.org>
613
614         Reviewed by Mark Rowe.
615
616         Remove additional references to JSVoidCallback which no longer exists.
617
618         * DerivedSources.cpp:
619         * WebCore.vcproj/WebCore.vcproj:
620
621 2009-09-17  Sam Weinig  <sam@webkit.org>
622
623         Reviewed by Brady Eidson.
624
625         Remove commented out onhashchange attribute now that it is implemented.
626
627         * page/DOMWindow.idl:
628
629 2009-09-17  Anders Carlsson  <andersca@apple.com>
630
631         Reviewed by Oliver Hunt.
632
633         <rdar://problem/7007541> 
634         CrashTracer: 4800+ crashes in Safari at com.apple.WebKit • WTF::HashTableIterator...
635         
636         Make RuntimeObjectImp more robust against m_instance being a null (which can happen if an OOP plug-in
637         crashes while we're calling into it).
638         
639         * bridge/runtime_object.cpp:
640         (JSC::RuntimeObjectImp::RuntimeObjectImp):
641         (JSC::RuntimeObjectImp::~RuntimeObjectImp):
642         (JSC::RuntimeObjectImp::invalidate):
643         (JSC::RuntimeObjectImp::fallbackObjectGetter):
644         (JSC::RuntimeObjectImp::fieldGetter):
645         (JSC::RuntimeObjectImp::methodGetter):
646         (JSC::RuntimeObjectImp::getOwnPropertySlot):
647         (JSC::RuntimeObjectImp::getOwnPropertyDescriptor):
648         (JSC::RuntimeObjectImp::put):
649         (JSC::RuntimeObjectImp::defaultValue):
650         (JSC::RuntimeObjectImp::getCallData):
651         (JSC::RuntimeObjectImp::getConstructData):
652         (JSC::RuntimeObjectImp::getPropertyNames):
653         * bridge/runtime_object.h:
654         (JSC::RuntimeObjectImp::getInternalInstance):
655
656 2009-09-17  Yury Semikhatsky  <yurys@chromium.org>
657
658         Reviewed by Timothy Hatcher.
659
660         Wrap primitive values (as objects) in InspectorController::wrap.
661
662         https://bugs.webkit.org/show_bug.cgi?id=28983
663
664         * inspector/InspectorController.cpp:
665         (WebCore::InspectorController::wrapObject): objects of any type will be wrapped into proxies,
666          only object proxies will have objectId.
667         * inspector/front-end/ConsoleView.js:
668         (WebInspector.ConsoleView.prototype.completions): there is InjectedScript.getCompletionsi
669          that accepts an expression and returns possible completions. This way we don't need to wrap
670          and unwrap the completions result into a proxy object.
671         * inspector/front-end/InjectedScript.js:
672         (InjectedScript.getCompletions):
673         (InjectedScript.evaluate):
674         (InjectedScript._evaluateOn):
675         (InjectedScript.createProxyObject):
676         * inspector/front-end/InjectedScriptAccess.js:
677
678 2009-09-17  Nate Chapin  <japhet@chromium.org>
679
680         Reviewed by Dimitri Glazkov.
681
682         Wrap PageTransitionEvents properly for V8's use.
683
684         https://bugs.webkit.org/show_bug.cgi?id=29340
685
686         Fixes Chromium's failures for LayoutTests/fast/events/pageshow-pagehide.html.
687
688         * bindings/v8/V8DOMWrapper.cpp:
689         (WebCore::V8DOMWrapper::convertEventToV8Object): Wrap PageTransitionEvents properly.
690
691 2009-09-17  Simon Fraser  <simon.fraser@apple.com>
692
693         Reviewed by Dave Hyatt.
694
695         Hardware-accelerated opacity transition on inline asserts
696         https://bugs.webkit.org/show_bug.cgi?id=29342
697         
698         Remove an erroneous toRenderBox() that could be called on a RenderInline; we can just
699         pass an empty size, because the box size is only required for transform animations.
700
701         Test: compositing/transitions/opacity-on-inline.html
702
703         * rendering/RenderLayerBacking.cpp:
704         (WebCore::RenderLayerBacking::startTransition):
705
706 2009-09-17  Adam Barth  <abarth@webkit.org>
707
708         Reviewed by Eric Seidel.
709
710         [V8] OwnHandle might get a weak callback after destruction
711         https://bugs.webkit.org/show_bug.cgi?id=29172
712
713         Be sure to clear out weak reference so we don't get a weak callback
714         after we've destructed ourselves.  Also, removed some tricky methods
715         that had no clients.
716
717         * bindings/v8/OwnHandle.h:
718         (WebCore::OwnHandle::clear):
719
720 2009-09-17  Dimitri Glazkov  <dglazkov@chromium.org>
721
722         Unreviewed, build fix.
723
724         [V8] Partial roll out of http://trac.webkit.org/changeset/48455 to
725         fix crashes that started happening in V8Proxy::getEnteredContext().
726
727         * bindings/v8/ScheduledAction.cpp:
728         (WebCore::ScheduledAction::execute):
729
730 2009-09-17  Chris Fleizach  <cfleizach@apple.com>
731
732         Reviewed by Beth Dakin.
733
734         AX: labels of checkboxes should, when hit-tested, return the checkbox
735         https://bugs.webkit.org/show_bug.cgi?id=29335
736
737         When an accessibility hit test is done and it hits the label of a control element,
738         the control element should be returned instead of nothing, since the label
739         itself is usually ignored.
740
741         Test: accessibility/label-for-control-hittest.html
742
743         * accessibility/AccessibilityObject.h:
744         (WebCore::AccessibilityObject::correspondingControlForLabelElement):
745         * accessibility/AccessibilityRenderObject.cpp:
746         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
747         (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
748         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
749         * accessibility/AccessibilityRenderObject.h:
750
751 2009-09-17  Avi Drissman  <avi@chromium.org>
752
753         Reviewed by Dimitri Glazkov, build fix.
754
755         Change to make RenderThemeChromiumMac compile inside of non PLATFORM(MAC).
756         https://bugs.webkit.org/show_bug.cgi?id=29243
757
758         Covered by existing tests.
759
760         * rendering/RenderThemeChromiumMac.mm:
761         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
762
763 2009-09-17  Dimitri Glazkov  <dglazkov@chromium.org>
764
765         Reviewed by Eric Seidel.
766
767         [V8] Accessing properties/methods of an object, created with document.implementation.createDocumentType
768         creates nodes that have no document (ScriptExecutionContext), which in turn produces NULL-ref crashes.
769         https://bugs.webkit.org/show_bug.cgi?id=26402
770
771         Test: fast/dom/DOMImplementation/detached-doctype.html
772               fast/dom/doctype-event-listener-crash.html
773
774         * bindings/v8/V8DOMWrapper.cpp:
775         (WebCore::V8DOMWrapper::getEventListener): Added an extra NULL-check.
776
777 2009-09-17  Dan Bernstein  <mitz@apple.com>
778
779         Reviewed by Simon Fraser.
780
781         FontDescription.h includes RenderStyleConstants.h, which violates layering
782         https://bugs.webkit.org/show_bug.cgi?id=29327
783
784         * GNUmakefile.am: Added FontSmoothingMode.h.
785         * WebCore.gypi: Added FontSmoothingMode.h.
786         * WebCore.vcproj/WebCore.vcproj: Added FontSmoothingMode.h.
787         * WebCore.xcodeproj/project.pbxproj: Added FontSmoothingMode.h and made
788             it a private header.
789         * css/CSSComputedStyleDeclaration.cpp:
790         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the
791             font smoothing mode via the font description.
792         * css/CSSPrimitiveValueMappings.h: Include FontSmoothingMode.h
793         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Updated for the rename
794             of FontSmoothing to FontSmoothingMode.
795         (WebCore::CSSPrimitiveValue::operator FontSmoothingMode): Ditto.
796         * css/CSSStyleSelector.cpp:
797         (WebCore::CSSStyleSelector::applyProperty): Get the font smoothing mode
798             via the font description.
799         * platform/graphics/FontDescription.h: Do not include
800             RenderStyleConstants.h.
801         (WebCore::FontDescription::fontSmoothing): Updated for the rename of
802             FontSmoothing to FontSmoothingMode.
803         (WebCore::FontDescription::setFontSmoothing): Ditto.
804         * platform/graphics/FontSmoothingMode.h: Added.
805         (WebCore::FontSmoothingMode): Moved the FontSmoothing enum from
806             RenderStyleConstants here and renamed it to this.
807         * rendering/style/RenderStyle.h:
808         (WebCore::InheritedFlags::fontSmoothing): Removed this getter, since
809             this can be accessed via the font description.
810         * rendering/style/RenderStyleConstants.h: Moved the FontSmoothing enum
811             from here to FontSmoothingMode.h.
812
813 2009-09-17  Kevin Ollivier  <kevino@theolliviers.com>
814
815         wx 2.9 build fix.
816
817         * platform/wx/wxcode/gtk/scrollbar_render.cpp:
818         (wxGetGdkWindowForDC):
819
820 2009-09-16  Simon Fraser  <simon.fraser@apple.com>
821
822         Reviewed by Dan Bernstein.
823
824         Elements appear behind <video> when they should be in front sometimes
825         https://bugs.webkit.org/show_bug.cgi?id=29314
826         
827         r45598 added logic that tests for overlap with <video> to determine when to throw
828         a layer into compositing mode. That logic was incorrect in some cases, and this patch
829         fixes it. When testing overlap, the layer needs to be composited iff some previous layer
830         is composited (which adds a rect to the overlay map), and there is overlap.
831
832         Test: compositing/geometry/video-opacity-overlay.html
833
834         * rendering/RenderLayerCompositor.cpp:
835         (WebCore::CompositingState::CompositingState):
836         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
837
838 2009-09-17  Avi Drissman  <avi@google.com>
839
840         Reviewed by Darin Fisher.
841
842         Update the Chromium Mac theming files (RenderTheme and Theme) to be
843         up-to-date.
844         
845         https://bugs.webkit.org/show_bug.cgi?id=29243
846         http://crbug.com/19604
847
848         Covered by existing tests.
849
850         * WebCore.gypi:
851         * platform/chromium/ThemeChromiumMac.h: Added.
852         (WebCore::ThemeChromiumMac::ThemeChromiumMac):
853         (WebCore::ThemeChromiumMac::~ThemeChromiumMac):
854         (WebCore::ThemeChromiumMac::controlRequiresPreWhiteSpace):
855         * platform/chromium/ThemeChromiumMac.mm: Added.
856         (WebCore::):
857         (WebCore::platformTheme):
858         (WebCore::controlSizeForFont):
859         (WebCore::sizeFromFont):
860         (WebCore::setControlSize):
861         (WebCore::updateStates):
862         (WebCore::inflateRect):
863         (WebCore::checkboxSizes):
864         (WebCore::checkboxMargins):
865         (WebCore::checkboxSize):
866         (WebCore::checkbox):
867         (WebCore::paintCheckbox):
868         (WebCore::radioSizes):
869         (WebCore::radioMargins):
870         (WebCore::radioSize):
871         (WebCore::radio):
872         (WebCore::paintRadio):
873         (WebCore::buttonSizes):
874         (WebCore::buttonMargins):
875         (WebCore::button):
876         (WebCore::paintButton):
877         (WebCore::ThemeChromiumMac::baselinePositionAdjustment):
878         (WebCore::ThemeChromiumMac::controlFont):
879         (WebCore::ThemeChromiumMac::controlSize):
880         (WebCore::ThemeChromiumMac::minimumControlSize):
881         (WebCore::ThemeChromiumMac::controlBorder):
882         (WebCore::ThemeChromiumMac::controlPadding):
883         (WebCore::ThemeChromiumMac::inflateControlPaintRect):
884         (WebCore::ThemeChromiumMac::paint):
885         * platform/graphics/FloatPoint.h:
886         * platform/graphics/FloatRect.h:
887         * platform/graphics/FloatSize.h:
888         * platform/graphics/IntRect.h:
889         * rendering/RenderThemeChromiumMac.h:
890         (WebCore::RenderThemeChromiumMac::supportsControlTints):
891         (WebCore::RenderThemeChromiumMac::scrollbarControlSizeForPart):
892         (WebCore::RenderThemeChromiumMac::supportsSelectionForegroundColors):
893         * rendering/RenderThemeChromiumMac.mm:
894         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
895         (-[RTCMFlippedView isFlipped]):
896         (-[RTCMFlippedView currentEditor]):
897         (WebCore::):
898         (WebCore::FlippedView):
899         (WebCore::RenderTheme::themeForPage):
900         (WebCore::RenderThemeChromiumMac::platformActiveListBoxSelectionForegroundColor):
901         (WebCore::RenderThemeChromiumMac::platformInactiveListBoxSelectionForegroundColor):
902         (WebCore::RenderThemeChromiumMac::platformInactiveListBoxSelectionBackgroundColor):
903         (WebCore::RenderThemeChromiumMac::systemFont):
904         (WebCore::convertNSColorToColor):
905         (WebCore::menuBackgroundColor):
906         (WebCore::RenderThemeChromiumMac::systemColor):
907         (WebCore::RenderThemeChromiumMac::isControlStyled):
908         (WebCore::RenderThemeChromiumMac::adjustRepaintRect):
909         (WebCore::RenderThemeChromiumMac::inflateRect):
910         (WebCore::RenderThemeChromiumMac::convertToPaintingRect):
911         (WebCore::RenderThemeChromiumMac::setFontFromControlSize):
912         (WebCore::RenderThemeChromiumMac::paintTextField):
913         (WebCore::RenderThemeChromiumMac::paintCapsLockIndicator):
914         (WebCore::RenderThemeChromiumMac::paintTextArea):
915         (WebCore::RenderThemeChromiumMac::paintMenuList):
916         (WebCore::TopGradientInterpolate):
917         (WebCore::BottomGradientInterpolate):
918         (WebCore::MainGradientInterpolate):
919         (WebCore::TrackGradientInterpolate):
920         (WebCore::RenderThemeChromiumMac::paintMenuListButtonGradients):
921         (WebCore::RenderThemeChromiumMac::paintMenuListButton):
922         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
923         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
924         (WebCore::RenderThemeChromiumMac::popupInternalPaddingTop):
925         (WebCore::RenderThemeChromiumMac::popupInternalPaddingBottom):
926         (WebCore::RenderThemeChromiumMac::adjustMenuListButtonStyle):
927         (WebCore::RenderThemeChromiumMac::adjustSliderTrackStyle):
928         (WebCore::RenderThemeChromiumMac::adjustSliderThumbStyle):
929         (WebCore::RenderThemeChromiumMac::paintSliderThumb):
930         (WebCore::RenderThemeChromiumMac::paintSearchField):
931         (WebCore::RenderThemeChromiumMac::setSearchCellState):
932         (WebCore::RenderThemeChromiumMac::adjustSearchFieldStyle):
933         (WebCore::RenderThemeChromiumMac::paintSearchFieldCancelButton):
934         (WebCore::RenderThemeChromiumMac::adjustSearchFieldCancelButtonStyle):
935         (WebCore::RenderThemeChromiumMac::adjustSearchFieldDecorationStyle):
936         (WebCore::RenderThemeChromiumMac::paintSearchFieldDecoration):
937         (WebCore::RenderThemeChromiumMac::adjustSearchFieldResultsDecorationStyle):
938         (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsDecoration):
939         (WebCore::RenderThemeChromiumMac::adjustSearchFieldResultsButtonStyle):
940         (WebCore::RenderThemeChromiumMac::paintSearchFieldResultsButton):
941         (WebCore::mediaControllerTheme):
942         (WebCore::RenderThemeChromiumMac::adjustSliderThumbSize):
943         (WebCore::getMediaUIPartStateFlags):
944         (WebCore::getUnzoomedRectAndAdjustCurrentContext):
945         (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
946         (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
947         (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
948         (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton):
949         (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton):
950         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
951         (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):
952         (WebCore::RenderThemeChromiumMac::paintMediaRewindButton):
953         (WebCore::RenderThemeChromiumMac::paintMediaReturnToRealtimeButton):
954         (WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
955         (WebCore::RenderThemeChromiumMac::paintMediaCurrentTime):
956         (WebCore::RenderThemeChromiumMac::paintMediaTimeRemaining):
957         (WebCore::RenderThemeChromiumMac::extraMediaControlsStyleSheet):
958
959 2009-09-16  Daniel Bates  <dbates@webkit.org>
960
961         Reviewed by Darin Adler.
962
963         https://bugs.webkit.org/show_bug.cgi?id=29306
964         
965         Fixes an issue where an attack that contains accented characters can
966         bypass the XSSAuditor.
967         
968         XSSAuditor::decodeURL used the wrong length for the input string. 
969         When the input string was decoded, the decoded result was truncated.
970         Hence, XSSAuditor was comparing the source code of the script to the 
971         truncated input parameters.
972
973         Test: http/tests/security/xssAuditor/img-onerror-accented-char.html
974
975         * page/XSSAuditor.cpp:
976         (WebCore::XSSAuditor::decodeURL):
977
978 2009-09-16  Brady Eidson  <beidson@apple.com>
979
980         Reviewed by Sam Weinig.
981
982         Explore allowing pages with unload handlers into the Page Cache
983         https://bugs.webkit.org/show_bug.cgi?id=29021
984
985         No new tests. (All previous tests continue to pass)
986
987         * loader/FrameLoader.cpp:
988         (WebCore::FrameLoader::stopLoading): If the document is in the page cache, don't fire the unload event.
989
990 2009-09-16  Adam Barth  <abarth@webkit.org>
991
992         Reviewed by Dimitri Glazkov.
993
994         [V8] Teach ScheduledAction::execute about isolated worlds
995         https://bugs.webkit.org/show_bug.cgi?id=27703
996
997         We now save a handle to the original context.  We use that handle to
998         call the timeout in the right context / world.
999
1000         Tests: http/tests/security/isolatedWorld/window-setTimeout-function.html
1001                http/tests/security/isolatedWorld/window-setTimeout-string.html
1002
1003         * bindings/v8/ScheduledAction.cpp:
1004         (WebCore::ScheduledAction::ScheduledAction):
1005         (WebCore::ScheduledAction::execute):
1006         * bindings/v8/ScheduledAction.h:
1007         (WebCore::ScheduledAction::ScheduledAction):
1008         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1009         (WebCore::V8Custom::WindowSetTimeoutImpl):
1010         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1011         (WebCore::SetTimeoutOrInterval):
1012
1013 2009-09-16  Adam Barth  <abarth@webkit.org>
1014
1015         Reviewed by Dimitri Glazkov.
1016
1017         [V8] Teach ScheduledAction::execute about isolated worlds
1018         https://bugs.webkit.org/show_bug.cgi?id=27703
1019
1020         We now save a handle to the original context.  We use that handle to
1021         call the timeout in the right context / world.
1022
1023         Tests: http/tests/security/isolatedWorld/window-setTimeout-function.html
1024                http/tests/security/isolatedWorld/window-setTimeout-string.html
1025
1026         * bindings/v8/ScheduledAction.cpp:
1027         (WebCore::ScheduledAction::ScheduledAction):
1028         (WebCore::ScheduledAction::execute):
1029         * bindings/v8/ScheduledAction.h:
1030         (WebCore::ScheduledAction::ScheduledAction):
1031         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1032         (WebCore::V8Custom::WindowSetTimeoutImpl):
1033         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1034         (WebCore::SetTimeoutOrInterval):
1035
1036 2009-09-16  Sam Weinig  <sam@webkit.org>
1037
1038         Reviewed by Anders Carlsson.
1039
1040         Add some groups to the xcode project to make the bindings/js/ group
1041         a little nicer.
1042
1043         * WebCore.xcodeproj/project.pbxproj:
1044
1045 2009-09-16  Sam Weinig  <sam@webkit.org>
1046
1047         Reviewed by Anders Carlsson.
1048
1049         Fix for https://bugs.webkit.org/show_bug.cgi?id=29320
1050         JS callback objects should store the global object
1051
1052         This just changes the callback objects to store the global object instead
1053         of the frame. A follow up patch will change them to store the 'current' 
1054         global object instead of the lexical or dynamic.
1055
1056         * DerivedSources.make: Remove unused VoidCallback.
1057         * WebCore.xcodeproj/project.pbxproj: Ditto.
1058         * bindings/js/JSCustomPositionCallback.cpp:
1059         (WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
1060         (WebCore::JSCustomPositionCallback::handleEvent):
1061         * bindings/js/JSCustomPositionCallback.h:
1062         (WebCore::JSCustomPositionCallback::create):
1063         * bindings/js/JSCustomPositionErrorCallback.cpp:
1064         (WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
1065         (WebCore::JSCustomPositionErrorCallback::handleEvent):
1066         * bindings/js/JSCustomPositionErrorCallback.h:
1067         (WebCore::JSCustomPositionErrorCallback::create):
1068         * bindings/js/JSCustomSQLStatementCallback.cpp:
1069         (WebCore::JSCustomSQLStatementCallback::JSCustomSQLStatementCallback):
1070         (WebCore::JSCustomSQLStatementCallback::handleEvent):
1071         * bindings/js/JSCustomSQLStatementCallback.h:
1072         (WebCore::JSCustomSQLStatementCallback::create):
1073         * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
1074         (WebCore::JSCustomSQLStatementErrorCallback::JSCustomSQLStatementErrorCallback):
1075         (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
1076         * bindings/js/JSCustomSQLStatementErrorCallback.h:
1077         (WebCore::JSCustomSQLStatementErrorCallback::create):
1078         * bindings/js/JSCustomSQLTransactionCallback.cpp:
1079         (WebCore::JSCustomSQLTransactionCallback::Data::Data):
1080         (WebCore::JSCustomSQLTransactionCallback::Data::globalObject):
1081         (WebCore::JSCustomSQLTransactionCallback::JSCustomSQLTransactionCallback):
1082         (WebCore::JSCustomSQLTransactionCallback::handleEvent):
1083         * bindings/js/JSCustomSQLTransactionCallback.h:
1084         (WebCore::JSCustomSQLTransactionCallback::create):
1085         * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
1086         (WebCore::JSCustomSQLTransactionErrorCallback::JSCustomSQLTransactionErrorCallback):
1087         (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
1088         * bindings/js/JSCustomSQLTransactionErrorCallback.h:
1089         (WebCore::JSCustomSQLTransactionErrorCallback::create):
1090         * bindings/js/JSCustomVoidCallback.cpp:
1091         (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
1092         (WebCore::JSCustomVoidCallback::handleEvent):
1093         * bindings/js/JSCustomVoidCallback.h:
1094         (WebCore::JSCustomVoidCallback::create):
1095         * bindings/js/JSDatabaseCustom.cpp:
1096         (WebCore::JSDatabase::changeVersion):
1097         (WebCore::createTransaction):
1098         (WebCore::JSDatabase::transaction):
1099         (WebCore::JSDatabase::readTransaction):
1100         * bindings/js/JSGeolocationCustom.cpp:
1101         (WebCore::createPositionCallback):
1102         (WebCore::createPositionErrorCallback):
1103         (WebCore::JSGeolocation::getCurrentPosition):
1104         (WebCore::JSGeolocation::watchPosition):
1105         * bindings/js/JSSQLTransactionCustom.cpp:
1106         (WebCore::JSSQLTransaction::executeSql):
1107
1108 2009-09-15  Kent Tamura  <tkent@chromium.org>
1109
1110         Reviewed by Eric Seidel.
1111
1112         <input maxlength=> should restrict only values specified by users.
1113         https://bugs.webkit.org/show_bug.cgi?id=21271
1114
1115         * dom/InputElement.cpp:
1116         (WebCore::InputElement::setValueFromRenderer):
1117         (WebCore::InputElement::sanitizeValue):
1118         (WebCore::InputElement::sanitizeUserInputValue): Rename from constrainValue().
1119         (WebCore::InputElement::handleBeforeTextInsertedEvent):
1120         (WebCore::InputElement::updateValueIfNeeded):
1121         * dom/InputElement.h:
1122         * html/HTMLInputElement.cpp:
1123         (WebCore::HTMLInputElement::setInputType):
1124         (WebCore::HTMLInputElement::value):
1125         (WebCore::HTMLInputElement::setValue):
1126         (WebCore::HTMLInputElement::sanitizeValue):
1127         * html/HTMLInputElement.h:
1128         * rendering/RenderTextControlSingleLine.cpp:
1129         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
1130         * wml/WMLInputElement.cpp:
1131         (WebCore::WMLInputElement::constrainValue):
1132         * wml/WMLInputElement.h:
1133         (WebCore::WMLInputElement::sanitizeValue):
1134
1135 2009-09-16  Enrica Casucci  <enrica@apple.com>
1136
1137         Reviewed by Eric Seidel.
1138
1139         Reorganizing helper functions in htmlediting.h to group them by type of object they return/operate upon.
1140         https://bugs.webkit.org/show_bug.cgi?id=29319
1141
1142         * editing/IndentOutdentCommand.cpp:
1143         Removed implementation of isAtUnsplittableElement.
1144
1145         * editing/IndentOutdentCommand.h:
1146         Removed member function isAtUnsplittableElement, because it was not class specific and belonged logically among the helper functions.
1147
1148         * editing/htmlediting.cpp:
1149         (WebCore::isAtUnsplittableElement): added. The code was taken from IndentOutdentCommand.
1150
1151         * editing/htmlediting.h:
1152         Reordered functions to group them by type of object returned or operate upon.
1153         Added comments.
1154         Added isAtUnsplittableElement declaration.
1155
1156 2009-09-16  Geoffrey Garen  <ggaren@apple.com>
1157
1158         Reviewed by Sam Weinig and Anders Carlsson.
1159
1160         Removed some vestigial and potentially crashy code that makes consolidating
1161         event listeners hard.
1162
1163         * dom/Node.cpp:
1164         (WebCore::Node::addEventListener): No need to limit when event listeners
1165         can be added. Other EventTargets don't do this.
1166         
1167         Also, check for null when accessing document(). Technically, the JS bindings
1168         do this check for us, but let's not rely on that.
1169
1170 2009-09-16  Anders Carlsson  <andersca@apple.com>
1171
1172         Reviewed by Adam Roben.
1173
1174         <rdar://problem/7155710>
1175         HTML selects on windows cause containing window to become inactive when opened
1176         
1177         Redo the way we handle events when a popup menu is shown, based on
1178         http://blogs.msdn.com/oldnewthing/archive/2004/08/20/217684.aspx
1179         
1180         Since a non-active window can't capture the mouse, we use the owning window 
1181         (the WebView) as the capture window. We then run a recursive message pump that 
1182         forwards all mouse and keyboard events to the popup menu.
1183         
1184         * platform/PopupMenu.h:
1185         * platform/win/PopupMenuWin.cpp:
1186         (WebCore::PopupMenu::PopupMenu):
1187         (WebCore::PopupMenu::show):
1188         (WebCore::PopupMenu::hide):
1189         (WebCore::PopupMenu::wndProc):
1190
1191 2009-09-16  Dan Bernstein  <mitz@apple.com>
1192
1193         Reviewed by Ada Chan.
1194
1195         Speculative fix for
1196         <rdar://problem/6937089> Crashes at RenderWidget::destroy()
1197
1198         * rendering/RenderWidget.cpp:
1199         (WebCore::RenderWidget::destroy): Avoid calling renderArena() if node()
1200         is null. Add two assertions that can help determine how this crash
1201         happens (in particular, whether node() becomes null during destroy() or
1202         it is null before destroy() is called).
1203
1204 2009-09-16  Beth Dakin  <bdakin@apple.com>
1205
1206         Speculative build fix.
1207
1208         * css/CSSStyleSelector.cpp:
1209         (WebCore::CSSStyleSelector::applyProperty):
1210
1211 2009-09-16  Beth Dakin  <bdakin@apple.com>
1212
1213         Reviewed by Darin Adler.
1214
1215         Fix for <rdar://problem/7083741> Implement a CSS extension to 
1216         adjust sub-pixel anti-aliasing for text
1217         -and corresponding-
1218         https://bugs.webkit.org/show_bug.cgi?id=29291
1219
1220         Added tests:
1221         * fast/css/font-smoothing.html: Added.
1222         * fast/css/parsing-webkit-font-smoothing.html: Added.
1223
1224         This patch adds a new CSS property called -webkit-font-smoothing 
1225         that accepts the following as valid input: auto | none | 
1226         antialiased | subpixel-antialiased
1227
1228         Return appropriate computed style for -webkit-font-smoothing
1229         * css/CSSComputedStyleDeclaration.cpp:
1230         (WebCore::):
1231         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1232
1233         Add a case for CSSPropertyWebkitFontSmoothing, and accept valid 
1234         input.
1235         * css/CSSParser.cpp:
1236         (WebCore::CSSParser::parseValue):
1237
1238         Add mappings for FontSmoothing to the right CSS values.
1239         * css/CSSPrimitiveValueMappings.h:
1240         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1241         (WebCore::CSSPrimitiveValue::operator FontSmoothing):
1242
1243         Add -webkit-font-smoothing
1244         * css/CSSPropertyNames.in:
1245
1246         Set fontSmoothing on the FontDescription.
1247         * css/CSSStyleSelector.cpp:
1248         (WebCore::CSSStyleSelector::applyProperty):
1249
1250         Add antialiased and subpixel-antialiased as possible new CSS 
1251         values.
1252         * css/CSSValueKeywords.in:
1253         Store the font smoothing CSS value in the FontDescription.
1254         * platform/graphics/FontDescription.h:
1255         (WebCore::FontDescription::FontDescription):
1256         (WebCore::FontDescription::fontSmoothing):
1257         (WebCore::FontDescription::setFontSmoothing):
1258         (WebCore::FontDescription::operator==):
1259
1260         Call setShouldAntialias() and setShouldUseSmoothing() appropriately 
1261         based on the CSS fontSmoothing() value.
1262         * platform/graphics/mac/FontMac.mm:
1263         (WebCore::Font::drawGlyphs):
1264         * platform/graphics/win/FontCGWin.cpp:
1265         (WebCore::Font::drawGlyphs):
1266
1267         New function fontSmoothing()
1268         * rendering/style/RenderStyle.h:
1269         (WebCore::InheritedFlags::fontSmoothing):
1270
1271         New enum FontSmoothing.
1272         * rendering/style/RenderStyleConstants.h:
1273         (WebCore::):
1274
1275 2009-09-16  Yury Semikhatsky  <yurys@chromium.org>
1276
1277         Reviewed by Timothy Hatcher.
1278
1279         Remove style property if empty string is entered.
1280
1281         https://bugs.webkit.org/show_bug.cgi?id=29163
1282
1283         * inspector/front-end/ElementsTreeOutline.js:
1284         (WebInspector.ElementsTreeOutline.prototype._onmouseout): fixed null pointer exception
1285         * inspector/front-end/InjectedScript.js:
1286         (InjectedScript.applyStyleText): if styletext to apply is empty it will return an array to confirm the property removal
1287         * inspector/front-end/StylesSidebarPane.js:
1288         (WebInspector.StylePropertyTreeElement.prototype.):
1289         (WebInspector.StylePropertyTreeElement.prototype):
1290
1291 2009-09-16  Yury Semikhatsky  <yurys@chromium.org>
1292
1293         Reviewed by Timothy Hatcher.
1294
1295         Always reset m_implicitShorthand to false after parsing
1296         background-repeat style property otherwise properties
1297         following after it may be erroneously marked as implicit.
1298
1299         https://bugs.webkit.org/show_bug.cgi?id=28972
1300         https://bugs.webkit.org/show_bug.cgi?id=28973
1301
1302         Test: fast/backgrounds/repeat/margin-shorthand.html
1303
1304         * css/CSSParser.cpp:
1305         (WebCore::CSSParser::parseValue):
1306
1307 2009-09-16  Carol Szabo  <carol.szabo@nokia.com>
1308
1309         Reviewed by Alexey Proskuryakov.
1310
1311         Incorrect behavior of XMLHttpRequest::getAllResponseHeaders and
1312         XMLHttpRequest::getResponseHeader in the
1313         HEADERS_RECEIVED readyState.
1314         https://bugs.webkit.org/show_bug.cgi?id=29121
1315
1316         Tests: http/tests/xmlhttprequest/getAllResponseHeaders.html
1317                http/tests/xmlhttprequest/getResponseHeader.html
1318
1319         * xml/XMLHttpRequest.cpp:
1320         (WebCore::XMLHttpRequest::getAllResponseHeaders):
1321         (WebCore::XMLHttpRequest::getResponseHeader):
1322         Changed the minimum valid state from LOADING to HEADERS_RECEIVED.
1323
1324 2009-09-16  Vitaly Repeshko  <vitalyr@chromium.org>
1325
1326         Reviewed by Dimitri Glazkov.
1327
1328         [V8] Fix style violation in V8AbstractEventListener.
1329         https://bugs.webkit.org/show_bug.cgi?id=29303
1330
1331         * bindings/v8/V8AbstractEventListener.h:
1332         (WebCore::V8AbstractEventListener::operator==):
1333
1334 2009-09-16  Patrick Mueller  <Patrick_Mueller@us.ibm.com>
1335
1336         Reviewed by Timothy Hatcher.
1337
1338         Add Watch Expression support to inspector
1339         https://bugs.webkit.org/show_bug.cgi?id=27514
1340
1341         Manual test added.
1342
1343         * English.lproj/localizedStrings.js:
1344         * WebCore.gypi:
1345         * WebCore.vcproj/WebCore.vcproj:
1346         * inspector/front-end/ConsoleView.js:
1347         (WebInspector.ConsoleView.prototype.completions):
1348         (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
1349         (WebInspector.ConsoleView.prototype._enterKeyPressed):
1350         * inspector/front-end/ObjectPropertiesSection.js:
1351         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
1352         (WebInspector.ObjectPropertiesSection.prototype.update):
1353         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
1354         (WebInspector.ObjectPropertiesSection.CompareProperties):
1355         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
1356         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1357         (WebInspector.ObjectPropertyTreeElement.prototype.update):
1358         * inspector/front-end/ScriptsPanel.js:
1359         (WebInspector.ScriptsPanel):
1360         (WebInspector.ScriptsPanel.prototype.reset):
1361         (WebInspector.ScriptsPanel.prototype._callFrameSelected):
1362         * inspector/front-end/WatchExpressionsSidebarPane.js: Added.
1363         (WebInspector.WatchExpressionsSidebarPane):
1364         (WebInspector.WatchExpressionsSidebarPane.prototype.refreshExpressions):
1365         (WebInspector.WatchExpressionsSection):
1366         (WebInspector.WatchExpressionsSection.prototype.update):
1367         (WebInspector.WatchExpressionsSection.prototype.addExpression):
1368         (WebInspector.WatchExpressionsSection.prototype.updateExpression):
1369         (WebInspector.WatchExpressionsSection.prototype.findAddedTreeElement):
1370         (WebInspector.WatchExpressionsSection.prototype.loadSavedExpressions):
1371         (WebInspector.WatchExpressionsSection.prototype.saveExpressions):
1372         (WebInspector.WatchExpressionsSection.CompareProperties):
1373         (WebInspector.WatchExpressionTreeElement):
1374         (WebInspector.WatchExpressionTreeElement.prototype.update):
1375         (WebInspector.WatchExpressionTreeElement.prototype._deleteButtonClicked):
1376         (WebInspector.WatchExpressionTreeElement.prototype.startEditing):
1377         (WebInspector.WatchExpressionTreeElement.prototype.editingCancelled):
1378         (WebInspector.WatchExpressionTreeElement.prototype.applyExpression):
1379         * inspector/front-end/WebKit.qrc:
1380         * inspector/front-end/inspector.css:
1381         * inspector/front-end/inspector.html:
1382         * manual-tests/inspector/debugger-watch-expressions.html: Added.
1383
1384 2009-09-16  Greg Bolsinga  <bolsinga@apple.com>
1385
1386         Add ENABLE(INSPECTOR)
1387         https://bugs.webkit.org/show_bug.cgi?id=29260
1388
1389         Reviewed by David Kilzer.
1390
1391         No new tests. (No change in default behavior.)
1392
1393         * DerivedSources.make: Use new WebCore.Inspector.exp file if ENABLE_DRAG_SUPPORT.
1394         * WebCore.base.exp: Move Inspector only exports to WebCore.Inspector.exp.
1395         * WebCore.xcodeproj/project.pbxproj: Add WebCore.Inspector.exp.
1396         * bindings/js/JSDOMWindowBase.cpp: Use ENABLE(INSPECTOR) where applicable.
1397         (WebCore::JSDOMWindowBase::supportsProfiling):
1398         * bindings/js/JSInspectedObjectWrapper.cpp: Wrap entire file in ENABLE(INSPECTOR).
1399         * bindings/js/JSInspectorBackendCustom.cpp: Ditto.
1400         * bindings/js/JSInspectorCallbackWrapper.cpp: Ditto.
1401         * bindings/js/ScriptObject.cpp: Use ENABLE(INSPECTOR) where applicable.
1402         * bindings/js/ScriptObject.h: Ditto.
1403         * bindings/js/ScriptObjectQuarantine.cpp: Wrap entire file in ENABLE(INSPECTOR).
1404         * dom/Document.cpp: Use ENABLE(INSPECTOR) where applicable.
1405         (WebCore::Document::recalcStyle):
1406         (WebCore::Document::addMessage):
1407         (WebCore::Document::resourceRetrievedByXMLHttpRequest):
1408         (WebCore::Document::scriptImported):
1409         * dom/Document.h: Ditto.
1410         * dom/Node.cpp: Ditto.
1411         (WebCore::Node::dispatchGenericEvent):
1412         * dom/ScriptExecutionContext.h: Ditto.
1413         (WebCore::):
1414         * html/HTMLDocument.cpp: Ditto.
1415         (WebCore::HTMLDocument::createTokenizer):
1416         * html/HTMLTokenizer.cpp: Ditto.
1417         (WebCore::HTMLTokenizer::write):
1418         * inspector/ConsoleMessage.cpp: Ditto.
1419         (WebCore::ConsoleMessage::ConsoleMessage):
1420         (WebCore::ConsoleMessage::isEqual):
1421         * inspector/ConsoleMessage.h: Ditto.
1422         * inspector/DOMDispatchTimelineItem.cpp: Wrap entire file in ENABLE(INSPECTOR).
1423         * inspector/InspectorBackend.cpp: Ditto.
1424         * inspector/InspectorController.cpp: Ditto.
1425         * inspector/InspectorDOMAgent.cpp: Ditto.
1426         * inspector/InspectorDOMStorageResource.cpp: Ditto.
1427         * inspector/InspectorDatabaseResource.cpp: Ditto.
1428         * inspector/InspectorFrontend.cpp: Ditto.
1429         * inspector/InspectorResource.cpp: Ditto.
1430         * inspector/InspectorTimelineAgent.cpp: Ditto.
1431         * inspector/TimelineItem.cpp: Ditto.
1432         * loader/FrameLoader.cpp: Use ENABLE(INSPECTOR) where applicable.
1433         (WebCore::FrameLoader::detachFromParent):
1434         (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
1435         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
1436         (WebCore::FrameLoader::dispatchWindowObjectAvailable):
1437         (WebCore::FrameLoader::dispatchDidCommitLoad):
1438         (WebCore::FrameLoader::dispatchAssignIdentifierToInitialRequest):
1439         (WebCore::FrameLoader::dispatchWillSendRequest):
1440         (WebCore::FrameLoader::dispatchDidReceiveResponse):
1441         (WebCore::FrameLoader::dispatchDidReceiveContentLength):
1442         (WebCore::FrameLoader::dispatchDidFinishLoading):
1443         * page/Chrome.cpp: Ditto.
1444         (WebCore::Chrome::mouseDidMoveOverElement):
1445         * page/Console.cpp: Ditto.
1446         (WebCore::Console::addMessage):
1447         (WebCore::Console::count):
1448         (WebCore::Console::profile):
1449         (WebCore::Console::profileEnd):
1450         (WebCore::Console::time):
1451         (WebCore::Console::timeEnd):
1452         (WebCore::Console::group):
1453         (WebCore::Console::groupEnd):
1454         * page/ContextMenuController.cpp: Ditto.
1455         (WebCore::ContextMenuController::handleContextMenuEvent):
1456         (WebCore::ContextMenuController::contextMenuItemSelected):
1457         * page/DOMWindow.cpp: Ditto.
1458         (WebCore::DOMWindow::sessionStorage):
1459         (WebCore::DOMWindow::localStorage):
1460         * page/EventHandler.cpp: Ditto.
1461         (WebCore::EventHandler::handleMousePressEvent):
1462         * page/FrameView.cpp: Ditto.
1463         (WebCore::FrameView::layout):
1464         (WebCore::FrameView::paintContents):
1465         * page/FrameView.h: Ditto.
1466         * page/Page.cpp: Ditto.
1467         (WebCore::Page::Page):
1468         (WebCore::Page::~Page):
1469         * page/Page.h: Ditto.
1470         * platform/ContextMenu.cpp: Ditto.
1471         (WebCore::ContextMenu::checkOrEnableIfNeeded):
1472         * platform/ContextMenuItem.h: Ditto.
1473         (WebCore::):
1474         * storage/Database.cpp: Ditto.
1475         (WebCore::Database::openDatabase):
1476         * workers/WorkerContext.cpp: Ditto.
1477         (WebCore::WorkerContext::importScripts):
1478         * xml/XMLHttpRequest.cpp: Ditto.
1479         (WebCore::XMLHttpRequest::didFinishLoading):
1480
1481 2009-09-16  Greg Bolsinga  <bolsinga@apple.com>
1482
1483         Add ENABLE(CONTEXT_MENUS)
1484         https://bugs.webkit.org/show_bug.cgi?id=29225
1485
1486         Reviewed by David Kilzer.
1487
1488         No new tests. (No change in default behavior.)
1489
1490         * DerivedSources.make: Use new WebCore.ContextMenus.exp file if ENABLE_CONTEXT_MENUS.
1491         * WebCore.base.exp: Move ContextMenu only exports to WebCore.ContextMenus.exp.
1492         * WebCore.xcodeproj/project.pbxproj: Add WebCore.ContextMenus.exp.
1493         * dom/Node.cpp: Use ENABLE(CONTEXT_MENUS) where applicable.
1494         (WebCore::Node::defaultEventHandler):
1495         * loader/EmptyClients.h: Ditto.
1496         * page/ContextMenuController.cpp: Wrap entire file in ENABLE(CONTEXT_MENUS).
1497         * page/EventHandler.cpp: Use ENABLE(CONTEXT_MENUS) where applicable.
1498         * page/EventHandler.h: Ditto.
1499         * page/Page.cpp: Ditto.
1500         (WebCore::Page::Page):
1501         * page/Page.h: Ditto.
1502         * page/mac/EventHandlerMac.mm: Ditto.
1503         * page/mac/WebCoreViewFactory.h: Ditto.
1504         * platform/ContextMenu.cpp: Wrap entire file in ENABLE(CONTEXT_MENUS).
1505         * platform/LocalizedStrings.h: Use ENABLE(CONTEXT_MENUS) where applicable.
1506         * platform/mac/ContextMenuItemMac.mm: Wrap entire file in ENABLE(CONTEXT_MENUS).
1507         * platform/mac/ContextMenuMac.mm: Ditto.
1508         * platform/mac/LocalizedStringsMac.mm: Use ENABLE(CONTEXT_MENUS) where applicable.
1509         * svg/graphics/SVGImage.cpp: Ditto.
1510         (WebCore::SVGImage::dataChanged):
1511
1512 2009-09-16  Dave Hyatt  <hyatt@apple.com>
1513
1514         Reviewed by Adam Roben.
1515
1516         Clean up invalidation for repainting.  Hoist the dirty rect intersection test in ScrollViewMac up
1517         into ScrollView so that all platforms do it.
1518         
1519         Patch deferred repaints in FrameView::repaintContentRectangle to only add the visible portion of
1520         the rectangle for repainting.
1521
1522         * page/FrameView.cpp:
1523         (WebCore::FrameView::repaintContentRectangle):
1524         * platform/ScrollView.cpp:
1525         (WebCore::ScrollView::repaintContentRectangle):
1526         * platform/mac/ScrollViewMac.mm:
1527         (WebCore::ScrollView::platformRepaintContentRectangle):
1528
1529 2009-09-16  Greg Bolsinga  <bolsinga@apple.com>
1530
1531         Add ENABLE(DRAG_SUPPORT)
1532         https://bugs.webkit.org/show_bug.cgi?id=29233
1533
1534         Reviewed by David Kilzer.
1535
1536         No new tests. (No change in default behavior.)
1537
1538         * DerivedSources.make: Use new WebCore.DragSupport.exp file if ENABLE_DRAG_SUPPORT.
1539         * WebCore.base.exp: Move Drag Support only exports to WebCore.DragSupport.exp.
1540         * WebCore.xcodeproj/project.pbxproj: Add WebCore.DragSupport.exp.
1541         * dom/Clipboard.h: Use ENABLE(DRAG_SUPPORT) where applicable.
1542         * loader/EmptyClients.h: Ditto.
1543         * page/DragController.cpp: Wrap entire file in ENABLE(DRAG_SUPPORT).
1544         * page/EventHandler.cpp: Use ENABLE(DRAG_SUPPORT) where applicable.
1545         (WebCore::EventHandler::EventHandler):
1546         (WebCore::EventHandler::clear):
1547         (WebCore::EventHandler::handleMousePressEvent):
1548         (WebCore::EventHandler::handleMouseReleaseEvent):
1549         (WebCore::EventHandler::handleMouseMoveEvent):
1550         * page/EventHandler.h: Ditto.
1551         * page/Page.cpp: Ditto.
1552         (WebCore::Page::Page):
1553         * page/Page.h: Ditto.
1554         * page/mac/DragControllerMac.mm: Wrap entire file in ENABLE(DRAG_SUPPORT).
1555         * page/mac/EventHandlerMac.mm: Use ENABLE(DRAG_SUPPORT) where applicable.
1556         (WebCore::EventHandler::passSubframeEventToSubframe):
1557         * platform/DragData.cpp: Wrap entire file in ENABLE(DRAG_SUPPORT).
1558         * platform/DragImage.cpp: Wrap entire file in ENABLE(DRAG_SUPPORT).
1559         * platform/mac/ClipboardMac.h: Use ENABLE(DRAG_SUPPORT) where applicable.
1560         * platform/mac/ClipboardMac.mm: Ditto.
1561         * platform/mac/DragDataMac.mm: Wrap entire file in ENABLE(DRAG_SUPPORT).
1562         * platform/mac/DragImageMac.mm: Wrap entire file in ENABLE(DRAG_SUPPORT).
1563         * rendering/RenderLayer.cpp: Use ENABLE(DRAG_SUPPORT) where applicable.
1564         (WebCore::RenderLayer::autoscroll):
1565         * rendering/RenderObject.cpp: Ditto.
1566         * rendering/RenderObject.h: Ditto.
1567         * svg/graphics/SVGImage.cpp: Ditto.
1568         (WebCore::SVGImage::dataChanged):
1569
1570 2009-09-16  Kevin Ollivier  <kevino@theolliviers.com>
1571
1572         wxMSW build fix after adding support for high resolution times in Win.
1573
1574         * page/Settings.cpp:
1575         * page/Settings.h:
1576
1577 2009-09-16  Vitaly Repeshko  <vitalyr@chromium.org>
1578
1579         Reviewed by Dimitri Glazkov.
1580
1581         [V8] Added operator==() to event listeners. This fixes V8 bindings
1582         build broken in http://trac.webkit.org/changeset/48402.
1583         https://bugs.webkit.org/show_bug.cgi?id=29298
1584
1585         * bindings/v8/V8AbstractEventListener.cpp:
1586         (WebCore::V8AbstractEventListener::V8AbstractEventListener): Now
1587         uses JSEventListenerType.
1588         * bindings/v8/V8AbstractEventListener.h:
1589         (WebCore::V8AbstractEventListener::operator==): Only compares
1590         pointers since we create at most one wrapper for a JS object.
1591
1592 2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1593
1594         Reviewed by Xan Lopez.
1595
1596         [GTK] Crash when visiting http://flipper.googlelabs.com/
1597         https://bugs.webkit.org/show_bug.cgi?id=29293
1598
1599         Check type for being null or empty before looking it up in the
1600         hash of supported types.
1601
1602         Tested by http/tests/loading/redirect-with-no-location-crash.html
1603
1604         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1605         (WebCore::MediaPlayerPrivate::supportsType):
1606
1607 2009-09-15  Geoffrey Garen  <ggaren@apple.com>
1608
1609         Reviewed by Sam Weinig.
1610         
1611         Removed the notion of "disconnected nodes with event listeners" because
1612         it was vestigial. The reference cycle it tried to solve was solved another
1613         way in https://bugs.webkit.org/show_bug.cgi?id=21260.
1614
1615         * dom/Document.cpp:
1616         (WebCore::Document::removeAllEventListeners):
1617         * dom/Document.h:
1618         * dom/Node.cpp:
1619         (WebCore::Node::~Node):
1620         (WebCore::Node::insertedIntoDocument):
1621         (WebCore::Node::removedFromDocument):
1622         (WebCore::Node::willMoveToNewOwnerDocument):
1623         (WebCore::Node::didMoveToNewOwnerDocument):
1624         (WebCore::Node::addEventListener):
1625         (WebCore::Node::removeEventListener):
1626         (WebCore::Node::clearAttributeEventListener):
1627
1628 2009-09-15  Chris Fleizach  <cfleizach@apple.com>
1629
1630         Reviewed by Beth Dakin.
1631
1632         WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
1633         https://bugs.webkit.org/show_bug.cgi?id=28841
1634
1635         Allow certain ARIA roles to change value with AXIncrement and AXDecrement. 
1636         Consolidate increment/decrement/changeValue methods. 
1637
1638         Test: accessibility/aria-slider-value-change.html
1639
1640         * accessibility/AccessibilityObject.cpp:
1641         * accessibility/AccessibilityRenderObject.cpp:
1642         (WebCore::AccessibilityRenderObject::increment):
1643         (WebCore::AccessibilityRenderObject::decrement):
1644         (WebCore::AccessibilityRenderObject::changeValueByPercent):
1645         (WebCore::AccessibilityRenderObject::setValue):
1646         (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
1647         * accessibility/AccessibilityRenderObject.h:
1648         * accessibility/AccessibilitySlider.cpp:
1649         * accessibility/AccessibilitySlider.h:
1650         * dom/Element.cpp:
1651         (WebCore::Element::updateAfterAttributeChanged):
1652
1653 2009-09-15  Geoffrey Garen  <ggaren@apple.com>
1654
1655         Reviewed by Sam Weinig.
1656
1657         Removed the jsEventListeners set from JSDOMGlobalObject, to simplify
1658         creation and destruction of JSDOMGlobalObject and event listeners.
1659         
1660         Added an abstract operator==() to EventListener, to replace the
1661         jsEventListeners set's role in determining if two event listeners are
1662         equal from the DOM's perspective.
1663         
1664         Added a type field to EventListener, and casting operations, to support
1665         operator==() and other abstract operations.
1666
1667         * WebCore.xcodeproj/project.pbxproj:
1668         * bindings/js/JSAbstractWorkerCustom.cpp:
1669         (WebCore::JSAbstractWorker::addEventListener):
1670         (WebCore::JSAbstractWorker::removeEventListener):
1671         * bindings/js/JSDOMApplicationCacheCustom.cpp:
1672         (WebCore::JSDOMApplicationCache::addEventListener):
1673         (WebCore::JSDOMApplicationCache::removeEventListener):
1674         * bindings/js/JSDOMGlobalObject.cpp:
1675         * bindings/js/JSDOMGlobalObject.h:
1676         * bindings/js/JSDOMWindowCustom.cpp:
1677         (WebCore::JSDOMWindow::addEventListener):
1678         (WebCore::JSDOMWindow::removeEventListener):
1679         * bindings/js/JSDesktopNotificationsCustom.cpp:
1680         (WebCore::JSNotification::addEventListener):
1681         (WebCore::):
1682         * bindings/js/JSEventListener.cpp:
1683         (WebCore::JSEventListener::JSEventListener):
1684         (WebCore::JSEventListener::~JSEventListener):
1685         (WebCore::JSEventListener::markJSFunction):
1686         (WebCore::JSEventListener::handleEvent):
1687         (WebCore::JSEventListener::reportError):
1688         (WebCore::JSEventListener::operator==):
1689         * bindings/js/JSEventListener.h:
1690         (WebCore::JSEventListener::cast):
1691         * bindings/js/JSEventSourceCustom.cpp:
1692         (WebCore::JSEventSource::addEventListener):
1693         (WebCore::JSEventSource::removeEventListener):
1694         * bindings/js/JSMessagePortCustom.cpp:
1695         (WebCore::JSMessagePort::addEventListener):
1696         (WebCore::JSMessagePort::removeEventListener):
1697         * bindings/js/JSNodeCustom.cpp:
1698         (WebCore::JSNode::addEventListener):
1699         (WebCore::JSNode::removeEventListener):
1700         * bindings/js/JSSVGElementInstanceCustom.cpp:
1701         (WebCore::JSSVGElementInstance::addEventListener):
1702         (WebCore::JSSVGElementInstance::removeEventListener):
1703         * bindings/js/JSWorkerContextCustom.cpp:
1704         (WebCore::JSWorkerContext::addEventListener):
1705         (WebCore::JSWorkerContext::removeEventListener):
1706         * bindings/js/JSXMLHttpRequestCustom.cpp:
1707         (WebCore::JSXMLHttpRequest::addEventListener):
1708         (WebCore::JSXMLHttpRequest::removeEventListener):
1709         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
1710         (WebCore::JSXMLHttpRequestUpload::addEventListener):
1711         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
1712         * bindings/objc/ObjCEventListener.h:
1713         (WebCore::ObjCEventListener::cast):
1714         * bindings/objc/ObjCEventListener.mm:
1715         (WebCore::ObjCEventListener::ObjCEventListener):
1716         (WebCore::ObjCEventListener::operator==):
1717         * dom/EventListener.h:
1718         (WebCore::EventListener::):
1719         (WebCore::EventListener::type):
1720         (WebCore::EventListener::EventListener):
1721         * dom/MessagePort.cpp:
1722         (WebCore::MessagePort::addEventListener):
1723         (WebCore::MessagePort::removeEventListener):
1724         * dom/Node.cpp:
1725         (WebCore::Node::removeEventListener):
1726         * inspector/InspectorDOMAgent.cpp:
1727         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
1728         (WebCore::InspectorDOMAgent::mainFrameDocument):
1729         (WebCore::InspectorDOMAgent::operator==):
1730         * inspector/InspectorDOMAgent.h:
1731         (WebCore::InspectorDOMAgent::cast):
1732         * loader/ImageDocument.cpp:
1733         (WebCore::ImageEventListener::cast):
1734         (WebCore::ImageEventListener::ImageEventListener):
1735         (WebCore::ImageEventListener::operator==):
1736         * loader/appcache/DOMApplicationCache.cpp:
1737         (WebCore::DOMApplicationCache::addEventListener):
1738         (WebCore::DOMApplicationCache::removeEventListener):
1739         * notifications/Notification.cpp:
1740         (WebCore::Notification::removeEventListener):
1741         * page/DOMWindow.cpp:
1742         (WebCore::DOMWindow::removeEventListener):
1743         * page/EventSource.cpp:
1744         (WebCore::EventSource::addEventListener):
1745         (WebCore::EventSource::removeEventListener):
1746         * svg/animation/SVGSMILElement.cpp:
1747         (WebCore::ConditionEventListener::cast):
1748         (WebCore::ConditionEventListener::ConditionEventListener):
1749         (WebCore::ConditionEventListener::operator==):
1750         (WebCore::ConditionEventListener::handleEvent):
1751         * workers/AbstractWorker.cpp:
1752         (WebCore::AbstractWorker::addEventListener):
1753         (WebCore::AbstractWorker::removeEventListener):
1754         * workers/WorkerContext.cpp:
1755         (WebCore::WorkerContext::addEventListener):
1756         (WebCore::WorkerContext::removeEventListener):
1757         * xml/XMLHttpRequest.cpp:
1758         (WebCore::XMLHttpRequest::addEventListener):
1759         (WebCore::XMLHttpRequest::removeEventListener):
1760         * xml/XMLHttpRequestUpload.cpp:
1761         (WebCore::XMLHttpRequestUpload::addEventListener):
1762         (WebCore::XMLHttpRequestUpload::removeEventListener):
1763
1764 2009-09-15  Alex Milowski  <alex@milowski.com>
1765
1766         Reviewed by Tor Arne Vestbø.
1767
1768         Added ENABLE_MATHML to feature defines
1769
1770         * Configurations/FeatureDefines.xcconfig:
1771
1772 2009-09-14  Andrew Richards  <randrew@gmail.com>
1773
1774         Reviewed by Sam Weinig.
1775
1776         Document.elementFromPoint() and Document.caretRangeFromPoint() erroneously returning null at points visible only after scrolling.
1777         https://bugs.webkit.org/show_bug.cgi?id=29245
1778
1779         Use visibleContentRect() instead of boundsRect() when checking hit point bounds on viewport.
1780
1781         * dom/Document.cpp:
1782         (WebCore::Document::elementFromPoint):
1783         (WebCore::Document::caretRangeFromPoint):
1784
1785 2009-09-15  Jungshik Shin  <jshin@chromium.org>
1786
1787         Reviewed by Eric Seidel
1788
1789         http://bugs.webkit.org/show_bug.cgi?id=26660
1790
1791         Chromium Windows: When rotated, the baseline for a span of complex
1792         script is completely misaligned with that of the adjacent 
1793         simple script text. It's fixed by not applying the baseline offset for
1794         the Skia code path.
1795
1796         Test: transforms/2d/hindi-rotated.html
1797
1798         * platform/graphics/chromium/UniscribeHelper.cpp:
1799         (WebCore::UniscribeHelper::draw):
1800
1801 2009-09-15  Anders Carlsson  <andersca@apple.com>
1802
1803         Reviewed by Adam Roben.
1804
1805         Pass the PopupMenu pointer to CreateWindowEx and then get it from the LPCREATESTRUCT in
1806         the WM_CREATE handler. This way we don't have to first create an zero size window and then size it.
1807         
1808         * platform/win/PopupMenuWin.cpp:
1809         (WebCore::PopupMenu::show):
1810         (WebCore::PopupMenu::PopupMenuWndProc):
1811
1812 2009-09-15  Drew Wilson  <atwilson@google.com>
1813
1814         Reviewed by Darin Adler.
1815
1816         MessageEvent should not be cancelable by default
1817         https://bugs.webkit.org/show_bug.cgi?id=27846
1818
1819         * dom/MessageEvent.cpp:
1820         (WebCore::MessageEvent::MessageEvent):
1821         Changed constructor to set cancelable=false by default, per the HTML5 spec.
1822
1823 2009-09-15  Charles Wei  <charles.wei@torchmobile.com.cn>
1824
1825         Reviewed by George Staikos.
1826
1827         Fix SVG path parsing error if a command starts with dot '.'
1828         https://bugs.webkit.org/show_bug.cgi?id=29123
1829
1830         * svg/SVGParserUtilities.cpp:
1831         (WebCore::SVGPathParser::parseSVG):
1832
1833 2009-09-15  Alexander Pavlov  <apavlov@chromium.org>
1834
1835         Reviewed by Timothy Hatcher.
1836
1837         Implement conditional breakpoints in the Web Inspector frontend.
1838         https://bugs.webkit.org/show_bug.cgi?id=28908
1839
1840         * English.lproj/localizedStrings.js:
1841         * WebCore.gypi:
1842         * WebCore.vcproj/WebCore.vcproj:
1843         * inspector/front-end/Breakpoint.js:
1844         (WebInspector.Breakpoint.prototype.set condition):
1845         * inspector/front-end/Popup.js: Added.
1846         (WebInspector.Popup):
1847         (WebInspector.Popup.prototype.show):
1848         (WebInspector.Popup.prototype.hide):
1849         (WebInspector.Popup.prototype.get visible):
1850         (WebInspector.Popup.prototype.set element):
1851         (WebInspector.Popup.prototype.get element):
1852         (WebInspector.Popup.prototype.positionElement):
1853         (WebInspector.Popup.prototype.set anchor):
1854         (WebInspector.Popup.prototype.get anchor):
1855         (WebInspector.Popup.prototype.set autoHide):
1856         (WebInspector.Popup.prototype._checkNotVisible):
1857         (WebInspector.Popup.prototype._keyEventHandler):
1858         (WebInspector.Popup.prototype._mouseDownEventHandler):
1859         * inspector/front-end/SourceFrame.js:
1860         (WebInspector.SourceFrame.prototype.revealLine):
1861         (WebInspector.SourceFrame.prototype._loaded):
1862         (WebInspector.SourceFrame.prototype._documentContextMenu):
1863         (WebInspector.SourceFrame.prototype._documentMouseDown):
1864         (WebInspector.SourceFrame.prototype._editBreakpointCondition.committed):
1865         (WebInspector.SourceFrame.prototype._editBreakpointCondition.dismissed):
1866         (WebInspector.SourceFrame.prototype._editBreakpointCondition):
1867         (WebInspector.SourceFrame.prototype._showBreakpointConditionPopup):
1868         (WebInspector.SourceFrame.prototype._createPopupElement):
1869         (WebInspector.SourceFrame.prototype._addBreakpointToSource):
1870         (WebInspector.SourceFrame.prototype._removeBreakpointFromSource):
1871         (WebInspector.SourceFrame.prototype._drawBreakpointImagesIfNeeded.drawBreakpoint):
1872         (WebInspector.SourceFrame.prototype._drawBreakpointImagesIfNeeded):
1873         * inspector/front-end/WebKit.qrc:
1874         * inspector/front-end/inspector.html:
1875         * inspector/front-end/inspector.js:
1876         (WebInspector.set currentFocusElement):
1877         (WebInspector.set currentPanel):
1878         (WebInspector.loaded):
1879         (WebInspector.contextMenu):
1880         (WebInspector.elementDragStart):
1881         (WebInspector.updateResource):
1882         (WebInspector.drawLoadingPieChart):
1883         (WebInspector.linkifyURLAsNode):
1884         (WebInspector.startEditing.getContent):
1885         (WebInspector.startEditing.editingCancelled):
1886         (WebInspector.startEditing.editingCommitted):
1887         * inspector/front-end/utilities.js:
1888         (Element.prototype.positionAt):
1889         (Element.prototype.offsetRelativeToWindow):
1890
1891 2009-09-14  Brady Eidson  <beidson@apple.com>
1892
1893         Reviewed by Darin Adler.
1894
1895         Page cache should support pages with unload handlers as an experiment.
1896         <rdar://problem/7196485> and https://bugs.webkit.org/show_bug.cgi?id=29021
1897
1898         For the experiment, only allow pages with unload handlers into the Page Cache on
1899         Mac and Windows.
1900
1901         * loader/FrameLoader.cpp:
1902         (WebCore::FrameLoader::canCachePageContainingThisFrame):
1903         (WebCore::FrameLoader::logCanCacheFrameDecision):
1904
1905 2009-09-14  Simon Fraser  <simon.fraser@apple.com>
1906
1907         Fix the change in r48376 to do a null-check to fix a crashing test.
1908
1909         * dom/SelectElement.cpp:
1910         (WebCore::SelectElement::menuListDefaultEventHandler):
1911
1912 2009-09-14  Simon Fraser  <simon.fraser@apple.com>
1913
1914         Reviewed by Dan Bernstein.
1915
1916         <rdar://problem/7047282> Safari crashes at WebCore::RenderMenuList::adjustInnerStyle() + 436
1917         
1918         Avoid a crash when a mouse event handler on a <select> changes the select from a popup
1919         to a list (by setting the 'size' property) inside the event handler.
1920
1921         Test: fast/forms/select-change-popup-to-listbox-in-event-handler.html
1922
1923         * dom/SelectElement.cpp:
1924         (WebCore::SelectElement::menuListDefaultEventHandler):
1925
1926 2009-09-14  Anders Carlsson  <andersca@apple.com>
1927
1928         Reviewed by Jon Honeycutt.
1929
1930         More PopupMenu cleanup.
1931         
1932         * platform/PopupMenu.h:
1933         * platform/win/PopupMenuWin.cpp:
1934         (WebCore::PopupMenu::show):
1935         Call registerClass.
1936         
1937         (WebCore::PopupMenu::registerClass):
1938         Make this a private static member function so it can refer to PopupMenuWndProc.
1939         
1940         (WebCore::PopupMenu::PopupMenuWndProc):
1941         Try to get the PopupMenu and call its wndProc member function.
1942         
1943         (WebCore::PopupMenu::wndProc):
1944         Make this a member function.
1945
1946 2009-09-14  Brady Eidson  <beidson@apple.com>
1947
1948         Not reviewed, maybe should've been:
1949
1950         Cleaning up more Windows-specific fallout from the fix for:
1951         <rdar://problem/7174050> and https://bugs.webkit.org/show_bug.cgi?id=29160
1952
1953         * platform/network/cf/ResourceHandleCFNet.cpp:
1954         (WebCore::WebCoreSynchronousLoader::load): Don't allow empty CFStrings as the stored credentials,
1955           as related checks all look at nullity when they really mean to be looking for emptiness. 
1956
1957 2009-09-14  Anders Carlsson  <andersca@apple.com>
1958
1959         Speculative Qt build fix.
1960         
1961         * platform/qt/QWebPopup.cpp:
1962         (WebCore::QWebPopup::hidePopup):
1963
1964 2009-09-14  Dirk Pranke  <dpranke@chromium.org>
1965
1966         Reviewed by Darin Fisher.
1967
1968         Fix RenderThemeChromiumWin::determineClassicState so that classic_state
1969         matches the state values (and you get a single classic_state value
1970         for a given {part,state} value. This change will be tested by a 
1971         chromium patch that will land after this.
1972
1973         This will be tested by code landing downstream on Chromium.org; the
1974         code does not execute on webkit.org.
1975
1976         * rendering/RenderThemeChromiumWin.cpp:
1977         (WebCore::RenderThemeChromiumWin::determineClassicState):
1978         (WebCore::RenderThemeChromiumWin::getThemeData):
1979
1980 2009-09-14  Anders Carlsson  <andersca@apple.com>
1981
1982         Reviewed by Adam Roben.
1983
1984         https://bugs.webkit.org/show_bug.cgi?id=29138
1985         Simplify popup menu handling.
1986
1987         * platform/PopupMenuClient.h:
1988         Rename hidePopup to popupDidHide.
1989         
1990         * platform/chromium/PopupMenuChromium.cpp:
1991         (WebCore::PopupListBox::handleKeyEvent):        
1992         (WebCore::PopupListBox::abandon):
1993         (WebCore::PopupListBox::acceptIndex):
1994         Call popupDidHide instead of hidePopup.
1995         
1996         * platform/gtk/PopupMenuGtk.cpp:
1997         (WebCore::PopupMenu::menuUnmapped):
1998         Ditto.
1999         
2000         * platform/mac/PopupMenuMac.mm:
2001         (WebCore::PopupMenu::show):
2002         Ditto.
2003         
2004         * platform/win/PopupMenuWin.cpp:
2005         (WebCore::PopupMenu::hide):
2006         Call popupDidHide.
2007         
2008         (WebCore::PopupWndProc):
2009         Call PopupMenu::hide.
2010         
2011         * platform/wx/PopupMenuWx.cpp:
2012         (WebCore::PopupMenu::OnMenuItemSelected):
2013         Call popupDidHide.
2014         
2015         * rendering/RenderMenuList.cpp:
2016         (WebCore::RenderMenuList::hidePopup):
2017         (WebCore::RenderMenuList::popupDidHide):
2018         * rendering/RenderMenuList.h:
2019         Set the "popup is visible" flag in popupDidHide.
2020         
2021         * rendering/RenderTextControlSingleLine.cpp:
2022         (WebCore::RenderTextControlSingleLine::hidePopup):
2023         (WebCore::RenderTextControlSingleLine::popupDidHide):
2024         * rendering/RenderTextControlSingleLine.h:
2025         Ditto.
2026
2027 2009-09-14  Anders Carlsson  <andersca@apple.com>
2028
2029         Reviewed by David Hyatt.
2030
2031         - Fix <rdar://problem/7182275>.
2032
2033         Make sure that the newly created scrollbar's style is up to date.
2034         
2035         * platform/win/PopupMenuWin.cpp:
2036         (WebCore::PopupMenu::~PopupMenu):
2037         Call setParent so that the scrollbar's parts are torn down correctly.
2038         
2039         (WebCore::PopupMenu::show):
2040         Call styleChanged.
2041
2042 2009-09-11  Jon Honeycutt  <jhoneycutt@apple.com>
2043
2044         <rdar://problem/7197644> WebKit should broadcast an MSAA event when
2045         jumping to a named anchor
2046
2047         https://bugs.webkit.org/show_bug.cgi?id=28899
2048
2049         Reviewed by Adam Roben.
2050
2051         * accessibility/AXObjectCache.h:
2052         (WebCore::AXObjectCache::):
2053         Added declaration for handleScrolledToAnchor(). Added a new entry to
2054         the enum of accessibility notifications.
2055
2056         * accessibility/AccessibilityObject.cpp:
2057         (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
2058         Code moved from AccessibilityRenderObject::internalLinkElement() and
2059         refactored slightly; walks the tree until it finds a Node (with a
2060         renderer) whose accessibility is not ignored.
2061
2062         * accessibility/AccessibilityObject.h:
2063         Added a declaration for firstAccessibleObjectFromNode().
2064
2065         * accessibility/AccessibilityRenderObject.cpp:
2066         (WebCore::AccessibilityRenderObject::internalLinkElement):
2067         Code moved to AccessibilityObject::firstAccessibleObjectFromNode().
2068
2069         * accessibility/chromium/AXObjectCacheChromium.cpp:
2070         (WebCore::AXObjectCache::handleScrolledToAnchor):
2071         Stubbed.
2072
2073         * accessibility/gtk/AXObjectCacheAtk.cpp:
2074         (WebCore::AXObjectCache::handleScrolledToAnchor):
2075         Stubbed.
2076
2077         * accessibility/mac/AXObjectCacheMac.mm:
2078         (WebCore::AXObjectCache::postPlatformNotification):
2079         Add a default case that returns early for notifications that Mac
2080         doesn't handle.
2081         (WebCore::AXObjectCache::handleScrolledToAnchor):
2082         Stubbed.
2083
2084         * accessibility/win/AXObjectCacheWin.cpp:
2085         (WebCore::AXObjectCache::handleScrolledToAnchor):
2086         Post an AXScrolledToAnchor notification for the first accessible from
2087         the anchor Node.
2088         (WebCore::AXObjectCache::postPlatformNotification):
2089         If the notification is AXFocusedUIElementChanged, fire an
2090         EVENT_OBJECT_FOCUS. If the notification is AXScrolledToAnchor, fire
2091         EVENT_SYSTEM_SCROLLINGSTART, matching Firefox.
2092         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
2093         Code moved to postPlatformNotification().
2094
2095         * page/FrameView.cpp:
2096         (WebCore::FrameView::scrollToAnchor):
2097         Call AXObjectCache::handleScrolledToAnchor().
2098
2099 2009-09-14  Anthony Ricaud  <rik@webkit.org>
2100
2101         Reviewed by Timothy Hatcher.
2102
2103         Cookies are not inspectable after reloading a page
2104         https://bugs.webkit.org/show_bug.cgi?id=29222
2105
2106         Create the cookieTreeElement on initialization instead of when the view is shown.
2107         Reset the selected element of the sidebar on reset.
2108
2109         * inspector/front-end/StoragePanel.js:
2110         (WebInspector.StoragePanel):
2111         (WebInspector.StoragePanel.prototype.show):
2112         (WebInspector.StoragePanel.prototype.reset):
2113
2114
2115 2009-09-14  Brady Eidson  <beidson@apple.com>
2116
2117         Windows build fix.
2118
2119         * platform/network/cf/ResourceHandleCFNet.cpp:
2120         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
2121         (WebCore::ResourceHandle::receivedCredential):
2122         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
2123         (WebCore::WebCoreSynchronousLoader::load):
2124
2125 2009-09-14  Brady Eidson  <beidson@apple.com>
2126
2127         Reviewed by Alexey Proskuryakov.
2128
2129         Safari 4 cannot be used to update firmware on Linksys routers.
2130         <rdar://problem/7174050> and https://bugs.webkit.org/show_bug.cgi?id=29160
2131
2132         In http://trac.webkit.org/changeset/42483, we disabled CFNetwork's session credential storage and 
2133         implemented our own in WebCore.
2134
2135         One feature we lost is that CFNetwork would automatically send previously authenticated credentials
2136         with new connections when the paths match, as allowed by RFC 2617 for HTTP Basic and Digest Authentication.  
2137
2138         Even though it's optional for User Agents to do this, (some?) Linksys routers rely on this behavior for
2139         HTTP Basic Authentication.  So now WebCore's CredentialStorage will track URL paths for Basic credentials.
2140
2141         We're not making this enhancement for Digest at this time, since we don't know of anything that broke
2142         due to the change in Digest behavior.
2143
2144         Test: http/tests/loading/basic-credentials-sent-automatically.html
2145               http/tests/loading/basic-auth-resend-wrong-credentials.html
2146
2147         * WebCore.base.exp:
2148         * WebCore.vcproj/WebCore.vcproj:
2149         * WebCore.xcodeproj/project.pbxproj:
2150
2151         * platform/network/Credential.cpp:
2152         (WebCore::Credential::isEmpty):
2153         * platform/network/Credential.h:
2154
2155         Add a slightly more full featured CredentialStore that will track URL paths a credential belongs to:
2156         * platform/network/CredentialStorage.cpp: Added.
2157         (WebCore::protectionSpaceToCredentialMap):
2158         (WebCore::originToDefaultCredentialMap):
2159         (WebCore::originStringFromURL):
2160         (WebCore::CredentialStorage::set):
2161         (WebCore::CredentialStorage::get):
2162         (WebCore::CredentialStorage::getDefaultAuthenticationCredential):
2163         * platform/network/CredentialStorage.h: Added.
2164
2165         Allow ProtectionSpace to be a hash key:
2166         * platform/network/ProtectionSpace.cpp:
2167         (WebCore::ProtectionSpace::ProtectionSpace):
2168         * platform/network/ProtectionSpace.h:
2169         (WebCore::ProtectionSpace::ProtectionSpace):
2170         (WebCore::ProtectionSpace::isHashTableDeletedValue):
2171         * platform/network/ProtectionSpaceHash.h: Added.
2172         (WebCore::ProtectionSpaceHash::hash):
2173         (WebCore::ProtectionSpaceHash::equal):
2174
2175         Allow ResourceHandles to remember the initial credential they used:
2176         * platform/network/ResourceHandleInternal.h:
2177
2178         Allow mutable ResourceRequests to update their platform object if HTTP header fields change:
2179         * platform/network/ResourceRequestBase.cpp:
2180         (WebCore::ResourceRequestBase::addHTTPHeaderField):
2181
2182         Remove WebCoreCredentialStorage:
2183         * platform/network/cf/AuthenticationCF.cpp:
2184         * platform/network/cf/AuthenticationCF.h:
2185         * platform/network/mac/AuthenticationMac.h:
2186         * platform/network/mac/AuthenticationMac.mm:
2187
2188         Change ResourceHandleCFNet to try to use stored credentials on new connections, if appropriate:
2189         * platform/network/cf/ResourceHandleCFNet.cpp:
2190         (WebCore::ResourceHandle::start):
2191         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Only try the ProtectionSpace key'ed
2192           Credential if it does not match the initially used Credential.
2193         (WebCore::ResourceHandle::receivedCredential):
2194         (WebCore::WebCoreSynchronousLoader::didReceiveChallenge): Only try the ProtectionSpace key'ed
2195           Credential if it does not match the initially used Credential.
2196         (WebCore::WebCoreSynchronousLoader::load):
2197
2198         Change ResourceHandleMac to try to use stored credentials on new connections, if appropriate:
2199         * platform/network/mac/ResourceHandleMac.mm:
2200         (WebCore::ResourceHandle::start):
2201         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Only try the ProtectionSpace key'ed
2202           Credential if it does not match the initially used Credential.
2203         (WebCore::ResourceHandle::receivedCredential):
2204         (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Only try the 
2205           ProtectionSpace key'ed Credential if it does not match the initially used Credential.
2206         (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
2207
2208         Add base64-ability to CString:
2209         * platform/text/CString.cpp:
2210         (WebCore::CStringBuffer::base64Encode):
2211         (WebCore::CString::base64Encode):
2212         * platform/text/CString.h:
2213         (WebCore::CStringBuffer::create):
2214         (WebCore::CStringBuffer::CStringBuffer):
2215
2216 2009-09-12  Mark Rowe  <mrowe@apple.com>
2217
2218         Reviewed by Dan Bernstein.
2219
2220         Fix <rdar://problem/6954546> Crashes in WebCore::RenderPart::setWidget below FrameLoader::loadPlugin.
2221
2222         The calls to FrameLoader::requestObject within RenderPartObject::updateWidget can result in a plug-in
2223         being initialized.  This can run cause arbitrary JavaScript to run and may result in the RenderPartObject
2224         being detached from the render tree and destroyed, causing a crash like <rdar://problem/6954546>.
2225
2226         No test is possible until <rdar://problem/7090444> is fixed.
2227
2228         * rendering/RenderPartObject.cpp:
2229         (WebCore::RenderPartObject::updateWidget): Ensure that we stay alive for the duration of plug-in initialization.
2230
2231 2009-09-12  Mark Rowe  <mrowe@apple.com>
2232
2233         Reviewed by Dan Bernstein.
2234
2235         Add RenderWidgetProtector to simplify protecting a RenderWidget from destruction for the
2236         duration of a function.  Deploy it within RenderWidget.
2237
2238         * rendering/RenderWidget.cpp:
2239         (WebCore::RenderWidget::setWidgetGeometry):
2240         (WebCore::RenderWidget::updateWidgetPosition): Use a RefPtr rather than explicitly
2241         ref'ing and deref'ing the node.
2242         * rendering/RenderWidget.h:
2243         * rendering/RenderWidgetProtector.h:
2244         (WebCore::RenderWidgetProtector::RenderWidgetProtector):
2245         (WebCore::RenderWidgetProtector::~RenderWidgetProtector):
2246
2247 2009-09-14  Cameron McCormack  <cam@mcc.id.au>
2248
2249         Reviewed by Eric Seidel.
2250
2251         CodeGenerator.pm needs some cleaning up
2252         https://bugs.webkit.org/show_bug.cgi?id=29238
2253
2254         * bindings/scripts/CodeGenerator.pm:
2255         (FindParentsRecursively): Removed; its functionality is now handled in
2256         AddMethodsConstantsAndAttributesFromParentClasses.
2257         (ForAllParents): New function that visits an interface's ancestors and
2258         invokes a callback for each one.
2259         (AddMethodsConstantsAndAttributesFromParentClasses): Simplified by using
2260         ForAllParents.
2261         (GetMethodsAndAttributesFromParentClasses): Ditto.
2262         (IDLFileForInterface): Factored out previous calls to ScanDirectory into
2263         this new function, which returns the filename containing a given IDL
2264         interface definition.
2265         (ParseInterface): Simplified by using IDLFileForInterface.
2266         (ScanDirectory): Removed in lieu of IDLFileForInterface.
2267         * bindings/scripts/CodeGeneratorV8.pm: Drop call to
2268         FindParentsRecursively and get the list of parents from the
2269         AddMethodsConstantsAndAttributesFromParentClasses call instead.
2270
2271 2009-09-14  Yael Aharon  <yael.aharon@nokia.com>
2272
2273         Reviewed by Tor Arne Vestbø.
2274
2275         [Qt] Assert hit when dropping a file in QtLauncher
2276         https://bugs.webkit.org/show_bug.cgi?id=29242
2277
2278         Qt's implementation of DropData::asURL does not return a URL encoded string
2279         as expected.
2280
2281         * platform/qt/DragDataQt.cpp:
2282         (WebCore::DragData::asURL):
2283
2284 2009-09-13  Kevin Ollivier  <kevino@theolliviers.com>
2285
2286         wx build fix, file was missed during TLS.cpp removal.
2287
2288         * page/wx/FrameWx.cpp: Added.
2289         (WebCore::Frame::dragImageForSelection):
2290
2291 2009-09-13  Anthony Ricaud  <rik@webkit.org>
2292
2293         Reviewed by Oliver Hunt.
2294
2295         Web Inspector: Add "New Style Rule" to the localizedStrings
2296         https://bugs.webkit.org/show_bug.cgi?id=29237
2297
2298         * English.lproj/localizedStrings.js:
2299
2300 2009-09-13  Kevin Watters  <kevinwatters@gmail.com>
2301
2302         Reviewed by Kevin Ollivier.
2303
2304         [wx] Implement filesystem functions.
2305
2306         https://bugs.webkit.org/show_bug.cgi?id=29196
2307
2308         * platform/wx/FileSystemWx.cpp:
2309         (WebCore::fileExists):
2310         (WebCore::deleteFile):
2311         (WebCore::deleteEmptyDirectory):
2312         (WebCore::getFileSize):
2313         (WebCore::getFileModificationTime):
2314         (WebCore::makeAllDirectories):
2315         (WebCore::pathByAppendingComponent):
2316         (WebCore::homeDirectoryPath):
2317         (WebCore::directoryName):
2318
2319 2009-09-12  Kevin Ollivier  <kevino@theolliviers.com>
2320
2321         wx build fixes for wx 2.9.
2322
2323         * platform/wx/ScrollbarThemeWx.cpp:
2324         * platform/wx/wxcode/gtk/scrollbar_render.cpp:
2325         (wxGetGdkWindowForDC):
2326
2327 2009-09-12  Oliver Hunt  <oliver@apple.com>
2328
2329         Reviewed by Maciej Stachowiak.
2330
2331         [ES5] Implement Object.keys
2332         https://bugs.webkit.org/show_bug.cgi?id=29170
2333
2334         Switch from getPropertyNames to getOwnPropertyNames, and provide custom
2335         getPropertyNames to DOMWindow, DOMWindowShell and QuarantinedObjectWrapper
2336         in order to ensure correct semantics are maintained.
2337
2338         Test: fast/js/Object-keys.html
2339
2340         * bindings/js/JSDOMWindowCustom.cpp:
2341         (WebCore::JSDOMWindow::getOwnPropertyNames):
2342         * bindings/js/JSDOMWindowShell.cpp:
2343         (WebCore::JSDOMWindowShell::getOwnPropertyNames):
2344         * bindings/js/JSDOMWindowShell.h:
2345         * bindings/js/JSHistoryCustom.cpp:
2346         (WebCore::JSHistory::getOwnPropertyNames):
2347         * bindings/js/JSLocationCustom.cpp:
2348         (WebCore::JSLocation::getOwnPropertyNames):
2349         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2350         (WebCore::JSQuarantinedObjectWrapper::getPropertyNames):
2351         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertyNames):
2352         * bindings/js/JSQuarantinedObjectWrapper.h:
2353         * bindings/js/JSStorageCustom.cpp:
2354         (WebCore::JSStorage::getOwnPropertyNames):
2355         * bindings/scripts/CodeGeneratorJS.pm:
2356         * bridge/runtime_object.cpp:
2357         (JSC::RuntimeObjectImp::getPropertyNames):
2358         (JSC::RuntimeObjectImp::getOwnPropertyNames):
2359         * bridge/runtime_object.h:
2360
2361 2009-09-12  Sam Weinig  <sam@webkit.org>
2362
2363         Reviewed by Anders Carlsson.
2364
2365         Fix for https://bugs.webkit.org/show_bug.cgi?id=29219
2366         Document.elementFromPoint() should take page scroll into consideration
2367
2368         Test: fast/dom/elementFromPoint-relative-to-viewport.html
2369
2370         * dom/Document.cpp:
2371         (WebCore::Document::elementFromPoint):
2372         (WebCore::Document::caretRangeFromPoint):
2373
2374 2009-09-12  Sam Weinig  <sam@webkit.org>
2375
2376         Reviewed by Maciej Stachowiak.
2377
2378         Fix for https://bugs.webkit.org/show_bug.cgi?id=29217
2379         Document.caretRangeFromPoint should take the scroll offset into account before hit testing
2380
2381         In accordance with the CSSOM View Module spec, Document.caretRangeFromPoint should interpret
2382         the point passed to it as relative to the viewport, not the document.
2383
2384         Test: fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html
2385
2386         * dom/Document.cpp:
2387         (WebCore::Document::caretRangeFromPoint):
2388
2389 2009-09-11  Chris Marrin  <cmarrin@apple.com>
2390
2391         Reviewed by Oliver Hunt.
2392
2393         Added some manual tests to show WebGL in action
2394         https://bugs.webkit.org/show_bug.cgi?id=29215
2395
2396         * manual-tests/webgl: Added.
2397         * manual-tests/webgl/Earth.html: Added.
2398         * manual-tests/webgl/ManyPlanetsDeep.html: Added.
2399         * manual-tests/webgl/SpinningBox.html: Added.
2400         * manual-tests/webgl/TeapotPerPixel.html: Added.
2401         * manual-tests/webgl/TeapotPerVertex.html: Added.
2402         * manual-tests/webgl/resources: Added.
2403         * manual-tests/webgl/resources/CanvasMatrix.js: Added.
2404         * manual-tests/webgl/resources/earthmap1k.jpg: Added.
2405         * manual-tests/webgl/resources/mars500x250.png: Added.
2406         * manual-tests/webgl/resources/teapot.obj: Added.
2407         * manual-tests/webgl/resources/utils3d.js: Added.
2408  
2409 2009-09-10  Chris Fleizach  <cfleizach@apple.com>
2410
2411         Reviewed by Darin Adler.
2412
2413         aria definition role spelled wrong "defintion"
2414         https://bugs.webkit.org/show_bug.cgi?id=28840
2415
2416         Test: accessibility/aria-slider-value-change.html
2417
2418         * accessibility/AccessibilityRenderObject.cpp:
2419         (WebCore::RoleEntry::):
2420
2421 2009-09-11  Erik Arvidsson  <arv@chromium.org>
2422
2423         Reviewed by Eric Seidel.
2424
2425         Fixes an assert in Node::isFocusable which was causing crashes in certain cases.
2426         https://bugs.webkit.org/show_bug.cgi?id=29210
2427
2428         * dom/Node.cpp:
2429         (WebCore::Node::isFocusable):
2430
2431 2009-09-11  Chris Marrin  <cmarrin@apple.com>
2432
2433         Reviewed by Oliver Hunt.
2434
2435         Added variants to uniform* and vertexAttrib* calls which take sequence<> in place of CanvasArray
2436         https://bugs.webkit.org/show_bug.cgi?id=29139
2437         
2438         I also added a data() call to each of the CanvasArray subclasses to give back a types pointer
2439         to the baseAddress().
2440
2441         * Configurations/FeatureDefines.xcconfig:
2442         * bindings/js/JSCanvasRenderingContext3DCustom.cpp:
2443         (WebCore::toArray):
2444         (WebCore::):
2445         (WebCore::dataFunctionf):
2446         (WebCore::dataFunctioni):
2447         (WebCore::dataFunctionMatrix):
2448         (WebCore::JSCanvasRenderingContext3D::uniform1fv):
2449         (WebCore::JSCanvasRenderingContext3D::uniform1iv):
2450         (WebCore::JSCanvasRenderingContext3D::uniform2fv):
2451         (WebCore::JSCanvasRenderingContext3D::uniform2iv):
2452         (WebCore::JSCanvasRenderingContext3D::uniform3fv):
2453         (WebCore::JSCanvasRenderingContext3D::uniform3iv):
2454         (WebCore::JSCanvasRenderingContext3D::uniform4fv):
2455         (WebCore::JSCanvasRenderingContext3D::uniform4iv):
2456         (WebCore::JSCanvasRenderingContext3D::uniformMatrix2fv):
2457         (WebCore::JSCanvasRenderingContext3D::uniformMatrix3fv):
2458         (WebCore::JSCanvasRenderingContext3D::uniformMatrix4fv):
2459         (WebCore::JSCanvasRenderingContext3D::vertexAttrib1fv):
2460         (WebCore::JSCanvasRenderingContext3D::vertexAttrib2fv):
2461         (WebCore::JSCanvasRenderingContext3D::vertexAttrib3fv):
2462         (WebCore::JSCanvasRenderingContext3D::vertexAttrib4fv):
2463         * html/canvas/CanvasByteArray.h:
2464         (WebCore::CanvasByteArray::data):
2465         * html/canvas/CanvasFloatArray.h:
2466         (WebCore::CanvasFloatArray::data):
2467         * html/canvas/CanvasIntArray.h:
2468         (WebCore::CanvasIntArray::data):
2469         * html/canvas/CanvasRenderingContext3D.cpp:
2470         (WebCore::CanvasRenderingContext3D::uniform1fv):
2471         (WebCore::CanvasRenderingContext3D::uniform1iv):
2472         (WebCore::CanvasRenderingContext3D::uniform2fv):
2473         (WebCore::CanvasRenderingContext3D::uniform2iv):
2474         (WebCore::CanvasRenderingContext3D::uniform3fv):
2475         (WebCore::CanvasRenderingContext3D::uniform3iv):
2476         (WebCore::CanvasRenderingContext3D::uniform4fv):
2477         (WebCore::CanvasRenderingContext3D::uniform4iv):
2478         (WebCore::CanvasRenderingContext3D::uniformMatrix2fv):
2479         (WebCore::CanvasRenderingContext3D::uniformMatrix3fv):
2480         (WebCore::CanvasRenderingContext3D::uniformMatrix4fv):
2481         (WebCore::CanvasRenderingContext3D::vertexAttrib1fv):
2482         (WebCore::CanvasRenderingContext3D::vertexAttrib2fv):
2483         (WebCore::CanvasRenderingContext3D::vertexAttrib3fv):
2484         (WebCore::CanvasRenderingContext3D::vertexAttrib4fv):
2485         * html/canvas/CanvasRenderingContext3D.h:
2486         * html/canvas/CanvasRenderingContext3D.idl:
2487         * html/canvas/CanvasShortArray.h:
2488         (WebCore::CanvasShortArray::data):
2489         * html/canvas/CanvasUnsignedByteArray.h:
2490         (WebCore::CanvasUnsignedByteArray::data):
2491         * html/canvas/CanvasUnsignedIntArray.h:
2492         (WebCore::CanvasUnsignedIntArray::data):
2493         * html/canvas/CanvasUnsignedShortArray.h:
2494         (WebCore::CanvasUnsignedShortArray::data):
2495         * platform/graphics/GraphicsContext3D.h:
2496         * platform/graphics/mac/GraphicsContext3DMac.cpp:
2497         (WebCore::GraphicsContext3D::uniform1fv):
2498         (WebCore::GraphicsContext3D::uniform2fv):
2499         (WebCore::GraphicsContext3D::uniform3fv):
2500         (WebCore::GraphicsContext3D::uniform4fv):
2501         (WebCore::GraphicsContext3D::uniform1iv):
2502         (WebCore::GraphicsContext3D::uniform2iv):
2503         (WebCore::GraphicsContext3D::uniform3iv):
2504         (WebCore::GraphicsContext3D::uniform4iv):
2505         (WebCore::GraphicsContext3D::uniformMatrix2fv):
2506         (WebCore::GraphicsContext3D::uniformMatrix3fv):
2507         (WebCore::GraphicsContext3D::uniformMatrix4fv):
2508         (WebCore::GraphicsContext3D::vertexAttrib1fv):
2509         (WebCore::GraphicsContext3D::vertexAttrib2fv):
2510         (WebCore::GraphicsContext3D::vertexAttrib3fv):
2511         (WebCore::GraphicsContext3D::vertexAttrib4fv):
2512
2513 2009-09-11  Fumitoshi Ukai  <ukai@chromium.org>
2514
2515         Reviewed by Eric Seidel.
2516
2517         Add ENABLE(WEB_SOCKETS) guards.
2518         https://bugs.webkit.org/show_bug.cgi?id=29174
2519
2520         * bindings/v8/custom/V8WebSocketCustom.cpp:
2521
2522 2009-09-11  Eric Seidel  <eric@webkit.org>
2523
2524         No review, rolling out r48229.
2525         http://trac.webkit.org/changeset/48229
2526
2527         * WebCore.base.exp:
2528         * dom/Clipboard.cpp:
2529         (WebCore::Clipboard::Clipboard):
2530         (WebCore::Clipboard::sourceOperation):
2531         * page/DragController.cpp:
2532         (WebCore::DragController::DragController):
2533         (WebCore::DragController::dragExited):
2534         (WebCore::DragController::performDrag):
2535         (WebCore::DragController::dragEnteredOrUpdated):
2536         (WebCore::DragController::tryDHTMLDrag):
2537         (WebCore::DragController::startDrag):
2538         * page/DragController.h:
2539         * page/EventHandler.cpp:
2540         (WebCore::EventHandler::updateDragAndDrop):
2541         (WebCore::EventHandler::dragSourceMovedTo):
2542         (WebCore::EventHandler::handleDrag):
2543         * page/EventHandler.h:
2544
2545 2009-09-11  Michelangelo De Simone  <micdesim@gmail.com>
2546
2547         Fix the build.
2548
2549         * html/ValidityState.cpp:
2550         (WebCore::ValidityState::typeMismatch):
2551
2552 2009-09-11  Michelangelo De Simone  <micdesim@gmail.com>
2553
2554         Reviewed by Antti Koivisto.
2555
2556         https://bugs.webkit.org/show_bug.cgi?id=27456
2557         Added support for static validation of url in
2558         ValidityState, for url state inputs.
2559         From HTML5 specs:
2560         http://www.whatwg.org/specs/web-apps/current-work/#url-state
2561
2562         Test: fast/forms/ValidityState-typeMismatch-url.html
2563
2564         * html/ValidityState.cpp:
2565         (WebCore::ValidityState::typeMismatch):
2566
2567 2009-09-11  Evan Stade  <estade@chromium.org>
2568
2569         Reviewed by Darin Adler.
2570
2571         Revert r47992: Expose functions to change the focus ring color for
2572         Linux Chromium.
2573
2574         As Darin Fisher has pointed out, there is a better way to do this.
2575
2576         * rendering/RenderThemeChromiumLinux.cpp:
2577         (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
2578         * rendering/RenderThemeChromiumLinux.h:
2579
2580 2009-09-11  Alexey Proskuryakov  <ap@webkit.org>
2581
2582         Reviewed by Geoff Garen.
2583
2584         https://bugs.webkit.org/show_bug.cgi?id=29207
2585         Add checks for using WebCore JS context on secondary threads
2586
2587         * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::commonJSGlobalData):
2588         Set the new debug-only mainThreadOnly flag.
2589
2590 2009-09-11  Brian Weinstein  <bweinstein@apple.com>
2591
2592         Reviewed by Timothy Hatcher.
2593
2594         The inspector should have scope bars.
2595         https://bugs.webkit.org/show_bug.cgi?id=14353
2596         
2597         Add scope bars to the console, so the user can choose which category
2598         of messages they want to see (All, Errors, Warnings, Logs), and they
2599         can choose from one or more of {Errors, Warnings, Logs}.
2600
2601         * inspector/front-end/ConsoleView.js:
2602         (WebInspector.ConsoleView.createFilterElement):
2603         (WebInspector.ConsoleView):
2604         (WebInspector.ConsoleView.prototype._updateFilter):
2605         (WebInspector.ConsoleView.prototype.filter):
2606         (WebInspector.ConsoleView.prototype.attach):
2607         * inspector/front-end/inspector.css:
2608         * inspector/front-end/inspector.html:
2609
2610 2009-09-11  Yusuke Sato  <yusukes@chromium.org>
2611
2612         Reviewed by Darin Fisher.
2613
2614         [Chromium] Complex text doesn't show up with text stroking
2615         https://bugs.webkit.org/show_bug.cgi?id=28707
2616
2617         Added extra NULL checks for HDC. This is the second fix for issue 28707,
2618         and the fix is similar to http://trac.webkit.org/changeset/45482.
2619
2620         * platform/graphics/chromium/FontChromiumWin.cpp:
2621         (WebCore::Font::drawComplexText):
2622         * platform/graphics/chromium/UniscribeHelper.cpp:
2623         (WebCore::UniscribeHelper::draw):
2624
2625 2009-09-11  Cameron McCormack  <cam@mcc.id.au>
2626
2627         Reviewed by Eric Seidel.
2628
2629         Make ElementTimeControl methods return void and not throw.
2630         https://bugs.webkit.org/show_bug.cgi?id=28831
2631
2632         SVG 1.1 erratum:
2633         http://www.w3.org/2003/01/REC-SVG11-20030114-errata#elementtimecontrol-interface
2634
2635         Test: svg/dom/smil-methods.svg
2636
2637         * svg/ElementTimeControl.h: Change return type from bool to void and remove exception argument.
2638         * svg/ElementTimeControl.idl: Change return type from bool to void and remove raises claus.
2639         * svg/SVGAnimationElement.cpp:
2640         (WebCore::SVGAnimationElement::beginElement): Change return type from bool to void and remove exception argument.
2641         (WebCore::SVGAnimationElement::beginElementAt): Ditto.
2642         (WebCore::SVGAnimationElement::endElement): Ditto.
2643         (WebCore::SVGAnimationElement::endElementAt): Ditto.
2644         * svg/SVGAnimationElement.h: Ditto.
2645
2646 2009-09-11  Chris Marrin  <cmarrin@apple.com>
2647
2648         Reviewed by Oliver Hunt.
2649
2650         Added support for texImage2D which takes CanvasArray
2651         https://bugs.webkit.org/show_bug.cgi?id=29191
2652
2653         * bindings/js/JSCanvasRenderingContext3DCustom.cpp:
2654         (WebCore::JSCanvasRenderingContext3D::texImage2D):
2655         * platform/graphics/mac/GraphicsContext3DMac.cpp:
2656         (WebCore::GraphicsContext3D::texImage2D):
2657
2658 2009-09-11  Steve Falkenburg  <sfalken@apple.com>
2659
2660         Reviewed by Darin Adler.
2661
2662         Allow WebKit clients to opt out of high resolution timers on Windows.
2663         https://bugs.webkit.org/show_bug.cgi?id=29192
2664
2665         * page/Settings.cpp:
2666         (WebCore::Settings::setShouldUseHighResolutionTimers): Added.
2667         * page/Settings.h: Added getter/setter for shouldUseHighResolutionTimers.
2668         (WebCore::Settings::shouldUseHighResolutionTimers): Added.
2669         * platform/win/SharedTimerWin.cpp:
2670         (WebCore::setSharedTimerFireTime): Don't run high resolution timer code if it is disabled.
2671
2672 2009-09-11  Christian Plesner Hansen  <christian.plesner.hansen@gmail.com>
2673
2674         Reviewed by Adam Barth.
2675
2676         [v8] Share persistent context handles between events        
2677         Change events to use a single ref-counted shared persistent handle
2678         to the context in which to run, rather than create a new
2679         persistent handle for each new event which puts pressure on the
2680         gc.
2681         
2682         https://bugs.webkit.org/show_bug.cgi?id=29077
2683
2684         * bindings/v8/ScheduledAction.cpp:
2685         (WebCore::ScheduledAction::execute):
2686         * bindings/v8/SharedPersistent.h: Added.
2687         (WebCore::SharedPersistent::set):
2688         (WebCore::SharedPersistent::get):
2689         (WebCore::SharedPersistent::disposeHandle):
2690         (WebCore::SharedPersistent::create):
2691         (WebCore::SharedPersistent::SharedPersistent):
2692         * bindings/v8/V8AbstractEventListener.cpp:
2693         (WebCore::V8AbstractEventListener::V8AbstractEventListener):
2694         (WebCore::V8AbstractEventListener::handleEvent):
2695         * bindings/v8/V8AbstractEventListener.h:
2696         * bindings/v8/V8IsolatedWorld.cpp:
2697         (WebCore::V8IsolatedWorld::V8IsolatedWorld):
2698         (WebCore::V8IsolatedWorld::~V8IsolatedWorld):
2699         * bindings/v8/V8IsolatedWorld.h:
2700         (WebCore::V8IsolatedWorld::context):
2701         (WebCore::V8IsolatedWorld::shared_context):
2702         * bindings/v8/V8Proxy.cpp:
2703         (WebCore::V8Proxy::evaluateInNewContext):
2704         (WebCore::V8Proxy::createWrapperFromCacheSlowCase):
2705         (WebCore::V8Proxy::isContextInitialized):
2706         (WebCore::V8Proxy::updateDocumentWrapperCache):
2707         (WebCore::V8Proxy::clearDocumentWrapperCache):
2708         (WebCore::V8Proxy::disposeContextHandles):
2709         (WebCore::V8Proxy::clearForClose):
2710         (WebCore::V8Proxy::clearForNavigation):
2711         (WebCore::V8Proxy::setSecurityToken):
2712         (WebCore::V8Proxy::updateDocument):
2713         (WebCore::V8Proxy::initContextIfNeeded):
2714         (WebCore::V8Proxy::shared_context):
2715         (WebCore::V8Proxy::mainWorldContext):
2716         (WebCore::V8Proxy::setContextDebugId):
2717         * bindings/v8/V8Proxy.h:
2718         (WebCore::V8Proxy::V8Proxy):
2719         (WebCore::V8Proxy::context):
2720         (WebCore::V8Proxy::shared_context):
2721
2722 2009-09-11  Anton Muhin  <antonm@chromium.org>
2723
2724         Reviewed by David Levin.
2725
2726         Create a real handle (one which would save an object from GC).
2727         https://bugs.webkit.org/show_bug.cgi?id=29150
2728
2729         * bindings/v8/V8Binding.cpp:
2730         (WebCore::v8ExternalString):
2731
2732 2009-09-11  Anton Muhin  <antonm@chromium.org>
2733
2734         Reviewed by David Levin.
2735
2736         Inline WebCore::v8String as it only invokes WebCore::v8ExternalString.
2737         https://bugs.webkit.org/show_bug.cgi?id=29152
2738
2739         * bindings/v8/V8Binding.cpp:
2740         * bindings/v8/V8Binding.h:
2741         (WebCore::v8String):
2742
2743 2009-09-11  Ariya Hidayat  <ariya.hidayat@nokia.com>
2744
2745         Reviewed by Simon Hausmann.
2746
2747         Changed URLs from qtsoftware.com to qt.nokia.com, as part of a general
2748         renaming.
2749
2750         * ChangeLog-2009-06-16:
2751
2752 2009-09-11  Thiago Macieira  <thiago.macieira@nokia.com>
2753
2754         Reviewed by Simon Hausmann.
2755
2756         Use LIBS_PRIVATE on Qt/Mac.
2757
2758         On the Mac, it means "-framework ApplicationServices -framework Carbon
2759         -framework AppKit" are no longer part of the default LIBS in Qt
2760         applications. This required a lot of fixes where we used Mac-specific
2761         code in Qt.
2762
2763         * WebCore.pro:
2764
2765 2009-09-11  Cameron McCormack  <cam@mcc.id.au>
2766
2767         Reviewed by Eric Seidel.
2768
2769         Remove duplicated WK_{u,l}cfirst subs from CodeGeneratorV8.pm
2770         https://bugs.webkit.org/show_bug.cgi?id=29165
2771
2772         * bindings/scripts/CodeGeneratorV8.pm: Remove WK_ucfirst and
2773         WK_lcfirst, and call the ones in CodeGenerator.pm instead.
2774
2775 2009-09-11  Yongjun Zhang  <yongjun.zhang@nokia.com>
2776
2777         Reviewed by Darin Adler.
2778
2779         https://bugs.webkit.org/show_bug.cgi?id=29132
2780         Symbian winscw compiler fails compiling WebCore/text/RegularExpression.cpp.
2781
2782         Add RegularExpression class qualifier before Private.
2783
2784         * platform/text/RegularExpression.cpp:
2785
2786 2009-09-11  Yongjun Zhang  <yongjun.zhang@nokia.com>
2787
2788         Reviewed by Darin Adler.
2789
2790         https://bugs.webkit.org/show_bug.cgi?id=29131
2791         Use a different variadic macro format for Symbian compiler.
2792         
2793         Use arg... instead of ellipsis in variadic macro.        
2794
2795         * platform/StaticConstructors.h:
2796
2797 2009-09-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2798
2799         Reviewed by Simon Hausmann.
2800
2801         https://bugs.webkit.org/show_bug.cgi?id=28806
2802
2803         [Qt] Make the WebInspector available as a QWidget.
2804
2805         * WebCore.pro:
2806
2807 2009-09-11  Simon Hausmann  <simon.hausmann@nokia.com>
2808
2809         Unreviewed fix for the Web Inspector with the Qt build.
2810
2811         Re-generate the Qt resource file by running
2812         WebKitTools/Scripts/generate-qt-inspector-resource
2813
2814         * inspector/front-end/WebKit.qrc:
2815
2816 2009-09-11  Simon Hausmann  <simon.hausmann@nokia.com>
2817
2818         Fix the Qt build, remove stray semicolon from function definition.
2819
2820         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
2821         (WebCore::MediaPlayerPrivate::buffered):
2822
2823 2009-09-10  Adam Barth  <abarth@webkit.org>
2824
2825         Reviewed by Sam Weinig.
2826
2827         Detect mixed content
2828         https://bugs.webkit.org/show_bug.cgi?id=29003
2829
2830         Detect some basic kinds of mixed content (HTTP content loaded into an
2831         HTTPS context).  This new detection logic isn't perfect, but it's a
2832         place to start.
2833
2834         Tests: http/tests/security/mixedContent/about-blank-iframe-in-main-frame.html
2835                http/tests/security/mixedContent/data-url-iframe-in-main-frame.html
2836                http/tests/security/mixedContent/data-url-script-in-iframe.html
2837                http/tests/security/mixedContent/insecure-css-in-iframe.html
2838                http/tests/security/mixedContent/insecure-css-in-main-frame.html
2839                http/tests/security/mixedContent/insecure-iframe-in-iframe.html
2840                http/tests/security/mixedContent/insecure-iframe-in-main-frame.html
2841                http/tests/security/mixedContent/insecure-image-in-iframe.html
2842                http/tests/security/mixedContent/insecure-image-in-main-frame.html
2843                http/tests/security/mixedContent/insecure-script-in-iframe.html
2844                http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame.html
2845                http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe.html
2846                http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html
2847                http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe.html
2848
2849         * loader/DocLoader.cpp:
2850         (WebCore::DocLoader::canRequest):
2851         (WebCore::DocLoader::requestResource):
2852         (WebCore::DocLoader::checkCacheObjectStatus):
2853         * loader/FrameLoader.cpp:
2854         (WebCore::FrameLoader::isMixedContent):
2855         (WebCore::FrameLoader::checkIfDisplayInsecureContent):
2856         (WebCore::FrameLoader::checkIfRunInsecureContent):
2857         * loader/FrameLoader.h:
2858         * loader/MainResourceLoader.cpp:
2859         (WebCore::MainResourceLoader::willSendRequest):
2860
2861 2009-09-10  Mark Rowe  <mrowe@apple.com>
2862
2863         Fix the Windows build.
2864
2865         Restore platform/mock to the header search path after it was removed in r48270.
2866
2867         * WebCore.vcproj/WebCoreCommon.vsprops:
2868
2869 2009-09-08  Timothy Hatcher  <timothy@apple.com>
2870
2871         Web Inspector: Move the option to create a new style rule under the Styles' gear menu.
2872
2873         https://bugs.webkit.org/show_bug.cgi?id=29039
2874
2875         Reviewed by Sam Weinig.
2876
2877         * inspector/front-end/StylesSidebarPane.js:
2878         (WebInspector.StylesSidebarPane): Add "New Style Rule" option to the gear menu.
2879         (WebInspector.StylesSidebarPane.prototype._update): Check instanceof BlankStylePropertiesSection instead.
2880         (WebInspector.StylesSidebarPane.prototype._changeSetting): Added. Keeps the color format setting selected
2881         while calling the correct action.
2882         (WebInspector.StylesSidebarPane.prototype._createNewRule): Creates a new section and edits the selector.
2883         (WebInspector.StylesSidebarPane.prototype.addBlankSection): Insert the section in a cleaner way.
2884         (WebInspector.StylesSidebarPane.prototype.removeSection): Added. Removes the passed in section.
2885         (WebInspector.StylesSidebarPane.prototype.appropriateSelectorForNode): Return an empty string if there is no node.
2886         (WebInspector.StylePropertiesSection.prototype.expand): Removed the check for _blank.
2887         (WebInspector.StylePropertiesSection.prototype.startEditingSelector): No need for the context, the original selector
2888         is remembered by the editing code.
2889         (WebInspector.StylePropertiesSection.prototype.editingSelectorCancelled): Do nothing. The original text is already
2890         restored by the editing code.
2891         (WebInspector.BlankStylePropertiesSection): Call the StylePropertiesSection constructor with appropriate data.
2892         Remove event listener code.
2893         (WebInspector.BlankStylePropertiesSection.prototype.expand): Added. Does nothing to prevent expanding.
2894         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.callback): Correctly construct the
2895         WebInspector.CSSStyleDeclaration. Call editingSelectorCancelled instead of editingCancelled.
2896         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted): Renamed from editingCommitted to
2897         override the base class.
2898         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCancelled): Remove the section.
2899         (WebInspector.BlankStylePropertiesSection.prototype.makeNormal): Removed event listener code. Removed the delete lines
2900         since they were doing nothing (deleting nonexistent properties that exist only on the prototype.) Change prototypes at
2901         the end to correctly swtich to a real StylePropertiesSection.
2902         * inspector/front-end/inspector.js:
2903         (WebInspector.startEditing.editingCancelled): Ceck for null/undefined callbacks.
2904         (WebInspector.startEditing.editingCommitted): Ditto.
2905
2906 2009-09-10  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2907
2908         Reviewed by Eric Seidel.
2909
2910         [Qt] Fix comparison between signed and unsigned integer warnings
2911         https://bugs.webkit.org/show_bug.cgi?id=29162
2912
2913         No functional change.
2914
2915         * bridge/qt/qt_runtime.cpp:
2916         (JSC::Bindings::findMethodIndex):
2917         * platform/MIMETypeRegistry.cpp:
2918         (WebCore::initializeSupportedImageMIMETypes):
2919         (WebCore::initializeSupportedImageMIMETypesForEncoding):
2920         * platform/graphics/qt/GraphicsContextQt.cpp:
2921         (WebCore::GraphicsContext::drawFocusRing):
2922         * platform/graphics/qt/ImageDecoderQt.cpp:
2923         (WebCore::ImageDecoderQt::duration):
2924         (WebCore::ImageDecoderQt::imageAtIndex):
2925         * plugins/qt/PluginPackageQt.cpp:
2926         (WebCore::PluginPackage::fetchInfo):
2927
2928 2009-09-10  Martin Robinson  <martin.james.robinson@gmail.com>
2929
2930         Reviewed by Gustavo Noronha.
2931
2932         Build fix for GTK+ after r48267.
2933
2934         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2935         (WebCore::MediaPlayerPrivate::buffered):
2936
2937 2009-09-08  John Abd-El-Malek  <jam@chromium.org>
2938
2939         Reviewed by Dimitri Glazkov.
2940
2941         Remove unneeded define for ActiveX.
2942         https://bugs.webkit.org/show_bug.cgi?id=29054
2943
2944         * rendering/RenderPartObject.cpp:
2945         (WebCore::createClassIdToTypeMap):
2946         (WebCore::serviceTypeForClassId):
2947         (WebCore::RenderPartObject::updateWidget):
2948
2949 2009-09-10  Mark Rowe  <mrowe@apple.com>
2950
2951         Rubber-stamped by Sam Weinig.
2952
2953         Don't copy IDL files in to the built framework.
2954
2955         * WebCore.xcodeproj/project.pbxproj:
2956
2957 2009-09-10  Xiaomei Ji  <xji@chromium.org>
2958
2959         Reviewed by Eric Seidel.
2960
2961         Implment Range.expand().
2962         https://bugs.webkit.org/show_bug.cgi?id=27632
2963
2964         Test: fast/dom/Range/range-expand.html
2965
2966         * dom/Range.cpp:
2967         (WebCore::Range::expand):
2968         * dom/Range.h:
2969         * dom/Range.idl:
2970
2971 2009-09-10  Fumitoshi Ukai  <ukai@chromium.org>
2972
2973         Reviewed by Alexey Proskuryakov.
2974
2975         WebSocket API implementation.
2976         https://bugs.webkit.org/show_bug.cgi?id=28038
2977         
2978         Add build systems for GNUmakefile.am, WebCore.xcodeproj and
2979         WebCore.vcproj.
2980         Add websockets directory and WebSocket.idl in qt build system.
2981         Tests will be landed once the code is completed and functional.
2982
2983         * DerivedSources.cpp:
2984         * GNUmakefile.am:
2985         * WebCore.pro:
2986         * WebCore.vcproj/WebCore.vcproj:
2987         * WebCore.vcproj/WebCoreCommon.vsprops:
2988         * WebCore.xcodeproj/project.pbxproj:
2989         * bindings/js/JSDOMWindowCustom.cpp:
2990         (WebCore::JSDOMWindow::webSocket):
2991         * bindings/js/JSEventTarget.cpp:
2992         (WebCore::toJS):
2993         (WebCore::toEventTarget):
2994         * dom/EventTarget.cpp:
2995         (WebCore::EventTarget::toWebSocket):
2996         * dom/EventTarget.h:
2997         * page/DOMWindow.idl:
2998         * websockets/WebSocket.cpp:
2999         (WebCore::ProcessWebSocketEventTask::create):
3000         (WebCore::ProcessWebSocketEventTask::performTask):
3001         (WebCore::ProcessWebSocketEventTask::ProcessWebSocketEventTask):
3002         (WebCore::isValidProtocolString):
3003         (WebCore::WebSocket::connect):
3004         (WebCore::WebSocket::send):
3005         (WebCore::WebSocket::close):
3006         (WebCore::WebSocket::bufferedAmount):
3007         (WebCore::WebSocket::addEventListener):
3008         (WebCore::WebSocket::removeEventListener):
3009         (WebCore::WebSocket::dispatchEvent):
3010         (WebCore::WebSocket::didConnect):
3011         (WebCore::WebSocket::didReceiveMessage):
3012         (WebCore::WebSocket::didClose):
3013         (WebCore::WebSocket::dispatchOpenEvent):
3014         (WebCore::WebSocket::dispatchMessageEvent):
3015         (WebCore::WebSocket::dispatchCloseEvent):
3016         * websockets/WebSocket.h:
3017         (WebCore::WebSocket::create):
3018         (WebCore::WebSocket::):
3019         (WebCore::WebSocket::setOnopen):
3020         (WebCore::WebSocket::onopen):
3021         (WebCore::WebSocket::setOnmessage):
3022         (WebCore::WebSocket::onmessage):
3023         (WebCore::WebSocket::setOnclose):
3024         (WebCore::WebSocket::onclose):
3025         (WebCore::WebSocket::toWebSocket):
3026         (WebCore::WebSocket::eventListeners):
3027         (WebCore::WebSocket::refEventTarget):
3028         (WebCore::WebSocket::derefEventTarget):
3029         * websockets/WebSocketChannel.cpp: Added.
3030         * websockets/WebSocketChannel.h: Added.
3031         * websockets/WebSocketChannelClient.h: Added.
3032         * websockets/WebSocketHandshake.cpp: Added.
3033         * websockets/WebSocketHandshake.h: Added.
3034
3035 2009-09-10  Albert J. Wong  <ajwong@chromium.org>
3036
3037         No review, windows build fix only.
3038         
3039         Spurious semicolon causing parse error in chromium build on windows.
3040
3041         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3042         (WebCore::MediaPlayerPrivate::buffered):
3043
3044 2009-09-10  Albert J. Wong  <ajwong@chromium.org>
3045
3046         No review, build fix only.
3047
3048         Adding in a missed include from the last patch that is breaking the
3049         chromium build.
3050
3051         * rendering/RenderThemeChromiumMac.mm: include TimeRanges.h
3052
3053 2009-09-10  Alpha Lam  <hclam@chromium.org>
3054
3055         Reviewed by Eric Carlson.
3056
3057         HTMLMediaElement buffered attribute should report a list of time ranges
3058         https://bugs.webkit.org/show_bug.cgi?id=29041
3059
3060         Changed MediaPlayerPrivateInterface and MediaPlayer's definition to
3061         report a list of buffered time ranges as WebCore::TimeRanges. This
3062         change also got rid of the maxTimeBuffered() method.
3063
3064         No new tests since this is a API change.
3065
3066         * html/HTMLMediaElement.cpp:
3067         (WebCore::HTMLMediaElement::percentLoaded):
3068         Use MediaPlaier::buffered() instead of maxTimeBuffered().
3069         (WebCore::HTMLMediaElement::buffered):
3070         ditto.
3071         * platform/graphics/MediaPlayer.cpp:
3072         (WebCore::NullMediaPlayerPrivate::buffered):
3073         Use MediaPlayerPrivateInterface::buffered() instead of maxTimeBuffered().
3074         (WebCore::MediaPlayer::buffered):
3075         ditto.
3076         * platform/graphics/MediaPlayer.h:
3077         Removed maxTimeBuffered() and defines PassRefPtr<TimeRanges> buffered().
3078         * platform/graphics/MediaPlayerPrivate.h:
3079         ditto.
3080         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3081         Implements PassRefPtr<TimeRanges> buffered();
3082         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
3083         Removed maxTimeBuffered() and defines PassRefPtr<TimeRanges> buffered().
3084         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3085         Removed maxTimeBuffered() and defines PassRefPtr<TimeRanges> buffered().
3086         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3087         (WebCore::MediaPlayerPrivate::buffered):
3088         Implementation of buffered().
3089         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
3090         Implements PassRefPtr<TimeRanegs> buffered().
3091         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
3092         Removed maxTimeBuffered() and defines PassRefPtr<TimeRanges> buffered().
3093         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3094         Implements PassRefPtr<TimeRanges> buffered().
3095         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
3096         Removed maxTimeBuffered() and defines PassRefPtr<TimeRanges> buffered().
3097         * platform/graphics/wince/MediaPlayerPrivateWince.h:
3098         ditto.
3099         * rendering/RenderThemeChromiumMac.mm:
3100         (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
3101         Use buffered() instead of maxTimeBuffered().
3102         * rendering/RenderThemeChromiumSkia.cpp:
3103         ditto.
3104         * rendering/RenderThemeMac.mm:
3105         (WebCore::RenderThemeMac::paintMediaSliderTrack):
3106         ditto.
3107
3108 2009-09-10  Cameron McCormack  <cam@mcc.id.au>
3109
3110         Reviewed by Eric Seidel.
3111
3112         Make bindings generators more aware of IDL dependencies
3113         https://bugs.webkit.org/show_bug.cgi?id=29114
3114
3115         Make the JS and ObjC bindings generators able to output dependency
3116         rules for DerivedSources.make to consume.  These rules make a given
3117         generated binding class file header, JSWhatever.h, depend on Whatever's
3118         ancestor interfaces.
3119
3120         * DerivedSources.make: Pass --write-dependencies to generate-bindings.pl
3121         when generating JS and ObjC bindings.  Include dependency fies that are
3122         generated due to that.
3123         * bindings/scripts/CodeGenerator.pm: Make
3124         AddMethodsConstantsAndAttributesFromParentClasses accumulate a list of
3125         the ancestor interfaces that were visited.
3126         * bindings/scripts/CodeGeneratorJS.pm: Optionally write out a dependency
3127         file.
3128         * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
3129         * bindings/scripts/generate-bindings.pl: Add a --write-dependencies
3130         option.
3131
3132 2009-09-10  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3133
3134         Reviewed by Xan Lopez and Dan Winship.
3135
3136         Give all requests to libsoup, to let it queue, and schedule them
3137         itself, instead of throttling the number of requests in WebCore.
3138
3139         * platform/network/ResourceRequestBase.cpp:
3140         * platform/network/soup/ResourceRequestSoup.cpp:
3141         (WebCore::initializeMaximumHTTPConnectionCountPerHost):
3142
3143 2009-09-10  Jian Li  <jianli@chromium.org>
3144
3145         Reviewed by Eric Seidel.
3146
3147         [V8] Make XMLHttpRequest.send handle File object.
3148         https://bugs.webkit.org/show_bug.cgi?id=28924
3149
3150         Test: http/tests/local/send-dragged-file.html
3151
3152         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3153         (WebCore::CALLBACK_FUNC_DECL):
3154
3155 2009-09-10  Zoltan Horvath  <zoltan@webkit.org>
3156
3157         Reviewed by Darin Adler.
3158
3159         Use fastNew and fastDelete instead of operator new and delete for CSSSelector class. 
3160         https://bugs.webkit.org/show_bug.cgi?id=25930
3161
3162         Change using of operator new to fastNew and operator delete to
3163         fastDeleteSkippingDestructor for CSSSelector class to avoid mismatched function call.
3164
3165         This change fixes valgrind's 'mismatched free' notification.
3166
3167         * css/CSSParser.cpp:
3168         (WebCore::CSSParser::~CSSParser):
3169         (WebCore::CSSParser::createFloatingSelector):
3170         * css/CSSSelectorList.cpp:
3171         (WebCore::CSSSelectorList::adoptSelectorVector):
3172
3173 2009-09-10  Steve Block  <steveblock@google.com>
3174
3175         Reviewed by Darin Adler.
3176
3177         Geolocation does not correctly handle reentrant calls from callbacks.
3178         https://bugs.webkit.org/show_bug.cgi?id=29040
3179
3180         Tests: fast/dom/Geolocation/reentrant-error.html
3181                fast/dom/Geolocation/reentrant-success.html
3182
3183         * page/Geolocation.cpp: Modified.
3184         (WebCore::Geolocation::handleError): Modified. Call sendError directly, clearing notifier lists before making callback.
3185         (WebCore::Geolocation::makeSuccessCallbacks): Modified. Call sendPosition directly, clearing notifier lists before making callback.
3186         * page/Geolocation.h: Modified. Deleted sendErrorToXX and sendPositionToXXX methods.
3187
3188 2009-09-10  Erik Arvidsson  <arv@chromium.org>
3189
3190         Reviewed by Eric Seidel.
3191
3192         Fixes issue where focused elements did not get blur and focus events when the window was blurred and focused.
3193         https://bugs.webkit.org/show_bug.cgi?id=27105
3194
3195         Test: fast/events/blur-focus-window-should-blur-focus-element.html
3196
3197         * page/FocusController.cpp:
3198         (WebCore::dispatchEventsOnWindowAndFocusedNode):
3199         (WebCore::FocusController::setFocused):
3200         (WebCore::FocusController::setActive):
3201
3202 2009-09-10  Adam Roben  <aroben@apple.com>
3203
3204         Make the play/pause button in <video> controls indicate the button's
3205         action, not the movie state
3206
3207         This matches the Mac behavior, iTunes, and many other media players.
3208
3209         No test possible.
3210
3211         Fixes <http://webkit.org/b/29126> Play/pause button in <video>
3212         controls shows the wrong image
3213
3214         Reviewed by Eric Carlson.
3215
3216         * rendering/RenderMediaControls.cpp:
3217         (WebCore::RenderMediaControls::paintMediaControlsPart): Reversed when
3218         we show the play vs. pause artwork, so that the button reflects what
3219         will happen when you click it, rather than the current state of the
3220         movie.
3221
3222 2009-09-09  Steve Block  <steveblock@google.com>
3223
3224         Reviewed by Maciej Stachowiak.
3225
3226         Geolocation Coordinates::toString() prints bogus values for unspecified properties.
3227         https://bugs.webkit.org/show_bug.cgi?id=29080
3228
3229         Test: fast/dom/Geolocation/position-string.html
3230
3231         * GNUmakefile.am: Modified. Removes Geoposition.cpp and Coordinates.cpp.
3232         * WebCore.gypi: Modified. Removes Geoposition.cpp and Coordinates.cpp.
3233         * WebCore.pro: Modified. Removes Geoposition.cpp and Coordinates.cpp.
3234         * WebCore.vcproj/WebCore.vcproj: Modified. Removes Geoposition.cpp and Coordinates.cpp.
3235         * WebCore.xcodeproj/project.pbxproj: Modified. Removes Geoposition.cpp and Coordinates.cpp.
3236         * WebCoreSources.bkl: Modified. Removes Geoposition.cpp and Coordinates.cpp.
3237         * page/Coordinates.cpp: Removed.
3238         * page/Coordinates.h: Modified. Removes toString method.
3239         * page/Coordinates.idl: Modified. Removes toString method.
3240         * page/Geoposition.cpp: Removed.
3241         * page/Geoposition.h: Modified. Removes toString method.
3242         * page/Geoposition.idl: Modified. Removes toString method.
3243
3244 2009-09-09  Steve Block  <steveblock@google.com>
3245
3246         Reviewed by Adam Barth.
3247
3248         Correctly applies the Geolocation timeout property.
3249         https://bugs.webkit.org/show_bug.cgi?id=27256
3250
3251         If a timeout is specified, the timer is started as soon as the location acquistion process starts.
3252         If a position fix is not obtained within the timeout interval, the position request is cancelled
3253         and the error callback (if specified) is invoked. If a position fix is obtained within the timeout
3254         interval, the timer is stopped. Permissions are then requested from the user if required. See
3255         http://www.w3.org/TR/geolocation-API/#position-options.
3256
3257         Note that this logic means that the time required to obtain permissions from the user is not
3258         included in the timeout interval.
3259
3260         Tests: fast/dom/Geolocation/timeout.html
3261                fast/dom/Geolocation/timeout-zero.html
3262
3263         * page/Geolocation.cpp: Modified.
3264         (WebCore::Geolocation::GeoNotifier::GeoNotifier): Modified. Takes Geolocation object as parameter.
3265         (WebCore::Geolocation::GeoNotifier::hasZeroTimeout): Added. Determines whether this request has a zero timeout.
3266         (WebCore::Geolocation::GeoNotifier::startTimerIfNeeded): Renamed from startTimer. Starts the timer if a timeout was specified.
3267         (WebCore::Geolocation::GeoNotifier::timerFired): Modified. Calls the error callback if specified, and reports the timeout to the Geolocation object.
3268         (WebCore::Geolocation::getCurrentPosition): Modified. Calls maybeStartTimer when starting the location acquisition process.
3269         (WebCore::Geolocation::watchPosition): Modified. Calls maybeStartTimer when starting the location acquisition process.
3270         (WebCore::Geolocation::requestTimedOut): Added. Cancels a request when it times out.
3271         (WebCore::Geolocation::setIsAllowed): Modified. No longer starts timers.
3272         (WebCore::Geolocation::sendPosition): Modified. No longer stops timers.
3273         (WebCore::Geolocation::stopTimer): Added. Stops the timers for a vector of notifiers.
3274         (WebCore::Geolocation::stopTimersForOneShots): Added. Stops the timers for all one-shots.
3275         (WebCore::Geolocation::stopTimersForWatchers): Added. Stops the timers for all watchers.
3276         (WebCore::Geolocation::stopTimers): Added. Stops the timers for all requests.
3277         (WebCore::Geolocation::geolocationServicePositionChanged): Modfified. Stops the timers for all requests.
3278         * page/Geolocation.h: Modified.
3279         (WebCore::Geolocation::GeoNotifier::create): Modified. Takes Geolocation object as parameter.
3280
3281 2009-09-09  Chris Fleizach  <cfleizach@apple.com>
3282
3283         AX notifications should be an ENUM type instead of strings
3284         https://bugs.webkit.org/show_bug.cgi?id=28963
3285
3286         Build fix for Qt.
3287
3288         * accessibility/AXObjectCache.h:
3289         (WebCore::AXObjectCache::postNotification):
3290         (WebCore::AXObjectCache::postPlatformNotification):
3291
3292 2009-09-08  Chris Fleizach  <cfleizach@apple.com>
3293
3294         Reviewed by Darin Adler.
3295
3296         AX notifications should be an ENUM type instead of strings
3297         https://bugs.webkit.org/show_bug.cgi?id=28963
3298
3299         Moves AX notifications over to an ENUM type instead of
3300         using the actual string values that are used on OS X.
3301
3302         * accessibility/AXObjectCache.cpp:
3303         (WebCore::AXObjectCache::postNotification):
3304         (WebCore::AXObjectCache::selectedChildrenChanged):
3305         * accessibility/AXObjectCache.h:
3306         (WebCore::AXObjectCache::):
3307         * accessibility/AccessibilityRenderObject.cpp:
3308         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
3309         * accessibility/chromium/AXObjectCacheChromium.cpp:
3310         (WebCore::AXObjectCache::postPlatformNotification):
3311         * accessibility/gtk/AXObjectCacheAtk.cpp:
3312         (WebCore::AXObjectCache::postPlatformNotification):
3313         * accessibility/mac/AXObjectCacheMac.mm:
3314         (WebCore::AXObjectCache::postPlatformNotification):
3315         * accessibility/win/AXObjectCacheWin.cpp:
3316         (WebCore::AXObjectCache::postPlatformNotification):
3317         * dom/Document.cpp:
3318         (WebCore::Document::implicitClose):
3319         * dom/Element.cpp:
3320         (WebCore::Element::updateAfterAttributeChanged):
3321         * editing/Editor.cpp:
3322         (WebCore::Editor::respondToChangedContents):
3323         * editing/mac/SelectionControllerMac.mm:
3324         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
3325         * html/HTMLInputElement.cpp:
3326         (WebCore::HTMLInputElement::setChecked):
3327         * page/FrameView.cpp:
3328         (WebCore::FrameView::layout):
3329         * rendering/RenderTextControl.cpp:
3330         (WebCore::RenderTextControl::setInnerTextValue):
3331
3332 2009-09-08  Adam Barth  <abarth@webkit.org>
3333
3334         Reviewed by Eric Seidel.
3335
3336         Missing checkout for getSVGDocument()
3337         https://bugs.webkit.org/show_bug.cgi?id=29064
3338
3339         The V8 code generator didn't understand SVGCheckSecurityDocument.
3340
3341         Tests: http/tests/security/xss-DENIED-getSVGDocument-iframe.html
3342                http/tests/security/xss-DENIED-getSVGDocument-object.html
3343
3344         * bindings/scripts/CodeGeneratorV8.pm:
3345
3346 2009-09-09  Cameron McCormack  <cam@mcc.id.au>
3347
3348         Reviewed by Eric Seidel.
3349
3350         Make SVGStyleElement inherit from SVGLangSpace
3351         https://bugs.webkit.org/show_bug.cgi?id=29058
3352
3353         Required by SVG 1.1 Second Edition:
3354         http://dev.w3.org/SVG/profiles/1.1F2/publish/styling.html#InterfaceSVGStyleElement
3355
3356         Test: svg/dom/SVGStyleElement/style-langspace.html
3357
3358         * svg/SVGStyleElement.cpp: Drop methods xmlspace and setXmlspace.
3359         (WebCore::SVGStyleElement::SVGStyleElement): Add SVGLangSpace()
3360         initializer.
3361         (WebCore::SVGStyleElement::parseMappedAttribute): Call
3362         parseMappedAttribute on SVGLangSpace.
3363         * svg/SVGStyleElement.h: Drop xmlspace and setXmlspace declarations.
3364         * svg/SVGStyleElement.idl: Drop xmlspace attribute and add SVGLangSpace
3365         as a superinterface.
3366
3367 2009-09-09  Nate Chapin  <japhet@chromium.org>
3368
3369         Reviewed by David Levin.
3370
3371         Remove unnecessary includes and forward declarations in V8Proxy.h
3372
3373         https://bugs.webkit.org/show_bug.cgi?id=29111
3374
3375         * bindings/v8/V8Proxy.h:
3376
3377 2009-07-30  Eric Seidel  <eric@webkit.org>
3378
3379         Reviewed by Adam Barth.
3380
3381         Add more position constructors
3382         positionBeforeNode, positionAfterNode
3383         firstPositionInNode, lastPositionInNode
3384         https://bugs.webkit.org/show_bug.cgi?id=25494
3385
3386         I also added a lastOffsetInNode and deployed it to a couple places.
3387
3388         There are no callers to these new constructors yet, but those
3389         will be coming in future patches.
3390
3391         * dom/Position.cpp:
3392         (WebCore::Position::computeOffsetInContainerNode):
3393         * dom/Position.h:
3394         (WebCore::positionBeforeNode):
3395         (WebCore::positionAfterNode):
3396         (WebCore::lastOffsetInNode):
3397         (WebCore::firstPositionInNode):
3398         (WebCore::lastPositionInNode):
3399         * editing/ApplyStyleCommand.cpp:
3400         * editing/TextIterator.cpp:
3401         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
3402         * editing/htmlediting.cpp:
3403         (WebCore::lastOffsetForEditing):
3404
3405 2009-04-30  Eric Seidel  <eric@webkit.org>
3406
3407         Reviewed by Adam Barth.
3408
3409         Rename positionBeforeNode to positionInParentBeforeNode
3410         and positionAfterNode to positionInParentAfterNode
3411         in preparation for adding a positionBeforeNode
3412         which returns a neighbor-anchored position.
3413         https://bugs.webkit.org/show_bug.cgi?id=25494
3414
3415         No functional changes, thus no tests.
3416
3417         * dom/PositionConstructors.h:
3418         (WebCore::positionInParentBeforeNode):
3419         (WebCore::positionInParentAfterNode):
3420         * dom/PositionIterator.cpp:
3421         (WebCore::PositionIterator::operator Position):
3422         * editing/ApplyStyleCommand.cpp:
3423         (WebCore::ApplyStyleCommand::applyInlineStyle):
3424         * editing/CompositeEditCommand.cpp:
3425         (WebCore::CompositeEditCommand::positionOutsideTabSpan):
3426         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
3427         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
3428         * editing/CreateLinkCommand.cpp:
3429         (WebCore::CreateLinkCommand::doApply):
3430         * editing/DeleteButtonController.cpp:
3431         (WebCore::DeleteButtonController::deleteTarget):
3432         * editing/DeleteSelectionCommand.cpp:
3433         (WebCore::DeleteSelectionCommand::initializeStartEnd):
3434         (WebCore::updatePositionForNodeRemoval):
3435         * editing/InsertLineBreakCommand.cpp:
3436         (WebCore::InsertLineBreakCommand::doApply):
3437         * editing/InsertListCommand.cpp:
3438         (WebCore::InsertListCommand::doApply):
3439         * editing/InsertParagraphSeparatorCommand.cpp:
3440         (WebCore::InsertParagraphSeparatorCommand::doApply):
3441         * editing/InsertTextCommand.cpp:
3442         (WebCore::InsertTextCommand::input):
3443         * editing/ReplaceSelectionCommand.cpp:
3444         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent):
3445         (WebCore::ReplaceSelectionCommand::doApply):
3446         * editing/VisibleSelection.cpp:
3447         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
3448         * editing/htmlediting.cpp:
3449         (WebCore::firstEditablePositionAfterPositionInRoot):
3450         (WebCore::lastEditablePositionBeforePositionInRoot):
3451         (WebCore::rangeCompliantEquivalent):
3452         (WebCore::positionBeforeContainingSpecialElement):
3453         (WebCore::positionAfterContainingSpecialElement):
3454         (WebCore::positionBeforeTabSpan):
3455
3456 2009-04-30  Eric Seidel  <eric@webkit.org>
3457
3458         Reviewed by Adam Barth.
3459
3460         Re-organize position creation functions in preparation for adding more
3461         https://bugs.webkit.org/show_bug.cgi?id=25494
3462
3463         Make position functions inline to avoid ref-churn.
3464         Remove startPosition/endPosition as they were only used in one place.
3465
3466         No functional changes, thus no tests.
3467
3468         * dom/Position.cpp:
3469         * dom/Position.h:
3470         (WebCore::positionBeforeNode):
3471         (WebCore::positionAfterNode):
3472         * editing/SelectionController.cpp:
3473         (WebCore::SelectionController::moveTo):
3474         * editing/TypingCommand.cpp:
3475         * editing/htmlediting.cpp:
3476         * editing/htmlediting.h:
3477         (WebCore::firstDeepEditingPositionForNode):
3478         (WebCore::lastDeepEditingPositionForNode):
3479         * rendering/RenderObject.cpp:
3480
3481 2009-09-09  Kevin Watters  <kevinwatters@gmail.com>
3482
3483         Reviewed by Kevin Ollivier.
3484         
3485         [wx] Add wxSize conversions for IntSize.
3486         https://bugs.webkit.org/show_bug.cgi?id=29104
3487
3488         * platform/graphics/IntSize.h:
3489         * platform/graphics/wx/IntSizeWx.cpp: Added.
3490         (WebCore::IntSize::IntSize):
3491         (WebCore::IntSize::operator wxSize):
3492
3493 2009-09-09  Yaar Schnitman  <yaar@chromium.org>
3494
3495         Reviewed by David Levin.
3496         
3497         Chromium uses its own config.h file that was forked from webkit's config.h.
3498         By merging in Chromium's defines, Chromium would again be able to use webkit's
3499         config.h.
3500
3501         https://bugs.webkit.org/show_bug.cgi?id=28882 
3502
3503         * config.h: Added chromium-specific defines. 
3504
3505 2009-09-09  Jens Alfke  <snej@chromium.org>
3506
3507         Reviewed by Eric Seidel.
3508
3509         Initialize DataTransfer's effectAllowed and dropEffect properties correctly
3510         according to HTML5 spec (sec. 7.9.2-7.9.3).
3511         https://bugs.webkit.org/show_bug.cgi?id=26700
3512         - At the start of a drag operation, the value of effectAllowed should be
3513           the string "uninitialized".
3514         - At end of dragstart handler, if effectAllowed hasn't been set yet, it
3515           should be set to "copy".
3516         - on dragenter and dragover event, dropEffect should be initialized to a
3517           default value based on the value of effectAllowed.
3518         - at end of dragenter and dragover the dropEffect should be set to "none"
3519           if the value set by the handler doesn't match the effectAllowed.
3520         - on dragleave event, dropEffect should be "none".
3521         - on drop event, dropEffect should be the previously negotiated value.
3522
3523         Test: fast/events/drag-dropeffect.html
3524
3525         * WebCore.base.exp:
3526             Added a parameter to EventHandler::dragSourceMovedTo.
3527         * dom/Clipboard.cpp:
3528         (WebCore::Clipboard::Clipboard):
3529             Initialize m_effectAllowed to "uninitialized".
3530         (WebCore::Clipboard::sourceOperation):
3531             Treat "uninitialized" as meaning no value has been set.
3532         * page/DragController.cpp:
3533         (WebCore::DragController::DragController):
3534             Initialize new member m_destinationDragOperation.
3535         (WebCore::DragController::dragExited):
3536             Set m_destinationDragOperation to none on dragExit.
3537         (WebCore::DragController::performDrag):
3538             Set m_destinationDragOperation to current dropEffect.
3539         (WebCore::DragController::dragEnteredOrUpdated):
3540             Make sure to clear the operation if drag source doesn't allow it.
3541         (WebCore::DragController::tryDHTMLDrag):
3542             Set a default value for the dst drag op before sending dragEnter/Over.
3543         (WebCore::DragController::startDrag):
3544             Clear m_destinationDragOperation at start of drag.
3545         * page/DragController.h:
3546         (WebCore::DragController::destinationDragOperation):
3547             Added new member m_destinationDragOperation, and its public getter.
3548         * page/EventHandler.cpp:
3549         (WebCore::EventHandler::updateDragAndDrop):
3550             dropEffect should be 'none' during dropleave handler, per spec.
3551         (WebCore::EventHandler::dragSourceMovedTo):
3552             Added DragOperation parameter, so the handler sees the current dropEffect.
3553         (WebCore::EventHandler::handleDrag):
3554             Assume DragOperationEvery for non-DHTML drags.
3555         * page/EventHandler.h:
3556             Added DragOperation parameter to dragSourceMovedTo().
3557
3558 2009-09-09  Dumitru Daniliuc  <dumi@chromium.org>
3559
3560         Reviewed by Dimitri Glazkov.
3561
3562         1. Adding support/bindings for read-only transactions.
3563         2. Disallowing the SQLITE_*_VIEW and REINDEX operations in the
3564         private browsing mode.
3565         3. Adding an authorizer test.
3566
3567         https://bugs.webkit.org/show_bug.cgi?id=28918
3568
3569         Test: storage/test-authorizer.html
3570
3571         * bindings/js/JSDatabaseCustom.cpp:
3572         (WebCore::createTransaction): Parses all arguments and executes a
3573         transaction.
3574         (WebCore::JSDatabase::transaction): Refactored to use
3575         createTransaction().
3576         (WebCore::JSDatabase::readTransaction): Added to execute read-only
3577         transactions using createTransaction().
3578         * bindings/v8/custom/V8CustomBinding.h: Added the binding for
3579         Database::readTransaction().
3580         * bindings/v8/custom/V8DatabaseCustom.cpp:
3581         (WebCore::createTransaction): Parses all arguments and executes a
3582         transaction.
3583         (WebCore::transaction): Refactored to use createTransaction().
3584         (WebCore::readTransaction): Added to execute read-only
3585         transactions using createTransaction().
3586         * storage/Database.cpp:
3587         (WebCore::Database::transaction): Added support for read-only