2010-09-09 Simon Fraser <simon.fraser@apple.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2010-09-09  Alexey Marinichev  <amarinichev@chromium.org>
2
3         Reviewed by James Robinson.
4
5         [chromium] Disable subpixel rendering in Linux when GPU compositor is active
6         https://bugs.webkit.org/show_bug.cgi?id=45087
7
8         Covered by all tests that activate the compositor and contain text.
9
10         * platform/graphics/chromium/ContentLayerChromium.cpp:
11         (WebCore::ContentLayerChromium::updateContents):
12         * platform/graphics/chromium/FontLinux.cpp:
13         (WebCore::adjustTextRenderMode): Added a check to see if the compositor is active.
14         (WebCore::Font::drawGlyphs):
15         (WebCore::Font::drawComplexText):
16         * platform/graphics/chromium/LayerRendererChromium.cpp:
17         (WebCore::LayerRendererChromium::setRootLayerCanvasSize):
18         * platform/graphics/chromium/VideoLayerChromium.cpp:
19         (WebCore::VideoLayerChromium::updateContents):
20         * platform/graphics/skia/ImageBufferSkia.cpp:
21         (WebCore::ImageBuffer::ImageBuffer):
22         (WebCore::ImageBuffer::clip):
23         * platform/graphics/skia/PlatformContextSkia.cpp:
24         Made setDrawingToImageBuffer and isDrawingToImageBuffer available to
25         Linux; removed all #if OS(WINDOWS) || OS(LINUX).
26         (WebCore::PlatformContextSkia::State::State):
27         (WebCore::PlatformContextSkia::PlatformContextSkia):
28         (WebCore::PlatformContextSkia::isDrawingToImageBuffer):
29         (WebCore::PlatformContextSkia::save):
30         (WebCore::PlatformContextSkia::beginLayerClippedToImage):
31         (WebCore::PlatformContextSkia::restore):
32         (WebCore::PlatformContextSkia::applyClipFromImage):
33         * platform/graphics/skia/PlatformContextSkia.h:
34
35 2010-09-09  Simon Fraser  <simon.fraser@apple.com>
36
37         Fix windows build by adding missing file.
38
39         * platform/graphics/win/LocalWindowsContext.h: Added.
40         (WebCore::LocalWindowsContext::LocalWindowsContext):
41         (WebCore::LocalWindowsContext::~LocalWindowsContext):
42         (WebCore::LocalWindowsContext::hdc):
43
44 2010-09-09  Simon Fraser  <simon.fraser@apple.com>
45
46         Reviewed by Adam Roben.
47
48         Scrollbars fail to render in composited iframes.
49         https://bugs.webkit.org/show_bug.cgi?id=45335
50
51         Add a stack-based class, LocalWindowsContext, which does a getWindowsContext/
52         releaseWindowsContext automatically.
53
54         Also fix getWindowsContext to create a bitmap context if mayCreateBitmap
55         is true, and if the context's HDC is null. This fixes scrollbar rendering
56         in compositing layers.
57
58         Use LocalWindowsContext in places where we had bare getWindowsContext() calls.
59
60         * platform/graphics/win/LocalWindowsContext.h
61         (WebCore::LocalWindowsContext::LocalWindowsContext):
62         (WebCore::LocalWindowsContext::~LocalWindowsContext):
63         (WebCore::LocalWindowsContext::hdc):
64         * platform/graphics/win/GraphicsContextCGWin.cpp:
65         (WebCore::GraphicsContext::releaseWindowsContext):
66         * platform/graphics/win/GraphicsContextWin.cpp:
67         (WebCore::GraphicsContext::getWindowsContext):
68         * platform/graphics/win/IconWin.cpp:
69         (WebCore::Icon::paint):
70         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
71         (WebCore::MediaPlayerPrivate::paint):
72         * platform/win/ScrollbarThemeWin.cpp:
73         (WebCore::ScrollbarThemeWin::paintTrackPiece):
74         (WebCore::ScrollbarThemeWin::paintButton):
75         * plugins/win/PluginViewWin.cpp:
76         (WebCore::PluginView::paintWindowedPluginIntoContext):
77         (WebCore::PluginView::paint):
78         * rendering/RenderThemeWin.cpp:
79         (WebCore::drawControl):
80
81 2010-09-09  Vincent Scheib  <scheib@chromium.org>
82
83         Reviewed by James Robinson.
84
85         [Chromium] Minimize uploads in canvas 2d mixed mode rendering
86         https://bugs.webkit.org/show_bug.cgi?id=45476
87
88         No new tests - change is for performance, logic fixes only apparent when running hardware acceleration.
89
90         - Enumeration values fixed, "CavasWillDraw" -> "CanvasDidDraw".
91         - markDirtyRect() plumbed through GraphicsContext to PlatformContextSkia.
92         - Texture::updateSubRect() added to allow uploading only a dirty rect.
93         - Logic fix in ImageBuffer::draw(), caused canvas to canvas copies to be incorrect.
94
95         * html/canvas/CanvasRenderingContext2D.cpp:
96         (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault):
97         (WebCore::CanvasRenderingContext2D::strokeRect):
98         (WebCore::CanvasRenderingContext2D::drawImage):
99         (WebCore::CanvasRenderingContext2D::didDraw):
100           - Logic fix for drawingContext()->markDirtyRect() call.
101         (WebCore::CanvasRenderingContext2D::putImageData):
102         (WebCore::CanvasRenderingContext2D::drawTextInternal):
103           - Logic fix for calls to "didDraw()", use peer method first.
104         * html/canvas/CanvasRenderingContext2D.h:
105         * platform/graphics/GraphicsContext.cpp:
106         (WebCore::GraphicsContext::drawImageBuffer):
107         (WebCore::GraphicsContext::markDirtyRect):
108         * platform/graphics/GraphicsContext.h:
109         * platform/graphics/gpu/Texture.cpp:
110         (WebCore::Texture::create):
111         (WebCore::Texture::load):
112         (WebCore::Texture::updateSubRect):
113         * platform/graphics/gpu/Texture.h:
114         * platform/graphics/gpu/TilingData.h:
115         (WebCore::TilingData::borderTexels):
116         * platform/graphics/skia/GraphicsContextSkia.cpp:
117         (WebCore::GraphicsContext::clipConvexPolygon):
118         (WebCore::GraphicsContext::markDirtyRect):
119         * platform/graphics/skia/ImageBufferSkia.cpp:
120         (WebCore::ImageBuffer::draw):
121         * platform/graphics/skia/PlatformContextSkia.cpp:
122         (WebCore::PlatformContextSkia::State::cloneInheritedProperties):
123         (WebCore::PlatformContextSkia::drawRect):
124         (WebCore::PlatformContextSkia::setFillColor):
125         (WebCore::PlatformContextSkia::setStrokeColor):
126         (WebCore::PlatformContextSkia::markDirtyRect):
127         (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
128         * platform/graphics/skia/PlatformContextSkia.h:
129
130 2010-09-08  Darin Adler  <darin@apple.com>
131
132         Reviewed by Adam Barth.
133
134         Move functions from Frame to Editor as planned
135         https://bugs.webkit.org/show_bug.cgi?id=45218
136
137         Just executing the plan that has long been described in Frame.h
138         to move a bunch of functions to Editor.
139
140         * WebCore.exp.in: Updated.
141
142         * editing/Editor.cpp:
143         (WebCore::Editor::fontForSelection):
144         (WebCore::Editor::textDirectionForSelection):
145         (WebCore::Editor::applyStyle):
146         (WebCore::Editor::selectionStartHasStyle):
147         (WebCore::Editor::selectionHasStyle):
148         (WebCore::Editor::selectionStartCSSPropertyValue):
149         (WebCore::Editor::Editor):
150         (WebCore::Editor::cut):
151         (WebCore::Editor::copy):
152         (WebCore::Editor::ignoreSpelling):
153         (WebCore::Editor::learnSpelling):
154         (WebCore::Editor::isSelectionMisspelled):
155         (WebCore::Editor::guessesForMisspelledSelection):
156         (WebCore::Editor::selectedText):
157         (WebCore::Editor::firstRectForRange):
158         (WebCore::Editor::shouldChangeSelection):
159         (WebCore::Editor::computeAndSetTypingStyle):
160         (WebCore::Editor::selectionComputedStyle):
161         (WebCore::Editor::textFieldDidBeginEditing):
162         (WebCore::Editor::textFieldDidEndEditing):
163         (WebCore::Editor::textDidChangeInTextField):
164         (WebCore::Editor::doTextFieldCommandFromEvent):
165         (WebCore::Editor::textWillBeDeletedInTextField):
166         (WebCore::Editor::textDidChangeInTextArea):
167         (WebCore::Editor::applyEditingStyleToBodyElement):
168         (WebCore::Editor::applyEditingStyleToElement):
169         (WebCore::Editor::styleForSelectionStart):
170         (WebCore::Editor::findString):
171         (WebCore::Editor::countMatchesForText):
172         (WebCore::Editor::setMarkedTextMatchesAreHighlighted):
173         (WebCore::Editor::respondToChangedSelection):
174         * editing/Editor.h:
175         * editing/mac/EditorMac.mm:
176         (WebCore::Editor::fontAttributesForSelectionStart):
177         (WebCore::Editor::baseWritingDirectionForSelectionStart):
178         Moved functions here.
179
180         * page/Frame.cpp:
181         (WebCore::Frame::Frame):
182         (WebCore::Frame::shouldChangeSelection):
183         * page/Frame.h:
184         * page/mac/FrameMac.mm:
185         Moved functions out of here.
186
187         * dom/InputElement.cpp:
188         (WebCore::InputElement::dispatchBlurEvent):
189         (WebCore::InputElement::aboutToUnload):
190         * editing/DeleteSelectionCommand.cpp:
191         (WebCore::DeleteSelectionCommand::doApply):
192         * editing/EditorCommand.cpp:
193         (WebCore::executeToggleStyleInList):
194         (WebCore::executeDeleteToMark):
195         (WebCore::executeFindString):
196         (WebCore::executeSelectToMark):
197         (WebCore::executeSetMark):
198         (WebCore::executeSwapWithMark):
199         (WebCore::enabledVisibleSelectionAndMark):
200         * editing/SelectionController.cpp:
201         (WebCore::SelectionController::setSelection):
202         * html/HTMLInputElement.cpp:
203         (WebCore::HTMLInputElement::defaultEventHandler):
204         * page/ContextMenuController.cpp:
205         (WebCore::ContextMenuController::contextMenuItemSelected):
206         * page/DOMWindow.cpp:
207         (WebCore::DOMWindow::find):
208         * page/DragController.cpp:
209         (WebCore::DragController::startDrag):
210         * page/EventHandler.cpp:
211         (WebCore::EventHandler::sendContextMenuEventForKey):
212         * page/Page.cpp:
213         (WebCore::Page::findString):
214         (WebCore::Page::markAllMatchesForText):
215         * rendering/InlineTextBox.cpp:
216         (WebCore::InlineTextBox::paintTextMatchMarker):
217         * rendering/RenderTextControlMultiLine.cpp:
218         (WebCore::RenderTextControlMultiLine::subtreeHasChanged):
219         * rendering/RenderTextControlSingleLine.cpp:
220         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
221         Changed call sites to use editor().
222
223 2010-09-09  Chris Rogers  <crogers@google.com>
224
225         Reviewed by Kenneth Russell.
226
227         Add AudioDSPKernelProcessor files
228         https://bugs.webkit.org/show_bug.cgi?id=45211
229
230         No new tests since audio API is not yet implemented.
231
232         * platform/audio/AudioDSPKernelProcessor.cpp: Added.
233         (WebCore::AudioDSPKernelProcessor::AudioDSPKernelProcessor):
234         (WebCore::AudioDSPKernelProcessor::initialize):
235         (WebCore::AudioDSPKernelProcessor::uninitialize):
236         (WebCore::AudioDSPKernelProcessor::process):
237         (WebCore::AudioDSPKernelProcessor::reset):
238         (WebCore::AudioDSPKernelProcessor::setNumberOfChannels):
239         * platform/audio/AudioDSPKernelProcessor.h: Added.
240         (WebCore::AudioDSPKernelProcessor::numberOfChannels):
241
242 2010-09-09  Chris Rogers  <crogers@google.com>
243
244         Reviewed by Kenneth Russell.
245
246         Add setRange() and zeroRange() methods to TypedArrayBase
247         https://bugs.webkit.org/show_bug.cgi?id=45419
248
249         No new tests since adding new methods which are not yet called anywhere.
250
251         * html/canvas/ArrayBufferView.cpp:
252         (WebCore::ArrayBufferView::setRangeImpl):
253         (WebCore::ArrayBufferView::zeroRangeImpl):
254         * html/canvas/ArrayBufferView.h:
255         * html/canvas/TypedArrayBase.h:
256         (WebCore::TypedArrayBase::setRange):
257         (WebCore::TypedArrayBase::zeroRange):
258
259 2010-09-09  Robert Hogan  <robert@webkit.org>
260
261         Reviewed by Andreas Kling.
262
263         [Qt] always send an Accept header
264
265         Ensure QtWebKit always sends an Accept header. This is required
266         for compatibility with sites that expect the header in requests
267         for subresources.
268
269         See https://bugs.webkit.org/show_bug.cgi?id=33242 for more.
270
271         https://bugs.webkit.org/show_bug.cgi?id=45458
272
273         * platform/network/qt/ResourceRequestQt.cpp:
274         (WebCore::ResourceRequest::toNetworkRequest):
275
276 2010-09-09  Eric Carlson  <eric.carlson@apple.com>
277
278         Reviewed by Chris Marrin.
279
280         Add media element logging
281         https://bugs.webkit.org/show_bug.cgi?id=45469
282
283         Add logging at interesting points in a media element's lifecycle.
284
285         * html/HTMLMediaElement.cpp:
286         (WebCore::urlForLogging):
287         (WebCore::boolString):
288         (WebCore::HTMLMediaElement::scheduleEvent):
289         (WebCore::HTMLMediaElement::asyncEventTimerFired):
290         (WebCore::HTMLMediaElement::canPlayType):
291         (WebCore::HTMLMediaElement::load):
292         (WebCore::HTMLMediaElement::prepareForLoad):
293         (WebCore::HTMLMediaElement::selectMediaResource):
294         (WebCore::HTMLMediaElement::loadResource):
295         (WebCore::HTMLMediaElement::isSafeToLoadURL):
296         (WebCore::HTMLMediaElement::waitForSourceChange):
297         (WebCore::HTMLMediaElement::noneSupported):
298         (WebCore::HTMLMediaElement::mediaEngineError):
299         (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks):
300         (WebCore::HTMLMediaElement::setNetworkState):
301         (WebCore::HTMLMediaElement::setReadyState):
302         (WebCore::HTMLMediaElement::rewind):
303         (WebCore::HTMLMediaElement::returnToRealtime):
304         (WebCore::HTMLMediaElement::addPlayedRange):
305         (WebCore::HTMLMediaElement::seek):
306         (WebCore::HTMLMediaElement::finishSeek):
307         (WebCore::HTMLMediaElement::setPlaybackRate):
308         (WebCore::HTMLMediaElement::setWebkitPreservesPitch):
309         (WebCore::HTMLMediaElement::setAutoplay):
310         (WebCore::HTMLMediaElement::setPreload):
311         (WebCore::HTMLMediaElement::play):
312         (WebCore::HTMLMediaElement::playInternal):
313         (WebCore::HTMLMediaElement::pause):
314         (WebCore::HTMLMediaElement::pauseInternal):
315         (WebCore::HTMLMediaElement::setLoop):
316         (WebCore::HTMLMediaElement::setControls):
317         (WebCore::HTMLMediaElement::setVolume):
318         (WebCore::HTMLMediaElement::setMuted):
319         (WebCore::HTMLMediaElement::togglePlayState):
320         (WebCore::HTMLMediaElement::beginScrubbing):
321         (WebCore::HTMLMediaElement::endScrubbing):
322         (WebCore::HTMLMediaElement::selectNextSourceChild):
323         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
324         (WebCore::HTMLMediaElement::mediaPlayerVolumeChanged):
325         (WebCore::HTMLMediaElement::mediaPlayerMuteChanged):
326         (WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
327         (WebCore::HTMLMediaElement::mediaPlayerRateChanged):
328         (WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):
329         (WebCore::HTMLMediaElement::mediaPlayerSawUnsupportedTracks):
330         (WebCore::HTMLMediaElement::mediaPlayerSizeChanged):
331         (WebCore::HTMLMediaElement::mediaPlayerRenderingModeChanged):
332         (WebCore::HTMLMediaElement::updatePlayState):
333         (WebCore::HTMLMediaElement::userCancelledLoad):
334         (WebCore::HTMLMediaElement::stop):
335         (WebCore::HTMLMediaElement::suspend):
336         (WebCore::HTMLMediaElement::resume):
337         (WebCore::HTMLMediaElement::hasPendingActivity):
338         (WebCore::HTMLMediaElement::mediaVolumeDidChange):
339         (WebCore::HTMLMediaElement::createMediaPlayerProxy):
340         (WebCore::HTMLMediaElement::enterFullscreen):
341         (WebCore::HTMLMediaElement::exitFullscreen):
342         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
343         (WebCore::HTMLMediaElement::mediaCanStart):
344         (WebCore::HTMLMediaElement::setShouldDelayLoadEvent):
345
346 2010-09-09  Anton Muhin  <antonm@chromium.org>
347
348         Reviewed by Adam Barth.
349
350         [v8] bypass caches when query memory usage from post GC and in crash handler.
351         https://bugs.webkit.org/show_bug.cgi?id=45036
352
353         Second part of the whole change: now use API introduced in
354         http://trac.webkit.org/changeset/66818 and now backed by Chromium.
355
356         * bindings/v8/V8DOMWindowShell.cpp:
357         (WebCore::reportFatalErrorInV8):
358         * bindings/v8/V8GCController.cpp:
359         (WebCore::V8GCController::gcEpilogue):
360
361 2010-09-09  Kwang Yul Seo  <skyul@company100.net>
362
363         Reviewed by James Robinson.
364
365         Make sure skia is not Chromium specific
366         https://bugs.webkit.org/show_bug.cgi?id=39672
367
368         FontCustomPlatformData is not Chromium-specific. Move it to platform/skia.
369
370         No new tests because this is pure refactoring.
371
372         * WebCore.gyp/WebCore.gyp:
373         * WebCore.gypi:
374         * platform/graphics/chromium/FontCustomPlatformData.cpp: Removed.
375         * platform/graphics/chromium/FontCustomPlatformData.h: Removed.
376         * platform/graphics/skia/FontCustomPlatformData.cpp: Copied from WebCore/platform/graphics/chromium/FontCustomPlatformData.cpp.
377         * platform/graphics/skia/FontCustomPlatformData.h: Copied from WebCore/platform/graphics/chromium/FontCustomPlatformData.h.
378
379 2010-09-09  Chris Rogers  <crogers@google.com>
380
381         Reviewed by Chris Fleizach.
382
383         Add AudioDSPKernel files
384         https://bugs.webkit.org/show_bug.cgi?id=45319
385
386         No new tests since audio API is not yet implemented.
387
388         * platform/audio/AudioDSPKernel.h: Added.
389         (WebCore::AudioDSPKernel::AudioDSPKernel):
390         (WebCore::AudioDSPKernel::~AudioDSPKernel):
391         (WebCore::AudioDSPKernel::sampleRate):
392         (WebCore::AudioDSPKernel::nyquist):
393         (WebCore::AudioDSPKernel::processor):
394
395 2010-09-09  Chris Rogers  <crogers@google.com>
396
397         Reviewed by Chris Fleizach.
398
399         Add AudioProcessor.h
400         https://bugs.webkit.org/show_bug.cgi?id=45206
401
402         No new tests since audio API is not yet implemented.
403
404         * platform/audio/AudioProcessor.h: Added.
405         (WebCore::AudioProcessor::AudioProcessor):
406         (WebCore::AudioProcessor::~AudioProcessor):
407         (WebCore::AudioProcessor::isInitialized):
408         (WebCore::AudioProcessor::sampleRate):
409
410 2010-09-09  Kenneth Russell  <kbr@google.com>
411
412         Reviewed by James Robinson.
413
414         Add cubic texture coordinate computation
415         https://bugs.webkit.org/show_bug.cgi?id=45250
416
417         Adding the texture coordinate computation for cubic curves per the
418         GPU Gems 3 chapter. No tests yet; will be tested in conjunction
419         with later code.
420
421         * platform/graphics/gpu/LoopBlinnConstants.h: Added.
422         * platform/graphics/gpu/LoopBlinnTextureCoords.cpp: Added.
423         (WebCore::LoopBlinnTextureCoords::compute):
424         * platform/graphics/gpu/LoopBlinnTextureCoords.h: Added.
425         (WebCore::LoopBlinnTextureCoords::Result::Result):
426         (WebCore::LoopBlinnTextureCoords::LoopBlinnTextureCoords):
427
428 2010-09-09  Kenneth Russell  <kbr@google.com>
429
430         Reviewed by James Robinson.
431
432         Add cubic curve classifier
433         https://bugs.webkit.org/show_bug.cgi?id=45249
434
435         Adding the cubic curve classification algorithm per the GPU Gems 3
436         chapter. No tests yet; will be tested in conjunction with later code.
437
438         * platform/graphics/gpu/LoopBlinnClassifier.cpp: Added.
439         (WebCore::LoopBlinnClassifier::classify):
440         * platform/graphics/gpu/LoopBlinnClassifier.h: Added.
441         (WebCore::LoopBlinnClassifier::Result::Result):
442         (WebCore::LoopBlinnClassifier::LoopBlinnClassifier):
443
444 2010-09-09  Ryosuke Niwa  <rniwa@webkit.org>
445
446         Reviewed by Darin Adler.
447
448         QueryCommandValue('FontSize') returns pixel values instead of IE font numbers
449         https://bugs.webkit.org/show_bug.cgi?id=21033
450
451         Modified selectionStartCSSPropertyValue to return legacy font size instead of pixel size.
452         To implement the conversion between pixel font size and legacy font size,
453         added legacyFontSize to CSSStyleSelector with a helper static function findNearestLegacyFontSize.
454
455         Fixed a bug in selectionComputedStyle where it obtains the style of the previous editing position
456         even when the selection is a range. This change revealed a crash in executeToggleStyleInList,
457         which was also fixed.
458
459         Test: editing/execCommand/query-font-size.html
460
461         * css/CSSComputedStyleDeclaration.cpp:
462         (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword): Corrected style.
463         (WebCore::CSSComputedStyleDeclaration::useFixedFontDefaultSize): Added.
464         * css/CSSComputedStyleDeclaration.h:
465         * css/CSSStyleSelector.cpp:
466         (WebCore::CSSStyleSelector::fontSizeForKeyword): Renamed fixed/monospace to shouldUseFixedDefaultSize.
467         (WebCore::findNearestLegacyFontSize): Added, a helper for legacyFontSize.
468         (WebCore::CSSStyleSelector::legacyFontSize): Added.
469         * css/CSSStyleSelector.h:
470         * editing/Editor.cpp:
471         (WebCore::Editor::selectionStartCSSPropertyValue): Added a conversion from pixel to legacy font size.
472         * editing/EditorCommand.cpp:
473         (WebCore::executeToggleStyleInList): Crash fix.
474         * page/Frame.cpp:
475         (WebCore::Frame::selectionComputedStyle): See above.
476
477 2010-09-09  Robert Hogan  <robert@webkit.org>
478
479         Reviewed by Adam Barth.
480
481         Give WebKit clients a way to replace window.screen 
482         to foil attempts to track users with it.
483
484         This allows clients to overload the values returned by the
485         Screen object through the JSC manipulation API (such as
486         QWebFrame::addToJavaScriptWindowObject() in Qt). Clients will
487         want to do this when they do not want to reveal too much
488         explicit information about the user's desktop configuration.
489
490         https://bugs.webkit.org/show_bug.cgi?id=41802
491
492         * page/DOMWindow.idl:
493
494 2010-09-09  Kenneth Russell  <kbr@google.com>
495
496         Reviewed by James Robinson.
497
498         Memory leak in red/black tree
499         https://bugs.webkit.org/show_bug.cgi?id=45472
500
501         Fixed memory leak in red/black tree where it was using operator
502         new directly to allocate its internal nodes rather than the arena
503         with which it was configured. Added allocateObject variant to
504         arena supporting single-argument constructors. Added test to
505         red/black tree unit tests to cover this functionality, and
506         refactored TrackedAllocator into helper file to share between
507         arena and red/black tree tests.
508
509         * platform/graphics/gpu/PODArena.h:
510         (WebCore::PODArena::allocateObject):
511         (WebCore::PODArena::allocateBase):
512         * platform/graphics/gpu/PODIntervalTree.h:
513         (WebCore::PODIntervalTree::PODIntervalTree):
514         * platform/graphics/gpu/PODRedBlackTree.h:
515         (WebCore::PODRedBlackTree::add):
516
517 2010-09-09  Dean Jackson  <dino@apple.com>
518
519         Reviewed by Simon Fraser.
520
521         Fill mode is broken with multiple keyframes
522         https://bugs.webkit.org/show_bug.cgi?id=41209
523
524         With a forward fill mode the animation would tick after
525         the end of the animation, causing the fractional
526         duration of the animation to wrap. This meant the last
527         style update would happen using the incorrect keyframes.
528         The solution was to put clamps in for the elapsed time
529         and current iteration count.
530
531         Tests: animations/fill-mode-missing-from-to-keyframes.html
532                animations/fill-mode-multiple-keyframes.html
533
534         * page/animation/KeyframeAnimation.cpp:
535         (WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
536
537 2010-09-09  Chris Fleizach  <cfleizach@apple.com>
538
539         Reviewed by David Kilzer.
540
541         AX: Support AccessibilityTextMarkers in DRT
542         https://bugs.webkit.org/show_bug.cgi?id=44778
543
544         Provide support in DRT for accessing and manipulating the text marker system that AX exposes.
545         This will allow future bug fixes in the text marker system to be adequately tested.
546
547         Tests: platform/mac/accessibility/element-for-text-marker.html
548                platform/mac/accessibility/text-marker-length.html
549
550         * accessibility/mac/AccessibilityObjectWrapper.mm:
551         (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
552
553 2010-09-09  Simon Fraser  <simon.fraser@apple.com>
554
555         Reviewed by Dan Bernstein.
556
557         REGRESSION(r58875-r59046): Scrollable content drawn in wrong layer with Flash 10.1
558         https://bugs.webkit.org/show_bug.cgi?id=40743
559         
560         We can't do partial compositing layer updates on scrolling if we have to look
561         for overlap, because the overlap map needs to be populated by traversing the
562         compositing layer hierarchy from the root.
563
564         Test: compositing/layer-creation/scroll-partial-update.html
565
566         * rendering/RenderLayerCompositor.cpp:
567         (WebCore::RenderLayerCompositor::updateCompositingLayers):
568
569 2010-09-09  Philippe Normand  <pnormand@igalia.com>
570
571         Reviewed by Martin Robinson.
572
573         [GTK] testmimehandling falsely succeeds testing Ogg mime type
574         https://bugs.webkit.org/show_bug.cgi?id=45349
575
576         Advertize audio/x-vorbis+ogg so MediaDocuments loading local ogg
577         files work as well.
578
579         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
580         (WebCore::mimeTypeCache):
581
582 2010-09-09  Adam Barth  <abarth@webkit.org>
583
584         Move FTPDirectoryDocument, ImageDocument, MediaDocument, and
585         PluginDocument from WebCore/loader to WebCore/html.  These classes are
586         subclasses of HTMLDocument.  They don't belong in the loader.  Further
587         cleanup patches to follow.
588
589         * Android.mk:
590         * CMakeLists.txt:
591         * GNUmakefile.am:
592         * WebCore.gypi:
593         * WebCore.pro:
594         * WebCore.vcproj/WebCore.vcproj:
595         * WebCore.xcodeproj/project.pbxproj:
596         * html/FTPDirectoryDocument.cpp: Copied from WebCore/loader/FTPDirectoryDocument.cpp.
597         * html/FTPDirectoryDocument.h: Copied from WebCore/loader/FTPDirectoryDocument.h.
598         * html/ImageDocument.cpp: Copied from WebCore/loader/ImageDocument.cpp.
599         * html/ImageDocument.h: Copied from WebCore/loader/ImageDocument.h.
600         * html/MediaDocument.cpp: Copied from WebCore/loader/MediaDocument.cpp.
601         * html/MediaDocument.h: Copied from WebCore/loader/MediaDocument.h.
602         * html/PluginDocument.cpp: Copied from WebCore/loader/PluginDocument.cpp.
603         * html/PluginDocument.h: Copied from WebCore/loader/PluginDocument.h.
604         * loader/FTPDirectoryDocument.cpp: Removed.
605         * loader/FTPDirectoryDocument.h: Removed.
606         * loader/ImageDocument.cpp: Removed.
607         * loader/ImageDocument.h: Removed.
608         * loader/MediaDocument.cpp: Removed.
609         * loader/MediaDocument.h: Removed.
610         * loader/PluginDocument.cpp: Removed.
611         * loader/PluginDocument.h: Removed.
612
613 2010-09-09  Andrey Kosyakov  <caseq@chromium.org>
614
615         Reviewed by Yury Semikhatsky.
616
617         Web Inspector: use string representation of resource type in extension API
618         Fixed Resoruce.Type.toString() to handle Resource.Type.Media.
619         https://bugs.webkit.org/show_bug.cgi?id=45286
620
621         Test: inspector/extensions-resources.html
622
623         * English.lproj/localizedStrings.js: Added "media".
624         * inspector/front-end/ExtensionServer.js: Added webInspector.resources.Types. Return resource types as strings.
625         (WebInspector.ExtensionServer.prototype._convertResource):
626         (WebInspector.ExtensionServer.prototype._buildExtensionAPIInjectedScript):
627         * inspector/front-end/Resource.js: Added toUIString(), changed toString() to return locale-independent representation.
628         (WebInspector.Resource.Type.toUIString):
629         (WebInspector.Resource.Type.toString):
630
631 2010-09-09  Kristian Amlie  <kristian.amlie@nokia.com>
632
633         Reviewed by Andreas Kling.
634
635         [Qt] Fixed incorrect Symbian scoping.
636
637         The missing install functionality is only true for mmp based systems.
638
639         https://bugs.webkit.org/show_bug.cgi?id=45268
640
641         * WebCore.pro:
642
643 2010-09-09  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
644
645         Reviewed by Dirk Schulze.
646
647         [WML] Add a parameter to fix build break.
648         https://bugs.webkit.org/show_bug.cgi?id=45437
649
650         In WMLSelectElement.h, the setSelectedIndexByUser() needs to have one more parameter. 
651         Because, parent class's setSelectedIndexByUser() has one more param.
652
653         * wml/WMLSelectElement.h:
654
655 2010-09-09  Ryuan Choi  <ryuan.choi@samsung.com>
656
657         Unreviewed attempt to fix EFL build after r67001.
658
659         [EFL] Regression (67001) Build break
660         https://bugs.webkit.org/show_bug.cgi?id=45422
661
662         * platform/efl/ScrollbarEfl.cpp:
663         (scrollbarEflEdjeMessage):
664
665 2010-09-08  Ryosuke Niwa  <rniwa@webkit.org>
666
667         Reviewed by Tony Chang.
668
669         MarkupAccumulator should be broken down into two classes
670         https://bugs.webkit.org/show_bug.cgi?id=44854
671
672         Extracted wrapWithNode, wrapWithStyleNode, stringValueForRange, renderedText, removeExteriorStyles,
673         shouldAnnotate, m_shouldAnnotate, and m_reversedPrecedingMarkup from MarkupAccumulator to create
674         StyledMarkupAccumulator in order to isolate annotation related code and prepending of text.
675
676         Isolating MarkupAccumulator as a separate class has two advantages:
677         1. Isolated serialization code is easier to understand and easier to security-review.
678         2. Embedder can use MarkupAccumulator to implement "Save as" feature.
679
680         Also made takeResults, appendText, and appendElement in MarkupAccumulator virtual to override in
681         StyledMarkupAccumulator because prepending text requires overriding takeResults, appendText needs
682         to append only rendered text when shouldAnnotate() is true, and appendElement requires a different
683         behavior when shouldAnnotate() is true or when called inside wrapWithNode with convertBlocksToInlines = true.
684
685         No new tests are added since this is a cleanup.
686
687         * editing/markup.cpp:
688         (WebCore::MarkupAccumulator::MarkupAccumulator): Removed shouldAnnotate from argument.
689         (WebCore::MarkupAccumulator::~MarkupAccumulator): Added.
690         (WebCore::StyledMarkupAccumulator::): Added.
691         (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): Added.
692         (WebCore::StyledMarkupAccumulator::appendElement): Added to support annotation.
693         (WebCore::StyledMarkupAccumulator::shouldAnnotate): Moved from MarkupAccumulator.
694         (WebCore::MarkupAccumulator::appendStartTag): No longer takes convertBlocksToInlines and RangeFullySelectsNode.
695         (WebCore::StyledMarkupAccumulator::wrapWithStyleNode): Moved from MarkupAccumulator.
696         (WebCore::MarkupAccumulator::takeResults): No longer accumulates prepended text, and made virtual.
697         (WebCore::StyledMarkupAccumulator::takeResults): Added to support prepended text.
698         (WebCore::MarkupAccumulator::shouldAddNamespaceAttribute): Takes a reference to Attribute instead of a pointer.
699         (WebCore::MarkupAccumulator::entityMaskForText): Extracted from appendText.
700         (WebCore::MarkupAccumulator::appendText): No longer deals with annotation.
701         (WebCore::StyledMarkupAccumulator::appendText): Added to support annotation.
702         (WebCore::StyledMarkupAccumulator::stringValueForRange): Moved from MarkupAccumulator.
703         (WebCore::StyledMarkupAccumulator::renderedText): Moved from MarkupAccumulator.
704         (WebCore::MarkupAccumulator::appendElement): No longer deals with annotation.
705         (WebCore::StyledMarkupAccumulator::wrapWithNode): Moved from MarkupAccumulator.
706         (WebCore::StyledMarkupAccumulator::removeExteriorStyles): Moved from MarkupAccumulator.
707         (WebCore::MarkupAccumulator::appendOpenTag): Added.
708         (WebCore::MarkupAccumulator::appendCloseTag): Added.
709         (WebCore::MarkupAccumulator::appendAttribute): Added.
710         (WebCore::MarkupAccumulator::appendStartMarkup): No longer takes convertBlocksToInlines and RangeFullySelectsNode.
711         (WebCore::serializeNodes): Takes StyledMarkupAccumulator.
712         (WebCore::createMarkup): Range version uses StyledMarkupAccumulator and node version uses MarkupAccumulator.
713
714 2010-09-08  Peter Kasting  <pkasting@google.com>
715
716         Not reviewed, layout test fix.
717         
718         Fix flaky layout test results caused by not initializing members correctly.
719         https://bugs.webkit.org/show_bug.cgi?id=45411
720
721         * platform/ScrollAnimator.cpp:
722         (WebCore::ScrollAnimator::ScrollAnimator):
723         (WebCore::ScrollAnimator::~ScrollAnimator):
724         * platform/ScrollAnimator.h:
725
726 2010-09-08  MORITA Hajime  <morrita@google.com>
727
728         Reviewed by Tony Chang.
729
730         spelling underline gets lost on backspace
731         https://bugs.webkit.org/show_bug.cgi?id=41423
732
733         moveParagraphs() did make a DOM range by serializing source range
734         and deserializing it back, and markers are gone during the process.
735         This change marks that DOM range again.
736
737         Test: editing/spelling/spelling-backspace-between-lines.html
738
739         * editing/CompositeEditCommand.cpp:
740         (WebCore::CompositeEditCommand::moveParagraphs):
741         * editing/Editor.cpp:
742         (WebCore::Editor::clearMisspellingsAndBadGrammar): Added.
743         (WebCore::Editor::markMisspellingsAndBadGrammar): Added.
744         * editing/Editor.h:
745
746 2010-09-08  Adam Barth  <abarth@webkit.org>
747
748         Reviewed by Eric Seidel.
749
750         text/plain documents that start with \n trigger ASSERT
751         https://bugs.webkit.org/show_bug.cgi?id=45409
752
753         Because the TextDocumentParser uses a <pre> element to show the text,
754         it ran into a requirement from HTML5 to skip any initial \n character
755         tokens inside a <pre> element.  We don't want the behavior for
756         TextDocuments, so I've loosened our ASSERTs and added a comment and a
757         test to document the correct behavior.
758
759         Test: fast/tokenizer/text-plain.html
760
761         * html/parser/HTMLTokenizer.cpp:
762         (WebCore::HTMLTokenizer::nextToken):
763
764 2010-09-08  James Robinson  <jamesr@chromium.org>
765
766         Reviewed by Kenneth Russell.
767
768         [chromium] Always do 2d canvas clearRect() in hardware
769         https://bugs.webkit.org/show_bug.cgi?id=45415
770
771         r67003 forced Canvas 2d's clearRect() to happen in software if a gradient/shadow/etc was
772         active.  This is subtly wrong for mixed mode rendering since it results in only the
773         software backing store being cleared and not the hardware.  This forces clearRect() to
774         happen in hardware.  Since we upload mixed mode results before doing any hardware draw
775         this means we always clear everything.
776
777         * platform/graphics/skia/GraphicsContextSkia.cpp:
778         (WebCore::GraphicsContext::clearRect):
779
780 2010-09-08  Dean Jackson  <dino@apple.com>
781
782         Unreviewed attempt to fix the Mac builds.
783
784         * css/CSSParser.cpp:
785         (WebCore::CSSParser::parseAnimationTimingFunction):
786
787 2010-09-08  Dean Jackson  <dino@apple.com>
788
789         Unreviewed attempt to fix QT build.
790
791         * platform/graphics/qt/GraphicsLayerQt.cpp:
792         (WebCore::solveStepsFunction):
793         (WebCore::applyTimingFunction):
794
795 2010-09-08  Dean Jackson  <dino@apple.com>
796
797         Reviewed by Simon Fraser.
798
799         Implement steps() timing function for animations
800         https://bugs.webkit.org/show_bug.cgi?id=44541
801
802         Tests: animations/timing-functions.html
803                transitions/steps-timing-function.html
804
805         * css/CSSComputedStyleDeclaration.cpp:
806         (WebCore::getTimingFunctionValue):
807             - when creating computed style we now test what
808               type of timing function it being used
809         * css/CSSParser.cpp:
810         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
811             - rename this method from parseTimingFunctionValue
812         (WebCore::CSSParser::parseAnimationTimingFunction):
813             - support parsing the steps() function
814         * css/CSSParser.h:
815             - method rename
816         * css/CSSStyleSelector.cpp:
817         (WebCore::CSSStyleSelector::mapAnimationTimingFunction):
818             - handle 'step-start' and 'step-end' identifiers. Also
819               now use ::create when constructing objects
820         * css/CSSTimingFunctionValue.cpp:
821         (WebCore::CSSLinearTimingFunctionValue::cssText):
822         (WebCore::CSSCubicBezierTimingFunctionValue::cssText):
823         (WebCore::CSSStepsTimingFunctionValue::cssText):
824             - new text output for computed style. We now produce
825               the text 'linear' when appropriate.
826         * css/CSSTimingFunctionValue.h:
827         (WebCore::CSSTimingFunctionValue::isLinearTimingFunctionValue):
828         (WebCore::CSSTimingFunctionValue::isCubicBezierTimingFunctionValue):
829         (WebCore::CSSTimingFunctionValue::isStepsTimingFunctionValue):
830         (WebCore::CSSTimingFunctionValue::CSSTimingFunctionValue):
831         (WebCore::CSSTimingFunctionValue::isTimingFunctionValue):
832         (WebCore::CSSLinearTimingFunctionValue::create):
833         (WebCore::CSSLinearTimingFunctionValue::isLinearTimingFunctionValue):
834         (WebCore::CSSLinearTimingFunctionValue::CSSLinearTimingFunctionValue):
835         (WebCore::CSSCubicBezierTimingFunctionValue::create):
836         (WebCore::CSSCubicBezierTimingFunctionValue::isCubicBezierTimingFunctionValue):
837         (WebCore::CSSCubicBezierTimingFunctionValue::CSSCubicBezierTimingFunctionValue):
838         (WebCore::CSSStepsTimingFunctionValue::create):
839         (WebCore::CSSStepsTimingFunctionValue::numberOfSteps):
840         (WebCore::CSSStepsTimingFunctionValue::stepAtStart):
841         (WebCore::CSSStepsTimingFunctionValue::isStepsTimingFunctionValue):
842         (WebCore::CSSStepsTimingFunctionValue::CSSStepsTimingFunctionValue):
843             - CSSTimingFunction is now a pure virtual ref-counted base class, with
844               subclasses for each of the three supported timing functions.
845         * css/CSSValueKeywords.in:
846             - new keywords step-start and step-end
847         * page/animation/AnimationBase.cpp:
848         (WebCore::solveStepsFunction):
849             - produces the output value from a stepping function
850         (WebCore::AnimationBase::progress):
851             - now has to switch based on timing function type
852         * page/animation/KeyframeAnimation.cpp:
853         (WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
854             - use ref-counted access
855         * platform/animation/Animation.cpp:
856         (WebCore::Animation::animationsMatch):
857             - change timing function comparison for operator==
858         * platform/animation/Animation.h:
859         (WebCore::Animation::timingFunction):
860         (WebCore::Animation::setTimingFunction):
861         (WebCore::Animation::initialAnimationTimingFunction):
862             - move to ref-counted timing function class
863         * platform/animation/TimingFunction.h:
864         (WebCore::TimingFunction::~TimingFunction):
865         (WebCore::TimingFunction::isLinearTimingFunction):
866         (WebCore::TimingFunction::isCubicBezierTimingFunction):
867         (WebCore::TimingFunction::isStepsTimingFunction):
868         (WebCore::TimingFunction::TimingFunction):
869         (WebCore::LinearTimingFunction::create):
870         (WebCore::LinearTimingFunction::~LinearTimingFunction):
871         (WebCore::LinearTimingFunction::operator==):
872         (WebCore::LinearTimingFunction::LinearTimingFunction):
873         (WebCore::CubicBezierTimingFunction::create):
874         (WebCore::CubicBezierTimingFunction::~CubicBezierTimingFunction):
875         (WebCore::CubicBezierTimingFunction::operator==):
876         (WebCore::CubicBezierTimingFunction::CubicBezierTimingFunction):
877         (WebCore::StepsTimingFunction::create):
878         (WebCore::StepsTimingFunction::~StepsTimingFunction):
879         (WebCore::StepsTimingFunction::operator==):
880         (WebCore::StepsTimingFunction::numberOfSteps):
881         (WebCore::StepsTimingFunction::stepAtStart):
882         (WebCore::StepsTimingFunction::StepsTimingFunction):
883             - TimingFunction is now a ref-counted pure virtual base class,
884               with three subclasses representing the types of timing functions
885               that are supported.
886         * platform/graphics/GraphicsLayer.h:
887         (WebCore::AnimationValue::AnimationValue):
888         (WebCore::FloatAnimationValue::FloatAnimationValue):
889         (WebCore::TransformAnimationValue::TransformAnimationValue):
890             - use PassRefPtr in function parameters
891         * platform/graphics/qt/GraphicsLayerQt.cpp:
892         (WebCore::solveStepsFunction):
893         (WebCore::applyTimingFunction):
894         (WebCore::AnimationQt::AnimationQt):
895         (WebCore::AnimationQt::updateCurrentTime):
896             - implement the timing function switch for QT
897         * platform/graphics/mac/GraphicsLayerCA.mm:
898         (WebCore::getCAMediaTimingFunction):
899             - update for new timing function interface
900         (WebCore::animationHasStepsTimingFunction):
901             - new method to make sure animations with steps() functions
902               never try to execute in Core Animation
903         (WebCore::GraphicsLayerCA::addAnimation):
904             - test for steps() timing function
905         (WebCore::GraphicsLayerCA::timingFunctionForAnimationValue):
906         * rendering/style/RenderStyleConstants.h:
907             - remove old RenderStyle enum for timing function types
908
909 2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>
910
911         Unreviewed trivial fix after r66960.
912
913         * WebCore.pro: loader/TextDocument.h renamed to html/TextDocument.h
914
915 2010-09-08  Adam Barth  <abarth@webkit.org>
916
917         Reviewed by Eric Seidel.
918
919         move-during-parse-parent.html crashes
920         https://bugs.webkit.org/show_bug.cgi?id=45210
921
922         When inserting elements into the tree, they need to be associated with
923         their parent's document, not the document for which the parser is
924         running.  These two are different when the parent has been moved to a
925         different document during parsing.
926
927         Test: fast/parser/move-during-parsing.html
928
929         * html/parser/HTMLConstructionSite.cpp:
930         (WebCore::HTMLConstructionSite::insertComment):
931         (WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
932         (WebCore::HTMLConstructionSite::insertScriptElement):
933         (WebCore::HTMLConstructionSite::insertTextNode):
934         (WebCore::HTMLConstructionSite::createElement):
935         (WebCore::HTMLConstructionSite::createHTMLElement):
936
937 2010-09-08  Gabor Loki  <loki@webkit.org>
938
939         Reviewed by Andreas Kling.
940
941         Fix increases required alignment of target type warning on ARM
942         https://bugs.webkit.org/show_bug.cgi?id=45301
943
944         No new tests needed.
945
946         * bindings/js/SerializedScriptValue.cpp:
947         (WebCore::CloneDeserializer::readLittleEndian):
948         (WebCore::CloneDeserializer::readString):
949         * plugins/PluginDatabase.cpp:
950         (WebCore::readTime):
951
952 2010-09-08  Antonio Gomes  <agomes@rim.com>
953
954         Reviewed by Daniel Bates.
955
956         Make FocusController::focusedOrMainFrame method const
957         https://bugs.webkit.org/show_bug.cgi?id=45406
958
959         No new tests.
960
961         * page/FocusController.cpp:
962         (WebCore::FocusController::focusedOrMainFrame):
963         * page/FocusController.h:
964
965 2010-09-08  Jian Li  <jianli@chromium.org>
966
967         Reviewed by Darin Adler.
968
969         Fix a problem in createCanonicalUUIDString that causes the last digit
970         missing on Linux.
971         https://bugs.webkit.org/show_bug.cgi?id=45412
972
973         This is caused by not including the final null character into the count
974         that is provided to fgets.
975
976         This is covered by the existing test: send-form-data-with-sliced-file.html.
977
978         * platform/UUID.cpp:
979         (WebCore::createCanonicalUUIDString):
980
981 2010-09-08  Nico Weber  <thakis@chromium.org>
982
983         Reviewed by Dimitri Glazkov.
984
985         chromium/mac: Fix overrelease in ImageLayerChromium
986         https://bugs.webkit.org/show_bug.cgi?id=45360
987
988         Only release colorSpace if we created it.
989
990         * platform/graphics/chromium/ImageLayerChromium.cpp:
991         (WebCore::ImageLayerChromium::updateContents):
992
993 2010-09-08  Robert Hogan  <robert@webkit.org>
994
995         Reviewed by Antonio Gomes.
996
997         Remove some unnecessary duplicate calls to string functions
998
999         https://bugs.webkit.org/show_bug.cgi?id=45314
1000
1001         * platform/network/curl/ResourceHandleManager.cpp:
1002         (WebCore::parseDataUrl):
1003         * websockets/WebSocketChannel.cpp:
1004         (WebCore::WebSocketChannel::send):
1005
1006 2010-09-08  Peter Kasting  <pkasting@google.com>
1007
1008         Not reviewed, fallout from http://trac.webkit.org/changeset/67001
1009
1010         Fix compile failures and add svn:eol-style on two new files.
1011
1012         * platform/ScrollAnimator.h: Added property svn:eol-style.
1013         * platform/ScrollAnimatorWin.cpp: Added property svn:eol-style.
1014         * platform/win/PopupMenuWin.cpp: Fix compile errors.
1015         (WebCore::PopupMenuWin::scrollToRevealSelection):
1016         (WebCore::PopupMenuWin::scrollSize):
1017
1018 2010-09-08  James Robinson  <jamesr@chromium.org>
1019
1020         Reviewed by Kenneth Russell.
1021
1022         [chromium] Force canvas 2d draw calls to happen in software if a gradient, pattern, shadow, or clip are active
1023         https://bugs.webkit.org/show_bug.cgi?id=45405
1024
1025         This forces all draw calls to happen in software instead of hardware if there is a fill pattern, gradient,
1026         shadow, or clip applied; at least until we can handle these in hardware.  Otherwise the pattern/gradient/etc
1027         is completely ignored by the hardware drawing routine and we render incorrectly.
1028
1029         The test is slightly convervative - for example it will force drawImage() calls to happen in software if a
1030         fill gradient is set even though it's irrelevant.  This doesn't seem to be an issue in practice and we
1031         can tighten the checks later if needed.
1032
1033         Tested by fast/canvas/canvas-incremental-repaint.html.
1034
1035         * platform/graphics/skia/GraphicsContextSkia.cpp:
1036         (WebCore::GraphicsContext::canvasClip):
1037         (WebCore::GraphicsContext::fillRect):
1038         * platform/graphics/skia/ImageBufferSkia.cpp:
1039         (WebCore::ImageBuffer::draw):
1040         * platform/graphics/skia/ImageSkia.cpp:
1041         (WebCore::BitmapImage::draw):
1042         (WebCore::BitmapImageSingleFrameSkia::draw):
1043         * platform/graphics/skia/PlatformContextSkia.cpp:
1044         (WebCore::PlatformContextSkia::State::State):
1045         (WebCore::PlatformContextSkia::canvasClipPath):
1046         (WebCore::PlatformContextSkia::canAccelerate):
1047         * platform/graphics/skia/PlatformContextSkia.h:
1048
1049 2010-09-08  Peter Kasting  <pkasting@google.com>
1050
1051         Reviewed by David Hyatt.
1052
1053         Add smooth scrolling framework, and a Windows implementation.
1054         https://bugs.webkit.org/show_bug.cgi?id=32356
1055
1056         * CMakeLists.txt: Add ScrollAnimator.
1057         * GNUmakefile.am: Add ScrollAnimator.
1058         * WebCore.gyp/WebCore.gyp: Add Windows ScrollAnimator.
1059         * WebCore.gypi: Add ScrollAnimator.
1060         * WebCore.pro: Add ScrollAnimator.
1061         * WebCore.vcproj/WebCore.vcproj: Add ScrollAnimator.
1062         * WebCore.xcodeproj/project.pbxproj: Add ScrollAnimator.
1063         * platform/ScrollAnimator.cpp: Added base implementation that does no animation.
1064         (WebCore::ScrollAnimator::create):
1065         (WebCore::ScrollAnimator::scroll):
1066         (WebCore::ScrollAnimator::setScrollPositionAndStopAnimation):
1067         * platform/ScrollAnimator.h: Added base implementation that does no animation.
1068         (WebCore::ScrollAnimator::ScrollAnimator):
1069         (WebCore::ScrollAnimator::~ScrollAnimator):
1070         * platform/ScrollAnimatorWin.cpp: Added Windows subclass that animates scrolls.
1071         (WebCore::ScrollAnimator::create):
1072         (WebCore::ScrollAnimatorWin::PerAxisData::PerAxisData):
1073         (WebCore::ScrollAnimatorWin::ScrollAnimatorWin):
1074         (WebCore::ScrollAnimatorWin::~ScrollAnimatorWin):
1075         (WebCore::ScrollAnimatorWin::scroll):
1076         (WebCore::ScrollAnimatorWin::setScrollPositionAndStopAnimation):
1077         (WebCore::ScrollAnimatorWin::accelerationTime):
1078         (WebCore::ScrollAnimatorWin::animationTimerFired):
1079         (WebCore::ScrollAnimatorWin::stopAnimationTimerIfNeeded):
1080         (WebCore::ScrollAnimatorWin::animateScroll):
1081         * platform/ScrollAnimatorWin.h: Added Windows subclass that animates scrolls.
1082         * platform/ScrollView.cpp: Implement new ScrollbarClient functions.  Allow wheel scrolls to be animated.
1083         (WebCore::ScrollView::scrollSize):
1084         (WebCore::ScrollView::setScrollOffsetFromAnimation):
1085         (WebCore::ScrollView::updateScrollbars):
1086         (WebCore::ScrollView::wheelEvent):
1087         * platform/ScrollView.h: Implement new ScrollbarClient functions.
1088         * platform/Scrollbar.cpp: Allow ScrollAnimator to handle scrolls if present.
1089         (WebCore::Scrollbar::setValue):
1090         (WebCore::Scrollbar::scroll):
1091         (WebCore::Scrollbar::moveThumb):
1092         (WebCore::Scrollbar::setCurrentPos):
1093         (WebCore::Scrollbar::mouseMoved):
1094         * platform/Scrollbar.h:
1095         * platform/ScrollbarClient.cpp: Added to avoid having to make ScrollAnimator.h non-private.
1096         (WebCore::ScrollbarClient::ScrollbarClient):
1097         (WebCore::ScrollbarClient::~ScrollbarClient):
1098         (WebCore::ScrollbarClient::scroll):
1099         (WebCore::ScrollbarClient::setScrollPositionAndStopAnimation):
1100         * platform/ScrollbarClient.h: Add hooks for ScrollAnimator.
1101         (WebCore::ScrollbarClient::convertFromScrollbarToContainingView):
1102         (WebCore::ScrollbarClient::convertFromContainingViewToScrollbar):
1103         * platform/gtk/MainFrameScrollbarGtk.cpp:
1104         (MainFrameScrollbarGtk::gtkValueChanged):
1105         * platform/qt/ScrollbarQt.cpp: Use scroll() in preference to setValue().
1106         (WebCore::Scrollbar::contextMenu):
1107         * platform/win/PopupMenuWin.cpp: Implement new ScrollbarClient functions.
1108         (WebCore::PopupMenuWin::scrollSize):
1109         (WebCore::PopupMenuWin::setScrollOffsetFromAnimation):
1110         * platform/win/PopupMenuWin.h: Implement new ScrollbarClient functions.
1111         * rendering/RenderDataGrid.cpp: Implement new ScrollbarClient functions.
1112         (WebCore::RenderDataGrid::scrollSize):
1113         (WebCore::RenderDataGrid::setScrollOffsetFromAnimation):
1114         * rendering/RenderDataGrid.h: Implement new ScrollbarClient functions.
1115         * rendering/RenderLayer.cpp: Implement new ScrollbarClient functions.
1116         (WebCore::RenderLayer::scrollToOffset):
1117         (WebCore::RenderLayer::scrollSize):
1118         (WebCore::RenderLayer::setScrollOffsetFromAnimation):
1119         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
1120         * rendering/RenderLayer.h: Implement new ScrollbarClient functions.
1121         * rendering/RenderListBox.cpp: Implement new ScrollbarClient functions.
1122         (WebCore::RenderListBox::scrollToRevealElementAtListIndex):
1123         (WebCore::RenderListBox::scrollSize):
1124         (WebCore::RenderListBox::setScrollOffsetFromAnimation):
1125         (WebCore::RenderListBox::setScrollTop):
1126         * rendering/RenderListBox.h: Implement new ScrollbarClient functions.
1127
1128 2010-09-08  Ryosuke Niwa  <rniwa@webkit.org>
1129
1130         Reviewed by Tony Chang.
1131
1132         applyInlineStyleToRange needs cleanup
1133         https://bugs.webkit.org/show_bug.cgi?id=45008
1134
1135         Removed rangeIsEmpty and extracted the entire loop into applyInlineStyleToNodeRange.
1136         applyInlineStyleToRange is now a wrapper that fixes range and passes it on to applyInlineStyleToNodeRange.
1137
1138         No new tests are added since this is a cleanup.
1139
1140         * editing/ApplyStyleCommand.cpp:
1141         (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Cleaned up.
1142         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): Extracted from applyInlineStyleToRange.
1143         * editing/ApplyStyleCommand.h:
1144
1145 2010-09-08  Andy Estes  <aestes@apple.com>
1146
1147         Rubber-stamped by Darin Adler.
1148
1149         Incorporate additional feedback from
1150         https://bugs.webkit.org/show_bug.cgi?id=45364.
1151
1152         * html/HTMLObjectElement.cpp:
1153         (WebCore::HTMLObjectElement::parametersForPlugin): Rename urlParam to
1154         urlParameter.
1155         * loader/SubframeLoader.h: Add argument names to the definition of
1156         SubframeLoader::resourceWillUsePlugin().
1157
1158 2010-09-07  Oliver Hunt  <oliver@apple.com>
1159
1160         Reviewed by Anders Carlsson.
1161
1162         Support SerializedScriptValue in WebKit2
1163         https://bugs.webkit.org/show_bug.cgi?id=45340
1164
1165         Add a new constructor that allows WebKit2 to create a SerializedScriptValue
1166         directly from serialized data.
1167
1168         * WebCore.exp.in:
1169         * bindings/js/SerializedScriptValue.h:
1170         (WebCore::SerializedScriptValue::adopt):
1171         (WebCore::SerializedScriptValue::data):
1172
1173 2010-09-08  Andy Estes  <aestes@apple.com>
1174
1175         Reviewed by Eric Carlson.
1176
1177         Fallback content should be rendered when an <object> doesn't specify a
1178         data, type or classid attribute.
1179         https://bugs.webkit.org/show_bug.cgi?id=45364
1180         <rdar://problem/8375816>
1181
1182         HTML5 says that if no data or type attribute is specified on an <object>,
1183         fallback content should be rendered. However, WebKit has traditionally
1184         supported specifying a URL and MIME type in <param> elements. 
1185
1186         To more closely match the spec while maintaining compatibility with
1187         content that relied on our old behavior, we will continue to load
1188         a resource specified by <param> elements if we can determine a priori
1189         that it will be handled by a plug-in. 
1190
1191         If we can't make this determination, and the <object> element has no
1192         "data" or "type" attribute, the <param> elements will be ignored and
1193         fallback content will be rendered. Otherwise, there is no change in
1194         behavior.
1195
1196         * html/HTMLObjectElement.cpp:
1197         (WebCore::HTMLObjectElement::parametersForPlugin): If an empty url is
1198         passed to this function and a <param> exists that specifies a url that
1199         references a plug-in resource, set it to url, making it the url that
1200         will be loaded by the <object> element.
1201         (WebCore::HTMLObjectElement::updateWidget): If no type attribute was
1202         specified, but there is a classid attribute, try to map the classid to
1203         a MIME type. This needs to be done before calling
1204         HTMLObjectElement::parametersForPlugin().
1205         * loader/SubframeLoader.cpp:
1206         (WebCore::SubframeLoader::resourceWillUsePlugin): Make a public method
1207         that determines if a resource will load a plug-in based on its url and
1208         MIME type. This is equivalent to calling
1209         SubframeLoader::shouldUsePlugin(), but does not burden the caller with
1210         the details of fallback content.
1211         * loader/SubframeLoader.h:
1212
1213 2010-09-08  Pavel Podivilov  <podivilov@chromium.org>
1214
1215         Reviewed by Yury Semikhatsky.
1216
1217         Web Inspector: add breakpoints to source frame after content is loaded.
1218         https://bugs.webkit.org/show_bug.cgi?id=43056
1219
1220         * inspector/front-end/ScriptsPanel.js:
1221         (WebInspector.ScriptsPanel.prototype._resourceLoadingFinished):
1222         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
1223         * inspector/front-end/SourceView.js:
1224         (WebInspector.SourceView.prototype._contentLoaded):
1225
1226 2010-09-08  Andreas Kling  <andreas.kling@nokia.com>
1227
1228         Reviewed by Kenneth Rohde Christiansen.
1229
1230         Canvas: Remove unnecessary null-check of canvas() in getImageData()
1231         https://bugs.webkit.org/show_bug.cgi?id=45394
1232
1233         canvas() is already dereferenced earlier in the function so there is
1234         no use in checking it for null later.
1235
1236         * html/canvas/CanvasRenderingContext2D.cpp:
1237         (WebCore::CanvasRenderingContext2D::getImageData):
1238
1239 2010-09-08  Philippe Normand  <pnormand@igalia.com>
1240
1241         Reviewed by Eric Carlson.
1242
1243         [GStreamer] cache media duration in READY instead of PLAYING
1244         https://bugs.webkit.org/show_bug.cgi?id=39053
1245
1246         New cacheDuration private method used to in updateStates() and
1247         durationChanged().
1248
1249         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1250         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
1251         (WebCore::MediaPlayerPrivateGStreamer::cacheDuration):
1252         (WebCore::MediaPlayerPrivateGStreamer::durationChanged):
1253         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1254
1255 2010-09-08  Martin Robinson  <mrobinson@igalia.com>
1256
1257         Reviewed by Xan Lopez.
1258
1259         [GTK] Need a WebSocket implementation
1260         https://bugs.webkit.org/show_bug.cgi?id=45197
1261
1262         Add a GIO-based WebSocket implementation. This does not yet support
1263         SSL sockets or proxies, but these should be possible to add as support
1264         arrives in GLib/GIO for them.
1265
1266         * platform/network/soup/SocketStreamHandle.h:
1267         * platform/network/soup/SocketStreamHandleSoup.cpp: Add a GIO-based WebSocket implementation.
1268         (WebCore::isActiveHandle): Added.
1269         (WebCore::deactivateHandle): Added.
1270         (WebCore::SocketStreamHandle::SocketStreamHandle): Filled out stub.
1271         (WebCore::SocketStreamHandle::~SocketStreamHandle): Ditto.
1272         (WebCore::SocketStreamHandle::connected): Added.
1273         (WebCore::SocketStreamHandle::readBytes): Added.
1274         (WebCore::SocketStreamHandle::writeReady): Added.
1275         (WebCore::SocketStreamHandle::platformSend): Filled out stub.
1276         (WebCore::SocketStreamHandle::platformClose): Filled out stub.
1277         (WebCore::SocketStreamHandle::beginWaitingForSocketWritability): Added.
1278         (WebCore::SocketStreamHandle::stopWaitingForSocketWritability):
1279         (WebCore::connectedCallback): Added.
1280         (WebCore::readReadyCallback): Added.
1281         (WebCore::writeReadyCallback): Added.
1282
1283 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
1284
1285         Reviewed by Dirk Schulze.
1286
1287         [Cairo] Actually use the antialias parameter of GraphicsContext::clipConvexPolygon
1288         https://bugs.webkit.org/show_bug.cgi?id=45355
1289
1290         r63864 added an additional boolean parameter to GraphicsContext::clipConvexPolygon,
1291         which determines whether or not to render the render the clip with anti-aliasing
1292         or not. The Cairo implementation now uses that parameter to determine the argument
1293         to pass to cairo_set_antialias(...) when clipping.
1294
1295         Test: This is tested by many tests in fast/borders.
1296
1297         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1298         (WebCore::GraphicsContext::clipConvexPolygon): Actually use the boolean antialias parameter.
1299
1300 2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1301
1302         Reviewed by Kenneth Rohde Christiansen.
1303
1304         [EFL] Support to enable HTML5's Video based on gstreamer in WebKit-EFL
1305         https://bugs.webkit.org/show_bug.cgi?id=44098
1306
1307         To support video of HTML5 based on gstreamer, add files regarding gstreamer to
1308         CMakeListsEfl.txt.
1309
1310         * CMakeListsEfl.txt:
1311
1312 2010-09-08  Jan E Hanssen  <jhanssen@sencha.com>
1313
1314         Reviewed by Dirk Schulze.
1315
1316         [Qt] PathQt should use the QPainterPath functionality for calculations
1317         https://bugs.webkit.org/show_bug.cgi?id=43837
1318
1319         Change PathQt to use the built-in functionality of QPainterPath for
1320         calculating length(), pointAtLength() and normalAngleAtLength().
1321
1322         * platform/graphics/Path.cpp:
1323         * platform/graphics/qt/PathQt.cpp:
1324         (WebCore::Path::length):
1325         (WebCore::Path::pointAtLength):
1326         (WebCore::Path::normalAngleAtLength):
1327
1328 2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1329
1330         Reviewed by Dirk Schulze.
1331
1332         [WML] Remove create() function in WMLTaskElement because of build break.
1333         https://bugs.webkit.org/show_bug.cgi?id=44954
1334
1335         Remove create() function in WMLTaskElement.cpp because of build breaks.
1336
1337         * wml/WMLTaskElement.cpp:
1338         * wml/WMLTaskElement.h:
1339
1340 2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1341
1342         Reviewed by Dirk Schulze.
1343
1344         [WML] Add create functions to WML.
1345         https://bugs.webkit.org/show_bug.cgi?id=44950
1346
1347         There are missing definitions of create function in WML area. 
1348         So, there are build breaks when enabling WML. The create functions and the construction 
1349         are added. In addition, a style error and duplicated adoptRef usage are fixed.
1350
1351         * wml/WMLDocument.h:
1352         (WebCore::WMLDocument::create):
1353         * wml/WMLFormControlElement.h:
1354         * wml/WMLIntrinsicEvent.cpp:
1355         (WebCore::WMLIntrinsicEvent::WMLIntrinsicEvent):
1356         * wml/WMLIntrinsicEvent.h:
1357
1358 2010-09-08  Nico Weber  <thakis@chromium.org>
1359
1360         Reviewed by Kenneth Russell.
1361
1362         chromium/mac: Fix crash with compositor due to missing current NSGraphicsContext
1363         https://bugs.webkit.org/show_bug.cgi?id=45354
1364
1365         * platform/graphics/chromium/ContentLayerChromium.cpp:
1366         (WebCore::ContentLayerChromium::updateContents): Set a current local context.
1367
1368 2010-09-08  Justin Schuh  <jschuh@chromium.org>
1369
1370         Reviewed by Nikolas Zimmermann.
1371
1372         NULL deref when use target is reset, then set to display:none
1373         https://bugs.webkit.org/show_bug.cgi?id=45345
1374
1375         Move the NULL check on shadowRoot earlier in SVGUseElement::recalcStyle
1376
1377         Test: svg/custom/use-display-none.svg
1378
1379         * svg/SVGUseElement.cpp:
1380         (WebCore::SVGUseElement::recalcStyle):
1381
1382 2010-08-30  Maciej Stachowiak  <mjs@apple.com>
1383
1384         Reviewed by Darin Adler.
1385
1386         Handle MediaQueryExp memory management exclusively with smart pointers
1387         https://bugs.webkit.org/show_bug.cgi?id=44874
1388
1389         Gace MediaQueryExp a create function, made the constructor private, and followed
1390         the implications. The one tricky bit was using a non-copying sort to sort
1391         the Vector<OwnPtr<MediaQueryExp> > in the MediaQuery constructor.
1392         
1393         * ForwardingHeaders/wtf/NonCopyingSort.h: Added.
1394         * css/CSSGrammar.y:
1395         * css/CSSParser.cpp:
1396         (WebCore::CSSParser::~CSSParser):
1397         (WebCore::CSSParser::createFloatingMediaQueryExp):
1398         (WebCore::CSSParser::createFloatingMediaQueryExpList):
1399         (WebCore::CSSParser::sinkFloatingMediaQueryExpList):
1400         (WebCore::CSSParser::createFloatingMediaQuery):
1401         * css/CSSParser.h:
1402         * css/MediaList.cpp:
1403         * css/MediaQuery.cpp:
1404         (WebCore::expressionCompare):
1405         (WebCore::MediaQuery::MediaQuery):
1406         (WebCore::MediaQuery::~MediaQuery):
1407         * css/MediaQuery.h:
1408         (WebCore::MediaQuery::expressions):
1409         * css/MediaQueryEvaluator.cpp:
1410         (WebCore::MediaQueryEvaluator::eval):
1411         * css/MediaQueryExp.h:
1412         (WebCore::MediaQueryExp::create):
1413
1414 2010-09-08  Adam Barth  <abarth@webkit.org>
1415
1416         Reviewed by Maciej Stachowiak.
1417
1418         Remove unused member variable from DecodedDocumentParser
1419         https://bugs.webkit.org/show_bug.cgi?id=45379
1420
1421         This member variable isn't used because of the recent split of
1422         TextDocumentParser and TextViewSourceParser.
1423
1424         * dom/DecodedDataDocumentParser.cpp:
1425         (WebCore::DecodedDataDocumentParser::DecodedDataDocumentParser):
1426         * dom/DecodedDataDocumentParser.h:
1427         * dom/ScriptableDocumentParser.cpp:
1428         (WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
1429         * dom/ScriptableDocumentParser.h:
1430
1431 2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>
1432
1433         Reviewed by Andreas Kling.
1434
1435         Fix warning in rendering/RenderBlock.cpp.
1436         https://bugs.webkit.org/show_bug.cgi?id=45373
1437
1438         * rendering/RenderBlock.cpp:
1439         (WebCore::RenderBlock::hitTestColumns): Suggested parentheses added around && within ||
1440
1441 2010-09-08  Mario Sanchez Prada  <msanchez@igalia.com>
1442
1443         Reviewed by Martin Robinson.
1444
1445         [Gtk] A list item's number/bullet should not be a child of that list item
1446         https://bugs.webkit.org/show_bug.cgi?id=45190
1447
1448         Ignore list markers and prefix them to the text for the item
1449
1450         * accessibility/gtk/AccessibilityObjectAtk.cpp:
1451         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
1452         Make list markers ignore accessibility for the GTK port.
1453         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1454         (webkit_accessible_text_get_text): Prefix the text of a marker
1455         along with the accessible text for its list item's AtkObject
1456
1457 2010-09-08  Adam Barth  <abarth@webkit.org>
1458
1459         Rubber-stamped by Eric Seidel.
1460
1461         Rename DocLoader to CachedResourceLoader because that's what it does.
1462
1463         * Android.mk:
1464         * CMakeLists.txt:
1465         * GNUmakefile.am:
1466         * WebCore.gypi:
1467         * WebCore.pro:
1468         * WebCore.vcproj/WebCore.vcproj:
1469         * WebCore.xcodeproj/project.pbxproj:
1470         * css/CSSCursorImageValue.cpp:
1471         (WebCore::CSSCursorImageValue::cachedImage):
1472         * css/CSSCursorImageValue.h:
1473         * css/CSSFontFaceSource.cpp:
1474         (WebCore::CSSFontFaceSource::getFontData):
1475         * css/CSSFontSelector.cpp:
1476         (WebCore::CSSFontSelector::cachedResourceLoader):
1477         (WebCore::CSSFontSelector::addFontFaceRule):
1478         * css/CSSFontSelector.h:
1479         * css/CSSImageValue.cpp:
1480         (WebCore::CSSImageValue::cachedImage):
1481         * css/CSSImageValue.h:
1482         * css/CSSImportRule.cpp:
1483         (WebCore::CSSImportRule::insertedIntoParent):
1484         * css/CSSStyleSelector.cpp:
1485         (WebCore::CSSStyleSelector::loadPendingImages):
1486         * css/CSSStyleSheet.h:
1487         * dom/Document.cpp:
1488         (WebCore::Document::Document):
1489         (WebCore::Document::~Document):
1490         (WebCore::Document::implicitClose):
1491         * dom/Document.h:
1492         (WebCore::Document::cachedResourceLoader):
1493         * dom/ProcessingInstruction.cpp:
1494         (WebCore::ProcessingInstruction::checkStyleSheet):
1495         * dom/ScriptElement.cpp:
1496         (WebCore::ScriptElementData::requestScript):
1497         * dom/XMLDocumentParser.cpp:
1498         * dom/XMLDocumentParser.h:
1499         * dom/XMLDocumentParserLibxml2.cpp:
1500         (WebCore::matchFunc):
1501         (WebCore::shouldAllowExternalLoad):
1502         (WebCore::openFunc):
1503         (WebCore::XMLDocumentParser::doWrite):
1504         (WebCore::XMLDocumentParser::endElementNs):
1505         (WebCore::XMLDocumentParser::initializeParserContext):
1506         (WebCore::XMLDocumentParser::doEnd):
1507         (WebCore::xmlDocPtrForString):
1508         * dom/XMLDocumentParserQt.cpp:
1509         (WebCore::XMLDocumentParser::parseEndElement):
1510         * dom/XMLDocumentParserScope.cpp:
1511         (WebCore::XMLDocumentParserScope::XMLDocumentParserScope):
1512         (WebCore::XMLDocumentParserScope::~XMLDocumentParserScope):
1513         * dom/XMLDocumentParserScope.h:
1514         * editing/Editor.cpp:
1515         (WebCore::Editor::paste):
1516         * editing/mac/EditorMac.mm:
1517         (WebCore::Editor::paste):
1518         * html/HTMLLinkElement.cpp:
1519         (WebCore::HTMLLinkElement::process):
1520         * html/parser/CSSPreloadScanner.cpp:
1521         (WebCore::CSSPreloadScanner::emitRule):
1522         * html/parser/HTMLPreloadScanner.cpp:
1523         (WebCore::HTMLNames::PreloadTask::preload):
1524         * html/parser/HTMLScriptRunner.cpp:
1525         (WebCore::HTMLScriptRunner::requestPendingScript):
1526         * inspector/InspectorResource.cpp:
1527         (WebCore::InspectorResource::cachedResource):
1528         * loader/Cache.cpp:
1529         (WebCore::Cache::requestResource):
1530         (WebCore::Cache::requestUserCSSStyleSheet):
1531         (WebCore::Cache::revalidateResource):
1532         (WebCore::Cache::addCachedResourceLoader):
1533         (WebCore::Cache::removeCachedResourceLoader):
1534         * loader/Cache.h:
1535         * loader/CachedCSSStyleSheet.h:
1536         * loader/CachedFont.cpp:
1537         (WebCore::CachedFont::load):
1538         (WebCore::CachedFont::beginLoadIfNeeded):
1539         * loader/CachedFont.h:
1540         * loader/CachedImage.cpp:
1541         (WebCore::CachedImage::load):
1542         (WebCore::CachedImage::maximumDecodedImageSize):
1543         * loader/CachedImage.h:
1544         * loader/CachedResource.cpp:
1545         (WebCore::CachedResource::CachedResource):
1546         (WebCore::CachedResource::~CachedResource):
1547         (WebCore::CachedResource::load):
1548         * loader/CachedResource.h:
1549         (WebCore::CachedResource::load):
1550         (WebCore::CachedResource::setCachedResourceLoader):
1551         * loader/CachedResourceLoader.cpp: Copied from WebCore/loader/DocLoader.cpp.
1552         (WebCore::CachedResourceLoader::CachedResourceLoader):
1553         (WebCore::CachedResourceLoader::~CachedResourceLoader):
1554         (WebCore::CachedResourceLoader::frame):
1555         (WebCore::CachedResourceLoader::checkForReload):
1556         (WebCore::CachedResourceLoader::requestImage):
1557         (WebCore::CachedResourceLoader::requestFont):
1558         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
1559         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
1560         (WebCore::CachedResourceLoader::requestScript):
1561         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
1562         (WebCore::CachedResourceLoader::requestLinkPrefetch):
1563         (WebCore::CachedResourceLoader::canRequest):
1564         (WebCore::CachedResourceLoader::requestResource):
1565         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
1566         (WebCore::CachedResourceLoader::setAutoLoadImages):
1567         (WebCore::CachedResourceLoader::cachePolicy):
1568         (WebCore::CachedResourceLoader::removeCachedResource):
1569         (WebCore::CachedResourceLoader::setLoadInProgress):
1570         (WebCore::CachedResourceLoader::checkCacheObjectStatus):
1571         (WebCore::CachedResourceLoader::incrementRequestCount):
1572         (WebCore::CachedResourceLoader::decrementRequestCount):
1573         (WebCore::CachedResourceLoader::requestCount):
1574         (WebCore::CachedResourceLoader::preload):
1575         (WebCore::CachedResourceLoader::checkForPendingPreloads):
1576         (WebCore::CachedResourceLoader::requestPreload):
1577         (WebCore::CachedResourceLoader::clearPreloads):
1578         (WebCore::CachedResourceLoader::clearPendingPreloads):
1579         (WebCore::CachedResourceLoader::printPreloadStats):
1580         * loader/CachedResourceLoader.h: Copied from WebCore/loader/DocLoader.h.
1581         * loader/CachedScript.h:
1582         * loader/CachedXSLStyleSheet.h:
1583         * loader/DocLoader.cpp: Removed.
1584         * loader/DocLoader.h: Removed.
1585         * loader/DocumentLoader.cpp:
1586         (WebCore::DocumentLoader::isLoadingInAPISense):
1587         (WebCore::DocumentLoader::subresource):
1588         (WebCore::DocumentLoader::getSubresources):
1589         * loader/FrameLoader.cpp:
1590         (WebCore::numRequests):
1591         (WebCore::FrameLoader::stopLoading):
1592         (WebCore::FrameLoader::didBeginDocument):
1593         * loader/HistoryController.cpp:
1594         (WebCore::HistoryController::createItem):
1595         * loader/ImageLoader.cpp:
1596         (WebCore::ImageLoader::updateFromElement):
1597         * loader/Request.cpp:
1598         (WebCore::Request::Request):
1599         * loader/Request.h:
1600         (WebCore::Request::cachedResourceLoader):
1601         * loader/loader.cpp:
1602         (WebCore::Loader::load):
1603         (WebCore::Loader::cancelRequests):
1604         (WebCore::Loader::Host::servePendingRequests):
1605         (WebCore::Loader::Host::didFinishLoading):
1606         (WebCore::Loader::Host::didFail):
1607         (WebCore::Loader::Host::didReceiveResponse):
1608         (WebCore::Loader::Host::cancelPendingRequests):
1609         (WebCore::Loader::Host::cancelRequests):
1610         * loader/loader.h:
1611         * page/DragController.cpp:
1612         (WebCore::DragController::concludeEditDrag):
1613         * page/Frame.cpp:
1614         * page/FrameView.cpp:
1615         (WebCore::FrameView::checkStopDelayingDeferredRepaints):
1616         (WebCore::FrameView::updateDeferredRepaintDelay):
1617         * page/Settings.cpp:
1618         (WebCore::setLoadsImagesAutomaticallyInAllFrames):
1619         * platform/android/TemporaryLinkStubs.cpp:
1620         (WebCore::CheckCacheObjectStatus):
1621         * platform/network/android/ResourceHandleAndroid.cpp:
1622         (WebCore::ResourceHandle::start):
1623         * platform/network/cf/ResourceHandleCFNet.cpp:
1624         * platform/network/curl/ResourceHandleCurl.cpp:
1625         * platform/network/mac/ResourceHandleMac.mm:
1626         * platform/network/qt/ResourceHandleQt.cpp:
1627         * platform/network/soup/ResourceHandleSoup.cpp:
1628         * platform/network/win/ResourceHandleWin.cpp:
1629         * svg/SVGFEImageElement.cpp:
1630         (WebCore::SVGFEImageElement::requestImageResource):
1631         * svg/SVGFontFaceUriElement.cpp:
1632         (WebCore::SVGFontFaceUriElement::loadFont):
1633         * workers/Worker.cpp:
1634         * xml/XSLImportRule.cpp:
1635         (WebCore::XSLImportRule::loadSheet):
1636         * xml/XSLStyleSheet.h:
1637         * xml/XSLStyleSheetLibxslt.cpp:
1638         (WebCore::XSLStyleSheet::cachedResourceLoader):
1639         (WebCore::XSLStyleSheet::parseString):
1640         * xml/XSLStyleSheetQt.cpp:
1641         (WebCore::XSLStyleSheet::cachedResourceLoader):
1642         * xml/XSLTProcessor.cpp:
1643         * xml/XSLTProcessorLibxslt.cpp:
1644         (WebCore::docLoaderFunc):
1645         (WebCore::setXSLTLoadCallBack):
1646         (WebCore::xmlDocPtrFromNode):
1647         (WebCore::XSLTProcessor::transformToString):
1648
1649 2010-09-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1650
1651         Reviewed by Eric Carlson.
1652
1653         Add mediaPlayerPlaybackStateChanged to MediaPlayerClient
1654
1655         https://bugs.webkit.org/show_bug.cgi?id=45263
1656
1657         The platform backend may change state, for example as a result
1658         of an external plugin controlling the backend, so we need to
1659         react to this situation by syncing up the WebCore state with the
1660         platform backend.
1661
1662         We call playInternal()/pauseInternal() depending on the backend
1663         state, to trigger the corresponding DOM events to match the state.
1664
1665         updatePlayState() is then refactored to take into account the
1666         situation where the backend is already in the correct state but
1667         WebCore is not, so that we update the playback progress timer
1668         and set m_playing correctly.
1669
1670         updatePlayState() changes Should be covered by existing tests.
1671
1672         * html/HTMLMediaElement.cpp:
1673         (WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):
1674         (WebCore::HTMLMediaElement::updatePlayState):
1675         * html/HTMLMediaElement.h:
1676         * platform/graphics/MediaPlayer.cpp:
1677         (WebCore::MediaPlayer::playbackStateChanged):
1678         * platform/graphics/MediaPlayer.h:
1679         (WebCore::MediaPlayerClient::mediaPlayerPlaybackStateChanged):
1680
1681 2010-09-08  Adam Barth  <abarth@webkit.org>
1682
1683         Reviewed by Eric Seidel.
1684
1685         TextDocument doesn't belong in WebCore/loader
1686         https://bugs.webkit.org/show_bug.cgi?id=45346
1687
1688         TextDocument has nothing to do with loading.  It turns out that it
1689         should be in WebCore/html because TextDocument is actually a subclass
1690         of HTMLDocument (in quirks mode, no less).
1691
1692         * Android.mk:
1693         * CMakeLists.txt:
1694         * GNUmakefile.am:
1695         * WebCore.gypi:
1696         * WebCore.pro:
1697         * WebCore.vcproj/WebCore.vcproj:
1698         * WebCore.xcodeproj/project.pbxproj:
1699         * html/TextDocument.cpp: Renamed from WebCore/loader/TextDocument.cpp.
1700         (WebCore::TextDocument::TextDocument):
1701         (WebCore::TextDocument::createParser):
1702         * html/TextDocument.h: Renamed from WebCore/loader/TextDocument.h.
1703         (WebCore::TextDocument::create):
1704
1705 2010-09-08  Adam Barth  <abarth@webkit.org>
1706
1707         Reviewed by Eric Seidel.
1708
1709         Create TextViewSourceParser
1710         https://bugs.webkit.org/show_bug.cgi?id=45343
1711
1712         Rather than have the view source document set a flag on
1713         HTMLViewSourceParser to indicate whether we're parsing a text document,
1714         this patch creates a TextViewSourceParser for parsing text documents in
1715         view-source mode.  Like the TextDocumentParser, the
1716         TextViewSourceParser implements this functionality by subclassing its
1717         HTML counterpart.
1718
1719         * Android.mk:
1720         * CMakeLists.txt:
1721         * GNUmakefile.am:
1722         * WebCore.gypi:
1723         * WebCore.pro:
1724         * WebCore.vcproj/WebCore.vcproj:
1725         * WebCore.xcodeproj/project.pbxproj:
1726         * html/HTMLViewSourceDocument.cpp:
1727         (WebCore::HTMLViewSourceDocument::createParser):
1728         * html/parser/HTMLViewSourceParser.cpp:
1729         * html/parser/HTMLViewSourceParser.h:
1730         (WebCore::HTMLViewSourceParser::tokenizer):
1731         * html/parser/TextViewSourceParser.cpp: Added.
1732         (WebCore::TextViewSourceParser::TextViewSourceParser):
1733         (WebCore::TextViewSourceParser::~TextViewSourceParser):
1734         * html/parser/TextViewSourceParser.h: Added.
1735         (WebCore::TextViewSourceParser::create):
1736
1737 2010-09-08  Adam Barth  <abarth@webkit.org>
1738
1739         Reviewed by Darin Adler.
1740
1741         Move HTMLInputStream to WebCore/html/parser
1742         https://bugs.webkit.org/show_bug.cgi?id=45339
1743
1744         I forgot to move this file before.
1745
1746         * GNUmakefile.am:
1747         * WebCore.gypi:
1748         * WebCore.vcproj/WebCore.vcproj:
1749         * WebCore.xcodeproj/project.pbxproj:
1750         * html/parser/HTMLInputStream.h: Renamed from WebCore/html/HTMLInputStream.h.
1751         (WebCore::HTMLInputStream::HTMLInputStream):
1752         (WebCore::HTMLInputStream::appendToEnd):
1753         (WebCore::HTMLInputStream::insertAtCurrentInsertionPoint):
1754         (WebCore::HTMLInputStream::hasInsertionPoint):
1755         (WebCore::HTMLInputStream::markEndOfFile):
1756         (WebCore::HTMLInputStream::haveSeenEndOfFile):
1757         (WebCore::HTMLInputStream::current):
1758         (WebCore::HTMLInputStream::splitInto):
1759         (WebCore::HTMLInputStream::mergeFrom):
1760         (WebCore::InsertionPointRecord::InsertionPointRecord):
1761         (WebCore::InsertionPointRecord::~InsertionPointRecord):
1762
1763 2010-09-08  Adam Barth  <abarth@webkit.org>
1764
1765         Reviewed by Eric Seidel.
1766
1767         TextDocument should come in from the cold
1768         https://bugs.webkit.org/show_bug.cgi?id=45334
1769
1770         Previously, TextDocument reinvented the wheel to parse text.  This
1771         patch replaces TextDocument's hand-rolled parser with a parser built on
1772         the HTML parser infrustructure, which gives us that stuff for free.  I
1773         also disentangled TextDocument from HTMLViewSourceDocument.
1774
1775         In a future patch, I'll move TextDocument out of the "loader" directory.
1776
1777         * Android.mk:
1778         * CMakeLists.txt:
1779         * GNUmakefile.am:
1780         * WebCore.gypi:
1781         * WebCore.pro:
1782         * WebCore.vcproj/WebCore.vcproj:
1783         * WebCore.xcodeproj/project.pbxproj:
1784         * html/HTMLViewSourceDocument.cpp:
1785         (WebCore::HTMLViewSourceDocument::createParser):
1786         * html/HTMLViewSourceDocument.h:
1787         * html/parser/HTMLTreeBuilder.cpp:
1788         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
1789         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
1790         * html/parser/HTMLTreeBuilder.h:
1791         * html/parser/HTMLViewSourceParser.cpp:
1792         (WebCore::HTMLViewSourceParser::forcePlaintext):
1793         * html/parser/HTMLViewSourceParser.h:
1794         * html/parser/TextDocumentParser.cpp: Added.
1795         (WebCore::TextDocumentParser::TextDocumentParser):
1796         (WebCore::TextDocumentParser::~TextDocumentParser):
1797         (WebCore::TextDocumentParser::insertFakePreElement):
1798         * html/parser/TextDocumentParser.h: Added.
1799         (WebCore::TextDocumentParser::create):
1800         * loader/TextDocument.cpp:
1801         * loader/TextDocument.h:
1802
1803 2010-09-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1804
1805         Reviewed by Andreas Kling.
1806
1807         Implement MediaPlayerPrivate::platformMedia() for the Qt port
1808
1809         https://bugs.webkit.org/show_bug.cgi?id=45264
1810
1811         * platform/graphics/MediaPlayer.h:
1812         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
1813         (WebCore::MediaPlayerPrivate::platformMedia):
1814         * platform/graphics/qt/MediaPlayerPrivateQt.h:
1815
1816 2010-09-08  Zoltan Herczeg  <zherczeg@webkit.org>
1817
1818         Reviewed by Dirk Schulze.
1819
1820         An individual renderer should be assigned to each SVGFE*Element class
1821         https://bugs.webkit.org/show_bug.cgi?id=43954
1822
1823         RenderSVGResourceFilterPrimitive renderer is added to
1824         the project, and assigned to each object, which class is
1825         derived from SVGFilterPrimitiveStandardAttributes. The patch
1826         mainly contains build system changes, and it fixes one layout
1827         test in svg/dynamic-updates.
1828
1829         * Android.mk:
1830         * CMakeLists.txt:
1831         * GNUmakefile.am:
1832         * WebCore.gypi:
1833         * WebCore.pro:
1834         * WebCore.vcproj/WebCore.vcproj:
1835         * WebCore.xcodeproj/project.pbxproj:
1836         * rendering/RenderObject.h:
1837         (WebCore::RenderObject::isSVGResourceFilterPrimitive):
1838         * rendering/RenderSVGResourceFilterPrimitive.cpp: Added.
1839         (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive):
1840         * rendering/RenderSVGResourceFilterPrimitive.h: Added.
1841         (WebCore::RenderSVGResourceFilterPrimitive::isSVGResourceFilterPrimitive):
1842         * rendering/SVGRenderTreeAsText.cpp:
1843         (WebCore::writeSVGContainer):
1844         * svg/SVGFEDiffuseLightingElement.cpp:
1845         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
1846         * svg/SVGFELightElement.cpp:
1847         (WebCore::SVGFELightElement::svgAttributeChanged):
1848         (WebCore::SVGFELightElement::childrenChanged):
1849         * svg/SVGFEOffsetElement.cpp:
1850         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
1851         * svg/SVGFilterElement.h:
1852         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1853         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
1854         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
1855         (WebCore::SVGFilterPrimitiveStandardAttributes::createRenderer):
1856         * svg/SVGFilterPrimitiveStandardAttributes.h:
1857         (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate):
1858
1859 2010-09-07  Sam Weinig  <sam@webkit.org>
1860
1861         Reviewed by Dan Bernstein.
1862
1863         DatasetDOMStringMap does not have the right memory model
1864         https://bugs.webkit.org/show_bug.cgi?id=45358
1865
1866         Test: fast/dom/dataset-gc.html
1867
1868         * bindings/js/JSElementCustom.cpp:
1869         (WebCore::JSElement::markChildren):
1870         Mark the dataset if it exists.
1871
1872         * dom/Element.cpp:
1873         (WebCore::Element::optionalDataset):
1874         * dom/Element.h:
1875         Expose a way to get the dataset or null (depending on if anyone thing
1876         has forced its creation yet).
1877
1878 2010-09-07  Jan E Hanssen  <jhanssen@sencha.com>
1879
1880         Reviewed by Andreas Kling.
1881
1882         [Qt] Add a separate Path::closeCanvasSubpath() function for canvas paths
1883         https://bugs.webkit.org/show_bug.cgi?id=45331
1884
1885         This is needed due to an adverse effect of the fix in 44061 that causes
1886         certain paths not to be closed. This is not important for canvas paths
1887         but it is for SVG paths, so splitting up the code in a generic (SVG)
1888         case and one specialized for canvas.
1889
1890         Test: svg/dom/path-totalLength.html
1891
1892         * html/canvas/CanvasRenderingContext2D.cpp:
1893         (WebCore::CanvasRenderingContext2D::closePath):
1894         * platform/graphics/Path.h:
1895         (WebCore::Path::closeCanvasSubpath):
1896         * platform/graphics/qt/PathQt.cpp:
1897         (WebCore::Path::closeSubpath):
1898         (WebCore::Path::closeCanvasSubpath):
1899
1900 2010-09-07  Simon Fraser  <simon.fraser@apple.com>
1901
1902         Reviewed by Chris Marrin.
1903
1904         Transform animations always run in software now
1905         https://bugs.webkit.org/show_bug.cgi?id=45341
1906         
1907         After r66339 we always fell into software animation, because we
1908         failed to detect transform or opacity properties in the keyframes,
1909         so would send an empty list of values to the GraphicsLayer.
1910         
1911         Fixed by using CSSProperty values, rather than GraphicsLayer
1912         values, when detecting the presence of properties in the keyframes.
1913         
1914         Test: manual-tests/transition-accelerated.html
1915
1916         * rendering/RenderLayerBacking.cpp:
1917         (WebCore::RenderLayerBacking::startAnimation):
1918
1919 2010-09-07  Chris Rogers  <crogers@google.com>
1920
1921         Reviewed by Kenneth Russell.
1922
1923         audio engine: add FFTFrame files
1924         https://bugs.webkit.org/show_bug.cgi?id=34827
1925
1926         No new tests since audio API is not yet implemented.
1927
1928         * platform/audio/FFTFrame.cpp: Added.
1929         (WebCore::FFTFrame::doPaddedFFT):
1930         (WebCore::FFTFrame::createInterpolatedFrame):
1931         (WebCore::FFTFrame::interpolateFrequencyComponents):
1932         (WebCore::FFTFrame::extractAverageGroupDelay):
1933         (WebCore::FFTFrame::addConstantGroupDelay):
1934         (WebCore::FFTFrame::print):
1935         * platform/audio/FFTFrame.h: Added.
1936         (WebCore::FFTFrame::fftSize):
1937         (WebCore::FFTFrame::log2FFTSize):
1938         (WebCore::FFTFrame::dspSplitComplex):
1939         * platform/audio/mac/FFTFrameMac.cpp: Added.
1940         (WebCore::FFTFrame::FFTFrame):
1941         (WebCore::FFTFrame::~FFTFrame):
1942         (WebCore::FFTFrame::multiply):
1943         (WebCore::FFTFrame::doFFT):
1944         (WebCore::FFTFrame::doInverseFFT):
1945         (WebCore::FFTFrame::fftSetupForSize):
1946         (WebCore::FFTFrame::cleanup):
1947         (WebCore::FFTFrame::realData):
1948         (WebCore::FFTFrame::imagData):
1949
1950 2010-09-07  Brent Fulgham  <bfulgham@webkit.org>
1951
1952         Build fix, no review.
1953
1954         Provide stubs to allow WebKit.dll to build
1955         for the WinCairo port.
1956
1957         * platform/network/curl/ResourceRequest.h:
1958         (WebCore::ResourceRequest::ResourceRequest):
1959         * platform/network/curl/ResourceResponse.h:
1960         (WebCore::ResourceResponse::cfURLResponse):
1961
1962 2010-09-07  Chris Rogers  <crogers@google.com>
1963
1964         Reviewed by Kenneth Russell.
1965
1966         Add AudioArray.h
1967         https://bugs.webkit.org/show_bug.cgi?id=45204
1968
1969         No new tests since audio API is not yet implemented.
1970
1971         * platform/audio/AudioArray.h: Added.
1972         (WebCore::AudioArray::AudioArray):
1973         (WebCore::AudioArray::zero):
1974         (WebCore::AudioArray::zeroRange):
1975         (WebCore::AudioArray::copyToRange):
1976
1977 2010-09-07  Mihai Parparita  <mihaip@chromium.org>
1978
1979         Reviewed by Oliver Hunt.
1980
1981         pushState and replaceState do not clone RegExp objects correctly
1982         https://bugs.webkit.org/show_bug.cgi?id=44718
1983         
1984         Add RegExp support to the JSC implementation of SerializedScriptValue
1985         (it stores the pattern and flags read from a RegExpObject, and creates
1986         a new one on deserialization).
1987         
1988         Tests: fast/loader/stateobjects/pushstate-object-types.html 
1989
1990         * ForwardingHeaders/runtime/RegExp.h: Added.
1991         * ForwardingHeaders/runtime/RegExpObject.h: Added.
1992         * bindings/js/SerializedScriptValue.cpp:
1993         (WebCore::CloneSerializer::dumpIfTerminal):
1994         (WebCore::CloneDeserializer::readTerminal):
1995
1996 2010-09-07  James Robinson  <jamesr@chromium.org>
1997
1998         Reviewed by Kenneth Russell.
1999
2000         Fix compile errors in DrawingBuffer if USE(ACCELERATED_COMPOSITING) is not set
2001         https://bugs.webkit.org/show_bug.cgi?id=45324
2002
2003         Adds appropriate #if guards around code that has to deal directly with the compositor.
2004         DrawingBuffer can still be used without the compositor as an off-screen rendering
2005         region.
2006
2007         To test, compile without USE(ACCELERATED_COMPOSITING).
2008
2009         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2010         (WebCore::DrawingBuffer::~DrawingBuffer):
2011         (WebCore::DrawingBuffer::reset):
2012         * platform/graphics/gpu/DrawingBuffer.h:
2013
2014 2010-09-03  Joseph Pecoraro  <joepeck@webkit.org>
2015
2016         Reviewed by Darin Adler.
2017
2018         Provide a way to trigger a <select multiple> onchange event on changes
2019         https://bugs.webkit.org/show_bug.cgi?id=45192
2020
2021         Test: LayoutTests/platform/mac/fast/objc/dom-html-select-activate.html
2022
2023         This provides a way for a WebKit client using the Obj-C DOM bindings to
2024         trigger the "change" on a listbox select (<select multiple> or <select>
2025         with size > 1). This is because when a select is rendered as a listbox
2026         "change" events are triggered by mouse down events.
2027
2028         This adds -[DOMHTMLSelectElement _activateItemAtIndex:allowMultipleSelection:]
2029         to allow for handling multiple selections if the select element is a
2030         multi-select.
2031
2032         * bindings/objc/DOMHTML.mm:
2033         (-[DOMHTMLSelectElement _activateItemAtIndex:allowMultipleSelection:]):
2034         * bindings/objc/DOMPrivate.h: unified the Category name. Was "FormsAutocomplete" now all are "FormAutocomplete".
2035         * dom/SelectElement.h:
2036         * html/HTMLSelectElement.cpp:
2037         (WebCore::HTMLSelectElement::setSelectedIndexByUser): listboxs need to be treated specially to fire their "change" event.
2038         * html/HTMLSelectElement.h:
2039         * wml/WMLSelectElement.cpp:
2040         (WebCore::WMLSelectElement::setSelectedIndexByUser):
2041
2042 2010-09-07  Simon Fraser  <simon.fraser@apple.com>
2043
2044         Reviewed by Darin Adler.
2045
2046         Minor WKCACFLayerRenderer cleanup
2047         https://bugs.webkit.org/show_bug.cgi?id=45201
2048
2049         Call initD3DGeometry() from createRenderer, rather than duplicating the code.
2050
2051         No behavior changes.
2052
2053         * platform/graphics/win/WKCACFLayerRenderer.cpp:
2054         (WebCore::WKCACFLayerRenderer::createRenderer):
2055
2056 2010-09-07  Vangelis Kokkevis  <vangelis@chromium.org>
2057
2058         Reviewed by Darin Fisher.
2059
2060         [chromium] Reset the owner of PlatformLayer's once the GraphicsLayer they are associated with
2061         gets destroyed.
2062         https://bugs.webkit.org/show_bug.cgi?id=45329
2063
2064         Test: Fixes UI test failures downstream for all the Media tests when run on the buildbots (machines without GPUs).
2065
2066         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2067         (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
2068
2069 2010-09-07  Anders Carlsson  <andersca@apple.com>
2070
2071         Reviewed by Darin Adler.
2072
2073         <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
2074
2075         Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
2076
2077         * Configurations/Base.xcconfig:
2078
2079 2010-09-07  Abhishek Arya  <inferno@chromium.org>
2080
2081         Reviewed by Darin Adler.
2082
2083         Remove redundant bounds check in originalText(). Add bounds check
2084         to previousCharacter(). No need of start() > 0 check since m_start
2085         is unsigned and we already do start() null check inside function.
2086         https://bugs.webkit.org/show_bug.cgi?id=45303
2087
2088         Test: fast/text/one-letter-transform-crash.html
2089
2090         * rendering/RenderTextFragment.cpp:
2091         (WebCore::RenderTextFragment::originalText):
2092         (WebCore::RenderTextFragment::previousCharacter):
2093
2094 2010-09-07  Kenneth Russell  <kbr@google.com>
2095
2096         Reviewed by Dimitri Glazkov.
2097
2098         Regression in JPEG texture uploads on Mac OS X
2099         https://bugs.webkit.org/show_bug.cgi?id=45316
2100
2101         Fixed regression introduced in
2102         https://bugs.webkit.org/show_bug.cgi?id=44566 . Added regression
2103         test covering this case to gl-teximage.html in Khronos repository
2104         and synced test with WebKit's version.
2105
2106         * platform/graphics/cg/GraphicsContext3DCG.cpp:
2107         (WebCore::GraphicsContext3D::getImageData):
2108
2109 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
2110
2111         Add rendering/ColumnInfo.h to the sources list.
2112
2113         * GNUmakefile.am:
2114
2115 2010-09-07  David Hyatt  <hyatt@apple.com>
2116
2117         Reviewed by Beth Dakin.
2118
2119         https://bugs.webkit.org/show_bug.cgi?id=45317, encapsulate multi-column rectangle information.
2120
2121         * WebCore.xcodeproj/project.pbxproj:
2122         * rendering/ColumnInfo.h: Added.
2123         (WebCore::ColumnInfo::ColumnInfo):
2124         (WebCore::ColumnInfo::desiredColumnWidth):
2125         (WebCore::ColumnInfo::setDesiredColumnWidth):
2126         (WebCore::ColumnInfo::desiredColumnCount):
2127         (WebCore::ColumnInfo::setDesiredColumnCount):
2128         (WebCore::ColumnInfo::columnCount):
2129         (WebCore::ColumnInfo::columnRectAt):
2130         (WebCore::ColumnInfo::clearColumns):
2131         (WebCore::ColumnInfo::addColumnRect):
2132         * rendering/RenderBlock.cpp:
2133         (WebCore::RenderBlock::paintColumnRules):
2134         (WebCore::RenderBlock::paintColumnContents):
2135         (WebCore::RenderBlock::lowestPosition):
2136         (WebCore::RenderBlock::rightmostPosition):
2137         (WebCore::RenderBlock::leftmostPosition):
2138         (WebCore::RenderBlock::hitTestColumns):
2139         (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
2140         (WebCore::RenderBlock::desiredColumnWidth):
2141         (WebCore::RenderBlock::desiredColumnCount):
2142         (WebCore::RenderBlock::columnInfo):
2143         (WebCore::RenderBlock::layoutColumns):
2144         (WebCore::RenderBlock::adjustPointToColumnContents):
2145         (WebCore::RenderBlock::adjustRectForColumns):
2146         (WebCore::RenderBlock::adjustForColumns):
2147         * rendering/RenderBlock.h:
2148         * rendering/RenderLayer.cpp:
2149         (WebCore::RenderLayer::paintChildLayerIntoColumns):
2150         (WebCore::RenderLayer::hitTestChildLayerColumns):
2151
2152 2010-09-07  Dan Bernstein  <mitz@apple.com>
2153
2154         Reviewed by Dave Hyatt.
2155
2156         <rdar://problem/7794761> Floats inside of multicol fail to hit test
2157         https://bugs.webkit.org/show_bug.cgi?id=44730
2158
2159         Test: fast/multicol/hit-test-float.html
2160
2161         Factored float hit-testing out of nodeAtPoint so that hitTestColumns could
2162         call it with column-adjusted coordinates.
2163
2164         * rendering/RenderBlock.cpp:
2165         (WebCore::RenderBlock::nodeAtPoint):
2166         (WebCore::RenderBlock::hitTestFloats):
2167         (WebCore::RenderBlock::hitTestColumns):
2168         * rendering/RenderBlock.h:
2169
2170 2010-09-07  François Sausset  <sausset@gmail.com>
2171
2172         Reviewed by Beth Dakin.
2173
2174         <math> element should be centered when display attribute set to block.
2175         https://bugs.webkit.org/show_bug.cgi?id=44206
2176
2177         Test: mathml/presentation/attributes.xhtml
2178
2179         * css/mathml.css:
2180         (math[display="block"]):
2181
2182 2010-09-07  Eric Carlson  <eric.carlson@apple.com>
2183
2184         Reviewed by Darin Adler.
2185
2186         Media elements should derive from ActiveDOMObjects
2187         https://bugs.webkit.org/show_bug.cgi?id=45306
2188         <rdar://problem/7929062>
2189
2190         * html/HTMLMediaElement.cpp:
2191         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize ActiveDOMObject
2192         (WebCore::HTMLMediaElement::stop): Call suspend, we want to do the same thing in both cases.
2193         (WebCore::HTMLMediaElement::suspend): Rename from documentWillBecomeInactive.
2194         (WebCore::HTMLMediaElement::resume): Rename from documentDidBecomeActive.
2195         (WebCore::HTMLMediaElement::hasPendingActivity): Return true if the event queue is not empty
2196         so the element can't be collected before they are sent.
2197         * html/HTMLMediaElement.h:
2198         (WebCore::HTMLMediaElement::canSuspend):
2199
2200 2010-09-07  Dimitri Glazkov  <dglazkov@chromium.org>
2201
2202         Unreviewed, rolling out r66886.
2203         http://trac.webkit.org/changeset/66886
2204         https://bugs.webkit.org/show_bug.cgi?id=45112
2205
2206         Made
2207
2208         * platform/chromium/GeolocationServiceChromium.cpp:
2209         * platform/chromium/GeolocationServiceChromium.h:
2210
2211 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
2212
2213         Small build fix. Remove libWebCoreJS from CLEAN_FILES, as it
2214         is no longer built.
2215
2216         * GNUmakefile.am: Remove reference to libWebCoreJS.
2217
2218 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
2219
2220         Reviewed by Xan Lopez.
2221
2222         [GTK] [REGRESSION] r66848 caused a crash in testwebview
2223         https://bugs.webkit.org/show_bug.cgi?id=45298
2224
2225         No new tests as this fixes a test failure.
2226
2227         * platform/gtk/ScrollViewGtk.cpp:
2228         (WebCore::ScrollView::setGtkAdjustments): Don't actually attach the
2229         scrollbar adjustments unless this is a main frame ScrollView. If we do
2230         Scrollbars will be cast incorrectly to MainFrameScrollbarGtk, causing
2231         a segfault.
2232
2233 2010-09-07  Kristian Monsen  <kristianm@google.com>
2234
2235         Reviewed by Steve Block.
2236
2237         Compile fix for Android.
2238         https://bugs.webkit.org/show_bug.cgi?id=45292
2239         Explicitly add needed header for 
2240         STRING_TO_V8PARAMETER_EXCEPTION_BLOCK as they do not get 
2241         included through other headers on Android.
2242
2243         No new tests, just a compile fix.
2244
2245         * bindings/scripts/CodeGeneratorV8.pm:
2246
2247 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
2248
2249         Reviewed by Xan Lopez.
2250
2251         [GTK] Fix some feature guards
2252         https://bugs.webkit.org/show_bug.cgi?id=45302
2253
2254         No new tests as this is just a build change.
2255
2256         * platform/graphics/gstreamer/DataSourceGStreamer.cpp: Guard with #if ENABLE(VIDEO)
2257         * platform/graphics/gstreamer/DataSourceGStreamer.h: Ditto.
2258         * platform/graphics/gstreamer/GOwnPtrGStreamer.cpp: Ditto.
2259         * platform/graphics/gstreamer/GOwnPtrGStreamer.h: Ditto.
2260         * platform/graphics/gstreamer/GStreamerGWorld.cpp: Ditto.
2261         * platform/graphics/gstreamer/GStreamerGWorld.h: Ditto.
2262         * platform/graphics/gstreamer/ImageGStreamer.h: Ditto.
2263         * platform/graphics/gstreamer/ImageGStreamerCG.mm: Ditto.
2264         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp: Ditto.
2265         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Ditto.
2266         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Ditto.
2267         * platform/graphics/gstreamer/PlatformVideoWindow.h: Ditto.
2268         * platform/graphics/gstreamer/PlatformVideoWindowEfl.cpp: Ditto.
2269         * platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp: Ditto.
2270         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Ditto.
2271         * platform/graphics/gstreamer/VideoSinkGStreamer.h: Ditto.
2272         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Ditto.
2273         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Ditto.
2274         * platform/gtk/GeolocationServiceGtk.cpp: Guard with ENABLE(GEOLOCATION)
2275         * platform/gtk/GeolocationServiceGtk.h: Ditto.
2276
2277 2010-09-07  Jonathan Dixon  <joth@chromium.org>
2278
2279         Reviewed by Jeremy Orlow.
2280
2281         Access to out-of-scope WebGeolocationServiceBridgeImpl
2282         https://bugs.webkit.org/show_bug.cgi?id=45112
2283
2284         Add missing virtual destructor to the abstract base class.
2285
2286         * platform/chromium/GeolocationServiceChromium.cpp:
2287         (WebCore::GeolocationServiceBridge::~GeolocationServiceBridge):
2288         * platform/chromium/GeolocationServiceChromium.h:
2289
2290 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
2291
2292         Reviewed by Xan Lopez.
2293
2294         [GTK] [REGRESSION] r66848 caused a crash in testwebview
2295         https://bugs.webkit.org/show_bug.cgi?id=45298
2296
2297         No new tests as this fixes a test failure.
2298
2299         * platform/gtk/ScrollViewGtk.cpp:
2300         (WebCore::ScrollView::setGtkAdjustments): Don't actually attach the
2301         scrollbar adjustments unless this is a main frame ScrollView. If we do
2302         Scrollbars will be cast incorrectly to MainFrameScrollbarGtk, causing
2303         a segfault.
2304
2305 2010-09-07  Adam Langley  <agl@chromium.org>
2306
2307         Reviewed by Tony Chang.
2308
2309         [chromium] Fix complex text word spacing on Linux.
2310
2311         I broke complex text word spacing with r66689. I misnamed a
2312         variable in the original code |glyphIndex| when it was
2313         actually indexing code points. That meant that I compared it
2314         against the wrong limit when working around Harfbuzz issues
2315         and neatly disabled word spacing.
2316
2317         https://bugs.webkit.org/show_bug.cgi?id=45191
2318
2319         Test: fast/text/atsui-spacing-features.html
2320
2321         * platform/graphics/chromium/FontLinux.cpp:
2322         (WebCore::TextRunWalker::setGlyphXPositions):
2323
2324 2010-09-07  Satish Sampath  <satish@chromium.org>
2325
2326         Reviewed by Steve Block.
2327
2328         Fix speech button's hit test logic for RTL rendering.
2329         https://bugs.webkit.org/show_bug.cgi?id=45288
2330
2331         * rendering/RenderTextControlSingleLine.cpp:
2332         (WebCore::RenderTextControlSingleLine::forwardEvent):
2333
2334 2010-09-07  Satish Sampath  <satish@chromium.org>
2335
2336         Reviewed by Jeremy Orlow.
2337
2338         Ignore programmatic clicks on speech input button for security reasons.
2339         https://bugs.webkit.org/show_bug.cgi?id=45181
2340
2341         Test: fast/speech/speech-button-ignore-generated-events.html
2342
2343         * rendering/TextControlInnerElements.cpp:
2344         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2345
2346 2010-09-07  Kent Hansen  <kent.hansen@nokia.com>
2347
2348         Reviewed by Andreas Kling.
2349
2350         [Qt] tst_QWebFrame::connectAndDisconnect() fails on WebKit trunk because __qt_sender__ is never set
2351         https://bugs.webkit.org/show_bug.cgi?id=44697
2352
2353         When the signal handler is a JS function, __qt_sender__ is stuffed into a temporary
2354         object that's pushed onto the function's scope before the function is invoked, and
2355         popped again afterwards.
2356
2357         We were pushing this new scope object _after_ calling JSFunction::getCallData(),
2358         and relying on JSC::call() to use the fresh scope chain from the function object.
2359         However, this is no longer the case; JSC::call() uses the scope chain passed in
2360         the CallData argument. Hence, we need to set up the scope before the function's
2361         CallData is queried.
2362
2363         * bridge/qt/qt_runtime.cpp:
2364         (JSC::Bindings::QtConnectionObject::execute):
2365
2366 2010-09-07  Kwang Yul Seo  <skyul@company100.net>
2367
2368         Reviewed by Kent Tamura.
2369
2370         Add ENABLE(INSPECTOR) guard in InspectorController::inspectorControllerForNode
2371         https://bugs.webkit.org/show_bug.cgi?id=45272
2372
2373         Build fix.
2374
2375         * inspector/InspectorController.h:
2376         (WebCore::InspectorController::inspectorControllerForNode):
2377
2378 2010-09-07  Joerg Bornemann  <joerg.bornemann@nokia.com>
2379
2380         Reviewed by Ariya Hidayat.
2381
2382         Fix QtWebKit linker error on Windows CE 6.
2383         https://bugs.webkit.org/show_bug.cgi?id=43442
2384
2385         Doesn't affect any tests.
2386
2387         * WebCore.pro:
2388
2389 2010-09-07  James Kozianski  <koz@chromium.org>
2390
2391         Reviewed by Kent Tamura.
2392
2393         Crash rendering <meter/> with percent padding
2394         https://bugs.webkit.org/show_bug.cgi?id=45081
2395
2396         Avoids a crash caused by RenderMeter checking its own dimensions to
2397         determine whether it needs layout. The crash is avoided by removing
2398         the check and always calling setNeedsLayout(true).
2399
2400         Test: fast/dom/HTMLMeterElement/meter-percent-size.html
2401
2402         * rendering/RenderIndicator.cpp:
2403         (WebCore::RenderIndicator::updateFromElement):
2404         * rendering/RenderIndicator.h:
2405
2406 2010-09-06  Adam Barth  <abarth@webkit.org>
2407
2408         Reviewed by Sam Weinig.
2409
2410         OOB read with svg polyline
2411         https://bugs.webkit.org/show_bug.cgi?id=45279
2412
2413         In principle, attributeChanged can do anything.  If we supported more
2414         DOM mutation events, it could even run JavaScript.  That means we need
2415         to be prepared for the attribute map to change when running
2416         attributeChanged.  This patch makes this loop resilient to the
2417         attribute map changing by storing the list of changed attributes on the
2418         stack.
2419
2420         Test: fast/parser/changing-attrbutes-crash.html
2421
2422         * dom/Element.cpp:
2423         (WebCore::Element::setAttributeMap):
2424
2425 2010-09-06  Oliver Hunt  <oliver@apple.com>
2426
2427         Windows build fix
2428
2429         * bindings/js/SerializedScriptValue.cpp:
2430         (WebCore::CloneSerializer::write):
2431
2432 2010-09-06  Oliver Hunt  <oliver@apple.com>
2433
2434         Windows build fix
2435
2436         * bindings/js/SerializedScriptValue.cpp:
2437         (WebCore::CloneSerializer::write):
2438
2439 2010-09-05  Oliver Hunt  <oliver@apple.com>
2440
2441         Reviewed by Sam Weinig.
2442
2443         SerializedScriptValue needs to use a flat storage mechanism
2444         https://bugs.webkit.org/show_bug.cgi?id=45244
2445
2446         Rewrite the old tree to tree serialization logic to use
2447         flat storage.  Unfortunately this basically required a
2448         complete rewrite.
2449
2450         * bindings/js/SerializedScriptValue.cpp:
2451         (WebCore::CloneBase::CloneBase):
2452         (WebCore::CloneBase::shouldTerminate):
2453         (WebCore::CloneBase::ticksUntilNextCheck):
2454         (WebCore::CloneBase::didTimeOut):
2455         (WebCore::CloneBase::throwStackOverflow):
2456         (WebCore::CloneBase::throwInterruptedException):
2457         (WebCore::CloneBase::fail):
2458         (WebCore::CloneSerializer::serialize):
2459         (WebCore::CloneSerializer::CloneSerializer):
2460         (WebCore::CloneSerializer::isArray):
2461         (WebCore::CloneSerializer::startObject):
2462         (WebCore::CloneSerializer::startArray):
2463         (WebCore::CloneSerializer::endObject):
2464         (WebCore::CloneSerializer::getSparseIndex):
2465         (WebCore::CloneSerializer::getProperty):
2466         (WebCore::CloneSerializer::dumpImmediate):
2467         (WebCore::CloneSerializer::dumpString):
2468         (WebCore::CloneSerializer::dumpIfTerminal):
2469         (WebCore::CloneSerializer::write):
2470         (WebCore::CloneSerializer::writeLittleEndian):
2471         (WebCore::CloneSerializer::writeStringIndex):
2472         (WebCore::CloneDeserializer::deserializeString):
2473         (WebCore::CloneDeserializer::deserialize):
2474         (WebCore::CloneDeserializer::CloneDeserializer):
2475         (WebCore::CloneDeserializer::throwValidationError):
2476         (WebCore::CloneDeserializer::isValid):
2477         (WebCore::CloneDeserializer::readLittleEndian):
2478         (WebCore::CloneDeserializer::read):
2479         (WebCore::CloneDeserializer::readStringIndex):
2480         (WebCore::CloneDeserializer::readString):
2481         (WebCore::CloneDeserializer::readStringData):
2482         (WebCore::CloneDeserializer::readTag):
2483         (WebCore::CloneDeserializer::putProperty):
2484         (WebCore::CloneDeserializer::readFile):
2485         (WebCore::CloneDeserializer::readTerminal):
2486         (WebCore::SerializedScriptValue::~SerializedScriptValue):
2487         (WebCore::SerializedScriptValue::SerializedScriptValue):
2488         (WebCore::SerializedScriptValue::create):
2489         (WebCore::SerializedScriptValue::toString):
2490         (WebCore::SerializedScriptValue::deserialize):
2491         (WebCore::SerializedScriptValue::nullValue):
2492         * bindings/js/SerializedScriptValue.h:
2493         * dom/MessagePortChannel.cpp:
2494         (WebCore::MessagePortChannel::EventData::EventData):
2495         * workers/WorkerMessagingProxy.cpp:
2496         (WebCore::MessageWorkerContextTask::MessageWorkerContextTask):
2497         (WebCore::MessageWorkerTask::MessageWorkerTask):
2498
2499 2010-09-06  Martin Robinson  <mrobinson@igalia.com>
2500
2501         Reviewed by Gustavo Noronha Silva.
2502
2503         [GTK] ScrollbarThemeGtk should be enabled for interior frame scrollbars
2504         https://bugs.webkit.org/show_bug.cgi?id=45046
2505
2506         Make interior frame scrollbars "fully-fake," which means they do not rely
2507         at all on GTK+ for painting or behavior, but instead are typical WebCore
2508         scrollbars drawn according to the GTK+ theme. Move ScrollbarGtk to
2509         MainFrameScrollbarGtk and remove all logic in that file dealing with interior
2510         frame scrollbars.
2511
2512         No new tests, as this is already covered by pixel tests for scrollbars,
2513         which were added in r66605.
2514
2515         * GNUmakefile.am: Update sources list.
2516         * platform/ScrollView.h: Change the adjustment members to be smart pointers.
2517         * platform/Scrollbar.cpp: Enable THUMB_POSITION_AFFECTS_BUTTONS for GTK+ as well.
2518         * platform/gtk/MainFrameScrollbarGtk.cpp: Added.
2519         (MainFrameScrollbarGtk::create): Create a MainFrameScrollbarGtk instead of ScrollbarGtk.
2520         (MainFrameScrollbarGtk::MainFrameScrollbarGtk):
2521         (MainFrameScrollbarGtk::~MainFrameScrollbarGtk):
2522         (MainFrameScrollbarGtk::attachAdjustment):
2523         (MainFrameScrollbarGtk::detachAdjustment):
2524         (MainFrameScrollbarGtk::updateThumbPosition):
2525         (MainFrameScrollbarGtk::updateThumbProportion):
2526         (MainFrameScrollbarGtk::gtkValueChanged):
2527         (MainFrameScrollbarGtk::paint):
2528         * platform/gtk/MainFrameScrollbarGtk.h: Added.
2529         * platform/gtk/ScrollViewGtk.cpp:
2530         (WebCore::ScrollView::platformInit): Remove unnecessary initialization
2531         because of smart pointer change.
2532         (WebCore::ScrollView::createScrollbar): Instead of creating ScrollbarGtk for
2533         interior frame scrollbars, create a normal WebCore scrollbar.
2534         (WebCore::ScrollView::setGtkAdjustments): Added an extra assert which ensures
2535         that this method is never called with a non-null adjustment on an interior frame
2536         scrollbar.
2537         (WebCore::ScrollView::platformAddChild): Remove logic for interior frame scrollbars.
2538         (WebCore::ScrollView::platformRemoveChild): Remove logic for interior frame scrollbars.
2539         (WebCore::ScrollView::visibleContentRect): Use a more accurate guard for detecting
2540         transitionary states when accessing parent widgets. Explcitly guard against interior
2541         frame ScrollView's trying to determine size based on parent widgets.
2542         (WebCore::ScrollView::setScrollbarModes): This method was out of sync with the one
2543         it copy-and-pasted from. Update it and change the logic to do the right thing for
2544         interior frame scrollbars.
2545         * platform/gtk/ScrollbarGtk.cpp: Removed.
2546         * platform/gtk/ScrollbarGtk.h: Removed.
2547
2548 2010-09-06  Justin Schuh  <jschuh@chromium.org>
2549
2550         Reviewed by Nikolas Zimmermann.
2551
2552         Make SVG PendingResources use RefPtr
2553         https://bugs.webkit.org/show_bug.cgi?id=43587
2554
2555         Convert SVGDocumentExtensions::m_pendingResources to use a RefPtr for 
2556         pending elements instead of a raw pointer so that pending elements can't
2557         be freed prematurely.
2558
2559         Test: svg/custom/use-invalid-pattern.svg
2560
2561         * rendering/RenderSVGResourceContainer.cpp:
2562         (WebCore::RenderSVGResourceContainer::registerResource):
2563         * svg/SVGDocumentExtensions.cpp:
2564         (WebCore::SVGDocumentExtensions::addPendingResource):
2565         (WebCore::SVGDocumentExtensions::removePendingResource):
2566         * svg/SVGDocumentExtensions.h:
2567         * svg/SVGElement.cpp:
2568         (WebCore::SVGElement::insertedIntoDocument):
2569
2570 2010-09-06  Martin Robinson  <mrobinson@igalia.com>
2571
2572         Reviewed by Gustavo Noronha Silva.
2573
2574         [GTK] ScrollbarThemeGtk should support secondary steppers
2575         https://bugs.webkit.org/show_bug.cgi?id=44791
2576
2577         Add support to ScrollbarThemeGtk for drawing alternate steppers. Adjust
2578         the algorithms for calculating forward and back button rects, if they
2579         are active in the theme. Expose this information via GtkScrollbarMetrics.
2580
2581         * platform/gtk/ScrollbarThemeGtk.cpp:
2582         (WebCore::ScrollbarThemeGtk::updateThemeProperties): Access the secondary stepper properties
2583         of GtkScrollbarMetrics when updating the style cache.
2584         (WebCore::ScrollbarThemeGtk::backButtonRect): Account for alternate steppers.
2585         (WebCore::ScrollbarThemeGtk::forwardButtonRect): Ditto.
2586         (WebCore::ScrollbarThemeGtk::trackRect): Ditto.
2587         (WebCore::ScrollbarThemeGtk::paintButton): Ditto.
2588         * platform/gtk/ScrollbarThemeGtk.h:
2589         * platform/gtk/gtk2drawing.c: Expose whether or not the style uses alternate steppers
2590         via GtkScrollbarMetrics.
2591         * platform/gtk/gtkdrawing.h: Added fields to GtkScrollbarMetrics.
2592
2593 2010-09-06  Tony Gentilcore  <tonyg@chromium.org>
2594
2595         Reviewed by Adam Barth.
2596
2597         Implement HTML5 definition of document.readyState
2598         https://bugs.webkit.org/show_bug.cgi?id=45119
2599
2600         The legacy behavior was "loading" -> "loaded" -> "complete". The new
2601         HTML5 behavior is "loading" -> "interactive" -> "complete". There is
2602         some potential for this to cause compat problems if for instance a
2603         page expects readyState to be "loaded" during the DOMContentLoaded event.
2604
2605         Test: fast/dom/Document/readystate.html
2606
2607         * dom/Document.cpp:
2608         (WebCore::Document::Document): Initial value is Complete because according to http://www.whatwg.org/specs/web-apps/current-work/#dom-document-readystate,
2609         when a Document is created the initial value is "complete" unless it has a parser associated with it, in which case it is "loading".
2610         So the ctor starts it Complete, and when the parser is created it is flipped to Loading.
2611         (WebCore::Document::readyState):
2612         (WebCore::Document::setReadyState):
2613         (WebCore::Document::implicitOpen):
2614         (WebCore::Document::finishedParsing): Ensure that XML and HTML parser have transition to Stopping state.
2615         * dom/Document.h:
2616         * dom/DocumentParser.cpp:
2617         (WebCore::DocumentParser::prepareToStopParsing): Previously this was being called when parsing had stopped.
2618         It is better to ensure it is only called while parsing.
2619         * dom/XMLDocumentParser.cpp:
2620         (WebCore::XMLDocumentParser::end): Transition to stopping before calling document finishedParsiong().
2621         * html/parser/HTMLDocumentParser.cpp:
2622         (WebCore::HTMLDocumentParser::prepareToStopParsing): Set state to interactive before running deferred scripts.
2623         This method is also called when parsing fragments, so we need to ensure it isn't done in that case.
2624         (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd): Added. Break out this part s that notifyFinished doesn't go through
2625         the additional steps of pumping tokenizer, setting the state, etc.
2626         (WebCore::HTMLDocumentParser::notifyFinished): Now that prepareToStopParsing is split up, we must protect. It also makes sense to add a couple of ASSERTs.
2627         * loader/FrameLoader.cpp:
2628         (WebCore::FrameLoader::stopLoading): It looks like an aborted load should never transition to "complete" according the HTML5. I've left the legacy behavior for now though.
2629         (WebCore::FrameLoader::checkCompleted): The FrameLoader now sets the state on the Document instead of the Document polling the FrameLoader.
2630
2631 2010-09-06  Anton Muhin  <antonm@chromium.org>
2632
2633         Reviewed by Adam Barth.
2634
2635         [v8] Inline hot methods for V8 to WebCore and back conversions
2636         https://bugs.webkit.org/show_bug.cgi?id=45270
2637
2638         Inline fast paths of hot functions performing conversions from V8 wrappers
2639         to WebCore native objects and back.
2640         That slightly increases the size of binary (within 0.1% for both Ubuntu
2641         and Windows, but those builds are slightly different from official ones),
2642         but gives performance boost (3--5% on Windows, up to 8% on Ubuntu).
2643
2644         * bindings/scripts/CodeGeneratorV8.pm:
2645         * bindings/v8/V8DOMWindowShell.cpp:
2646         (WebCore::V8DOMWindowShell::initContextIfNeeded):
2647         * bindings/v8/V8DOMWindowShell.h:
2648         * bindings/v8/V8DOMWrapper.cpp:
2649         (WebCore::V8DOMWrapper::getWrapperSlow):
2650         * bindings/v8/V8DOMWrapper.h:
2651         (WebCore::V8DOMWrapper::getWrapper):
2652         * bindings/v8/custom/V8NodeCustom.cpp:
2653         (WebCore::toV8Slow):
2654
2655 2010-09-06  Shane Stephens  <shanestephens@google.com>
2656
2657         Reviewed by Dimitri Glazkov.
2658
2659         [Crash] <animateMotion> element directly inside <symbol> element causes crash when referenced by <use>
2660         https://bugs.webkit.org/show_bug.cgi?id=44750
2661
2662         Fixes crash by checking for null transforms and skipping update step
2663         when appropriate.
2664
2665         Test: svg/dom/symbol-embeddedAnimation.svg
2666
2667         * svg/SVGAnimateMotionElement.cpp:
2668         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
2669
2670 2010-09-06  Xan Lopez  <xlopez@igalia.com>
2671
2672         Rubber-stamped by Tor Arne Vestbø.
2673
2674         WebCore already generates a focus-{out,in} events on its setFocus
2675         method, there's no need to duplicate it here. Previously this was
2676         needed because we were not catching all possible names of focus
2677         events in PluginView::handleEvent and were missing the ones
2678         WebCore does, but this has been fixed in r66827.
2679
2680         * plugins/qt/PluginViewQt.cpp:
2681         (WebCore::PluginView::setFocus):
2682
2683 2010-09-06  Sheriff Bot  <webkit.review.bot@gmail.com>
2684
2685         Unreviewed, rolling out r66823.
2686         http://trac.webkit.org/changeset/66823
2687         https://bugs.webkit.org/show_bug.cgi?id=45266
2688
2689         Windows build fails with unknown reason (Requested by zherczeg
2690         on #webkit).
2691
2692         * Android.mk:
2693         * CMakeLists.txt:
2694         * GNUmakefile.am:
2695         * WebCore.gypi:
2696         * WebCore.pro:
2697         * WebCore.vcproj/WebCore.vcproj:
2698         * WebCore.xcodeproj/project.pbxproj:
2699         * rendering/RenderObject.h:
2700         * rendering/RenderSVGResourceFilterPrimitive.cpp: Removed.
2701         * rendering/RenderSVGResourceFilterPrimitive.h: Removed.
2702         * rendering/SVGRenderTreeAsText.cpp:
2703         (WebCore::writeSVGContainer):
2704         * svg/SVGFEDiffuseLightingElement.cpp:
2705         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
2706         * svg/SVGFELightElement.cpp:
2707         (WebCore::SVGFELightElement::svgAttributeChanged):
2708         (WebCore::SVGFELightElement::childrenChanged):
2709         * svg/SVGFEOffsetElement.cpp:
2710         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
2711         * svg/SVGFilterElement.h:
2712         (WebCore::SVGFilterElement::invalidateFilter):
2713         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2714         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
2715         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
2716         * svg/SVGFilterPrimitiveStandardAttributes.h:
2717         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
2718
2719 2010-09-06  Xan Lopez  <xlopez@igalia.com>
2720
2721         Reviewed by Martin Robinson.
2722
2723         [GTK] Provide Keyboard Events to Windowless plugins
2724         https://bugs.webkit.org/show_bug.cgi?id=44613
2725
2726         Fix keyboard event delivery for windowless plugins.
2727
2728         Based on a patch by Bharathwaaj.
2729
2730         * plugins/PluginView.cpp:
2731         (WebCore::PluginView::handleEvent): also take into account
2732         focused{in,out} events
2733         * plugins/gtk/PluginViewGtk.cpp:
2734         (WebCore::PluginView::handleKeyboardEvent): we want the keyval
2735         here, not the hardware keycode
2736         (WebCore::PluginView::handleMouseEvent): focus the pluginview on mouse events
2737
2738 2010-09-06  Ilya Tikhonovsky  <loislo@chromium.org>
2739
2740         Reviewed by Yury Semikhatsky.
2741
2742         WebInspector: it'd be nice to be able to pass undefined argument as a callback to InspectorBackend functions.
2743
2744         There are some places where callback is passing via some wrapper. In that case sendMessageToBackend
2745         will be called with additional argument for callback but with undefined value.
2746
2747         https://bugs.webkit.org/show_bug.cgi?id=45265
2748
2749         * inspector/CodeGeneratorInspector.pm:
2750
2751 2010-09-06  Zoltan Herczeg  <zherczeg@webkit.org>
2752
2753         Reviewed by Dirk Schulze.
2754
2755         An individual renderer should be assigned to each SVGFE*Element class
2756         https://bugs.webkit.org/show_bug.cgi?id=43954
2757
2758         RenderSVGResourceFilterPrimitive renderer is added to
2759         the project, and assigned to each object, which class is
2760         derived from SVGFilterPrimitiveStandardAttributes. The patch
2761         mainly contains build system changes, and it fixes one layout
2762         test in svg/dynamic-updates.
2763
2764         * Android.mk:
2765         * CMakeLists.txt:
2766         * GNUmakefile.am:
2767         * WebCore.gypi:
2768         * WebCore.pro:
2769         * WebCore.vcproj/WebCore.vcproj:
2770         * WebCore.xcodeproj/project.pbxproj:
2771         * rendering/RenderObject.h:
2772         (WebCore::RenderObject::isSVGResourceFilterPrimitive):
2773         * rendering/RenderSVGResourceFilterPrimitive.cpp: Added.
2774         (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive):
2775         * rendering/RenderSVGResourceFilterPrimitive.h: Added.
2776         (WebCore::RenderSVGResourceFilterPrimitive::isSVGResourceFilterPrimitive):
2777         * rendering/SVGRenderTreeAsText.cpp:
2778         (WebCore::writeSVGContainer):
2779         * svg/SVGFEDiffuseLightingElement.cpp:
2780         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
2781         * svg/SVGFELightElement.cpp:
2782         (WebCore::SVGFELightElement::svgAttributeChanged):
2783         (WebCore::SVGFELightElement::childrenChanged):
2784         * svg/SVGFEOffsetElement.cpp:
2785         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
2786         * svg/SVGFilterElement.h:
2787         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2788         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
2789         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
2790         (WebCore::SVGFilterPrimitiveStandardAttributes::createRenderer):
2791         * svg/SVGFilterPrimitiveStandardAttributes.h:
2792         (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate):
2793
2794 2010-09-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2795
2796         Reviewed by Dirk Schulze.
2797
2798         [WML] Use RenderImageResource in WMLImageElement.cpp
2799         https://bugs.webkit.org/show_bug.cgi?id=44952
2800
2801         The hasImage() and setCachedImage() were moved to RenderImageResource class. 
2802         So, WML also should use the functions from RenderImageResource.
2803
2804         * wml/WMLImageElement.cpp:
2805         (WebCore::WMLImageElement::attach):
2806
2807 2010-08-26  Jeremy Orlow  <jorlow@chromium.org>
2808
2809         Reviewed by Steve Block.
2810
2811         Add index insertion support to IndexedDB.
2812         https://bugs.webkit.org/show_bug.cgi?id=44695
2813
2814         Whenever you insert an item into an ObjectStore, it should use all
2815         indexes' key paths to insert corresponding entries into each index.
2816         Also data should be deleted out of the index when it goes away.
2817
2818         Not much testing yet since there's no way to directly observe indexes.
2819         More will be in next patch.
2820
2821         * storage/IDBDatabaseBackendImpl.cpp:
2822         (WebCore::IDBDatabaseBackendImpl::removeObjectStore):
2823         * storage/IDBFactoryBackendImpl.cpp:
2824         (WebCore::createTables):
2825         * storage/IDBIndex.idl:
2826         * storage/IDBIndexBackendImpl.cpp:
2827         (WebCore::whereClause):
2828         (WebCore::bindWhereClause):
2829         (WebCore::IDBIndexBackendImpl::addingKeyAllowed):
2830         * storage/IDBIndexBackendImpl.h:
2831         (WebCore::IDBIndexBackendImpl::id):
2832         * storage/IDBKey.cpp:
2833         (WebCore::IDBKey::whereSyntax):
2834         (WebCore::IDBKey::bind):
2835         (WebCore::IDBKey::bindWithNulls):
2836         * storage/IDBKey.h:
2837         * storage/IDBObjectStore.idl:
2838         * storage/IDBObjectStoreBackendImpl.cpp:
2839         (WebCore::whereClause):
2840         (WebCore::bindWhereClause):
2841         (WebCore::IDBObjectStoreBackendImpl::get):
2842         (WebCore::fetchKeyFromKeyPath):
2843         (WebCore::putObjectStoreData):
2844         (WebCore::putIndexData):
2845         (WebCore::IDBObjectStoreBackendImpl::put):
2846         (WebCore::IDBObjectStoreBackendImpl::remove):
2847         (WebCore::IDBObjectStoreBackendImpl::createIndex):
2848         (WebCore::doDelete):
2849         (WebCore::IDBObjectStoreBackendImpl::removeIndex):
2850         (WebCore::IDBObjectStoreBackendImpl::openCursor):
2851         * storage/IDBObjectStoreBackendImpl.h:
2852
2853 2010-09-06  Anton Muhin  <antonm@chromium.org>
2854
2855         Reviewed by Adam Barth.
2856
2857         [v8] bypass caches when query memory usage from post GC and in crash handler.
2858         https://bugs.webkit.org/show_bug.cgi?id=45036
2859
2860         Add Chromium-specific API to query actual memory usage which bypasses any caches.
2861
2862         * platform/chromium/ChromiumBridge.h:
2863
2864 2010-09-06  Adam Barth  <abarth@webkit.org>
2865
2866         Reviewed by Darin Adler.
2867
2868         Rename SecurityOrigin::canLoad to canDisplay
2869         https://bugs.webkit.org/show_bug.cgi?id=45214
2870
2871         canLoad is a pretty opaque name.  This function is really about whether
2872         you can display the contents of the URL in an iframe, an image, or a
2873         plugin.
2874
2875         * WebCore.exp.in:
2876         * html/HTMLMediaElement.cpp:
2877         (WebCore::HTMLMediaElement::isSafeToLoadURL):
2878         * loader/Cache.cpp:
2879         (WebCore::Cache::requestResource):
2880         * loader/FrameLoader.cpp:
2881         (WebCore::FrameLoader::loadFrameRequest):
2882         * loader/PingLoader.cpp:
2883         (WebCore::PingLoader::loadImage):
2884         * loader/SubframeLoader.cpp:
2885         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
2886         (WebCore::SubframeLoader::createJavaAppletWidget):
2887         (WebCore::SubframeLoader::loadSubframe):
2888         (WebCore::SubframeLoader::loadPlugin):
2889         * loader/SubresourceLoader.cpp:
2890         (WebCore::SubresourceLoader::create):
2891         * page/SecurityOrigin.cpp:
2892         (WebCore::SecurityOrigin::canDisplay):
2893         * page/SecurityOrigin.h:
2894         * plugins/PluginView.cpp:
2895         (WebCore::PluginView::load):
2896
2897 2010-08-31  Yury Semikhatsky  <yurys@chromium.org>
2898
2899         Reviewed by Joseph Pecoraro.
2900
2901         Web Inspector: browser crashes on attempt to evaluate "alert(1)" while staying on a breakpoint
2902         https://bugs.webkit.org/show_bug.cgi?id=44943
2903
2904         Test: inspector/debugger-suspend-active-dom-objects.html
2905
2906         * page/PageGroupLoadDeferrer.cpp:
2907         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
2908
2909 2010-09-05  Kenneth Russell  <kbr@google.com>
2910
2911         Reviewed by Darin Fisher.
2912
2913         Add unit tests for red-black tree and (POD) arena
2914         https://bugs.webkit.org/show_bug.cgi?id=45060
2915
2916         * platform/graphics/gpu/PODArena.h: Made DefaultChunkSize public so unit tests can access it. Fixed copyright header.
2917         * platform/graphics/gpu/PODInterval.h: Fixed copyright header.
2918         * platform/graphics/gpu/PODIntervalTree.h: Fixed copyright header.
2919         * platform/graphics/gpu/PODRedBlackTree.h: Fixed copyright header.
2920
2921 2010-09-05  Jeremy Orlow  <jorlow@chromium.org>
2922
2923         Reviewed by Nate Chapin.
2924
2925         Add the concept of class methods to bindings (for IndexedDB's IDBKeyRange).
2926         https://bugs.webkit.org/show_bug.cgi?id=45044
2927
2928         IndexedDB's IDBKeyRange has what, in other languages, are called class
2929         methods. In javaScript terms, these are methods only accessible from their
2930         constructor and not instances. This change adds such support to V8. There
2931         are already other features required for IndexedDB that JSC doesn't yet
2932         support, so I'll add this to the list of todo items in the master bug
2933         for that.
2934
2935         The bindings tests cover this. My next patch will change WebCore to use
2936         this and it'll have associated layout tests.
2937
2938         * bindings/scripts/CodeGeneratorV8.pm:
2939         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2940         (WebDOMTestObj::classMethod):
2941         (WebDOMTestObj::classMethodWithOptional):
2942         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2943         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2944         (webkit_dom_test_obj_class_method):
2945         (webkit_dom_test_obj_class_method_with_optional):
2946         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2947         * bindings/scripts/test/JS/JSTestObj.cpp:
2948         (WebCore::jsTestObjPrototypeFunctionStaticMethod):
2949         (WebCore::jsTestObjPrototypeFunctionStaticMethodWithOptional):
2950         * bindings/scripts/test/JS/JSTestObj.h:
2951         * bindings/scripts/test/ObjC/DOMTestObj.h:
2952         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2953         (-[DOMTestObj classMethod]):
2954         (-[DOMTestObj classMethodWithOptional:]):
2955         * bindings/scripts/test/TestObj.idl:
2956         * bindings/scripts/test/V8/V8TestObj.cpp:
2957         (WebCore::TestObjInternal::classMethodCallback):
2958         (WebCore::TestObjInternal::classMethodWithOptionalCallback):
2959         (WebCore::ConfigureV8TestObjTemplate):
2960         * storage/IDBKeyRange.idl:
2961
2962 2010-09-05  Jeremy Orlow  <jorlow@chromium.org>
2963
2964         Reviewed by Steve Block.
2965
2966         Add IndexedDB objects' constructors to window
2967         https://bugs.webkit.org/show_bug.cgi?id=44599
2968
2969         Also add a forgotten constant to IDBTransaction, and
2970         change IDBKeyRange over to using the V8Static attribute
2971         so it actually behaves as it's supposed to.
2972
2973         * bindings/generic/RuntimeEnabledFeatures.h:
2974         (WebCore::RuntimeEnabledFeatures::iDBCursorEnabled):
2975         (WebCore::RuntimeEnabledFeatures::iDBDatabaseEnabled):
2976         (WebCore::RuntimeEnabledFeatures::iDBDatabaseErrorEnabled):
2977         (WebCore::RuntimeEnabledFeatures::iDBDatabaseExceptionEnabled):
2978         (WebCore::RuntimeEnabledFeatures::iDBErrorEventEnabled):
2979         (WebCore::RuntimeEnabledFeatures::iDBEventEnabled):
2980         (WebCore::RuntimeEnabledFeatures::iDBFactoryEnabled):
2981         (WebCore::RuntimeEnabledFeatures::iDBIndexEnabled):
2982         (WebCore::RuntimeEnabledFeatures::iDBKeyRangeEnabled):
2983         (WebCore::RuntimeEnabledFeatures::iDBObjectStoreEnabled):
2984         (WebCore::RuntimeEnabledFeatures::iDBRequestEnabled):
2985         (WebCore::RuntimeEnabledFeatures::iDBSuccessEventEnabled):
2986         (WebCore::RuntimeEnabledFeatures::iDBTransactionEnabled):
2987         * page/DOMWindow.cpp:
2988         (WebCore::DOMWindow::clear):
2989         (WebCore::DOMWindow::indexedDB):
2990         * page/DOMWindow.h:
2991         * page/DOMWindow.idl:
2992         * storage/IDBKeyRange.idl:
2993         * storage/IDBTransaction.h:
2994         * storage/IDBTransaction.idl:
2995
2996 2010-09-04  Justin Schuh  <jschuh@chromium.org>
2997
2998         Reviewed by Nikolas Zimmermann.
2999
3000         Prevent premature deletion of svg use shadow tree
3001         https://bugs.webkit.org/show_bug.cgi?id=43260
3002
3003         Test: svg/custom/use-invalid-style.svg
3004
3005         * svg/SVGUseElement.cpp:
3006         (WebCore::SVGUseElement::insertedIntoDocument):
3007         (WebCore::SVGUseElement::removedFromDocument):
3008         (WebCore::SVGUseElement::detach):
3009
3010 2010-09-03  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
3011
3012         Reviewed by Darin Adler.
3013
3014         Add NetworkingContext to avoid layer violations
3015         https://bugs.webkit.org/show_bug.cgi?id=42292
3016
3017         Create and provide access to NetworkingContext in FrameLoader.
3018
3019         In the WebKit layer we added specific implementations of FrameNetworkingContext
3020         so each port's FrameLoaderClient can add any port specific information to NetworkingContext
3021         The NetworkingContext is, therefore, created by a FrameLoaderClient and stored
3022         in the FrameLoader for each frame created. People must always use it
3023         by calling FrameLoader::networkingContext() and never through their FrameLoaderClient.
3024         The lifetime cycle of NetworkingContext is kept by a RefPtr, so the object is RefCounted.
3025
3026         It is still a preparation to NetworkingContext to be activated and
3027         work for all ports.
3028
3029         * WebCore.exp.in:
3030         * loader/EmptyClients.h:
3031         (WebCore::EmptyFrameLoaderClient::createNetworkingContext):
3032         * loader/FrameLoader.cpp:
3033         (WebCore::FrameLoader::~FrameLoader):
3034         (WebCore::FrameLoader::init):
3035         (WebCore::FrameLoader::networkingContext):
3036         * loader/FrameLoader.h:
3037         * loader/FrameLoaderClient.h:
3038
3039 2010-09-03  Kinuko Yasuda  <kinuko@chromium.org>
3040
3041         Reviewed by Darin Adler.
3042
3043         V8/JS bindings should not perform type checks if the parameter has Callback attribute
3044         https://bugs.webkit.org/show_bug.cgi?id=45143
3045
3046         No new tests, should not affect existing idls.
3047
3048         * bindings/scripts/CodeGeneratorJS.pm:
3049         * bindings/scripts/CodeGeneratorV8.pm:
3050         * bindings/scripts/test/JS/JSTestObj.cpp:
3051         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
3052         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
3053         * bindings/scripts/test/TestObj.idl:
3054         * bindings/scripts/test/V8/V8TestObj.cpp:
3055         (WebCore::TestObjInternal::overloadedMethod5Callback):
3056         (WebCore::TestObjInternal::overloadedMethodCallback):
3057
3058 2010-09-03  Kenneth Russell  <kbr@google.com>
3059
3060         Unreviewed, Chromium build fix. Fix breakage on Windows after
3061         r66787 / https://bugs.webkit.org/show_bug.cgi?id=45223 .
3062
3063         * platform/graphics/chromium/FontChromiumWin.cpp:
3064         (WebCore::Font::drawGlyphs):
3065
3066 2010-09-03  James Robinson  <jamesr@chromium.org>
3067
3068         Reviewed by Kenneth Russell.
3069
3070         [chromium] Text sometimes fails to display in accelerated 2d canvases
3071         https://bugs.webkit.org/show_bug.cgi?id=45223
3072
3073         Calls PlatformContextSkia::prepareForSoftwareDraw() before drawing glyphs
3074         using skia to ensure that the backing store state is consistent.
3075
3076         * platform/graphics/chromium/FontChromiumWin.cpp:
3077         (WebCore::Font::drawGlyphs):
3078         * platform/graphics/chromium/FontLinux.cpp:
3079         (WebCore::Font::drawGlyphs):
3080
3081 2010-09-03  Kenneth Russell  <kbr@google.com>
3082
3083         Reviewed by Darin Fisher.
3084
3085         Add thirdparty directory and incorporate GLU tessellator
3086         https://bugs.webkit.org/show_bug.cgi?id=44707
3087
3088         This directory is intended to contain copies of third-party libraries used
3089         by WebCore, in particular those which may require some modification in
3090         order to incorporate.
3091
3092         No tests at this time; these sources are being added in preparation for
3093         incorporating other code which uses them, at which point the code will be
3094         exercised and testable.
3095
3096         * thirdparty: Added.
3097         * thirdparty/README.txt: Added.
3098         * thirdparty/glu: Added.
3099         * thirdparty/glu/LICENSE.txt: Added.
3100         * thirdparty/glu/README.webkit: Added.
3101         * thirdparty/glu/gluos.h: Added.
3102         * thirdparty/glu/internal_glu.h: Added.
3103         * thirdparty/glu/libtess: Added.
3104         * thirdparty/glu/libtess/GNUmakefile: Added.
3105         * thirdparty/glu/libtess/Imakefile: Added.
3106         * thirdparty/glu/libtess/README: Added.
3107         * thirdparty/glu/libtess/alg-outline: Added.
3108         * thirdparty/glu/libtess/dict-list.h: Added.
3109         * thirdparty/glu/libtess/dict.c: Added.
3110         * thirdparty/glu/libtess/dict.h: Added.
3111         * thirdparty/glu/libtess/geom.c: Added.
3112         * thirdparty/glu/libtess/geom.h: Added.
3113         * thirdparty/glu/libtess/memalloc.c: Added.
3114         * thirdparty/glu/libtess/memalloc.h: Added.
3115         * thirdparty/glu/libtess/mesh.c: Added.
3116         * thirdparty/glu/libtess/mesh.h: Added.
3117         * thirdparty/glu/libtess/normal.c: Added.
3118         * thirdparty/glu/libtess/normal.h: Added.
3119         * thirdparty/glu/libtess/priorityq-heap.c: Added.
3120         * thirdparty/glu/libtess/priorityq-heap.h: Added.
3121         * thirdparty/glu/libtess/priorityq-sort.h: Added.
3122         * thirdparty/glu/libtess/priorityq.c: Added.
3123         * thirdparty/glu/libtess/priorityq.h: Added.
3124         * thirdparty/glu/libtess/render.c: Added.
3125         * thirdparty/glu/libtess/render.h: Added.
3126         * thirdparty/glu/libtess/sweep.c: Added.
3127         * thirdparty/glu/libtess/sweep.h: Added.
3128         * thirdparty/glu/libtess/tess.c: Added.
3129         * thirdparty/glu/libtess/tess.h: Added.
3130         * thirdparty/glu/libtess/tessmono.c: Added.
3131         * thirdparty/glu/libtess/tessmono.h: Added.
3132
3133 2010-09-03  Sheriff Bot  <webkit.review.bot@gmail.com>
3134
3135         Unreviewed, rolling out r66781.
3136         http://trac.webkit.org/changeset/66781
3137         https://bugs.webkit.org/show_bug.cgi?id=45220
3138
3139         Breaks the build. Adds a mac-specific file to
3140         platform/graphics without #if PLATFORM() guards and changes
3141         the GraphicsContext3D interface without updating all
3142         implementations (Requested by jamesr on #webkit).
3143
3144         * WebCore.gypi:
3145         * WebCore.xcodeproj/project.pbxproj:
3146         * html/canvas/WebGLObject.cpp:
3147         (WebCore::WebGLObject::deleteObject):
3148         * platform/graphics/ANGLEWebKitBridge.h:
3149         * platform/graphics/GraphicsContext3D.h:
3150         * platform/graphics/GraphicsContext3DOpenGL.cpp: Removed.
3151         * platform/graphics/mac/GraphicsContext3DMac.mm:
3152         (WebCore::GraphicsContext3D::validateAttributes):
3153         (WebCore::GraphicsContext3D::makeContextCurrent):
3154         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
3155         (WebCore::GraphicsContext3D::reshape):
3156         (WebCore::ensureContext):
3157         (WebCore::GraphicsContext3D::prepareTexture):
3158         (WebCore::GraphicsContext3D::activeTexture):
3159         (WebCore::GraphicsContext3D::attachShader):
3160         (WebCore::GraphicsContext3D::bindAttribLocation):
3161         (WebCore::GraphicsContext3D::bindBuffer):
3162         (WebCore::GraphicsContext3D::bindFramebuffer):
3163         (WebCore::GraphicsContext3D::bindRenderbuffer):
3164         (WebCore::GraphicsContext3D::bindTexture):
3165         (WebCore::GraphicsContext3D::blendColor):
3166         (WebCore::GraphicsContext3D::blendEquation):
3167         (WebCore::GraphicsContext3D::blendEquationSeparate):
3168         (WebCore::GraphicsContext3D::blendFunc):
3169         (WebCore::GraphicsContext3D::blendFuncSeparate):
3170         (WebCore::GraphicsContext3D::bufferData):
3171         (WebCore::GraphicsContext3D::bufferSubData):
3172         (WebCore::GraphicsContext3D::checkFramebufferStatus):
3173         (WebCore::GraphicsContext3D::clearColor):
3174         (WebCore::GraphicsContext3D::clear):
3175         (WebCore::GraphicsContext3D::clearDepth):
3176         (WebCore::GraphicsContext3D::clearStencil):
3177         (WebCore::GraphicsContext3D::colorMask):
3178         (WebCore::GraphicsContext3D::compileShader):
3179         (WebCore::GraphicsContext3D::copyTexImage2D):
3180         (WebCore::GraphicsContext3D::copyTexSubImage2D):
3181         (WebCore::GraphicsContext3D::cullFace):
3182         (WebCore::GraphicsContext3D::depthFunc):
3183         (WebCore::GraphicsContext3D::depthMask):
3184         (WebCore::GraphicsContext3D::depthRange):
3185         (WebCore::GraphicsContext3D::detachShader):
3186         (WebCore::GraphicsContext3D::disable):
3187         (WebCore::GraphicsContext3D::disableVertexAttribArray):
3188         (WebCore::GraphicsContext3D::drawArrays):
3189         (WebCore::GraphicsContext3D::drawElements):
3190         (WebCore::GraphicsContext3D::enable):
3191         (WebCore::GraphicsContext3D::enableVertexAttribArray):
3192         (WebCore::GraphicsContext3D::finish):
3193         (WebCore::GraphicsContext3D::flush):
3194         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
3195         (WebCore::GraphicsContext3D::framebufferTexture2D):
3196         (WebCore::GraphicsContext3D::frontFace):
3197         (WebCore::GraphicsContext3D::generateMipmap):
3198         (WebCore::GraphicsContext3D::getActiveAttrib):
3199         (WebCore::GraphicsContext3D::getActiveUniform):
3200         (WebCore::GraphicsContext3D::getAttachedShaders):
3201         (WebCore::GraphicsContext3D::getAttribLocation):
3202         (WebCore::GraphicsContext3D::getContextAttributes):
3203         (WebCore::GraphicsContext3D::getError):
3204         (WebCore::GraphicsContext3D::getString):
3205         (WebCore::GraphicsContext3D::hint):
3206         (WebCore::GraphicsContext3D::isBuffer):
3207         (WebCore::GraphicsContext3D::isEnabled):
3208         (WebCore::GraphicsContext3D::isFramebuffer):
3209         (WebCore::GraphicsContext3D::isProgram):
3210         (WebCore::GraphicsContext3D::isRenderbuffer):
3211         (WebCore::GraphicsContext3D::isShader):
3212         (WebCore::GraphicsContext3D::isTexture):
3213         (WebCore::GraphicsContext3D::lineWidth):
3214         (WebCore::GraphicsContext3D::linkProgram):
3215         (WebCore::GraphicsContext3D::pixelStorei):
3216         (WebCore::GraphicsContext3D::polygonOffset):
3217         (WebCore::GraphicsContext3D::readPixels):
3218         (WebCore::GraphicsContext3D::releaseShaderCompiler):
3219         (WebCore::GraphicsContext3D::renderbufferStorage):
3220         (WebCore::GraphicsContext3D::sampleCoverage):
3221         (WebCore::GraphicsContext3D::scissor):
3222         (WebCore::GraphicsContext3D::shaderSource):
3223         (WebCore::GraphicsContext3D::stencilFunc):
3224         (WebCore::GraphicsContext3D::stencilFuncSeparate):
3225         (WebCore::GraphicsContext3D::stencilMask):
3226         (WebCore::GraphicsContext3D::stencilMaskSeparate):
3227         (WebCore::GraphicsContext3D::stencilOp):
3228         (WebCore::GraphicsContext3D::stencilOpSeparate):
3229         (WebCore::GraphicsContext3D::texParameterf):
3230         (WebCore::GraphicsContext3D::texParameteri):
3231         (WebCore::GraphicsContext3D::uniform1f):
3232         (WebCore::GraphicsContext3D::uniform1fv):
3233         (WebCore::GraphicsContext3D::uniform2f):
3234         (WebCore::GraphicsContext3D::uniform2fv):
3235         (WebCore::GraphicsContext3D::uniform3f):
3236         (WebCore::GraphicsContext3D::uniform3fv):
3237         (WebCore::GraphicsContext3D::uniform4f):
3238         (WebCore::GraphicsContext3D::uniform4fv):
3239         (WebCore::GraphicsContext3D::uniform1i):
3240         (WebCore::GraphicsContext3D::uniform1iv):
3241         (WebCore::GraphicsContext3D::uniform2i):
3242         (WebCore::GraphicsContext3D::uniform2iv):
3243         (WebCore::GraphicsContext3D::uniform3i):
3244         (WebCore::GraphicsContext3D::uniform3iv):
3245         (WebCore::GraphicsContext3D::uniform4i):
3246         (WebCore::GraphicsContext3D::uniform4iv):
3247         (WebCore::GraphicsContext3D::uniformMatrix2fv):
3248         (WebCore::GraphicsContext3D::uniformMatrix3fv):
3249         (WebCore::GraphicsContext3D::uniformMatrix4fv):
3250         (WebCore::GraphicsContext3D::useProgram):
3251         (WebCore::GraphicsContext3D::validateProgram):
3252         (WebCore::GraphicsContext3D::vertexAttrib1f):
3253         (WebCore::GraphicsContext3D::vertexAttrib1fv):
3254         (WebCore::GraphicsContext3D::vertexAttrib2f):
3255         (WebCore::GraphicsContext3D::vertexAttrib2fv):
3256         (WebCore::GraphicsContext3D::vertexAttrib3f):
3257         (WebCore::GraphicsContext3D::vertexAttrib3fv):
3258         (WebCore::GraphicsContext3D::vertexAttrib4f):
3259         (WebCore::GraphicsContext3D::vertexAttrib4fv):
3260         (WebCore::GraphicsContext3D::vertexAttribPointer):
3261         (WebCore::GraphicsContext3D::viewport):
3262         (WebCore::GraphicsContext3D::getBooleanv):
3263         (WebCore::GraphicsContext3D::getBufferParameteriv):
3264         (WebCore::GraphicsContext3D::getFloatv):
3265         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
3266         (WebCore::GraphicsContext3D::getIntegerv):
3267         (WebCore::GraphicsContext3D::getProgramiv):
3268         (WebCore::GraphicsContext3D::getProgramInfoLog):
3269         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
3270         (WebCore::GraphicsContext3D::getShaderiv):
3271         (WebCore::GraphicsContext3D::getShaderInfoLog):
3272         (WebCore::GraphicsContext3D::getShaderSource):
3273         (WebCore::GraphicsContext3D::getTexParameterfv):
3274         (WebCore::GraphicsContext3D::getTexParameteriv):
3275         (WebCore::GraphicsContext3D::getUniformfv):
3276         (WebCore::GraphicsContext3D::getUniformiv):
3277         (WebCore::GraphicsContext3D::getUniformLocation):
3278         (WebCore::GraphicsContext3D::getVertexAttribfv):
3279         (WebCore::GraphicsContext3D::getVertexAttribiv):
3280         (WebCore::GraphicsContext3D::getVertexAttribOffset):
3281         (WebCore::GraphicsContext3D::texImage2D):
3282         (WebCore::GraphicsContext3D::texSubImage2D):
3283         (WebCore::GraphicsContext3D::createBuffer):
3284         (WebCore::GraphicsContext3D::createFramebuffer):
3285         (WebCore::GraphicsContext3D::createProgram):
3286         (WebCore::GraphicsContext3D::createRenderbuffer):
3287         (WebCore::GraphicsContext3D::createShader):
3288         (WebCore::GraphicsContext3D::createTexture):
3289         (WebCore::GraphicsContext3D::deleteBuffer):
3290         (WebCore::GraphicsContext3D::deleteFramebuffer):
3291         (WebCore::GraphicsContext3D::deleteProgram):
3292         (WebCore::GraphicsContext3D::deleteRenderbuffer):
3293         (WebCore::GraphicsContext3D::deleteShader):
3294         (WebCore::GraphicsContext3D::deleteTexture):
3295         (WebCore::GraphicsContext3D::sizeInBytes):
3296         (WebCore::GraphicsContext3D::synthesizeGLError):
3297
3298 2010-09-03  James Robinson  <jamesr@chromium.org>
3299
3300         Reviewed by Kenneth Russell.
3301
3302         Force 2d canvases to be rendered in software when the composite operation isn't source-over
3303         https://bugs.webkit.org/show_bug.cgi?id=45216
3304
3305         The current accelerated 2d canvas implementation is very slow for composite operations other
3306         than the default.  This patch forces a canvas to be rendered in software if any other operation
3307         is set until we accelerate the rest.
3308
3309         Tested by any of the fast/canvas tests that use a non-default globalCompositeOperation.
3310
3311         * html/canvas/CanvasRenderingContext2D.cpp:
3312         (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation):
3313         * platform/graphics/skia/PlatformContextSkia.cpp:
3314         (WebCore::PlatformContextSkia::setSharedGraphicsContext3D):
3315
3316 2010-09-03  Paul Sawaya  <psawaya@apple.com>
3317
3318         Reviewed by Chris Marrin.
3319
3320         Refactored out Mac specific code for platform/graphics/mac/GraphicsContext3D.mm file.
3321         Left general OpenGL code in platform/graphics/GraphicsContext3DOpenGL.cpp.
3322         https://bugs.webkit.org/show_bug.cgi?id=30625
3323
3324         * WebCore.gypi:
3325         * WebCore.xcodeproj/project.pbxproj:
3326         * html/canvas/WebGLObject.cpp:
3327         (WebCore::WebGLObject::deleteObject):
3328         * platform/graphics/ANGLEWebKitBridge.h:
3329         * platform/graphics/GraphicsContext3D.h:
3330         * platform/graphics/GraphicsContext3DOpenGL.cpp: Copied from platform/graphics/mac/GraphicsContext3DMac.mm.
3331         (WebCore::GraphicsContext3D::prepareTexture):
3332         (WebCore::GraphicsContext3D::activeTexture):
3333         (WebCore::GraphicsContext3D::attachShader):
3334         (WebCore::GraphicsContext3D::bindAttribLocation):
3335         (WebCore::GraphicsContext3D::bindBuffer):
3336         (WebCore::GraphicsContext3D::bindFramebuffer):
3337         (WebCore::GraphicsContext3D::bindRenderbuffer):
3338         (WebCore::GraphicsContext3D::bindTexture):
3339         (WebCore::GraphicsContext3D::blendColor):
3340         (WebCore::GraphicsContext3D::blendEquation):
3341         (WebCore::GraphicsContext3D::blendEquationSeparate):
3342         (WebCore::GraphicsContext3D::blendFunc):
3343         (WebCore::GraphicsContext3D::blendFuncSeparate):
3344         (WebCore::GraphicsContext3D::bufferData):
3345         (WebCore::GraphicsContext3D::bufferSubData):
3346         (WebCore::GraphicsContext3D::checkFramebufferStatus):
3347         (WebCore::GraphicsContext3D::clearColor):
3348         (WebCore::GraphicsContext3D::clear):
3349         (WebCore::GraphicsContext3D::clearDepth):
3350         (WebCore::GraphicsContext3D::clearStencil):
3351         (WebCore::GraphicsContext3D::colorMask):
3352         (WebCore::GraphicsContext3D::compileShader):
3353         (WebCore::GraphicsContext3D::copyTexImage2D):
3354         (WebCore::GraphicsContext3D::copyTexSubImage2D):
3355         (WebCore::GraphicsContext3D::cullFace):
3356         (WebCore::GraphicsContext3D::depthFunc):
3357         (WebCore::GraphicsContext3D::depthMask):
3358         (WebCore::GraphicsContext3D::depthRange):
3359         (WebCore::GraphicsContext3D::detachShader):
3360         (WebCore::GraphicsContext3D::disable):
3361         (WebCore::GraphicsContext3D::disableVertexAttribArray):
3362         (WebCore::GraphicsContext3D::drawArrays):
3363         (WebCore::GraphicsContext3D::drawElements):
3364         (WebCore::GraphicsContext3D::enable):
3365         (WebCore::GraphicsContext3D::enableVertexAttribArray):
3366         (WebCore::GraphicsContext3D::finish):
3367         (WebCore::GraphicsContext3D::flush):
3368         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
3369         (WebCore::GraphicsContext3D::framebufferTexture2D):
3370         (WebCore::GraphicsContext3D::frontFace):
3371         (WebCore::GraphicsContext3D::generateMipmap):
3372         (WebCore::GraphicsContext3D::getActiveAttrib):
3373         (WebCore::GraphicsContext3D::getActiveUniform):
3374         (WebCore::GraphicsContext3D::getAttachedShaders):
3375         (WebCore::GraphicsContext3D::getAttribLocation):
3376         (WebCore::GraphicsContext3D::getError):
3377         (WebCore::GraphicsContext3D::getString):
3378         (WebCore::GraphicsContext3D::hint):
3379         (WebCore::GraphicsContext3D::isBuffer):
3380         (WebCore::GraphicsContext3D::isEnabled):
3381         (WebCore::GraphicsContext3D::isFramebuffer):
3382         (WebCore::GraphicsContext3D::isProgram):
3383         (WebCore::GraphicsContext3D::isRenderbuffer):
3384         (WebCore::GraphicsContext3D::isShader):
3385         (WebCore::GraphicsContext3D::isTexture):
3386         (WebCore::GraphicsContext3D::lineWidth):
3387         (WebCore::GraphicsContext3D::linkProgram):
3388         (WebCore::GraphicsContext3D::pixelStorei):
3389         (WebCore::GraphicsContext3D::polygonOffset):
3390         (WebCore::GraphicsContext3D::readPixels):
3391         (WebCore::GraphicsContext3D::releaseShaderCompiler):
3392         (WebCore::GraphicsContext3D::renderbufferStorage):
3393         (WebCore::GraphicsContext3D::sampleCoverage):
3394         (WebCore::GraphicsContext3D::scissor):
3395         (WebCore::GraphicsContext3D::shaderSource):
3396         (WebCore::GraphicsContext3D::stencilFunc):
3397         (WebCore::GraphicsContext3D::stencilFuncSeparate):
3398         (WebCore::GraphicsContext3D::stencilMask):
3399         (WebCore::GraphicsContext3D::stencilMaskSeparate):
3400         (WebCore::GraphicsContext3D::stencilOp):
3401         (WebCore::GraphicsContext3D::stencilOpSeparate):
3402         (WebCore::GraphicsContext3D::texParameterf):
3403         (WebCore::GraphicsContext3D::texParameteri):
3404         (WebCore::GraphicsContext3D::uniform1f):
3405         (WebCore::GraphicsContext3D::uniform1fv):
3406         (WebCore::GraphicsContext3D::uniform2f):
3407         (WebCore::GraphicsContext3D::uniform2fv):
3408         (WebCore::GraphicsContext3D::uniform3f):
3409         (WebCore::GraphicsContext3D::uniform3fv):
3410         (WebCore::GraphicsContext3D::uniform4f):
3411         (WebCore::GraphicsContext3D::uniform4fv):
3412         (WebCore::GraphicsContext3D::uniform1i):
3413         (WebCore::GraphicsContext3D::uniform1iv):
3414         (WebCore::GraphicsContext3D::uniform2i):
3415         (WebCore::GraphicsContext3D::uniform2iv):
3416         (WebCore::GraphicsContext3D::uniform3i):
3417         (WebCore::GraphicsContext3D::uniform3iv):
3418         (WebCore::GraphicsContext3D::uniform4i):
3419         (WebCore::GraphicsContext3D::uniform4iv):
3420         (WebCore::GraphicsContext3D::uniformMatrix2fv):
3421         (WebCore::GraphicsContext3D::uniformMatrix3fv):
3422         (WebCore::GraphicsContext3D::uniformMatrix4fv):
3423         (WebCore::GraphicsContext3D::useProgram):
3424         (WebCore::GraphicsContext3D::validateProgram):
3425         (WebCore::GraphicsContext3D::vertexAttrib1f):
3426         (WebCore::GraphicsContext3D::vertexAttrib1fv):
3427         (WebCore::GraphicsContext3D::vertexAttrib2f):
3428         (WebCore::GraphicsContext3D::vertexAttrib2fv):
3429         (WebCore::GraphicsContext3D::vertexAttrib3f):
3430         (WebCore::GraphicsContext3D::vertexAttrib3fv):
3431         (WebCore::GraphicsContext3D::vertexAttrib4f):
3432         (WebCore::GraphicsContext3D::vertexAttrib4fv):
3433         (WebCore::GraphicsContext3D::vertexAttribPointer):
3434         (WebCore::GraphicsContext3D::viewport):
3435         (WebCore::GraphicsContext3D::getBooleanv):
3436         (WebCore::GraphicsContext3D::getBufferParameteriv):
3437         (WebCore::GraphicsContext3D::getFloatv):
3438         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
3439         (WebCore::GraphicsContext3D::getIntegerv):
3440         (WebCore::GraphicsContext3D::getProgramiv):
3441         (WebCore::GraphicsContext3D::getProgramInfoLog):
3442         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
3443         (WebCore::GraphicsContext3D::getShaderiv):
3444         (WebCore::GraphicsContext3D::getShaderInfoLog):
3445         (WebCore::GraphicsContext3D::getShaderSource):
3446         (WebCore::GraphicsContext3D::getTexParameterfv):
3447         (WebCore::GraphicsContext3D::getTexParameteriv):
3448         (WebCore::GraphicsContext3D::getUniformfv):
3449         (WebCore::GraphicsContext3D::getUniformiv):
3450         (WebCore::GraphicsContext3D::getUniformLocation):
3451         (WebCore::GraphicsContext3D::getVertexAttribfv):
3452         (WebCore::GraphicsContext3D::getVertexAttribiv):
3453         (WebCore::GraphicsContext3D::getVertexAttribOffset):
3454         (WebCore::GraphicsContext3D::texImage2D):
3455         (WebCore::GraphicsContext3D::texSubImage2D):
3456         (WebCore::GraphicsContext3D::createBuffer):
3457         (WebCore::GraphicsContext3D::createFramebuffer):
3458         (WebCore::GraphicsContext3D::createProgram):
3459         (WebCore::GraphicsContext3D::createRenderbuffer):
3460         (WebCore::GraphicsContext3D::createShader):
3461         (WebCore::GraphicsContext3D::createTexture):
3462         (WebCore::GraphicsContext3D::deleteBuffer):
3463         (WebCore::GraphicsContext3D::deleteFramebuffer):
3464         (WebCore::GraphicsContext3D::deleteProgram):
3465         (WebCore::GraphicsContext3D::deleteRenderbuffer):
3466         (WebCore::GraphicsContext3D::deleteShader):
3467         (WebCore::GraphicsContext3D::deleteTexture):
3468         * platform/graphics/mac/GraphicsContext3DMac.mm:
3469         (WebCore::GraphicsContext3D::ensureContext):
3470         (WebCore::GraphicsContext3D::isErrorGeneratedOnOutOfBoundsAccesses):
3471
3472 2010-09-03  James Robinson  <jamesr@chromium.org>
3473
3474         Reviewed by Darin Fisher.
3475
3476         [chromium] Implement ImageBufferSkia::draw on the GPU when possible
3477         https://bugs.webkit.org/show_bug.cgi?id=45207
3478
3479         When drawing from an ImageBuffer into a GraphicsContext, attempt to do the
3480         draw in hardware when possible.  This is how canvas 2d's drawImage(canvas, ...)
3481         is implemented.  Adds new API to DrawingBuffer to request a texture containing
3482         the DrawingBuffer's current rendering results.
3483
3484         Test: covered fast/canvas/drawImage.html and all other tests that draw from one
3485         2d canvas into another.
3486
3487         * html/canvas/CanvasRenderingContext2D.cpp:
3488         (WebCore::CanvasRenderingContext2D::drawImage):
3489         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3490         (WebCore::DrawingBuffer::getRenderingResultsAsTexture):
3491         * platform/graphics/gpu/DrawingBuffer.h:
3492         * platform/graphics/skia/ImageBufferSkia.cpp:
3493         (WebCore::ImageBuffer::draw):
3494
3495 2010-09-03  James Robinson  <jamesr@chromium.org>
3496
3497         Reviewed by Kenneth Russell.
3498
3499         [chromium] Null out Canvas2DLayerChromium's back reference to DrawingBuffer on destruction
3500         https://bugs.webkit.org/show_bug.cgi?id=45187
3501
3502         Canvas2DLayerChromium keeps a back reference to a DrawingBuffer.  This has to be a raw pointer
3503         because the DrawingBuffer holds a RefPtr to the Canvas2DLayerChromium.  Since the layer can
3504         outlive the buffer, this back reference has to be explicitly cleared when the DrawingBuffer
3505         is destroyed.
3506
3507         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3508         (WebCore::Canvas2DLayerChromium::setDrawingBuffer):
3509         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3510         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3511         (WebCore::DrawingBuffer::~DrawingBuffer):
3512
3513 2010-09-03  Kenneth Russell  <kbr@google.com>
3514
3515         Reviewed by Darin Fisher.
3516
3517         Add interval tree capable of holding plain old data (POD)
3518         https://bugs.webkit.org/show_bug.cgi?id=45160
3519
3520         Adding an interval tree currently capable of holding types which
3521         do not require their destructors to be called. POD is a slight
3522         misnomer which will be corrected soon, hopefully by removing this
3523         restriction.
3524
3525         This class is based on the augmentable property of the red/black
3526         tree integrated under bug 45059.
3527
3528         Unit tests for the PODIntervalTree will be integrated separately
3529         under bug 45161.
3530
3531         * WebCore.gypi:
3532         * platform/graphics/gpu/PODInterval.h: Added.
3533         (WebCore::PODInterval::PODInterval):
3534         (WebCore::PODInterval::low):
3535         (WebCore::PODInterval::high):
3536         (WebCore::PODInterval::data):
3537         (WebCore::PODInterval::overlaps):
3538         (WebCore::PODInterval::operator<):
3539         (WebCore::PODInterval::operator==):
3540         (WebCore::PODInterval::maxHigh):
3541         (WebCore::PODInterval::setMaxHigh):
3542         (WebCore::PODInterval::toString):
3543         * platform/graphics/gpu/PODIntervalTree.h: Added.
3544         (WebCore::PODIntervalTree::PODIntervalTree):
3545         (WebCore::PODIntervalTree::allOverlaps):
3546         (WebCore::PODIntervalTree::createInterval):
3547         (WebCore::PODIntervalTree::checkInvariants):
3548         (WebCore::PODIntervalTree::init):
3549         (WebCore::PODIntervalTree::searchForOverlapsFrom):
3550         (WebCore::PODIntervalTree::updateNode):
3551         (WebCore::PODIntervalTree::checkInvariantsFromNode):
3552         (WebCore::valueToString):
3553
3554 2010-09-02  Vangelis Kokkevis  <vangelis@chromium.org>
3555
3556         Reviewed by Darin Fisher.
3557
3558         [chromium] Gracefully switch over to software compositing if the accelerated
3559         compositor fails to initialize. LayerRendererChromium::create() will now return 0
3560         if the GLES2Context passed to it is NULL or the LayerRendererChromium failed to initialize
3561         hardware rendering.
3562         https://bugs.webkit.org/show_bug.cgi?id=45124
3563         
3564         Tested by forcing the creation of the gles2 context to fail and loading pages that normally trigger