2009-08-25 Eric Carlson <eric.carlson@apple.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2009-08-25  Eric Carlson  <eric.carlson@apple.com>
2
3         Reviewed by Oliver Hunt.
4
5         <video> and <audio> controller should be accessible (edit)
6         https://bugs.webkit.org/show_bug.cgi?id=28081
7
8         Test: accessibility/media-element.html
9
10         * GNUmakefile.am:
11         * WebCore.gypi:
12         * WebCore.pro:
13         * WebCore.vcproj/WebCore.vcproj:
14         * WebCore.xcodeproj/project.pbxproj:
15         * WebCoreSources.bkl:
16             Add AccessibilityMediaControls.cpp/.h
17
18         * accessibility/AXObjectCache.cpp:
19         * accessibility/AXObjectCache.h:
20         (WebCore::AXObjectCache::getOrCreate):
21             Create AccessibilityMediaControl. Update Copyright
22
23         * accessibility/AccessibilityMediaControls.cpp:
24         * accessibility/AccessibilityMediaControls.h:
25             Added.
26
27         * accessibility/AccessibilityObject.cpp:
28         * accessibility/AccessibilityObject.h:
29             Add isMediaTimeline. Update Copyright.
30
31         * accessibility/AccessibilitySlider.h:
32             Make constructor protected instead of private so AccessibilityMediaTimeline can
33             call it.
34
35         * accessibility/mac/AccessibilityObjectWrapper.mm:
36         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
37             Add NSAccessibilityValueDescriptionAttribute to range attributes. 
38         (-[AccessibilityObjectWrapper subrole]):
39             Return NSAccessibilityTimelineSubrole for AccessibilityMediaTimeline.
40
41         * dom/Node.h:
42             add isMediaControlElement.
43
44         * page/mac/WebCoreViewFactory.h:
45         * platform/LocalizedStrings.h:
46         * platform/mac/LocalizedStringsMac.mm:
47         (WebCore::localizedMediaControlElementString): 
48         (WebCore::localizedMediaControlElementHelpText):
49         (WebCore::localizedMediaTimeDescription): 
50             New, return localized media controller strings.
51
52         * platform/gtk/LocalizedStringsGtk.cpp:
53         (WebCore::mediaElementLoadingStateText):
54         (WebCore::mediaElementLiveBroadcastStateText):
55             Move inside of "#if ENABLE(VIDEO)"
56         (WebCore::localizedMediaControlElementString):
57         (WebCore::localizedMediaControlElementHelpText):
58         (WebCore::localizedMediaTimeDescription):
59
60         * rendering/MediaControlElements.cpp:
61         (WebCore::MediaControlElement::MediaControlElement):
62             Initialize m_displayType.
63         (WebCore::MediaControlElement::MediaControlElement):
64         (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
65             Fix style.
66         (WebCore::MediaControlInputElement::MediaControlInputElement):
67             Set m_displayType based on pseudo style ID.
68         (WebCore::MediaControlInputElement::MediaControlInputElement):
69             rename local "o" to "object".
70         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
71         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
72         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
73         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
74         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
75         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
76         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
77         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
78         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
79         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
80             Update for MediaControlInputElement constructor change.
81         (WebCore::MediaControlTimeDisplayElement::formatTime):
82             New, moved here from RenderMedia so AccessibilityMediaTimeDisplay can use it.
83         (WebCore::MediaControlTimeDisplayElement::setCurrentValue):
84             New, set text to current time.
85         * rendering/MediaControlElements.h:
86
87         * rendering/RenderMedia.cpp:
88         (WebCore::RenderMedia::updateControls):
89             Create controls in tab order.
90         (WebCore::RenderMedia::formatTime):
91             Moved to MediaControlTimeDisplayElement::formatTime.
92         (WebCore::RenderMedia::updateTimeDisplay):
93             Call MediaControlTimeDisplayElement::setCurrentValue.
94         * rendering/RenderMedia.h:
95
96 2009-08-25  Jian Li  <jianli@chromium.org>
97
98         Reviewed by David Levin.
99
100         [V8] Fix Canvas layout test failures in Chromium build.
101         https://bugs.webkit.org/show_bug.cgi?id=28720
102
103         The previous fix r47757 does not handle the V8 object conversion correctly.
104
105         * bindings/v8/custom/V8DocumentCustom.cpp:
106         (WebCore::CALLBACK_FUNC_DECL):
107         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
108         (WebCore::CALLBACK_FUNC_DECL):
109
110 2009-08-25  Jian Li  <jianli@chromium.org>
111
112         Reviewed by David Levin.
113
114         [V8] Fix compiling errors in Chromium build caused by Canvas3D changes from r47752.
115         https://bugs.webkit.org/show_bug.cgi?id=28717
116
117         * bindings/v8/DOMObjectsInclude.h:
118         * bindings/v8/DerivedSourcesAllInOne.cpp:
119         * bindings/v8/V8Index.cpp:
120         * bindings/v8/V8Index.h:
121         * bindings/v8/custom/V8DocumentCustom.cpp:
122         (WebCore::CALLBACK_FUNC_DECL):
123         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
124         (WebCore::CALLBACK_FUNC_DECL):
125
126 2009-08-25  Alpha Lam  <hclam@chromium.org>
127
128         Reviewed by David Levin.
129
130         [chromium] Implement media volume slider for chromium
131         https://bugs.webkit.org/show_bug.cgi?id=28715
132
133         Provided the implementation of the volume slider and its container for
134         chromium port. With this change there will be a usable volume control
135         slider for chromium theme.
136
137         No new tests since this is covered by existing media layout tests.
138
139         * css/mediaControlsChromium.css: CSS style for the volume slider.
140         * rendering/RenderThemeChromiumSkia.cpp:
141         (WebCore::mediaSliderThumbImage): Returns the image for slider thumb.
142         (WebCore::mediaVolumeSliderThumbImage): Returns the image for volume slider thumb.
143         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack): Paints the track with one vertical white line.
144         (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize): Adjusts thumb sizes according to the images.
145         (WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb): Paints slider thumb image.
146         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb): Paints volume slider thumb image.
147
148 2009-08-25  Chris Marrin  <cmarrin@apple.com>
149
150         Reviewed by Simon Fraser.
151
152         Missed checking in 2 Canvas3D files
153         https://bugs.webkit.org/show_bug.cgi?id=28018
154
155         * bindings/js/JSCanvasRenderingContextCustom.cpp: Implements toJS to do proper subclass binding
156         * bindings/js/JSCanvasRenderingContext3DCustom.cpp: Argument marshaling for 3D calls
157
158 2009-08-25  Mads Ager  <ager@chromium.org>
159
160         Reviewed by Adam Barth.
161
162         [V8] Exception from JavaScript propagates to main script
163         https://bugs.webkit.org/show_bug.cgi?id=26433
164
165         Make sure that exceptions thrown both at compile time and at
166         runtime in javascript URLs are isolated from the main script.
167
168         Test: fast/dom/javascript-url-exception-isolation.html
169
170         * bindings/v8/V8Proxy.cpp:
171         (WebCore::V8Proxy::evaluate):
172
173 2009-08-25  Chris Marrin  <cmarrin@apple.com>
174
175         Reviewed by Simon Fraser.
176
177         Added all new Canvas3D files to the build
178         https://bugs.webkit.org/show_bug.cgi?id=28018
179
180         This also hooks up CanvasRenderingContext as the common base class for
181         CanvasRenderingContext2D and CanvasRenderingContext3D. And it adds a bit
182         of logic throughout to support the new CanvasRenderingContext3D object.
183         But nothing is hooked up yet.
184
185         * DerivedSources.make:
186         * WebCore.pro:
187         * WebCore.vcproj/WebCore.vcproj:
188         * WebCore/GNUmakefile.am:
189         * WebCore/WebCore.gypi:
190         * WebCore/WebCoreSources.bkl:
191         * WebCore.xcodeproj/project.pbxproj:
192         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
193         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
194         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
195         (WebCore::JSCanvasRenderingContext2D::fillStyle):
196         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
197         (WebCore::JSCanvasRenderingContext2D::setFillColor):
198         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
199         (WebCore::JSCanvasRenderingContext2D::strokeRect):
200         (WebCore::JSCanvasRenderingContext2D::drawImage):
201         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
202         (WebCore::JSCanvasRenderingContext2D::setShadow):
203         (WebCore::JSCanvasRenderingContext2D::createPattern):
204         (WebCore::JSCanvasRenderingContext2D::putImageData):
205         (WebCore::JSCanvasRenderingContext2D::fillText):
206         (WebCore::JSCanvasRenderingContext2D::strokeText):
207         * bindings/js/JSDOMBinding.cpp:
208         (WebCore::isObservableThroughDOM):
209         * bindings/js/JSDocumentCustom.cpp:
210         * bindings/js/JSHTMLCanvasElementCustom.cpp:
211         (WebCore::JSHTMLCanvasElement::markChildren):
212         * dom/Document.cpp:
213         (WebCore::Document::getCSSCanvasContext):
214         * dom/Document.h:
215         * html/HTMLCanvasElement.cpp:
216         (WebCore::HTMLCanvasElement::getContext):
217         (WebCore::HTMLCanvasElement::willDraw):
218         (WebCore::HTMLCanvasElement::reset):
219         (WebCore::HTMLCanvasElement::paint):
220         (WebCore::HTMLCanvasElement::is3D):
221         (WebCore::HTMLCanvasElement::context3D):
222         (WebCore::HTMLCanvasElement::texture3D):
223         * html/HTMLCanvasElement.h:
224         (WebCore::HTMLCanvasElement::renderingContext):
225         * html/canvas/CanvasObject.cpp:
226         (WebCore::CanvasObject::~CanvasObject):
227         * html/canvas/CanvasRenderingContext.idl:
228         * html/canvas/CanvasRenderingContext2D.cpp:
229         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
230         (WebCore::CanvasRenderingContext2D::~CanvasRenderingContext2D):
231         * html/canvas/CanvasRenderingContext2D.h:
232         (WebCore::CanvasRenderingContext2D::is2d):
233         * html/canvas/CanvasRenderingContext2D.idl:
234         * html/canvas/CanvasRenderingContext3D.cpp:
235         * html/canvas/CanvasRenderingContext3D.idl:
236
237 2009-08-25  Dan Bernstein  <mitz@apple.com>
238
239         Reviewed by Anders Carlsson.
240
241         REGRESSION (r47630): fast/repaint/background-generated.html is failing
242         https://bugs.webkit.org/show_bug.cgi?id=28704
243
244         * rendering/RenderBoxModelObject.cpp:
245         (WebCore::RenderBoxModelObject::calculateFillTileSize): Handle SizeNone.
246         * rendering/style/FillLayer.cpp:
247         (WebCore::FillLayer::FillLayer): Initialize the size type to SizeNone.
248         * rendering/style/FillLayer.h:
249         (WebCore::FillSize::FillSize): Changed assignment to initialization and
250             removed redundant assignment to size.
251
252 2009-08-25  Yusuke Sato  <yusukes@chromium.org>
253
254         Reviewed by Darin Fisher.
255
256         [Chromium] Complex text doesn't show up with text stroking
257         https://bugs.webkit.org/show_bug.cgi?id=28707
258
259         Skip the NULL check of m_hdc if Windows GDI is not in use.
260
261         * platform/graphics/chromium/FontChromiumWin.cpp:
262         (WebCore::Font::drawComplexText):
263
264 2009-08-25  Alpha Lam  <hclam@chromium.org>
265
266         Reviewed by David Levin.
267
268         Media controls panel does not have a volume control slider
269         https://bugs.webkit.org/show_bug.cgi?id=28241
270
271         Introduced "-webkit-media-controls-volume-slider",
272         "-webkit-media-controls-volume-slider-container" and the supporting
273         implementation. Also added appearances of "media-volume-slider" and
274         "media-volume-slider-container".
275
276         The implementation of the controls are in WebCore::MediaControlElements.
277         Logic to trigger the display of the volume controls are in WebCore::RenderMedia.
278
279         No new tests since this change doesn't have theme implementation and the
280         volume slider is disabled by default.
281
282         * accessibility/AccessibilitySlider.cpp:
283         (WebCore::AccessibilitySlider::orientation): Marks that volume slider is vertical.
284         * css/CSSPrimitiveValueMappings.h:
285         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added corresponding CSS values.
286         * css/CSSSelector.cpp:
287         (WebCore::CSSSelector::extractPseudoType): ditto.
288         * css/CSSSelector.h:
289         (WebCore::CSSSelector::): ditto.
290         * css/CSSStyleSelector.cpp:
291         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): ditto.
292         * css/CSSValueKeywords.in: ditto.
293         * css/mediaControls.css: Makes the volume slider disabled by default.
294         * platform/ThemeTypes.h: Defines theme parts for volume slider and its container.
295         (WebCore::):
296         * rendering/MediaControlElements.cpp:
297         (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
298         (WebCore::MediaControlVolumeSliderContainerElement::styleForElement):
299         Adjust the CSS values for "display", "postion", "left" and "top" according to member variables.
300         (WebCore::MediaControlVolumeSliderContainerElement::setVisible): Affects the "display" CSS value.
301         (WebCore::MediaControlVolumeSliderContainerElement::setPosition): Affects the "left" and "top" CSS values.
302         (WebCore::MediaControlVolumeSliderContainerElement::hitTest): Hit testing this element.
303         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
304         (WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Modifies the volume using the slider value, allows dragging.
305         * rendering/MediaControlElements.h:
306         (WebCore::): Added definition for MediaControlVolumeSliderElement and MediaControlVolumeSliderContainerElement.
307         (WebCore::MediaControlVolumeSliderContainerElement::isVisible): Inline getter.
308         * rendering/RenderMedia.cpp:
309         (WebCore::RenderMedia::styleDidChange): Updates styles for volume container and volume slider.
310         (WebCore::RenderMedia::createVolumeSliderContainer): Creates volume slider container and attach to panel.
311         (WebCore::RenderMedia::createVolumeSlider): Creates volume slider and attach to volume slider container.
312         (WebCore::RenderMedia::updateControls): Updates volume container and volume slider.
313         (WebCore::RenderMedia::updateVolumeSliderContainer): Sets the visibility and position of volume slider container and its child.
314         (WebCore::RenderMedia::forwardEvent):
315         Hit testing the volume slider container and volume slider to toggle the visibility and forward events to slider.
316         * rendering/RenderMedia.h:
317         Added definition for RenderMedia::updateVolumeSliderContainer().
318         * rendering/RenderMediaControls.cpp:
319         (WebCore::RenderMediaControls::paintMediaControlsPart): Not implemented.
320         * rendering/RenderSlider.cpp:
321         (WebCore::RenderSlider::createThumbStyle): Makes volume slider vertical.
322         (WebCore::RenderSlider::thumbRect): ditto.
323         (WebCore::RenderSlider::mouseEventIsInThumb): ditto.
324         (WebCore::RenderSlider::setValueForPosition): ditto.
325         (WebCore::RenderSlider::positionForOffset): ditto.
326         (WebCore::RenderSlider::currentPosition): ditto.
327         (WebCore::RenderSlider::trackSize): ditto.
328         * rendering/RenderTheme.cpp:
329         (WebCore::RenderTheme::adjustStyle): Adjust style for volume slider thumb.
330         (WebCore::RenderTheme::paint): Paints volume control parts using theme.
331         * rendering/RenderTheme.h:
332         (WebCore::RenderTheme::paintMediaVolumeSliderContainer): Naive implementation to be overridden.
333         (WebCore::RenderTheme::paintMediaVolumeSliderTrack): ditto.
334         (WebCore::RenderTheme::paintMediaVolumeSliderThumb): ditto.
335         * rendering/style/RenderStyleConstants.h:
336         (WebCore::): Constants for volume control parts.
337
338 2009-08-25  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
339
340         Reviewed by Ariya Hidayat.
341
342         [Qt/Mac] Use CONFIG+=build_all only when building libraries
343
344         If no configuration is specified when building WebKit we pass the
345         debug_and_release option to QMake which results in Makefiles for
346         both configurations being generated.
347
348         Previously we built both of these configurations by default, for
349         all targets (both the QtWebKit framework/dyldlib and the various
350         executables such as QtLauncher and tests). This makes sense for
351         the libraries, which get the _debug suffix and can be loaded on
352         demand by setting the DYLD_IMAGE_SUFFIX, but for executables we
353         ended up building the same executable twice.
354
355         We now only build one instance of each executable, and since this
356         is a developer build we build the debug-version. Passing either
357         --debug or --release to build-webkit will override this, and
358         even in the default case the release version can still be built
359         by running 'make release' in the the build directory of each
360         target.
361
362         * WebCore.pro:
363
364 2009-08-25  Xan Lopez  <xlopez@igalia.com>
365
366         Reviewed by Jan Alonzo.
367
368         https://bugs.webkit.org/show_bug.cgi?id=28690
369         Build failure in webkitgtk+-1.1.3
370
371         Do not use deprecated function to unref a pixbuf.
372
373         * platform/gtk/CursorGtk.cpp:
374         (WebCore::Cursor::Cursor):
375
376 2009-08-24  Hironori Bono  <hbono@chromium.org>
377
378         Reviewed by Adam Barth.
379
380         Fix Bug 27827 "[Chromium] Functions Keys don't work in google spreadsheet".
381         <https://bugs.webkit.org/show_bug.cgi?id=27827>.
382
383         Because of the lack of mappings from GDK key-codes to WebKit key-codes,
384         Chromium cannot send valid key-codes to JavaScript when a user types
385         function keys. This change just copies the mappings from 'KeyEventGtk.cpp'.
386
387         To write layout tests for this issue, added mappings from function-key
388         names to platform-specific key-codes to EventSendingController objects
389         so that eventSender.keyDown() can send function-key events without using
390         platform-specific key codes. (Unfortunately, this eventSender.keyDown() change
391         is only for Mac. So this change adds this new test to Skipped tests for other
392         platforms to prevent this change from crashing the build trees.)
393
394         Test: fast/events/keydown-function-keys.html
395
396        * platform/chromium/KeyCodeConversionGtk.cpp: Add mappings from GDK key-codes
397         to WebKit key-code for function keys.
398         (WebCore::windowsKeyCodeForKeyEvent):
399
400 2009-08-24  Antti Koivisto  <antti@apple.com>
401
402         Reviewed by Simon Fraser.
403         
404         https://bugs.webkit.org/show_bug.cgi?id=28698
405         Avoid unnecessary transformations for the window resizer rect.
406
407         * platform/Scrollbar.cpp:
408         (WebCore::Scrollbar::setFrameRect):
409
410 2009-08-24  Alexey Proskuryakov  <ap@apple.com>
411
412         Reviewed by Anders Carlsson.
413
414         <rdar://problem/7161900> REGRESSION: 100 MB membuster leak on windows due to 47391
415         (DNS prefetching support)
416
417         * platform/network/cf/DNSCFNet.cpp: (WebCore::prefetchDNS): Use a run loop from secondary
418         thread on Windows, because there isn't one on main one.
419
420 2009-08-24  Alexey Proskuryakov  <ap@apple.com>
421
422         Reviewed by Darin Adler.
423
424         https://bugs.webkit.org/show_bug.cgi?id=28374
425         Cross-scheme requests should not be blocked by appcache rules
426
427         Test: http/tests/appcache/different-scheme.html
428
429         * loader/appcache/ApplicationCacheHost.cpp:
430         (WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache):
431         Resources with different schemes can never be loaded from appcache.
432
433 2009-08-24  Alexey Proskuryakov  <ap@apple.com>
434
435         Reviewed by Darin Adler and Sam Weinig.
436
437         https://bugs.webkit.org/show_bug.cgi?id=28688
438         REGRESSION(r24994): Cannot create a frame with a javascript URL
439
440         Test: http/tests/security/javascriptURL/javascriptURL-in-new-iframe.html
441
442         * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::setValue):
443         * bindings/js/JSElementCustom.cpp: (WebCore::allowSettingSrcToJavascriptURL):
444         * bindings/js/JSHTMLFrameElementCustom.cpp: (WebCore::allowSettingJavascriptURL):
445         * bindings/js/JSHTMLIFrameElementCustom.cpp: (WebCore::JSHTMLIFrameElement::setSrc):
446         Omit the checks if there is no document in frame yet.
447
448 2009-08-24  Nate Chapin  <japhet@chromium.org>
449
450         Reviewed by Eric Seidel.
451
452         Fix crash in fast/css/rem-dynamic-scaling.html due to a freed
453         RenderStyle being accessed.
454
455         https://bugs.webkit.org/show_bug.cgi?id=28681
456
457         * dom/Element.cpp:
458         (WebCore::Element::recalcStyle): Make currentStyle a RefPtr.
459
460 2009-08-24  Dan Bernstein  <mitz@apple.com>
461
462         Reviewed by Simon Fraser.
463
464         <rdar://problem/5743105> Long freezing during loading and selecting text
465         of a large table
466         https://bugs.webkit.org/show_bug.cgi?id=14918
467
468         * rendering/RenderView.cpp:
469         (WebCore::RenderView::setSelection): Added calls to
470             beginDeferredRepaints() and endDeferredRepaints() around the
471             invalidation of the selection, in order to better coalesce multiple
472             invalid rectangles.
473
474 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
475
476         Reviewed by Timothy Hatcher.
477
478         WebInspector: Simplify findTreeElement code, get rid of potential infinite loop.
479
480         https://bugs.webkit.org/show_bug.cgi?id=28680
481
482         * inspector/front-end/ElementsPanel.js:
483         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
484         * inspector/front-end/ElementsTreeOutline.js:
485         (WebInspector.ElementsTreeOutline.prototype.findTreeElement):
486         * inspector/front-end/treeoutline.js:
487         (TreeOutline.prototype.getCachedTreeElement):
488         (TreeOutline.prototype.findTreeElement):
489         * inspector/front-end/utilities.js:
490         (isAncestorNode):
491         ():
492
493 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
494
495         Reviewed by Timothy Hatcher.
496
497         WebInspector: Do expand local scope when hitting the break
498
499         https://bugs.webkit.org/show_bug.cgi?id=28678
500
501         * inspector/front-end/ScopeChainSidebarPane.js:
502         (WebInspector.ScopeChainSidebarPane.prototype.update):
503
504 2009-08-24  Ada Chan  <adachan@apple.com>
505
506         Reviewed by Steve Falkenburg.
507
508         Make sure we use the current FrameView's frame rect when
509         going back to a cached page.
510         
511         https://bugs.webkit.org/show_bug.cgi?id=28659
512
513         * loader/FrameLoader.cpp:
514         (WebCore::FrameLoader::open):
515
516 2009-08-24  Cameron McCormack  <cam@mcc.id.au>
517
518         Reviewed by Darin Adler.
519
520         Modifying <text rotate=""> doesn't clear the corresponding SVGAnimatedNumberList
521         https://bugs.webkit.org/show_bug.cgi?id=28673
522
523         Test: svg/dom/text-rotate-live.html
524
525         * svg/SVGNumberList.cpp:
526         (WebCore::SVGNumberList::parse): Clear the list before adding the parsed
527         numbers.
528
529 2009-08-24  Simon Fraser  <simon.fraser@apple.com>
530
531         Reviewed by NOBODY (build fix)
532
533         Turn off ENABLE_3D_CANVAS in the xconfig files.
534
535         * Configurations/FeatureDefines.xcconfig:
536
537 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
538
539         Reviewed by Timothy Hatcher.
540
541         WebInspector: Only expand local scope when hitting the break
542
543         https://bugs.webkit.org/show_bug.cgi?id=28678
544
545         * inspector/front-end/ScopeChainSidebarPane.js:
546         (WebInspector.ScopeChainSidebarPane.prototype.update):
547
548 2009-08-24  Dan Bernstein  <mitz@apple.com>
549
550         Reviewed by Simon Fraser.
551
552         background-size fails to parse if a single length/percentage/auto is followed by a comma
553         https://bugs.webkit.org/show_bug.cgi?id=28674
554
555         * css/CSSParser.cpp:
556         (WebCore::CSSParser::parseFillSize): Added an allowComma parameter,
557             which is set to false when this method consumes a comma. Moved
558             handling of 'contain' and 'cover' from parseFillProperty into this
559             method.
560         (WebCore::CSSParser::parseFillProperty): Set allowComma to true before
561             processing the next value, and pass allowComma to parseFillSize.
562         * css/CSSParser.h:
563
564 2009-08-17  Martin Robinson  <martin.james.robinson@gmail.com>
565
566         Reviewed by Gustavo Noronha.
567
568         [GTK] Support for cursors that are images
569         https://bugs.webkit.org/show_bug.cgi?id=28346
570
571         Added support for cursors which are images for CursorGtk. Added
572         a manual test for this.
573
574         * manual-tests/gtk/cursor-image.html: Added.
575         * manual-tests/gtk/resources/redcursor.cur: Added.
576         * platform/gtk/CursorGtk.cpp:
577         (WebCore::Cursor::Cursor):
578
579 2009-08-24  Zan Dobersek  <zandobersek@gmail.com>
580
581         Reviewed by Gustavo Noronha.
582
583         [GTK] Integrate GStreamer video with the graphics backend
584         https://bugs.webkit.org/show_bug.cgi?id=16356
585
586         Improves GStreamer backend implementation of MediaPlayerPrivate class.
587
588         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
589         (WebCore::mediaPlayerPrivateErrorCallback): Send proper MediaPlayer
590         error for different GStreamer errors to MediaPlayerPrivate.
591         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Move static
592         initialization boolean to a better place.
593         (WebCore::MediaPlayerPrivate::play):
594         (WebCore::MediaPlayerPrivate::pause):
595         (WebCore::MediaPlayerPrivate::duration): Return if error occured, do not
596         consider the source as stream if duration query failed.
597         (WebCore::MediaPlayerPrivate::currentTime): Return if error occured, use
598         an early return.
599         (WebCore::MediaPlayerPrivate::seek): Return if error occured.
600         (WebCore::MediaPlayerPrivate::setEndTime): Remove implementation since this
601         function doesn't seem to be used anywhere in WebCore.
602         (WebCore::MediaPlayerPrivate::paused):
603         (WebCore::MediaPlayerPrivate::seeking):
604         (WebCore::MediaPlayerPrivate::setRate): Seek to current time when rate is set.
605         (WebCore::MediaPlayerPrivate::maxTimeBuffered): Return if error occured.
606         (WebCore::MediaPlayerPrivate::maxTimeSeekable): Ditto.
607         (WebCore::MediaPlayerPrivate::maxTimeLoaded): Ditto.
608         (WebCore::MediaPlayerPrivate::bytesLoaded):
609         (WebCore::MediaPlayerPrivate::totalBytesKnown):
610         (WebCore::MediaPlayerPrivate::totalBytes): Ditto.
611         (WebCore::MediaPlayerPrivate::updateStates): Return if error occured, update
612         after seek ended with a successful change
613         (WebCore::MediaPlayerPrivate::didEnd): Do not pause the playbin when end is reached.
614         (WebCore::MediaPlayerPrivate::loadingFailed): Update network state with the given error.
615         (WebCore::mimeTypeCache): Gather supported mime types from GStreamer.
616         (WebCore::MediaPlayerPrivate::getSupportedTypes):
617         (WebCore::MediaPlayerPrivate::supportsType):
618         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
619         (WebCore::MediaPlayerPrivate::supportsFullscreen): First step towards fullscreen
620         support.
621         (WebCore::MediaPlayerPrivate::createGSTPlayBin): Use playbin2 instead of playbin,
622         do not set playbin's audio sink.
623         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
624         * platform/graphics/gtk/VideoSinkGStreamer.cpp:
625         (webkit_video_sink_idle_func): Use C++ casts, decrease reference count of async
626         queue at the end of the idle function.
627         (webkit_video_sink_render): Increase reference count of async queue.
628         (webkit_video_sink_stop): Remove any idle functions with the sink as data.
629
630 2009-08-23  Chris Marrin  <cmarrin@apple.com>
631
632         Reviewed by Simon Fraser.
633
634         Remaining new files for Canvas3D
635         https://bugs.webkit.org/show_bug.cgi?id=28018
636
637         * bindings/js/JSHTMLCanvasElementCustom.cpp: Added Canvas3D method behind an ifdef
638         * html/canvas/CanvasByteArray.cpp: Added. Efficient array of bytes for passing to GL functions
639         * html/canvas/CanvasByteArray.h: Added.
640         * html/canvas/CanvasByteArray.idl: Added.
641         * html/canvas/CanvasNumberArray.cpp: Added. Efficient array of 32 bit floats for passing to GL functions
642         * html/canvas/CanvasNumberArray.h: Added.
643         * html/canvas/CanvasNumberArray.idl: Added.
644
645 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
646
647         Reviewed by Timothy Hatcher.
648
649         WebInspector: Migrate call frames interaction to the InjectedScript-based schema.
650
651         https://bugs.webkit.org/show_bug.cgi?id=28408
652
653         * inspector/front-end/CallStackSidebarPane.js:
654         (WebInspector.CallStackSidebarPane.prototype.update):
655         * inspector/front-end/ConsoleView.js:
656         (WebInspector.ConsoleView.prototype.doEvalInWindow):
657         (WebInspector.ConsoleTextMessage):
658         * inspector/front-end/DOMAgent.js:
659         (WebInspector.DOMAgent.prototype.get domWindow):
660         (InspectorController.openInInspectedWindow):
661         (InspectorController.getCallFrames):
662         (InspectorController.evaluateInCallFrame):
663         * inspector/front-end/ElementsPanel.js:
664         (WebInspector.ElementsPanel.prototype.reset):
665         (WebInspector.ElementsPanel.prototype.generateStylesheet):
666         * inspector/front-end/InjectedScript.js:
667         (InjectedScript.evaluate):
668         (InjectedScript._evaluateOn):
669         (InjectedScript.openInInspectedWindow):
670         (InjectedScript.getCallFrames):
671         (InjectedScript.evaluateInCallFrame):
672         (InjectedScript._callFrameForId):
673         (InjectedScript._objectForId):
674         (InjectedScript.CallFrameProxy):
675         (InjectedScript.CallFrameProxy.prototype._wrapScopeChain):
676         * inspector/front-end/ObjectPropertiesSection.js:
677         (WebInspector.ObjectPropertiesSection.prototype._update):
678         * inspector/front-end/ObjectProxy.js:
679         (WebInspector.ObjectPropertyProxy):
680         * inspector/front-end/ResourcesPanel.js:
681         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
682         * inspector/front-end/ScopeChainSidebarPane.js:
683         (WebInspector.ScopeChainSidebarPane):
684         (WebInspector.ScopeChainSidebarPane.prototype.update):
685         (WebInspector.ScopeVariableTreeElement.prototype.onattach):
686         (WebInspector.ScopeVariableTreeElement.prototype.onexpand):
687         (WebInspector.ScopeVariableTreeElement.prototype.oncollapse):
688         * inspector/front-end/ScriptsPanel.js:
689         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
690         (WebInspector.ScriptsPanel.prototype.variablesInSelectedCallFrame):
691         (WebInspector.ScriptsPanel.prototype.debuggerPaused.callback):
692         (WebInspector.ScriptsPanel.prototype.debuggerPaused):
693
694 2009-08-24  Kent Tamura  <tkent@chromium.org>
695
696         Reviewed by Eric Seidel.
697
698         Add support for the placeholder attribute and DOM property of the textarea element.
699         https://bugs.webkit.org/show_bug.cgi?id=21248
700
701         A DOM node for an INPUT element doesn't have a flag for placeholder
702         visibility anymore.  This patch also fixes a bug that a renderer
703         doesn't reflect a corresponding DOM value change.
704
705         Tests: fast/forms/textarea-placeholder-dom-property.html
706                fast/forms/textarea-placeholder-pseudo-style.html
707                fast/forms/textarea-placeholder-set-attribute.html
708                fast/forms/textarea-placeholder-set-value.html
709
710         * css/html.css: Add the default style for placeholder of textarea.
711         * dom/InputElement.cpp: Cleanup for m_placeholderShouldBeVisible removal
712         (WebCore::InputElement::dispatchFocusEvent):
713         (WebCore::InputElement::dispatchBlurEvent):
714         (WebCore::InputElement::placeholderShouldBeVisible):
715         (WebCore::InputElement::updatePlaceholderVisibility):
716         (WebCore::InputElement::setValueFromRenderer):
717         (WebCore::InputElementData::InputElementData):
718         * dom/InputElement.h:
719         * html/HTMLInputElement.cpp:
720         (WebCore::HTMLInputElement::dispatchFocusEvent):
721         (WebCore::HTMLInputElement::dispatchBlurEvent):
722         (WebCore::HTMLInputElement::setValue):
723         (WebCore::HTMLInputElement::placeholderShouldBeVisible):
724         * html/HTMLInputElement.h:
725         (WebCore::HTMLInputElement::updatePlaceholderVisibility):
726         * html/HTMLTextAreaElement.cpp:
727         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
728         (WebCore::HTMLTextAreaElement::setValue):
729         (WebCore::HTMLTextAreaElement::placeholderShouldBeVisible):
730         (WebCore::HTMLTextAreaElement::updatePlaceholderVisibility):
731         (WebCore::HTMLTextAreaElement::dispatchFocusEvent):
732         (WebCore::HTMLTextAreaElement::dispatchBlurEvent):
733         * html/HTMLTextAreaElement.h:
734         * html/HTMLTextAreaElement.idl:
735         * rendering/RenderTextControl.cpp:
736         (WebCore::RenderTextControl::RenderTextControl):
737         (WebCore::RenderTextControl::styleDidChange):
738         (WebCore::RenderTextControl::setInnerTextStyle):
739         (WebCore::RenderTextControl::updatePlaceholderVisibility):
740         * rendering/RenderTextControl.h:
741         * rendering/RenderTextControlMultiLine.cpp:
742         (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
743         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
744         (WebCore::RenderTextControlMultiLine::updateFromElement):
745         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
746         (WebCore::RenderTextControlMultiLine::textBaseStyle):
747         * rendering/RenderTextControlMultiLine.h:
748         * rendering/RenderTextControlSingleLine.cpp:
749         (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
750         (WebCore::RenderTextControlSingleLine::textBaseStyle):
751         (WebCore::RenderTextControlSingleLine::updateFromElement):
752         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
753         * rendering/RenderTextControlSingleLine.h:
754         * wml/WMLInputElement.cpp:
755         (WebCore::WMLInputElement::dispatchFocusEvent):
756         (WebCore::WMLInputElement::dispatchBlurEvent):
757         (WebCore::WMLInputElement::setValue):
758         (WebCore::WMLInputElement::placeholderShouldBeVisible):
759
760 2009-08-23  Dirk Schulze  <krit@webkit.org>
761
762         Reviewed by Mark Rowe.
763
764         Code clean-up and build fix for filters enabled builds. Moved SVGNames.h
765         into #if ENABLE(SVG) for Document.cpp and added SVGNames.h to the other
766         files. They are needed there after r47688.
767
768         * dom/Document.cpp:
769         * svg/SVGComponentTransferFunctionElement.h:
770         * svg/SVGFELightElement.h:
771         * svg/SVGFEMergeNodeElement.h:
772         * svg/SVGFilterPrimitiveStandardAttributes.h:
773
774 2009-08-23  Gustavo Noronha Silva  <gns@gnome.org>
775
776         Unreviewed, build fix for make distcheck on GTK+.
777
778         * GNUmakefile.am: Added files needed for the build.
779         * bindings/js/JSDOMWindowCustom.cpp: Protect SharedWorker include
780         with #if clause.
781         * bindings/js/JSEventTarget.cpp: Dito.
782         * dom/Document.cpp: Dito.
783         * loader/FrameLoader.cpp: Dito.
784
785 2009-08-23  Joseph Pecoraro  <joepeck@webkit.org>
786
787         Reviewed by Timothy Hatcher.
788
789         Inspector: Throws an Error on "null"
790         https://bugs.webkit.org/show_bug.cgi?id=28665
791
792         * inspector/front-end/InjectedScript.js:
793         (InjectedScript.evaluate):
794
795 2009-08-23  Pavel Feldman  <pfeldman@chromium.org>
796
797         Reviewed by Timothy Hatcher.
798
799         Inspector: REGRESSION Formatting Function in Console is Abbreviated Too Often
800
801         https://bugs.webkit.org/show_bug.cgi?id=28666
802
803         * inspector/front-end/InjectedScript.js:
804         (InjectedScript.getProperties):
805         (InjectedScript.createProxyObject):
806
807 2009-08-22  Martin Robinson  <martin.james.robinson@gmail.com>
808
809         Reviewed by Xan Lopez.
810
811         [GTK] BitmapImage::getGdkPixbuf does not handle alpha channels properly
812         https://bugs.webkit.org/show_bug.cgi?id=28345
813
814         When doing the conversion between cairo_surface_t* and GdkPixbuf*
815         account for the differences in the respective formats' in-memory
816         image format.
817
818         * platform/graphics/gtk/ImageGtk.cpp:
819         (WebCore::getCairoSurfacePixel):
820         (WebCore::getGdkPixbufPixel):
821         (WebCore::BitmapImage::getGdkPixbuf):
822
823 2009-08-22  Darin Adler  <darin@apple.com>
824
825         Reviewed by Oliver Hunt.
826
827         Make DOM classes start with a reference count of 1, like all other RefCounted
828         
829         Next step: Element, HTMLElement, HTMLAnchorElement, HTMLAppletElement,
830         HTMLAreaElement, HTMLEmbedElement, HTMLFrameElement, HTMLIFrameElement,
831         HTMLObjectElement, HTMLPlugInElement, HTMLPlugInImageElement.
832
833         * DerivedSources.make: Fix error seen every time we build by escaping the $
834         in the build rule, since you have to use $$ for that in make.
835
836         * WebCore.base.exp: Updated.
837
838         * bindings/objc/DOM.mm:
839         Added now-needed include of SVGNames.h.
840
841         * dom/Document.cpp: Added now-needed include of SVGNames.h.
842         (WebCore::Document::createElement): Use create instead of new.
843
844         * dom/Element.cpp:
845         (WebCore::Element::Element): Added ConstructionType argument so the caller
846         can determine whether this starts with a reference count of either 0 or 1.
847         Later we will remove this again once they are all 1.
848         (WebCore::Element::create): Added.
849
850         * dom/Element.h: Added create and made constructor protected.
851
852         * dom/StyledElement.cpp:
853         (WebCore::StyledElement::StyledElement): Added ConstructionType argument.
854         * dom/StyledElement.h: Made many functions protected or private, including
855         the constructor.
856
857         * dom/make_names.pl: Use create to create the base elements HTMLElement,
858         SVGElement, and WMLElement.
859
860         * editing/CreateLinkCommand.cpp:
861         (WebCore::CreateLinkCommand::doApply): Use create instead of new.
862         * editing/UnlinkCommand.cpp:
863         (WebCore::UnlinkCommand::doApply): Ditto.
864
865         * html/HTMLAnchorElement.cpp:
866         (WebCore::HTMLAnchorElement::create): Added.
867         * html/HTMLAnchorElement.h: Made constructor protected and added create.
868         Also made m_rootEditableElementForSelectionOnMouseDown a RefPtr.
869
870         * html/HTMLAppletElement.cpp:
871         (WebCore::HTMLAppletElement::create): Added.
872         * html/HTMLAppletElement.h: Made constructor private and added create.
873
874         * html/HTMLAreaElement.cpp:
875         (WebCore::HTMLAreaElement::create): Added.
876         * html/HTMLAreaElement.h: Made constructor private and added create.
877
878         * html/HTMLElement.cpp:
879         (WebCore::HTMLElement::create): Added.
880         * html/HTMLElement.h: Made constructor protected and added create.
881         Made other functions protected and private. Also added inline
882         definition of constructor.
883
884         * html/HTMLEmbedElement.cpp:
885         (WebCore::HTMLEmbedElement::create): Added.
886         * html/HTMLEmbedElement.h: Made constructor private and added create.
887         Made other functions private.
888
889         * html/HTMLFrameElement.cpp:
890         (WebCore::HTMLFrameElement::create): Added.
891         (WebCore::HTMLFrameElement::parseMappedAttribute):
892         * html/HTMLFrameElement.h: Made constructor private and added create.
893         Made other functions private.
894
895         * html/HTMLFrameElementBase.h: Made functions protected and private.
896
897         * html/HTMLFrameOwnerElement.cpp:
898         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement): Pass
899         CreateElement so reference count starts at 1.
900
901         * html/HTMLFrameOwnerElement.h: Made functions protected and private.
902
903         * html/HTMLIFrameElement.cpp:
904         (WebCore::HTMLIFrameElement::create): Added.
905         * html/HTMLIFrameElement.h: Made constructor private and added create.
906         Made other functions private.
907
908         * html/HTMLObjectElement.cpp:
909         (WebCore::HTMLObjectElement::create): Added.
910         (WebCore::HTMLObjectElement::containsJavaApplet): Changed while loop
911         into a for loop and tweaked formatting.
912
913         * html/HTMLObjectElement.h: Made constructor private and added create.
914         Made other functions private.
915
916         * html/HTMLPlugInElement.h: Made constructor protected.
917         Made other functions protected and private.
918
919         * html/HTMLPlugInImageElement.h: Made constructor and another function
920         protected.
921
922         * html/HTMLTagNames.in: Removed createWithNew from all classes that
923         now have create functions. Moved conditional noscript to a separate
924         paragraph.
925
926         * html/HTMLViewSourceDocument.cpp:
927         (WebCore::HTMLViewSourceDocument::addSpanWithClassName): Use create.
928         (WebCore::HTMLViewSourceDocument::addLink): Ditto.
929         * page/DragController.cpp:
930         (WebCore::documentFragmentFromDragData): Ditto.
931
932         * svg/SVGElement.cpp:
933         (WebCore::SVGElement::SVGElement): Pass CreateElementZeroRefCount
934         so reference count still starts at 0. Will change this class later.
935         (WebCore::SVGElement::create): Added.
936         * svg/SVGElement.h: Added create, made constructor protected, and
937         made other functions protected and private. Removed unneeded
938         SVGNames.h include.
939
940         * svg/SVGExternalResourcesRequired.h: Added now-needed SVGNames.h
941         include.
942
943         * svg/SVGStopElement.h: Added now-needed SVGNames.h include.
944         Made functions private.
945
946         * wml/WMLElement.cpp:
947         (WebCore::WMLElement::WMLElement): Pass CreateElementZeroRefCount
948         so reference count still starts at 0. Will change this class later.
949         (WebCore::WMLElement::create): Added.
950         * wml/WMLElement.h: Added create and made constructor protected.
951
952         * wml/WMLTagNames.in: Removed createWithNew from WMLElement.
953
954 2009-08-22  Adele Peterson  <adele@apple.com>
955
956         Reviewed by Anders Carlsson.
957
958         Fix for <rdar://problem/7161656> Crash in RenderObject::destroy when using custom scrollbars
959
960         Custom scrollbars normally get detached when a document gets detached.  In this case, a crash was happening when the document had gone into the page cache 
961         and then was getting destroyed without proper scrollbar teardown.  This change makes custom scrollbars get detached when the document enters the cache.
962
963         I couldn't figure out a way to reliably cause this to happen in DRT, since the reproducible case relies on the cache being purged at a particular time.
964
965         * history/CachedFrame.cpp: (WebCore::CachedFrame::CachedFrame): Detach custom scrollbars when the CachedFrame is created.  
966           They'll get reattached when the document comes out of the page cache.
967         * page/FrameView.cpp: (WebCore::FrameView::~FrameView): Added some asserts to catch this problem earlier in debug builds.
968
969 2009-08-22  David Hyatt  <hyatt@apple.com>
970
971         Reviewed by Dan Bernstein.
972
973         Make sure self-collapsing blocks that clear floats are still able to collapse their bottom margins with
974         the bottom of their parent blocks.  The old code prevented all collapsing, but all CSS2.1 states is that:
975         "An element that has had clearance applied to it never collapses its top margin with its parent block's bottom margin."
976         
977         The implication is that the bottom margin can still collapse, and the block-inside-inline form of
978         fast/block/margin-collapse/025.html (added as fast/block/margin-collapse/block-inside-inline/025.html) depends
979         on it to get comparable results.
980
981         Added block-inside-inline tests (a whole slew of them) in fast/block/margin-collapse/block-inside-inline/
982
983         * rendering/RenderBlock.cpp:
984         (WebCore::RenderBlock::MarginInfo::MarginInfo):
985         (WebCore::RenderBlock::collapseMargins):
986         (WebCore::RenderBlock::clearFloatsIfNeeded):
987         (WebCore::RenderBlock::handleBottomOfBlock):
988         * rendering/RenderBlock.h:
989         (WebCore::RenderBlock::MarginInfo::clearMargin):
990         (WebCore::RenderBlock::MarginInfo::canCollapseBottomWithChildren):
991
992 2009-08-22  Chris Fleizach  <cfleizach@apple.com>
993
994         Reviewed by Darin Adler.
995
996         Need to implement ARIA role="listitem" and role="list"
997         https://bugs.webkit.org/show_bug.cgi?id=28606
998
999         Test: platform/mac-snowleopard/accessibility/aria-list-and-listitem.html
1000
1001         * accessibility/AXObjectCache.cpp:
1002         (WebCore::AXObjectCache::getOrCreate):
1003         * accessibility/AccessibilityList.cpp:
1004         (WebCore::AccessibilityList::isUnorderedList):
1005         * accessibility/AccessibilityRenderObject.cpp:
1006         (WebCore::RoleEntry::):
1007
1008 2009-08-21  Dan Bernstein  <mitz@apple.com>
1009
1010         Reviewed by Darin Adler.
1011
1012         Clean up fill image geometry calculation
1013         https://bugs.webkit.org/show_bug.cgi?id=28652
1014
1015         * rendering/RenderBoxModelObject.cpp:
1016         (WebCore::RenderBoxModelObject::calculateFillTileSize): Renamed
1017             calculateBackgroundSize() to this. Replaced separate scaledWidth and
1018             scaledHeight parameters with a single scaledSize parameter. Renamed
1019             parameters and local variables.
1020         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Changed
1021             to use CSS3 Backgrounds and Borders terminology in comments and
1022             local variable names. Renamed, clarified and consolidated some local
1023             variables.
1024         * rendering/RenderBoxModelObject.h: Made calculateFillTileSize() private.
1025
1026 2009-08-22  Chris Marrin  <cmarrin@apple.com>
1027
1028         Unreviewed, build fix.
1029
1030         Backing out http://trac.webkit.org/changeset/47669
1031
1032         * html/canvas/CanvasRenderingContext2D.cpp:
1033         * html/canvas/CanvasRenderingContext2D.h:
1034
1035 2009-08-22  Dimitri Glazkov  <dglazkov@chromium.org>
1036
1037         Unreviewed, build fix.
1038
1039         Backing out http://trac.webkit.org/changeset/47671 in preparation of
1040         rolling out http://trac.webkit.org/changeset/47669.
1041
1042 2009-08-22  Dimitri Glazkov  <dglazkov@chromium.org>
1043
1044         Reviewed by Anders Carlsson.
1045
1046         Build fix, add CanvasRenderingContext to build systems.
1047         https://bugs.webkit.org/show_bug.cgi?id=28018
1048
1049         * DerivedSources.make: Added CanvasRenderinContext.
1050         * GNUmakefile.am: Ditto.
1051         * WebCore.gypi: Ditto.
1052         * WebCore.pro: Ditto.
1053         * WebCore.xcodeproj/project.pbxproj: Ditto.
1054         * WebCoreSources.bkl: Ditto.
1055
1056 2009-08-21  Chris Marrin  <cmarrin@apple.com>
1057
1058         Reviewed by Oliver Hunt.
1059
1060         New files implementing GL buffer wrappers, and support to make them platform independent
1061         https://bugs.webkit.org/show_bug.cgi?id=28018
1062
1063         * html/canvas/CanvasBuffer.cpp: Added. Wrapper around GL Buffer object
1064         * html/canvas/CanvasBuffer.h: Added.
1065         * html/canvas/CanvasBuffer.idl: Added.
1066         * html/canvas/CanvasFramebuffer.cpp: Added. Wrapper around GL Framebuffer object
1067         * html/canvas/CanvasFramebuffer.h: Added.
1068         * html/canvas/CanvasFramebuffer.idl: Added.
1069         * html/canvas/CanvasObject.h: Expose m_context
1070         * html/canvas/CanvasProgram.cpp: Added. Wrapper around GL Program object
1071         * html/canvas/CanvasProgram.h: Added.
1072         * html/canvas/CanvasProgram.idl: Added.
1073         * html/canvas/CanvasRenderbuffer.cpp: Added. Wrapper around GL Renderbuffer object
1074         * html/canvas/CanvasRenderbuffer.h: Added.
1075         * html/canvas/CanvasRenderbuffer.idl: Added.
1076         * html/canvas/CanvasRenderingContext3D.cpp: Move m_objects hash table from GraphicsContext3D to here
1077         * html/canvas/CanvasRenderingContext3D.h:
1078         * html/canvas/CanvasShader.cpp: Added. Wrapper around GL Shader object
1079         * html/canvas/CanvasShader.h: Added.
1080         * html/canvas/CanvasShader.idl: Added.
1081         * html/canvas/CanvasTexture.cpp: Added. Wrapper around GL Texture object
1082         * html/canvas/CanvasTexture.h: Added.
1083         * html/canvas/CanvasTexture.idl: Added.
1084         * platform/graphics/GraphicsContext3D.cpp: Removed.
1085         * platform/graphics/GraphicsContext3D.h: Move m_objects hash table from here to CanvasRenderingContext3D
1086         * platform/graphics/mac/GraphicsContext3DMac.cpp: Implement platform dependent code for GL object creation/destruction
1087
1088 2009-08-21  Darin Adler  <darin@apple.com>
1089
1090         * WebCore.vcproj/build-generated-files.sh:
1091         * make-generated-sources.sh:
1092         Removed obsolete code to set up CREATE_HASH_TABLE.
1093
1094 2009-08-21  Adele Peterson  <adele@apple.com>
1095
1096         Reviewed by Mark Rowe.
1097
1098         <rdar://problem/7162322> Custom style sheet ignored if UAC is enabled 
1099
1100         * platform/win/SharedBufferWin.cpp: (WebCore::SharedBuffer::createWithContentsOfFile): 
1101         No need to open the file with write access.  Only read access is needed.
1102
1103 2009-08-21  Alexey Proskuryakov  <ap@apple.com>
1104
1105         Reviewed by Darin Adler.
1106
1107         <rdar://problem/7161454> Leaks seen during http/tests/xmlhttprequest/cross-origin-no-authorization.html
1108
1109         Also fixes leaks seen on appcache tests.
1110
1111         * platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::cancel): Work around
1112         something that's likely a CFNetwork issue. Note that on Windows, there is no matching API
1113         to call, and we do not think that the leak occurs there anyway.
1114
1115 2009-08-21  Dmitry Titov  <dimich@chromium.org>
1116
1117         Reviewed by David Levin.
1118
1119         https://bugs.webkit.org/show_bug.cgi?id=28650
1120         Remove cross-thread code from CrossOriginPreflightResultCache.
1121         Removed mutexes, atomic initializer and string copy.
1122
1123         No new tests, the worker tests cover this.
1124
1125         * loader/CrossOriginPreflightResultCache.cpp:
1126         (WebCore::addToAccessControlAllowList):
1127         (WebCore::CrossOriginPreflightResultCache::shared):
1128         (WebCore::CrossOriginPreflightResultCache::appendEntry):
1129         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
1130         (WebCore::CrossOriginPreflightResultCache::empty):
1131         * loader/CrossOriginPreflightResultCache.h:
1132
1133 2009-08-21  Michelangelo De Simone  <micdesim@gmail.com>
1134
1135         Reviewed by Jan Alonzo.
1136
1137         Buildfix after http://trac.webkit.org/changeset/47655.
1138
1139         * html/HTMLFormControlElement.h:
1140
1141 2009-08-19  Joseph Pecoraro  <joepeck@webkit.org>
1142
1143         Reviewed by Timothy Hatcher.
1144
1145         Inspector: Improve Cookie DataGrid to Show Hidden Data
1146         https://bugs.webkit.org/show_bug.cgi?id=28269
1147
1148           Removed Custom Bindings
1149
1150         * bindings/js/JSInspectorBackendCustom.cpp:
1151         * bindings/v8/custom/V8CustomBinding.h:
1152         * bindings/v8/custom/V8InspectorBackendCustom.cpp:
1153         * inspector/InspectorBackend.cpp:
1154
1155           Made Non-Custom Bindings in the Backend
1156
1157         (WebCore::InspectorBackend::getCookies):
1158         (WebCore::InspectorBackend::deleteCookie):
1159         * inspector/InspectorBackend.h:
1160         * inspector/InspectorBackend.idl:
1161         * inspector/InspectorController.cpp:
1162         (WebCore::InspectorController::deleteCookie):
1163         * inspector/InspectorController.h:
1164
1165           Build the Cookie ScriptObjects, handles using document.cookie in
1166           case the platform hasn't implemented raw cookie access.
1167
1168         * inspector/InspectorDOMAgent.cpp:
1169         (WebCore::InspectorDOMAgent::getCookies):
1170         (WebCore::InspectorDOMAgent::buildObjectForCookie):
1171         (WebCore::InspectorDOMAgent::buildArrayForCookies):
1172         * inspector/InspectorDOMAgent.h:
1173
1174           Complete the Asynchronous Calls
1175
1176         * inspector/InspectorFrontend.cpp:
1177         (WebCore::InspectorFrontend::didGetCookies):
1178         * inspector/InspectorFrontend.h:
1179
1180           Asynchronous Functions to get Cookie Data
1181
1182         * inspector/front-end/DOMAgent.js:
1183         (WebInspector.Cookies.getCookiesAsync):
1184         (WebInspector.Cookies.buildCookiesFromString): fallback behavior
1185
1186           Refactor to use the Asynchronous Functions
1187
1188         * inspector/front-end/CookieItemsView.js:
1189         (WebInspector.CookieItemsView):
1190         (WebInspector.CookieItemsView.prototype.get statusBarItems):
1191         (WebInspector.CookieItemsView.prototype.update.callback):
1192         (WebInspector.CookieItemsView.prototype.update):
1193         (WebInspector.CookieItemsView.prototype.simpleDataGridForCookies):
1194         (WebInspector.CookieItemsView.prototype._deleteButtonClicked):
1195
1196           Cleaned/Commented Related Code
1197
1198         (InspectorController.searchCanceled):
1199         * inspector/front-end/InjectedScript.js:
1200         * platform/Cookie.h:
1201         * English.lproj/localizedStrings.js: the new strings that were supposed to have gone in last time
1202
1203 2009-08-21  Michelangelo De Simone  <micdesim@gmail.com>
1204
1205         Reviewed by Adele Peterson.
1206
1207         https://bugs.webkit.org/show_bug.cgi?id=28145
1208         Add support for novalidate/formnovalidate attribute, from HTML5 specs:
1209         http://www.whatwg.org/specs/web-apps/current-work/#attr-fs-novalidate
1210
1211         Tests: fast/forms/formnovalidate-attribute.html
1212                fast/forms/novalidate-attribute.html
1213
1214         * html/HTMLAttributeNames.in: added novalidate, formnovalidate
1215         * html/HTMLButtonElement.idl: formnovalidate attribute exposed
1216         * html/HTMLFormControlElement.cpp:
1217         (WebCore::HTMLFormControlElement::formNoValidate): attribute getter
1218         (WebCore::HTMLFormControlElement::setFormNoValidate): attribute setter
1219         * html/HTMLFormControlElement.h:
1220         * html/HTMLFormElement.cpp:
1221         (WebCore::HTMLFormElement::novalidate): attribute getter
1222         (WebCore::HTMLFormElement::setNovalidate): attribute setter
1223         * html/HTMLFormElement.h:
1224         * html/HTMLFormElement.idl: novalidate attribute exposed
1225         * html/HTMLInputElement.idl: formNoValidate attribute exposed
1226
1227 2009-08-21  Dan Bernstein  <mitz@apple.com>
1228
1229         Reviewed by Beth Dakin.
1230
1231         Rendering changes to complete
1232         [CSS3 Backgrounds and Borders] Add support for the "contain" value for
1233         background-size
1234         https://bugs.webkit.org/show_bug.cgi?id=27573
1235         and
1236         [CSS3 Backgrounds and Borders] Add support for the "cover" value for
1237         background-size
1238         https://bugs.webkit.org/show_bug.cgi?id=27574
1239
1240         Test: fast/backgrounds/size/contain-and-cover.html
1241
1242         * rendering/RenderBoxModelObject.cpp:
1243         (WebCore::RenderBoxModelObject::calculateBackgroundSize):
1244         * rendering/RenderObject.cpp:
1245         (WebCore::mustRepaintFillLayers):
1246
1247 2009-08-21  Michelangelo De Simone  <micdesim@gmail.com>
1248
1249         Reviewed by Adele Peterson.
1250
1251         https://bugs.webkit.org/show_bug.cgi?id=27452
1252         Add support for checkValidity() method and invalid event, from HTML5
1253         specs:
1254         http://www.whatwg.org/specs/web-apps/current-work/#dom-form-checkvalidity
1255
1256         Tests: fast/events/invalid-001.html
1257                fast/events/invalid-002.html
1258                fast/events/invalid-003.html
1259                fast/events/invalid-004.html
1260                fast/events/invalid-005.html
1261                fast/forms/checkValidity-001.html
1262                fast/forms/checkValidity-002.html
1263                fast/forms/checkValidity-003.html
1264                fast/forms/checkValidity-004.html
1265
1266         * dom/Document.idl: oninvalid event handler
1267         * dom/Element.idl: ditto
1268         * dom/EventNames.h: added invalid event
1269         * dom/Node.cpp:
1270         (WebCore::Node::oninvalid): ditto
1271         (WebCore::Node::setOninvalid): ditto
1272         * dom/Node.h: ditto
1273         * html/HTMLAttributeNames.in: oninvalid attribute
1274         * html/HTMLButtonElement.idl: added checkValidity() method
1275         * html/HTMLElement.cpp:
1276         (WebCore::HTMLElement::parseMappedAttribute): parses oninvalid
1277         * html/HTMLFieldSetElement.idl: added checkValidity() method
1278         * html/HTMLFormControlElement.cpp:
1279         (WebCore::HTMLFormControlElement::checkValidity): checkValidity()
1280         implementation
1281         * html/HTMLFormControlElement.h:
1282         * html/HTMLFormElement.cpp:
1283         (WebCore::HTMLFormElement::checkValidity): checkValidity() implementation
1284         for form elements
1285         * html/HTMLFormElement.h: checkValidity() definition
1286         * html/HTMLFormElement.idl: added checkValidity() method
1287         * html/HTMLInputElement.idl: added checkValidity() method
1288         * html/HTMLSelectElement.idl: added checkValidity() method
1289         * html/HTMLTextAreaElement.idl: added checkValidity() method
1290         * page/DOMWindow.cpp:
1291         (WebCore::DOMWindow::oninvalid): oninvalid event handler
1292         (WebCore::DOMWindow::setOninvalid): ditto
1293         * page/DOMWindow.h: ditto
1294         * page/DOMWindow.idl: ditto
1295
1296 2009-08-21  Beth Dakin  <bdakin@apple.com>
1297
1298         Reviewed by Dan Bernstein.
1299
1300         The CSS part of https://bugs.webkit.org/show_bug.cgi?id=27571 [CSS3 
1301         Backgrounds and Borders] Add support for the "round" value for 
1302         background-repeat
1303         -and-
1304         https://bugs.webkit.org/show_bug.cgi?id=27570 [CSS3 Backgrounds and 
1305         Borders] Add support for the "space" value for background-repeat
1306
1307         * css/CSSParser.cpp:
1308         (WebCore::CSSParser::parseFillProperty):
1309         * css/CSSPrimitiveValueMappings.h:
1310         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1311         (WebCore::CSSPrimitiveValue::operator EFillRepeat):
1312         * css/CSSValueKeywords.in:
1313         * rendering/style/FillLayer.h:
1314         * rendering/style/RenderStyleConstants.h:
1315         (WebCore::):
1316
1317 2009-08-21  Chris Marrin  <cmarrin@apple.com>
1318
1319         Reviewed by Oliver Hunt.
1320
1321         New files for Canvas 3D feature
1322         https://bugs.webkit.org/show_bug.cgi?id=28018
1323
1324         This is all the new files for implementing Canvas 3D. None of them are hooked up and
1325         are not even included in the build yet. This incorporates the reviews from Simon
1326         and Ollie for these files.
1327
1328         * bindings/js/JSCanvasNumberArrayCustom.cpp: Added. Custom JS binding to do implicit conversion from JS Array
1329         * html/CanvasObject.cpp: Added. Base class for all GL object containers
1330         * html/CanvasObject.h: Added.
1331         * html/CanvasRenderingContext.cpp: Added. Base class for CanvasRenderingContext2D and CanvasRenderingContext3D
1332         * html/CanvasRenderingContext.h: Added.
1333         * html/CanvasRenderingContext.idl: Added.
1334         * html/CanvasRenderingContext3D.cpp: Added. 3D context returned from Canvas.getContext()
1335         * html/CanvasRenderingContext3D.h: Added.
1336         * html/CanvasRenderingContext3D.idl: Added.
1337         * platform/graphics/GraphicsContext3D.cpp: Added. Platform interface between CanvasRenderingContext3D and 3D graphics engine
1338         * platform/graphics/GraphicsContext3D.h: Added.
1339         * platform/graphics/mac/Canvas3DLayer.h: Added. CALayer subclass to composite 3D canvas
1340         * platform/graphics/mac/Canvas3DLayer.mm: Added.
1341         * platform/graphics/mac/GraphicsContext3DMac.cpp: Added. Mac specific interface (OpenGL based)
1342
1343 2009-08-21  Ryosuke Niwa  <rniwa@webkit.org>
1344
1345         No Review.
1346
1347         Another Windows build fix.
1348
1349         * editing/ApplyStyleCommand.cpp:
1350         (WebCore::diffTextDecorations):
1351
1352 2009-08-21  David Hyatt  <hyatt@apple.com>
1353
1354         Reviewed by Simon Fraser.
1355
1356         https://bugs.webkit.org/show_bug.cgi?id=28625, focus rings don't respect the non-strict mode
1357         line box shrinking quirk.  Make sure outlines don't extend outside the lineTop and lineBottom
1358         of the root line box.
1359
1360         Covered by existing tests.
1361
1362         * rendering/RenderBlock.cpp:
1363         (WebCore::RenderBlock::addFocusRingRects):
1364         * rendering/RenderInline.cpp:
1365         (WebCore::RenderInline::addFocusRingRects):
1366         (WebCore::RenderInline::paintOutline):
1367
1368 2009-08-21  Ryosuke Niwa  <rniwa@webkit.org>
1369
1370         No Review.
1371
1372         Windows build fix.
1373
1374         * editing/ApplyStyleCommand.cpp:
1375         (WebCore::setTextDecorationProperty): Made it static
1376         (WebCore::diffTextDecorations): Made it static
1377
1378 2009-08-21  Ryosuke Niwa  <rniwa@webkit.org>
1379
1380         Reviewed by Eric Seidel.
1381
1382         execCommand("Underline") uses CSS even when styleWithCSS has been turned off
1383         https://bugs.webkit.org/show_bug.cgi?id=23892
1384
1385         This patch adds support for u and s in StyleChange and addInlineStyleIfNeeded so that
1386         WebKit does not use CSS to decorate texts when styleWithCSS is set to false.
1387
1388         * css/CSSValueList.cpp:
1389         (WebCore::CSSValueList::copy): Added.
1390         * css/CSSValueList.h: Added copy.
1391         * editing/ApplyStyleCommand.cpp:
1392         (WebCore::StyleChange::applyUnderline):
1393         (WebCore::StyleChange::applyLineThrough):
1394         (WebCore::StyleChange::StyleChange): Added a boolean trimTextDecorations argument.
1395         (WebCore::StyleChange::init): Ditto.
1396         (WebCore::StyleChange::extractTextStyles): Handles text decorations.
1397         (WebCore::getPropertiesNotInComputedStyle): Handles text decorations properly.
1398         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): Adds u and s if needed.
1399
1400 2009-08-21  Joseph Pecoraro  <joepeck@webkit.org>
1401
1402         Reviewed by Timothy Hatcher.
1403
1404         Inspector: Rename "Databases" Panel as "Storage"
1405         https://bugs.webkit.org/show_bug.cgi?id=28620
1406
1407           Updated enum from "DatabasesPanel" to "StoragePanel" and wherever it was used.
1408
1409         * inspector/InspectorController.cpp:
1410         (WebCore::InspectorController::specialPanelForJSName): string to display StoragePanel can be either "databases" or "storage"
1411         * inspector/InspectorController.h:
1412         (WebCore::InspectorController::):
1413         * inspector/InspectorFrontend.cpp:
1414         (WebCore::InspectorFrontend::showPanel):
1415
1416           Updated All Direct Access from WebInspector.panels.databases to WebInspector.panels.storage,
1417           any DatabasesPanel constructors and appropriate function names.
1418
1419         * inspector/front-end/DOMStorageDataGrid.js:
1420         (WebInspector.DOMStorageDataGrid.prototype._startEditingColumnOfDataGridNode):
1421         (WebInspector.DOMStorageDataGrid.prototype._startEditing):
1422         (WebInspector.DOMStorageDataGrid.prototype._editingCommitted):
1423         (WebInspector.DOMStorageDataGrid.prototype._editingCancelled):
1424         (WebInspector.DOMStorageDataGrid.prototype.deleteSelectedRow):
1425         * inspector/front-end/DOMStorageItemsView.js:
1426         (WebInspector.DOMStorageItemsView.prototype.update):
1427         * inspector/front-end/DatabaseQueryView.js:
1428         (WebInspector.DatabaseQueryView.prototype._queryFinished):
1429         * inspector/front-end/DatabaseTableView.js:
1430         (WebInspector.DatabaseTableView.prototype._queryFinished):
1431         * inspector/front-end/inspector.js:
1432         (WebInspector._createPanels): updated string that comes from hiddenPanels to be "databases" or "storage"
1433         (WebInspector.showStoragePanel):
1434         (WebInspector.selectDatabase):
1435         (WebInspector.selectDOMStorage):
1436         (WebInspector.addDatabase):
1437         (WebInspector.addDOMStorage):
1438
1439           Renamed some files and Updated Accordingly.
1440
1441         * inspector/front-end/StoragePanel.js: Renamed from WebCore/inspector/front-end/DatabasesPanel.js.
1442         * inspector/front-end/Images/storageIcon.png: Renamed from WebCore/inspector/front-end/Images/databasesIcon.png.
1443         * inspector/front-end/WebKit.qrc: use new file names
1444         * inspector/front-end/inspector.css: use new images name and class names
1445         * inspector/front-end/inspector.html: use new file name
1446         * WebCore.gypi: use new file names
1447
1448           Miscellaneous Updates.
1449
1450         * English.lproj/localizedStrings.js: Updated Tooltip from "Databases" to "Storage"
1451
1452 2009-08-21  Maxime Simon  <simon.maxime@gmail.com>
1453
1454         Reviewed by Oliver Hunt.
1455
1456         [Haiku] Adding three font-specific files to WebCore:
1457         FontCacheHaiku.cpp, FontHaiku.cpp, and SimpleFontDataHaiku.cpp
1458         https://bugs.webkit.org/show_bug.cgi?id=28131
1459
1460         * platform/graphics/haiku/FontCacheHaiku.cpp: Added.
1461         (WebCore::FontCache::platformInit):
1462         (WebCore::FontCache::getFontDataForCharacters):
1463         (WebCore::FontCache::getSimilarFontPlatformData):
1464         (WebCore::FontCache::getLastResortFallbackFont):
1465         (WebCore::FontCache::createFontPlatformData):
1466         (WebCore::FontCache::getTraitsInFamily):
1467         * platform/graphics/haiku/FontHaiku.cpp: Added.
1468         (charUnicodeToUTF8HACK):
1469         (WebCore::Font::canReturnFallbackFontsForComplexText):
1470         (WebCore::Font::drawGlyphs):
1471         (WebCore::Font::drawComplexText):
1472         (WebCore::Font::floatWidthForComplexText):
1473         (WebCore::Font::selectionRectForComplexText):
1474         (WebCore::Font::offsetForPositionForComplexText):
1475         * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Added.
1476         (WebCore::SimpleFontData::platformInit):
1477         (WebCore::SimpleFontData::platformCharWidthInit):
1478         (WebCore::SimpleFontData::platformDestroy):
1479         (WebCore::SimpleFontData::smallCapsFontData):
1480         (WebCore::SimpleFontData::containsCharacters):
1481         (WebCore::SimpleFontData::determinePitch):
1482         (WebCore::SimpleFontData::platformWidthForGlyph):
1483
1484 2009-08-21  Philippe Beauchamp  <philippe.beauchamp@gmail.com>
1485
1486         Reviewed by Adam Roben.
1487
1488         Middle click panning icon is offset by 3 pixels
1489         https://bugs.webkit.org/show_bug.cgi?id=28611
1490
1491         * platform/ScrollView.cpp:
1492         panIconSizeLength initialized to 20 instead of 16 to match icon dimension (2 pixels offset)
1493         * platform/win/CursorWin.cpp:
1494         (WebCore::middlePanningCursor):
1495         Hotspot initialized to (8,8) instead of (7,7) (one pixel offset)
1496         
1497 2009-08-21  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1498
1499         Reviewed by Eric Seidel.
1500
1501         [Qt] Remove inspector resources for Symbian
1502         https://bugs.webkit.org/show_bug.cgi?id=28610
1503
1504         Based on an idea from Simon Hausmann.
1505
1506         * WebCore.pro:
1507
1508 2009-08-21  Joseph Pecoraro  <joepeck@webkit.org>
1509
1510         Reviewed by Eric Seidel.
1511
1512         Inspector: Remove Unused Variable
1513         https://bugs.webkit.org/show_bug.cgi?id=28616
1514
1515         * inspector/front-end/Resource.js:
1516         (WebInspector.Resource.prototype._checkWarning):
1517
1518 2009-08-21  Joseph Pecoraro  <joepeck@webkit.org>
1519
1520         Reviewed by Timothy Hatcher.
1521
1522         Inspector: Console Array Formatter Shows Extra Properties
1523         https://bugs.webkit.org/show_bug.cgi?id=28615
1524
1525         * inspector/front-end/ConsoleView.js:
1526         (WebInspector.ConsoleView.prototype._formatarray): do not ignore hasOwnProperties
1527
1528 2009-08-21  Beth Dakin  <bdakin@apple.com>
1529
1530         Reviewed by Dan Bernstein.
1531
1532         The CSS part of https://bugs.webkit.org/show_bug.cgi?id=27574 [CSS3 
1533         Backgrounds and Borders] Add support for the "contain" value for 
1534         background-size
1535         -and-
1536         https://bugs.webkit.org/show_bug.cgi?id=27573 [CSS3 Backgrounds and 
1537         Borders] Add support for the "cover" value for background-size
1538
1539         Return contain or cover when appropriate, and otherwise do what we 
1540         used to do.
1541         * css/CSSComputedStyleDeclaration.cpp:
1542         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1543
1544         Accept contain and cover as valid values for background-size.
1545         * css/CSSParser.cpp:
1546         (WebCore::CSSParser::parseFillProperty):
1547
1548         Handle setting the size and the sizeLength if appropriate.
1549         * css/CSSStyleSelector.cpp:
1550         (WebCore::CSSStyleSelector::mapFillSize):
1551
1552         Added new keywords contain and cover.
1553         * css/CSSValueKeywords.in:
1554
1555         Use just sizeLength instead of size to match old behavior.
1556         * page/animation/AnimationBase.cpp:
1557         (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
1558         * rendering/RenderBoxModelObject.cpp:
1559         (WebCore::RenderBoxModelObject::calculateBackgroundSize):
1560         * rendering/RenderObject.cpp:
1561         (WebCore::mustRepaintFillLayers):
1562
1563         The variable m_sizeType is an EBackgroundSize, and m_sizeLength is 
1564         a LengthSize (the equivalent of what m_size used to be). I got rid 
1565         of m_sizeSet and made isSizeSet() dynamic. I also defined a new 
1566         struct, FillSize that can be used to set or get m_size and 
1567         m_sizeLength both at once. 
1568         * rendering/style/FillLayer.cpp:
1569         (WebCore::FillLayer::FillLayer):
1570         (WebCore::FillLayer::operator=):
1571         (WebCore::FillLayer::operator==):
1572         (WebCore::FillLayer::fillUnsetProperties):
1573         * rendering/style/FillLayer.h:
1574         (WebCore::FillSize::FillSize):
1575         (WebCore::FillSize::operator==):
1576         (WebCore::FillSize::operator!=):
1577         (WebCore::FillLayer::sizeLength):
1578         (WebCore::FillLayer::size):
1579         (WebCore::FillLayer::isSizeSet):
1580         (WebCore::FillLayer::setSizeType):
1581         (WebCore::FillLayer::setSizeLength):
1582         (WebCore::FillLayer::setSize):
1583         (WebCore::FillLayer::clearSize):
1584         (WebCore::FillLayer::initialFillSizeType):
1585         (WebCore::FillLayer::initialFillSizeLength):
1586         (WebCore::FillLayer::initialFillSize):
1587
1588         This is all boiler-plate stuff to adjust to the new size() vs. 
1589         sizeType() vs. sizeLength() distinction.
1590         * rendering/style/RenderStyle.h:
1591         (WebCore::InheritedFlags::backgroundSizeType):
1592         (WebCore::InheritedFlags::backgroundSizeLength):
1593         (WebCore::InheritedFlags::maskSize):
1594         (WebCore::InheritedFlags::setBackgroundSize):
1595         (WebCore::InheritedFlags::setBackgroundSizeLength):
1596         (WebCore::InheritedFlags::setMaskSize):
1597
1598         Definition for EBackgroundSizeType.
1599         * rendering/style/RenderStyleConstants.h:
1600         (WebCore::):
1601
1602 2009-08-21  Ariya Hidayat  <ariya.hidayat@nokia.com>
1603
1604         Not reviewed, build fix after r47580.
1605
1606         [Qt] Adjust the files.
1607
1608         * inspector/front-end/WebKit.qrc:
1609
1610 2009-08-20  Chris Fleizach  <cfleizach@apple.com>
1611
1612         Reviewed by Darin Adler.
1613
1614         Enable various "grouping" ARIA roles
1615         https://bugs.webkit.org/show_bug.cgi?id=28486
1616
1617         Test: platform/mac/accessibility/aria-grouping-roles.html
1618
1619         * accessibility/AccessibilityObject.h:
1620         * accessibility/AccessibilityRenderObject.cpp:
1621         * accessibility/mac/AccessibilityObjectWrapper.mm:
1622         * page/mac/WebCoreViewFactory.h:
1623         * platform/LocalizedStrings.h:
1624         * platform/mac/LocalizedStringsMac.mm:
1625
1626 2009-08-20  David Levin  <levin@chromium.org>
1627
1628         Unreviewed trivial comment fix.
1629
1630         Update a bug link in a comment due to bugzilla amnesia.
1631
1632         * loader/CachedResource.cpp:
1633         (WebCore::CachedResource::setResourceToRevalidate):
1634
1635 2009-08-20  Albert J. Wong  <ajwong@chromium.org>
1636
1637         Reviewed by David Levin.
1638
1639         HTML5 media elements do not fire waiting events correctly
1640         https://bugs.webkit.org/show_bug.cgi?id=28335
1641
1642         Fire the waiting event before seeking, and fix a case where firing of
1643         the seeked event is missed when the ready state is changed during
1644         a seek.
1645
1646         Added video-waiting-seeking.html into manual tests because not
1647         all platforms allow seeking into non-buffered ranges.
1648
1649         * html/HTMLMediaElement.cpp:
1650         (WebCore::HTMLMediaElement::setReadyState): add support for
1651         waiting event when seeking.
1652         (WebCore::HTMLMediaElement::finishSeek): send seeked event
1653         whenever seeking finishes.
1654         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): dispatch to
1655         new function.
1656         * html/HTMLMediaElement.h:
1657         * manual-tests/video-waiting-seeking.html: Added.
1658
1659 2009-08-20  Dan Bernstein  <mitz@apple.com>
1660
1661         Reviewed by John Sullivan.
1662
1663         Fix more cases of
1664         <rdar://problem/7154521> Lots of "<Error>: doClip: empty path." spew in
1665         the console with certain content
1666
1667         If the border box is empty, simply avoid painting instead of trying to
1668         clip to the empty path.
1669
1670         * rendering/RenderBoxModelObject.cpp:
1671         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
1672         * rendering/RenderReplaced.cpp:
1673         (WebCore::RenderReplaced::paint):
1674         * rendering/RenderWidget.cpp:
1675         (WebCore::RenderWidget::paint):
1676
1677 2009-08-20  Jeremy Orlow  <jorlow@chromium.org>
1678
1679         Build fix.  Forgot a svn add for a patch I landed.  :-(
1680
1681         * storage/SQLTransactionClient.cpp: Added.
1682         (WebCore::SQLTransactionClient::didCommitTransaction):
1683         (WebCore::SQLTransactionClient::didExecuteStatement):
1684         (WebCore::SQLTransactionClient::didExceedQuota):
1685         * storage/SQLTransactionClient.h: Added.
1686
1687 2009-08-20  Dumitru Daniliuc  <dumi@chromium.org>
1688
1689         Reviewed by Dimitri Glazkov.
1690
1691         Added a client to SQLTransaction. In addition to being a place to
1692         get notifications about certain events in a transaction, it is
1693         also an abstraction layer that allows us to plug in different
1694         implementations for each port for how transactions interract with
1695         the main DB. For example, WebCore's default implementation will
1696         make direct calls to DatabaseTracker's methods. At the same time,
1697         Chromium's implementation will send IPCs to the browser process
1698         whenever a transaction needs something from the main DB.
1699
1700         All storage tests pass.
1701
1702         https://bugs.webkit.org/show_bug.cgi?id=27967
1703
1704         * GNUmakefile.am:
1705         * WebCore.gypi:
1706         * WebCore.pro:
1707         * WebCore.vcproj/WebCore.vcproj:
1708         * WebCore.xcodeproj/project.pbxproj:
1709         * WebCoreSources.bkl:
1710         * storage/Database.cpp:
1711         (WebCore::Database::transactionClient):
1712         * storage/Database.h:
1713         * storage/DatabaseThread.cpp:
1714         (WebCore::DatabaseThread::DatabaseThread):
1715         * storage/DatabaseThread.h:
1716         (WebCore::DatabaseThread::transactionClient):
1717         * storage/SQLTransaction.cpp:
1718         (WebCore::SQLTransaction::runCurrentStatement):
1719         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
1720         (WebCore::SQLTransaction::postflightAndCommit):
1721         * storage/SQLTransactionClient.cpp: Added.
1722         * storage/SQLTransactionClient.h: Added.
1723
1724 2009-08-20  Brian Weinstein  <bweinstein@apple.com>
1725
1726         Reviewed by Steve Falkenburg.
1727
1728         Fix of <https://bugs.webkit.org/show_bug.cgi?id=24793>
1729         Auto scroll speed is faster than in IE, Firefox.
1730         
1731         Changed pan scrolling speed to match Firefox's algorithm.
1732
1733         * rendering/RenderLayer.cpp:
1734         (WebCore::adjustedScrollDelta):
1735         (WebCore::RenderLayer::panScrollFromPoint):
1736
1737 2009-08-20  Stephen White  <senorblanco@chromium.org>
1738
1739         Reviewed by Eric Seidel.
1740
1741         Fix for assert in Chromium page cycler:  drawRect() was re-using
1742         an SkPaint, but not resetting it before calling
1743         PlatformGraphicsSkia::setupPaintForFilling() a second time.  This
1744         CL fixes drawRect(), and re-enables the assert.
1745         http://bugs.webkit.org/show_bug.cgi?id=28172
1746         http://crbug.com/19797
1747
1748         Covered by Chromium page cycler tests.
1749
1750         * platform/graphics/skia/PlatformContextSkia.cpp:
1751         (PlatformContextSkia::drawRect):
1752         (PlatformContextSkia::setupPaintCommon):
1753
1754 2009-08-20  Anders Carlsson  <andersca@apple.com>
1755
1756         Reviewed by Dan Bernstein.
1757
1758         <rdar://problem/7159016> Popup menus don't disappear when you click outside the window.
1759         
1760         Revert r47535 which introduced this.
1761         
1762         * platform/win/PopupMenuWin.cpp:
1763         (WebCore::PopupMenu::show):
1764         (WebCore::PopupWndProc):
1765
1766 2009-08-20  David Levin  <levin@chromium.org>
1767
1768         Reviewed by Alexey Proskuryakov.
1769
1770         Crashes on sites with lots of images
1771         https://bugs.webkit.org/show_bug.cgi?id=28473
1772
1773         The problem is that m_resourceToRevalidate::m_isBeingRevalidated is false while
1774         CachedResource is still referring to it, so it may get deleted before
1775         Cache::revalidationSucceeded calls CachedResource::clearResourceToRevalidate.
1776
1777         * loader/Cache.cpp:
1778         (WebCore::Cache::revalidateResource): Added assert to verify the resource
1779         being revalidated is physically in the cache.
1780         (WebCore::Cache::revalidationSucceeded): Changed to do one call to switch from the revalidating
1781         resource to the revalidated resource.  This allows for proper lifetime management of the
1782         revalidated resource. Added assert to verify that the revalidatingResource is in the cache.
1783         (WebCore::Cache::pruneDeadResources): Don't remove items from the cache that are in the
1784         process of being validated (or else they can get added twice: Once through the normal mechanism
1785         and then again during revalidateResource).
1786
1787         * loader/CachedResource.cpp:
1788         (WebCore::CachedResource::CachedResource):
1789         (WebCore::CachedResource::isSafeToMakePurgeable):
1790         Changed m_isBeingRevalidated to m_proxyResource to allow finding out
1791         who the validating resource (or proxy) is.
1792
1793         (WebCore::CachedResource::~CachedResource): Removed code to handle m_resourceToRevalidate
1794         being non-zero because this shouldn't be possible due to checks in canDelete. Added asserts
1795         as well.
1796         (WebCore::CachedResource::setResourceToRevalidate): Adjusted for the change to m_proxyResource
1797         and added a comment about the assert.
1798         (WebCore::CachedResource::clearResourceToRevalidate):
1799         Only clean up the resourceToRevalidate if it hasn't gotten a new proxy resource.
1800         * loader/CachedResource.h:
1801         (WebCore::CachedResource::setInCache): Don't clear m_proxyResource because the resource
1802         is still being referred to by it and the code it robust to this being switched to a new proxy
1803         resource without it being cleared first.
1804         (WebCore::CachedResource::canDelete): Changed m_isBeingRevalidated to m_proxyResource.
1805
1806 2009-08-20  Xiaomei Ji  <xji@chromium.org>
1807
1808         Reviewed by Eric Seidel.
1809
1810         Fix "Chromium RTL autocomplete popup is not layout correctly".
1811         https://bugs.webkit.org/show_bug.cgi?id=27889
1812
1813         The complete fix of the issue consists 2 parts: the patch in webkit
1814         and the patch in Chromium's own code.
1815
1816         This webkit patch only affects Chromium autofill. It
1817         1. introduces a new flag in WebCore::PopupContainerSettings to
1818            distinguish whether the width of the drop-down should be restricted
1819            or not.
1820            For autofill, the width of the drop-down is restricted to
1821            be the same as that of the input field (the new flag is set in
1822            Chromium's own code). But width is not restricted for <select> (same as before).
1823         2. introduce a new flag in WebCore::PopContainerSettings to
1824            indicate what heuristics to use when displaying text in drop-down menu.
1825            For autofill, use drop-down item's directionality to display drop-down items.
1826            Previously, drop-down item is displayed in the its first strong
1827            directional character's directionality.
1828            (drop-down item's directionality is set in Chromium's own code.
1829            It is set the same as the directionality of the element. 
1830            For autofill, it is the same directionality as that of the input field.)
1831            For <select>, still use the text's first strong directional character's
1832            directionality to display the text.
1833
1834
1835         Since the patch only affects the chromium client, not webcore part or
1836         other clients. No automatic tests is possible.
1837
1838         * manual-tests/autofill-popup-width-and-item-direction.html: Added.
1839         * platform/chromium/PopupMenuChromium.cpp:
1840         (WebCore::):
1841         (WebCore::PopupListBox::paintRow): If list box width is restricted and 
1842         an item is longer to fit in a list box, truncate it and draw part of the text and append ellipses.
1843         (WebCore::PopupListBox::layout): Restrict width of list box if applicable.
1844         * platform/chromium/PopupMenuChromium.h: 
1845         (WebCore::PopupItem::PopupItem): style change.
1846         (WebCore::PopupContainerSettings::): Add 2 new flags in PopupContainerSetting to 
1847         distinguish whether to restrict width of list box and 
1848         in what directionality to display the text in drop-down.
1849
1850 2009-08-20  Brian Weinstein  <bweinstein@apple.com>
1851
1852         Reviewed by Adele Peterson.
1853
1854         Fix of <https://bugs.webkit.org/show_bug.cgi?id=28504>. 
1855         Pan Scrolling can scroll while showing the middlePanScroll icon.
1856         
1857         Fixed an off by one error between RenderLayer::panScrollFromPoint and EventHandler::updatePanScrollState. 
1858         In RenderLayer::panScrollFromPoint, we were setting the icon to be an arrow if the difference between the start
1859         of the pan scroll and the current mouseposition is > 15. However, in EventHandler::updatePanScrollState, we would
1860         set our amount to scroll to 0 only if the difference in mouse position is < 15. I made this check a <= 15, to fix
1861         the off by one error.
1862
1863         * rendering/RenderLayer.cpp:
1864         (WebCore::RenderLayer::panScrollFromPoint):
1865
1866 2009-08-20  David Hyatt  <hyatt@apple.com>
1867
1868         Reviewed by Dan Bernstein.
1869
1870         Pull the code in layoutBlockChildren for handling a normal flow block child into a helper method,
1871         layoutBlockChild.
1872
1873         * rendering/RenderBlock.cpp:
1874         (WebCore::RenderBlock::layoutBlockChildren):
1875         (WebCore::RenderBlock::layoutBlockChild):
1876         * rendering/RenderBlock.h:
1877
1878 2009-08-20  Brian Weinstein  <bweinstein@apple.com>
1879
1880         Reviewed by Adam Roben.
1881
1882         Made subframeForHitTargetNode a public static method, so WebView can call it
1883         during hit testing.
1884
1885         * page/EventHandler.cpp:
1886         (WebCore::subframeForHitTestResult):
1887         (WebCore::EventHandler::subframeForTargetNode):
1888         * page/EventHandler.h:
1889
1890 2009-08-20  Brent Fulgham  <bfulgham@webkit.org>
1891
1892         Rubberstamped by Kevin Ollivier.
1893
1894         Check for null bundle before attempting to use it.
1895
1896         * platform/network/curl/ResourceHandleManager.cpp:
1897         (WebCore::certificatePath): Add null check on return of
1898           CFBundleGetBundleWithIdentifier.
1899
1900 2009-08-20  David Hyatt  <hyatt@apple.com>
1901
1902         Reviewed by Dan Bernstein.
1903
1904         https://bugs.webkit.org/show_bug.cgi?id=28497, images and inline replaced elements don't propagate overflow properly on a line.
1905
1906         Added fast/repaint/inline-block-overflow.html and updated another test.
1907
1908         * rendering/InlineFlowBox.cpp:
1909         (WebCore::InlineFlowBox::placeBoxesHorizontally):
1910         (WebCore::InlineFlowBox::computeVerticalOverflow):
1911         Make sure to still propagate the border box of the replaced element as layout overflow when overflow clip is set on the
1912         replaced element.  Make sure to use the InlineBox x/y positions instead of the RenderBox x/y, since the position of the
1913         RenderBox has not been updated to the new values yet.
1914         
1915         * rendering/RenderLineBoxList.cpp:
1916         (WebCore::RenderLineBoxList::paint):
1917         Don't use the root line box's overflow.  Use the actual line box overflow values instead.  In the case of an inline
1918         with a layer, our overflow didn't propagate to the root line, so we always need to use our values.
1919
1920         * rendering/RenderPartObject.cpp:
1921         (WebCore::RenderPartObject::layout):
1922         * rendering/RenderReplaced.cpp:
1923         (WebCore::RenderReplaced::layout):
1924         Make sure to clear shadow overflow when doing layout of replaced elements, so that we don't leave a stale overflow
1925         value around if a box-shadow goes away.
1926
1927 2009-08-20  Dmitry Titov  <dimich@chromium.org>
1928
1929         Another attempt to fix Chromium build.
1930
1931         * WebCore.gypi: now use the correct name of the image file.
1932
1933 2009-08-20  Dan Bernstein  <mitz@apple.com>
1934
1935         Make the Windows build even fixeder
1936
1937         * platform/graphics/win/GraphicsContextCGWin.cpp:
1938         (WebCore::GraphicsContextPlatformPrivate::flush):
1939
1940 2009-08-20  Dmitry Titov  <dimich@chromium.org>
1941
1942         Not reviewed, Chromium build fix.
1943
1944         * WebCore.gypi: add new Webinspector image files (localStorage.png and sessionStorage.png)
1945
1946 2009-08-20  Dan Bernstein  <mitz@apple.com>
1947
1948         Windows build fix after the last change
1949
1950         * platform/graphics/win/GraphicsContextCGWin.cpp:
1951         (WebCore::GraphicsContext::GraphicsContext):
1952         (WebCore::GraphicsContext::releaseWindowsContext):
1953         (WebCore::GraphicsContext::drawWindowsBitmap):
1954
1955 2009-08-20  Dan Bernstein  <mitz@apple.com>
1956
1957         Reviewed by Geoffrey Garen.
1958
1959         Replace many manually-released CFTypeRefs with RetainPtrs
1960         https://bugs.webkit.org/show_bug.cgi?id=28498
1961
1962         * platform/graphics/cg/ColorCG.cpp:
1963         (WebCore::createCGColor):
1964         * platform/graphics/cg/GradientCG.cpp:
1965         (WebCore::Gradient::platformGradient):
1966         * platform/graphics/cg/GraphicsContextCG.cpp:
1967         (WebCore::GraphicsContext::platformContext):
1968         (WebCore::GraphicsContext::applyStrokePattern):
1969         (WebCore::GraphicsContext::applyFillPattern):
1970         (WebCore::GraphicsContext::setPlatformShadow):
1971         (WebCore::GraphicsContext::setURLForRect):
1972         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
1973         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
1974         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
1975         * platform/graphics/cg/ImageBufferCG.cpp:
1976         (WebCore::ImageBuffer::ImageBuffer):
1977         * platform/graphics/cg/ImageCG.cpp:
1978         (WebCore::BitmapImage::checkForSolidColor):
1979         (WebCore::Image::drawPattern):
1980         * platform/graphics/cg/ImageSourceCG.cpp:
1981         (WebCore::ImageSource::setData):
1982         (WebCore::ImageSource::isSizeAvailable):
1983         (WebCore::ImageSource::frameSizeAtIndex):
1984         (WebCore::ImageSource::repetitionCount):
1985         (WebCore::ImageSource::createFrameAtIndex):
1986         (WebCore::ImageSource::frameDurationAtIndex):
1987         * platform/graphics/cg/PDFDocumentImage.cpp:
1988         (WebCore::PDFDocumentImage::dataChanged):
1989         * platform/graphics/cg/PathCG.cpp:
1990         (WebCore::createScratchContext):
1991         (WebCore::Path::contains):
1992         * platform/graphics/mac/FontCustomPlatformData.cpp:
1993         (WebCore::createFontCustomPlatformData):
1994         * platform/graphics/mac/GraphicsContextMac.mm:
1995         (WebCore::GraphicsContext::drawFocusRing):
1996         * platform/graphics/mac/ImageMac.mm:
1997         (WebCore::BitmapImage::getTIFFRepresentation):
1998         * platform/mac/ClipboardMac.mm:
1999         (WebCore::cocoaTypeFromMIMEType):
2000         (WebCore::MIMETypeFromCocoaType):
2001         * platform/mac/WebCoreNSStringExtras.mm:
2002         (stringEncodingForResource):
2003         * platform/network/mac/FormDataStreamMac.mm:
2004         (WebCore::advanceCurrentStream):
2005         (WebCore::setHTTPBody):
2006         * platform/text/mac/TextCodecMac.cpp:
2007         (WebCore::TextCodecMac::encode):
2008
2009 2009-08-20  Shinichiro Hamaji  <hamaji@chromium.org>
2010
2011         Reviewed by Eric Seidel.
2012
2013         Output actual values of counters in showTree
2014         https://bugs.webkit.org/show_bug.cgi?id=28481
2015
2016         No new tests because this patch just improves debugging outputs.
2017
2018         * rendering/CounterNode.cpp:
2019         (WebCore::showTreeAndMark):
2020
2021 2009-08-20  Eric Carlson  <eric.carlson@apple.com>
2022
2023         Reviewed by NOBODY (build fix).
2024
2025         Add file missed in last check-in.
2026
2027         * html/HTMLAttributeNames.in:
2028
2029 2009-08-19  Timothy Hatcher  <timothy@apple.com>
2030
2031         Adds new icons to the Web Inspector for Local Storage,
2032         Session Storage and Cookies.
2033
2034         https://bugs.webkit.org/show_bug.cgi?id=28470
2035
2036         Reviewed by Eric Seidel.
2037
2038         * inspector/front-end/DatabasesPanel.js:
2039         (WebInspector.DatabasesPanel.prototype.addDOMStorage):
2040         (WebInspector.DOMStorageSidebarTreeElement):
2041         * inspector/front-end/Images/cookie.png:
2042         * inspector/front-end/Images/domStorage.png: Removed.
2043         * inspector/front-end/Images/localStorage.png: Added.
2044         * inspector/front-end/Images/sessionStorage.png: Added.
2045         * inspector/front-end/inspector.css:
2046
2047 2009-08-20  Eric Carlson  <eric.carlson@apple.com>
2048
2049         Reviewed by Anders Carlsson.
2050
2051         HTML5 media elements must fire 'loadend' progress event
2052         https://bugs.webkit.org/show_bug.cgi?id=28419
2053
2054         * dom/EventNames.h:
2055             Define loadend.
2056
2057         * html/HTMLMediaElement.cpp:
2058         (WebCore::HTMLMediaElement::parseMappedAttribute):
2059             Deal with onloadend.
2060         (WebCore::HTMLMediaElement::loadInternal):
2061             Post 'loadend' immediately after 'abort'.
2062         (WebCore::HTMLMediaElement::noneSupported):
2063             Post 'loadend' immediately after 'error'.
2064         (WebCore::HTMLMediaElement::mediaEngineError):
2065             Ditto.
2066         (WebCore::HTMLMediaElement::setNetworkState):
2067             Post 'loadend' immediately after 'load'.
2068         (WebCore::HTMLMediaElement::userCancelledLoad):
2069             Post 'loadend' immediately after 'abort'.
2070
2071 2009-08-20  Ryosuke Niwa  <rniwa@webkit.org>
2072
2073         Reviewed by Darin Adler.
2074
2075         REGESSION(r45316), Crash: WebKit crashes in Google Sites when indenting a table
2076         https://bugs.webkit.org/show_bug.cgi?id=28474
2077
2078         This patch fixes a crash when indenting at right after a table.
2079         The bug was caused by Node* blockNode = enclosingBlock(endOfCurrentParagraph.deepEquivalent().node());
2080         where node() is equal to blockNode. Because blockNode is the enclosing block node, this patch changes it to
2081         enclosingBlock(endOfCurrentParagraph.deepEquivalent().node()->parentNode());
2082
2083         Test: editing/execCommand/indent-right-after-table.html
2084
2085         * editing/IndentOutdentCommand.cpp:
2086         (WebCore::IndentOutdentCommand::indentRegion): Fixed so that blockNode != endOfCurrentParagraph.deepEquivalent().node()
2087
2088 2009-08-20  Andrew Scherkus  <scherkus@chromium.org>
2089
2090         Reviewed by David Levin.
2091
2092         Render disabled mute button during an error or if no audio is present.
2093
2094         https://bugs.webkit.org/show_bug.cgi?id=28475
2095
2096         Covered by existing layout tests:
2097         media/video-controls-visible-audio-only.html
2098         media/video-no-audio.html
2099
2100         * rendering/RenderThemeChromiumSkia.cpp:
2101         (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
2102
2103 2009-08-20  Dan Bernstein  <mitz@apple.com>
2104
2105         Reviewed by Darin Adler.
2106
2107         <rdar://problem/7154605> Loading page with 1px wide <select> makes the
2108         toolbar go blank
2109         and
2110         <rdar://problem/7154521> Lots of "<Error>: doClip: empty path." spew in
2111         the console with certain content
2112
2113         * rendering/RenderThemeMac.mm:
2114         (WebCore::RenderThemeMac::paintMenuListButtonGradients): Return early
2115         if the rectangle is empty. Use RenderStyle::getBorderRadiiForRect() to
2116         adjust the radii in case the sides of the rectangle are smaller than sum
2117         of the radii, so that the gradient background matches the border (which
2118         already uses getBorderRadiiForRect()). Check if bottomGradient is empty
2119         to avoid clipping to an empty path.
2120         (WebCore::RenderThemeMac::paintMenuListButton): Moved a
2121         GraphicContext::save() down to avoid a save/restore imbalance in the
2122         early return case.
2123
2124         * rendering/RenderThemeSafari.cpp: Made the same changes.
2125         (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
2126         (WebCore::RenderThemeSafari::paintMenuListButton):
2127
2128 2009-08-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
2129
2130         Reviewed by Gustavo Noronha.
2131
2132         [Gtk][REGRESSION] XHR test failures after r45558
2133         https://bugs.webkit.org/show_bug.cgi?id=27143
2134
2135         Disable sniffing if it's explicitly requested. Updated patch
2136         originally by Gustavo Noronha.
2137
2138         * platform/network/soup/ResourceHandleSoup.cpp:
2139         (WebCore::statusWillBeHandledBySoup):
2140         (WebCore::gotHeadersCallback):
2141         (WebCore::contentSniffedCallback):
2142         (WebCore::gotChunkCallback):
2143         (WebCore::startHttp):
2144
2145 2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>
2146
2147         Reviewed by Simon Hausmann.
2148
2149         [Qt] Swap the pixels since QImage expect ARGB while ImageData
2150         stores them as RGBA.
2151
2152         This fixes the fast/canvas/canvas-copyPixels.html test.
2153
2154         * platform/graphics/qt/ImageBufferQt.cpp:
2155         (WebCore::putImageData):
2156
2157 2009-08-20  Christian Plesner Hansen  <christian.plesner.hansen@gmail.com>
2158
2159         Reviewed by David Levin.
2160
2161         [v8] Use atomic string caching for createElement
2162         Extend atomic string caching to createElement.  Fix a bug in idl
2163         parser that caused incorrect parsing if a function argument
2164         attribute list contained a comma.
2165         https://bugs.webkit.org/show_bug.cgi?id=28449
2166
2167         * bindings/scripts/CodeGeneratorV8.pm:
2168         * bindings/scripts/IDLParser.pm:
2169         * bindings/v8/V8Binding.h:
2170         (WebCore::v8ValueToAtomicWebCoreStringWithNullCheck):
2171         * dom/Document.idl:
2172
2173 2009-08-20  Ariya Hidayat  <ariya.hidayat@nokia.com>
2174
2175         Not reviewed, build fix after r47515.
2176
2177         [Qt] There is no Phonon::MediaObject::hasAudio() function.
2178
2179         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
2180         (WebCore::MediaPlayerPrivate::hasAudio): Assume true.
2181
2182 2009-08-20  Darin Fisher  <darin@chromium.org>
2183
2184         Reviewed by Eric Seidel.
2185
2186         https://bugs.webkit.org/show_bug.cgi?id=28483
2187         The V8 ScriptController's cleanupScriptObjectsForPlugin should take a
2188         Widget* instead of void* to avoid the need for manual casting to Widget*
2189         at the callsite.
2190
2191         * bindings/v8/ScriptController.cpp:
2192         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
2193         * bindings/v8/ScriptController.h:
2194
2195 2009-08-19  David Levin  <levin@chromium.org>
2196
2197         Unreviewed speculative build fix for qt.
2198
2199         * page/OriginAccessEntry.cpp:
2200
2201 2009-08-19  Aaron Boodman  <aa@chromium.org>
2202
2203         Reviewed by David Levin.
2204
2205         https://bugs.webkit.org/show_bug.cgi?id=24853: Provide a way for WebKit clients to
2206         specify a more granular policy for cross-origin XHR access.
2207
2208         Tests: http/tests/xmlhttprequest/origin-whitelisting-all.html
2209                http/tests/xmlhttprequest/origin-whitelisting-exact-match.html
2210                http/tests/xmlhttprequest/origin-whitelisting-https.html
2211                http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html
2212                http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html
2213                http/tests/xmlhttprequest/origin-whitelisting-subdomains.html
2214
2215         * WebCore.base.exp: Export methods to manipulate origin access whitelists to enable
2216         testing via layout tests.
2217
2218         * WebCore.xcodeproj/project.pbxproj: Add OriginAccessEntry.*
2219         * GNUmakefile.am: Ditto.
2220         * WebCore.gypi: Ditto.
2221         * WebCore.pro: Ditto.
2222         * WebCore.vcproj/WebCore.vcproj: Ditto.
2223         * WebCoreSources.blk: Ditto.
2224
2225         * page/SecurityOrigin.h: Implement origin access whitelists.
2226         (WebCore::originAccessMap): Static getter for access whitelists.
2227         (WebCore::SecurityOrigin::canRequest): Modify request checking logic to check whitelists.
2228         (WebCore::SecurityOrigin::whiteListAccessFromOrigin): Add an entry to a whitelist.
2229         (WebCore::SecurityOrigin::resetOriginAccessWhiteLists): Clear all the whitelists.
2230
2231         * page/OriginAccessEntry.h: Added. An entry in an origin access whitelist.
2232         * page/OriginAccessEntry.cpp: Ditto.
2233
2234 2009-08-19  Kevin Ollivier  <kevino@theolliviers.com>
2235
2236         Non-precomp headers build fix.
2237
2238         * platform/image-decoders/ImageDecoder.cpp:
2239
2240 2009-08-19  Jeremy Orlow  <jorlow@chromium.org>
2241
2242         Reviewed by Darin Fisher.
2243
2244         Disable a bad SKIA assert
2245         https://bugs.webkit.org/show_bug.cgi?id=28482
2246
2247         In http://trac.webkit.org/changeset/47386/ an assert was "fixed" in SKIA code. 
2248         When this was pulled into Chromium, it started breaking the page cycler. 
2249         Disable it again until we can figure out what's going on.
2250
2251         * platform/graphics/skia/PlatformContextSkia.cpp:
2252         (PlatformContextSkia::setupPaintCommon):
2253
2254 2009-08-19  Ryosuke Niwa  <rniwa@webkit.org>
2255
2256         Reviewed by Darin Adler.
2257
2258         queryCommandState('underline') returns false if the selected text is also bold and italic
2259         https://bugs.webkit.org/show_bug.cgi?id=11022
2260
2261         This patch modifies stateStrikethrough and stateUnderline to use the value -webkit-text-decorations-in-effect
2262         instead of text-decoration.  Because text-decoration only retrieves explicit styling at the node on which
2263         the query was sent, we need to use -webkit-text-decorations-in-effect to include decorations added by ancestors
2264         and also u, s, and strike tags.
2265
2266         Test: editing/style/text-decoration-state.html
2267
2268         * editing/EditorCommand.cpp:
2269         (WebCore::stateStrikethrough): Use -webkit-test-decorations-in-effect instead of text-decoration.
2270         (WebCore::stateUnderline): Ditto.
2271
2272 2009-08-19  Anders Carlsson  <andersca@apple.com>
2273
2274         Reviewed by Darin Adler.
2275
2276         - Fix <rdar://problem/7155710>
2277         HTML selects on windows cause containing window to become inactive when opened.
2278
2279         * platform/win/PopupMenuWin.cpp:
2280         (WebCore::PopupMenu::show):
2281         Pass SWP_NOACTIVATE to SetWindowPos, remove AW_ACTIVATE from AnimateWindow and pass
2282         SW_SHOWNOACTIVATE to ShowWindow.
2283         
2284         (WebCore::PopupWndProc):
2285         Prevent mouse activation from activating the window.
2286
2287 2009-08-19  Simon Fraser  <simon.fraser@apple.com>
2288
2289         Reviewed by Darin Adler.
2290
2291         Images flash as you hover them on http://www.atebits.com/scribbles/
2292         <rdar://problem/7143958>
2293         
2294         Tag images with the device colorspace with the colorspace of the main display, rather than
2295         GenericRGB, so that composited images color-match those rendered via Core Graphics.
2296         
2297         Covered by LayoutTests/compositing/color-matching/image-color-matching.html
2298
2299         * platform/graphics/mac/GraphicsLayerCA.mm:
2300         (WebCore::GraphicsLayerCA::setContentsToImage):
2301
2302 2009-08-19  Anders Carlsson  <andersca@apple.com>
2303
2304         Reviewed by David Hyatt and Dan Bernstein.
2305
2306         - Fix <rdar://problem/7152589> Stylable scrollbar corners aren't working.
2307
2308         * page/FrameView.cpp:
2309         (WebCore::FrameView::FrameView):
2310         Initialize m_scrollCorner.
2311
2312         (WebCore::FrameView::~FrameView):
2313         Assert that m_scrollCorner is null.
2314
2315         (WebCore::FrameView::detachCustomScrollbars):
2316         Destroy m_scrollCorner.
2317
2318         (WebCore::FrameView::invalidateScrollCorner):
2319         Invalidate the scroll corner.
2320         
2321         (WebCore::FrameView::updateScrollCorner):
2322         Create/destroy the scroll corner.
2323         
2324         (WebCore::FrameView::paintScrollCorner):
2325         Paint the scroll corner.
2326         
2327         * page/FrameView.h:
2328         (WebCore::FrameView::isFrameViewScrollCorner):
2329         Return whether a RenderScrollbarPart is the frame view scroll corner.
2330         
2331         * platform/ScrollView.cpp:
2332         (WebCore::ScrollView::updateScrollbars):
2333         Go ahead and update the scroll corner.
2334         
2335         (WebCore::ScrollView::setScrollbarsSuppressed):
2336         Pass the scroll corner rect to invalidateRect.
2337         
2338         (WebCore::ScrollView::scrollCornerRect):
2339         Return the scroll corner rect.
2340         
2341         * platform/ScrollView.h:
2342         * rendering/RenderScrollbarPart.cpp:
2343         (WebCore::RenderScrollbarPart::imageChanged):
2344         If this scrollbar part is the frame view scroll corner, invalidate it.
2345
2346 2009-08-19  Dirk Schulze  <krit@webkit.org>
2347
2348         Reviewed by Oliver Hunt.
2349
2350         SVG feComponentTransfer needs to be implemented
2351         [https://bugs.webkit.org/show_bug.cgi?id=27768]
2352
2353         Implementation of SVG Filter feComponentTransfer.
2354
2355         There is already a test case
2356         Test: svg/W3C-SVG-1.1/filters-comptran-01-b.svg
2357
2358         * platform/graphics/filters/FEComponentTransfer.cpp:
2359         (WebCore::identity):
2360         (WebCore::table):
2361         (WebCore::discrete):
2362         (WebCore::linear):
2363         (WebCore::gamma):
2364         (WebCore::FEComponentTransfer::apply):
2365
2366 2009-08-19  Dan Bernstein  <mitz@apple.com>
2367
2368         Reviewed by Dave Hyatt.
2369
2370         <rdar://problem/7141522> Incorrect layout of product table at henry.com
2371
2372         Test: fast/block/basic/quirk-percent-height-table-cell.html
2373
2374         * rendering/RenderBox.cpp:
2375         (WebCore::RenderBox::calcPercentageHeight): Tweak the quirk that allows
2376         percentage-height children of auto-height blocks to look for an ancestor
2377         with non-auto height and compute their height based on it. The change is
2378         that if that ancestor is a table cell, it is ignored and the percent
2379         height computes to zero (just like in strict mode). This matches Firefox
2380         and IE.
2381
2382 2009-08-19  Jungshik Shin  <jshin@chromium.org>
2383
2384         Reviewed by Eric Seidel.
2385
2386         Add 'icu::' qualifier when refering to ICU C++ names to the other
2387         file with this issue missed in the previous check-in.
2388
2389         https://bugs.webkit.org/show_bug.cgi?id=28410
2390
2391         No change in the test result.
2392
2393         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
2394         (WebCore::):
2395
2396 2009-08-19  Peter Kasting  <pkasting@google.com>
2397
2398         Unreviewed (build fix for Skia).
2399
2400         https://bugs.webkit.org/show_bug.cgi?id=28268
2401
2402         * platform/graphics/skia/GraphicsContextSkia.cpp:
2403         (WebCore::GraphicsContext::drawLine):
2404
2405 2009-08-19  Jan Michael Alonzo  <jmalonzo@webkit.org>
2406
2407         Reviewed by Eric Seidel.
2408
2409         [CAIRO] Remove setFont indirection
2410         https://bugs.webkit.org/show_bug.cgi?id=28453
2411
2412         Remove the indirection and just set the font in Font::drawGlyphs.
2413
2414         * platform/graphics/SimpleFontData.h:
2415         * platform/graphics/cairo/FontCairo.cpp:
2416         (WebCore::Font::drawGlyphs):
2417         * platform/graphics/gtk/FontPlatformData.h:
2418         (WebCore::FontPlatformData::scaledFont):
2419         * platform/graphics/gtk/FontPlatformDataGtk.cpp:
2420         (WebCore::FontPlatformData::~FontPlatformData):
2421         * platform/graphics/gtk/FontPlatformDataPango.cpp:
2422         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
2423         * platform/graphics/gtk/SimpleFontDataPango.cpp:
2424         * platform/graphics/win/FontPlatformData.h:
2425         * platform/graphics/win/FontPlatformDataCairoWin.cpp:
2426         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
2427
2428 2009-08-19  Pavel Feldman  <pfeldman@chromium.org>
2429
2430         Reviewed by Timothy Hatcher.
2431
2432         WebInspector: When adding style selector, generate default name based
2433         on id / class / type.
2434
2435         https://bugs.webkit.org/show_bug.cgi?id=28468
2436
2437         * inspector/front-end/StylesSidebarPane.js:
2438         (WebInspector.StylesSidebarPane.prototype.appropriateSelectorForNode):
2439
2440 2009-08-19  David Hyatt  <hyatt@apple.com>
2441
2442         Reviewed by Dan Bernstein.
2443
2444         Rename combinedOverflow to visibleOverflow, since that's what it actually represents.
2445
2446         * rendering/InlineFlowBox.cpp:
2447         (WebCore::InlineFlowBox::nodeAtPoint):
2448         (WebCore::InlineFlowBox::paint):
2449         * rendering/InlineFlowBox.h:
2450         (WebCore::InlineFlowBox::topvisibleOverflow):
2451         (WebCore::InlineFlowBox::bottomvisibleOverflow):
2452         (WebCore::InlineFlowBox::leftvisibleOverflow):
2453         (WebCore::InlineFlowBox::rightvisibleOverflow):
2454         (WebCore::InlineFlowBox::visibleOverflowRect):
2455         * rendering/RenderBlock.cpp:
2456         (WebCore::RenderBlock::layoutBlock):
2457         (WebCore::RenderBlock::paint):
2458         (WebCore::RenderBlock::floatRect):
2459         (WebCore::RenderBlock::nodeAtPoint):
2460         * rendering/RenderBlock.h:
2461         * rendering/RenderBlockLineLayout.cpp:
2462         (WebCore::RenderBlock::layoutInlineChildren):
2463         (WebCore::RenderBlock::matchedEndLine):
2464         * rendering/RenderBox.cpp:
2465         (WebCore::RenderBox::clippedOverflowRectForRepaint):
2466         * rendering/RenderBox.h:
2467         (WebCore::RenderBox::visibleOverflowRect):
2468         (WebCore::RenderBox::topvisibleOverflow):
2469         (WebCore::RenderBox::bottomvisibleOverflow):
2470         (WebCore::RenderBox::leftvisibleOverflow):
2471         (WebCore::RenderBox::rightvisibleOverflow):
2472         * rendering/RenderLayer.cpp:
2473         (WebCore::RenderLayer::localBoundingBox):
2474         * rendering/RenderLineBoxList.cpp:
2475         (WebCore::RenderLineBoxList::paint):
2476         (WebCore::RenderLineBoxList::hitTest):
2477         * rendering/RenderOverflow.h:
2478         (WebCore::RenderOverflow::visibleOverflowRect):
2479         * rendering/RenderReplaced.cpp:
2480         (WebCore::RenderReplaced::shouldPaint):
2481         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
2482         * rendering/RenderTable.cpp:
2483         (WebCore::RenderTable::layout):
2484         (WebCore::RenderTable::paint):
2485         * rendering/RenderTableCell.cpp:
2486         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
2487
2488 2009-08-19  Eric Carlson  <eric.carlson@apple.com>
2489
2490         Reviewed by Eric Seidel.
2491
2492         Sound button appears in controller with movies that have no audio
2493         https://bugs.webkit.org/show_bug.cgi?id=28464
2494
2495         Test: media/video-no-audio.html
2496
2497         * html/HTMLMediaElement.cpp:
2498         * html/HTMLMediaElement.h:
2499         (WebCore::HTMLMediaElement::hasAudio):
2500             Added hasAudio.
2501
2502         * platform/graphics/MediaPlayer.h:
2503         * platform/graphics/MediaPlayer.cpp:
2504         (WebCore::NullMediaPlayerPrivate::hasAudio):
2505         (WebCore::MediaPlayer::hasVideo):
2506             Make const.
2507         (WebCore::MediaPlayer::hasAudio):
2508             Added hasAudio.
2509
2510         * platform/graphics/MediaPlayerPrivate.h:
2511             Add hasAudio.
2512
2513         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
2514         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2515         (WebCore::MediaPlayerPrivate::hasAudio):
2516             Ditto.
2517
2518         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
2519         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2520         (WebCore::MediaPlayerPrivate::hasAudio):
2521             Ditto.
2522
2523         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
2524         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
2525         (WebCore::MediaPlayerPrivate::hasAudio):
2526             Ditto.
2527
2528         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
2529         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
2530         (WebCore::MediaPlayerPrivate::hasAudio):
2531             Ditto.
2532
2533         * platform/graphics/win/QTMovieWin.h:
2534         * platform/graphics/win/QTMovieWin.cpp:
2535         (QTMovieWin::hasAudio):
2536             Ditto.
2537
2538         * rendering/MediaControlElements.cpp:
2539         (WebCore::MediaControlMuteButtonElement::disabled):
2540             New, return true if media element doesn't have audio.
2541         (WebCore::MediaControlMuteButtonElement::rendererIsNeeded):
2542             Renderer is not needed if element has no audio.
2543         * rendering/MediaControlElements.h:
2544         (WebCore::MediaControlInputElement::disabled):
2545
2546         * rendering/RenderThemeMac.mm:
2547         (WebCore::getMediaUIPartStateFlags):
2548             Return MediaUIPartDisabledFlag if node is disabled.
2549             
2550
2551 2009-08-19  Michelangelo De Simone  <micdesim@gmail.com>
2552
2553         Reviewed by Darin Adler.
2554
2555         https://bugs.webkit.org/show_bug.cgi?id=27357
2556         Removed the two unnecessary overridden willValidate() methods introduced
2557         in r47444.
2558
2559         * html/HTMLKeygenElement.h:
2560         * html/HTMLObjectElement.h:
2561
2562 2009-08-19  Pavel Feldman  <pfeldman@chromium.org>
2563
2564         Reviewed by Timothy Hatcher.
2565
2566         WebInspector: Allow dumping dangling nodes to the console.
2567
2568         https://bugs.webkit.org/show_bug.cgi?id=28458
2569
2570         * bindings/js/JSInspectorBackendCustom.cpp:
2571         * bindings/v8/custom/V8CustomBinding.h:
2572         * bindings/v8/custom/V8InspectorBackendCustom.cpp:
2573         * inspector/InspectorBackend.cpp:
2574         * inspector/InspectorBackend.h:
2575         * inspector/InspectorBackend.idl:
2576         * inspector/InspectorController.cpp:
2577         (WebCore::InspectorController::clearConsoleMessages):
2578         * inspector/InspectorDOMAgent.cpp:
2579         (WebCore::InspectorDOMAgent::releaseDanglingNodes):
2580         (WebCore::InspectorDOMAgent::startListening):
2581         (WebCore::InspectorDOMAgent::stopListening):
2582         (WebCore::InspectorDOMAgent::handleEvent):
2583         (WebCore::InspectorDOMAgent::bind):
2584         (WebCore::InspectorDOMAgent::unbind):
2585         (WebCore::InspectorDOMAgent::pushDocumentToFrontend):
2586         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
2587         (WebCore::InspectorDOMAgent::discardBindings):
2588         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
2589         (WebCore::InspectorDOMAgent::buildObjectForNode):
2590         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
2591         * inspector/InspectorDOMAgent.h:
2592         * inspector/InspectorFrontend.cpp:
2593         (WebCore::InspectorFrontend::setDetachedRoot):
2594         (WebCore::InspectorFrontend::childNodeCountUpdated):
2595         * inspector/InspectorFrontend.h:
2596         * inspector/front-end/ConsoleView.js:
2597         (WebInspector.ConsoleView.prototype._formatnode):
2598         * inspector/front-end/DOMAgent.js:
2599         (WebInspector.DOMAgent.prototype._setDetachedRoot):
2600         (WebInspector.DOMAgent.prototype._childNodeCountUpdated):
2601         (WebInspector.setDetachedRoot):
2602         (WebInspector.childNodeCountUpdated):
2603         (InspectorController.pushNodeToFrontend):
2604         * inspector/front-end/InjectedScript.js:
2605         (InjectedScript.pushNodeToFrontend):
2606         (InjectedScript.createProxyObject):
2607
2608 2009-08-19  Alexey Proskuryakov  <ap@apple.com>
2609
2610         Reviewed by Anders Carlsson.
2611
2612         https://bugs.webkit.org/show_bug.cgi?id=27464
2613         Implement application cache online whitelist wildcard flag
2614
2615         Test: http/tests/appcache/whitelist-wildcard.html
2616
2617         A "*" in NETWORK section means that network loading needn't be blocked.
2618
2619         * loader/appcache/ApplicationCache.cpp:
2620         (WebCore::ApplicationCache::isURLInOnlineWhitelist):
2621         * loader/appcache/ApplicationCache.h:
2622         (WebCore::ApplicationCache::setAllowsAllNetworkRequests):
2623         (WebCore::ApplicationCache::allowsAllNetworkRequests):
2624         * loader/appcache/ApplicationCacheGroup.cpp:
2625         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
2626         * loader/appcache/ApplicationCacheStorage.cpp:
2627         (WebCore::ApplicationCacheStorage::openDatabase):
2628         (WebCore::ApplicationCacheStorage::store):
2629         (WebCore::ApplicationCacheStorage::loadCache):
2630         * loader/appcache/ManifestParser.cpp:
2631         (WebCore::parseManifest):
2632         * loader/appcache/ManifestParser.h:
2633
2634 2009-08-19  Brady Eidson <beidson@apple.com>
2635
2636         Reviewed by Kevin Decker.
2637
2638         <rdar://problem/7042555> Loading certain pages on Tiger will start a spurious download
2639         
2640         Get rid of method swizzling entirely. This created problems when lower level
2641         Foundation code would call into our own swizzled method.
2642         
2643         * platform/network/mac/ResourceHandleMac.mm: 
2644         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): 
2645         * platform/network/mac/WebCoreURLResponse.h:
2646         * platform/network/mac/WebCoreURLResponse.mm:
2647         (-[NSURLResponse adjustMIMETypeIfNecessary]):
2648
2649 2009-08-19  Adam Roben  <aroben@apple.com>
2650
2651         Fix linker warnings on Windows
2652
2653         Reviewed by Anders Carlsson.
2654
2655         Fixes <http://webkit.org/b/28462> WebCore causes linker warnings on
2656         Windows about multiply-defined JSHTMLDataListElement symbols
2657
2658         * WebCore.vcproj/WebCore.vcproj: Exclude JSHTMLDataListElement.cpp
2659         from the build (just like we do for the other generated bindings
2660         files) so that we don't get warnings about multiply-defined symbols in
2661         JSHTMLDataListElement.cpp and DerivedSources.cpp. Also removed
2662         duplicate versions of JSSVGElementWrapperFactory.cpp, and let VS
2663         reorder a few files.
2664
2665 2009-08-19  Jungshik Shin  <jshin@chromium.org>
2666
2667         Reviewed by Eric Seidel
2668
2669         Add 'icu::' qualifier when refering to ICU C++ names.
2670
2671         https://bugs.webkit.org/show_bug.cgi?id=28410
2672
2673         No change in the test result.
2674
2675         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2676         (WebCore::fontContainsCharacter):
2677
2678 2009-08-19  David Hyatt  <hyatt@apple.com>
2679
2680         Reviewed by Dan Bernstein.
2681
2682         Cleanup from my patch thet rewrote overflow.  Remove unused member variables from RenderTableSection and
2683         move the addition of overflow from children into a separate pass after the height of the section has been
2684         set.  This prevents the RenderOverflow struct from being aggressively allocated for all table sections.
2685         (Not a a correctness issue, just a memory issue.)
2686
2687         * rendering/RenderTableSection.cpp:
2688         (WebCore::RenderTableSection::RenderTableSection):
2689         (WebCore::RenderTableSection::layoutRows):
2690         * rendering/RenderTableSection.h:
2691
2692 2009-08-19  Jan Michael Alonzo  <jmalonzo@webkit.org>
2693
2694         Reviewed by Xan Lopez.
2695
2696         [Gtk] Remove bogus dependency rules for built sources that derive
2697         from HTMLTagNames.in, HTMLAttributeNames.in and xmlattrs.in. The
2698         header files should be generated regardless of whether the source
2699         file changed or not. We should only rely on the *.in files being
2700         changed.
2701
2702         * GNUmakefile.am:
2703
2704 2009-08-18  Maciej Stachowiak  <mjs@apple.com>
2705
2706         Reviewed by Oliver Hunt.
2707
2708         convert FormatBlock candidate tag list from if chain to hash lookup
2709         https://bugs.webkit.org/show_bug.cgi?id=28448
2710
2711         No behavior change, just cleanup.
2712
2713         * editing/htmlediting.cpp:
2714         (WebCore::validBlockTag):
2715         * editing/htmlediting.h:
2716
2717 2009-08-19  Mike Fenton  <mike.fenton@torchmobile.com>
2718
2719         Reviewed by Eric Seidel.
2720
2721         Update GraphicsContextSkia's version of drawLine to make use of the shared
2722         adjustLineToPixelBoundaries function and elimination overlapping code.
2723
2724         https://bugs.webkit.org/show_bug.cgi?id=28268
2725
2726         * platform/graphics/skia/GraphicsContextSkia.cpp:
2727         (WebCore::GraphicsContext::drawLine):
2728
2729 2009-08-18  Mike Fenton  <mike.fenton@torchmobile.com>
2730
2731         Reviewed by Eric Seidel.
2732
2733         Style fixes based on cpp_style.py and WebKit Style guide for
2734         GraphicsContextSkia.cpp
2735
2736         https://bugs.webkit.org/show_bug.cgi?id=28268
2737
2738         * platform/graphics/skia/GraphicsContextSkia.cpp:
2739         (WebCore::GraphicsContext::addInnerRoundedRectClip):
2740         (WebCore::GraphicsContext::drawFocusRing):
2741         (WebCore::GraphicsContext::roundToDevicePixels):
2742         (WebCore::GraphicsContext::setLineDash):
2743         (WebCore::GraphicsContext::setPlatformShadow):
2744
2745 2009-08-18  Alexey Proskuryakov  <ap@webkit.org>
2746
2747         Reviewed by Maciej Stachowiak.
2748
2749         https://bugs.webkit.org/show_bug.cgi?id=28446
2750         Custom request headers shouldn't be sent with cross-origin preflight request
2751
2752         Tests: http/tests/xmlhttprequest/access-control-preflight-headers-async.html
2753                http/tests/xmlhttprequest/access-control-preflight-headers-sync.html
2754
2755         * loader/DocumentThreadableLoader.cpp:
2756         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
2757         Don't copy headers to OPTIONS request. The spec is vague about this, but the intention was
2758         that they shouldn't be sent, and Firefox doesn't send them.
2759
2760 2009-08-18  John Gregg  <johnnyg@google.com>
2761
2762         Reviewed by Dimitri Glazkov.
2763
2764         V8 Bindings for Desktop Notifications feature.
2765         https://bugs.webkit.org/show_bug.cgi?id=28271
2766
2767         * WebCore.gypi: 
2768         added notification files to build (all still behind a flag that's not on)
2769         * bindings/scripts/CodeGeneratorV8.pm:
2770         added special case in DOMWindow/AppCache style for named event handlers
2771         * bindings/v8/DOMObjectsInclude.h:
2772         * bindings/v8/DerivedSourcesAllInOne.cpp:
2773         * bindings/v8/V8DOMWrapper.cpp:
2774         (WebCore::V8DOMWrapper::getTemplate):
2775         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2776         * bindings/v8/V8Index.cpp:
2777         * bindings/v8/V8Index.h:
2778         * bindings/v8/V8Proxy.h:
2779         * bindings/v8/WorkerContextExecutionProxy.cpp:
2780         (WebCore::WorkerContextExecutionProxy::convertToV8Object):
2781         * bindings/v8/custom/V8CustomBinding.h:
2782         * bindings/v8/custom/V8NotificationCenterCustom.cpp: Added.
2783         * notifications/Notification.h:
2784         made event handler routines public (as they are in DOMWindow, eg) for
2785         binding access.
2786         * notifications/NotificationCenter.idl:
2787         needed to make methods V8Custom to support different behaviors in 
2788         worker/page context in chromium. 
2789         * workers/WorkerThread.h:
2790         (WebCore::WorkerThread::getNotificationPresenter):
2791         (WebCore::WorkerThread::setNotificationPresenter):
2792         needed to make these methods public as well so chromium can inject
2793         the notification presenter into the worker thread.
2794
2795 2009-08-13  Maciej Stachowiak  <mjs@apple.com>
2796
2797         Reviewed by Sam Weinig.
2798
2799         - Implement HTML5 nav element
2800         https://bugs.webkit.org/show_bug.cgi?id=27937
2801
2802         <nav> should behave essentially the same as <div> for parsing
2803         etc. This is implemented by the changes below.
2804         
2805         Tests: fast/html/nav-element.html
2806
2807         * css/html.css:
2808         * editing/htmlediting.cpp:
2809         (WebCore::validBlockTag):
2810         * html/HTMLElement.cpp:
2811         (WebCore::HTMLElement::tagPriority):
2812         (WebCore::blockTagList):
2813         * html/HTMLParser.cpp:
2814         (WebCore::HTMLParser::getNode):
2815         * html/HTMLTagNames.in:
2816
2817 2009-08-18  Anders Carlsson  <andersca@apple.com>
2818
2819         Reviewed by Adele Peterson, David Hyatt and Dan Bernstein.
2820
2821         - Fix <rdar://problem/7152727>
2822
2823         If a page has custom scroll bars, they will not update correctly when the window is activated/deactivated.
2824         
2825         * page/FrameView.cpp:
2826         (WebCore::FrameView::hasCustomScrollbars):
2827         Check if the frame view or any of its subviews have custom scroll bars.
2828         
2829         (WebCore::FrameView::updateControlTints):
2830         Go ahead and update control tints if the frame view has custom scroll bars.
2831         
2832         * page/FrameView.h:
2833
2834 2009-08-18  Mark Rowe  <mrowe@apple.com>
2835
2836         Roll out r47477 as it introduced assertion failures and crashes on the build bots.
2837
2838         * GNUmakefile.am:
2839         * WebCore.gypi:
2840         * WebCore.pro:
2841         * WebCore.vcproj/WebCore.vcproj:
2842         * WebCore.xcodeproj/project.pbxproj:
2843         * WebCoreSources.bkl:
2844         * storage/Database.cpp:
2845         * storage/Database.h:
2846         * storage/DatabaseThread.cpp:
2847         (WebCore::DatabaseThread::DatabaseThread):
2848         * storage/DatabaseThread.h:
2849         * storage/SQLTransaction.cpp:
2850         (WebCore::SQLTransaction::runCurrentStatement):
2851         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
2852         (WebCore::SQLTransaction::postflightAndCommit):
2853         * storage/SQLTransactionClient.cpp: Removed.
2854         * storage/SQLTransactionClient.h: Removed.
2855
2856 2009-08-18  Maxime Simon  <simon.maxime@gmail.com>
2857
2858         Reviewed by Eric Seidel.
2859
2860         [Haiku] Adding the SharedTimer file for WebCore.
2861         https://bugs.webkit.org/show_bug.cgi?id=28126
2862
2863         * platform/haiku/SharedTimerHaiku.cpp: Added.
2864         (WebCore::):
2865         (WebCore::SharedTimerHaiku::SharedTimerHaiku):
2866         (WebCore::SharedTimerHaiku::~SharedTimerHaiku):
2867         (WebCore::SharedTimerHaiku::instance):
2868         (WebCore::SharedTimerHaiku::start):
2869         (WebCore::SharedTimerHaiku::stop):
2870         (WebCore::SharedTimerHaiku::Filter):
2871         (WebCore::setSharedTimerFiredFunction):
2872         (WebCore::setSharedTimerFireTime):
2873         (WebCore::stopSharedTimer):
2874
2875 2009-08-18  Mark Rowe  <mrowe@apple.com>
2876
2877         Release build fix.
2878
2879         * xml/XMLHttpRequest.cpp: Sprinkle some #ifndef NDEBUG around.
2880         (WebCore::XMLHttpRequest::XMLHttpRequest):
2881         (WebCore::XMLHttpRequest::~XMLHttpRequest):
2882
2883 2009-08-18  Aaron Boodman  <aa@chromium.org>
2884
2885         Reviewed by Maciej Stachowiak.
2886
2887         https://bugs.webkit.org/show_bug.cgi?id=28412: Leak of WebCore::XMLHttpRequest object during layout tests.
2888
2889         No new tests: Already covered by existing tests.
2890
2891         * xml/XMLHttpRequest.cpp:
2892         (WebCore::XMLHttpRequest::XMLHttpRequest): Add instrumentation for this kind of leak.
2893         (WebCore::XMLHttpRequest::~XMLHttpRequest): Ditto.
2894         (WebCore::XMLHttpRequest::createRequest): Only setPendingActivity() if we actually started a request. Also,
2895         restore a call to nonCacheRequestInFlight() that got lost in a recent refactor.
2896
2897 2009-08-18  Dumitru Daniliuc  <dumi@chromium.org>
2898
2899         Reviewed by Dimitri Glazkov.
2900
2901         Added a client to SQLTransaction. In addition to being a place to
2902         get notifications about certain events in a transaction, it is
2903         also an abstraction layer that allows us to plug in different
2904         implementations for each port for how transactions interract with
2905         the main DB. For example, WebCore's default implementation will
2906         make direct calls to DatabaseTracker's methods. At the same time,
2907         Chromium's implementation will send IPCs to the browser process
2908         whenever a transaction needs something from the main DB.
2909
2910         All storage tests pass.
2911
2912         https://bugs.webkit.org/show_bug.cgi?id=27967
2913
2914         * GNUmakefile.am:
2915         * WebCore.gypi:
2916         * WebCore.pro:
2917         * WebCore.vcproj/WebCore.vcproj:
2918         * WebCore.xcodeproj/project.pbxproj:
2919         * WebCoreSources.bkl:
2920         * storage/Database.cpp:
2921         (WebCore::Database::transactionClient):
2922         * storage/Database.h:
2923         * storage/DatabaseThread.cpp:
2924         (WebCore::DatabaseThread::DatabaseThread):
2925         * storage/DatabaseThread.h:
2926         (WebCore::DatabaseThread::transactionClient):
2927         * storage/SQLTransaction.cpp:
2928         (WebCore::SQLTransaction::runCurrentStatement):
2929         (WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
2930         (WebCore::SQLTransaction::postflightAndCommit):
2931         * storage/SQLTransactionClient.cpp: Added.
2932         * storage/SQLTransactionClient.h: Added.
2933
2934 2009-08-18  Julie Parent  <jparent@chromium.org>
2935
2936         Not reviewed, build fix for Chromium.
2937
2938         Final change for v8 corresponding to http://trac.webkit.org/changeset/47469.
2939
2940         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp: Added missing using statment
2941
2942 2009-08-18  Julie Parent  <jparent@chromium.org>
2943
2944         Not reviewed, build fix for Chromium.
2945
2946        More corresponding changes to V8 from http://trac.webkit.org/changeset/47469.
2947
2948         * bindings/v8/custom/V8HTMLIFrameElementCustom.cpp:
2949         (WebCore::ACCESSOR_SETTER): Use srcAttr instead of the src function.
2950
2951 2009-08-18  Julie Parent  <jparent@chromium.org>
2952
2953         Not reviewed, build fix for Chromium.
2954
2955         Make corresponding changes to V8 from http://trac.webkit.org/changeset/47469.
2956
2957         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
2958         (WebCore::ACCESSOR_SETTER): Use srcAttr instead of the src function.
2959
2960 2009-08-18  Dan Bernstein  <mitz@apple.com>
2961
2962         Build fix.
2963
2964         * editing/ApplyStyleCommand.cpp:
2965         (WebCore::getIdentifierValue):
2966
2967 2009-08-18  Darin Adler  <darin@apple.com>
2968
2969         Reviewed by Sam Weinig.
2970
2971         More work on making DOM classes start with reference count of 1
2972         https://bugs.webkit.org/show_bug.cgi?id=28068
2973
2974         Some related clean-up and preparation steps so the subsequent
2975         patches will be as small as possible.
2976
2977         * WebCore.base.exp: Sorted this file.
2978
2979         * accessibility/AccessibilityRenderObject.cpp:
2980         (WebCore::AccessibilityRenderObject::accessibilityDescription):
2981         Use nameAttr instead of the name function.
2982
2983         * bindings/js/JSHTMLFrameElementCustom.cpp:
2984         (WebCore::JSHTMLFrameElement::setSrc):
2985         Use srcAttr instead of the src function.
2986
2987         * bindings/js/JSHTMLIFrameElementCustom.cpp:
2988         (WebCore::JSHTMLIFrameElement::setSrc):
2989         Use srcAttr instead of the src function.
2990
2991         * bindings/objc/DOM.mm: Sorted includes.
2992         * dom/Document.cpp: Ditto.
2993
2994         * dom/StyledElement.cpp: Made invalidateStyleAttribute inline.
2995         * dom/StyledElement.h: Ditto.
2996
2997         * dom/make_names.pl: Changed default of createWithNew to 0.
2998         Eventually all elements will be created with create instead of new.
2999
3000         * html/HTMLTagNames.in:
3001         * svg/svgtags.in:
3002         * wml/WMLTagNames.in:
3003         Added createWithNew for every tag. We'll remove it as we convert
3004         element classes to use create.
3005
3006         * html/HTMLAppletElement.h: Removed unneeded forward declarations.
3007         * html/HTMLFrameElement.h: Ditto.
3008
3009         * html/HTMLEmbedElement.cpp: Removed many attribute get and
3010         set functions.
3011         * html/HTMLEmbedElement.h: Ditto.
3012         * html/HTMLIFrameElement.cpp: Ditto.
3013         * html/HTMLIFrameElement.h: Ditto.
3014         * html/HTMLObjectElement.cpp: Ditto.
3015         * html/HTMLObjectElement.h: Ditto.
3016         * html/HTMLPlugInElement.cpp: Ditto.
3017         * html/HTMLPlugInElement.h: Ditto.
3018
3019         * html/HTMLFrameElementBase.cpp: Removed many attribute get and
3020         set functions.
3021         (WebCore::HTMLFrameElementBase::location): Changed to use
3022         srcAttr instead of src.
3023         * html/HTMLFrameElementBase.h: Removed many attribute get and set
3024         functions.
3025
3026         * loader/MediaDocument.cpp:
3027         (WebCore::MediaDocument::replaceMediaElementTimerFired):
3028         Use srcAttr and typeAttr instead of setSrc and setType.
3029         * loader/PluginDocument.cpp:
3030         (WebCore::PluginTokenizer::createDocumentStructure): Ditto.
3031
3032         * rendering/RenderPartObject.cpp:
3033         (WebCore::RenderPartObject::updateWidget): Use nameAttr instead
3034         of name -- this avoids an extra AtomicString round trip and a little
3035         ref count churn too.
3036
3037 2009-08-18  Drew Wilson  <atwilson@google.com>
3038
3039         Reviewed by David Levin.
3040
3041         SharedWorkers need to support loading.
3042         https://bugs.webkit.org/show_bug.cgi?id=28342
3043
3044         Added loader support to shared workers, and refactored worker tests to also test SharedWorkers
3045
3046         * workers/DefaultSharedWorkerRepository.cpp:
3047         (WebCore::SharedWorkerProxy::postTaskToLoader):
3048         Forwards load requests to an arbitrary document from the list of worker's documents.
3049         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerContext):
3050         Posts responses back to the shared worker thread.
3051
3052 2009-08-18  Ryosuke Niwa  <rniwa@webkit.org>
3053
3054         Reviewed by Darin Adler.
3055
3056         StyleChange::init needs clean up before fixing the bug 23892
3057         https://bugs.webkit.org/show_bug.cgi?id=27749
3058
3059         This patch simplifies StyleChange::init by removing the iteration on CSS properties,
3060         and adding functions reconcileTextDecorationProperties and extractTextStyle to handle the style.
3061
3062         Because there is a bug in how text decorations are processes in getPropertiesNotInComputedStyle,
3063         this patch simplifies the treatment in order to preserve the original behavior of WebKit.
3064         However, the current implementation is not best (adds redundant text-decorations) and we should fix it later.
3065
3066         No test is added since there is no change in behavior.
3067
3068         * editing/ApplyStyleCommand.cpp:
3069         (WebCore::StyleChange::init): Uses getPropertiesNotInComputedStyle instead of iterating through the properties
3070         (WebCore::StyleChange::reconcileTextDecorationProperties): Removes -webkit-text-decorations-in-effects and redundant "none"
3071         (WebCore::getIdentifierValue): Obtains the identifier of a CSSPrimitiveValue
3072         (WebCore::StyleChange::extractTextStyles): Converts properties in style to m_apply* and removes the property
3073         (WebCore::getPropertiesNotInComputedStyle): Fixed a bug with how text decorations are treated
3074
3075 2009-08-18  Dumitru Daniliuc  <dumi@chromium.org>
3076
3077         Reviewed by Dimitri Glazkov.
3078
3079         Fixing a DB file naming bug in Chromium. The origin should come
3080         before the DB name in the file name.
3081
3082         https://bugs.webkit.org/show_bug.cgi?id=28331
3083
3084         * storage/DatabaseTracker.cpp:
3085         (WebCore::DatabaseTracker::fullPathForDatabase):
3086
3087 2009-08-18  Maxime Simon  <simon.maxime@gmail.com>
3088
3089         Reviewed by Eric Seidel.
3090
3091         [Haiku] Adding four image-specific files to WebCore:
3092         IconHaiku.cpp, ImageBufferData.h, ImageBufferHaiku.cpp, ImageHaiku.cpp
3093         https://bugs.webkit.org/show_bug.cgi?id=28130
3094
3095         * platform/graphics/Icon.h:
3096         * platform/graphics/haiku/IconHaiku.cpp: Added.
3097         (WebCore::Icon::~Icon):
3098         (WebCore::Icon::createIconForFile):
3099         (WebCore::Icon::createIconForFiles):
3100         (WebCore::Icon::paint):
3101         * platform/graphics/haiku/ImageBufferData.h: Added.
3102         * platform/graphics/haiku/ImageBufferHaiku.cpp: Added.
3103         (WebCore::ImageBufferData::ImageBufferData):
3104         (WebCore::ImageBuffer::ImageBuffer):
3105         (WebCore::ImageBuffer::~ImageBuffer):
3106         (WebCore::ImageBuffer::context):
3107         (WebCore::ImageBuffer::getUnmultipliedImageData):
3108         (WebCore::ImageBuffer::getPremultipliedImageData):
3109         (WebCore::ImageBuffer::putUnmultipliedImageData):
3110         (WebCore::ImageBuffer::putPremultipliedImageData):
3111         (WebCore::ImageBuffer::toDataURL):
3112         (WebCore::ImageBuffer::image):
3113         (WebCore::ImageBuffer::platformTransformColorSpace):
3114         * platform/graphics/haiku/ImageHaiku.cpp: Added.
3115         (WebCore::FrameData::clear):
3116         (WebCore::Image::loadPlatformResource):
3117         (WebCore::BitmapImage::initPlatformData):
3118         (WebCore::BitmapImage::invalidatePlatformData):
3119         (WebCore::BitmapImage::draw):
3120         (WebCore::Image::drawPattern):
3121         (WebCore::BitmapImage::checkForSolidColor):
3122         (WebCore::BitmapImage::getBBitmap):
3123
3124 2009-08-18  Beth Dakin  <bdakin@apple.com>
3125
3126         Reviewed by Dan Bernstein.
3127
3128         Fix for https://bugs.webkit.org/show_bug.cgi?id=27575 [CSS3 
3129         Backgrounds and Borders] Drop the prefix from background-size
3130
3131         * css/CSSComputedStyleDeclaration.cpp:
3132         (WebCore::):
3133         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
3134         * css/CSSParser.cpp:
3135         (WebCore::CSSParser::parseValue):
3136         (WebCore::CSSParser::parseFillProperty):
3137         (WebCore::cssPropertyID):
3138         * css/CSSPropertyNames.in:
3139         * css/CSSStyleSelector.cpp:
3140         (WebCore::CSSStyleSelector::applyProperty):
3141         * page/animation/AnimationBase.cpp:
3142         (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
3143         (WebCore::ensurePropertyMap):
3144
3145 2009-08-18  Drew Wilson  <atwilson@google.com>
3146
3147         Reviewed by David Levin.
3148
3149         SharedWorkers need to forward exceptions to parent documents
3150         https://bugs.webkit.org/show_bug.cgi?id=28320
3151
3152         Changed SharedWorkerProxy to have individual mutexes (so workers can interact with their parent documents without contention).
3153
3154         Updated SharedWorkerProxy to forward exceptions/console messages to all parent documents.
3155
3156         * bindings/js/JSSharedWorkerConstructor.cpp:
3157         Cleaned up bitrot - added missing include.
3158         * workers/DefaultSharedWorkerRepository.cpp:
3159         (WebCore::postExceptionTask):
3160         Callback used to deliver exceptions to a document.
3161         (WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
3162         Forwards exceptions to all parent documents for presentation to the user.
3163         (WebCore::postConsoleMessageTask):
3164         (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
3165         Forwards console messages to all parent documents for presentation to the user.
3166         (WebCore::SharedWorkerProxy::addToWorkerDocuments):
3167         Grabs the mutex before accessing workerDocuments.
3168         (WebCore::SharedWorkerProxy::documentDetached):
3169         Grabs the mutex before accessing workerDocuments.
3170
3171 2009-08-18  Anders Carlsson  <andersca@apple.com>
3172
3173         Reviewed by Adele Peterson.
3174
3175         <rdar://problem/7135588> HTMLMediaElement should ask WebPolicyLoadDelegate before loading resource
3176         
3177         * html/HTMLMediaElement.cpp:
3178         (WebCore::HTMLMediaElement::isSafeToLoadURL):
3179         Call FrameLoaderClient::shouldLoadMediaElementURL.
3180         
3181         * loader/FrameLoaderClient.h:
3182         (WebCore::FrameLoaderClient::shouldLoadMediaElementURL):
3183         Return true by default.
3184
3185 2009-08-18  Dumitru Daniliuc  <dumi@chromium.org>
3186
3187         Reviewed by Dimitri Glazkov.
3188
3189         openDatabase() should not execute any SQL statement on the
3190         database it's trying to open, unless there are no other open
3191         handles to the same database. Otherwise, we might run into a
3192         deadlock.
3193
3194         Test: storage/open-database-while-transaction-in-progress.html
3195
3196         https://bugs.webkit.org/show_bug.cgi?id=28207
3197
3198         * storage/Database.cpp:
3199         (WebCore::Database::performOpenAndVerify):
3200
3201 2009-08-18  Dirk Schulze  <krit@webkit.org>
3202
3203         Reviewed by Oliver Hunt.
3204
3205         SVG Filter feBlend implementation missing
3206         [https://bugs.webkit.org/show_bug.cgi?id=28133]
3207
3208         Implementation of SVG Filter feBlend.
3209
3210         FilterEffect.cp needed changes to optimize the rendering. With the old code
3211         we drew a subEffect on the current FilterEffect by drawImage, got the PixelArray,
3212         cleared the drawing area, drew the next FilterEffect with drawImage and picked this
3213         PixelArray again. This was unefficient and slow. Now we calculate the requested area
3214         of the subEffect and ask the FilterEffect's ImageBuffer for the PixelArray directly,
3215         without any drawing operations on GraphicsContext.
3216
3217         There is already a test case
3218         Test: svg/W3C-SVG-1.1/filters-blend-01-b.svg
3219
3220         * html/canvas/CanvasPixelArray.h:
3221         (WebCore::CanvasPixelArray::set):
3222         (WebCore::CanvasPixelArray::get):
3223         * platform/graphics/filters/FEBlend.cpp:
3224         (WebCore::unknown):
3225         (WebCore::normal):
3226         (WebCore::multiply):
3227         (WebCore::screen):
3228         (WebCore::darken):
3229         (WebCore::lighten):
3230         (WebCore::FEBlend::apply):
3231         * platform/graphics/filters/FEBlend.h:
3232         * platform/graphics/filters/FilterEffect.cpp:
3233         (WebCore::FilterEffect::calculateDrawingIntRect):
3234         * platform/graphics/filters/FilterEffect.h:
3235
3236 2009-08-18  Pavel Feldman  <pfeldman@chromium.org>
3237
3238         Reviewed by Timothy Hatcher.
3239
3240         WebInspector: Fix array formatter followup: node formatter.
3241
3242         https://bugs.webkit.org/show_bug.cgi?id=28427
3243
3244         * inspector/front-end/ConsoleView.js:
3245         (WebInspector.ConsoleView.prototype._format):
3246
3247 2009-08-18  Pavel Feldman  <pfeldman@chromium.org>
3248
3249         Reviewed by Timothy Hatcher.
3250
3251         WebInspector: Metrics sidebar broken
3252
3253         https://bugs.webkit.org/show_bug.cgi?id=28434
3254
3255         * inspector/front-end/MetricsSidebarPane.js:
3256
3257 2009-08-18  Alexey Proskuryakov  <ap@apple.com>
3258
3259         Reviewed by Darin Adler.
3260
3261         https://bugs.webkit.org/show_bug.cgi?id=28432
3262         String::createCFString() returns a non-retained empty string
3263
3264         No known change in functionality, so no test.
3265
3266         * platform/text/cf/StringCF.cpp: (WebCore::String::createCFString): Retain the CFSTR result.
3267     
3268 2009-08-18  Brian Weinstein  <bweinstein@apple.com>
3269
3270         Reviewed by Oliver Hunt.
3271
3272         Fix of <https://bugs.webkit.org/show_bug.cgi?id=28326> DRT on Windows doesn't support 
3273         LayoutTestController::setQuota or print a callback on UIDelegate::exceededDatabaseQuota.
3274         
3275         Removed an early return that can cause deleteOrigin or deleteAllDatabases to fail when
3276         it doesn't have to.
3277
3278         * storage/DatabaseTracker.cpp:
3279         (WebCore::DatabaseTracker::deleteOrigin):
3280
3281 2009-08-18  Michelangelo De Simone  <micdesim@gmail.com>
3282
3283         Reviewed by Adele Peterson.
3284
3285         https://bugs.webkit.org/show_bug.cgi?id=27357
3286         Support for :valid and :invalid CSS selectors, from HTML5 specs.
3287         http://www.whatwg.org/specs/web-apps/current-work/#selector-valid
3288
3289         Tests: fast/css/pseudo-invalid-001.html
3290                fast/css/pseudo-invalid-002.html
3291                fast/css/pseudo-valid-001.html
3292                fast/css/pseudo-valid-002.html
3293                fast/css/pseudo-valid-003.html
3294                fast/css/pseudo-valid-004.html
3295                fast/css/pseudo-valid-005.html
3296                fast/css/pseudo-valid-006.html
3297                fast/css/pseudo-valid-007.html
3298
3299         * css/CSSSelector.cpp:
3300         (WebCore::CSSSelector::extractPseudoType): extracts new pseudo-classes
3301         * css/CSSSelector.h:
3302         (WebCore::CSSSelector::):
3303         * css/CSSStyleSelector.cpp:
3304         (WebCore::CSSStyleSelector::canShareStyleWithElement): Make sure we don't share style between
3305 form controls that have different validity states.
3306         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): applies
3307         style associated to new pseudo-classes
3308         * dom/Element.h:
3309         (WebCore::Element::willValidate): pushed up in hierarchy
3310         (WebCore::Element::isValidFormControlElement): checks for valid form
3311         control elements (wraps ValidityState::valid())
3312         * html/HTMLFormControlElement.cpp:
3313         (WebCore::HTMLFormControlElement::willValidate): minor clean up
3314         (WebCore::HTMLFormControlElement::isValidFormControlElement): ditto
3315         * html/HTMLFormControlElement.h:
3316         * html/HTMLKeygenElement.h:
3317         (WebCore::HTMLKeygenElement::willValidate): added
3318         * html/HTMLObjectElement.h:
3319         (WebCore::HTMLObjectElement::willValidate): added
3320         * html/HTMLObjectElement.idl:
3321
3322 2009-08-18  Pavel Feldman  <pfeldman@chromium.org>
3323
3324         Reviewed by Timothy Hatcher.
3325
3326         WebInspector: Fix array formatter.
3327
3328         https://bugs.webkit.org/show_bug.cgi?id=28427
3329
3330         * inspector/front-end/ConsoleView.js:
3331         (WebInspector.ConsoleView.prototype._formatarray):
3332
3333 2009-08-17  Joe Mason  <joe.mason@torchmobile.com>
3334
3335         Reviewed by George Staikos
3336
3337         Replace repeated string of PLATFORM(FOO) with a single define
3338         https://bugs.webkit.org/show_bug.cgi?id=27734
3339
3340         * loader/CachedFont.cpp:
3341         (WebCore::CachedFont::~CachedFont):
3342         (WebCore::CachedFont::ensureCustomFontData):
3343         (WebCore::CachedFont::platformDataFromCustomData):
3344         (WebCore::CachedFont::allClientsRemoved):
3345
3346 2009-08-16  David Hyatt  <hyatt@apple.com>
3347
3348         Reviewed by Dan Bernstein.
3349
3350         https://bugs.webkit.org/show_bug.cgi?id=20329, shadows and reflections incorrectly
3351         considered part of scrollable overflow.
3352
3353         This patch takes the engine's concept of overflow and splits it into two types:
3354         layout overflow and visual overflow.
3355         
3356         Layout overflow is about other boxes that spill out of an enclosing box,  For example,
3357         in the inline flow case a tall image could spill out of a line box. Examples of 
3358         visual overflow are shadows, text stroke (and eventually outline and
3359         border-image).
3360
3361         Three objects tracked overflow before this patch: RenderBlock had 
3362         m_overflowLeft/Top/Width/Height variables.  RootInlineBox had an Overflow*
3363         that also had four overflow values.  Finally RenderReplaced elements tracked shadow/reflection
3364         overflow using a map that cached four values.
3365         
3366         This patch takes all of these different overflow models and unifies them into a single
3367         new class called RenderOverflow.   This class is now a member variable in RenderBox and
3368         InlineFlowBoxes.  It is only allocated if overflow actually exists.  Instead of tracking
3369         four values, it tracks eight: left/top/right/bottom for layout overflow and 
3370         left/top/right/bottom for visual overflow.
3371         
3372         Overflow computation is now done after layout is finished rather than during layout
3373         (when child objects can be churning and moving around).  A number of layout tests progressed
3374         by deferring overflow computation to a separate pass.
3375         
3376         All inline flow boxes now track overflow (and not just the root line box).  This allows
3377         repainting of line boxes to actually be tight and bail early if the overflow rect of a box
3378         doesn't intersect.  The old code always visited all object on a line if the root line box
3379         intersected at all.
3380         
3381         Line box overflow no longer propagates across self-painting layers.  This fixes a number of
3382         issues with incorrect scrollbars appearing when relative positioned inlines were used in a page.
3383         
3384         Layer bounds have been modified to exclude visual overflow.  The width/height members only really
3385         have one reason for continued existence, and that is that they happen to be used in repaint()
3386         when an overflow clip object's height isn't accurate.  In this case, the bounds should exclude
3387         visual overflow anyway, so this change tightens that repaint up.
3388         
3389         Root lines have renamed m_selectionTop/Bottom to m_lineTop/Bottom and positionForPoint methods have
3390         been changed to use these instead of relying on overflow (which was totally wrong).
3391
3392         Significant changes have been made to the "almost strict mode" line box quirk where objects with no
3393         text children have no effect on the height of a line.  Instead of making the height() of the objects
3394         variable and dependent on overflow, the objects now have their full height and get placed on
3395         the baseline properly.  They simply don't contribute to overflow above lineTop/Bottom.
3396         
3397         Reflections are no longer considered overflow of any kind.  Because reflections have their own layers,
3398         it is not necessary to treat them as visual or layout overflow in the RenderObject tree.  The end result
3399         of not incorporating them into RenderOverflow is that they have no effect on scrolling.  transparencyClipBox
3400         has been extended to support fully reflecting the entire clip box when a reflection exists.  This fixes
3401         numerous repaint bugs in transparent objects with reflections when the transparent objects had self-painting
3402         sublayers.
3403
3404         * WebCore.xcodeproj/project.pbxproj:
3405         * dom/ContainerNode.cpp:
3406         (WebCore::ContainerNode::getUpperLeftCorner):
3407         * editing/visible_units.cpp:
3408         (WebCore::previousLinePosition):
3409         (WebCore::nextLinePosition):
3410         * page/FrameView.cpp:
3411         (WebCore::FrameView::adjustViewSize):
3412         (WebCore::FrameView::adjustPageHeight):
3413         * rendering/InlineBox.cpp:
3414         (WebCore::InlineBox::height):
3415         * rendering/InlineBox.h:
3416         * rendering/InlineFlowBox.cpp:
3417         (WebCore::InlineFlowBox::adjustPosition):
3418         (WebCore::InlineFlowBox::placeBoxesHorizontally):
3419         (WebCore::InlineFlowBox::placeBoxesVertically):
3420         (WebCore::InlineFlowBox::computeVerticalOverflow):
3421         (WebCore::InlineFlowBox::nodeAtPoint):
3422         (WebCore::InlineFlowBox::paint):
3423         * rendering/InlineFlowBox.h:
3424         (WebCore::InlineFlowBox::InlineFlowBox):
3425         (WebCore::InlineFlowBox::topCombinedOverflow):
3426         (WebCore::InlineFlowBox::bottomCombinedOverflow):
3427         (WebCore::InlineFlowBox::leftCombinedOverflow):
3428         (WebCore::InlineFlowBox::rightCombinedOverflow):
3429         (WebCore::InlineFlowBox::combinedOverflowRect):
3430         (WebCore::InlineFlowBox::topLayoutOverflow):
3431         (WebCore::InlineFlowBox::bottomLayoutOverflow):
3432         (WebCore::InlineFlowBox::leftLayoutOverflow):
3433         (WebCore::InlineFlowBox::rightLayoutOverflow):
3434         (WebCore::InlineFlowBox::layoutOverflowRect):
3435         (WebCore::InlineFlowBox::topVisualOverflow):
3436         (WebCore::InlineFlowBox::bottomVisualOverflow):
3437         (WebCore::InlineFlowBox::leftVisualOverflow):
3438         (WebCore::InlineFlowBox::rightVisualOverflow):
3439         (WebCore::InlineFlowBox::visualOverflowRect):
3440         (WebCore::InlineFlowBox::setHorizontalOverflowPositions):
3441         (WebCore::InlineFlowBox::setVerticalOverflowPositions):
3442         * rendering/InlineTextBox.cpp:
3443         (WebCore::InlineTextBox::paint):
3444         * rendering/RenderBlock.cpp:
3445         (WebCore::RenderBlock::RenderBlock):
3446         (WebCore::RenderBlock::layout):
3447         (WebCore::RenderBlock::layoutBlock):
3448         (WebCore::RenderBlock::addOverflowFromBlockChildren):
3449         (WebCore::RenderBlock::handleBottomOfBlock):
3450         (WebCore::RenderBlock::layoutBlockChildren):
3451         (WebCore::RenderBlock::paint):
3452         (WebCore::RenderBlock::fillInlineSelectionGaps):
3453         (WebCore::RenderBlock::floatRect):
3454         (WebCore::RenderBlock::lowestPosition):
3455         (WebCore::RenderBlock::rightmostPosition):
3456         (WebCore::RenderBlock::leftmostPosition):
3457         (WebCore::RenderBlock::addOverhangingFloats):
3458         (WebCore::RenderBlock::nodeAtPoint):
3459         (WebCore::RenderBlock::positionForPointWithInlineChildren):
3460         (WebCore::RenderBlock::layoutColumns):
3461         (WebCore::getHeightForLineCount):
3462         * rendering/RenderBlock.h:
3463         * rendering/RenderBlockLineLayout.cpp:
3464         (WebCore::RenderBlock::computeHorizontalPositionsForLine):
3465         (WebCore::RenderBlock::computeVerticalPositionsForLine):
3466         (WebCore::RenderBlock::layoutInlineChildren):
3467         (WebCore::RenderBlock::matchedEndLine):
3468         (WebCore::RenderBlock::addOverflowFromInlineChildren):
3469         * rendering/RenderBox.cpp:
3470         (WebCore::RenderBox::destroy):
3471         (WebCore::RenderBox::clippedOverflowRectForRepaint):
3472         (WebCore::RenderBox::localCaretRect):
3473         (WebCore::RenderBox::addShadowAndReflectionOverflow):
3474         (WebCore::RenderBox::addOverflowFromChild):
3475         (WebCore::RenderBox::addLayoutOverflow):
3476         (WebCore::RenderBox::addVisualOverflow):
3477         (WebCore::RenderBox::clearLayoutOverflow):
3478         * rendering/RenderBox.h:
3479         (WebCore::RenderBox::combinedOverflowRect):
3480         (WebCore::RenderBox::topCombinedOverflow):
3481         (WebCore::RenderBox::bottomCombinedOverflow):
3482         (WebCore::RenderBox::leftCombinedOverflow):
3483         (WebCore::RenderBox::rightCombinedOverflow):
3484         (WebCore::RenderBox::layoutOverflowRect):
3485         (WebCore::RenderBox::topLayoutOverflow):
3486         (WebCore::RenderBox::bottomLayoutOverflow):
3487         (WebCore::RenderBox::leftLayoutOverflow):
3488         (WebCore::RenderBox::rightLayoutOverflow):
3489         (WebCore::RenderBox::visualOverflowRect):
3490         (WebCore::RenderBox::topVisualOverflow):
3491         (WebCore::RenderBox::bottomVisualOverflow):
3492         (WebCore::RenderBox::leftVisualOverflow):
3493         (WebCore::RenderBox::rightVisualOverflow):
3494         * rendering/RenderFlexibleBox.cpp:
3495         (WebCore::RenderFlexibleBox::layoutBlock):
3496         (WebCore::RenderFlexibleBox::layoutHorizontalBox):
3497         (WebCore::RenderFlexibleBox::layoutVerticalBox):
3498         * rendering/RenderLayer.cpp:
3499         (WebCore::RenderLayer::updateLayerPosition):
3500         (WebCore::RenderLayer::localBoundingBox):
3501         * rendering/RenderLayerCompositor.cpp:
3502         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
3503         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
3504         * rendering/RenderLineBoxList.cpp:
3505         (WebCore::RenderLineBoxList::paint):
3506         (WebCore::RenderLineBoxList::hitTest):
3507         * rendering/RenderListItem.cpp:
3508         (WebCore::RenderListItem::positionListMarker):
3509         * rendering/RenderObject.cpp:
3510         (WebCore::RenderObject::RenderObject):
3511         * rendering/RenderObject.h:
3512         * rendering/RenderOverflow.h: Added.
3513         (WebCore::RenderOverflow::RenderOverflow):
3514         (WebCore::RenderOverflow::topLayoutOverflow):
3515         (WebCore::RenderOverflow::bottomLayoutOverflow):
3516         (WebCore::RenderOverflow::leftLayoutOverflow):
3517         (WebCore::RenderOverflow::rightLayoutOverflow):
3518         (WebCore::RenderOverflow::topVisualOverflow):
3519         (WebCore::RenderOverflow::bottomVisualOverflow):
3520         (WebCore::RenderOverflow::leftVisualOverflow):
3521         (WebCore::RenderOverflow::rightVisualOverflow):
3522         (WebCore::RenderOverflow::setTopLayoutOverflow):
3523         (WebCore::RenderOverflow::setBottomLayoutOverflow):
3524         (WebCore::RenderOverflow::setLeftLayoutOverflow):
3525         (WebCore::RenderOverflow::setRightLayoutOverflow):
3526         (WebCore::RenderOverflow::setTopVisualOverflow):
3527         (WebCore::RenderOverflow::setBottomVisualOverflow):
3528         (WebCore::RenderOverflow::setLeftVisualOverflow):
3529         (WebCore::RenderOverflow::setRightVisualOverflow):
3530         (WebCore::RenderOverflow::layoutOverflowRect):
3531         (WebCore::RenderOverflow::visualOverflowRect):
3532         (WebCore::RenderOverflow::combinedOverflowRect):
3533         (WebCore::RenderOverflow::move):
3534         (WebCore::RenderOverflow::addLayoutOverflow):
3535         (WebCore::RenderOverflow::addVisualOverflow):
3536         (WebCore::RenderOverflow::resetLayoutOverflow):
3537         * rendering/RenderPartObject.cpp:
3538         (WebCore::RenderPartObject::layout):
3539         * rendering/RenderReplaced.cpp:
3540         (WebCore::RenderReplaced::~RenderReplaced):
3541         (WebCore::RenderReplaced::layout):
3542         (WebCore::RenderReplaced::shouldPaint):
3543         (WebCore::RenderReplaced::positionForPoint):
3544         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
3545         * rendering/RenderReplaced.h:
3546         * rendering/RenderScrollbarPart.cpp:
3547         (WebCore::RenderScrollbarPart::layout):
3548         (WebCore::RenderScrollbarPart::paintIntoRect):
3549         * rendering/RenderSlider.cpp:
3550         (WebCore::RenderSlider::layout):
3551         * rendering/RenderTable.cpp:
3552         (WebCore::RenderTable::layout):
3553         (WebCore::RenderTable::paint):
3554         * rendering/RenderTableCell.cpp:
3555         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
3556         * rendering/RenderTableSection.cpp:
3557         (WebCore::RenderTableSection::layoutRows):
3558         * rendering/RenderTableSection.h:
3559         * rendering/RenderText.cpp:
3560         (WebCore::RenderText::positionForPoint):
3561         (WebCore::RenderText::localCaretRect):
3562         * rendering/RenderView.cpp:
3563         (WebCore::RenderView::layout):
3564         * rendering/RootInlineBox.cpp:
3565         (WebCore::RootInlineBox::addHighlightOverflow):
3566         (WebCore::RootInlineBox::adjustPosition):
3567         (WebCore::RootInlineBox::verticallyAlignBoxes):
3568         (WebCore::RootInlineBox::selectionTop):
3569         * rendering/RootInlineBox.h:
3570         (WebCore::RootInlineBox::RootInlineBox):
3571         (WebCore::RootInlineBox::nextRootBox):