76e54669769afdead35738ff624cbbb456ca312a
[WebKit.git] / Source / WebCore / ChangeLog
1 2011-05-24  Kenneth Russell  <kbr@google.com>
2
3         Reviewed by James Robinson.
4
5         Implement Float64Array
6         https://bugs.webkit.org/show_bug.cgi?id=39144
7
8         Implemented Float64Array based on the existing Float32Array sources.
9         Built and tested in Chromium on Linux and Mac OS X and Safari on Mac OS X.
10
11         * CMakeLists.txt:
12         * CodeGenerators.pri:
13         * DerivedSources.cpp:
14         * DerivedSources.make:
15         * GNUmakefile.list.am:
16         * UseJSC.cmake:
17         * WebCore.gypi:
18         * WebCore.pro:
19         * WebCore.vcproj/WebCore.vcproj:
20         * WebCore.xcodeproj/project.pbxproj:
21         * bindings/js/JSBindingsAllInOne.cpp:
22         * bindings/js/JSDOMWindowCustom.cpp:
23         (WebCore::JSDOMWindow::float64Array):
24         * bindings/js/JSFloat64ArrayCustom.cpp: Added.
25         (WebCore::JSFloat64Array::indexSetter):
26         (WebCore::toJS):
27         (WebCore::JSFloat64Array::set):
28         (WebCore::JSFloat64ArrayConstructor::constructJSFloat64Array):
29         * bindings/v8/custom/V8Float64ArrayCustom.cpp: Added.
30         (WebCore::V8Float64Array::constructorCallback):
31         (WebCore::V8Float64Array::setCallback):
32         (WebCore::toV8):
33         * html/canvas/ArrayBufferView.h:
34         (WebCore::ArrayBufferView::isDoubleArray):
35         * html/canvas/Float64Array.cpp: Added.
36         (WebCore::Float64Array::create):
37         (WebCore::Float64Array::Float64Array):
38         (WebCore::Float64Array::subarray):
39         * html/canvas/Float64Array.h: Added.
40         (WebCore::Float64Array::set):
41         (WebCore::Float64Array::item):
42         (WebCore::Float64Array::isDoubleArray):
43         * html/canvas/Float64Array.idl: Added.
44         * page/DOMWindow.idl:
45         * workers/WorkerContext.idl:
46
47 2011-05-24  Simon Fraser  <simon.fraser@apple.com>
48
49         Reviewed by Chris Marrin.
50
51         Add ability to set compositing layer bounds origin
52         https://bugs.webkit.org/show_bug.cgi?id=61381
53
54         On Core Animation layers, the origin of the bounds
55         rectangle affects where layer content is rendered, as well
56         as the offset of sublayers. Currently we always set the
57         bounds offset to a zero point, but may need to make use
58         of the bounds offset in future, so expose it via GraphicsLayer.
59
60         * platform/graphics/GraphicsLayer.h:
61         (WebCore::GraphicsLayer::boundsOrigin):
62         (WebCore::GraphicsLayer::setBoundsOrigin):
63         * platform/graphics/ca/GraphicsLayerCA.cpp:
64         (WebCore::GraphicsLayerCA::setSize):
65         (WebCore::GraphicsLayerCA::setBoundsOrigin):
66         (WebCore::GraphicsLayerCA::setAllowTiledLayer):
67         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
68         (WebCore::GraphicsLayerCA::updateBounds):
69         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
70         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
71         * platform/graphics/ca/GraphicsLayerCA.h:
72
73 2011-05-24  Leandro Pereira  <leandro@profusion.mobi>
74
75         [EFL] Build fix.
76
77         * CMakeLists.txt: Also build platform/network/ContentTypeParser.cpp,
78         added by r86289.
79
80 2011-05-24  Leandro Pereira  <leandro@profusion.mobi>
81
82         [EFL] Build fix.
83
84         * bridge/runtime_root.cpp: Include <heap/Weak.h> instead of
85         <JavaScriptCore/Weak.h>.
86
87 2011-05-24  Jay Civelli  <jcivelli@chromium.org>
88
89         Reviewed by Adam Barth.
90
91         Adding MHTML reading support. That required some basic MIME header parsing.
92         Modified DocumentLoader to keep a reference to the currently Archive loaded,
93         so we can have different policies for loading subresources depending on the
94         archive type.
95         https://bugs.webkit.org/show_bug.cgi?id=7168
96
97         * CMakeLists.txt:
98         * Configurations/FeatureDefines.xcconfig:
99         * GNUmakefile.am:
100         * GNUmakefile.list.am:
101         * WebCore.gyp/WebCore.gyp:
102         * WebCore.gypi:
103         * WebCore.pro:
104         * WebCore.vcproj/WebCore.vcproj:
105         * WebCore.xcodeproj/project.pbxproj:
106         * features.pri:
107         * loader/DocumentLoader.cpp:
108         (WebCore::DocumentLoader::commitLoad):
109         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
110         (WebCore::DocumentLoader::popArchiveForSubframe):
111         (WebCore::DocumentLoader::scheduleArchiveLoad):
112         * loader/DocumentLoader.h:
113         * loader/FrameLoader.cpp:
114         (WebCore::FrameLoader::loadURLIntoChildFrame):
115         (WebCore::FrameLoader::loadArchive):
116         (WebCore::FrameLoader::stopAllLoaders):
117         (WebCore::FrameLoader::finishedLoadingDocument):
118         * loader/FrameLoader.h:
119         (WebCore::FrameLoader::archive):
120         * loader/MainResourceLoader.cpp:
121         (WebCore::MainResourceLoader::continueAfterContentPolicy):
122         * loader/ResourceLoader.cpp:
123         (WebCore::ResourceLoader::start):
124         * loader/archive/Archive.cpp: Added.
125         * loader/archive/Archive.h:
126         (WebCore::Archive::mainResource):
127         * loader/archive/ArchiveFactory.cpp:
128         (WebCore::archiveFactoryCreate):
129         (WebCore::archiveMIMETypes):
130         (WebCore::ArchiveFactory::create):
131         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
132         * loader/archive/ArchiveFactory.h:
133         * loader/archive/ArchiveResourceCollection.cpp:
134         (WebCore::ArchiveResourceCollection::addAllResources):
135         (WebCore::ArchiveResourceCollection::popSubframeArchive):
136         * loader/archive/ArchiveResourceCollection.h:
137         * loader/archive/cf/LegacyWebArchive.cpp:
138         (WebCore::LegacyWebArchive::create):
139         (WebCore::LegacyWebArchive::type):
140         * loader/archive/cf/LegacyWebArchive.h:
141         * loader/archive/mhtml/MHTMLArchive.cpp: Added.
142         * loader/archive/mhtml/MHTMLArchive.h: Added.
143         * loader/archive/mhtml/MHTMLParser.cpp: Added.
144         * loader/archive/mhtml/MHTMLParser.h: Added.
145         * platform/MIMETypeRegistry.cpp:
146         (WebCore::initializeSupportedNonImageMimeTypes):
147         * platform/mac/PasteboardMac.mm:
148         (WebCore::Pasteboard::documentFragment):
149         * platform/network/MIMEHeader.cpp: Added.
150         * platform/network/MIMEHeader.h: Added.
151
152 2011-05-24  Geoffrey Garen  <ggaren@apple.com>
153
154         Try to fix some builds: #include Weak.h for Weak<T>.
155
156         * bridge/runtime_root.h:
157
158 2011-05-24  Sam Weinig  <sam@webkit.org>
159
160         Reviewed by Beth Dakin.
161
162         Can't scroll scaled page that has overflow:hidden on its root
163         <rdar://problem/9029189>
164         https://bugs.webkit.org/show_bug.cgi?id=61339
165
166         Test: fast/events/scroll-in-scaled-page-with-overflow-hidden.html
167
168         * page/FrameView.cpp:
169         (WebCore::FrameView::applyOverflowToViewport):
170         Scrollbars should be enabled for the viewport when scaled, even if overflow:hidden
171         is specified.
172
173 2011-05-24  Adam Roben  <aroben@apple.com>
174
175         Leopard build fix
176
177         * bridge/runtime_root.cpp: Added a missing #include.
178
179 2011-05-24  Jian Li  <jianli@chromium.org>
180
181         Reviewed by Kenneth Russell.
182
183         Make start parameter of Blob.slice optional.
184         https://bugs.webkit.org/show_bug.cgi?id=59628
185
186         The start parameter should be optional per the latest FILE API
187         spec: http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob.
188
189         * fileapi/Blob.h:
190         * fileapi/Blob.idl: Make start parameter optional.
191
192 2011-05-24  Adam Roben  <aroben@apple.com>
193
194         Invalidate RuntimeObjects when they are finalized
195
196         This will cause the underlying NPObject to be released at finalization time, rather than at
197         destruction time (which is unpredictable and could occur after the plugin has been
198         unloaded).
199
200         Test: plugins/npobject-js-wrapper-destroyed-after-plugin-unload.html
201
202         Fixes <http://webkit.org/b/61317> <rdar://problem/9489829> Crash in _NPN_DeallocateObject
203         when reloading yahoo.com webarchive in WebKit1
204
205         Reviewed by Oliver Hunt.
206
207         * bridge/runtime_object.cpp:
208         (JSC::Bindings::RuntimeObject::~RuntimeObject): Assert that we've already been invalidated.
209
210         * bridge/runtime_root.cpp:
211         (JSC::Bindings::RootObject::invalidate):
212         (JSC::Bindings::RootObject::addRuntimeObject):
213         Updated for m_runtimeObjects type change.
214
215         (JSC::Bindings::RootObject::finalize): Added. Invalidates the RuntimeObject and removes it
216         from the map.
217
218         * bridge/runtime_root.h: Now inherits from WeakHandleOwner.
219         Changed m_runtimeObjects from a WeakGCMap to a HashMap of JSC::Weak objects so that we will
220         be notified when the RuntimeObjects are finalized.
221
222 2011-05-24  Mike Reed  <reed@google.com>
223
224         Reviewed by Kenneth Russell.
225
226         skia: fix stroking of zero-height rectangles
227         https://bugs.webkit.org/show_bug.cgi?id=61284
228
229         Tests: canvas/philip/tests/2d.line.miter.lineedge.html
230                canvas/philip/tests/2d.strokeRect.zero.4.html
231
232         * platform/graphics/skia/GraphicsContextSkia.cpp:
233         (WebCore::GraphicsContext::strokeRect):
234
235 2011-05-24  Zan Dobersek  <zandobersek@gmail.com> and Philippe Normand  <pnormand@igalia.com>
236
237         Reviewed by Kenneth Russell.
238
239         Enable FloatArray usage outside WebGL guards
240         https://bugs.webkit.org/show_bug.cgi?id=61356
241
242         * webaudio/AudioBuffer.cpp:
243         * webaudio/AudioBuffer.idl:
244         * webaudio/RealtimeAnalyser.cpp:
245         * webaudio/RealtimeAnalyser.h:
246         * webaudio/RealtimeAnalyserNode.h:
247         * webaudio/RealtimeAnalyserNode.idl:
248
249 2011-05-24  Adam Klein  <adamk@chromium.org>
250
251         Unreviewed, rolling out r87145.
252         http://trac.webkit.org/changeset/87145
253         https://bugs.webkit.org/show_bug.cgi?id=61194
254
255         Regression in LayoutTests/inspector/debugger/scripts-panel.html on Chromium Win & Linux.
256
257         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
258         (WebCore::V8InjectedScriptHost::evaluateCallback):
259
260 2011-05-24  Matthew Delaney  <mdelaney@apple.com>
261
262         Reviewed by Simon Fraser.
263
264         Clamp coordinates to integers for canvas create/getImageData routines
265         https://bugs.webkit.org/show_bug.cgi?id=61135
266
267         Test: fast/canvas/canvas-getImageData-largeNonintegralDimensions.html
268
269         * html/HTMLCanvasElement.cpp:
270         (WebCore::HTMLCanvasElement::convertLogicalToDevice): clamp to ints
271         * html/canvas/CanvasRenderingContext2D.cpp:
272         (WebCore::CanvasRenderingContext2D::createImageData):
273         (WebCore::CanvasRenderingContext2D::getImageData):
274         * platform/graphics/cg/ImageBufferDataCG.cpp:
275         (WebCore::ImageBufferData::getData):
276
277 2011-05-24  Robin Dunn  <robin@alldunn.com>
278
279         Reviewed by Kevin Ollivier.
280
281         [wx] Make sure x and y adjustments are applied to all operations, and fix the calculations
282         for the height and width checks to take into account x and y offsets.
283         
284         https://bugs.webkit.org/show_bug.cgi?id=61367
285
286         * platform/graphics/wx/ImageWx.cpp:
287         (WebCore::Image::drawPattern):
288
289 2011-05-24  Tony Chang  <tony@chromium.org>
290
291         Reviewed by James Robinson.
292
293         fix render overflow computation for input type=range
294         https://bugs.webkit.org/show_bug.cgi?id=61132
295
296         Test: fast/forms/slider-hit-testing.html
297
298         We need to clear m_overflow otherwise we use the first
299         size of the slider for hit testing (i.e., changes to the size
300         cause problems).  This only shows up if the thumb isn't contained
301         in the bounds of the slider.  Making the range have a smaller height
302         than the thumb shows the bug.
303
304         * rendering/RenderSlider.cpp:
305         (WebCore::RenderSlider::layout): Clear the overflow during layout
306             so we re-compute the overflow based on the current size of the
307             slider.
308
309 2011-05-24  Alok Priyadarshi  <alokp@chromium.org>
310
311         Reviewed by James Robinson.
312
313         Enable skia gpu rendering for content layers
314         https://bugs.webkit.org/show_bug.cgi?id=56749
315
316         This patch adds gpu accelerated rendering for content and root layers.
317         Layer textures are updated in two stages:
318         1. Paint: The non-accelerated path paints the layer contents into a bitmap.
319                   The accelerated path paints into an SkPicture, which is essentially a display list.
320         2. Upload: The non-accelerated path uploads the pixels obtained in the first stage to a texture.
321                    The accelerated path renders the picture directly into the texture.
322
323         The accelerated path can be enabled by --enable-accelerated-drawing command-line flag in chromium.
324         Note that this patch does not accelerate the CG path on mac. We have two options here - use skia or accelrate CG path.
325         Any bugs should be caught by layout tests.
326
327         * platform/graphics/chromium/ContentLayerChromium.cpp:
328         (WebCore::ContentLayerChromium::createTextureUpdater):
329         * platform/graphics/chromium/LayerRendererChromium.cpp:
330         (WebCore::LayerRendererChromium::create):
331         (WebCore::LayerRendererChromium::LayerRendererChromium):
332         (WebCore::LayerRendererChromium::skiaContext):
333         (WebCore::LayerRendererChromium::updateAndDrawLayers):
334         (WebCore::LayerRendererChromium::createRootLayerTextureUpdater):
335         * platform/graphics/chromium/LayerRendererChromium.h:
336         (WebCore::LayerRendererChromium::acceleratedDrawing):
337         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
338         (WebCore::LayerTextureUpdaterSkPicture::LayerTextureUpdaterSkPicture):
339         (WebCore::LayerTextureUpdaterSkPicture::~LayerTextureUpdaterSkPicture):
340         (WebCore::LayerTextureUpdaterSkPicture::prepareToUpdate):
341         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
342         (WebCore::LayerTextureUpdaterSkPicture::deleteFrameBuffer):
343         (WebCore::LayerTextureUpdaterSkPicture::createFrameBuffer):
344         (WebCore::LayerTextureUpdaterSkPicture::clearFrameBuffer):
345         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
346         (WebCore::LayerTextureUpdaterSkPicture::orientation):
347         * platform/graphics/chromium/LayerTilerChromium.cpp:
348         (WebCore::LayerTilerChromium::updateRect):
349         (WebCore::LayerTilerChromium::draw):
350
351 2011-05-24  Pavel Podivilov  <podivilov@chromium.org>
352
353         Reviewed by Yury Semikhatsky.
354
355         Web Inspector: display keyboard shortcuts in scripts panel sidebar buttons tooltip text.
356         https://bugs.webkit.org/show_bug.cgi?id=61358
357
358         * English.lproj/localizedStrings.js:
359         * inspector/front-end/CallStackSidebarPane.js:
360         (WebInspector.CallStackSidebarPane.prototype._selectedPlacardByIndex):
361         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
362         * inspector/front-end/Panel.js:
363         (WebInspector.Panel.prototype.registerShortcut):
364         * inspector/front-end/ScriptsPanel.js:
365         (WebInspector.ScriptsPanel):
366         (WebInspector.ScriptsPanel.prototype._createSidebarButtons):
367         (WebInspector.ScriptsPanel.prototype._createSidebarButtonAndRegisterShortcuts):
368
369 2011-05-24  Philippe Normand  <pnormand@igalia.com>
370
371         Reviewed by Andres Kling.
372
373         JSAudioContextCustom doesn't encode errors
374         https://bugs.webkit.org/show_bug.cgi?id=61357
375
376         Fix AudioContext return values
377
378         * bindings/js/JSAudioContextCustom.cpp:
379         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
380
381 2011-05-24  Rob Buis  <rbuis@rim.com>
382
383         Rubber-stamped by Dirk Schulze.
384
385         Remove requiresLayer inlines, already provided by RenderSVGModelObject.
386
387         * rendering/svg/RenderSVGHiddenContainer.h:
388         (WebCore::RenderSVGHiddenContainer::isSVGHiddenContainer):
389         * rendering/svg/RenderSVGImage.h:
390
391 2011-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>
392
393         Not reviewed, build fix.
394
395         Remove platform layering violation: TextRun stores RenderObjects for SVG Fonts support
396         https://bugs.webkit.org/show_bug.cgi?id=60254
397
398         Forgot to rename the destructor.
399
400         * platform/graphics/SimpleFontData.h:
401         (WebCore::SimpleFontData::AdditionalFontData::~AdditionalFontData):
402
403 2011-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>
404
405         Not reviewed, build fix.
406
407         Remove platform layering violation: TextRun stores RenderObjects for SVG Fonts support
408         https://bugs.webkit.org/show_bug.cgi?id=60254
409
410         Rename SimpleFontData::FontData subclass to AdditionalFontData, to avoid clashes with the WebCore::FontData class, which breaks the win build.
411
412         * platform/graphics/SimpleFontData.cpp:
413         (WebCore::SimpleFontData::SimpleFontData):
414         * platform/graphics/SimpleFontData.h:
415         (WebCore::SimpleFontData::fontData):
416         * svg/SVGFontData.h:
417
418 2011-05-24  Nikolas Zimmermann  <nzimmermann@rim.com>
419
420         Reviewed by Antti Koivisto.
421
422         Remove platform layering violation: TextRun stores RenderObjects for SVG Fonts support
423         https://bugs.webkit.org/show_bug.cgi?id=60254
424
425         First part:
426         Remove a long-standing layering violation in TextRun: it stores RenderObject/RenderSVGResource pointers for SVG Fonts support.
427         Replace the two Render* pointers with a single RefPtr<AbstractRenderingContext>. AbstractRenderingContext is a helper class,
428         that can be derived from in order to associate additional data with a TextRun. This effectively reduces the memory consumption of TextRun.
429
430         Introduce rendering/TextRunRenderingContext.h, which inherits from TextRun::AbstractRenderingContext and holds additional data.
431         If the primary font in use is a SVG Font then allocate a TextRunRenderingContext object and store it in the RefPtr<AbstractRenderingContext>
432         in TextRun. If the primary font is not a SVG Font, don't even allocate the TextRunRenderingContext structure, as we won't need the context data.
433         SVG Fonts glyph matching only works within a context, so we need access to the RenderObject that's drawing the text.
434
435         This is the main preparation patch for the SVG Fonts rewrite, that will allow us to share the simple text code path for SVG Fonts as well,
436         making all CSS text properties work for HTML text using SVG Fonts, and allows proper integration within the GlyphPage concept. Soon
437         we can intermix WOFF/SVG & native fonts, within segment font declarations.
438
439         Second part:
440         Remove a long-standing layering violation in SimpleFontData: it stores SVGFontData objects, that are living in svg/.
441         Use the same concept as above, introduce SimpleFontData::AbstractFontData, and let SVGFontData inherit from AbstractFontData and extent it.
442         If SVG Fonts are used, CSSFontFaceSource will create a SVGFontData object and pass it as PassOwnPtr<AbstractFontData> to SimpleFontData.
443
444         All layering violations are gone now, SVG Fonts are cleanly integrated now.
445         Doesn't affect any tests yet, refactoring only.
446
447         * CMakeLists.txt:
448         * GNUmakefile.list.am:
449         * WebCore.gypi:
450         * WebCore.pro:
451         * WebCore.vcproj/WebCore.vcproj:
452         * WebCore.xcodeproj/project.pbxproj:
453         * css/CSSFontFaceSource.cpp:
454         (WebCore::CSSFontFaceSource::getFontData):
455         * platform/graphics/Font.cpp:
456         (WebCore::Font::drawText):
457         (WebCore::Font::width):
458         (WebCore::Font::selectionRectForText):
459         (WebCore::Font::offsetForPosition):
460         * platform/graphics/Font.h:
461         * platform/graphics/SimpleFontData.cpp:
462         (WebCore::SimpleFontData::SimpleFontData):
463         (WebCore::SimpleFontData::~SimpleFontData):
464         * platform/graphics/SimpleFontData.h:
465         (WebCore::SimpleFontData::FontData::~FontData):
466         (WebCore::SimpleFontData::fontMetrics):
467         (WebCore::SimpleFontData::setMaxCharWidth):
468         (WebCore::SimpleFontData::setAvgCharWidth):
469         (WebCore::SimpleFontData::setSpaceWidth):
470         (WebCore::SimpleFontData::setSpaceGlyph):
471         (WebCore::SimpleFontData::setZeroWidthSpaceGlyph):
472         (WebCore::SimpleFontData::fontData):
473         (WebCore::SimpleFontData::isSVGFont):
474         (WebCore::SimpleFontData::setMissingGlyphData):
475         * platform/graphics/TextRun.h:
476         (WebCore::TextRun::TextRun):
477         (WebCore::TextRun::setAllowTabs):
478         (WebCore::TextRun::setXPos):
479         (WebCore::TextRun::RenderingContext::~RenderingContext):
480         (WebCore::TextRun::renderingContext):
481         (WebCore::TextRun::setRenderingContext):
482         * rendering/EllipsisBox.cpp:
483         (WebCore::EllipsisBox::paint):
484         (WebCore::EllipsisBox::selectionRect):
485         (WebCore::EllipsisBox::paintSelection):
486         * rendering/InlineTextBox.cpp:
487         (WebCore::InlineTextBox::selectionRect):
488         (WebCore::InlineTextBox::paint):
489         (WebCore::InlineTextBox::paintSelection):
490         (WebCore::InlineTextBox::paintCompositionBackground):
491         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
492         (WebCore::InlineTextBox::paintTextMatchMarker):
493         (WebCore::InlineTextBox::computeRectForReplacementMarker):
494         (WebCore::InlineTextBox::offsetForPosition):
495         (WebCore::InlineTextBox::positionForOffset):
496         (WebCore::InlineTextBox::constructTextRun):
497         * rendering/InlineTextBox.h:
498         * rendering/RenderBlock.cpp:
499         (WebCore::stripTrailingSpace):
500         (WebCore::RenderBlock::constructTextRun):
501         * rendering/RenderBlock.h:
502         * rendering/RenderBlockLineLayout.cpp:
503         (WebCore::setLogicalWidthForTextRun):
504         (WebCore::textWidth):
505         (WebCore::tryHyphenating):
506         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
507         (WebCore::RenderBlock::checkLinesForTextOverflow):
508         * rendering/RenderCombineText.cpp:
509         (WebCore::RenderCombineText::combineText):
510         * rendering/RenderFileUploadControl.cpp:
511         (WebCore::RenderFileUploadControl::paintObject):
512         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
513         * rendering/RenderFlexibleBox.cpp:
514         (WebCore::RenderFlexibleBox::applyLineClamp):
515         * rendering/RenderImage.cpp:
516         (WebCore::RenderImage::setImageSizeForAltText):
517         (WebCore::RenderImage::paintReplaced):
518         * rendering/RenderListBox.cpp:
519         (WebCore::RenderListBox::updateFromElement):
520         * rendering/RenderListMarker.cpp:
521         (WebCore::RenderListMarker::paint):
522         (WebCore::RenderListMarker::computePreferredLogicalWidths):
523         (WebCore::RenderListMarker::getRelativeMarkerRect):
524         * rendering/RenderText.cpp:
525         (WebCore::RenderText::widthFromCache):
526         (WebCore::RenderText::trimmedPrefWidths):
527         (WebCore::RenderText::computePreferredLogicalWidths):
528         (WebCore::RenderText::width):
529         * rendering/RenderTextControl.cpp:
530         (WebCore::RenderTextControl::getAvgCharWidth):
531         * rendering/svg/RenderSVGAllInOne.cpp:
532         * rendering/svg/SVGInlineTextBox.cpp:
533         (WebCore::SVGInlineTextBox::offsetForPositionInFragment):
534         (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):
535         (WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting):
536         (WebCore::SVGInlineTextBox::constructTextRun):
537         (WebCore::SVGInlineTextBox::paintText):
538         * rendering/svg/SVGTextLayoutEngineSpacing.cpp:
539         (WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning):
540         * rendering/svg/SVGTextMetrics.cpp:
541         (WebCore::constructTextRun):
542         (WebCore::SVGTextMetrics::measureCharacterRange):
543         * rendering/svg/SVGTextRunRenderingContext.cpp: Copied from svg/SVGFont.cpp.
544         (WebCore::svgFontAndFontFaceElementForFontData):
545         (WebCore::firstParentRendererForNonTextNode):
546         (WebCore::referencingRenderObjectFromRun):
547         (WebCore::activePaintingResourceFromRun):
548         (WebCore::SVGTextRunWalker::walk):
549         (WebCore::floatWidthMissingGlyphCallback):
550         (WebCore::floatWidthOfSubStringUsingSVGFont):
551         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont):
552         (WebCore::SVGTextRunRenderingContext::drawTextUsingSVGFont):
553         (WebCore::SVGTextRunRenderingContext::selectionRectForTextUsingSVGFont):
554         (WebCore::SVGTextRunRenderingContext::offsetForPositionForTextUsingSVGFont):
555         * rendering/svg/SVGTextRunRenderingContext.h: Added.
556         (WebCore::SVGTextRunRenderingContext::create):
557         (WebCore::SVGTextRunRenderingContext::context):
558         (WebCore::SVGTextRunRenderingContext::activePaintingResource):
559         (WebCore::SVGTextRunRenderingContext::setActivePaintingResource):
560         (WebCore::SVGTextRunRenderingContext::SVGTextRunRenderingContext):
561         (WebCore::textRunNeedsRenderingContext):
562         * svg/SVGAllInOne.cpp:
563         * svg/SVGFont.cpp: Removed.
564         * svg/SVGFontData.cpp:
565         (WebCore::SVGFontData::initializeFontData):
566         * svg/SVGFontData.h:
567         (WebCore::SVGFontData::create):
568         (WebCore::SVGFontData::isSVGFontData):
569         * svg/SVGGlyphElement.cpp:
570         (WebCore::SVGGlyphElement::SVGGlyphElement):
571         (WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
572         (WebCore::SVGGlyphElement::buildGlyphIdentifier):
573         * svg/SVGHKernElement.cpp:
574         (WebCore::SVGHKernElement::SVGHKernElement):
575         (WebCore::SVGHKernElement::buildHorizontalKerningPair):
576         * svg/SVGVKernElement.cpp:
577         (WebCore::SVGVKernElement::SVGVKernElement):
578         (WebCore::SVGVKernElement::buildVerticalKerningPair):
579         * svg/SVGVKernElement.h:
580
581 2011-05-24  Ryuan Choi  <ryuan.choi@samsung.com>
582
583         Reviewed by Andreas Kling.
584
585         [GTK] Implement GraphicsContextCairo::imageInterpolationQuality().
586         https://bugs.webkit.org/show_bug.cgi?id=60827
587
588         Implement getter/setter of imageInterpolationQuality and logic to change
589         interpolation algorithm when drawing image.
590         Mac and Qt already implemented it.
591
592         * platform/graphics/cairo/GraphicsContextCairo.cpp:
593         (WebCore::GraphicsContext::setImageInterpolationQuality):
594         (WebCore::GraphicsContext::imageInterpolationQuality):
595         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
596         * platform/graphics/cairo/PlatformContextCairo.cpp:
597         (WebCore::PlatformContextCairo::drawSurfaceToContext):
598         * platform/graphics/cairo/PlatformContextCairo.h:
599         (WebCore::PlatformContextCairo::setImageInterpolationQuality): Added.
600         (WebCore::PlatformContextCairo::imageInterpolationQuality): Added.
601
602 2011-05-24  Leandro Gracia Gil  <leandrogracia@chromium.org>
603
604         Reviewed by Tony Gentilcore.
605
606         Media Stream API: adding Stream and GeneratedStream classes.
607         https://bugs.webkit.org/show_bug.cgi?id=56666
608
609         Add the code for the Stream and GeneratedStream classes and integrate it
610         with the existing stream generation requests.
611
612         Tests for the Media Stream API will be provided by the bug 56587.
613
614         * CMakeLists.txt:
615         * CodeGenerators.pri:
616         * DerivedSources.cpp:
617         * DerivedSources.make:
618         * GNUmakefile.list.am:
619         * WebCore.gypi:
620         * WebCore.pro:
621         * WebCore.vcproj/WebCore.vcproj:
622         * WebCore.xcodeproj/project.pbxproj:
623         * bindings/js/JSEventTarget.cpp:
624         (WebCore::toJS):
625         * bindings/v8/V8DOMWrapper.cpp:
626         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
627         * dom/DOMAllInOne.cpp:
628         * dom/EventTarget.cpp:
629         (WebCore::EventTarget::toStream):
630         (WebCore::EventTarget::toGeneratedStream):
631         * dom/EventTarget.h:
632         * dom/GeneratedStream.cpp: Added.
633         (WebCore::GeneratedStream::DispatchUpdateTask::create):
634         (WebCore::GeneratedStream::DispatchUpdateTask::performTask):
635         (WebCore::GeneratedStream::DispatchUpdateTask::DispatchUpdateTask):
636         (WebCore::GeneratedStream::create):
637         (WebCore::GeneratedStream::GeneratedStream):
638         (WebCore::GeneratedStream::~GeneratedStream):
639         (WebCore::GeneratedStream::toGeneratedStream):
640         (WebCore::GeneratedStream::detachEmbedder):
641         (WebCore::GeneratedStream::stop):
642         (WebCore::GeneratedStream::onStop):
643         * dom/GeneratedStream.h: Added.
644         * dom/GeneratedStream.idl: Added.
645         * dom/Stream.cpp: Added.
646         (WebCore::Stream::create):
647         (WebCore::Stream::Stream):
648         (WebCore::Stream::~Stream):
649         (WebCore::Stream::toStream):
650         (WebCore::Stream::streamEnded):
651         (WebCore::Stream::scriptExecutionContext):
652         (WebCore::Stream::eventTargetData):
653         (WebCore::Stream::ensureEventTargetData):
654         * dom/Stream.h: Added.
655         (WebCore::Stream::readyState):
656         (WebCore::Stream::label):
657         (WebCore::Stream::refEventTarget):
658         (WebCore::Stream::derefEventTarget):
659         * dom/Stream.idl: Added.
660         * page/CallbackTask.h:
661         (WebCore::CallbackTask1::Scheduler::~Scheduler):
662         * page/MediaStreamClient.h:
663         * page/MediaStreamController.cpp:
664         (WebCore::MediaStreamController::stopGeneratedStream):
665         (WebCore::MediaStreamController::streamFailed):
666         * page/MediaStreamController.h:
667         * page/MediaStreamFrameController.cpp:
668         (WebCore::MediaStreamFrameController::Request::Request):
669         (WebCore::MediaStreamFrameController::GenerateStreamRequest::create):
670         (WebCore::MediaStreamFrameController::GenerateStreamRequest::abort):
671         (WebCore::MediaStreamFrameController::GenerateStreamRequest::GenerateStreamRequest):
672         (WebCore::MediaStreamFrameController::unregister):
673         (WebCore::MediaStreamFrameController::getStreamFromLabel):
674         (WebCore::MediaStreamFrameController::generateStream):
675         (WebCore::MediaStreamFrameController::stopGeneratedStream):
676         (WebCore::MediaStreamFrameController::streamGenerated):
677         (WebCore::MediaStreamFrameController::streamGenerationFailed):
678         (WebCore::MediaStreamFrameController::streamFailed):
679         * page/MediaStreamFrameController.h:
680         (WebCore::MediaStreamFrameController::StreamClient::StreamClient):
681         (WebCore::MediaStreamFrameController::StreamClient::isGeneratedStream):
682         * page/NavigatorUserMediaError.h:
683         (WebCore::NavigatorUserMediaError::create):
684         (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
685         * page/NavigatorUserMediaSuccessCallback.h:
686         * page/NavigatorUserMediaSuccessCallback.idl:
687
688 2011-05-23  Antti Koivisto  <antti@apple.com>
689
690         Reviewed by Oliver Hunt.
691     
692         REGRESSION (r45620): Node list caches never deleted
693         https://bugs.webkit.org/show_bug.cgi?id=61268
694         <rdar://problem/9467379>
695         
696         NodeListsNodeData::isEmpty() tests if RefCounted objects have refcount of zero which is impossible.
697         As a results NodeList caches are never deleted, causing bad performance in DOM mutating operations as
698         they repeatedly invalidate caches.
699
700         * dom/Node.cpp:
701         (WebCore::Node::childNodes):
702             Construct m_childNodeListCaches lazily.
703
704         (WebCore::Node::unregisterDynamicNodeList):
705         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
706         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
707         (WebCore::Node::removeNodeListCacheIfPossible): 
708             Add a helper.
709
710         (WebCore::NodeListsNodeData::invalidateCaches):
711             Invalidate m_childNodeListCaches by clearing it if there are no additional clients
712
713         (WebCore::NodeListsNodeData::isEmpty):
714             Test emptiness of various NodeListCaches simply by testing hash emptiness instead of testing for non-zero ref count of items.
715             m_childNodeListCaches is empty if it is null.
716
717         * dom/Node.h: 
718         * dom/NodeRareData.h:
719         (WebCore::NodeListsNodeData::NodeListsNodeData):
720             Construct m_childNodeListCaches lazily.
721
722 2011-05-24  Mikhail Naganov  <mnaganov@chromium.org>
723
724         Reviewed by Yury Semikhatsky.
725
726         Web Inspector: Reorganize InspectorBackendDispatch code to eliminate duplication
727         https://bugs.webkit.org/show_bug.cgi?id=61300
728
729         * inspector/CodeGeneratorInspector.pm:
730
731 2011-05-23  Yury Semikhatsky  <yurys@chromium.org>
732
733         Reviewed by Adam Barth.
734
735         Chromium DevTools: Tab crashes with "Aw, snap!" on entering "(new Image())." in console
736         https://bugs.webkit.org/show_bug.cgi?id=61194
737
738         Test: inspector/console/console-eval-syntax-error.html
739
740         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
741         (WebCore::V8InjectedScriptHost::evaluateCallback): return immediately in case of syntax error
742
743 2011-04-13  Steve Block  <steveblock@google.com>
744
745         Reviewed by Eric Seidel.
746
747         Geolocation callbacks should make use of new callback generation mechanism
748         https://bugs.webkit.org/show_bug.cgi?id=40065
749
750         No new tests, refactoring only.
751
752         * Android.derived.jscbindings.mk:
753         * Android.derived.v8bindings.mk:
754         * Android.jscbindings.mk:
755         * Android.v8bindings.mk:
756         * CMakeLists.txt:
757         * CodeGenerators.pri:
758         * DerivedSources.cpp:
759         * DerivedSources.make:
760         * GNUmakefile.list.am:
761         * UseJSC.cmake:
762         * WebCore.gypi:
763         * WebCore.order:
764         * WebCore.pro:
765         * WebCore.vcproj/WebCore.vcproj:
766         * WebCore.xcodeproj/project.pbxproj:
767         * bindings/js/JSBindingsAllInOne.cpp:
768         * bindings/js/JSCustomPositionCallback.cpp: Removed.
769         * bindings/js/JSCustomPositionCallback.h: Removed.
770         * bindings/js/JSCustomPositionErrorCallback.cpp: Removed.
771         * bindings/js/JSCustomPositionErrorCallback.h: Removed.
772         * bindings/js/JSGeolocationCustom.cpp:
773         (WebCore::JSGeolocation::getCurrentPosition):
774         (WebCore::JSGeolocation::watchPosition):
775         * bindings/v8/custom/V8CustomPositionCallback.cpp: Removed.
776         * bindings/v8/custom/V8CustomPositionCallback.h: Removed.
777         * bindings/v8/custom/V8CustomPositionErrorCallback.cpp: Removed.
778         * bindings/v8/custom/V8CustomPositionErrorCallback.h: Removed.
779         * bindings/v8/custom/V8GeolocationCustom.cpp:
780         (WebCore::V8Geolocation::getCurrentPositionCallback):
781         (WebCore::V8Geolocation::watchPositionCallback):
782         * page/PositionCallback.h:
783         * page/PositionCallback.idl: Added.
784         * page/PositionErrorCallback.h:
785         * page/PositionErrorCallback.idl: Added.
786
787 2011-05-23  Pavel Podivilov  <podivilov@chromium.org>
788
789         Reviewed by Yury Semikhatsky.
790
791         Web Inspector: watched expressions buttons do not match inspector styles.
792         https://bugs.webkit.org/show_bug.cgi?id=30554
793
794         * WebCore.gypi:
795         * inspector/front-end/BreakpointsSidebarPane.js:
796         (WebInspector.XHRBreakpointsSidebarPane):
797         * inspector/front-end/Images/deleteIcon.png: Added.
798         * inspector/front-end/Images/paneRefreshButtons.png: Added.
799         * inspector/front-end/WatchExpressionsSidebarPane.js:
800         (WebInspector.WatchExpressionsSidebarPane.prototype.reset):
801         (WebInspector.WatchExpressionsSidebarPane.prototype._addButtonClicked):
802         (WebInspector.WatchExpressionsSidebarPane.prototype._refreshButtonClicked):
803         (WebInspector.WatchExpressionsSidebarPane.prototype.refreshExpressions):
804         (WebInspector.WatchExpressionsSection):
805         (WebInspector.WatchExpressionsSection.prototype.update.appendResult):
806         (WebInspector.WatchExpressionsSection.prototype.update):
807         (WebInspector.WatchExpressionsSection.prototype.saveExpressions):
808         (WebInspector.WatchExpressionsSection.prototype._mouseMove):
809         (WebInspector.WatchExpressionsSection.prototype._mouseOut):
810         (WebInspector.WatchExpressionsSection.prototype._updateHoveredElement):
811         (WebInspector.WatchExpressionsSection.CompareProperties):
812         (WebInspector.WatchExpressionTreeElement.prototype.update):
813         (WebInspector.WatchExpressionTreeElement.prototype.editingCancelled):
814         * inspector/front-end/WebKit.qrc:
815         * inspector/front-end/inspector.css:
816         (.properties-tree.watch-expressions):
817         (.properties-tree.watch-expressions li):
818         (.section .properties .delete-button):
819         (.section .properties li.hovered .delete-button):
820         (.pane > .title > .pane-title-button):
821         (.pane > .title > .pane-title-button:hover):
822         (.pane > .title > .pane-title-button:active):
823         (.pane > .title > .pane-title-button.add):
824         (.pane > .title > .pane-title-button.refresh):
825
826 2011-05-24  Yuta Kitamura  <yutak@chromium.org>
827
828         Reviewed by Kent Tamura.
829
830         WebSocket: Add fail() to WebSocketChannel and its family
831         https://bugs.webkit.org/show_bug.cgi?id=61277
832
833         This is the first part of refactoring effort described in bug 61115.
834         Existing error reports will be modified to use fail() in a later patch.
835
836         No change in behavior, thus no new tests.
837
838         * websockets/ThreadableWebSocketChannel.h:
839         * websockets/WebSocketChannel.cpp:
840         (WebCore::WebSocketChannel::fail):
841         * websockets/WebSocketChannel.h:
842         * websockets/WorkerThreadableWebSocketChannel.cpp:
843         (WebCore::WorkerThreadableWebSocketChannel::fail):
844         (WebCore::WorkerThreadableWebSocketChannel::Peer::fail):
845         (WebCore::WorkerThreadableWebSocketChannel::mainThreadFail):
846         (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
847         * websockets/WorkerThreadableWebSocketChannel.h:
848
849 2011-05-24  Andras Becsi  <abecsi@webkit.org>
850
851         Reviewed by Csaba Osztrogon√°c.
852
853         [Qt][V8] REGRESSION (r87063): Fix the build.
854         https://bugs.webkit.org/show_bug.cgi?id=61290
855
856         No new tests needed.
857
858         * bindings/scripts/CodeGeneratorV8.pm: disable the unsupported call
859         tracked in: https://bugs.webkit.org/show_bug.cgi?id=61291
860
861 2011-05-24  Naoki Takano  <takano.naoki@gmail.com>
862
863         Reviewed by Kent Tamura.
864
865         [Chromium]Add clipping for listBox in popup window to fix wrong location display when the autofill item is really long.
866         https://bugs.webkit.org/show_bug.cgi?id=61252
867         http://code.google.com/p/chromium/issues/detail?id=83539
868
869         Manual test: manual-tests/autofill-popup-location.html.
870
871         * manual-tests/autofill-popup-location.html: With long long text, test the shown location is correct.
872         * platform/chromium/PopupMenuChromium.cpp:
873         (WebCore::PopupListBox::setBaseWidth): Clip width with m_maxWindowWidth.
874         (WebCore::PopupListBox::PopupListBox): Add m_maxWindowWidth initialization.
875         (WebCore::PopupContainer::layoutAndCalculateWidgetRect): Call setMaxWidthAndLayout() when the width is clipped with screen size.
876         (WebCore::PopupListBox::setMaxWidthAndLayout): Set m_maxWindowWidth and call layout().
877         (WebCore::PopupListBox::layout): Compare renewed windowWidth and m_maxWindowWidth, and clip the it.
878
879 2011-05-24  James Robinson  <jamesr@chromium.org>
880
881         Reviewed by Kenneth Russell.
882
883         [chromium] Properly handle huge initial dimensions for 2d canvas when accelerated 2d canvas is enabled
884         https://bugs.webkit.org/show_bug.cgi?id=60077
885
886         Return NULL from DrawingBuffer::create() if the initial dimensions are larger than we can support in hardware so
887         that we properly use the software canvas path and not enable the compositor for the canvas.
888
889         compositing/tiling/huge-layer-img.html triggers this case by trying to create a 20000 pixel high canvas.  The
890         failure was previously masked by other bugs fixed by r85661.
891
892         * platform/graphics/chromium/DrawingBufferChromium.cpp:
893         (WebCore::DrawingBuffer::DrawingBuffer):
894             Return NULL from DrawingBuffer::create() if resize() fails.
895
896 2011-05-24  Fumitoshi Ukai  <ukai@chromium.org>
897
898         Reviewed by Adam Barth.
899
900         close before open WebSocket doesn't fire close event.
901         https://bugs.webkit.org/show_bug.cgi?id=57301
902
903         In platformClose(), m_readStream may be 0 until proxy is resolved.
904         It should callback didClose() in such case.
905         
906         Test: http/tests/websocket/tests/close-before-open.html
907
908         * platform/network/cf/SocketStreamHandleCFNet.cpp:
909         (WebCore::SocketStreamHandle::platformClose):
910
911 2011-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
912
913         Unreviewed, rolling out r87118.
914         http://trac.webkit.org/changeset/87118
915         https://bugs.webkit.org/show_bug.cgi?id=61347
916
917         patch breaks layout tests
918         (https://bugs.webkit.org/show_bug.cgi?id=61342), and chromium
919         tests (browser_test MacTestCmdUp and ui_test Scrollbar)
920         (Requested by ukai_ on #webkit).
921
922         * WebCore.gyp/WebCore.gyp:
923         * WebCore.gypi:
924         * platform/ScrollAnimator.cpp:
925         * platform/chromium/ScrollAnimatorChromiumMac.h: Removed.
926         * platform/chromium/ScrollAnimatorChromiumMac.mm: Removed.
927         * platform/graphics/IntPoint.h:
928
929 2011-05-23  Julien Chaffraix  <jchaffraix@codeaurora.org>
930
931         Reviewed by Adam Barth.
932
933         Remove Node::deprecatedParserAddChild
934         https://bugs.webkit.org/show_bug.cgi?id=60818
935
936         No new tests as this is just a removal.
937
938         * dom/ContainerNode.cpp:
939         * dom/ContainerNode.h:
940         * dom/Node.cpp:
941         * dom/Node.h:
942         Removed the method now that the last instance got removed as part of the <input>
943         shadow DOM refactoring.
944
945 2011-05-23  Dirk Schulze  <krit@webkit.org>
946
947         Reviewed by Darin Adler.
948
949         SVGTextPositioning attributes are marked as NumberList instead of LengthList
950         https://bugs.webkit.org/show_bug.cgi?id=61301
951
952         SVGTextPositioningElement attributes x, y, dx and dy were marked as AnimatedNumberList
953         instead of AnimatedLengthList.
954         See specification http://www.w3.org/TR/SVG/text.html#InterfaceSVGTextPositioningElement
955
956         This does not affect the behavior, since we do not respect SVG units in SMIL animation yet.
957         No new tests added.
958
959         * svg/SVGTextPositioningElement.cpp:
960         (WebCore::SVGTextPositioningElement::fillPassedAttributeToPropertyTypeMap):
961
962 2011-05-19  MORITA Hajime  <morrita@google.com>
963
964         Reviewed by Dimitri Glazkov.
965
966         [Refactoring] Pass NodeRenderingContext to Node::rendererIsNeeded()
967         https://bugs.webkit.org/show_bug.cgi?id=61114
968
969         - Extracted NodeRenderingContext from NodeRendererFactory, giving separate files to it.
970         - Changed signature rendererIsNeeded(RenderStyle*) 
971           to rendererIsNeeded(const NodeRenderingContext&).
972           The style object is retrieved from NodeRendererFactory::style()
973           This will allow rendererIsNeeded() to access contextual
974           information like attaching phase and rendering-parent.
975         
976         No new tests. No behaviour change.
977         
978         * CMakeLists.txt:
979         * GNUmakefile.list.am:
980         * WebCore.gypi:
981         * WebCore.pro:
982         * WebCore.vcproj/WebCore.vcproj:
983         * WebCore.xcodeproj/project.pbxproj:
984         * dom/CharacterData.cpp:
985         (WebCore::CharacterData::updateRenderer): Pass unresolved NodeRenderingContext& to rendererIsNeeded()
986         (WebCore::CharacterData::rendererIsNeeded):
987         * dom/CharacterData.h:
988         * dom/DOMAllInOne.cpp:
989         * dom/EditingText.cpp:
990         (WebCore::EditingText::rendererIsNeeded):
991         * dom/EditingText.h:
992         * dom/Node.cpp:
993         (WebCore::Node::parentNodeForRenderingAndStyle):
994         (WebCore::Node::rendererIsNeeded):
995         * dom/Node.h:
996         * dom/NodeRenderingContext.cpp: Added.
997         (WebCore::NodeRenderingContext::NodeRenderingContext):
998         (WebCore::NodeRenderingContext::~NodeRenderingContext):
999         (WebCore::NodeRenderingContext::setStyle):
1000         (WebCore::NodeRenderingContext::releaseStyle):
1001         (WebCore::NodeRenderingContext::nextRenderer):
1002         (WebCore::NodeRenderingContext::parentRenderer):
1003         (WebCore::NodeRenderingContext::hostChildrenChanged):
1004         (WebCore::NodeRenderingContext::shouldCreateRenderer):
1005         (WebCore::NodeRendererFactory::NodeRendererFactory):
1006         (WebCore::NodeRendererFactory::createRendererAndStyle):
1007         (WebCore::wrapWithRenderFullScreen):
1008         (WebCore::NodeRendererFactory::createRendererIfNeeded):
1009         * dom/NodeRenderingContext.h: Added.
1010         (WebCore::NodeRenderingContext::node):
1011         (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
1012         (WebCore::NodeRenderingContext::style):
1013         (WebCore::NodeRendererFactory::context):
1014         * dom/ShadowContentElement.h:
1015         * dom/Text.cpp:
1016         * dom/Text.h:
1017         * html/HTMLAppletElement.cpp:
1018         * html/HTMLAppletElement.h:
1019         * html/HTMLElement.cpp:
1020         * html/HTMLElement.h:
1021         * html/HTMLEmbedElement.cpp:
1022         * html/HTMLEmbedElement.h:
1023         * html/HTMLFormElement.cpp:
1024         * html/HTMLFormElement.h:
1025         * html/HTMLFrameElement.cpp:
1026         * html/HTMLFrameElement.h:
1027         * html/HTMLFrameSetElement.cpp:
1028         * html/HTMLFrameSetElement.h:
1029         * html/HTMLIFrameElement.cpp:
1030         * html/HTMLIFrameElement.h:
1031         * html/HTMLInputElement.cpp:
1032         * html/HTMLInputElement.h:
1033         * html/HTMLMediaElement.cpp:
1034         * html/HTMLMediaElement.h:
1035         * html/HTMLNoScriptElement.h:
1036         * html/HTMLObjectElement.cpp:
1037         * html/HTMLObjectElement.h:
1038         * html/HTMLOptGroupElement.h:
1039         * html/HTMLOptionElement.h:
1040         * html/HTMLVideoElement.cpp:
1041         * html/HTMLVideoElement.h:
1042         * html/shadow/DetailsMarkerControl.cpp:
1043         * html/shadow/DetailsMarkerControl.h:
1044         * html/shadow/MeterShadowElement.cpp:
1045         * html/shadow/MeterShadowElement.h:
1046         * html/shadow/ProgressShadowElement.cpp:
1047         * html/shadow/ProgressShadowElement.h:
1048         * svg/SVGDescElement.h:
1049         * svg/SVGElement.h:
1050         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1051         * svg/SVGFilterPrimitiveStandardAttributes.h:
1052         * svg/SVGFontElement.h:
1053         * svg/SVGGElement.cpp:
1054         * svg/SVGGElement.h:
1055         * svg/SVGGlyphElement.h:
1056         * svg/SVGHKernElement.h:
1057         * svg/SVGMarkerElement.h:
1058         * svg/SVGMissingGlyphElement.h:
1059         * svg/SVGSVGElement.h:
1060         * svg/SVGStyledElement.cpp:
1061         * svg/SVGStyledElement.h:
1062         * svg/SVGSymbolElement.h:
1063         * svg/SVGTRefElement.cpp:
1064         * svg/SVGTRefElement.h:
1065         * svg/SVGTSpanElement.cpp:
1066         * svg/SVGTSpanElement.h:
1067         * svg/SVGTextPathElement.cpp:
1068         * svg/SVGTextPathElement.h:
1069         * svg/SVGTitleElement.h:
1070         * svg/SVGVKernElement.h:
1071         * svg/SVGViewElement.h:
1072
1073 2011-05-20  MORITA Hajime  <morrita@google.com>
1074
1075         Reviewed by Dimitri Glazkov.
1076         
1077         [Refactoring] attach() following detach() should be replaced with Node::reattach()
1078         https://bugs.webkit.org/show_bug.cgi?id=61011
1079
1080         - Renamed forceReattach() to reattach()
1081         - Introduced reattachIfAttached() as a variant.
1082         
1083         No new tests. No behavior change.
1084
1085         * dom/CharacterData.cpp:
1086         (WebCore::CharacterData::updateRenderer):
1087         * dom/Element.cpp:
1088         (WebCore::Element::recalcStyle):
1089         * dom/Node.h:
1090         (WebCore::Node::reattach):
1091         (WebCore::Node::reattachIfAttached):
1092         * dom/Text.cpp:
1093         (WebCore::Text::recalcStyle):
1094         * html/HTMLDetailsElement.cpp:
1095         (WebCore::HTMLDetailsElement::refreshMainSummary):
1096         (WebCore::HTMLDetailsElement::parseMappedAttribute):
1097         * html/HTMLInputElement.cpp:
1098         (WebCore::HTMLInputElement::parseMappedAttribute):
1099         * html/HTMLObjectElement.cpp:
1100         (WebCore::HTMLObjectElement::renderFallbackContent):
1101         * html/HTMLPlugInImageElement.cpp:
1102         (WebCore::HTMLPlugInImageElement::recalcStyle):
1103         * html/HTMLSelectElement.cpp:
1104         (WebCore::HTMLSelectElement::parseMappedAttribute):
1105
1106 2011-05-23  Mark Rowe  <mrowe@apple.com>
1107
1108         Build fix after r87117.
1109
1110         When moving #defines out in to separate files I find that code is more likely to compile
1111         when the new header file is actually #included.
1112
1113         * editing/SpellingCorrectionController.h:
1114
1115 2011-05-23  Mike Lawther  <mikelawther@chromium.org>
1116
1117         Reviewed by James Robinson.
1118
1119         implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
1120         https://bugs.webkit.org/show_bug.cgi?id=56627
1121
1122         Tests: css3/images/optimize-contrast-canvas.html
1123                css3/images/optimize-contrast-image.html
1124
1125         * WebCore.xcodeproj/project.pbxproj:
1126         * css/CSSComputedStyleDeclaration.cpp:
1127         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1128         * css/CSSParser.cpp:
1129         (WebCore::CSSParser::parseValue):
1130         * css/CSSPrimitiveValueMappings.h:
1131         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1132         (WebCore::CSSPrimitiveValue::operator EImageRendering):
1133         * css/CSSPropertyNames.in:
1134         * css/CSSStyleSelector.cpp:
1135         (WebCore::CSSStyleSelector::applyProperty):
1136         * css/CSSValueKeywords.in:
1137         * css/SVGCSSComputedStyleDeclaration.cpp:
1138         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
1139         * css/SVGCSSPropertyNames.in:
1140         * css/SVGCSSStyleSelector.cpp:
1141         (WebCore::CSSStyleSelector::applySVGProperty):
1142         * css/SVGCSSValueKeywords.in:
1143         * html/HTMLCanvasElement.cpp:
1144         (WebCore::HTMLCanvasElement::paint):
1145         * html/HTMLCanvasElement.h:
1146         * platform/graphics/ImageRenderingMode.h: Added.
1147         * rendering/RenderBoxModelObject.cpp:
1148         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1149         * rendering/RenderHTMLCanvas.cpp:
1150         (WebCore::RenderHTMLCanvas::paintReplaced):
1151         * rendering/style/RenderStyle.cpp:
1152         (WebCore::RenderStyle::diff):
1153         * rendering/style/RenderStyle.h:
1154         (WebCore::InheritedFlags::imageRendering):
1155         (WebCore::InheritedFlags::setImageRendering):
1156         (WebCore::InheritedFlags::initialImageRendering):
1157         * rendering/style/RenderStyleConstants.h:
1158         * rendering/style/SVGRenderStyle.cpp:
1159         (WebCore::SVGRenderStyle::diff):
1160         * rendering/style/SVGRenderStyle.h:
1161         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
1162         (WebCore::SVGRenderStyle::setBitDefaults):
1163         * rendering/style/SVGRenderStyleDefs.h:
1164         * rendering/svg/SVGRenderTreeAsText.cpp:
1165         (WebCore::writeStyle):
1166
1167 2011-05-23  Sailesh Agrawal  <sail@chromium.org>
1168
1169         Reviewed by James Robinson.
1170
1171         Chromium Mac: Use ScrollAnimatorMac.mm for overlay scrollbar support
1172         https://bugs.webkit.org/show_bug.cgi?id=59753
1173
1174         No new tests. Just forking ScrollAnimatorMac to ScrollAnimatorChromiumMac.
1175
1176         * WebCore.gyp/WebCore.gyp:
1177         * WebCore.gypi:
1178         * platform/ScrollAnimator.cpp:
1179         * platform/chromium/ScrollAnimatorChromiumMac.h: Added.
1180         (WebCore::ScrollAnimatorChromiumMac::setIsDrawingIntoLayer):
1181         (WebCore::ScrollAnimatorChromiumMac::isDrawingIntoLayer):
1182         (WebCore::ScrollAnimatorChromiumMac::haveScrolledSincePageLoad):
1183         * platform/chromium/ScrollAnimatorChromiumMac.mm: Added. Forked from ScrollAnimatorMac and replaced all instances of ScrollAnimatorMac with ScrollAnimatorChromiumMac and ScrollbarThemeMac with ScrollbarThemeChromiumMac. Removed the ENABLE(SMOOTH_SCROLLING) around the file.
1184         (abs):
1185         (-[ScrollAnimationHelperDelegate initWithScrollAnimator:WebCore::]):
1186         (-[ScrollAnimationHelperDelegate scrollAnimatorDestroyed]):
1187         (-[ScrollAnimationHelperDelegate bounds]):
1188         (-[ScrollAnimationHelperDelegate _immediateScrollToPoint:]):
1189         (-[ScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]):
1190         (-[ScrollAnimationHelperDelegate convertSizeToBase:]):
1191         (-[ScrollAnimationHelperDelegate convertSizeFromBase:]):
1192         (-[ScrollAnimationHelperDelegate convertSizeToBacking:]):
1193         (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]):
1194         (-[ScrollAnimationHelperDelegate superview]):
1195         (-[ScrollAnimationHelperDelegate documentView]):
1196         (-[ScrollAnimationHelperDelegate window]):
1197         (-[ScrollAnimationHelperDelegate _recursiveRecomputeToolTips]):
1198         (-[ScrollbarPainterControllerDelegate initWithScrollAnimator:WebCore::]):
1199         (-[ScrollbarPainterControllerDelegate scrollAnimatorDestroyed]):
1200         (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]):
1201         (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]):
1202         (-[ScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]):
1203         (-[ScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
1204         (-[ScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]):
1205         (-[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]):
1206         (-[ScrollbarPartAnimation initWithScrollbarPainter:part:WebCore::scrollAnimator:WebCore::animateAlphaTo:duration:]):
1207         (-[ScrollbarPartAnimation setCurrentProgress:]):
1208         (-[ScrollbarPartAnimation scrollAnimatorDestroyed]):
1209         (-[ScrollbarPainterDelegate initWithScrollAnimator:WebCore::]):
1210         (-[ScrollbarPainterDelegate cancelAnimations]):
1211         (-[ScrollbarPainterDelegate convertRectToBacking:]):
1212         (-[ScrollbarPainterDelegate convertRectFromBacking:]):
1213         (-[ScrollbarPainterDelegate layer]):
1214         (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]):
1215         (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]):
1216         (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]):
1217         (-[ScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]):
1218         (-[ScrollbarPainterDelegate scrollAnimatorDestroyed]):
1219         (WebCore::ScrollAnimator::create):
1220         (WebCore::ScrollAnimatorChromiumMac::ScrollAnimatorChromiumMac):
1221         (WebCore::ScrollAnimatorChromiumMac::~ScrollAnimatorChromiumMac):
1222         (WebCore::ScrollAnimatorChromiumMac::scroll):
1223         (WebCore::ScrollAnimatorChromiumMac::scrollToOffsetWithoutAnimation):
1224         (WebCore::ScrollAnimatorChromiumMac::adjustScrollXPositionIfNecessary):
1225         (WebCore::ScrollAnimatorChromiumMac::adjustScrollYPositionIfNecessary):
1226         (WebCore::ScrollAnimatorChromiumMac::adjustScrollPositionIfNecessary):
1227         (WebCore::ScrollAnimatorChromiumMac::immediateScrollToPoint):
1228         (WebCore::ScrollAnimatorChromiumMac::immediateScrollByDeltaX):
1229         (WebCore::ScrollAnimatorChromiumMac::immediateScrollByDeltaY):
1230         (WebCore::ScrollAnimatorChromiumMac::notityPositionChanged):
1231         (WebCore::ScrollAnimatorChromiumMac::contentAreaWillPaint):
1232         (WebCore::ScrollAnimatorChromiumMac::mouseEnteredContentArea):
1233         (WebCore::ScrollAnimatorChromiumMac::mouseExitedContentArea):
1234         (WebCore::ScrollAnimatorChromiumMac::mouseMovedInContentArea):
1235         (WebCore::ScrollAnimatorChromiumMac::willStartLiveResize):
1236         (WebCore::ScrollAnimatorChromiumMac::contentsResized):
1237         (WebCore::ScrollAnimatorChromiumMac::willEndLiveResize):
1238         (WebCore::ScrollAnimatorChromiumMac::contentAreaDidShow):
1239         (WebCore::ScrollAnimatorChromiumMac::contentAreaDidHide):
1240         (WebCore::ScrollAnimatorChromiumMac::didBeginScrollGesture):
1241         (WebCore::ScrollAnimatorChromiumMac::didEndScrollGesture):
1242         (WebCore::ScrollAnimatorChromiumMac::didAddVerticalScrollbar):
1243         (WebCore::ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar):
1244         (WebCore::ScrollAnimatorChromiumMac::didAddHorizontalScrollbar):
1245         (WebCore::ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar):
1246         (WebCore::ScrollAnimatorChromiumMac::cancelAnimations):
1247         (WebCore::elasticDeltaForTimeDelta):
1248         (WebCore::reboundDeltaForElasticDelta):
1249         (WebCore::elasticDeltaForReboundDelta):
1250         (WebCore::scrollWheelMultiplier):
1251         (WebCore::ScrollAnimatorChromiumMac::handleWheelEvent):
1252         (WebCore::ScrollAnimatorChromiumMac::handleGestureEvent):
1253         (WebCore::ScrollAnimatorChromiumMac::pinnedInDirection):
1254         (WebCore::ScrollAnimatorChromiumMac::allowsVerticalStretching):
1255         (WebCore::ScrollAnimatorChromiumMac::allowsHorizontalStretching):
1256         (WebCore::ScrollAnimatorChromiumMac::smoothScrollWithEvent):
1257         (WebCore::ScrollAnimatorChromiumMac::beginScrollGesture):
1258         (WebCore::ScrollAnimatorChromiumMac::endScrollGesture):
1259         (WebCore::ScrollAnimatorChromiumMac::snapRubberBand):
1260         (WebCore::roundTowardZero):
1261         (WebCore::roundToDevicePixelTowardZero):
1262         (WebCore::ScrollAnimatorChromiumMac::snapRubberBandTimerFired):
1263         (WebCore::ScrollAnimatorChromiumMac::startScrollbarPaintTimer):
1264         (WebCore::ScrollAnimatorChromiumMac::scrollbarPaintTimerIsActive):
1265         (WebCore::ScrollAnimatorChromiumMac::stopScrollbarPaintTimer):
1266         (WebCore::ScrollAnimatorChromiumMac::initialScrollbarPaintTimerFired):
1267         (WebCore::ScrollAnimatorChromiumMac::setVisibleScrollerThumbRect):
1268         * platform/graphics/IntPoint.h:
1269
1270 2011-05-22  MORITA Hajime  <morrita@google.com>
1271
1272         Reviewed by Ryosuke Niwa.
1273
1274         SUPPORT_AUTOCORRECTION_PANEL should be USE(AUTOCORRECTION_PANEL)
1275         https://bugs.webkit.org/show_bug.cgi?id=61181
1276
1277         - Removed SUPPORT_AUTOCORRECTION_PANEL and REMOVE_MARKERS_UPON_EDITING from SpellingCorrectionController.h
1278         - Define WTF_USE_UNIFIED_TEXT_CHECKING and WTF_USE_AUTOMATIC_TEXT_REPLACEMENT at TextChecking.h
1279
1280         No new tests. Just renaming a compilation conditional.
1281
1282         * editing/Editor.cpp:
1283         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
1284         * editing/SpellingCorrectionCommand.cpp:
1285         (WebCore::SpellingCorrectionCommand::doApply):
1286         * editing/SpellingCorrectionController.cpp:
1287         * editing/SpellingCorrectionController.h:
1288         (WebCore::SpellingCorrectionController::shouldRemoveMarkersUponEditing):
1289         * loader/EmptyClients.h:
1290         * page/EditorClient.h:
1291         * platform/text/TextChecking.h:
1292
1293 2011-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
1294
1295         Unreviewed, rolling out r87007.
1296         http://trac.webkit.org/changeset/87007
1297         https://bugs.webkit.org/show_bug.cgi?id=61329
1298
1299         patch unnecessarily breaks HTML5 compatibility (Requested by
1300         estes on #webkit).
1301
1302         * html/HTMLObjectElement.cpp:
1303         (WebCore::HTMLObjectElement::hasValidClassId):
1304
1305 2011-05-23  Julien Chaffraix  <jchaffraix@codeaurora.org>
1306
1307         Reviewed by Darin Adler.
1308
1309         Crash from null pointer dereference below WebCore::StorageAreaImpl::setItem()
1310         https://bugs.webkit.org/show_bug.cgi?id=57140
1311
1312         Test: fast/storage/storage-detached-iframe.html
1313
1314         Access of localStorage on a detached iframe was causing a crash because a detached 
1315         iframe has a null m_page, and WebCore::privateBrowsingEnabled() wasn't testing for such.
1316
1317         * storage/StorageAreaImpl.cpp:
1318         (WebCore::privateBrowsingEnabled): check that child->page() is non-null before
1319         accessing it.
1320
1321 2011-05-23  Chris Fleizach  <cfleizach@apple.com>
1322
1323         Reviewed by David Kilzer.
1324
1325         VO doesn't work with HTML5 range (slider) input @step attribute
1326         https://bugs.webkit.org/show_bug.cgi?id=61298
1327
1328         Test: platform/mac/accessibility/range-alter-by-step.html
1329
1330         * accessibility/AccessibilityObject.h:
1331         (WebCore::AccessibilityObject::stepValueForRange):
1332         * accessibility/AccessibilityRenderObject.cpp:
1333         (WebCore::AccessibilityRenderObject::alterSliderValue):
1334         (WebCore::AccessibilityRenderObject::increment):
1335         (WebCore::AccessibilityRenderObject::decrement):
1336         (WebCore::AccessibilityRenderObject::stepValueForRange):
1337         (WebCore::AccessibilityRenderObject::changeValueByStep):
1338         * accessibility/AccessibilityRenderObject.h:
1339
1340 2011-05-23  Gavin Peters  <gavinp@chromium.org>
1341
1342         Reviewed by Adam Barth.
1343
1344         fix rel=prerender target types
1345         https://bugs.webkit.org/show_bug.cgi?id=61297
1346
1347         The original fix in https://bugs.webkit.org/show_bug.cgi?id=61079
1348         didn't properly map the target type, and didn't carry the target
1349         types through to chromium properly.  Fixed.
1350
1351         No new tests; it's very hard to catch these with a layout test, however
1352         all of the chromium Prerender browser tests will test this functionality
1353         when I land an upcoming chromium CL.
1354
1355         * loader/cache/CachedResourceRequest.cpp:
1356         (WebCore::cachedResourceTypeToTargetType):
1357
1358 2011-05-23  Matthew Delaney  <mdelaney@apple.com>
1359
1360         Reviewed by Simon Fraser.
1361
1362         Remove safeFloatToInt() in FloatRect.cpp and replace with working version of clampToInteger()
1363         https://bugs.webkit.org/show_bug.cgi?id=58216
1364
1365         No new tests. The SVG tests mask-excessive-malloc.svg and pattern-excessive-malloc.svg exercise this code path.
1366
1367         * platform/graphics/FloatRect.cpp:
1368         (WebCore::enclosingIntRect):
1369
1370 2011-05-20  Jeremy Noble  <jer.noble@apple.com>
1371
1372         Reviewed by Darin Adler.
1373
1374         Video looks squished when animating to full screen.
1375         https://bugs.webkit.org/show_bug.cgi?id=61220
1376
1377         No new tests, because DumpRenderTree does not currently "animate" the full-screen transition.
1378
1379         There are three issues animating video content to full screen which this patch is meant to
1380         address:
1381         1) The animation scales between the client sizes of the element before and after full-screen.
1382         Because these sizes have different aspect ratios, the video appears "squished" for part of
1383         the animation. Instead, we will animate between the content box sizes before and after full
1384         screen which, in the case of video now and object-fit content in the future, will have the
1385         same aspect ratio before and after full screen.
1386         2) Now that we are animating the full-screen video element's content box, the black letterbox
1387         bars appear above and below the video (depending on the video's aspect ratio) as soon as the
1388         animation begins. This is extremely jarring, so set the background color to clear. The
1389         full-screen renderer's background color will serve the same purpose (providing the letterbox
1390         background) once the animation completes.
1391         3) Now that the letterbox color is gone, the full screen controls can appear to float in thin
1392         air beneath the video (again, depending on aspect ratio) during the animation, so to avoid
1393         that effect and to make the animation consistent with the old webkitenterfullscreen()
1394         animation, we will hide the controls during the animation by adding a new CSS pseudo class
1395         -webkit-animating-full-screen-transition.
1396
1397         Added a new css pseudo-class: -webkit-animating-full-screen.  During the transition animation, this
1398         pseudo-class will be applied to the current full-screen element.  Styles have been added to 
1399         fullscreenQuickTime.css to hide the video element's built-in controller during the full-screen
1400         animation.
1401
1402         To accomplish this, the ivar tracking whether the full-screen animation is taking place has been moved
1403         from the RenderFullScreen renderer, to the current full-screen Document.  Because changing 
1404         isAnimatingFullScreen causes style changes, make sure to call recalcStyle on the full-screen element
1405         after changing.
1406
1407         This extra transition caused assertions in HTMLFormControlElement::updateFromElementCallback. A
1408         full-screen media control's renderer is disabled during the style recalculation when exiting full
1409         screen. This assertion was exposed by the extra recalcStyle() issued during the exit transition, and
1410         has been removed.
1411
1412         * WebCore.exp.in:
1413         * css/CSSSelector.cpp:
1414         (WebCore::CSSSelector::pseudoId): Add support for new pseudo class -webkit-animate-full-screen-transition.
1415         (WebCore::nameToPseudoTypeMap): Ditto.
1416         (WebCore::CSSSelector::extractPseudoType): Ditto.
1417         * css/CSSSelector.h:
1418         * css/CSSStyleSelector.cpp:
1419         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Ditto.
1420         * css/fullscreen.css: 
1421         (video:-webkit-full-screen): Set full screen video background color to clear.
1422         * css/fullscreenQuickTime.css: 
1423         (video:-webkit-full-screen::-webkit-media-controls-panel): Set a default opacity transition.
1424         (video:-webkit-animating-full-screen::-webkit-media-controls-panel): Set the opacity to 0 and 
1425             disable the transition.
1426         * dom/Document.cpp:
1427         (WebCore::Document::Document):
1428         (WebCore::Document::webkitWillEnterFullScreenForElement): Call our new setAnimatingFullScreen function.
1429         (WebCore::Document::webkitDidEnterFullScreenForElement): Ditto.
1430         (WebCore::Document::webkitWillExitFullScreenForElement): Ditto.
1431         (WebCore::Document::webkitDidExitFullScreenForElement): Ditto.
1432         (WebCore::Document::isAnimatingFullScreen): Moved here from RenderFullScreen.
1433         (WebCore::Document::setAnimatingFullScreen): Ditto.
1434         * dom/Document.h:
1435         * html/HTMLFormControlElement.cpp: 
1436         (WebCore::updateFromElementCallback): Use the Document's isAnimatingFullScreen function.
1437         * page/FrameView.cpp:
1438         (WebCore::isDocumentRunningFullScreenAnimation): Ditto.
1439         * rendering/RenderFullScreen.cpp:
1440         * rendering/RenderFullScreen.h:
1441         * rendering/RenderLayerCompositor.cpp:
1442         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Ditto.
1443         (WebCore::RenderLayerCompositor::requiresCompositingForFullScreen): Ditto.
1444         * rendering/style/RenderStyleConstants.h:
1445
1446 2011-05-23  Emil A Eklund  <eae@chromium.org>
1447
1448         Reviewed by Eric Seidel.
1449
1450         Change RenderBlock hit testing to use IntPoint instead x,y pair
1451         https://bugs.webkit.org/show_bug.cgi?id=61146
1452
1453         Covered by existing tests.
1454
1455         * platform/graphics/IntPoint.h:
1456         (WebCore::toSize):
1457         Add toSize function for converting from point to size.
1458
1459         * rendering/RenderBlock.cpp:
1460         (WebCore::RenderBlock::isPointInOverflowControl):
1461         (WebCore::RenderBlock::nodeAtPoint):
1462         (WebCore::RenderBlock::hitTestFloats):
1463         (WebCore::RenderBlock::hitTestColumns):
1464         (WebCore::RenderBlock::hitTestContents):
1465         * rendering/RenderBlock.h:
1466         Change hit testing code in RenderBlock to use IntPoint.
1467
1468         * rendering/RenderListBox.cpp:
1469         (WebCore::RenderListBox::isPointInOverflowControl):
1470         * rendering/RenderListBox.h:
1471         Change overridden method to use IntPoint.
1472
1473 2011-05-23  Mike Reed  <reed@google.com>
1474
1475         Reviewed by James Robinson.
1476
1477         Skia: Need to implement GraphicsContext::clipConvexPolygon()
1478         https://bugs.webkit.org/show_bug.cgi?id=41311
1479
1480         No new tests. 
1481
1482         * platform/graphics/skia/GraphicsContextSkia.cpp:
1483         (WebCore::setPathFromConvexPoints):
1484         (WebCore::GraphicsContext::drawConvexPolygon):
1485         (WebCore::GraphicsContext::clipConvexPolygon):
1486
1487 2011-05-23  James Simonsen  <simonjam@chromium.org>
1488
1489         Reviewed by Adam Barth.
1490
1491         Convert raw pointer to RefPtr.
1492         https://bugs.webkit.org/show_bug.cgi?id=61196
1493
1494         * dom/XMLDocumentParserLibxml2.cpp:
1495         (WebCore::XMLDocumentParser::endElementNs):
1496         * dom/XMLDocumentParserQt.cpp:
1497         (WebCore::XMLDocumentParser::parseEndElement):
1498
1499 2011-05-23  Ryosuke Niwa  <rniwa@webkit.org>
1500
1501         Reviewed by Alexey Proskuryakov.
1502
1503         selectstart is fired for every mouse move
1504         https://bugs.webkit.org/show_bug.cgi?id=19489
1505
1506         Fixed the bug by dispatching selectstart event immediately before modifying selection in
1507         handleMousePressEventSingleClick and updateSelectionForMouseDrag.
1508
1509         Also replaced a boolean EventHandler::m_beganSelectingText by an enum-valued m_selectionInitiationState
1510         to retain 3 states:
1511         1. HaveNotStartedSelection - Selection has not been set by a mouse drag or a mouse click
1512         2. PlacedCaret - A caret was placed by a mouse click, double click, or triple click, and is about
1513         to replace selection if a mouse drag never occurs.
1514         3. ExtendedSelection - A range selection was set by a mouse click, a double click, a triple click,
1515         or a mouse drag; otherwise a caret selection was set by a mouse drag.
1516
1517         State 1 corresponds to m_beganSelectingText being false and state 3 corresponds to m_beganSelectingText
1518         being true. State 2 is used in updateSelectionForMouseDrag to avoid dispatching selectstart twice.
1519
1520         States 1 and 2 are set by updateSelectionForMouseDownDispatchingSelectStart and state 3 is set by
1521         updateSelectionForMouseDrag.
1522
1523         Test: fast/events/selectstart-by-double-triple-clicks.html
1524               fast/events/selectstart-by-drag.html
1525               fast/events/selectstart-by-single-click-with-shift.html
1526
1527         * page/EventHandler.cpp: Removed canMouseDragExtendSelect.
1528         (WebCore::EventHandler::EventHandler): Initializes m_selectionInitiationState.
1529         (WebCore::dispatchSelectStart): Returns true only if selectstart was successfully fired
1530         and default action was not prevented.
1531         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Updates m_selectionInitiationState
1532         and modifies the selection if dispatchSelectStart returns true.
1533         (WebCore::EventHandler::selectClosestWordFromMouseEvent): Calls updateSelectionForMouseDownDispatchingSelectStart.
1534         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Ditto.
1535         (WebCore::EventHandler::handleMousePressEventDoubleClick):
1536         (WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
1537         (WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
1538         (WebCore::canMouseDownStartSelect): No longer dispatches startselect; also renamed from
1539         EventHandler::canMouseDownStartSelect.
1540         (WebCore::EventHandler::handleMousePressEvent): No longer calls canMouseDragExtendSelect.
1541         (WebCore::EventHandler::handleMouseDraggedEvent):
1542         (WebCore::EventHandler::updateSelectionForMouseDrag): Exit early if m_selectionInitiationState is
1543         HaveNotStartedSelection and dispatchSelectStart returns false. Since setSelectionIfPossible dispatches
1544         selectstart event before assigning PlacedCaret or ExtendedSelection to m_selectionInitiationState,
1545         there is no need to dispatch event for those two cases.
1546         (WebCore::EventHandler::handleMouseReleaseEvent):
1547         * page/EventHandler.h: Removed canMouseDownStartSelect and canMouseDragExtendSelect from EventHandler
1548         and added setSelectionIfPossible.
1549
1550 2011-05-23  Adam Klein  <adamk@chromium.org>
1551
1552         Reviewed by Jian Li.
1553
1554         [fileapi] Add a File::createWithName method to avoid obfuscated filename leakage from FileEntry.file() method
1555         https://bugs.webkit.org/show_bug.cgi?id=61155
1556
1557         Covered by existing tests: fast/filesystem/file-from-file-entry.html
1558                                    fast/filesystem/workers/file-from-file-entry.html
1559                                    fast/filesystem/workers/file-from-file-entry-sync.html
1560
1561         * fileapi/DOMFileSystem.cpp:
1562         (WebCore::DOMFileSystem::createFile): Updated to call createWithName().
1563         * fileapi/DOMFileSystemSync.cpp:
1564         (WebCore::DOMFileSystemSync::createFile): Updated to call createWithName().
1565         * fileapi/File.cpp:
1566         (WebCore::createBlobDataForFile): Added an optional name argument to fix MIME type lookup.
1567         (WebCore::File::createWithRelativePath): Renamed from create() for consistency with new method.
1568         (WebCore::File::File):
1569         * fileapi/File.h:
1570         (WebCore::File::createWithName):
1571         * html/FileInputType.cpp:
1572         (WebCore::FileInputType::setFileList): Updated the single caller of File::createWithRelativePath().
1573
1574 2011-05-23  Adrienne Walker  <enne@google.com>
1575
1576         Reviewed by James Robinson.
1577
1578         [chromium] Fix division by zero in TilingData for boundary case texture sizes
1579         https://bugs.webkit.org/show_bug.cgi?id=61164
1580
1581         * platform/graphics/gpu/TilingData.cpp:
1582         (WebCore::TilingData::tileXIndexFromSrcCoord):
1583         (WebCore::TilingData::tileYIndexFromSrcCoord):
1584
1585 2011-05-23  Adam Barth  <abarth@webkit.org>
1586
1587         Reviewed by Eric Seidel.
1588
1589         Update ImageDecoder::create to match sniffing spec
1590         https://bugs.webkit.org/show_bug.cgi?id=47683
1591
1592         This change is difficult to test.  We're making this change to comply
1593         with standards even if the change is difficult to observe.  (This patch
1594         also causes us to match Firefox.)
1595
1596         Test: fast/images/busted-oval-does-not-render.html
1597
1598         * platform/image-decoders/ImageDecoder.cpp:
1599
1600 2011-05-23  Ruben  <chromium@hybridsource.org>
1601
1602         Reviewed by Tony Chang.
1603
1604         Chromium gyp patch to use new POSIX defines toolkit_uses_gtk and os_posix
1605         https://bugs.webkit.org/show_bug.cgi?id=61219
1606
1607         No new tests, just changing gyp defines.
1608
1609         * WebCore.gyp/WebCore.gyp:
1610
1611 2011-05-23  Abhishek Arya  <inferno@chromium.org>
1612
1613         Reviewed by Simon Fraser.
1614
1615         Terminate css color parsing on integers which are not followed
1616         by a terminator.
1617         https://bugs.webkit.org/show_bug.cgi?id=61293
1618
1619         Test: fast/css/parse-color-int-or-percent-crash.html
1620
1621         * css/CSSParser.cpp:
1622         (WebCore::parseColorIntOrPercentage):
1623
1624 2011-05-20  Ryosuke Niwa  <rniwa@webkit.org>
1625
1626         Reviewed by Enrica Casucci.
1627
1628         REGRESSION(r84311): WebKit copies too much styles when copying
1629         https://bugs.webkit.org/show_bug.cgi?id=60914
1630
1631         The bug was caused by WebKit's cloning node hierarchy up until the node that has background color.
1632         Fixed the bug by not cloning background color and adding the effective background color to the wrapping
1633         style span.
1634
1635         Tests: editing/pasteboard/do-no-clone-unnecessary-styles-2.html
1636                editing/pasteboard/do-no-clone-unnecessary-styles.html
1637
1638         * editing/EditingStyle.cpp:
1639         (WebCore::cssValueToRGBA): Extracted from getRGBAFontColor.
1640         (WebCore::getRGBAFontColor): Moved.
1641         (WebCore::rgbaBackgroundColorInEffect): Added.
1642         (WebCore::EditingStyle::init): Added support for InheritablePropertiesAndBackgroundColorInEffect.
1643         (WebCore::EditingStyle::prepareToApplyAt): Include the effective background color at the given position.
1644         Also remove the background color property when the effective background color is equal to the background
1645         color property (in terms of RGBA value) of the editing style.
1646         (WebCore::hasTransparentBackgroundColor): Moved from Editor class.
1647         (WebCore::backgroundColorInEffect): Extracted from Editor::selectionStartCSSPropertyValue.
1648         * editing/EditingStyle.h: Added prototypes for hasTransparentBackgroundColor and backgroundColorInEffect.
1649         * editing/Editor.cpp:
1650         (WebCore::Editor::selectionStartCSSPropertyValue): Calls backgroundColorInEffect.
1651         * editing/Editor.h: Removed hasTransparentBackgroundColor.
1652         * editing/markup.cpp:
1653         (WebCore::isElementPresentational): Reverted r85090 and r84311.
1654         (WebCore::createMarkup): Include the background color in effect when computing the editing style.
1655
1656 2011-05-23  Roland Steiner  <rolandsteiner@chromium.org>
1657
1658         Reviewed by Dimitri Glazkov.
1659
1660         Update node list cache count on the containing TreeScope rather than the Document
1661         https://bugs.webkit.org/show_bug.cgi?id=59983
1662
1663         Change code to call add/removeNodeListCache() and hasNodeListCaches() on the proper tree scope.
1664         Move updating of the node list cache count from setDocument() to setTreeScopeRecursively().
1665         Make setDocument() and setDocumentRecursively() private.
1666
1667         No new tests. (refactoring)
1668
1669         * dom/ContainerNode.cpp:
1670         (WebCore::ContainerNode::childrenChanged):
1671         * dom/Node.cpp:
1672         (WebCore::Node::~Node):
1673         (WebCore::Node::setDocument):
1674         (WebCore::Node::setTreeScopeRecursively):
1675         (WebCore::Node::childNodes):
1676         (WebCore::Node::registerDynamicNodeList):
1677         (WebCore::Node::unregisterDynamicNodeList):
1678         (WebCore::Node::notifyLocalNodeListsAttributeChanged):
1679         (WebCore::Node::notifyLocalNodeListsChildrenChanged):
1680         (WebCore::Node::getElementsByTagName):
1681         (WebCore::Node::getElementsByTagNameNS):
1682         (WebCore::Node::getElementsByName):
1683         (WebCore::Node::getElementsByClassName):
1684         * dom/Node.h:
1685         * html/HTMLFormControlElement.cpp:
1686         (WebCore::HTMLFormControlElement::labels):
1687
1688 2011-05-23  Yury Semikhatsky  <yurys@chromium.org>
1689
1690         Reviewed by Pavel Feldman.
1691
1692         [Chromium] Web Inspector: provide initial implementation of worker inspector transport
1693         https://bugs.webkit.org/show_bug.cgi?id=60267
1694
1695         All methods of WorkerContextInspectorProxy are inlined in WorkerContextProxy and
1696         the class itself is removed. Messages from worker inspector to page inspector
1697         are sent by means of WorkerReportingProxy.
1698
1699         * GNUmakefile.list.am:
1700         * WebCore.gypi:
1701         * WebCore.vcproj/WebCore.vcproj:
1702         * WebCore.xcodeproj/project.pbxproj:
1703         * inspector/InspectorWorkerAgent.cpp:
1704         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel):
1705         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::proxy):
1706         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::dispatchMessageFromWorker):
1707         (WebCore::InspectorWorkerAgent::sendMessageToWorker):
1708         (WebCore::InspectorWorkerAgent::didStartWorkerContext):
1709         * inspector/InspectorWorkerAgent.h:
1710         * inspector/WorkerInspectorController.cpp:
1711         (WebCore::WorkerInspectorController::connectFrontend):
1712         (WebCore::WorkerInspectorController::disconnectFrontend):
1713         * inspector/WorkerInspectorController.h:
1714         * workers/DefaultSharedWorkerRepository.cpp:
1715         (WebCore::SharedWorkerProxy::postMessageToPageInspector):
1716         * workers/WorkerContextInspectorProxy.h: Removed.
1717         * workers/WorkerContextProxy.h:
1718         (WebCore::WorkerContextProxy::PageInspector::~PageInspector):
1719         (WebCore::WorkerContextProxy::connectToInspector):
1720         (WebCore::WorkerContextProxy::disconnectFromInspector):
1721         (WebCore::WorkerContextProxy::sendMessageToInspector):
1722         * workers/WorkerMessagingProxy.cpp:
1723         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
1724         * workers/WorkerMessagingProxy.h:
1725         * workers/WorkerReportingProxy.h:
1726
1727 2011-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
1728
1729         Unreviewed, rolling out r87070.
1730         http://trac.webkit.org/changeset/87070
1731         https://bugs.webkit.org/show_bug.cgi?id=61285
1732
1733         broke resource-parameters.html on win, weird failures on wk2
1734         (Requested by caseq on #webkit).
1735
1736         * inspector/front-end/HAREntry.js:
1737         (WebInspector.HAREntry.prototype.build):
1738         (WebInspector.HAREntry.prototype._buildRequest):
1739         (WebInspector.HAREntry.prototype._buildResponse):
1740         (WebInspector.HAREntry.prototype._buildContent):
1741         (WebInspector.HAREntry.prototype._buildCookie):
1742         (WebInspector.HAREntry.prototype._interval):
1743         (WebInspector.HARLog.prototype.build):
1744         * inspector/front-end/Resource.js:
1745         (WebInspector.Resource.prototype.set requestHeaders):
1746         (WebInspector.Resource.prototype.get requestHeadersText):
1747         (WebInspector.Resource.prototype.set requestHeadersText):
1748         (WebInspector.Resource.prototype.get requestHeadersSize):
1749         (WebInspector.Resource.prototype.set responseHeaders):
1750         (WebInspector.Resource.prototype.get responseHeadersText):
1751         (WebInspector.Resource.prototype.set responseHeadersText):
1752         (WebInspector.Resource.prototype.get responseHeadersSize):
1753         (WebInspector.Resource.prototype._headersSize):
1754
1755 2011-05-18  Pavel Podivilov  <podivilov@chromium.org>
1756
1757         Reviewed by Yury Semikhatsky.
1758
1759         Web Inspector: source mapping for pretty-printed scripts is sometimes inaccurate after indented comments.
1760         https://bugs.webkit.org/show_bug.cgi?id=61037
1761
1762         * inspector/front-end/JavaScriptFormatter.js:
1763         (FormattedContentBuilder.prototype.addToken):
1764         (FormattedContentBuilder.prototype._addComment):
1765         (FormattedContentBuilder.prototype._addText):
1766         (FormattedContentBuilder.prototype._addMappingIfNeeded):
1767
1768 2011-05-23  Mike West  <mkwst@chromium.org>
1769
1770         Reviewed by Yury Semikhatsky.
1771
1772         Web Inspector: Missing fields in HAR
1773         https://bugs.webkit.org/show_bug.cgi?id=58127
1774         
1775         Specifically, this patch adds:
1776         - entry.request.httpVersion
1777         - entry.request.headersSize
1778         - entry.request.bodySize
1779         - entry.response.httpVersion
1780         - entry.response.headersSize
1781         - entry.response.bodySize
1782         - entry.response.content.compression
1783         
1784         Tests: http/tests/inspector/resource-har-conversion.html
1785                http/tests/inspector/resource-har-headers.html
1786                http/tests/inspector/resource-parameters.html
1787                http/tests/inspector/network/network-size.html
1788
1789         * inspector/front-end/HAREntry.js:
1790         (WebInspector.HAREntry.prototype.build):
1791         (WebInspector.HAREntry.prototype._buildRequest):
1792         (WebInspector.HAREntry.prototype._buildResponse):
1793         (WebInspector.HAREntry.prototype._buildContent):
1794         (WebInspector.HAREntry.prototype._buildCookie):
1795         (WebInspector.HAREntry.prototype._interval):
1796         (WebInspector.HAREntry.prototype.get requestBodySize):
1797         (WebInspector.HAREntry.prototype.get responseBodySize):
1798         (WebInspector.HAREntry.prototype.get responseCompression):
1799         (WebInspector.HARLog.prototype.build):
1800         * inspector/front-end/Resource.js:
1801         (WebInspector.Resource.prototype.set requestHeaders):
1802         (WebInspector.Resource.prototype.get requestHeadersText):
1803         (WebInspector.Resource.prototype.set requestHeadersText):
1804         (WebInspector.Resource.prototype.get requestHeadersSize):
1805         (WebInspector.Resource.prototype.get requestHttpVersion):
1806         (WebInspector.Resource.prototype.set responseHeaders):
1807         (WebInspector.Resource.prototype.get responseHeadersText):
1808         (WebInspector.Resource.prototype.set responseHeadersText):
1809         (WebInspector.Resource.prototype.get responseHeadersSize):
1810         (WebInspector.Resource.prototype.get responseHttpVersion):
1811
1812 2011-05-23  Andrey Kosyakov  <caseq@chromium.org>
1813
1814         Reviewed by Yury Semikhatsky.
1815
1816         Web Inspector: keyboard shortcut panel is 1px too short
1817         https://bugs.webkit.org/show_bug.cgi?id=61242
1818
1819         Fixed bottom margin of attached helpscreen so it's glued to status bar.
1820
1821         * inspector/front-end/helpScreen.css:
1822         (body.attached .help-window-outer):
1823
1824 2011-05-23  Kent Tamura  <tkent@chromium.org>
1825
1826         Reviewed by Dimitri Glazkov.
1827
1828         Change text-based <input> types to the new shadow DOM model
1829         https://bugs.webkit.org/show_bug.cgi?id=54179
1830
1831         By this change, text field inputs and textareas have one extra
1832         shadow node at the root of shadow trees.
1833         e.g. Before the change:
1834           <textarea> --(shadow-connection)-- <div> -- ...
1835         After the change:
1836           <textarea> --(shadow-connection)-- {#shadow-root} -- <div> -- ...
1837
1838         The goals of this change are
1839         - Change to the new shadow DOM model, and
1840         - Minimize the patch size.
1841
1842         We should use shadowPseudoId() in the new shadow DOM model, but the
1843         shadow elements in this patch don't use it in order to reduce the patch
1844         size.
1845
1846         Note: This is a re-landing for r87014 with a small fix of
1847         Element::removeShadowRoot().
1848         
1849         * css/html.css:
1850         (input::-webkit-inner-spin-button):
1851          Add vertical-align in order to avoid the button affect the baseline.
1852         (input::-webkit-outer-spin-button): ditto.
1853         (input::-webkit-input-speech-button): ditto.
1854         * dom/Element.cpp:
1855         (WebCore::Element::recalcStyle): Calls styleForRenderer() so that a
1856          subclass of Element can override it.
1857         (WebCore::Element::remvoeShadowRoot):
1858          Fix a wrong parameter for willRemoveDOMNode().
1859         (WebCore::Element::isSpellCheckingEnabled):
1860          Handle ShadowRoot, which is not an Element.
1861         * dom/Node.cpp:
1862           Add utility functions for editing code.
1863         (WebCore::Node::nonBoundaryShadowTreeRootNode):
1864         (WebCore::Node::nonShadowBoundaryParentNode):
1865         * dom/Node.h: Declare them.
1866         * dom/Position.cpp:
1867          - Add some assertions about ShadowRoot
1868          - Replace parentNode() with nonShadowBoundaryParentNode()
1869         Because input/textarea shadow structures are changed.
1870         (WebCore::Position::Position):
1871         (WebCore::Position::containerNode):
1872         (WebCore::Position::parentAnchoredEquivalent):
1873         (WebCore::Position::previous):
1874         (WebCore::Position::next):
1875         (WebCore::Position::parentEditingBoundary):
1876         (WebCore::Position::atStartOfTree):
1877         (WebCore::Position::atEndOfTree):
1878         * dom/Position.h: ditto.
1879         (WebCore::positionInParentBeforeNode):
1880         (WebCore::positionInParentAfterNode):
1881         * editing/CompositeEditCommand.cpp: ditto.
1882         (WebCore::CompositeEditCommand::insertNodeAfter):
1883         (WebCore::CompositeEditCommand::removeNode):
1884         * editing/Editor.cpp:
1885         (WebCore::Editor::findString): ditto.
1886         * editing/FrameSelection.cpp:
1887         (WebCore::FrameSelection::selectAll): Inline shadowTreeRootNode() calls.
1888         * editing/FrameSelection.h:
1889           Remove shadowTreeRootNode(). It is used only by FrameSelection::selectAll().
1890         * editing/InsertParagraphSeparatorCommand.cpp:
1891         (WebCore::InsertParagraphSeparatorCommand::doApply): Use nonShadowBoundaryParentNode()
1892         * editing/ReplaceSelectionCommand.cpp:
1893         (WebCore::ReplacementFragment::removeNode): ditto.
1894         (WebCore::ReplacementFragment::insertNodeBefore): ditto.
1895         * editing/VisibleSelection.cpp:
1896           Rename shadowTreeRootNode() to nonBoundaryShadowTreeRootNode(), and it reutrns
1897           a child node of ShadowRoot.
1898         (WebCore::VisibleSelection::isAll):
1899         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
1900         (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
1901         * editing/VisibleSelection.h: ditto.
1902         * editing/htmlediting.cpp: Add assertions.
1903         (WebCore::visiblePositionBeforeNode):
1904         (WebCore::visiblePositionAfterNode):
1905         * html/HTMLInputElement.cpp:
1906         (WebCore::HTMLInputElement::create): Calls createShadowSubtree().
1907         (WebCore::HTMLInputElement::createShadowSubtree):
1908           Calls InputType::createShadowSubTree().
1909         (WebCore::HTMLInputElement::innerTextElement):
1910           Accessor of a shadow node. This is used by RenderTextControlSingleLine.
1911         (WebCore::HTMLInputElement::innerBlockElement): ditto.
1912         (WebCore::HTMLInputElement::innerSpinButtonElement): ditto.
1913         (WebCore::HTMLInputElement::outerSpinButtonElement): ditto.
1914         (WebCore::HTMLInputElement::resultsButtonElement): ditto.
1915         (WebCore::HTMLInputElement::cancelButtonElement): ditto.
1916         (WebCore::HTMLInputElement::speechButtonElement): ditto.
1917         (WebCore::HTMLInputElement::parseMappedAttribute):
1918           Rebuild shadow trees because x-webkit-speech attribute affects it.
1919         * html/HTMLInputElement.h: Add declarations.
1920         * html/HTMLIsIndexElement.cpp:
1921         (WebCore::HTMLIsIndexElement::create): Calls createShadowSubtree().
1922         * html/HTMLTextAreaElement.cpp:
1923         (WebCore::HTMLTextAreaElement::create): Calls createShadowSubtree().
1924         (WebCore::HTMLTextAreaElement::createShadowSubtree): Added.
1925         * html/HTMLTextAreaElement.h: Declare createShadowSubtree().
1926         * html/InputType.h: Add default implementations of accessors.
1927         (WebCore::InputType::innerBlockElement):
1928         (WebCore::InputType::innerTextElement):
1929         (WebCore::InputType::innerSpinButtonElement):
1930         (WebCore::InputType::outerSpinButtonElement):
1931         (WebCore::InputType::resultsButtonElement):
1932         (WebCore::InputType::cancelButtonElement):
1933         (WebCore::InputType::speechButtonElement):
1934         * html/SearchInputType.cpp:
1935         (WebCore::SearchInputType::SearchInputType): Initializes new data members.
1936         (WebCore::SearchInputType::createShadowSubtree):
1937           Moved from RenderTextControlSingleLine.
1938         (WebCore::SearchInputType::destroyShadowSubtree): Clear element references.
1939         * html/SearchInputType.h: Add declarations.
1940         (WebCore::SearchInputType::innerBlockElement):
1941         (WebCore::SearchInputType::resultsButtonElement):
1942         (WebCore::SearchInputType::cancelButtonElement):
1943         * html/TextFieldInputType.cpp:
1944         (WebCore::TextFieldInputType::TextFieldInputType):
1945           Initializes new data members.
1946         (WebCore::TextFieldInputType::createShadowSubtree):
1947           Moved from RenderTextControlSingleLine.
1948         (WebCore::TextFieldInputType::destroyShadowSubtree): Clear element references.
1949         * html/TextFieldInputType.h: Add declarations.
1950         (WebCore::TextFieldInputType::innerTextElement):
1951         (WebCore::TextFieldInputType::innerSpinButtonElement):
1952         (WebCore::TextFieldInputType::outerSpinButtonElement):
1953         (WebCore::TextFieldInputType::speechButtonElement):
1954         (WebCore::TextFieldInputType::setInnerTextElement):
1955         (WebCore::TextFieldInputType::setSpeechButtonElement):
1956         * html/shadow/TextControlInnerElements.cpp:
1957         (WebCore::TextControlInnerElement::TextControlInnerElement):
1958           Remove shadowParent parameter. It is unnecessary because we switch to
1959           new shadow model.
1960         (WebCore::TextControlInnerElement::create):
1961           Change the parameter type to Document.
1962         (WebCore::TextControlInnerElement::styleForRenderer):
1963           Override this in order to set style by
1964           RenderTextControlSingleLine::createInnerBlockStyle().
1965         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
1966           Remove shadowParent parameter.
1967           Inherit HTMLDivElement, not TextControlInnerElement.
1968         (WebCore::TextControlInnerTextElement::create): Remove shadowParent parameter.
1969         (WebCore::TextControlInnerTextElement::styleForRenderer):
1970           Override this in order to set style by
1971           RenderTextControlSingleLine::createInnerTextStyle().
1972         (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
1973           Inherit HTMLDivElement, not TextControlInnerElement.
1974         (WebCore::SearchFieldResultsButtonElement::styleForRenderer):
1975           Override this in order to set style by
1976           RenderTextControlSingleLine::createResultButtonStyle().
1977         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
1978           Inherit HTMLDivElement, not TextControlInnerElement.
1979         (WebCore::SearchFieldCancelButtonElement::styleForRenderer):
1980           Override this in order to set style by
1981           RenderTextControlSingleLine::createCancelButtonStyle().
1982         (WebCore::SearchFieldCancelButtonElement::detach):
1983           Update for the parent class change.
1984         (WebCore::SpinButtonElement::SpinButtonElement):
1985           - Change the parameter type: shadowParent -> Document
1986           - Add the inner flag
1987           - Inherit HTMLDivElement, not TextControlInnerElement.
1988         (WebCore::SpinButtonElement::createInner): Introduce a new factory
1989           method to hide a bool parameter of the constructor.
1990         (WebCore::SpinButtonElement::createOuter): ditto.
1991         (WebCore::SpinButtonElement::styleForRenderer):
1992           Override this in order to set style by
1993           RenderTextControlSingleLine::createInnerSpinButtonStyle() or
1994           createOuterSpinButtonStyle().
1995         (WebCore::SpinButtonElement::detach): Update for the parent class change.
1996         (WebCore::SpinButtonElement::setHovered): ditto.
1997         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
1998           - Change the parameter type: shadowParent -> Document
1999           - Inherit HTMLDivElement, not TextControlInnerElement.
2000           - Do not register this as a speech input listener here.
2001         (WebCore::InputFieldSpeechButtonElement::create):
2002           Update for the parameter change.
2003         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2004           Do not handle click event if listener registration is not done.
2005         (WebCore::InputFieldSpeechButtonElement::attach):
2006           Register this as a speech input listener.
2007         (WebCore::InputFieldSpeechButtonElement::detach):
2008           Update for the parent class change.
2009         (WebCore::InputFieldSpeechButtonElement::styleForRenderer):
2010           Override this in order to set style by
2011           RenderTextControlSingleLine::createSpeechButtonStyle().
2012         * html/shadow/TextControlInnerElements.h:
2013         (WebCore::TextControlInnerTextElement::isMouseFocusable):
2014           Add this because the class is not a subclass of TextControllInnerElement.
2015         (WebCore::SearchFieldResultsButtonElement::isMouseFocusable): ditto.
2016         (WebCore::SearchFieldCancelButtonElement::isMouseFocusable): ditto.
2017         (WebCore::SpinButtonElement::isMouseFocusable): ditto.
2018         (WebCore::InputFieldSpeechButtonElement::isMouseFocusable): ditto.
2019         * rendering/RenderTextControl.cpp:
2020         (WebCore::RenderTextControl::~RenderTextControl): Remove unnecessary code.
2021         (WebCore::RenderTextControl::styleDidChange):
2022           innerTextElement can have no renderer.
2023           Explicitly call setNeedsStyleRecals() for innerTextElement. It is
2024           needed for LayoutTests/editing/selection/select-across-readonly-input-*.html.
2025         (WebCore::RenderTextControl::textBlockWidth): Member data -> function
2026         (WebCore::RenderTextControl::updateFromElement): ditto.
2027         (WebCore::RenderTextControl::setInnerTextValue): ditto.
2028         (WebCore::RenderTextControl::hasVisibleTextArea): ditto.
2029         (WebCore::RenderTextControl::isSelectableElement): ditto.
2030         (WebCore::RenderTextControl::selection): ditto.
2031         (WebCore::RenderTextControl::visiblePositionForIndex): ditto.
2032         (WebCore::RenderTextControl::indexForVisiblePosition): ditto.
2033         (WebCore::RenderTextControl::text): ditto.
2034         (WebCore::RenderTextControl::textWithHardLineBreaks): ditto.
2035         (WebCore::RenderTextControl::computeLogicalHeight): ditto.
2036         (WebCore::RenderTextControl::hitInnerTextElement): ditto.
2037         (WebCore::RenderTextControl::forwardEvent): ditto.
2038         (WebCore::RenderTextControl::computePreferredLogicalWidths): ditto.
2039         * rendering/RenderTextControl.h:
2040           - Make m_innerText virtual function.
2041           - Make createInnerTextStyle() public in order that
2042             TextControlInnerElements can call it.
2043         * rendering/RenderTextControlMultiLine.cpp:
2044         (WebCore::RenderTextControlMultiLine::innerTextElement): Added.
2045         (WebCore::RenderTextControlMultiLine::updateFromElement):
2046           Remove unnecessary createSubtreeIfNeeded() call.
2047         * rendering/RenderTextControlMultiLine.h: Add a declaration.
2048         * rendering/RenderTextControlSingleLine.cpp:
2049         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
2050           Remove unnecessary code.
2051         (WebCore::RenderTextControlSingleLine::innerTextElement): Added.
2052         (WebCore::RenderTextControlSingleLine::innerBlockElement): Added.
2053         (WebCore::RenderTextControlSingleLine::innerSpinButtonElement): Added.
2054         (WebCore::RenderTextControlSingleLine::outerSpinButtonElement): Added.
2055         (WebCore::RenderTextControlSingleLine::resultsButtonElement): Added.
2056         (WebCore::RenderTextControlSingleLine::cancelButtonElement): Added.
2057         (WebCore::RenderTextControlSingleLine::speechButtonElement): Added.
2058         (WebCore::RenderTextControlSingleLine::textBaseStyle): Data member -> function
2059         (WebCore::RenderTextControlSingleLine::subtreeHasChanged): ditto.
2060         (WebCore::RenderTextControlSingleLine::layout): ditto.
2061         (WebCore::RenderTextControlSingleLine::nodeAtPoint): ditto.
2062         (WebCore::RenderTextControlSingleLine::forwardEvent): ditto.
2063         (WebCore::RenderTextControlSingleLine::styleDidChange): ditto.
2064         (WebCore::RenderTextControlSingleLine::hasControlClip): ditto.
2065         (WebCore::RenderTextControlSingleLine::controlClipRect): ditto.
2066         (WebCore::RenderTextControlSingleLine::textBlockWidth): ditto.
2067         (WebCore::RenderTextControlSingleLine::decorationWidthRight): ditto.
2068         (WebCore::RenderTextControlSingleLine::preferredContentWidth): ditto.
2069         (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight): ditto.
2070         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight): ditto.
2071         (WebCore::RenderTextControlSingleLine::updateFromElement):
2072           ditto, and remove unnecessary createSubtreeIfNeeded() call.
2073         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
2074           Data member -> function
2075         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility): ditto.
2076         (WebCore::RenderTextControlSingleLine::clientPaddingLeft): ditto.
2077         (WebCore::RenderTextControlSingleLine::clientPaddingRight): ditto.
2078         (WebCore::RenderTextControlSingleLine::textBlockInsetTop): ditto.
2079         * rendering/RenderTextControlSingleLine.h:
2080           Add declarations, and remove unnecessary data members.
2081
2082 2011-05-19  Vitaly Repeshko  <vitalyr@chromium.org>
2083
2084         Reviewed by Adam Barth.
2085
2086         [V8] Explicitly mark objects with complex GC rules.
2087         https://bugs.webkit.org/show_bug.cgi?id=61131
2088
2089         From the GC point view there are two kinds of objects: the ones
2090         that may participate in object grouping (i.e. their lifetime
2091         depends on other objects) and the ones that never participate in
2092         grouping (independent). V8 added support for marking persistent
2093         handles as independent so that the GC can process the objects they
2094         hold faster. The motivating use case here is typed arrays.
2095
2096         This patch adds V8-specific inherited IDL attribute
2097         V8DependentLifetime to types used in V8GCController, which is
2098         exactly the set of types with object lifetimes depending on other
2099         objects. The handles for the types that are not marked with the
2100         new attribute can be marked as independent and GC-ed faster.
2101
2102         * bindings/scripts/CodeGeneratorV8.pm: Added proccessing of the new attribute.
2103
2104         Updated test output:
2105         * bindings/scripts/test/V8/V8TestInterface.cpp:
2106         (WebCore::V8TestInterface::wrapSlow):
2107         * bindings/scripts/test/V8/V8TestInterface.h:
2108         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2109         (WebCore::V8TestMediaQueryListListener::wrapSlow):
2110         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2111         * bindings/scripts/test/V8/V8TestObj.cpp:
2112         (WebCore::V8TestObj::wrapSlow):
2113         * bindings/scripts/test/V8/V8TestObj.h:
2114         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2115         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
2116         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2117
2118         Added the new attribute:
2119         * css/CSSRule.idl:
2120         * css/CSSRuleList.idl:
2121         * css/CSSStyleDeclaration.idl:
2122         * css/CSSValue.idl:
2123         * css/StyleSheet.idl:
2124         * css/StyleSheetList.idl:
2125         * dom/DOMImplementation.idl:
2126         * dom/Node.idl:
2127
2128 2011-05-23  Sheriff Bot  <webkit.review.bot@gmail.com>
2129
2130         Unreviewed, rolling out r87014, r87016, and r87017.
2131         http://trac.webkit.org/changeset/87014
2132         http://trac.webkit.org/changeset/87016
2133         http://trac.webkit.org/changeset/87017
2134         https://bugs.webkit.org/show_bug.cgi?id=61266
2135
2136         It made more tests assert (Requested by Ossy on #webkit).
2137
2138         * css/html.css:
2139         (input::-webkit-inner-spin-button):
2140         (input::-webkit-outer-spin-button):
2141         (input::-webkit-input-speech-button):
2142         * dom/Element.cpp:
2143         (WebCore::Element::recalcStyle):
2144         (WebCore::Element::isSpellCheckingEnabled):
2145         * dom/Node.cpp:
2146         * dom/Node.h:
2147         * dom/Position.cpp:
2148         (WebCore::Position::Position):
2149         (WebCore::Position::containerNode):
2150         (WebCore::Position::parentAnchoredEquivalent):
2151         (WebCore::Position::previous):
2152         (WebCore::Position::next):
2153         (WebCore::Position::parentEditingBoundary):
2154         (WebCore::Position::atStartOfTree):
2155         (WebCore::Position::atEndOfTree):
2156         * dom/Position.h:
2157         (WebCore::positionInParentBeforeNode):
2158         (WebCore::positionInParentAfterNode):
2159         * editing/CompositeEditCommand.cpp:
2160         (WebCore::CompositeEditCommand::insertNodeAfter):
2161         (WebCore::CompositeEditCommand::removeNode):
2162         * editing/Editor.cpp:
2163         (WebCore::Editor::findString):
2164         * editing/FrameSelection.cpp:
2165         (WebCore::FrameSelection::selectAll):
2166         * editing/FrameSelection.h:
2167         (WebCore::FrameSelection::shadowTreeRootNode):
2168         * editing/InsertParagraphSeparatorCommand.cpp:
2169         (WebCore::InsertParagraphSeparatorCommand::doApply):
2170         * editing/ReplaceSelectionCommand.cpp:
2171         (WebCore::ReplacementFragment::removeNode):
2172         (WebCore::ReplacementFragment::insertNodeBefore):
2173         * editing/VisibleSelection.cpp:
2174         (WebCore::VisibleSelection::isAll):
2175         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
2176         (WebCore::VisibleSelection::shadowTreeRootNode):
2177         * editing/VisibleSelection.h:
2178         * editing/htmlediting.cpp:
2179         (WebCore::visiblePositionBeforeNode):
2180         (WebCore::visiblePositionAfterNode):
2181         * html/HTMLInputElement.cpp:
2182         (WebCore::HTMLInputElement::create):
2183         (WebCore::HTMLInputElement::parseMappedAttribute):
2184         * html/HTMLInputElement.h:
2185         * html/HTMLIsIndexElement.cpp:
2186         (WebCore::HTMLIsIndexElement::create):
2187         * html/HTMLTextAreaElement.cpp:
2188         (WebCore::HTMLTextAreaElement::create):
2189         * html/HTMLTextAreaElement.h:
2190         * html/InputType.h:
2191         * html/SearchInputType.cpp:
2192         * html/SearchInputType.h:
2193         (WebCore::SearchInputType::SearchInputType):
2194         * html/TextFieldInputType.cpp:
2195         * html/TextFieldInputType.h:
2196         (WebCore::TextFieldInputType::TextFieldInputType):
2197         * html/shadow/TextControlInnerElements.cpp:
2198         (WebCore::TextControlInnerElement::TextControlInnerElement):
2199         (WebCore::TextControlInnerElement::create):
2200         (WebCore::TextControlInnerElement::attachInnerElement):
2201         (WebCore::TextControlInnerElement::detach):
2202         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
2203         (WebCore::TextControlInnerTextElement::create):
2204         (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
2205         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
2206         (WebCore::SearchFieldCancelButtonElement::detach):
2207         (WebCore::SpinButtonElement::SpinButtonElement):
2208         (WebCore::SpinButtonElement::create):
2209         (WebCore::SpinButtonElement::detach):
2210         (WebCore::SpinButtonElement::setHovered):
2211         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
2212         (WebCore::InputFieldSpeechButtonElement::create):
2213         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2214         (WebCore::InputFieldSpeechButtonElement::detach):
2215         * html/shadow/TextControlInnerElements.h:
2216         * rendering/RenderTextControl.cpp:
2217         (WebCore::RenderTextControl::~RenderTextControl):
2218         (WebCore::RenderTextControl::styleDidChange):
2219         (WebCore::RenderTextControl::setInnerTextStyle):
2220         (WebCore::RenderTextControl::createSubtreeIfNeeded):
2221         (WebCore::RenderTextControl::textBlockWidth):
2222         (WebCore::RenderTextControl::updateFromElement):
2223         (WebCore::RenderTextControl::setInnerTextValue):
2224         (WebCore::RenderTextControl::hasVisibleTextArea):
2225         (WebCore::RenderTextControl::isSelectableElement):
2226         (WebCore::RenderTextControl::selection):
2227         (WebCore::RenderTextControl::visiblePositionForIndex):
2228         (WebCore::RenderTextControl::indexForVisiblePosition):
2229         (WebCore::RenderTextControl::text):
2230         (WebCore::RenderTextControl::textWithHardLineBreaks):
2231         (WebCore::RenderTextControl::computeLogicalHeight):
2232         (WebCore::RenderTextControl::hitInnerTextElement):
2233         (WebCore::RenderTextControl::forwardEvent):
2234         (WebCore::RenderTextControl::computePreferredLogicalWidths):
2235         (WebCore::RenderTextControl::innerTextElement):
2236         * rendering/RenderTextControl.h:
2237         * rendering/RenderTextControlMultiLine.cpp:
2238         (WebCore::RenderTextControlMultiLine::updateFromElement):
2239         * rendering/RenderTextControlMultiLine.h:
2240         * rendering/RenderTextControlSingleLine.cpp:
2241         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
2242         (WebCore::RenderTextControlSingleLine::textBaseStyle):
2243         (WebCore::RenderTextControlSingleLine::subtreeHasChanged):
2244         (WebCore::RenderTextControlSingleLine::layout):
2245         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
2246         (WebCore::RenderTextControlSingleLine::forwardEvent):
2247         (WebCore::RenderTextControlSingleLine::styleDidChange):
2248         (WebCore::RenderTextControlSingleLine::hasControlClip):
2249         (WebCore::RenderTextControlSingleLine::controlClipRect):
2250         (WebCore::RenderTextControlSingleLine::textBlockWidth):
2251         (WebCore::RenderTextControlSingleLine::decorationWidthRight):
2252         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
2253         (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight):
2254         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
2255         (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
2256         (WebCore::RenderTextControlSingleLine::updateFromElement):
2257         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
2258         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility):
2259         (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
2260         (WebCore::RenderTextControlSingleLine::clientPaddingRight):
2261         (WebCore::RenderTextControlSingleLine::textBlockInsetTop):
2262         * rendering/RenderTextControlSingleLine.h:
2263
2264 2011-05-23  Syed Idris Shah  <syed.idris-shah@nokia.com>
2265
2266         Reviewed by Andreas Kling.
2267
2268         GraphicsContext3DInternal object should be called for getAttachedShaders.
2269         [Qt] fast/canvas/webgl/gl-object-get-calls.html crash for Qt based webkit
2270         https://bugs.webkit.org/show_bug.cgi?id=61202 
2271
2272         LayoutTests/fast/canvas/webgl/gl-object-get-calls.html
2273
2274         getAttachedShaders should be called on GraphicsContext3DInternal instance.
2275         It was left out by mistake.
2276
2277         * platform/graphics/qt/GraphicsContext3DQt.cpp: 
2278         (WebCore::GraphicsContext3D::getAttachedShaders): GraphicsContext3DInternal instance should be called.
2279
2280 2011-05-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2281
2282         Unreviewed. Strict PassOwnPtr build fix.
2283
2284         * platform/text/gtk/TextCodecGtk.cpp:
2285         (WebCore::newTextCodecGtk):
2286
2287 2011-05-23  Mikhail Naganov  <mnaganov@chromium.org>
2288
2289         Reviewed by Yury Semikhatsky.
2290
2291         Web Inspector: [Chromium] Show "Please wait" message during initial
2292         heap snapshot processing.
2293         https://bugs.webkit.org/show_bug.cgi?id=61040
2294
2295         * inspector/front-end/DetailedHeapshotView.js:
2296         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged.sort):
2297         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
2298         (WebInspector.DetailedHeapshotView.profileCallback):
2299         (WebInspector.DetailedHeapshotView.setDataSource):
2300         (WebInspector.DetailedHeapshotView):
2301         (WebInspector.DetailedHeapshotView.prototype._changeBase.baseProfileLoaded):
2302         (WebInspector.DetailedHeapshotView.prototype._changeBase.setDataSource):
2303         (WebInspector.DetailedHeapshotView.prototype._changeBase):
2304         (WebInspector.DetailedHeapshotView.prototype._changeView.setDataSource):
2305         (WebInspector.DetailedHeapshotView.prototype._changeView):
2306         * inspector/front-end/PleaseWaitMessage.js:
2307         (WebInspector.PleaseWaitMessage.prototype.showAndWaitFor):
2308
2309 2011-05-23  Adam Barth  <abarth@webkit.org>
2310
2311         Strict PassOwnPtr build fixes.
2312
2313         * platform/gtk/GeolocationServiceGtk.cpp:
2314         (WebCore::GeolocationServiceGtk::create):
2315         * platform/gtk/RenderThemeGtk.cpp:
2316         (WebCore::RenderThemeGtk::adjustSliderTrackStyle):
2317         (WebCore::RenderThemeGtk::adjustSliderThumbStyle):
2318         (WebCore::RenderThemeGtk::adjustProgressBarStyle):
2319
2320 2011-05-22  Adam Barth  <abarth@webkit.org>
2321
2322         Strict PassOwnPtr build fix.
2323
2324         * platform/efl/RenderThemeEfl.cpp:
2325         (WebCore::RenderThemeEfl::adjustProgressBarStyle):
2326
2327 2011-05-22  Andrew Wason  <rectalogic@rectalogic.com>
2328
2329         Reviewed by Benjamin Poulain.
2330
2331         [Qt] Implement toImageData() in QtWebKit Bridge
2332         https://bugs.webkit.org/show_bug.cgi?id=60897
2333
2334         Tests are in WebKit/qt/tests/hybridPixmap
2335
2336         * bridge/qt/qt_pixmapruntime.cpp:
2337         (JSC::Bindings::QtPixmapToImageDataMethod::name):
2338         (JSC::Bindings::QtPixmapToImageDataMethod::invoke):
2339         (JSC::Bindings::QtPixmapToImageDataMethod::copyPixels):
2340         (JSC::Bindings::QtPixmapClass::methodsNamed):
2341         (JSC::Bindings::QtPixmapInstance::getPropertyNames):
2342          Add toImageData() to Qt Bridge, alternative to
2343          assignToHTMLImageElement().
2344
2345 2011-05-22  Dominic Cooney  <dominicc@chromium.org>
2346
2347         Reviewed by Dimitri Glazkov.
2348
2349         When removing a shadow root, also remove it from the render tree.
2350         https://bugs.webkit.org/show_bug.cgi?id=61245
2351
2352         Test: existing fast/dom/shadow/layout-tests-can-access-shadow.html
2353
2354         * dom/Element.cpp:
2355         (WebCore::Element::removeShadowRoot): Call detach if attached.
2356
2357 2011-05-22  Dirk Schulze  <krit@webkit.org>
2358
2359         Reviewed by Nikolas Zimmermann.
2360
2361         Don't do manually style resolution for SVGElements with renderer
2362         https://bugs.webkit.org/show_bug.cgi?id=59176
2363
2364         General clean-up.
2365
2366         Don't resolve style manually, instead ask the RenderObject for its style.
2367
2368         Cleanup svgattrs.in, some SVG element names were accidently listed there as attributes.
2369
2370         No new tests needed. No change of behavior.
2371
2372         * svg/SVGFEDiffuseLightingElement.cpp:
2373         (WebCore::SVGFEDiffuseLightingElement::build):
2374         * svg/SVGFEDropShadowElement.cpp:
2375         (WebCore::SVGFEDropShadowElement::build):
2376         * svg/SVGFEFloodElement.cpp:
2377         (WebCore::SVGFEFloodElement::build):
2378         * svg/SVGFESpecularLightingElement.cpp:
2379         (WebCore::SVGFESpecularLightingElement::build):
2380         * svg/svgattrs.in:
2381
2382 2011-05-21  Dirk Schulze  <krit@webkit.org>
2383
2384         Reviewed by Darin Adler.
2385
2386         REGRESSION(r66731): pointer-events are broken in some cases
2387         https://bugs.webkit.org/show_bug.cgi?id=45467
2388
2389         The SVGSVGElement shouldn't be the target of a mouse event, if its pointer-events attribute is set
2390         to 'none'. This matches the behavior on Firefox where an embedded SVG element is the target of an event,
2391         if none of its childs caught the event. This is the case for all pointer-events other than 'none'.
2392
2393         Tests: svg/custom/pointer-events-on-svg-with-pointer.xhtml
2394                svg/custom/pointer-events-on-svg-without-pointer.xhtml
2395
2396         * rendering/svg/RenderSVGRoot.cpp:
2397         (WebCore::RenderSVGRoot::nodeAtPoint):
2398
2399 2011-05-21  Dan Bernstein  <mitz@apple.com>
2400
2401         Reviewed by Darin Adler.
2402
2403         <rdar://problem/9479926> REGRESSION (r82144): Icon overlaps text in Twitter message dialog
2404         https://bugs.webkit.org/show_bug.cgi?id=61241
2405
2406         Test: fast/block/positioning/start-ignoring-before.html
2407
2408         * rendering/RenderBlockLineLayout.cpp:
2409         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Added a boolean parameter saying
2410         whether to merge the first trailing space with the line break.
2411         (WebCore::RenderBlock::LineBreaker::nextLineBreak): When adding a midpoint behind the current
2412         character, account for trailing positioned objects that occurred after the midpoint by calling
2413         updateMidpointsForTrailingBoxes(), which adds midpoints for them.
2414
2415 2011-05-21  Jeremy Noble  <jer.noble@apple.com>
2416
2417         Reviewed by Eric Carlson.
2418
2419         WebKit2: fix failing fullscreen/full-screen-remove* tests.
2420         https://bugs.webkit.org/show_bug.cgi?id=61027
2421
2422         * dom/Document.cpp:
2423         (WebCore::Document::fullScreenChangeDelayTimerFired): dispatchEvent can be
2424             synchronous, so make sure to check whether the current element is
2425             in the DOM before dispatching.
2426
2427 2011-05-21  Gavin Peters  <gavinp@chromium.org>
2428
2429         Reviewed by Adam Barth.
2430
2431         Add rel type prerender to distinguish prerender from prefetch
2432         https://bugs.webkit.org/show_bug.cgi?id=61079
2433
2434         Chrome right now uses <link rel=prefetch ...> for one of two things,
2435         to warm the cache in the same way as firefox, or to launch a speculative
2436         rendering of a web page, for faster "loading" when the user navigates to it.
2437
2438         This new rel type will let us distinguish the two cases; the rel type prerender
2439         isn't used on the web today, but the Google Web Search example prerendering application
2440         is ready to experiment with it.
2441
2442         Test: fast/dom/HTMLLinkElement/prerender.html
2443
2444         * html/HTMLLinkElement.cpp:
2445         (WebCore::HTMLLinkElement::tokenizeRelAttribute):
2446         (WebCore::HTMLLinkElement::process):
2447         * html/HTMLLinkElement.h:
2448         (WebCore::HTMLLinkElement::RelAttribute::RelAttribute):
2449         * loader/cache/CachedResource.cpp:
2450         (WebCore::defaultPriorityForResourceType):
2451         * loader/cache/CachedResource.h:
2452         (WebCore::CachedResource::isLinkResource):
2453         * loader/cache/CachedResourceLoader.cpp:
2454         (WebCore::createResource):
2455         (WebCore::CachedResourceLoader::requestLinkResource):
2456         (WebCore::CachedResourceLoader::canRequest):
2457         * loader/cache/CachedResourceLoader.h:
2458         * loader/cache/CachedResourceRequest.cpp:
2459         (WebCore::cachedResourceTypeToTargetType):
2460         (WebCore::CachedResourceRequest::load):
2461         * platform/network/ResourceRequestBase.h:
2462
2463 2011-05-21  Emil A Eklund  <eae@chromium.org>
2464
2465         Reviewed by Eric Seidel.
2466
2467         Change RenderLineBoxList::hitTest to use IntPoint
2468         https://bugs.webkit.org/show_bug.cgi?id=61156
2469
2470         Change the RenderLineBoxList hit testing to use IntPoint and clean up the rect calculation.
2471
2472         Covered by existing tests.
2473
2474         * rendering/RenderBlock.cpp:
2475         (WebCore::RenderBlock::hitTestContents):
2476         * rendering/RenderInline.cpp:
2477         (WebCore::RenderInline::nodeAtPoint):
2478         * rendering/RenderLineBoxList.cpp:
2479         (WebCore::RenderLineBoxList::hitTest):
2480         * rendering/RenderLineBoxList.h:
2481
2482 2011-05-21  Emil A Eklund  <eae@chromium.org>
2483
2484         Reviewed by Eric Seidel.
2485
2486         Change HitTestResult to use IntPoint
2487         https://bugs.webkit.org/show_bug.cgi?id=61230
2488
2489         Covered by existing tests.
2490
2491         * rendering/EllipsisBox.cpp:
2492         (WebCore::EllipsisBox::nodeAtPoint):
2493         * rendering/HitTestResult.cpp:
2494         (WebCore::HitTestResult::addNodeToRectBasedTestResult):
2495         * rendering/HitTestResult.h:
2496         (WebCore::HitTestResult::isRectBasedTest):
2497         * rendering/InlineFlowBox.cpp:
2498         (WebCore::InlineFlowBox::nodeAtPoint):
2499         * rendering/InlineTextBox.cpp:
2500         (WebCore::InlineTextBox::nodeAtPoint):
2501         * rendering/RenderBlock.cpp:
2502         (WebCore::RenderBlock::nodeAtPoint):
2503         (WebCore::RenderBlock::hitTestColumns):
2504         * rendering/RenderBox.cpp:
2505         (WebCore::RenderBox::nodeAtPoint):
2506         * rendering/RenderTable.cpp:
2507         (WebCore::RenderTable::nodeAtPoint):
2508         * rendering/svg/RenderSVGRoot.cpp:
2509         (WebCore::RenderSVGRoot::nodeAtPoint):
2510
2511 2011-05-21  Jochen Eisinger  <jochen@chromium.org>
2512
2513         Reviewed by Darin Fisher.
2514
2515         [chromium] add extraData field to resource requests
2516         https://bugs.webkit.org/show_bug.cgi?id=61033
2517
2518         * platform/network/chromium/ResourceRequest.h:
2519         (WebCore::ResourceRequest::ExtraData::~ExtraData):
2520         (WebCore::ResourceRequest::extraData):
2521         (WebCore::ResourceRequest::setExtraData):
2522
2523 2011-05-21  Kent Tamura  <tkent@chromium.org>
2524
2525         Reviewed by Dimitri Glazkov.
2526
2527         Change text-based <input> types to the new shadow DOM model
2528         https://bugs.webkit.org/show_bug.cgi?id=54179
2529
2530         By this change, text field inputs and textareas have one extra
2531         shadow node at the root of shadow trees.
2532         e.g. Before the change:
2533           <textarea> --(shadow-connection)-- <div> -- ...
2534         After the change:
2535           <textarea> --(shadow-connection)-- {#shadow-root} -- <div> -- ...
2536
2537         The goals of this change are
2538         - Change to the new shadow DOM model, and
2539         - Minimize the patch size.
2540
2541         We should use shadowPseudoId() in the new shadow DOM model, but the
2542         shadow elements in this patch don't use it in order to reduce the patch
2543         size.
2544
2545         * css/html.css:
2546         (input::-webkit-inner-spin-button):
2547          Add vertical-align in order to avoid the button affect the baseline.
2548         (input::-webkit-outer-spin-button): ditto.
2549         (input::-webkit-input-speech-button): ditto.
2550         * dom/Element.cpp:
2551         (WebCore::Element::recalcStyle): Calls styleForRenderer() so that a
2552          subclass of Element can override it.
2553         (WebCore::Element::isSpellCheckingEnabled):
2554         Handle ShadowRoot, which is not an Element.
2555         * dom/Node.cpp:
2556           Add utility functions for editing code.
2557         (WebCore::Node::nonBoundaryShadowTreeRootNode):
2558         (WebCore::Node::nonShadowBoundaryParentNode):
2559         * dom/Node.h: Declare them.
2560         * dom/Position.cpp:
2561          - Add some assertions about ShadowRoot
2562          - Replace parentNode() with nonShadowBoundaryParentNode()
2563         Because input/textarea shadow structures are changed.
2564         (WebCore::Position::Position):
2565         (WebCore::Position::containerNode):
2566         (WebCore::Position::parentAnchoredEquivalent):
2567         (WebCore::Position::previous):
2568         (WebCore::Position::next):
2569         (WebCore::Position::parentEditingBoundary):
2570         (WebCore::Position::atStartOfTree):
2571         (WebCore::Position::atEndOfTree):
2572         * dom/Position.h: ditto.
2573         (WebCore::positionInParentBeforeNode):
2574         (WebCore::positionInParentAfterNode):
2575         * editing/CompositeEditCommand.cpp: ditto.
2576         (WebCore::CompositeEditCommand::insertNodeAfter):
2577         (WebCore::CompositeEditCommand::removeNode):
2578         * editing/Editor.cpp:
2579         (WebCore::Editor::findString): ditto.
2580         * editing/FrameSelection.cpp:
2581         (WebCore::FrameSelection::selectAll): Inline shadowTreeRootNode() calls.
2582         * editing/FrameSelection.h:
2583           Remove shadowTreeRootNode(). It is used only by FrameSelection::selectAll().
2584         * editing/InsertParagraphSeparatorCommand.cpp:
2585         (WebCore::InsertParagraphSeparatorCommand::doApply): Use nonShadowBoundaryParentNode()
2586         * editing/ReplaceSelectionCommand.cpp:
2587         (WebCore::ReplacementFragment::removeNode): ditto.
2588         (WebCore::ReplacementFragment::insertNodeBefore): ditto.
2589         * editing/VisibleSelection.cpp:
2590           Rename shadowTreeRootNode() to nonBoundaryShadowTreeRootNode(), and it reutrns
2591           a child node of ShadowRoot.
2592         (WebCore::VisibleSelection::isAll):
2593         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
2594         (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
2595         * editing/VisibleSelection.h: ditto.
2596         * editing/htmlediting.cpp: Add assertions.
2597         (WebCore::visiblePositionBeforeNode):
2598         (WebCore::visiblePositionAfterNode):
2599         * html/HTMLInputElement.cpp:
2600         (WebCore::HTMLInputElement::create): Calls createShadowSubtree().
2601         (WebCore::HTMLInputElement::createShadowSubtree):
2602           Calls InputType::createShadowSubTree().
2603         (WebCore::HTMLInputElement::innerTextElement):
2604           Accessor of a shadow node. This is used by RenderTextControlSingleLine.
2605         (WebCore::HTMLInputElement::innerBlockElement): ditto.
2606         (WebCore::HTMLInputElement::innerSpinButtonElement): ditto.
2607         (WebCore::HTMLInputElement::outerSpinButtonElement): ditto.
2608         (WebCore::HTMLInputElement::resultsButtonElement): ditto.
2609         (WebCore::HTMLInputElement::cancelButtonElement): ditto.
2610         (WebCore::HTMLInputElement::speechButtonElement): ditto.
2611         (WebCore::HTMLInputElement::parseMappedAttribute):
2612           Rebuild shadow trees because x-webkit-speech attribute affects it.
2613         * html/HTMLInputElement.h: Add declarations.
2614         * html/HTMLIsIndexElement.cpp:
2615         (WebCore::HTMLIsIndexElement::create): Calls createShadowSubtree().
2616         * html/HTMLTextAreaElement.cpp:
2617         (WebCore::HTMLTextAreaElement::create): Calls createShadowSubtree().
2618         (WebCore::HTMLTextAreaElement::createShadowSubtree): Added.
2619         * html/HTMLTextAreaElement.h: Declare createShadowSubtree().
2620         * html/InputType.h: Add default implementations of accessors.
2621         (WebCore::InputType::innerBlockElement):
2622         (WebCore::InputType::innerTextElement):
2623         (WebCore::InputType::innerSpinButtonElement):
2624         (WebCore::InputType::outerSpinButtonElement):
2625         (WebCore::InputType::resultsButtonElement):
2626         (WebCore::InputType::cancelButtonElement):
2627         (WebCore::InputType::speechButtonElement):
2628         * html/SearchInputType.cpp:
2629         (WebCore::SearchInputType::SearchInputType): Initializes new data members.
2630         (WebCore::SearchInputType::createShadowSubtree):
2631           Moved from RenderTextControlSingleLine.
2632         (WebCore::SearchInputType::destroyShadowSubtree): Clear element references.
2633         * html/SearchInputType.h: Add declarations.
2634         (WebCore::SearchInputType::innerBlockElement):
2635         (WebCore::SearchInputType::resultsButtonElement):
2636         (WebCore::SearchInputType::cancelButtonElement):
2637         * html/TextFieldInputType.cpp:
2638         (WebCore::TextFieldInputType::TextFieldInputType):
2639           Initializes new data members.
2640         (WebCore::TextFieldInputType::createShadowSubtree):
2641           Moved from RenderTextControlSingleLine.
2642         (WebCore::TextFieldInputType::destroyShadowSubtree): Clear element references.
2643         * html/TextFieldInputType.h: Add declarations.
2644         (WebCore::TextFieldInputType::innerTextElement):
2645         (WebCore::TextFieldInputType::innerSpinButtonElement):
2646         (WebCore::TextFieldInputType::outerSpinButtonElement):
2647         (WebCore::TextFieldInputType::speechButtonElement):
2648         (WebCore::TextFieldInputType::setInnerTextElement):
2649         (WebCore::TextFieldInputType::setSpeechButtonElement):
2650         * html/shadow/TextControlInnerElements.cpp:
2651         (WebCore::TextControlInnerElement::TextControlInnerElement):
2652           Remove shadowParent parameter. It is unnecessary because we switch to
2653           new shadow model.
2654         (WebCore::TextControlInnerElement::create):
2655           Change the parameter type to Document.
2656         (WebCore::TextControlInnerElement::styleForRenderer):
2657           Override this in order to set style by
2658           RenderTextControlSingleLine::createInnerBlockStyle().
2659         (WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
2660           Remove shadowParent parameter.
2661           Inherit HTMLDivElement, not TextControlInnerElement.
2662         (WebCore::TextControlInnerTextElement::create): Remove shadowParent parameter.
2663         (WebCore::TextControlInnerTextElement::styleForRenderer):
2664           Override this in order to set style by
2665           RenderTextControlSingleLine::createInnerTextStyle().
2666         (WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
2667           Inherit HTMLDivElement, not TextControlInnerElement.
2668         (WebCore::SearchFieldResultsButtonElement::styleForRenderer):
2669           Override this in order to set style by
2670           RenderTextControlSingleLine::createResultButtonStyle().
2671         (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
2672           Inherit HTMLDivElement, not TextControlInnerElement.
2673         (WebCore::SearchFieldCancelButtonElement::styleForRenderer):
2674           Override this in order to set style by
2675           RenderTextControlSingleLine::createCancelButtonStyle().
2676         (WebCore::SearchFieldCancelButtonElement::detach):
2677           Update for the parent class change.
2678         (WebCore::SpinButtonElement::SpinButtonElement):
2679           - Change the parameter type: shadowParent -> Document
2680           - Add the inner flag
2681           - Inherit HTMLDivElement, not TextControlInnerElement.
2682         (WebCore::SpinButtonElement::createInner): Introduce a new factory
2683           method to hide a bool parameter of the constructor.
2684         (WebCore::SpinButtonElement::createOuter): ditto.
2685         (WebCore::SpinButtonElement::styleForRenderer):
2686           Override this in order to set style by
2687           RenderTextControlSingleLine::createInnerSpinButtonStyle() or
2688           createOuterSpinButtonStyle().
2689         (WebCore::SpinButtonElement::detach): Update for the parent class change.
2690         (WebCore::SpinButtonElement::setHovered): ditto.
2691         (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
2692           - Change the parameter type: shadowParent -> Document
2693           - Inherit HTMLDivElement, not TextControlInnerElement.
2694           - Do not register this as a speech input listener here.
2695         (WebCore::InputFieldSpeechButtonElement::create):
2696           Update for the parameter change.
2697         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2698           Do not handle click event if listener registration is not done.
2699         (WebCore::InputFieldSpeechButtonElement::attach):
2700           Register this as a speech input listener.
2701         (WebCore::InputFieldSpeechButtonElement::detach):
2702           Update for the parent class change.
2703         (WebCore::InputFieldSpeechButtonElement::styleForRenderer):
2704           Override this in order to set style by
2705           RenderTextControlSingleLine::createSpeechButtonStyle().
2706         * html/shadow/TextControlInnerElements.h:
2707         (WebCore::TextControlInnerTextElement::isMouseFocusable):
2708           Add this because the class is not a subclass of TextControllInnerElement.
2709         (WebCore::SearchFieldResultsButtonElement::isMouseFocusable): ditto.
2710         (WebCore::SearchFieldCancelButtonElement::isMouseFocusable): ditto.
2711         (WebCore::SpinButtonElement::isMouseFocusable): ditto.
2712         (WebCore::InputFieldSpeechButtonElement::isMouseFocusable): ditto.
2713         * rendering/RenderTextControl.cpp:
2714         (WebCore::RenderTextControl::~RenderTextControl): Remove unnecessary code.
2715         (WebCore::RenderTextControl::styleDidChange):
2716           innerTextElement can have no renderer.
2717           Explicitly call setNeedsStyleRecals() for innerTextElement. It is
2718           needed for LayoutTests/editing/selection/select-across-readonly-input-*.html.
2719         (WebCore::RenderTextControl::textBlockWidth): Member data -> function
2720         (WebCore::RenderTextControl::updateFromElement): ditto.
2721         (WebCore::RenderTextControl::setInnerTextValue): ditto.
2722         (WebCore::RenderTextControl::hasVisibleTextArea): ditto.
2723         (WebCore::RenderTextControl::isSelectableElement): ditto.
2724         (WebCore::RenderTextControl::selection): ditto.
2725         (WebCore::RenderTextControl::visiblePositionForIndex): ditto.
2726         (WebCore::RenderTextControl::indexForVisiblePosition): ditto.
2727         (WebCore::RenderTextControl::text): ditto.
2728         (WebCore::RenderTextControl::textWithHardLineBreaks): ditto.
2729         (WebCore::RenderTextControl::computeLogicalHeight): ditto.
2730         (WebCore::RenderTextControl::hitInnerTextElement): ditto.
2731         (WebCore::RenderTextControl::forwardEvent): ditto.
2732         (WebCore::RenderTextControl::computePreferredLogicalWidths): ditto.
2733         * rendering/RenderTextControl.h:
2734           - Make m_innerText virtual function.
2735           - Make createInnerTextStyle() public in order that
2736             TextControlInnerElements can call it.
2737         * rendering/RenderTextControlMultiLine.cpp:
2738         (WebCore::RenderTextControlMultiLine::innerTextElement): Added.
2739         (WebCore::RenderTextControlMultiLine::updateFromElement):
2740           Remove unnecessary createSubtreeIfNeeded() call.
2741         * rendering/RenderTextControlMultiLine.h: Add a declaration.
2742         * rendering/RenderTextControlSingleLine.cpp:
2743         (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
2744           Remove unnecessary code.
2745         (WebCore::RenderTextControlSingleLine::innerTextElement): Added.
2746         (WebCore::RenderTextControlSingleLine::innerBlockElement): Added.
2747         (WebCore::RenderTextControlSingleLine::innerSpinButtonElement): Added.
2748         (WebCore::RenderTextControlSingleLine::outerSpinButtonElement): Added.
2749         (WebCore::RenderTextControlSingleLine::resultsButtonElement): Added.
2750         (WebCore::RenderTextControlSingleLine::cancelButtonElement): Added.
2751         (WebCore::RenderTextControlSingleLine::speechButtonElement): Added.
2752         (WebCore::RenderTextControlSingleLine::textBaseStyle): Data member -> function
2753         (WebCore::RenderTextControlSingleLine::subtreeHasChanged): ditto.
2754         (WebCore::RenderTextControlSingleLine::layout): ditto.
2755         (WebCore::RenderTextControlSingleLine::nodeAtPoint): ditto.
2756         (WebCore::RenderTextControlSingleLine::forwardEvent): ditto.
2757         (WebCore::RenderTextControlSingleLine::styleDidChange): ditto.
2758         (WebCore::RenderTextControlSingleLine::hasControlClip): ditto.
2759         (WebCore::RenderTextControlSingleLine::controlClipRect): ditto.
2760         (WebCore::RenderTextControlSingleLine::textBlockWidth): ditto.
2761         (WebCore::RenderTextControlSingleLine::decorationWidthRight): ditto.
2762         (WebCore::RenderTextControlSingleLine::preferredContentWidth): ditto.
2763         (WebCore::RenderTextControlSingleLine::preferredDecorationWidthRight): ditto.
2764         (WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight): ditto.
2765         (WebCore::RenderTextControlSingleLine::updateFromElement):
2766           ditto, and remove unnecessary createSubtreeIfNeeded() call.
2767         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
2768           Data member -> function
2769         (WebCore::RenderTextControlSingleLine::updateCancelButtonVisibility): ditto.
2770         (WebCore::RenderTextControlSingleLine::clientPaddingLeft): ditto.
2771         (WebCore::RenderTextControlSingleLine::clientPaddingRight): ditto.
2772         (WebCore::RenderTextControlSingleLine::textBlockInsetTop): ditto.
2773         * rendering/RenderTextControlSingleLine.h:
2774           Add declarations, and remove unnecessary data members.
2775
2776 2011-05-21  Chris Rogers  <crogers@google.com>
2777
2778         Reviewed by Kenneth Russell.
2779
2780         AudioBufferSourceNode noteOff() method must respect scheduling time
2781         https://bugs.webkit.org/show_bug.cgi?id=61226
2782
2783         No new tests since audio API is not yet implemented.
2784
2785         * webaudio/AudioBufferSourceNode.cpp:
2786         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
2787         (WebCore::AudioBufferSourceNode::process):
2788         (WebCore::AudioBufferSourceNode::provideInput):
2789         (WebCore::AudioBufferSourceNode::finish):
2790         (WebCore::AudioBufferSourceNode::noteGrainOn):
2791         (WebCore::AudioBufferSourceNode::noteOff):
2792         * webaudio/AudioBufferSourceNode.h:
2793
2794 2011-05-20  Dirk Schulze  <krit@webkit.org>
2795
2796         Reviewed by Nikolas Zimmermann.
2797
2798         Share more code in PathTraversalState
2799         https://bugs.webkit.org/show_bug.cgi?id=61238
2800
2801         Share more code between SVGPathTraversalStateBuilder and Path in PathTraversalState.
2802
2803         No change in functionality, so no new tests.
2804
2805         * platform/graphics/Path.cpp:
2806         (WebCore::pathLengthApplierFunction):
2807         * platform/graphics/PathTraversalState.cpp:
2808         (WebCore::PathTraversalState::processSegment):
2809         * platform/graphics/PathTraversalState.h:
2810         * svg/SVGPathTraversalStateBuilder.cpp:
2811         (WebCore::SVGPathTraversalStateBuilder::continueConsuming):
2812
2813 2011-05-21  Nikolas Zimmermann  <nzimmermann@rim.com>
2814
2815         Reviewed by Rob Buis.
2816
2817         SVG svgAttributeChanged/synchronizeProperty/parseMappedAttribute should be optimized
2818         https://bugs.webkit.org/show_bug.cgi?id=61183
2819
2820         Example: rect.x.baseVal.value = 100;
2821         What happens: SVGRectElement::svgAttributeChanged(const QualifiedName& attrName) is invoked with "SVGNames::rectAttr" as parameter.
2822
2823         void SVGRectElement::svgAttributeChanged(const QualifiedName& attrName)
2824         {
2825             SVGStyledTransformableElement::svgAttributeChanged(attrName);
2826             // Handle my own attribute changes...
2827         }
2828
2829         Currently we always traverse the base class hierarchy, when invoking svgAttributeChanged. Every svgAttributeChanged call from a class
2830         like SVGRectElement has to reach the base class SVGStyledElement::svgAttributeChanged, as it handles invalidation of the instances of
2831         an element. Say that a <rect> is referenced by a <use> and we change the 'x' attribute of the <rect>, then SVGStyledElement::svgAttributeChanged,
2832         calls SVGElementInstance::invalidateAllInstancesOfElement(this), so that the <use> can rebuild its shadow tree...
2833         That's the only reason all svgAttributeChanged implementations call the base class immediately, so SVGStyledElement is always reached.
2834
2835         Switch to a more efficient pattern, by providing a "bool isSupportedAttribute(const QualifiedName&);" function for all SVG*Elements.
2836         It contains all attributes the particular SVG*Element class handles (but not its parent classes attributes). For example SVGRectElement
2837         contains x/y/width/height/rx/ry attributes, and the ones from SVGTests/SVGLangSpace/SVGExternalResourcesRequired (xml:space/lang, etc.),
2838         but not eg. transform as that's handled by the parent class SVGStyledTransformableElement.
2839
2840         void SVGRectElement::svgAttributeChanged(const QualifiedName& attrName)
2841         {
2842             if (!isSupportedAttribute.contains(attrName)) {
2843                 SVGStyledTransformableElement::svgAttributeChanged(attrName);
2844                 return;
2845             }
2846
2847             // When we get here, we know for sure it's one of our attributes that has changed.
2848             // Note for eg. SVGNames::transformAttr, the call from SVGRectElement::svgAttributeChanged, would be immediately forwarded to the base class, which handles transformAttr changes)
2849
2850             if (attrName == SVGNames::xAttr) { do_work(); return; }
2851             if (attrName == SVGNames::yAttr) { do_work(); return; }
2852             ...
2853             // Assure that we handled all properties we claim support for in "isSupportedAttribute()".
2854             ASSERT_NOT_REACHED();
2855         }
2856
2857         Exactly the same pattern can be applied to synchronizeProperty and parseMappedAttribute to speed them up as well.
2858
2859         Add "SVGElementInstance::InvalidationGuard guard(this)" statements in all svgAttributeChanged implementations, that calls invalidateAllInstancesOfElement(this)
2860         upon destruction, after we've reacted to the svg attribute change. This assures we never forget to call the invalidation method anywhere, and don't
2861         need to rely on the base class svgAttributeChanged() call to do it.
2862        
2863         It's a slight overal performance progression.
2864
2865         * svg/SVGAElement.cpp:
2866         (WebCore::SVGAElement::isSupportedAttribute):
2867         (WebCore::SVGAElement::parseMappedAttribute):
2868         (WebCore::SVGAElement::svgAttributeChanged):
2869         (WebCore::SVGAElement::synchronizeProperty):
2870         * svg/SVGAElement.h:
2871         * svg/SVGAnimateMotionElement.cpp:
2872         (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
2873         (WebCore::SVGAnimateMotionElement::parseMappedAttribute):
2874         * svg/SVGAnimateMotionElement.h:
2875         * svg/SVGAnimateTransformElement.cpp:
2876         (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
2877         (WebCore::SVGAnimateTransformElement::parseMappedAttribute):
2878         * svg/SVGAnimateTransformElement.h:
2879         * svg/SVGAnimationElement.cpp:
2880         (WebCore::SVGAnimationElement::isSupportedAttribute):
2881         (WebCore::SVGAnimationElement::parseMappedAttribute):
2882         * svg/SVGAnimationElement.h:
2883         * svg/SVGCircleElement.cpp:
2884         (WebCore::SVGCircleElement::isSupportedAttribute):
2885         (WebCore::SVGCircleElement::parseMappedAttribute):
2886         (WebCore::SVGCircleElement::svgAttributeChanged):
2887         (WebCore::SVGCircleElement::synchronizeProperty):
2888         * svg/SVGCircleElement.h:
2889         * svg/SVGClipPathElement.cpp:
2890         (WebCore::SVGClipPathElement::isSupportedAttribute):
2891         (WebCore::SVGClipPathElement::parseMappedAttribute):
2892         (WebCore::SVGClipPathElement::svgAttributeChanged):
2893         (WebCore::SVGClipPathElement::synchronizeProperty):
2894         * svg/SVGClipPathElement.h:
2895         * svg/SVGComponentTransferFunctionElement.cpp:
2896         (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
2897         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute):
2898         (WebCore::SVGComponentTransferFunctionElement::synchronizeProperty):
2899         * svg/SVGComponentTransferFunctionElement.h:
2900         * svg/SVGCursorElement.cpp:
2901         (WebCore::SVGCursorElement::isSupportedAttribute):
2902         (WebCore::SVGCursorElement::parseMappedAttribute):
2903         (WebCore::SVGCursorElement::svgAttributeChanged):
2904         (WebCore::SVGCursorElement::synchronizeProperty):
2905         * svg/SVGCursorElement.h:
2906         * svg/SVGElementInstance.h:
2907         (WebCore::SVGElementInstance::InvalidationGuard::InvalidationGuard):
2908         (WebCore::SVGElementInstance::InvalidationGuard::~InvalidationGuard):
2909         * svg/SVGEllipseElement.cpp:
2910         (WebCore::SVGEllipseElement::isSupportedAttribute):
2911         (WebCore::SVGEllipseElement::parseMappedAttribute):
2912         (WebCore::SVGEllipseElement::svgAttributeChanged):
2913         (WebCore::SVGEllipseElement::synchronizeProperty):
2914         * svg/SVGEllipseElement.h:
2915         * svg/SVGExternalResourcesRequired.cpp:
2916         (WebCore::SVGExternalResourcesRequired::addSupportedAttributes):
2917         * svg/SVGExternalResourcesRequired.h:
2918         * svg/SVGFEBlendElement.cpp:
2919         (WebCore::SVGFEBlendElement::isSupportedAttribute):
2920         (WebCore::SVGFEBlendElement::parseMappedAttribute):
2921         (WebCore::SVGFEBlendElement::svgAttributeChanged):
2922         (WebCore::SVGFEBlendElement::synchronizeProperty):
2923         * svg/SVGFEBlendElement.h:
2924         * svg/SVGFEColorMatrixElement.cpp:
2925         (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
2926         (WebCore::SVGFEColorMatrixElement::parseMappedAttribute):
2927         (WebCore::SVGFEColorMatrixElement::svgAttributeChanged):
2928         (WebCore::SVGFEColorMatrixElement::synchronizeProperty):
2929         * svg/SVGFEColorMatrixElement.h:
2930         * svg/SVGFEComponentTransferElement.cpp:
2931         (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
2932         (WebCore::SVGFEComponentTransferElement::parseMappedAttribute):
2933         (WebCore::SVGFEComponentTransferElement::synchronizeProperty):
2934         * svg/SVGFEComponentTransferElement.h:
2935         * svg/SVGFECompositeElement.cpp:
2936         (WebCore::SVGFECompositeElement::isSupportedAttribute):
2937         (WebCore::SVGFECompositeElement::parseMappedAttribute):
2938         (WebCore::SVGFECompositeElement::svgAttributeChanged):
2939         (WebCore::SVGFECompositeElement::synchronizeProperty):
2940         * svg/SVGFECompositeElement.h:
2941         * svg/SVGFEConvolveMatrixElement.cpp:
2942         (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
2943         (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute):
2944         (WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
2945         (WebCore::SVGFEConvolveMatrixElement::synchronizeProperty):
2946         * svg/SVGFEConvolveMatrixElement.h:
2947         * svg/SVGFEDiffuseLightingElement.cpp:
2948         (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
2949         (WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
2950         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
2951         (WebCore::SVGFEDiffuseLightingElement::synchronizeProperty):
2952         * svg/SVGFEDiffuseLightingElement.h:
2953         * svg/SVGFEDisplacementMapElement.cpp:
2954         (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
2955         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute):
2956         (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged):
2957         (WebCore::SVGFEDisplacementMapElement::synchronizeProperty):
2958         * svg/SVGFEDisplacementMapElement.h:
2959         * svg/SVGFEDropShadowElement.cpp:
2960         (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
2961         (WebCore::SVGFEDropShadowElement::parseMappedAttribute):
2962         (WebCore::SVGFEDropShadowElement::svgAttributeChanged):
2963         (WebCore::SVGFEDropShadowElement::synchronizeProperty):
2964         * svg/SVGFEDropShadowElement.h:
2965         * svg/SVGFEGaussianBlurElement.cpp:
2966         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
2967         (WebCore::SVGFEGaussianBlurElement::parseMappedAttribute):
2968         (WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
2969         (WebCore::SVGFEGaussianBlurElement::synchronizeProperty):
2970         * svg/SVGFEGaussianBlurElement.h:
2971         * svg/SVGFEImageElement.cpp:
2972         (WebCore::SVGFEImageElement::isSupportedAttribute):
2973         (WebCore::SVGFEImageElement::parseMappedAttribute):
2974         (WebCore::SVGFEImageElement::svgAttributeChanged):
2975         (WebCore::SVGFEImageElement::synchronizeProperty):
2976         * svg/SVGFEImageElement.h:
2977         * svg/SVGFELightElement.cpp:
2978         (WebCore::SVGFELightElement::isSupportedAttribute):
2979         (WebCore::SVGFELightElement::parseMappedAttribute):
2980         (WebCore::SVGFELightElement::svgAttributeChanged):
2981         (WebCore::SVGFELightElement::synchronizeProperty):
2982         * svg/SVGFELightElement.h:
2983         * svg/SVGFEMergeNodeElement.cpp:
2984         (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
2985         (WebCore::SVGFEMergeNodeElement::parseMappedAttribute):
2986         (WebCore::SVGFEMergeNodeElement::svgAttributeChanged):
2987         (WebCore::SVGFEMergeNodeElement::synchronizeProperty):
2988         * svg/SVGFEMergeNodeElement.h:
2989         * svg/SVGFEMorphologyElement.cpp:
2990         (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
2991         (WebCore::SVGFEMorphologyElement::parseMappedAttribute):
2992         (WebCore::SVGFEMorphologyElement::svgAttributeChanged):
2993         (WebCore::SVGFEMorphologyElement::synchronizeProperty):
2994         * svg/SVGFEMorphologyElement.h:
2995         * svg/SVGFEOffsetElement.cpp:
2996         (WebCore::SVGFEOffsetElement::isSupportedAttribute):
2997         (WebCore::SVGFEOffsetElement::parseMappedAttribute):
2998         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
2999         (WebCore::SVGFEOffsetElement::synchronizeProperty):
3000         * svg/SVGFEOffsetElement.h:
3001         * svg/SVGFESpecularLightingElement.cpp:
3002         (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
3003         (WebCore::SVGFESpecularLightingElement::parseMappedAttribute):
3004         (WebCore::SVGFESpecularLightingElement::svgAttributeChanged):
3005         (WebCore::SVGFESpecularLightingElement::synchronizeProperty):
3006         * svg/SVGFESpecularLightingElement.h:
3007         * svg/SVGFETileElement.cpp:
3008         (WebCore::SVGFETileElement::isSupportedAttribute):
3009         (WebCore::SVGFETileElement::parseMappedAttribute):
3010         (WebCore::SVGFETileElement::svgAttributeChanged):
3011         (WebCore::SVGFETileElement::synchronizeProperty):
3012         * svg/SVGFETileElement.h:
3013         * svg/SVGFETurbulenceElement.cpp:
3014         (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
3015         (WebCore::SVGFETurbulenceElement::parseMappedAttribute):
3016         (WebCore::SVGFETurbulenceElement::svgAttributeChanged):
3017         (WebCore::SVGFETurbulenceElement::synchronizeProperty):
3018         * svg/SVGFETurbulenceElement.h:
3019         * svg/SVGFilterElement.cpp:
3020         (WebCore::SVGFilterElement::isSupportedAttribute):
3021         (WebCore::SVGFilterElement::parseMappedAttribute):
3022         (WebCore::SVGFilterElement::svgAttributeChanged):
3023         (WebCore::SVGFilterElement::synchronizeProperty):
3024         * svg/SVGFilterElement.h:
3025         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3026         (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
3027         (WebCore::SVGFilterPrimitiveStandardAttributes::parseMappedAttribute):
3028         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
3029         (WebCore::SVGFilterPrimitiveStandardAttributes::synchronizeProperty):
3030         * svg/SVGFilterPrimitiveStandardAttributes.h:
3031         * svg/SVGFitToViewBox.cpp:
3032         (WebCore::SVGFitToViewBox::parseMappedAttribute):
3033         (WebCore::SVGFitToViewBox::synchronizeProperties):
3034         (WebCore::SVGFitToViewBox::addSupportedAttributes):
3035         * svg/SVGFitToViewBox.h:
3036         * svg/SVGForeignObjectElement.cpp:
3037         (WebCore::SVGForeignObjectElement::isSupportedAttribute):
3038         (WebCore::SVGForeignObjectElement::parseMappedAttribute):
3039         (WebCore::SVGForeignObjectElement::svgAttributeChanged):
3040         (WebCore::SVGForeignObjectElement::synchronizeProperty):
3041         * svg/SVGForeignObjectElement.h:
3042         * svg/SVGGElement.cpp:
3043         (WebCore::SVGGElement::isSupportedAttribute):
3044         (WebCore::SVGGElement::parseMappedAttribute):
3045         (WebCore::SVGGElement::svgAttributeChanged):
3046         (WebCore::SVGGElement::synchronizeProperty):
3047         * svg/SVGGElement.h:
3048         * svg/SVGGradientElement.cpp:
3049         (WebCore::SVGGradientElement::isSupportedAttribute):
3050         (WebCore::SVGGradientElement::parseMappedAttribute):
3051         (WebCore::SVGGradientElement::svgAttributeChanged):
3052         (WebCore::SVGGradientElement::synchronizeProperty):
3053         * svg/SVGGradientElement.h:
3054         * svg/SVGImageElement.cpp:
3055         (WebCore::SVGImageElement::isSupportedAttribute):
3056         (WebCore::SVGImageElement::parseMappedAttribute):
3057         (WebCore::SVGImageElement::svgAttributeChanged):
3058         (WebCore::SVGImageElement::synchronizeProperty):
3059         * svg/SVGImageElement.h:
3060         * svg/SVGLangSpace.cpp:
3061         (WebCore::SVGLangSpace::addSupportedAttributes):
3062         * svg/SVGLangSpace.h:
3063         * svg/SVGLineElement.cpp:
3064         (WebCore::SVGLineElement::isSupportedAttribute):
3065         (WebCore::SVGLineElement::parseMappedAttribute):
3066         (WebCore::SVGLineElement::svgAttributeChanged):
3067         (WebCore::SVGLineElement::synchronizeProperty):
3068         * svg/SVGLineElement.h:
3069         * svg/SVGLinearGradientElement.cpp:
3070         (WebCore::SVGLinearGradientElement::isSupportedAttribute):
3071         (WebCore::SVGLinearGradientElement::parseMappedAttribute):
3072         (WebCore::SVGLinearGradientElement::svgAttributeChanged):
3073         (WebCore::SVGLinearGradientElement::synchronizeProperty):
3074         * svg/SVGLinearGradientElement.h:
3075         * svg/SVGMPathElement.cpp:
3076         (WebCore::SVGMPathElement::isSupportedAttribute):
3077         (WebCore::SVGMPathElement::parseMappedAttribute):
3078         (WebCore::SVGMPathElement::synchronizeProperty):
3079         * svg/SVGMPathElement.h:
3080         * svg/SVGMarkerElement.cpp:
3081         (WebCore::SVGMarkerElement::isSupportedAttribute):
3082         (WebCore::SVGMarkerElement::parseMappedAttribute):
3083         (WebCore::SVGMarkerElement::svgAttributeChanged):
3084         (WebCore::SVGMarkerElement::synchronizeProperty):
3085         * svg/SVGMarkerElement.h:
3086         * svg/SVGMaskElement.cpp:
3087         (WebCore::SVGMaskElement::isSupportedAttribute):
3088         (WebCore::SVGMaskElement::parseMappedAttribute):
3089         (WebCore::SVGMaskElement::svgAttributeChanged):
3090         (WebCore::SVGMaskElement::synchronizeProperty):
3091         * svg/SVGMaskElement.h:
3092         * svg/SVGPathElement.cpp:
3093         (WebCore::SVGPathElement::isSupportedAttribute):
3094         (WebCore::SVGPathElement::parseMappedAttribute):
3095         (WebCore::SVGPathElement::svgAttributeChanged):
3096         (WebCore::SVGPathElement::synchronizeProperty):
3097         * svg/SVGPathElement.h:
3098         * svg/SVGPatternElement.cpp:
3099         (WebCore::SVGPatternElement::isSupportedAttribute):
3100         (WebCore::SVGPatternElement::parseMappedAttribute):
3101         (WebCore::SVGPatternElement::svgAttributeChanged):
3102         (WebCore::SVGPatternElement::synchronizeProperty):
3103         * svg/SVGPatternElement.h:
3104         * svg/SVGPolyElement.cpp:
3105         (WebCore::SVGPolyElement::isSupportedAttribute):
3106         (WebCore::SVGPolyElement::parseMappedAttribute):
3107         (WebCore::SVGPolyElement::svgAttributeChanged):
3108         * svg/SVGPolyElement.h:
3109         * svg/SVGRadialGradientElement.cpp:
3110         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
3111         (WebCore::SVGRadialGradientElement::parseMappedAttribute):
3112         (WebCore::SVGRadialGradientElement::svgAttributeChanged):
3113         (WebCore::SVGRadialGradientElement::synchronizeProperty):
3114         * svg/SVGRadialGradientElement.h:
3115         * svg/SVGRectElement.cpp:
3116         (WebCore::SVGRectElement::isSupportedAttribute):
3117         (WebCore::SVGRectElement::parseMappedAttribute):
3118         (WebCore::SVGRectElement::svgAttributeChanged):
3119         (WebCore::SVGRectElement::synchronizeProperty):
3120         * svg/SVGRectElement.h:
3121         * svg/SVGSVGElement.cpp:
3122         (WebCore::SVGSVGElement::svgAttributeChanged):
3123         (WebCore::SVGSVGElement::synchronizeProperty):
3124         * svg/SVGScriptElement.cpp:
3125         (WebCore::SVGScriptElement::isSupportedAttribute):
3126         (WebCore::SVGScriptElement::parseMappedAttribute):
3127         (WebCore::SVGScriptElement::svgAttributeChanged):
3128         (WebCore::SVGScriptElement::synchronizeProperty):
3129         * svg/SVGScriptElement.h:
3130         * svg/SVGStopElement.cpp:
3131         (WebCore::SVGStopElement::isSupportedAttribute):
3132         (WebCore::SVGStopElement::parseMappedAttribute):
3133         (WebCore::SVGStopElement::svgAttributeChanged):
3134         (WebCore::SVGStopElement::synchronizeProperty):
3135         * svg/SVGStopElement.h:
3136         * svg/SVGStyleElement.cpp:
3137         (WebCore::SVGStyleElement::isSupportedAttribute):
3138         (WebCore::SVGStyleElement::parseMappedAttribute):
3139         * svg/SVGStyleElement.h:
3140         * svg/SVGStyledElement.cpp:
3141         (WebCore::SVGStyledElement::parseMappedAttribute):
3142         (WebCore::SVGStyledElement::svgAttributeChanged):
3143         (WebCore::SVGStyledElement::synchronizeProperty):
3144         * svg/SVGStyledTransformableElement.cpp:
3145         (WebCore::SVGStyledTransformableElement::isSupportedAttribute):
3146         (WebCore::SVGStyledTransformableElement::parseMappedAttribute):
3147         (WebCore::SVGStyledTransformableElement::svgAttributeChanged):
3148         (WebCore::SVGStyledTransformableElement::synchronizeProperty):
3149         * svg/SVGStyledTransformableElement.h:
3150         * svg/SVGSymbolElement.cpp:
3151         (WebCore::SVGSymbolElement::isSupportedAttribute):
3152         (WebCore::SVGSymbolElement::parseMappedAttribute):
3153         (WebCore::SVGSymbolElement::svgAttributeChanged):
3154         (WebCore::SVGSymbolElement::synchronizeProperty):
3155         * svg/SVGSymbolElement.h:
3156         * svg/SVGTRefElement.cpp:
3157         (WebCore::SVGTRefElement::isSupportedAttribute):
3158         (WebCore::SVGTRefElement::parseMappedAttribute):
3159         (WebCore::SVGTRefElement::svgAttributeChanged):
3160         (WebCore::SVGTRefElement::synchronizeProperty):
3161         * svg/SVGTRefElement.h:
3162         * svg/SVGTests.cpp:
3163         (WebCore::SVGTests::addSupportedAttributes):
3164         * svg/SVGTests.h:
3165         * svg/SVGTextContentElement.cpp:
3166         (WebCore::SVGTextContentElement::isSupportedAttribute):
3167         (WebCore::SVGTextContentElement::parseMappedAttribute):
3168         (WebCore::SVGTextContentElement::synchronizeProperty):
3169         (WebCore::SVGTextContentElement::svgAttributeChanged):
3170         * svg/SVGTextContentElement.h:
3171         * svg/SVGTextElement.cpp:
3172         (WebCore::SVGTextElement::isSupportedAttribute):
3173         (WebCore::SVGTextElement::parseMappedAttribute):
3174         (WebCore::SVGTextElement::svgAttributeChanged):
3175         (WebCore::SVGTextElement::synchronizeProperty):
3176         * svg/SVGTextElement.h:
3177         * svg/SVGTextPathElement.cpp:
3178         (WebCore::SVGTextPathElement::isSupportedAttribute):
3179         (WebCore::SVGTextPathElement::parseMappedAttribute):
3180         (WebCore::SVGTextPathElement::svgAttributeChanged):
3181         (WebCore::SVGTextPathElement::synchronizeProperty):
3182         * svg/SVGTextPathElement.h:
3183         * svg/SVGTextPositioningElement.cpp:
3184         (WebCore::SVGTextPositioningElement::isSupportedAttribute):
3185         (WebCore::SVGTextPositioningElement::parseMappedAttribute):
3186         (WebCore::SVGTextPositioningElement::svgAttributeChanged):
3187         (WebCore::SVGTextPositioningElement::synchronizeProperty):
3188         * svg/SVGTextPositioningElement.h:
3189         * svg/SVGTransformable.cpp:
3190         * svg/SVGTransformable.h:
3191         * svg/SVGURIReference.cpp:
3192         (WebCore::SVGURIReference::addSupportedAttributes):
3193         * svg/SVGURIReference.h:
3194         * svg/SVGUseElement.cpp:
3195         (WebCore::SVGUseElement::isSupportedAttribute):
3196         (WebCore::SVGUseElement::parseMappedAttribute):
3197         (WebCore::SVGUseElement::svgAttributeChanged):
3198         (WebCore::SVGUseElement::synchronizeProperty):
3199         * svg/SVGUseElement.h:
3200         * svg/SVGViewElement.cpp:
3201         (WebCore::SVGViewElement::isSupportedAttribute):
3202         (WebCore::SVGViewElement::parseMappedAttribute):
3203         (WebCore::SVGViewElement::synchronizeProperty):
3204         * svg/SVGViewElement.h:
3205         * svg/SVGZoomAndPan.cpp:
3206         (WebCore::SVGZoomAndPan::addSupportedAttributes):
3207         * svg/SVGZoomAndPan.h:
3208
3209 2011-05-20  Simon Fraser  <simon.fraser@apple.com>
3210
3211         Reviewed by Dan Bernstein.
3212
3213         Allow ShadowBlur to do tiling when the context is scaled
3214         https://bugs.webkit.org/show_bug.cgi?id=61232
3215
3216         If the GraphicsContext is scaled or rotated by a multiple of 90deg, have ShadowBlur
3217         use the tiling code path, to avoid blurring large areas on pages like cracked.com
3218         when the context is scaled.
3219
3220         * platform/graphics/ShadowBlur.cpp:
3221         (WebCore::ShadowBlur::drawRectShadow): Call preservesAxisAlignment()
3222         to decide when to not use tiling.
3223         (WebCore::ShadowBlur::drawInsetShadow): Ditto.
3224         (WebCore::ShadowBlur::drawLayerPieces): Round to device pixels when drawing tiles
3225         to avoid pixel cracks in scaled contexts.
3226         * platform/graphics/transforms/AffineTransform.h:
3227         (WebCore::AffineTransform::preservesAxisAlignment): Return true if there is the matrix
3228         contains a transform that results in axis alignment (no rotation or skew, or rotations
3229         which are multiples of 90deg).
3230
3231 2011-05-20  Alexey Proskuryakov  <ap@apple.com>
3232
3233         Reviewed by Kent Tamura.
3234
3235         Special characters can be inserted in text field having reached maxlength
3236         https://bugs.webkit.org/show_bug.cgi?id=19479
3237         <rdar://problem/7828739>
3238
3239         Test: platform/mac/editing/input/maxlength.html
3240
3241         * editing/CompositeEditCommand.cpp:
3242         (WebCore::CompositeEditCommand::insertTextIntoNode):
3243         (WebCore::CompositeEditCommand::replaceTextInNode):
3244         Avoid hitting an assertion below, now that we can get here with empty text.
3245
3246         * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertText): There is still work to do
3247         even if beforetextinput removed all text from the event. At the very least, we should delete
3248         the current selection.
3249
3250 2011-05-20  Andy Estes  <aestes@apple.com>
3251
3252         Reviewed by Darin Adler.
3253
3254         REGRESSION (r70748): WebKit cannot play videos created by Podcast Producer.
3255         https://bugs.webkit.org/show_bug.cgi?id=61229
3256         
3257         Podcast Producer uses an object tag with a classid attribute to embed
3258         QuickTime Player into a page. In r70748, we changed our behavior to
3259         render the object's fallback content when a non-empty classid is
3260         encountered, per HTML5. Since Podcast Producer videos have no fallback
3261         content, this change in behavior causes the video to fail to load.
3262         
3263         Since the object tag has a valid type attribute, we would be able to
3264         load it if weren't for the non-empty classid. This patch changes our
3265         policy to allow objects with non-empty classids if there is no fallback
3266         content. We still continue to prefer fallback content if it exists,
3267         however.
3268
3269         * html/HTMLObjectElement.cpp:
3270         (WebCore::HTMLObjectElement::hasValidClassId): Treat a non-empty
3271         classid as valid if the object has no fallback content.
3272
3273 2011-05-20  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
3274
3275         Reviewed by Simon Fraser.
3276
3277         If both border-radius and box-shadow applied, shadow is not fully visible
3278         https://bugs.webkit.org/show_bug.cgi?id=59577
3279
3280         The current implementation of RoundedIntRect::inflateWithRadii() inflates
3281         its rect size and corner radii out of sync. This leads to validation failure in
3282         Path::addRoundedRect() and results in ignoring radii in the path.
3283         When this invalid path is used to clip out the rounded corner box before painting
3284         the box shadow, the entire rectangle is clipped out without the corner radii.
3285
3286         This patch implements RoundedIntRect::inflateWithRadii() properly to inflate
3287         rounded rect radii based on inflate ratios of rect size.
3288
3289         Test: fast/css/box-shadow-and-border-radius.html
3290
3291         * platform/graphics/RoundedIntRect.cpp:
3292         (WebCore::RoundedIntRect::inflateWithRadii):
3293         * platform/graphics/RoundedIntRect.h:
3294
3295 2011-05-20  Michael Nordman  <michaeln@google.com>
3296
3297         Reviewed by Darin Fisher.
3298
3299         [Chromium] Support the new webkit apis so the WebDatabase system participates
3300         in the unified quota management system.
3301         https://bugs.webkit.org/show_bug.cgi?id=60985
3302
3303         No change in functionality, no new tests.
3304
3305         * platform/chromium/PlatformBridge.h:
3306         * storage/chromium/QuotaTracker.cpp:
3307         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
3308         (WebCore::QuotaTracker::updateDatabaseSize):
3309         (WebCore::QuotaTracker::updateSpaceAvailableToOrigin):
3310         (WebCore::QuotaTracker::resetSpaceAvailableToOrigin):
3311         * storage/chromium/QuotaTracker.h:
3312
3313 2011-05-20  Andy Estes  <aestes@apple.com>
3314
3315         Reviewed by Darin Adler.
3316
3317         WebView loses firstResponder status when entering full-screen mode.
3318         https://bugs.webkit.org/show_bug.cgi?id=61153
3319
3320         No test possible via DRT. Add a manual test instead.
3321
3322         * manual-tests/full-screen-keypress.html: Added.
3323
3324 2011-05-20  Jeremy Noble  <jer.noble@apple.com>
3325
3326         Reviewed by Maciej Stachowiak.
3327
3328         WebKit2: Exit full screen mode if the WebProcess crashes.
3329         https://bugs.webkit.org/show_bug.cgi?id=61151
3330
3331         * platform/graphics/win/FullScreenController.h:
3332         * platform/graphics/win/FullScreenController.cpp:
3333         (FullScreenController::close): Added.  Close the full-screen window without animation
3334             if called.
3335
3336 2011-05-20  Enrica Casucci  <enrica@apple.com>
3337
3338         Reviewed by David Kilzer.
3339
3340         Add delegate methods about focus and blur to all elements.
3341         https://bugs.webkit.org/show_bug.cgi?id=61218
3342
3343         We want to have delegates for these events for all the elements, not only the form elements.
3344         The patch moves the call to the delegate in the Node class and changes the name
3345         of the methods not to be form element specific.
3346
3347         * dom/Node.cpp:
3348         (WebCore::Node::dispatchFocusEvent): Added call to delegate with the new name.
3349         (WebCore::Node::dispatchBlurEvent): Added call to delegate with the new name.
3350         * html/HTMLFormControlElement.cpp:
3351         (WebCore::HTMLFormControlElement::dispatchBlurEvent): Removed code that calls the delegate since
3352         it has been moved into Node.
3353         * html/HTMLFormControlElement.h: Removed dispatchFocusEvent, since we are using the default inplementation in Node.
3354         * loader/EmptyClients.h:
3355         (WebCore::EmptyChromeClient::elementDidFocus): Name changed.
3356         (WebCore::EmptyChromeClient::elementDidBlur): Name changed.
3357         * page/ChromeClient.h:
3358         (WebCore::ChromeClient::elementDidFocus): Name changed.
3359         (WebCore::ChromeClient::elementDidBlur): Name changed.
3360
3361 2011-05-20  Ryosuke Niwa  <rniwa@webkit.org>
3362
3363         Reviewed by Enrica Casucci.
3364
3365         Wrap copied contents by one style span instead of two
3366         https://bugs.webkit.org/show_bug.cgi?id=60988
3367
3368         Replaced sourceDocumentStyleSpan and copiedRangeStyleSpan by one wrapping style span. Instead
3369         of wrapping the copied contents by user-applied style and document default style in serialization,
3370         take the difference with the document default's style in paste code.
3371
3372         This will dramatically simplify our copy and paste code and pave a way to fix the bug 60914.
3373
3374         No new tests because copy & paste is tested by existing layout tests.
3375
3376         * editing/EditingStyle.cpp:
3377         (WebCore::EditingStyle::prepareToApplyAt): Remove the color property if RGBA values of color
3378         matches that of the computed style at the specified position.
3379         * editing/ReplaceSelectionCommand.cpp:
3380         (WebCore::ReplaceSelectionCommand::handleStyleSpans): Replaced sourceDocumentStyleSpan and
3381         copiedRangeStyleSpan by wrappingStyleSpan. When pasting as a quotation, compare style against
3382         the document's default style to avoid keeping the document default style (tested by
3383         editing/pasteboard/4930986-3.html).
3384         * editing/ReplaceSelectionCommand.h:
3385         * editing/markup.cpp:
3386         (WebCore::createMarkup): Only use one style span to wrap the serialized contents.
3387
3388 2011-05-20  Simon Fraser  <simon.fraser@apple.com>
3389
3390         Reviewed by Sam Weinig.
3391
3392         numberOfActiveAnimations() can include animations from documents in the page cache
3393         https://bugs.webkit.org/show_bug.cgi?id=53641
3394         
3395         Some transition tests using layoutTestController.numberOfActiveAnimations() failed
3396         in WebKit2 because numberOfActiveAnimations() could include those from other documents
3397         in the page cache.
3398         
3399         Fix by passing in the document for which we wish to count animations.
3400
3401         * WebCore.exp.in:
3402         * page/animation/AnimationController.cpp:
3403         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
3404         (WebCore::AnimationController::numberOfActiveAnimations):
3405         * page/animation/AnimationController.h:
3406         * page/animation/AnimationControllerPrivate.h:
3407
3408 2011-05-20  Adam Barth  <abarth@webkit.org>
3409
3410         Reviewed by Alexey Proskuryakov.
3411
3412         Factor CORS request preparation out of DocumentThreadableLoader
3413         https://bugs.webkit.org/show_bug.cgi?id=61209
3414
3415         DocumentThreadableLoader has two jobs:
3416
3417         1) Proxy loads between threads.
3418         2) Run the CORS state machine.
3419
3420         This patch begins the work of separating those concerns, allowing CORS
3421         to be used elsewhere in the loading pipeline.  In particular, this
3422         patch moves knowledge of how to prepare CORS requests out of
3423         DocumentThreadableLoder.
3424
3425         * loader/CrossOriginAccessControl.cpp:
3426         (WebCore::isOnAccessControlSimpleRequestHeaderWhitelist):
3427         (WebCore::updateRequestForAccessControl):
3428         (WebCore::createAccessControlPreflightRequest):
3429         * loader/CrossOriginAccessControl.h:
3430         * loader/DocumentThreadableLoader.cpp:
3431         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
3432         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
3433         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
3434
3435 2011-05-20  Rob Buis  <rbuis@rim.com>
3436
3437         Reviewed by Dirk Schulze.
3438
3439         Use test from ietestcenter fails
3440         https://bugs.webkit.org/show_bug.cgi?id=60844
3441
3442         When an id changes on an in-document element, we need to check whether the id
3443         is part of the pending elements. Since this is the same thing as happens in
3444         insertedIntoDocument, split out the common code into buildPendingResourcesIfNeeded.
3445
3446         Test: svg/W3C-SVG-1.1-SE/struct-use-14-f.svg
3447
3448         * svg/SVGStyledElement.cpp:
3449         (WebCore::SVGStyledElement::svgAttributeChanged):
3450         (WebCore::SVGStyledElement::insertedIntoDocument):
3451         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
3452         * svg/SVGStyledElement.h:
3453
3454 2011-05-20  Abhishek Arya  <inferno@chromium.org>
3455
3456         Reviewed by Kent Tamura.
3457
3458         Make auto-focus a post attach callback in
3459         HTMLFormControlElement::attach().
3460         https://bugs.webkit.org/show_bug.cgi?id=32882
3461
3462         Original patch by Darin Adler. This one uses a part of it.
3463         
3464         Test: fast/forms/input-element-attach-crash.html
3465
3466         * dom/Document.cpp:
3467         (WebCore::Document::recalcStyle): Make sure that m_inStyleRecalc is
3468         already false by the time post-attach callbacks are done so that
3469         layout triggered inside those callbacks can work properly.
3470         * html/HTMLFormControlElement.cpp:
3471         (WebCore::shouldAutofocus): Helper function that expresses
3472         the rule for which form control elements should auto-focus.