115109fa2c6637c0eb677e861ff3ead89394f1ca
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-01-27  Nikolas Zimmermann  <nzimmermann@rim.com>
2
3         <feImage> doesn't work with local references when using primitiveUnits="objectBoundingBox"
4         https://bugs.webkit.org/show_bug.cgi?id=77205
5
6         Reviewed by Antti Koivisto.
7
8         Consider following testcase:
9         <svg width="1000" height="500">
10         <defs>
11             <circle id="c" cx="50%" cy="50%" r="10%"/>
12             <filter id="f" filterUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" primitiveUnits="objectBoundingBox">
13                 <feImage xlink:href="#c"/>
14             </filter>
15         </defs>
16         <rect width="100" height="100" filter="url(#f)"/>
17         </svg>
18
19         The <svg> has a viewport of 1000x50. The <circle> in the <defs> element is resolved as <circle cx="500" cy="250" r="79"/>,
20         as the context for this element (looking at it isolated!) is the viewport of the <svg>. We then setup a 0x0 - 100x100 rect
21         in user space, which gets filtered, by a filter, also defined in user space (for simplicity), but with primitiveUnits="objectBoundingBox".
22
23         That means that the default subregion of the filter effect <feImage/> which has no inputs, is defined in the SVG 1.1 spec to be equal to
24         the filter region, which is 0x0-100x100 in user space. This <feImage/> is supposed to produce a 100x100 image, containing a circle in the
25         middle (aka. <circle cx="50" cy="50".../>), but it doesn't, as the <circle> it's trying to paint, is laid out at 500x250, and thus outside
26         the 100x100 sized image buffer.
27
28         So how to resolve this?
29         The RenderSVGShape thats owned by the <circle> generates its Path value by calling cx().value(lengthContext) and the SVGLengthContext here
30         resolves to the <svg>. That happens on _layout_. If we would want to change the SVGLengthContext in this case (what I originally planned!)
31         to carry a custom 100x100 viewport, we'd need to relayout. Unfortunately this is not an option, as this would mean that
32         SVGImageBufferTools::renderSubtreeToImageBuffer, would need to relayout its children first, but we produce the filter images when painting.
33         This is very dangerous and has just recently been fixed so that SVGImageBufferTools can ASSERT(!item->needsLayout()) when painting the
34         subtree to an image buffer.
35
36         The only sane solution I see, that does not require relayouts, is to make a map between the <circle> bounding box in user space (500x250
37         center point) to the filter primitive subregion space (here: 100x100 center point), and concat that transformation before painting the
38         subtree to the image buffer. Of course this approach only works if all values of the <circle> are relative. If someone uses
39         <circle id="c" cx="50%" cy="666"> the transformation that I'm looking for is undefined. We'd really need to create a new Path here, to
40         resolve only cx against the new viewport, and not cy.
41
42         Though in practice it turns out this is not a problem. All use cases of feImage + primitiveUnits="objectBoundingBox" link to elements
43         that are completely defined in percentual values, as this is really the only thing which makes sense - otherwise you can always switch
44         back to primtiveUnits="userSpaceOnUse". Anyhow, I'm going to fix all known wild-life test cases by my approach, and say we don't support
45         using mixed length units when referencing those elements from feImages with primitiveUnits="objectBoundingBox".
46
47         Adding lots of new testcases, trying all the different feImage modes.
48
49         Tests: svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox.svg
50                svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse.svg
51                svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox.svg
52                svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse.svg
53                svg/filters/feImage-position.svg
54                svg/filters/feImage-subregions-preseveAspectRatio-none-with-viewBox.svg
55                svg/filters/feImage-subregions-preseveAspectRatio-none.svg
56                svg/filters/feImage-subregions.svg
57
58         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
59         (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): Reverse logic, simplifying the code a bit. Remove FEImage special cases (absoluteSubregion).
60         * svg/SVGLengthContext.h: Make determineViewport() public, for use in FEImage.
61         * svg/graphics/filters/SVGFEImage.cpp:
62         (WebCore::FEImage::determineAbsolutePaintRect): Don't apply preserveAspectRatio transformation for local elements, it's not defined and breaks content.
63         (WebCore::FEImage::platformApplySoftware): Figure out the absolute subregion by utilizing filterPrimitiveSubregion() as FETurbulence does.
64                                                    Map between filter primitive subregion and target object space for primitiveUnits="objectBoundingBox" support on SVG element references.
65         * svg/graphics/filters/SVGFEImage.h: Remove absoluteSubregion member & setter, it's no longer needed.
66
67 2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>
68
69         Web Inspector: Scripts panel: fix event dispatching between FileSelector and EditorContainer.
70         https://bugs.webkit.org/show_bug.cgi?id=77126
71
72         Reviewed by Pavel Feldman.
73
74         * inspector/front-end/ScriptsPanel.js:
75         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded.get if):
76         (WebInspector.ScriptsPanel.prototype._reset):
77         (WebInspector.ScriptsPanel.prototype._showSourceLine):
78         (WebInspector.ScriptsPanel.prototype._updateExecutionLine):
79         (WebInspector.ScriptsPanel.prototype._editorClosed):
80         (WebInspector.ScriptsPanel.prototype._editorSelected):
81         (WebInspector.ScriptsPanel.FileSelector.prototype.revealUISourceCode):
82         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.revealUISourceCode):
83         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._innerRevealUISourceCode):
84         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect.insertOrdered):
85         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._addOptionToFilesSelect):
86         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goBack):
87         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._goForward):
88         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype._filesSelectChanged):
89         * inspector/front-end/TabbedEditorContainer.js:
90         (WebInspector.TabbedEditorContainer):
91         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
92         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
93         (WebInspector.TabbedEditorContainer.prototype.reset):
94
95 2012-01-27  Nikolas Zimmermann  <nzimmermann@rim.com>
96
97         <feImage> DOM mutation problems
98         https://bugs.webkit.org/show_bug.cgi?id=77198
99
100         Reviewed by Antti Koivisto.
101
102         Consider <feImage xlink:href="#rect"/>, where <rect> gets dynamically added to the tree.
103         Currently <feImage> doesn't notice this, as it doesn't register itself pending on "#rect".
104
105         Integrate <feImage> properly within the pending resources concept, fixing the bug.
106
107         Tests: svg/filters/feImage-target-add-to-document.svg
108                svg/filters/feImage-target-changes-id.svg
109                svg/filters/feImage-target-id-change.svg
110                svg/filters/feImage-target-reappend-to-document.svg
111                svg/filters/feImage-target-remove-from-document.svg
112
113         * svg/SVGFEImageElement.cpp: Rename invalidateImageResource to clearResourceReferences.
114         (WebCore::SVGFEImageElement::~SVGFEImageElement): Call clearResourceReferences.
115         (WebCore::SVGFEImageElement::clearResourceReferences): Remove any occurence of m_targetImage, it's no longer used.
116         (WebCore::SVGFEImageElement::requestImageResource): requestImageResource is now called by buildPendingResource.
117         (WebCore::SVGFEImageElement::buildPendingResource): Called whenever any element that we depend on gets resolved - now invalidates the <filter>.
118         (WebCore::SVGFEImageElement::parseMappedAttribute): Don't start loading from parseMappedAttribute.
119         (WebCore::SVGFEImageElement::svgAttributeChanged): Start loading from here, for consistency with SVGImageElement.
120         (WebCore::SVGFEImageElement::insertedIntoDocument): Invoke buildPendingResource(), if we enter the tree.
121         (WebCore::SVGFEImageElement::removedFromDocument): Clear m_cachedImage as soon as we get removed from the tree.
122         (WebCore::SVGFEImageElement::build): Clean up this function, m_targetImage is no longer exist.
123         * svg/SVGFEImageElement.h: Remove OwnPtr<ImageBuffer> m_targetImage, which is no longer used.
124
125 2012-01-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
126
127         [Qt] WKTR: Use a software rendering pipiline when running tests.
128         https://bugs.webkit.org/show_bug.cgi?id=76708
129
130         Reviewed by Kenneth Rohde Christiansen.
131
132         * platform/graphics/qt/TextureMapperQt.cpp: Allow setting the context to null.
133         (WebCore::TextureMapperQt::setGraphicsContext):
134         * platform/graphics/qt/TextureMapperQt.h:
135         (WebCore::TextureMapperQt::initialize):
136
137 2012-01-27  Branimir Lambov  <blambov@google.com>
138
139         SVG filters incorrectly move elements
140         https://bugs.webkit.org/show_bug.cgi?id=73643
141
142         Reviewed by Nikolas Zimmermann.
143
144         Fixes SVG image buffer creation to use the enclosing integer rect
145         instead of unstable rounded coordinates with scaling which was causing
146         animated images to jump around under filters. The image buffer was not 
147         aligned on a pixel boundary, and thus the positions and sizes of anything
148         drawn under that filter changed by 1-2 pixels compared to the same
149         elements drawn without an intermediate buffer, or drawn with a buffer
150         with a different target rectangle. 
151         
152         The change improves the positioning of clip paths, masks and filters.
153
154         Tests: svg/clip-path/clip-in-clip.svg
155                svg/clip-path/clipper-placement-issue.svg
156                svg/filters/filter-placement-issue.svg
157
158         * platform/graphics/filters/FETile.cpp:
159         (WebCore::FETile::platformApplySoftware):
160         * rendering/svg/RenderSVGResourceClipper.cpp:
161         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
162         * rendering/svg/RenderSVGResourceFilter.cpp:
163         (WebCore::RenderSVGResourceFilter::applyResource):
164         * rendering/svg/RenderSVGResourceGradient.cpp:
165         (WebCore::createMaskAndSwapContextForTextGradient):
166         (WebCore::clipToTextMask):
167         * rendering/svg/RenderSVGResourceMasker.cpp:
168         (WebCore::RenderSVGResourceMasker::applyResource):
169         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
170         * rendering/svg/RenderSVGResourcePattern.cpp:
171         (WebCore::RenderSVGResourcePattern::createTileImage):
172         * rendering/svg/SVGImageBufferTools.cpp:
173         (WebCore::SVGImageBufferTools::createImageBuffer):
174         (WebCore::SVGImageBufferTools::createImageBufferForPattern):
175         (WebCore::SVGImageBufferTools::clipToImageBuffer):
176         (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
177         (WebCore::SVGImageBufferTools::clampedAbsoluteSize):
178         * rendering/svg/SVGImageBufferTools.h:
179         (WebCore::SVGImageBufferTools::calcImageBufferRect):
180
181 2012-01-25  Yury Semikhatsky  <yurys@chromium.org>
182
183         Web Inspector: should be possible to open function declaration from script popover
184         https://bugs.webkit.org/show_bug.cgi?id=76913
185
186         Added inferred/display function name and source location to the popover in scripts panel.
187         Now when a function is hovered user can navigate to its definition.
188
189         Reviewed by Pavel Feldman.
190
191         Test: inspector/debugger/function-details.html
192
193         * bindings/js/JSInjectedScriptHostCustom.cpp:
194         (WebCore::JSInjectedScriptHost::functionDetails):
195         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
196         (WebCore::V8InjectedScriptHost::functionDetailsCallback):
197         * inspector/InjectedScript.cpp:
198         (WebCore::InjectedScript::getFunctionDetails):
199         * inspector/InjectedScript.h:
200         (InjectedScript):
201         * inspector/InjectedScriptHost.idl:
202         * inspector/InjectedScriptSource.js:
203         (.):
204         * inspector/Inspector.json:
205         * inspector/InspectorDebuggerAgent.cpp:
206         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
207         * inspector/InspectorDebuggerAgent.h:
208         (InspectorDebuggerAgent):
209         * inspector/front-end/DebuggerPresentationModel.js:
210         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyFunctionLocation):
211         * inspector/front-end/ObjectPopoverHelper.js:
212         (WebInspector.ObjectPopoverHelper):
213         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
214         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
215         (WebInspector.ObjectPopoverHelper.prototype._onHideObjectPopover):
216         * inspector/front-end/ObjectPropertiesSection.js:
217         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
218         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
219         * inspector/front-end/RemoteObject.js:
220         (WebInspector.RemoteObject):
221         (WebInspector.RemoteObject.fromPayload):
222         (WebInspector.RemoteObject.prototype.get functionName):
223         * inspector/front-end/scriptsPanel.css:
224         (.function-location-link):
225         (.function-popover-title):
226         (.function-popover-title .function-name):
227
228 2012-01-26  Noel Gordon  <noel.gordon@gmail.com>
229
230         Remove FIXME: ColorProfile encapsulation as a Vector<char> works well 
231         https://bugs.webkit.org/show_bug.cgi?id=77176
232
233         Reviewed by Adam Barth.
234
235         No new tests. No change in behavior.
236
237         * platform/image-decoders/ImageDecoder.h:
238
239 2012-01-26  Matthew Delaney  <mdelaney@apple.com>
240
241         ImageBuffer::draw should deep copy if drawing to an accelerated context
242         https://bugs.webkit.org/show_bug.cgi?id=77185
243
244         Reviewed by Simon Fraser.
245
246         No new tests since any test for this issue would be flaky at best.
247
248         * platform/graphics/cg/ImageBufferCG.cpp: Deep copy when drawing ourself into
249             an accelerated context for both draw and drawPattern.
250         (WebCore::ImageBuffer::draw):
251         (WebCore::ImageBuffer::drawPattern):
252
253 2012-01-26  Kevin Ollivier  <kevino@theolliviers.com>
254
255         [wx] Unreviewed. Build fixes.
256         - Remove some constructors not generated by CPP bindings
257           from being added to CPP binding headers
258         - Keyboard event fixes after modifier changes
259         - Add stubs for Language and RunLoop platform methods
260
261         * bindings/scripts/CodeGeneratorCPP.pm:
262         (GetNamespaceForClass):
263         (GenerateImplementation):
264         * platform/mac/WebCoreSystemInterface.h:
265         * platform/wx/KeyboardEventWx.cpp:
266         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
267         * platform/wx/LanguageWx.cpp: Added.
268         (WebCore):
269         (WebCore::platformLanguage):
270         (WebCore::platformUserPreferredLanguages):
271         * platform/wx/RunLoopWx.cpp: Added.
272         (WebCore):
273         (WebCore::RunLoop::run):
274         (WebCore::RunLoop::stop):
275         (WebCore::RunLoop::RunLoop):
276         (WebCore::RunLoop::~RunLoop):
277         (WebCore::RunLoop::wakeUp):
278         * storage/DOMWindowSQLDatabase.idl:
279         * webaudio/DOMWindowWebAudio.idl:
280         * websockets/DOMWindowWebSocket.idl:
281
282 2012-01-26  Sheriff Bot  <webkit.review.bot@gmail.com>
283
284         Unreviewed, rolling out r105486.
285         http://trac.webkit.org/changeset/105486
286         https://bugs.webkit.org/show_bug.cgi?id=77182
287
288         This patch doesn't take web workers into account. (Requested
289         by dave_levin on #webkit).
290
291         * html/DOMURL.cpp:
292         (WebCore::DOMURL::DOMURL):
293         (WebCore::DOMURL::~DOMURL):
294         (WebCore::DOMURL::contextDestroyed):
295         (WebCore):
296         (WebCore::DOMURL::createObjectURL):
297         (WebCore::DOMURL::revokeObjectURL):
298         * html/DOMURL.h:
299         (WebCore::DOMURL::create):
300         (DOMURL):
301         * html/DOMURL.idl:
302         * page/DOMWindow.cpp:
303         (WebCore):
304         (WebCore::DOMWindow::webkitURL):
305         * page/DOMWindow.h:
306         (DOMWindow):
307         ():
308         * page/DOMWindow.idl:
309         * workers/WorkerContext.cpp:
310         (WebCore):
311         (WebCore::WorkerContext::webkitURL):
312         (WebCore::WorkerContext::webkitRequestFileSystem):
313         * workers/WorkerContext.h:
314         (WorkerContext):
315         ():
316         * workers/WorkerContext.idl:
317
318 2012-01-26  Noel Gordon  <noel.gordon@gmail.com>
319
320         Cleanup JPEGImageDecoder includes
321         https://bugs.webkit.org/show_bug.cgi?id=77171
322
323         Reviewed by Adam Barth.
324
325         No new tests. Refactoring cleanup only.
326
327         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
328
329 2012-01-26  Tim Horton  <hortont424@gmail.com>
330
331         3D transformed elements hide when showing the print dialog
332         https://bugs.webkit.org/show_bug.cgi?id=45894
333         <rdar://problem/7441593>
334
335         Reviewed by Andy Estes.
336
337         Suspend updates of the compositing layer tree while printing is taking place,
338         preventing on-screen layers from moving to their print-mode positions.
339
340         No new tests, as WebKitTestRunner doesn't support putting the document
341         into printing mode.
342
343         * page/FrameView.cpp:
344         (WebCore::FrameView::syncCompositingStateForThisFrame):
345         (WebCore::FrameView::paintContents):
346         * platform/graphics/ca/LayerFlushScheduler.h:
347         (WebCore::LayerFlushScheduler::isSuspended): Added.
348
349 2012-01-26  Pablo Flouret  <pablof@motorola.com>
350
351         Fix bad code generated by the JSC idl code generator for [CachedAttribute] attributes
352         https://bugs.webkit.org/show_bug.cgi?id=77165
353
354         Reviewed by Oliver Hunt.
355
356         Missing parameter in a call to deserialize() and using 'this' in the
357         attribute accessor functions (which are static).
358
359         * bindings/scripts/CodeGeneratorJS.pm:
360         (GenerateImplementation):
361         (NativeToJSValue):
362         * bindings/scripts/test/JS/JSTestObj.cpp:
363         (WebCore::jsTestObjCachedAttribute1):
364         (WebCore::jsTestObjCachedAttribute2):
365         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
366         (WebCore::jsTestSerializedScriptValueInterfaceValue):
367
368 2012-01-26  W. James MacLean  <wjmaclean@chromium.org>
369
370         [chromium] Allow modification of size of partially occluded quads during culling to reduce pixel overdraw.
371         https://bugs.webkit.org/show_bug.cgi?id=76349
372
373         Reviewed by James Robinson.
374
375         Prior to this patch, draw culling either rejects a DrawQuad because it is completely
376         occluded, or draws the entire quad (even if it is largely occluded). This patch
377         attempts to reduce the number of pixels drawn by determining if a partially
378         occluded DrawQuad can be resized to a smaller quad, based on what portion of the
379         DrawQuad is actually visible, and performing that resizing where possible.
380
381         Added cases to existing unit tests.
382
383         * platform/graphics/chromium/LayerRendererChromium.cpp:
384         (WebCore::LayerRendererChromium::drawTileQuad):
385         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
386         (WebCore::CCDrawQuad::CCDrawQuad):
387         * platform/graphics/chromium/cc/CCDrawQuad.h:
388         (WebCore::CCDrawQuad::setQuadVisibleRect):
389         (WebCore::CCDrawQuad::quadVisibleRect):
390         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
391         (WebCore::rectSubtractRegion):
392         (WebCore::CCQuadCuller::cullOccludedQuads):
393
394 2012-01-26  Anders Carlsson  <andersca@apple.com>
395
396         Scrollbars disappear when switching from legacy to overlay scrollbars
397         https://bugs.webkit.org/show_bug.cgi?id=77166
398
399         Reviewed by Dan Bernstein.
400
401         * platform/ScrollView.cpp:
402         (WebCore::ScrollView::scrollbarStyleChanged):
403         Call positionScrollbarLayers to make sure that the new scrollbar layers are positioned correctly.
404
405         * platform/mac/ScrollAnimatorMac.mm:
406         (WebCore::ScrollAnimatorMac::updateScrollerStyle):
407         Call ScrollbarThemeMac::setNewPainterForScrollbar after making the call to the scrollbar painter controller
408         to set the horizontal or vertical imp, since setting the imp will reset the knob style.
409
410 2012-01-26  Adam Barth  <abarth@webkit.org>
411
412         NULL ptr in WebCore::ContainerNode::parserAddChild
413         https://bugs.webkit.org/show_bug.cgi?id=76258
414
415         Reviewed by Eric Seidel.
416
417         Test: fast/parser/nested-fragment-parser-crash.html
418
419         We always need a parent element to attach to.  In crazy cases, we can
420         have elements in the stack of open elements that are already detached
421         from the DOM.  In those cases, they don't have a parent, so we aren't
422         able to enforce the maximum DOM depth.  (Fortunately, they're not
423         attached to the DOM anymore so we don't need to enforce the maximum DOM
424         depth!)
425
426         * html/parser/HTMLConstructionSite.cpp:
427         (WebCore::HTMLConstructionSite::attachLater):
428         (WebCore::HTMLConstructionSite::fosterParent):
429
430 2012-01-26  Cris Neckar  <cdn@chromium.org>
431
432         The registration of schemes is currently racey as they are not registered from the main thread. 
433         Getting rid of the assert that ensures that we are registering from the main thread until we can fix this.
434
435         Thank you ap@webkit for helping us identify this.
436
437         https://bugs.webkit.org/show_bug.cgi?id=77160
438
439         Reviewed by Adam Barth.
440
441         * platform/SchemeRegistry.cpp:
442         (WebCore::CORSEnabledSchemes):
443
444 2012-01-26  Anders Carlsson  <andersca@apple.com>
445
446         We don't need to always repaint overlay scrollbars if they're in layers
447         https://bugs.webkit.org/show_bug.cgi?id=77159
448
449         Reviewed by Beth Dakin.
450
451         If a scrollable area has overlay scrollbars we'll always invalidate both scrollbars, regardless of
452         whether both scroll offsets actually change since they're translucent and we want to draw the new page
453         contents underneath.
454         
455         However, if the scrollbars are painted into GraphicsLayers they'll be composited by the GPU, and so we don't
456         need to repaint them unless the corresponding scroll offset actually changes (which is handled in Scrollbar::updateThumb).
457
458         * platform/ScrollableArea.cpp:
459         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
460
461 2012-01-26  Joshua Bell  <jsbell@chromium.org>
462
463         IndexedDB: WebCore::IDBKey objects are leaked
464         https://bugs.webkit.org/show_bug.cgi?id=77114
465
466         Reviewed by Tony Chang.
467
468         Fixing memory leaks, no new tests.
469
470         * storage/IDBKey.h:
471         (WebCore::IDBKey::createInvalid):
472         (WebCore::IDBKey::createNumber):
473         (WebCore::IDBKey::createString):
474         (WebCore::IDBKey::createDate):
475         (WebCore::IDBKey::createArray):
476
477 2012-01-25  Cris Neckar  <cdn@chromium.org>
478
479         Add a scheme registry for CORS requests. Allow simple CORS requests to be made to registered schemes.
480         https://bugs.webkit.org/show_bug.cgi?id=77041
481
482         Reviewed by Alexey Proskuryakov.
483
484         * loader/DocumentThreadableLoader.cpp:
485         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
486         * platform/SchemeRegistry.cpp:
487         (WebCore::CORSEnabledSchemes):
488         (WebCore):
489         (WebCore::SchemeRegistry::registerCORSEnabledScheme):
490         (WebCore::SchemeRegistry::isCORSEnabledScheme):
491         * platform/SchemeRegistry.h:
492         (SchemeRegistry):
493
494 2012-01-26  Noel Gordon  <noel.gordon@gmail.com>
495
496         File extension for webp files is .webp
497         https://bugs.webkit.org/show_bug.cgi?id=76982
498
499         Reviewed by Adam Barth.
500
501         No new tests. No change in behavior.
502
503         * platform/image-decoders/webp/WEBPImageDecoder.h:
504         (WebCore::WEBPImageDecoder::filenameExtension):
505
506 2012-01-26  Alok Priyadarshi  <alokp@chromium.org>
507
508         [chromium] Remove dead and unnecessary code related to LayerChromium::cleanupResources
509         https://bugs.webkit.org/show_bug.cgi?id=77137
510
511         Reviewed by James Robinson.
512
513         No new test needed. Only removing dead code.
514
515         * platform/graphics/chromium/LayerChromium.cpp:
516         * platform/graphics/chromium/LayerChromium.h:
517         (WebCore::LayerChromium::layerTreeHost):
518         * platform/graphics/chromium/TiledLayerChromium.cpp:
519         (WebCore::TiledLayerChromium::setLayerTreeHost):
520
521 2012-01-26  Anders Carlsson  <andersca@apple.com>
522
523         Move horizontal rubber-band checks to ScrollElasticityController::handleWheelEvent
524         https://bugs.webkit.org/show_bug.cgi?id=77147
525
526         Reviewed by Adam Roben.
527
528         * platform/mac/ScrollAnimatorMac.h:
529         (ScrollAnimatorMac):
530         * platform/mac/ScrollAnimatorMac.mm:
531         (WebCore::ScrollAnimatorMac::handleWheelEvent):
532         Always call ScrollElasticityController::handleWheelEvent, and only call didBeginScrollGesture and
533         didEndScrollGesture if the event was actually handled.
534
535         (WebCore::ScrollAnimatorMac::shouldRubberBandInDirection):
536         Implement this.
537
538         * platform/mac/ScrollElasticityController.h:
539         * platform/mac/ScrollElasticityController.mm:
540         (WebCore::ScrollElasticityController::handleWheelEvent):
541         Check if we should rubber-band and return false if we shouldn't.
542
543         (WebCore::ScrollElasticityController::shouldRubberBandInHorizontalDirection):
544         Ask the client if we should rubber-band.
545
546 2012-01-19  James Robinson  <jamesr@chromium.org>
547
548         [chromium] Remove setLayerTreeHost nonsense on lost context
549         https://bugs.webkit.org/show_bug.cgi?id=76675
550
551         Reviewed by Kenneth Russell.
552
553         This code isn't needed any more. On a lost context event, we drop all TextureManager-managed textures through
554         the proxy and no layer types need special lost context handling.
555
556         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
557         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
558
559 2012-01-26  Anders Carlsson  <andersca@apple.com>
560
561         Simplify checking of whether we should rubberband horizontally
562         https://bugs.webkit.org/show_bug.cgi?id=77141
563
564         Reviewed by Adam Roben.
565
566         Have a single check for horizontal rubber-banding in both directions. This is in preparation
567         for moving this code into ScrollElasticityController.
568
569         * platform/mac/ScrollAnimatorMac.mm:
570         (WebCore::shouldRubberBandInHorizontalDirection):
571         (WebCore::ScrollAnimatorMac::handleWheelEvent):
572
573 2012-01-26  Scott Graham  <scottmg@chomium.org>
574
575         Fix include path in gyp file for V8InternalSettings.h
576         https://bugs.webkit.org/show_bug.cgi?id=77128
577
578         Reviewed by Kent Tamura.
579
580         * WebCore.gyp/WebCore.gyp:
581
582 2012-01-26  James Robinson  <jamesr@chromium.org>
583
584         We shouldn't synchronously update styles on all documents after running script
585         https://bugs.webkit.org/show_bug.cgi?id=46761
586
587         Reviewed by Simon Fraser.
588
589         Currently we call Document::updateStyleForAllDocuments() after invoking any event or timeout handler. This is
590         slow since it iterates over the entire document tree and defeats our recalcStyle timer batching. It is
591         unnecessary as any code that depends on styles or the render tree being up to date must call
592         updateStyleIfNeeded() on the document it is accessing.
593
594         The first reference I can find to this code is in r798 in the file WebCore/khtml/xml/domnode_impl.cpp. It's been
595         cargo culted forward ever since.
596
597         * bindings/ScriptControllerBase.cpp:
598         (WebCore::ScriptController::executeScript):
599         * bindings/js/ScheduledAction.cpp:
600         (WebCore::ScheduledAction::execute):
601         * bindings/js/ScriptController.cpp:
602         (WebCore::ScriptController::ScriptController):
603         (WebCore::ScriptController::executeScriptInWorld):
604         * bindings/js/ScriptController.h:
605         * bindings/v8/ScheduledAction.cpp:
606         (WebCore::ScheduledAction::execute):
607         * bindings/v8/ScriptController.cpp:
608         (WebCore::ScriptController::ScriptController):
609         * bindings/v8/ScriptController.h:
610         * dom/ScriptElement.cpp:
611         (WebCore::ScriptElement::executeScript):
612         * inspector/InspectorClient.cpp:
613         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
614
615 2012-01-26  Anders Carlsson  <andersca@apple.com>
616
617         Get rid of ScrollElasticityController::beginScrollGesture()
618         https://bugs.webkit.org/show_bug.cgi?id=77138
619
620         Reviewed by Adam Roben.
621
622         ScrollElasticityController::handleWheelEvent now checks if the wheel event phase is
623         PlatformWheelEventPhaseBegan and sets up the gesture state if it is.
624
625         * platform/mac/ScrollAnimatorMac.mm:
626         (WebCore::ScrollAnimatorMac::handleWheelEvent):
627         * platform/mac/ScrollElasticityController.h:
628         (ScrollElasticityController):
629         * platform/mac/ScrollElasticityController.mm:
630         (WebCore::ScrollElasticityController::handleWheelEvent):
631
632 2012-01-26  Anders Carlsson  <andersca@apple.com>
633
634         Get rid of ScrollElasticityController::endScrollGesture()
635         https://bugs.webkit.org/show_bug.cgi?id=77134
636
637         Reviewed by Adam Roben.
638
639         Just make ScrollElasticityController::handleWheelEvent call snapRubberBand if the wheel
640         event phase is PlatformWheelEventPhaseEnded.
641
642         * platform/mac/ScrollAnimatorMac.mm:
643         (WebCore::ScrollAnimatorMac::handleWheelEvent):
644         * platform/mac/ScrollElasticityController.h:
645         (ScrollElasticityController):
646         * platform/mac/ScrollElasticityController.mm:
647         (WebCore::ScrollElasticityController::handleWheelEvent):
648
649 2012-01-26  Abhishek Arya  <inferno@chromium.org>
650
651         Crash in SVGSVGElement::currentViewBoxRect.
652         https://bugs.webkit.org/show_bug.cgi?id=77121
653
654         Reviewed by Nikolas Zimmermann.
655
656         Symbols shouldn't be rendered. Revert the ASSERT
657         from r105513 into a hard check.
658
659         Test: svg/custom/symbol-viewport-element-crash.svg
660
661         * svg/SVGLengthContext.cpp:
662         (WebCore::SVGLengthContext::determineViewport):
663
664 2012-01-26  Anders Carlsson  <andersca@apple.com>
665
666         Inline beginScrollGesture/endScrollGesture in handleWheelEvent
667         https://bugs.webkit.org/show_bug.cgi?id=77133
668
669         Reviewed by Andreas Kling.
670
671         * platform/mac/ScrollAnimatorMac.h:
672         (ScrollAnimatorMac):
673         * platform/mac/ScrollAnimatorMac.mm:
674         (WebCore::ScrollAnimatorMac::handleWheelEvent):
675
676 2012-01-26  Anders Carlsson  <andersca@apple.com>
677
678         No need to set m_haveScrolledSincePageLoad in beginScrollGesture
679         https://bugs.webkit.org/show_bug.cgi?id=77132
680
681         Reviewed by Andreas Kling.
682
683         m_haveScrolledSincePageLoad is already set to true in handleWheelEvent so we don't need
684         to set it to true again.
685
686         * platform/mac/ScrollAnimatorMac.mm:
687         (WebCore::ScrollAnimatorMac::beginScrollGesture):
688
689 2012-01-26  Anders Carlsson  <andersca@apple.com>
690
691         Simplify checking for whether we should rubberband or not when at the edge
692         https://bugs.webkit.org/show_bug.cgi?id=77131
693
694         Reviewed by Beth Dakin.
695
696         We only need to check once if we're pinned at either edge whether we should rubber-band
697         or not. Do this when the wheel event phase is PlatformWheelEventPhaseBegan. This lets us
698         remove a bunch of code that would keep track of the current horizontal scroll direction.
699
700         * platform/mac/ScrollAnimatorMac.h:
701         (ScrollAnimatorMac):
702         * platform/mac/ScrollAnimatorMac.mm:
703         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
704         (WebCore::ScrollAnimatorMac::handleWheelEvent):
705         (WebCore::ScrollAnimatorMac::beginScrollGesture):
706
707 2012-01-26  Eli Fidler  <efidler@rim.com>
708
709         [JSC] Inspector instrumentation for JavaScript calls.
710         https://bugs.webkit.org/show_bug.cgi?id=40119
711
712         Reviewed by Geoffrey Garen.
713
714         Covered by existing Chromium inspector tests
715
716         * bindings/js/JSCallbackData.cpp:
717         (WebCore::JSCallbackData::invokeCallback):
718         * bindings/js/JSEventListener.cpp:
719         (WebCore::JSEventListener::handleEvent):
720         * bindings/js/JSMainThreadExecState.h:
721         (WebCore::JSMainThreadExecState::instrumentedCall):
722         * inspector/InspectorInstrumentation.cpp:
723         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
724
725 2012-01-26  Mike Reed  <reed@google.com>
726
727         Signal to skia to force A8 text from LCD output, but only when we have to disable LCD because we're in a layer
728         https://bugs.webkit.org/show_bug.cgi?id=76547
729
730         Reviewed by Stephen White.
731
732         Existing tests should confirm nothing is broken. Antialiased text
733         is disabled in layouttests, so they should be unaffected by the
734         difference in antialiasing quality.
735
736         * platform/graphics/skia/SkiaFontWin.cpp:
737         (WebCore::setupPaintForFont):
738
739
740 2012-01-26  Anders Carlsson  <andersca@apple.com>
741
742         Use PlatformWheelEvent::phase() to determine if a scroll gesture begins or ends
743         https://bugs.webkit.org/show_bug.cgi?id=77127
744
745         Reviewed by Beth Dakin.
746
747         * platform/mac/ScrollAnimatorMac.h:
748         (ScrollAnimatorMac):
749         Remove handleGestureEvent.
750
751         * platform/mac/ScrollAnimatorMac.mm:
752         (WebCore::ScrollAnimatorMac::handleWheelEvent):
753         Look at the event phase to determine when to call didBeginGesture and didEndGesture.
754
755 2012-01-26  Benjamin Poulain  <benjamin@webkit.org>
756
757         Using strncmp() for comparing scheme and port numbers is inefficient
758         https://bugs.webkit.org/show_bug.cgi?id=75821
759
760         Reviewed by Darin Adler.
761
762         Replace the equal() function comparing 2 arbitrary strings by a template
763         comparing the string to an array, character by character.
764
765         This is only used for small strings: the schemes and the ports.
766
767         * platform/KURL.cpp:
768         (WebCore::equal):
769         (WebCore::isDefaultPortForScheme):
770         (WebCore::isNonFileHierarchicalScheme):
771         (WebCore::isCanonicalHostnameLowercaseForScheme):
772
773 2012-01-26  Anders Carlsson  <andersca@apple.com>
774
775         WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit
776         https://bugs.webkit.org/show_bug.cgi?id=77123
777
778         Reviewed by Beth Dakin.
779
780         * platform/PlatformWheelEvent.h:
781         ():
782         * platform/mac/PlatformEventFactoryMac.mm:
783         (WebCore::phaseForEvent):
784
785 2012-01-26  Daniel Cheng  <dcheng@chromium.org>
786
787         Revert code changes from r105800
788         https://bugs.webkit.org/show_bug.cgi?id=77071
789
790         The strings are already lowercased in EventHandler.cpp:findDropZone() so there's
791         no need to call lower() again.
792
793         Reviewed by Tony Chang.
794
795         Covered by existing tests.
796
797         * dom/Clipboard.cpp:
798         (WebCore::Clipboard::hasDropZoneType):
799
800 2012-01-26  Stephen Chenney  <schenney@chromium.org>
801
802         REGRESSION (r91125): Polyline tool in google docs is broken
803         https://bugs.webkit.org/show_bug.cgi?id=65796
804
805         Reviewed by Nikolas Zimmermann.
806
807         It turns out that the CG problem is a design decision. The bounding code
808         returns CGRectNull for cases where a bound is ill-defined, rather than the
809         empty bound as expected.
810
811         I'm also removing the workaround for isEmpty to get correct zero length paths.
812         It is no longer necessary.
813
814         Tested by existing layout tests.
815
816         * platform/graphics/cg/PathCG.cpp: Removed path empty and path bound testing classes.
817         (WebCore::Path::boundingRect): Added check for CGRectNull
818         (WebCore::Path::fastBoundingRect): Added check for CGRectNull
819         (WebCore::Path::strokeBoundingRect): Added check for CGRectNull
820         (WebCore::Path::isEmpty): Reverted to former behavior, just using CGPathIsEmpty.
821         (WebCore::Path::hasCurrentPoint): Reverted to former behavior, using isEmpty.
822         (WebCore::Path::transform): Reverted to former behavior, using isEmpty.
823
824 2012-01-26  Andreas Kling  <awesomekling@apple.com>
825
826         Refactor application of additional style attributes for table elements.
827         <http://webkit.org/b/77095>
828
829         Reviewed by Darin Adler.
830
831         The primary purpose of this change is to reduce usage of CSSMappedAttributeDeclaration.
832         Instead of using the mapped attribute decl table for additional table style, just use
833         regular CSSMutableStyleDeclarations. We cache them all globally, except for the style
834         that's shared between a table's cells. That one is cached per-table since it depends
835         on the table's border and padding.
836
837         * dom/CSSMappedAttributeDeclaration.cpp:
838         (WebCore::CSSMappedAttributeDeclaration::~CSSMappedAttributeDeclaration):
839         * dom/MappedAttributeEntry.h:
840
841             Remove the concept of persistent CSSMappedAttributeDeclarations. The hunk in
842             ~CSSMappedAttributeDeclaration was wildly wrong since it would leave stale pointers
843             in the decl table, but unreachable since we always leaked one ref to those decls.
844
845         * dom/StyledElement.h:
846         (WebCore::StyledElement::additionalAttributeStyle):
847         * html/HTMLTableCellElement.cpp:
848         (WebCore::HTMLTableCellElement::additionalAttributeStyle):
849         * html/HTMLTableCellElement.h:
850         (HTMLTableCellElement):
851         * html/HTMLTableColElement.cpp:
852         (WebCore::HTMLTableColElement::additionalAttributeStyle):
853         * html/HTMLTableColElement.h:
854         (HTMLTableColElement):
855         * html/HTMLTableElement.cpp:
856         (WebCore::HTMLTableElement::parseMappedAttribute):
857         (WebCore::leakBorderStyle):
858         (WebCore::HTMLTableElement::additionalAttributeStyle):
859         (WebCore::HTMLTableElement::createSharedCellStyle):
860         (WebCore::HTMLTableElement::additionalCellStyle):
861         (WebCore::leakGroupBorderStyle):
862         (WebCore::HTMLTableElement::additionalGroupStyle):
863         * html/HTMLTableElement.h:
864         (HTMLTableElement):
865         * html/HTMLTableSectionElement.cpp:
866         (WebCore::HTMLTableSectionElement::additionalAttributeStyle):
867         * html/HTMLTableSectionElement.h:
868         (HTMLTableSectionElement):
869
870             Instead of collecting additional style decls into a vector, switch over to a
871             "PassRefPtr<CSSMutableStyleDeclaration> additionalAttributeStyle()".
872             All style declarations that can be reused for all elements are cached at the return
873             sites, leaving only the shared table cell style which we cache on HTMLTableElement.
874             Also removed the canHaveAdditionalAttributeStyleDecls() virtual since the default
875             additionalAttributeStyle() will just return 0.
876
877         * css/CSSStyleSelector.cpp:
878         (WebCore::CSSStyleSelector::matchAllRules):
879
880             Updated for the new additional style conventions.
881
882 2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>
883
884         Web Inspector: Scripts panel editor container should be based on UISourceCode objects, not SourceFrames.
885         https://bugs.webkit.org/show_bug.cgi?id=77098
886
887         Reviewed by Pavel Feldman.
888
889         * inspector/front-end/ScriptsNavigator.js:
890         * inspector/front-end/ScriptsPanel.js:
891         (WebInspector.ScriptsPanel.prototype.setScriptSourceIsBeingEdited):
892         (WebInspector.ScriptsPanel.prototype.get visibleView):
893         (WebInspector.ScriptsPanel.prototype.viewForFile):
894         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
895         (WebInspector.EditorContainer):
896         (WebInspector.EditorContainer.prototype.get visibleView):
897         (WebInspector.EditorContainer.prototype.showFile):
898         (WebInspector.EditorContainer.prototype.setFileIsDirty):
899         (WebInspector.EditorContainer.prototype.replaceFiles):
900         (WebInspector.EditorContainer.prototype.reset):
901         (WebInspector.EditorContainerDelegate):
902         (WebInspector.EditorContainerDelegate.prototype.viewForFile):
903         (WebInspector.ScriptsPanel.ComboBoxFileSelector.prototype.replaceUISourceCodes):
904         (WebInspector.ScriptsPanel.SingleFileEditorContainer):
905         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.get visibleView):
906         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.showFile):
907         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.setFileIsDirty):
908         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.replaceFiles):
909         (WebInspector.ScriptsPanel.SingleFileEditorContainer.prototype.reset):
910         * inspector/front-end/TabbedEditorContainer.js:
911         (WebInspector.TabbedEditorContainer):
912         (WebInspector.TabbedEditorContainer.prototype.get visibleView):
913         (WebInspector.TabbedEditorContainer.prototype._titleForFile):
914         (WebInspector.TabbedEditorContainer.prototype._tooltipForFile):
915         (WebInspector.TabbedEditorContainer.prototype._appendFileTab):
916         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
917         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
918         (WebInspector.TabbedEditorContainer.prototype.replaceFiles.get if):
919         (WebInspector.TabbedEditorContainer.prototype.replaceFiles):
920         (WebInspector.TabbedEditorContainer.prototype.setFileIsDirty.get if):
921         (WebInspector.TabbedEditorContainer.prototype.setFileIsDirty):
922         (WebInspector.TabbedEditorContainer.prototype.reset):
923
924 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
925
926         SVG + <object> tests are flakey
927         https://bugs.webkit.org/show_bug.cgi?id=77099
928
929         Reviewed by Andreas Kling.
930
931         Bug 76447 changed the way RenderSVGRoot figures out its size. Previously RenderSVGRoot directly called out to the
932         ownerRenderer (RenderEmbeddedObject) to compute its replaced size when embedded through eg. <object> element,
933         which was quite hacky. It now relies on the ownerRenderers availableLogicalWidth/Height to be correctly set,
934         which requires that the ownerRenderer is always laid out before the RenderSVGRoot and not the other way round.
935
936         This is the source of current flakiness bugs.
937
938         In trunk FrameView contains several special hacks, to layout the ownerRenderers view, after the RenderSVGRoots view
939         finished layout. This worked without flakiness as RenderSVGRoot used to directly call computeReplacedLogicalWidth/Height
940         on the ownerRenderer, which is now gone. Fortunately we can keep the new design, and can remove all hacks out of
941         RenderSVGRoot/FrameView, if we can guarantee that the ownerRenderer FrameView is laid out before the RenderSVGRoot FrameView.
942
943         This is a much less error-prone approach as the previous one. This lets us run nrwt --tolerance 0 -p svg -g again,
944         without 100% reproducable failing svg/wicd tests. (There's still one unrelated error, before guard malloc mode passes fully).
945
946         Test: svg/wicd/sizing-flakiness.html (Adjusted version of the rightsizing test, made to fail with trunk w/o this patch.)
947
948         * page/FrameView.cpp: Remove m_inLayoutParentView.
949         (WebCore::FrameView::FrameView): Remove no longer needed m_inLayoutParentView.
950         (WebCore::FrameView::forceLayoutParentViewIfNeeded): Simplify, no need to call updateWidgetPositions anymore, nor to clear/query flags in RenderSVGRoot.
951         (WebCore::FrameView::layout): Call forceLayoutParentViewIfNeeded() before laying out the embedded document, to guarantee the correct order.
952         * page/FrameView.h:
953         (FrameView): Remove m_inLayoutParentView.
954         * rendering/svg/RenderSVGRoot.cpp:
955         (WebCore::RenderSVGRoot::RenderSVGRoot): Remove m_needsSizeNegotiationWithHostDocument.
956         (WebCore::resolveLengthAttributeForSVG): Remove outcommented code, that went in by accident.
957         (WebCore::RenderSVGRoot::layout): Remove m_needsSizeNegotiationWithHostDocument handling which is now incorrect and no longer needed.
958         * rendering/svg/RenderSVGRoot.h:
959         (RenderSVGRoot): Remove m_needsSizeNegotiationWithHostDocument + accessors.
960
961 2012-01-23  Andreas Kling  <awesomekling@apple.com>
962
963         Make elements that don't have attributes smaller.
964         <http://webkit.org/b/76876>
965
966         Reviewed by Antti Koivisto.
967
968         Move the inline style declaration from StyledElement to NamedNodeMap, since having
969         an inline style declaration also implies having a style attribute on the element.
970         This saves one CPU word per element that has no attributes.
971
972         This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
973         HTML5 spec at <http://whatwg.org/c>.
974
975         * dom/NamedNodeMap.cpp:
976         (WebCore::NamedNodeMap::ensureInlineStyleDecl):
977         (WebCore::NamedNodeMap::destroyInlineStyleDecl):
978         (WebCore::NamedNodeMap::createInlineStyleDecl):
979         * dom/NamedNodeMap.h:
980         (WebCore::NamedNodeMap::inlineStyleDecl):
981         * dom/StyledElement.cpp:
982         (WebCore::StyledElement::updateStyleAttribute):
983         (WebCore::StyledElement::addSubresourceAttributeURLs):
984         * dom/StyledElement.h:
985         (WebCore::StyledElement::inlineStyleDecl):
986         (WebCore::StyledElement::ensureInlineStyleDecl):
987         (WebCore::StyledElement::destroyInlineStyleDecl):
988
989 2012-01-26  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
990
991         [Qt] Use ICU if available
992         https://bugs.webkit.org/show_bug.cgi?id=76821
993
994         Reviewed by Simon Hausmann.
995
996         Adding correct sources to a Qt 5 based build.
997
998         No new tests, it's just a build dependency change.
999
1000         * Target.pri:
1001
1002 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
1003
1004         Not reviewed. Fix mac build after r105988.
1005
1006         * WebCore.exp.in:
1007
1008 2012-01-26  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>
1009
1010         [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission
1011         https://bugs.webkit.org/show_bug.cgi?id=42545
1012
1013         Reviewed by Zoltan Herczeg.
1014
1015         No need for new tests, there is no behavior change.
1016
1017         Added a line to file which copies the forwarding headers.
1018
1019         * WebCore.vcproj/copyForwardingHeaders.cmd:
1020
1021 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
1022
1023         Not reviewed. Fix Qt build after r105978.
1024
1025         * rendering/svg/RenderSVGResourceClipper.cpp: Add missing Frame/FrameView includes.
1026         * rendering/svg/RenderSVGResourceSolidColor.cpp: Ditto.
1027         * rendering/svg/SVGInlineTextBox.cpp: Ditto.
1028         * rendering/svg/SVGRenderSupport.cpp: Ditto.
1029
1030 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
1031
1032         Not reviewed. Fix non-AllInOne builds after r105978.
1033
1034         * rendering/svg/RenderSVGResource.cpp:
1035
1036 2012-01-26  Vsevolod Vlasov  <vsevik@chromium.org>
1037
1038         Unreviewed inspector closure compilation fix.
1039
1040         * inspector/front-end/externs.js:
1041         (WebInspector.closeDrawerView):
1042
1043 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
1044
1045         Not reviewed. Fix release builds after r105978.
1046
1047         * rendering/svg/SVGInlineTextBox.cpp:
1048         (WebCore::SVGInlineTextBox::paintSelectionBackground): Remove unused variable.
1049
1050 2012-01-26  Kent Tamura  <tkent@chromium.org>
1051
1052         Unreviewed, rolling out r105968.
1053         http://trac.webkit.org/changeset/105968
1054         https://bugs.webkit.org/show_bug.cgi?id=76995
1055
1056         Incorrect behavior change
1057
1058         * html/HTMLInputElement.cpp:
1059         (WebCore::HTMLInputElement::setIndeterminate):
1060
1061 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
1062
1063         crash in WebCore::RenderSVGContainer::paint
1064         https://bugs.webkit.org/show_bug.cgi?id=69714
1065
1066         Reviewed by Dirk Schulze.
1067
1068         When RenderSVGResourceClipper draws its children to a mask, it requires some special constraints:
1069         - fill-opacity/stroke-opacity/opacity forced to 1
1070         - masker/filter resources shouldn't be applied to the children
1071         - fill must be set to the initial fill paint server for all children (solid black)
1072         - stroke must be set to the initial stroke paint server for all children (none)
1073
1074         This was achieved before by mutating the style of the children, which made them need a relayout.
1075         SVGImageBufferTools:renderSubtreeToImageBuffer thus needed to layout the children, if needed, before painting.
1076
1077         This can be completly avoided, when changing RenderSVGResourceClipper to avoid style mutations.
1078         Introduce a new "PaintBehaviorRenderingSVGMask", and set the current FrameViews paintBehaviour to this
1079         state, before painting the subtree. This way we can detect that we're rendering a clip mask, without
1080         having to mutate the style of the children and without having to relayout.
1081
1082         We can now ASSERT(!item->needsLayout()) in renderSubtreeToImageBuffer.
1083
1084         Tests: svg/clip-path/clip-path-tspan-and-stroke.svg
1085                svg/custom/layout-loop.svg
1086
1087         * rendering/PaintPhase.h:
1088         * rendering/svg/RenderSVGResource.cpp:
1089         (WebCore::requestPaintingResource):
1090         * rendering/svg/RenderSVGResourceClipper.cpp:
1091         (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper):
1092         (WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
1093         (WebCore::RenderSVGResourceClipper::removeClientFromCache):
1094         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1095         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
1096         * rendering/svg/RenderSVGResourceClipper.h:
1097         * rendering/svg/RenderSVGResourceMasker.cpp:
1098         (WebCore::RenderSVGResourceMasker::applyResource):
1099         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
1100         * rendering/svg/RenderSVGResourceMasker.h:
1101         * rendering/svg/RenderSVGResourcePattern.cpp:
1102         (WebCore::RenderSVGResourcePattern::createTileImage):
1103         * rendering/svg/RenderSVGResourceSolidColor.cpp:
1104         (WebCore::RenderSVGResourceSolidColor::applyResource):
1105         * rendering/svg/SVGImageBufferTools.cpp:
1106         (WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer):
1107         * rendering/svg/SVGInlineTextBox.cpp:
1108         (WebCore::SVGInlineTextBox::paintSelectionBackground):
1109         (WebCore::SVGInlineTextBox::paint):
1110         * rendering/svg/SVGRenderSupport.cpp:
1111         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
1112
1113 2012-01-26  Nikolas Zimmermann  <nzimmermann@rim.com>
1114
1115         Not reviewed. Try to fix Gtk build - JSShadowRoot.cpp can't be found, fix by looking for it in the derived sources.
1116
1117         * GNUmakefile.list.am:
1118
1119 2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>
1120
1121         Web Inspector: Improve user experience of advanced search panel closing.
1122         https://bugs.webkit.org/show_bug.cgi?id=76983
1123
1124         Reviewed by Pavel Feldman.
1125
1126         Added close button to search panel.
1127         Esc now closes the panel even when search filed has focus.
1128
1129         * English.lproj/localizedStrings.js:
1130         * inspector/front-end/AdvancedSearchController.js:
1131         (WebInspector.AdvancedSearchController.prototype.close):
1132         (WebInspector.SearchView):
1133         (WebInspector.SearchView.prototype._onKeyDown):
1134         (WebInspector.SearchView.prototype._closeButtonPressed):
1135         * inspector/front-end/inspector.css:
1136         (.search-view .search-panel):
1137         (.search-view .search-panel button.search-close-button):
1138         * inspector/front-end/inspector.js:
1139         (WebInspector._escPressed):
1140         (WebInspector.closeDrawerView):
1141
1142 2012-01-26  Joe Thomas  <joethomas@motorola.com>
1143
1144         https://bugs.webkit.org/show_bug.cgi?id=76995.
1145         WebKit fails IETC :indeterminate and input type=radio test.
1146
1147         As per the HTML spec http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#dom-input-indeterminate,
1148         only checkbox input type should respect the indeterminate state.
1149         Removed the support for indeterminate state for radio input types.
1150
1151         Reviewed by Eric Seidel.
1152
1153         Modified the existing test cases.
1154
1155         * html/HTMLInputElement.cpp:
1156         (WebCore::HTMLInputElement::setIndeterminate): Indeterminate state is supported only for checkbox input type.
1157
1158 2012-01-25  Daniel Cheng  <dcheng@chromium.org>
1159
1160         [chromium] Fix ClipboardChromium::validateFilename to actually operate on extensions
1161         https://bugs.webkit.org/show_bug.cgi?id=76996
1162
1163         As it turns out, we were always calling validateFilename on a data object with an empty
1164         extension. Now we call it on an actual extension so that it's sanitized.
1165
1166         Reviewed by Tony Chang.
1167
1168         Unit test: webkit_unit_tests --gtest_filter=ClipboardChromium.*
1169
1170         * WebCore.gypi:
1171         * platform/chromium/ClipboardChromium.cpp:
1172         (WebCore::writeImageToDataObject):
1173         * platform/chromium/ClipboardChromium.h:
1174         (ClipboardChromium):
1175         * platform/chromium/ClipboardChromiumLinux.cpp: Removed.
1176         * platform/chromium/ClipboardChromiumPosix.cpp: Renamed from Source/WebCore/platform/chromium/ClipboardChromiumMac.cpp.
1177         (WebCore):
1178         (WebCore::isInvalidFileCharacter):
1179         (WebCore::ClipboardChromium::validateFilename):
1180         * platform/chromium/ClipboardChromiumWin.cpp:
1181         (WebCore):
1182         (WebCore::ClipboardChromium::validateFilename):
1183
1184 2012-01-25  James Robinson  <jamesr@chromium.org>
1185
1186         [chromium] Rollout r100751, this mechanism does not work and is very slow
1187         https://bugs.webkit.org/show_bug.cgi?id=77055
1188
1189         Unreviewed rollout of http://trac.webkit.org/changeset/100751. The refresh rate mechanism is not implemented,
1190         but it still triggers a very slow codepath and triggers races on some platforms.
1191
1192         * platform/PlatformScreen.h:
1193         (WebCore):
1194         * platform/chromium/PlatformScreenChromium.cpp:
1195         * platform/chromium/PlatformSupport.h:
1196         (PlatformSupport):
1197         ():
1198         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1199         (WebCore::CCSettings::CCSettings):
1200         (CCSettings):
1201         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1202         (WebCore::CCThreadProxy::initializeImplOnImplThread):
1203
1204 2012-01-25  Mark Rowe  <mrowe@apple.com>
1205
1206         Reapply Daniel Bates's build fix from r105847 after the exact same issue was reintroduced in r105930.
1207         
1208         Attempt to fix Mac build after changeset <http://trac.webkit.org/changeset/105930>.
1209         (https://bugs.webkit.org/show_bug.cgi?id=75049)
1210
1211         Don't include NotImplemented.h in KURL.h since NotImplemented.h includes Logging.h, which defines
1212         LOG_CHANNEL_PREFIX to be "Log". And this conflicts with the inclusion of WebKitLogging.h in
1213         WebHTMLView.mm (which would have defined LOG_CHANNEL_PREFIX to be "WebKitLog").
1214
1215         * platform/KURL.h:
1216         (WebCore::KURL::innerURL):
1217
1218 2012-01-25  Eric Seidel  <eric@webkit.org>
1219
1220         Unreviewed, rolling out r105940.
1221         http://trac.webkit.org/changeset/105940
1222         https://bugs.webkit.org/show_bug.cgi?id=76095
1223
1224         Only half this change landed
1225
1226         * DerivedSources.cpp:
1227         * DerivedSources.make:
1228         * DerivedSources.pri:
1229
1230 2012-01-25  Mark Rowe  <mrowe@apple.com>
1231
1232         Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.
1233
1234         <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH
1235
1236         Reviewed by David Kilzer.
1237
1238         * Configurations/WebCore.xcconfig: Define NORMAL_WEBCORE_FRAMEWORKS_DIR, which contains
1239         the path where WebCore is normally installed. Update WEBCORE_FRAMEWORKS_DIR to point to
1240         the staged frameworks directory when USE_STAGING_INSTALL_PATH is set. Define
1241         NORMAL_PRODUCTION_FRAMEWORKS_DIR, which contains the path where our public frameworks
1242         are normally installed. Update PRODUCTION_FRAMEWORKS_DIR to point to the staged frameworks
1243         directory when USE_STAGING_INSTALL_PATH is set. Always set the framework's install name
1244         based on the normal framework location. This prevents an incorrect install name from being
1245         used when installing in to the staged frameworks directory. Look for our other frameworks
1246         in the staged frameworks directory when USE_STAGING_INSTALL_PATH is set.
1247
1248 2012-01-25  Eric Seidel  <eric@webkit.org>
1249
1250         "text" and "URL" legacy clipboard types should not be case sensitive
1251         https://bugs.webkit.org/show_bug.cgi?id=76947
1252
1253         Reviewed by Adam Barth.
1254
1255         This matches the HTML5 spec which says the first thing to do is to lowercase
1256         the type before comparing.
1257         I also removed the stripping of whitespace since that is not part of the modern spec (and no tests failed as a result of removal).
1258         Turns out we already had a test for case sensitivity, but it was disabled on Mac
1259         so I just re-enabled it and have added failing expectations for the parts
1260         of the test we still fail.
1261
1262         * platform/mac/ClipboardMac.mm:
1263         (WebCore::cocoaTypeFromHTMLClipboardType):
1264         (WebCore::ClipboardMac::getData):
1265
1266 2012-01-25  Eric Seidel  <eric@webkit.org>
1267
1268         HTMLIsIndexElement should not expose HTMLInputElement properties
1269         https://bugs.webkit.org/show_bug.cgi?id=76095
1270
1271         Reviewed by Adam Barth.
1272
1273         document.createElement("isindex") should produce an HTMLUnknownElement
1274         per the HTML5 spec.  The parser automagically translates <isindex> into
1275         a whole dom tree roughly representing what <isindex> used to do 15 years ago. :)
1276
1277         This patch just removes our support for HTMLIsIndexElement.  The parser
1278         support was already in.  Having support for HTMLIsIndexElement was causing
1279         one of the IE TestCenter tests to fail.
1280
1281         Test: fast/dom/HTMLIsIndexElement/prototype-chain.html
1282
1283         * DerivedSources.cpp:
1284         * DerivedSources.make:
1285         * DerivedSources.pri:
1286         * GNUmakefile.list.am:
1287         * Target.pri:
1288         * WebCore.exp.in:
1289         * WebCore.gypi:
1290         * WebCore.order:
1291         * WebCore.vcproj/WebCore.vcproj:
1292         * WebCore.xcodeproj/project.pbxproj:
1293         * bindings/gobject/GNUmakefile.am:
1294         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
1295         (WebKit::createHTMLElementWrapper):
1296         * bindings/objc/DOM.mm:
1297         (WebCore::createElementClassMap):
1298         * bindings/objc/DOMHTML.h:
1299         * bindings/objc/PublicDOMInterfaces.h:
1300         * html/HTMLElementsAllInOne.cpp:
1301         * html/HTMLIsIndexElement.cpp: Removed.
1302         * html/HTMLIsIndexElement.h: Removed.
1303         * html/HTMLIsIndexElement.idl: Removed.
1304         * html/HTMLTagNames.in:
1305         * page/DOMWindow.idl:
1306
1307 2012-01-25  Eric Seidel  <eric@webkit.org>
1308
1309         HTMLEmbedObject should match HTMLObjectElement by stopping any load when it is removed from beforeload
1310         https://bugs.webkit.org/show_bug.cgi?id=74360
1311
1312         Reviewed by Adam Barth.
1313
1314         Neither of these !renderer() checks is strictly necessary since requestObject()
1315         makes the same check.  However requestObject() asserts before it makes that
1316         check, so it makes sense to add the check to HTMLEmebedObject instead of
1317         removing the check from HTMLObjectElement.
1318         I also moved the protect RefPtr to before the beforeload dispatch since
1319         beforeload can remove the whole DOM element (as this test does) and
1320         thus I beleive the renderer() check could be checking free'd memory.
1321
1322         Updated fast/dom/beforeload/remove-flash-in-beforeload-listener.html to test
1323         <embed> as well as <object>.
1324
1325         * html/HTMLEmbedElement.cpp:
1326         (WebCore::HTMLEmbedElement::updateWidget):
1327         * html/HTMLObjectElement.cpp:
1328         (WebCore::HTMLObjectElement::updateWidget):
1329
1330 2012-01-25  Kent Tamura  <tkent@chromium.org>
1331
1332         Move focus/blur handling code of HTMLInputElement to InputType
1333         https://bugs.webkit.org/show_bug.cgi?id=76984
1334
1335         Reviewed by Dimitri Glazkov.
1336
1337         No new tests. Just a refactoring.
1338
1339         * html/HTMLInputElement.cpp:
1340         (WebCore::HTMLInputElement::handleFocusEvent):
1341         Move the code to PasswordInputType::handleFocusEvent().
1342         (WebCore::HTMLInputElement::handleBlurEvent):
1343         Move the code to TextFieldInputType::handleBlurEvent() and
1344         PasswordInputType::handleBlurEvent().
1345         * html/InputType.cpp:
1346         (WebCore::InputType::handleFocusEvent):
1347         * html/InputType.h:
1348         (InputType): Add handleFocusEvent().
1349         * html/PasswordInputType.cpp:
1350         (WebCore::PasswordInputType::handleFocusEvent):
1351         Move the code for type=password from HTMLInputElement::handleFocusEvent().
1352         (WebCore::PasswordInputType::handleBlurEvent):
1353         Move the code for tyep=password from HTMLInputElement::handleBlurEvent().
1354         * html/PasswordInputType.h:
1355         (PasswordInputType): Add handleFocusEvent() and handleBlurEvent().
1356         * html/TextFieldInputType.cpp:
1357         (WebCore::TextFieldInputType::handleBlurEvent):
1358         Move the code for text field types from HTMLInputElement::handleBlurEvent().
1359         * html/TextFieldInputType.h:
1360         (TextFieldInputType): Add handleBlurEvent().
1361
1362 2012-01-25  Adam Barth  <abarth@webkit.org>
1363
1364         Node.cpp shouldn't duplicate QualifiedName parsing logic
1365         https://bugs.webkit.org/show_bug.cgi?id=76672
1366
1367         Reviewed by Eric Seidel.
1368
1369         I added this code out of ignorance that this logic already existed in
1370         Document.cpp.  In a future patch, we should consider moving it to
1371         QualifiedName.cpp.
1372
1373         * dom/Node.cpp:
1374         (WebCore):
1375         (WebCore::Node::checkSetPrefix):
1376
1377 2012-01-25  Eric Seidel  <eric@webkit.org>
1378
1379         Share more code between updateWidget implementations in HTMLEmbedElement and HTMLObjectElement
1380         https://bugs.webkit.org/show_bug.cgi?id=74340
1381
1382         Reviewed by Adam Barth.
1383
1384         I'm preparing to unify these two methods, and starting by sharing more code between them.
1385
1386         * html/HTMLEmbedElement.cpp:
1387         (WebCore::HTMLEmbedElement::updateWidget):
1388         * html/HTMLObjectElement.cpp:
1389         (WebCore::HTMLObjectElement::updateWidget):
1390         * html/HTMLPlugInElement.cpp:
1391         (WebCore::HTMLPlugInElement::guardedDispatchBeforeLoadEvent):
1392         * html/HTMLPlugInElement.h:
1393
1394 2012-01-25  Eric Uhrhane  <ericu@chromium.org>
1395
1396         Add full support for filesystem URLs.
1397         https://bugs.webkit.org/show_bug.cgi?id=75049
1398
1399         Reviewed by Adam Barth.
1400
1401         No new tests; existing layout tests cover the basic functionality, and
1402         the new functionality won't be there until Chromium adds it.  This patch
1403         merely enables that, without changing behavior.
1404
1405         * fileapi/EntryBase.cpp:
1406         (WebCore::EntryBase::toURL): Add missing escaping of URL path.
1407
1408         * page/SecurityOrigin.cpp:
1409         (WebCore::extractInnerURL): Use innerURL member, if it's populated.
1410
1411         * platform/KURL.h:
1412         (WebCore::KURL::innerURL): Add innerURL member.
1413
1414         * platform/KURLGoogle.cpp:
1415         (WebCore::KURLGooglePrivate::KURLGooglePrivate):
1416         (WebCore::KURLGooglePrivate::operator=):
1417         Add copy constructor and operator=, which are now needed since
1418         m_innerURL needs special handling.
1419         (WebCore::KURLGooglePrivate::setUtf8):
1420         (WebCore::KURLGooglePrivate::setAscii):
1421         Add calls to initInnerURL.
1422         (WebCore::KURLGooglePrivate::initInnerURL):
1423         Add method to init/copy m_innerURL.
1424         (WebCore::KURLGooglePrivate::copyTo):
1425         Handle m_innerURL during copies.
1426         (WebCore::encodeWithURLEscapeSequences):
1427         Unescape %2F ['/'] in paths; it's much more readable, and it's safe.
1428
1429         * platform/KURLGooglePrivate.h:
1430         (WebCore::KURLGooglePrivate::innerURL): Add accessor for new m_innerURL.
1431
1432 2012-01-25  Daniel Cheng  <dcheng@chromium.org>
1433
1434         [chromium] Refactor Clipboard invalidate for DataTransferItem/DataTransferItemList into a wrapper
1435         https://bugs.webkit.org/show_bug.cgi?id=76993
1436
1437         We want to unify the backing data store for ClipboardChromium and DataTransferItems. For
1438         that, we want use a similar representation to DataTransferItem list inside
1439         ChromiumDataObject.  However, since ChromiumDataObject should be valid in scopes where
1440         Clipboard is not (e.g. default drag processing), we need to separate the clipboard
1441         invalidation logic into a wrapper class.
1442
1443         Reviewed by Tony Chang.
1444
1445         Covered by existing tests.
1446
1447         * platform/chromium/ClipboardChromium.cpp:
1448         ():
1449         (WebCore::ClipboardChromium::items):
1450         * platform/chromium/DataTransferItemChromium.cpp:
1451         (WebCore::DataTransferItemChromium::getAsString):
1452         * platform/chromium/DataTransferItemListChromium.cpp:
1453         (WebCore::DataTransferItemListChromium::length):
1454         (WebCore::DataTransferItemListChromium::item):
1455         (WebCore::DataTransferItemListChromium::deleteItem):
1456         (WebCore::DataTransferItemListChromium::clear):
1457         (WebCore::DataTransferItemListChromium::add):
1458
1459 2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
1460
1461         [Texmap] Divide TextureMapperNode.cpp to 3 files.
1462         https://bugs.webkit.org/show_bug.cgi?id=76660
1463
1464          Reviewed by Kenneth Rohde Christiansen.
1465
1466          Split the animation part of TextureMapperNode out to a separate file, called
1467          TextureMapperAnimation.
1468          Provide a clean interface for that class, that allows separating the internals of the scene
1469          painting from the internals of the animation interpolation.
1470
1471          No new tests. Existing animation tests cover this.
1472
1473          * GNUmakefile.list.am:
1474         * Target.pri:
1475         * WebCore.gypi:
1476         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1477         (WebCore::GraphicsLayerTextureMapper::addAnimation):
1478         (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
1479         (WebCore::GraphicsLayerTextureMapper::removeAnimation):
1480         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1481         (GraphicsLayerTextureMapper):
1482         * platform/graphics/texmap/TextureMapperNode.cpp:
1483         (WebCore::TextureMapperNode::syncCompositingStateSelf):
1484         (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
1485         (WebCore::TextureMapperNode::syncAnimations):
1486         (WebCore::TextureMapperNode::syncAnimationsRecursively):
1487         (WebCore::TextureMapperNode::syncCompositingState):
1488         * platform/graphics/texmap/TextureMapperNode.h:
1489         (TextureMapperNode):
1490
1491 2012-01-25  Hajime Morita  <morrita@google.com>
1492
1493         ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
1494         https://bugs.webkit.org/show_bug.cgi?id=76863
1495
1496         Reviewed by Dimitri Glazkov.
1497
1498         Added a feature flag.
1499
1500         No tests, it's a behid flag configuration change.
1501
1502         * CMakeLists.txt:
1503         * Configurations/FeatureDefines.xcconfig:
1504         * DerivedSources.cpp:
1505         * DerivedSources.make:
1506         * DerivedSources.pri:
1507         * GNUmakefile.am:
1508         * GNUmakefile.list.am:
1509         * WebCore.vcproj/WebCore.vcproj:
1510         * WebCore.xcodeproj/project.pbxproj:
1511
1512 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
1513
1514         Unreviewed, rolling out r105906.
1515         http://trac.webkit.org/changeset/105906
1516         https://bugs.webkit.org/show_bug.cgi?id=77038
1517
1518         Breaks compositing/visibility/layer-visible-content.html and
1519         compositing/visibility/visibility-image-layers-dynamic.html
1520         (Requested by leviw|gardening on #webkit).
1521
1522         * rendering/RenderLayerBacking.cpp:
1523         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1524
1525 2012-01-25  Mike Fenton  <mifenton@rim.com>
1526
1527         Page Up and Page Down mappings are backwards on BlackBerry port.
1528         https://bugs.webkit.org/show_bug.cgi?id=77021
1529
1530         Fix Page Up and Page Down mappings as they are reversed.
1531
1532         Reviewed by Antonio Gomes.
1533
1534         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
1535         (WebCore::keyIdentifierForBlackBerryCharacter):
1536         (WebCore::windowsKeyCodeForBlackBerryCharacter):
1537
1538 2012-01-25  Hajime Morita  <morrita@google.com>
1539
1540         <content> should create HTMLContentElement object
1541         https://bugs.webkit.org/show_bug.cgi?id=76439
1542
1543         Reviewed by Dimitri Glazkov.
1544
1545         - Added HTMLContentElement.idl which has @select attribute.
1546         - Added "content" element.
1547
1548         Both are behind ENABLE_SHADOW_DOM.
1549
1550         Tests: fast/dom/shadow/content-element-api.html
1551                fast/dom/shadow/content-element-outside-shadow.html
1552
1553         * CMakeLists.txt:
1554         * DerivedSources.cpp:
1555         * DerivedSources.make:
1556         * DerivedSources.pri:
1557         * GNUmakefile.list.am:
1558         * WebCore.gypi:
1559         * WebCore.vcproj/WebCore.vcproj:
1560         * WebCore.xcodeproj/project.pbxproj:
1561         * html/HTMLTagNames.in:
1562         * html/shadow/HTMLContentElement.cpp:
1563         (WebCore::contentTagName):
1564         (WebCore):
1565         (WebCore::HTMLContentElement::create):
1566         * html/shadow/HTMLContentElement.h:
1567         (HTMLContentElement):
1568         * html/shadow/HTMLContentElement.idl: Added.
1569
1570 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
1571
1572         Unreviewed, rolling out r105828.
1573         http://trac.webkit.org/changeset/105828
1574         https://bugs.webkit.org/show_bug.cgi?id=77036
1575
1576         Caused many crashes in ClusterFuzz and PerformanceTests
1577         (Requested by inferno-sec on #webkit).
1578
1579         * rendering/RenderBlock.cpp:
1580         (WebCore::RenderBlock::removeChild):
1581         * rendering/RenderBlock.h:
1582         (RenderBlock):
1583
1584 2012-01-25  Shawn Singh  <shawnsingh@chromium.org>
1585
1586         Fix the semantics of passing contentsVisible flag to GraphicsLayers
1587         https://bugs.webkit.org/show_bug.cgi?id=76975
1588
1589         Reviewed by Simon Fraser.
1590
1591         This patch is covered by existing tests, in particular
1592         compositing/visibility/layer-visible-content.html; its
1593         expectations are rebaselined.
1594
1595         * rendering/RenderLayerBacking.cpp:
1596         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1597
1598 2012-01-25  Tony Chang  <tony@chromium.org>
1599
1600         support overflow:auto and overflow:scroll in new flexbox
1601         https://bugs.webkit.org/show_bug.cgi?id=76953
1602
1603         Reviewed by David Hyatt.
1604
1605         Tests: css3/flexbox/flexbox-overflow-auto-expected.html
1606                css3/flexbox/flexbox-overflow-auto.html
1607
1608         * rendering/RenderBox.cpp:
1609         (WebCore::RenderBox::addLayoutOverflow): In the case of reverse flexboxen, we can overflow up or to the left (like horizontal-bt or rtl content).
1610         * rendering/RenderFlexibleBox.cpp:
1611         (WebCore::RenderFlexibleBox::layoutBlock): Call updateScrollInfoAfterLayout() to add overflow scrollbars.
1612         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): In row-reverse, offset the start of the content by the scrollbar.
1613         (WebCore::RenderFlexibleBox::layoutColumnReverse): In column-reverse, offset the start of the content by the scrollbar.
1614         * rendering/RenderFlexibleBox.h:
1615         (RenderFlexibleBox): Make isHorizontalFlow public.
1616         * rendering/style/RenderStyle.h:
1617         (WebCore::RenderStyleBitfields::isReverseFlexDirection): Convenience method.
1618
1619 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
1620
1621         Unreviewed, rolling out r105885.
1622         http://trac.webkit.org/changeset/105885
1623         https://bugs.webkit.org/show_bug.cgi?id=77027
1624
1625         Causes assertions in Position. (Requested by leviw|gardening
1626         on #webkit).
1627
1628         * dom/Position.cpp:
1629         (WebCore::Position::upstream):
1630         (WebCore::Position::downstream):
1631         * dom/PositionIterator.cpp:
1632         * dom/PositionIterator.h:
1633         (PositionIterator):
1634         * editing/htmlediting.cpp:
1635         (WebCore::nextCandidate):
1636         (WebCore::nextVisuallyDistinctCandidate):
1637         (WebCore::previousCandidate):
1638         (WebCore::previousVisuallyDistinctCandidate):
1639
1640 2012-01-25  Alexis Menard  <alexis.menard@openbossa.org>
1641
1642         border-image should be implemented like a shorthand.
1643         https://bugs.webkit.org/show_bug.cgi?id=76697
1644
1645         Reviewed by Tony Chang.
1646
1647         Make sure that border-image is implemented like a shorthand : when we parse
1648         it we set the correct value to its longhands. The code was not doing it
1649         previously as we inherited the old implementation of -webkit-border-image which
1650         is not a shorthand but a regular property. It will then increase
1651         style.length for a given element as we now expand the longhands.
1652         The behavior stays the same for -webkit-border-image.
1653
1654         Test: fast/css/border-image-style-length.html
1655
1656         * css/CSSParser.cpp:
1657         (WebCore::CSSParser::parseValue):
1658         (WebCore::BorderImageParseContext::BorderImageParseContext):
1659         (WebCore::BorderImageParseContext::commitWebKitBorderImage):
1660         (WebCore::BorderImageParseContext::commitBorderImage):
1661         (BorderImageParseContext):
1662         (WebCore::BorderImageParseContext::commitBorderImageProperty):
1663         (WebCore::CSSParser::parseBorderImage):
1664         * css/CSSParser.h:
1665         ():
1666         * css/CSSPropertyLonghand.cpp:
1667         (WebCore::initShorthandMap):
1668         * css/CSSStyleApplyProperty.cpp:
1669         ():
1670         (WebCore::ApplyPropertyExpanding::applyInheritValue):
1671         (WebCore::ApplyPropertyExpanding::applyInitialValue):
1672         (WebCore::ApplyPropertyExpanding::applyValue):
1673         (WebCore::ApplyPropertyBorderImageModifier::applyInitialValue):
1674         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1675         * css/CSSStyleSelector.cpp:
1676         (WebCore::CSSStyleSelector::mapNinePieceImage):
1677         * page/animation/AnimationBase.cpp:
1678         (WebCore::AnimationBase::ensurePropertyMap):
1679         (WebCore::addShorthandProperties):
1680         * rendering/style/RenderStyle.h:
1681         (WebCore::RenderStyleBitfields::borderImageSlices):
1682         (WebCore::RenderStyleBitfields::borderImageWidth):
1683         (WebCore::RenderStyleBitfields::borderImageOutset):
1684         (RenderStyleBitfields):
1685         (WebCore::RenderStyleBitfields::setBorderImageSlices):
1686         (WebCore::RenderStyleBitfields::setBorderImageWidth):
1687         (WebCore::RenderStyleBitfields::setBorderImageOutset):
1688
1689 2012-01-23  MORITA Hajime  <morrita@google.com>
1690
1691         [Refactoring][Internals] Should have InternalSettings
1692         https://bugs.webkit.org/show_bug.cgi?id=76424
1693
1694         Reviewed by Kent Tamura.
1695
1696         This change extracted setting related method from window.internals
1697         to window.internals.settings object.
1698         - Invoked Internals::reset() in the constructor to employ Document object.
1699         - Moved setting and configuration related Internals methods to
1700           newly introduced InternalSettings object.
1701
1702         No new tests, covered by existing tests.
1703
1704         * DerivedSources.make:
1705         * DerivedSources.pri:
1706         * GNUmakefile.am:
1707         * GNUmakefile.list.am:
1708         * Target.pri:
1709         * WebCore.gyp/WebCore.gyp:
1710         * WebCore.gypi:
1711         * WebCore.vcproj/WebCoreTestSupport.vcproj:
1712         * WebCore.xcodeproj/project.pbxproj:
1713         * testing/InternalSettings.cpp: Added.
1714         (WebCore::InternalSettings::create):
1715         (WebCore::InternalSettings::~InternalSettings):
1716         (WebCore::InternalSettings::InternalSettings):
1717         (WebCore::InternalSettings::settings):
1718         (WebCore::InternalSettings::document):
1719         (WebCore::InternalSettings::page):
1720         (WebCore::InternalSettings::setInspectorResourcesDataSizeLimits):
1721         (WebCore::InternalSettings::setForceCompositingMode):
1722         (WebCore::InternalSettings::setAcceleratedFiltersEnabled):
1723         (WebCore::InternalSettings::setEnableCompositingForFixedPosition):
1724         (WebCore::InternalSettings::setEnableCompositingForScrollableFrames):
1725         (WebCore::InternalSettings::setAcceleratedDrawingEnabled):
1726         (WebCore::InternalSettings::setEnableScrollAnimator):
1727         (WebCore::InternalSettings::setZoomAnimatorTransform):
1728         (WebCore::InternalSettings::setZoomParameters):
1729         (WebCore::InternalSettings::setMockScrollbarsEnabled):
1730         (WebCore::InternalSettings::setPasswordEchoEnabled):
1731         (WebCore::InternalSettings::setPasswordEchoDurationInSeconds):
1732         (WebCore::InternalSettings::setShouldLayoutFixedElementsRelativeToFrame):
1733         (WebCore::InternalSettings::setUnifiedTextCheckingEnabled):
1734         (WebCore::InternalSettings::unifiedTextCheckingEnabled):
1735         (WebCore::InternalSettings::pageScaleFactor):
1736         (WebCore::InternalSettings::setPageScaleFactor):
1737         (WebCore::InternalSettings::setPerTileDrawingEnabled):
1738         * testing/InternalSettings.h: Added.
1739         * testing/InternalSettings.idl: Added.
1740         * testing/Internals.cpp:
1741         (WebCore::Internals::create):
1742         (WebCore::Internals::Internals):
1743         (WebCore::Internals::reset):
1744         * testing/Internals.h:
1745         (WebCore::Internals::settings):
1746         * testing/Internals.idl:
1747         * testing/js/WebCoreTestSupport.cpp:
1748         (WebCoreTestSupport::injectInternalsObject):
1749         * testing/v8/WebCoreTestSupport.cpp:
1750         (WebCoreTestSupport::injectInternalsObject):
1751
1752 2012-01-25  Alexis Menard  <alexis.menard@openbossa.org>
1753
1754         border-image should not crash when the source is not specified.
1755         https://bugs.webkit.org/show_bug.cgi?id=77001
1756
1757         Reviewed by Andreas Kling.
1758
1759         This bug was introduced by r105502 but was exposed by r105738.
1760         The image-source of a border-image is not mandatory therefore it
1761         may happen that you have no value set for it. WebCore::createBorderImageValue
1762         was wrongly assuming that the image is always set. This problem also required a bit
1763         of refactoring in CSSStyleSelector::mapNinePieceImage to take into account that
1764         the image could be optional (just like other properties).
1765
1766         Test: fast/css/border-image-null-image-crash.html
1767
1768         * css/CSSBorderImage.cpp:
1769         (WebCore::createBorderImageValue):
1770         * css/CSSStyleSelector.cpp:
1771         (WebCore::CSSStyleSelector::mapNinePieceImage):
1772
1773 2012-01-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1774
1775         [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
1776         https://bugs.webkit.org/show_bug.cgi?id=76914
1777
1778         Reviewed by Simon Hausmann.
1779
1780         Implement highlighting of dom nodes with a rounded rect, respecting
1781         the color of -webkit-tap-highlight-color and any transform applied
1782         to the element.
1783
1784         Tested with manual test.
1785
1786         * Target.pri:
1787         * page/GestureTapHighlighter.cpp: Added.
1788         (WebCore::GestureTapHighlighter::pathForNodeHighlight):
1789         * page/GestureTapHighlighter.h: Added.
1790
1791 2012-01-25  Joshua Bell  <jsbell@chromium.org>
1792
1793         IndexedDB: Need to distinguish key paths that don't yield value vs. yield invalid key
1794         https://bugs.webkit.org/show_bug.cgi?id=76487
1795
1796         Implement the precondition checks for IDBObjectStore.add/put operations: raise an error
1797         if there is a key generator (autoIncrement) and the path yields a value and the value
1798         is not a valid key; raise an error if any of the index key paths yield a value which
1799         is not a valid key.
1800
1801         Reviewed by Tony Chang.
1802
1803         Tests: storage/indexeddb/keypath-edges.html
1804                storage/indexeddb/objectstore-basics.html
1805
1806         * storage/IDBObjectStoreBackendImpl.cpp:
1807         (WebCore::IDBObjectStoreBackendImpl::put):
1808
1809 2012-01-25  Yong Li  <yoli@rim.com>
1810
1811         https://bugs.webkit.org/show_bug.cgi?id=65377
1812         Skip the entire node when it is right to do so, instead of stepping
1813         through every character, so we save CPU time on checking every position
1814         unnecessarily.
1815
1816         Reviewed by Darin Adler.
1817
1818         Test: perf/selection-skip-hidden-node.html
1819
1820         * dom/Position.cpp:
1821         (WebCore::Position::upstream):
1822         (WebCore::Position::downstream):
1823         * dom/PositionIterator.cpp:
1824         (WebCore::PositionIterator::moveToLeafNodeStart):
1825         (WebCore::PositionIterator::moveToLeafNodeEnd):
1826         * dom/PositionIterator.h:
1827         * editing/htmlediting.cpp:
1828         (WebCore::nextCandidate):
1829         (WebCore::nextVisuallyDistinctCandidate):
1830         (WebCore::previousCandidate):
1831         (WebCore::previousVisuallyDistinctCandidate):
1832
1833 2012-01-25  Kaustubh Atrawalkar  <kaustubh@motorola.com>
1834
1835         Remove unnecessary member variable from PluginView.
1836         https://bugs.webkit.org/show_bug.cgi?id=76909
1837
1838         Reviewed by Adam Roben.
1839
1840         No new tests needed.
1841
1842         * plugins/PluginView.cpp:
1843         (WebCore::PluginView::getURLNotify):
1844         (WebCore::PluginView::getURL):
1845         (WebCore::PluginView::PluginView):
1846         (WebCore::PluginView::handlePost):
1847         (WebCore::PluginView::getValueForURL):
1848         (WebCore::PluginView::setValueForURL):
1849         * plugins/PluginView.h:
1850
1851 2012-01-25  Yael Aharon  <yael.aharon@nokia.com>
1852
1853         [Qt] Build fix when using force_static_libs_as_shared
1854         https://bugs.webkit.org/show_bug.cgi?id=76832
1855
1856         Reviewed by Simon Hausmann.
1857
1858         Add a dependency on QtWidgets, when compiling against Qt5.
1859
1860         No new tests. This is a build fix.
1861
1862         * Target.pri:
1863
1864 2012-01-25  Sami Kyostila  <skyostil@chromium.org>
1865
1866         Clipping of render layer boundaries does not take page scale into account
1867         https://bugs.webkit.org/show_bug.cgi?id=76850
1868
1869         Reviewed by Simon Fraser.
1870
1871         When inserting render layers into the compositor's overlap map, the
1872         layer boundaries are clipped against any potential parent clip rects.
1873         The clip rects are given in CSS coordinates, while the render layer
1874         boundaries are in scaled CSS coordinates, so the result is incorrect.
1875         This patch scales the clip rects before calculating the intersection.
1876
1877         Test: compositing/overflow/overflow-scaled-descendant-overlapping.html
1878
1879         * rendering/RenderLayerCompositor.cpp:
1880         (WebCore::RenderLayerCompositor::addToOverlapMap):
1881
1882 2012-01-25  Stephen Chenney  <schenney@chromium.org>
1883
1884         Linecaps wrong for zero length lines
1885         https://bugs.webkit.org/show_bug.cgi?id=71820
1886
1887         Reviewed by Nikolas Zimmermann.
1888
1889         Total reworking of the method used to draw zero-length linecaps for
1890         SVG. This patch works for all zero length sub-paths.
1891
1892         Tests: svg/stroke/zero-length-path-linecap-rendering.svg
1893                svg/stroke/zero-length-subpaths-linecap-rendering.svg
1894
1895         * rendering/svg/RenderSVGShape.cpp: Significant refactoring to enable
1896           new implementation and clarify code.
1897         (WebCore::RenderSVGShape::createShape):
1898         (WebCore::RenderSVGShape::strokeContains):
1899         (WebCore::RenderSVGShape::shouldStrokeZeroLengthSubpath):
1900         (WebCore::RenderSVGShape::zeroLengthSubpathRect):
1901         (WebCore::RenderSVGShape::zeroLengthLinecapPath):
1902         (WebCore::RenderSVGShape::nonScalingStrokePath):
1903         (WebCore::RenderSVGShape::setupNonScalingStrokeTransform):
1904         (WebCore::RenderSVGShape::fillShape):
1905         (WebCore::RenderSVGShape::strokePath):
1906         (WebCore::RenderSVGShape::fillAndStrokePath):
1907         (WebCore::RenderSVGShape::updateCachedBoundaries):
1908         (WebCore::RenderSVGShape::processZeroLengthSubpaths):
1909         * rendering/svg/RenderSVGShape.h: Declarations for new methods.
1910         * rendering/svg/SVGSubpathData.h: Class for finding zero length subpaths.
1911         * svg/SVGPathBuilder.h: Fix typos
1912         * svg/SVGPathConsumer.h: Fix typos
1913         * svg/SVGPathSegListBuilder.h: Fix typos
1914         * svg/SVGPathTraversalStateBuilder.h: Fix typos
1915
1916 2012-01-23  Yury Semikhatsky  <yurys@chromium.org>
1917
1918         Web Inspector: show memory counter graphs in timeline panel
1919         https://bugs.webkit.org/show_bug.cgi?id=76843
1920
1921         Timeline panel is extended with several graphs depicting total node count,
1922         number of DOM groups and event listeners. This feature is hidden behind
1923         experimental setting.
1924
1925         Reviewed by Pavel Feldman.
1926
1927         * English.lproj/localizedStrings.js:
1928         * inspector/Inspector.json:
1929         * inspector/InspectorController.cpp:
1930         (WebCore::InspectorController::InspectorController):
1931         * inspector/InspectorTimelineAgent.cpp:
1932         (WebCore::InspectorTimelineAgent::setDomCountersEnabled):
1933         (WebCore::InspectorTimelineAgent::didCallFunction):
1934         (WebCore::InspectorTimelineAgent::didDispatchEvent):
1935         (WebCore::InspectorTimelineAgent::didWriteHTML):
1936         (WebCore::InspectorTimelineAgent::didFireTimer):
1937         (WebCore::InspectorTimelineAgent::didEvaluateScript):
1938         (WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
1939         (WebCore::InspectorTimelineAgent::collectDomCounters):
1940         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1941         * inspector/InspectorTimelineAgent.h:
1942         (WebCore::InspectorTimelineAgent::create):
1943         * inspector/TimelineRecordFactory.cpp:
1944         * inspector/front-end/Settings.js:
1945         (WebInspector.ExperimentsSettings):
1946         * inspector/front-end/TimelinePanel.js:
1947         (WebInspector.TimelinePanel):
1948         (WebInspector.MemoryStatistics):
1949         (WebInspector.MemoryStatistics.prototype.setTopPosition):
1950         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
1951         (WebInspector.MemoryStatistics.prototype._sidebarResized):
1952         (WebInspector.MemoryStatistics.prototype._updateSize):
1953         (WebInspector.MemoryStatistics.prototype._updateSidebarSize):
1954         (WebInspector.MemoryStatistics.prototype._createCounterSidebarElement):
1955         (WebInspector.MemoryStatistics.prototype.addTimlineEvent):
1956         (WebInspector.MemoryStatistics.prototype._draw.getGroupCount):
1957         (WebInspector.MemoryStatistics.prototype._draw.getNodeCount):
1958         (WebInspector.MemoryStatistics.prototype._draw.getListenerCount):
1959         (WebInspector.MemoryStatistics.prototype._draw):
1960         (WebInspector.MemoryStatistics.prototype._calculateVisibleIndexes):
1961         (WebInspector.MemoryStatistics.prototype._onMouseOver):
1962         (WebInspector.MemoryStatistics.prototype._refreshCurrentValues):
1963         (WebInspector.MemoryStatistics.prototype.visible):
1964         (WebInspector.MemoryStatistics.prototype.show):
1965         (WebInspector.MemoryStatistics.prototype.refresh):
1966         (WebInspector.MemoryStatistics.prototype.hide):
1967         (WebInspector.MemoryStatistics.prototype._setVerticalClip):
1968         (WebInspector.MemoryStatistics.prototype._calculateXValues):
1969         (WebInspector.MemoryStatistics.prototype._drawPolyline):
1970         (WebInspector.MemoryStatistics.prototype._drawBottomBound):
1971         (WebInspector.MemoryStatistics.prototype._clear):
1972         (WebInspector.TimelinePanel.prototype._startSplitterDragging):
1973         (WebInspector.TimelinePanel.prototype._splitterDragging):
1974         (WebInspector.TimelinePanel.prototype._endSplitterDragging):
1975         (WebInspector.TimelinePanel.prototype._setSplitterPosition):
1976         (WebInspector.TimelinePanel.prototype.get statusBarItems):
1977         (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
1978         (WebInspector.TimelinePanel.prototype._toggleMemoryStatistics):
1979         (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
1980         (WebInspector.TimelinePanel.prototype.sidebarResized):
1981         (WebInspector.TimelinePanel.prototype._refresh):
1982         * inspector/front-end/timelinePanel.css:
1983         (#timeline-memory-splitter):
1984         (#memory-counters-graph):
1985         (#memory-graphs-container):
1986         (#memory-graphs-container .split-view-contents):
1987         (.timeline-marker):
1988         (.memory-counter-sidebar-info):
1989         (.memory-counter-sidebar-info.bottom-border-visible):
1990
1991 2012-01-25  Joseph Pecoraro  <pecoraro@apple.com>
1992
1993         <http://webkit.org/b/76941> Web Inspector: Remove Unused InspectorFrontendHost.search Stub
1994
1995         Reviewed by Pavel Feldman.
1996
1997         * inspector/front-end/InspectorFrontendHostStub.js:
1998
1999 2012-01-25  Vsevolod Vlasov  <vsevik@chromium.org>
2000
2001         Unreviewed inspector style fix.
2002
2003         * inspector/front-end/tabbedPane.css:
2004         (.tabbed-pane-header-tab-close-button):
2005         (select.tabbed-pane-header-tabs-drop-down-select):
2006
2007 2012-01-25  Pablo Flouret  <pablof@motorola.com>
2008
2009         Fix incorrect behavior in HTMLCollection.prototype.item().
2010         https://bugs.webkit.org/show_bug.cgi?id=74468
2011
2012         Reviewed by Adam Barth.
2013
2014         HTMLCollection.prototype.item("someString") was falling back to
2015         .namedItem("someString"), which is wrong per spec. Also align the
2016         handling of various other types of objects passed as the argument with
2017         the spec and the rest of the browsers.
2018
2019         Test: fast/dom/collection-item.html
2020
2021         * bindings/js/JSHTMLCollectionCustom.cpp: Remove custom implementation of item().
2022         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Ditto.
2023         * html/HTMLCollection.idl: Remove [Custom] in item(), it's not needed.
2024
2025 2012-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2026
2027         Unreviewed, rolling out r105858.
2028         http://trac.webkit.org/changeset/105858
2029         https://bugs.webkit.org/show_bug.cgi?id=77004
2030
2031         It made many tests crash on Qt (Requested by Ossy on #webkit).
2032
2033         * GNUmakefile.list.am:
2034         * Target.pri:
2035         * WebCore.gypi:
2036         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2037         (WebCore::GraphicsLayerTextureMapper::addAnimation):
2038         (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
2039         (WebCore::GraphicsLayerTextureMapper::removeAnimation):
2040         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2041         (GraphicsLayerTextureMapper):
2042         * platform/graphics/texmap/TextureMapperAnimation.cpp: Removed.
2043         * platform/graphics/texmap/TextureMapperAnimation.h: Removed.
2044         * platform/graphics/texmap/TextureMapperNode.cpp:
2045         (WebCore::TextureMapperNode::syncCompositingStateSelf):
2046         (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
2047         (WebCore::normalizedAnimationValue):
2048         (WebCore):
2049         (WebCore::TextureMapperNode::applyOpacityAnimation):
2050         (WebCore::solveEpsilon):
2051         (WebCore::solveCubicBezierFunction):
2052         (WebCore::solveStepsFunction):
2053         (WebCore::applyTimingFunction):
2054         (WebCore::TextureMapperNode::applyTransformAnimation):
2055         (WebCore::TextureMapperNode::applyAnimationFrame):
2056         (WebCore::TextureMapperNode::applyAnimation):
2057         (WebCore::TextureMapperNode::hasOpacityAnimation):
2058         (WebCore::TextureMapperNode::hasTransformAnimation):
2059         (WebCore::TextureMapperNode::syncAnimations):
2060         (WebCore::TextureMapperNode::syncAnimationsRecursively):
2061         (WebCore::TextureMapperNode::syncCompositingState):
2062         (WebCore::TextureMapperAnimation::TextureMapperAnimation):
2063         * platform/graphics/texmap/TextureMapperNode.h:
2064         (TextureMapperAnimation):
2065         (WebCore::TextureMapperAnimation::create):
2066         (WebCore):
2067         (TextureMapperNode):
2068
2069 2012-01-25  Kenichi Ishibashi  <bashi@chromium.org>
2070
2071         fast/text/unicode-variation-selector.html doesn't pass on Lion
2072         https://bugs.webkit.org/show_bug.cgi?id=76041
2073
2074         Reviewed by Dan Bernstein.
2075
2076         Consumes non-BMP marks in advanceByCombiningCharacterSequence() to take into
2077         account Ideographic variation selectors (these are non-BMP marks).
2078
2079         No new tests. fast/text/unicode-variation-selector.html should pass on Lion.
2080
2081         * platform/graphics/mac/ComplexTextController.cpp:
2082         (WebCore::advanceByCombiningCharacterSequence): Use Unicode code point
2083         to iterate the loop which consumes marks.
2084
2085 2012-01-25  Ilya Tikhonovsky  <loislo@chromium.org>
2086
2087         Web Inspector: DetailedHeapSnapshot: adjust node name cell format for the retainers tree.
2088         https://bugs.webkit.org/show_bug.cgi?id=76989
2089
2090         Reviewed by Pavel Feldman.
2091
2092         * English.lproj/localizedStrings.js:
2093         * inspector/front-end/DetailedHeapshotGridNodes.js:
2094         (WebInspector.HeapSnapshotGenericObjectNode.prototype._createObjectCell):
2095         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
2096         (WebInspector.HeapSnapshotObjectNode):
2097         (WebInspector.HeapSnapshotObjectNode.prototype._prefixObjectCell):
2098         (WebInspector.HeapSnapshotObjectNode.prototype._postfixObjectCell):
2099         * inspector/front-end/HeapSnapshot.js:
2100         (WebInspector.HeapSnapshotEdgesProvider.prototype._serialize):
2101
2102 2012-01-25  Vsevolod Vlasov  <vsevik@chromium.org>
2103
2104         Web Inspector: [InspectorIndexedDB] Pass Database, object stores and indexes meta information to frontend.
2105         https://bugs.webkit.org/show_bug.cgi?id=76711
2106
2107         Reviewed by Yury Semikhatsky.
2108
2109         * inspector/Inspector.json:
2110         * inspector/InspectorIndexedDBAgent.cpp:
2111         (WebCore):
2112         (WebCore::assertDocument):
2113         (WebCore::assertIDBFactory):
2114         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
2115         (WebCore::InspectorIndexedDBAgent::requestDatabase):
2116         * inspector/InspectorIndexedDBAgent.h:
2117         (InspectorIndexedDBAgent):
2118         * inspector/front-end/IndexedDBModel.js:
2119         (WebInspector.IndexedDBModel):
2120         (WebInspector.IndexedDBModel.prototype._frameDetached):
2121         (WebInspector.IndexedDBModel.prototype._reset):
2122         (WebInspector.IndexedDBModel.prototype._originAddedToFrame):
2123         (WebInspector.IndexedDBModel.prototype._originRemovedFromFrame):
2124         (WebInspector.IndexedDBModel.prototype._originRemoved):
2125         (WebInspector.IndexedDBModel.prototype._updateOriginDatabaseNames):
2126         (WebInspector.IndexedDBModel.prototype._databaseRemoved):
2127         (WebInspector.IndexedDBModel.prototype._loadDatabaseNamesForFrame):
2128         (WebInspector.IndexedDBModel.prototype._loadDatabase):
2129         (WebInspector.IndexedDBModel.Frame):
2130         (WebInspector.IndexedDBModel.Database):
2131         (WebInspector.IndexedDBModel.ObjectStore):
2132         (WebInspector.IndexedDBModel.ObjectStoreIndex):
2133         (WebInspector.IndexedDBRequestManager.prototype._databaseNamesLoaded):
2134         (WebInspector.IndexedDBRequestManager.prototype.requestDatabase.innerCallback):
2135         (WebInspector.IndexedDBRequestManager.prototype.requestDatabase):
2136         (WebInspector.IndexedDBRequestManager.prototype._databaseLoaded):
2137         (WebInspector.IndexedDBRequestManager.prototype._frameDetached):
2138         (WebInspector.IndexedDBRequestManager.prototype._databaseRemoved):
2139         (WebInspector.IndexedDBRequestManager.prototype._reset):
2140         (WebInspector.IndexedDBRequestManager.DatabaseRequest):
2141         (WebInspector.IndexedDBDispatcher.prototype.databaseNamesLoaded):
2142         (WebInspector.IndexedDBDispatcher.prototype.databaseLoaded):
2143
2144 2012-01-25  Peter Rybin  <peter.rybin@gmail.com>
2145
2146         Web Inspector: CodeGeneratorInspector.py: add optional runtime validator
2147         https://bugs.webkit.org/show_bug.cgi?id=76676
2148
2149         Reviewed by Yury Semikhatsky.
2150
2151         Generator algorithm is redone significantly.
2152
2153         * inspector/CodeGeneratorInspector.py:
2154         (RawTypes.BaseType):
2155         (RawTypes.BaseType.request_raw_internal_runtime_cast):
2156         (RawTypes.BaseType.generate_validate_method_impl):
2157         (RawTypes):
2158         (RawTypes.generate_validate_methods):
2159         (RawTypes.String):
2160         (RawTypes.String.generate_validate_method):
2161         (RawTypes.String.get_raw_validator_call_text):
2162         (RawTypes.Int):
2163         (RawTypes.Int.generate_validate_method):
2164         (RawTypes.Int.get_raw_validator_call_text):
2165         (RawTypes.Number):
2166         (RawTypes.Number.generate_validate_method):
2167         (RawTypes.Number.get_raw_validator_call_text):
2168         (RawTypes.Bool):
2169         (RawTypes.Bool.generate_validate_method):
2170         (RawTypes.Bool.get_raw_validator_call_text):
2171         (RawTypes.Object):
2172         (RawTypes.Object.generate_validate_method):
2173         (RawTypes.Object.get_raw_validator_call_text):
2174         (RawTypes.Any):
2175         (RawTypes.Any.generate_validate_method):
2176         (RawTypes.Any.get_raw_validator_call_text):
2177         (RawTypes.Array):
2178         (RawTypes.Array.generate_validate_method):
2179         (RawTypes.Array.get_raw_validator_call_text):
2180         (TypeBindings.create_named_type_declaration.Helper):
2181         (TypeBindings.create_ad_hoc_type_declaration.Helper):
2182         (TypeBindings.create_type_declaration_.EnumBinding):
2183         (TypeBindings.create_type_declaration_.EnumBinding.resolve_inner):
2184         (TypeBindings.create_type_declaration_.EnumBinding.request_user_runtime_cast):
2185         (TypeBindings.create_type_declaration_.EnumBinding.request_internal_runtime_cast):
2186         (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator):
2187         (TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
2188         (TypeBindings.create_type_declaration_.EnumBinding.get_validator_call_text):
2189         (TypeBindings.create_type_declaration_.EnumBinding.get_in_c_type_text):
2190         (TypeBindings.create_type_declaration_.PlainString):
2191         (TypeBindings.create_type_declaration_.PlainString.resolve_inner):
2192         (TypeBindings.create_type_declaration_.PlainString.request_user_runtime_cast):
2193         (TypeBindings.create_type_declaration_.PlainString.request_internal_runtime_cast):
2194         (TypeBindings.create_type_declaration_.PlainString.get_validator_call_text):
2195         (TypeBindings.create_type_declaration_.TypedefString):
2196         (TypeBindings.create_type_declaration_.TypedefString.resolve_inner):
2197         (TypeBindings.create_type_declaration_.TypedefString.request_user_runtime_cast):
2198         (TypeBindings.create_type_declaration_.TypedefString.request_internal_runtime_cast):
2199         (TypeBindings.create_type_declaration_.TypedefString.get_code_generator.CodeGenerator.generate_type_builder):
2200         (TypeBindings.create_type_declaration_.TypedefString.get_validator_call_text):
2201         (TypeBindings.create_type_declaration_.TypedefString.get_in_c_type_text):
2202         (TypeBindings.create_type_declaration_.ClassBinding):
2203         (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner):
2204         (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner.PropertyData):
2205         (TypeBindings.create_type_declaration_.ClassBinding.resolve_inner.ResolveData):
2206         (TypeBindings.create_type_declaration_.ClassBinding.request_user_runtime_cast):
2207         (TypeBindings.create_type_declaration_.ClassBinding.request_internal_runtime_cast):
2208         (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator):
2209         (TypeBindings.create_type_declaration_.ClassBinding.get_code_generator.CodeGenerator.generate_type_builder):
2210         (get_validator_call_text):
2211         (get_in_c_type_text):
2212         (AdHocTypeContextImpl):
2213         (AdHocTypeContextImpl.__init__):
2214         (AdHocTypeContextImpl.get_type_name_fix):
2215         (AdHocTypeContextImpl.get_type_name_fix.NameFix):
2216         (AdHocTypeContextImpl.get_type_name_fix.NameFix.output_comment):
2217         (AdHocTypeContextImpl.add_type):
2218         (PlainObjectBinding):
2219         (PlainObjectBinding.resolve_inner):
2220         (PlainObjectBinding.request_user_runtime_cast):
2221         (PlainObjectBinding.request_internal_runtime_cast):
2222         (PlainObjectBinding.get_validator_call_text):
2223         (ArrayBinding):
2224         (ArrayBinding.resolve_inner):
2225         (ArrayBinding.resolve_inner.AdHocTypeContext):
2226         (ArrayBinding.resolve_inner.AdHocTypeContext.get_type_name_fix):
2227         (ArrayBinding.resolve_inner.AdHocTypeContext.get_type_name_fix.NameFix):
2228         (ArrayBinding.resolve_inner.AdHocTypeContext.get_type_name_fix.NameFix.output_comment):
2229         (ArrayBinding.resolve_inner.AdHocTypeContext.add_type):
2230         (ArrayBinding.resolve_inner.ResolveData):
2231         (ArrayBinding.request_user_runtime_cast):
2232         (ArrayBinding.request_internal_runtime_cast):
2233         (ArrayBinding.get_code_generator):
2234         (ArrayBinding.get_code_generator.CodeGenerator.generate_type_builder):
2235         (ArrayBinding.get_validator_call_text):
2236         (ArrayBinding.get_in_c_type_text):
2237         (RawTypeBinding.resolve_inner):
2238         (RawTypeBinding):
2239         (RawTypeBinding.request_user_runtime_cast):
2240         (RawTypeBinding.request_internal_runtime_cast):
2241         (RawTypeBinding.get_validator_call_text):
2242         (TypeData.get_name):
2243         (TypeData):
2244         (TypeData.get_domain_name):
2245         (resolve_param_type):
2246         (NeedRuntimeCastRequest):
2247         (NeedRuntimeCastRequest.__init__):
2248         (NeedRuntimeCastRequest.acknowledge):
2249         (NeedRuntimeCastRequest.is_acknowledged):
2250         (resolve_all_types):
2251         (resolve_all_types.ForwardListener):
2252         (resolve_all_types.ForwardListener.add_type_data):
2253         (resolve_all_types.ResolveContext):
2254         (Generator):
2255         (Generator.go):
2256         (Generator.process_event):
2257         (Generator.process_event.AdHocTypeContext):
2258         (Generator.process_event.AdHocTypeContext.add_type):
2259         (Generator.process_event.EventForwardListener):
2260         (Generator.process_event.EventForwardListener.add_type_data):
2261         (Generator.process_event.EventResolveContext):
2262         (Generator.process_event.EventGenerateContext):
2263         (Generator.process_types.GenerateContext):
2264         (Generator.process_types.create_type_builder_caller.call_type_builder):
2265         (Generator.process_types.generate_forward_callback):
2266         * inspector/InspectorValues.h:
2267         (WebCore::InspectorObject::size):
2268
2269 2012-01-25  Anton Muhin  <antonm@chromium.org>
2270
2271         Unreview manual revert of r105843.
2272
2273         * fileapi/EntryBase.cpp:
2274         (WebCore::EntryBase::toURL):
2275         * page/SecurityOrigin.cpp:
2276         (WebCore::extractInnerURL):
2277         * platform/KURL.h:
2278         (KURL):
2279         * platform/KURLGoogle.cpp:
2280         (WebCore):
2281         (WebCore::KURLGooglePrivate::setUtf8):
2282         (WebCore::KURLGooglePrivate::setAscii):
2283         (WebCore::KURLGooglePrivate::initProtocolIsInHTTPFamily):
2284         (WebCore::KURLGooglePrivate::copyTo):
2285         (WebCore::encodeWithURLEscapeSequences):
2286         * platform/KURLGooglePrivate.h:
2287         (KURLGooglePrivate):
2288
2289 2012-01-25  Noel Gordon  <noel.gordon@gmail.com>
2290
2291         Use maximum image dimension definition from libwebp
2292         https://bugs.webkit.org/show_bug.cgi?id=76980
2293
2294         Reviewed by Kent Tamura.
2295
2296         No new tests, no change in behavior.
2297
2298         * platform/image-encoders/skia/WEBPImageEncoder.cpp:
2299         (WebCore::encodePixels): s/WEBP_MAX_DIMENSION/WEBPImageEncoder::MaximumImageDimension/
2300         * platform/image-encoders/skia/WEBPImageEncoder.h:
2301         (): Remove local definition of the maximum webp image dimension
2302
2303 2012-01-25  Noel Gordon  <noel.gordon@gmail.com>
2304
2305         JPEGDecoder should use imageDecoder colorProfile helpers
2306         https://bugs.webkit.org/show_bug.cgi?id=76968
2307         
2308         Reviewed by Adam Barth.
2309
2310         No new tests. Cover by existing tests, in particular:
2311           fast/images/ycbcr-with-cmyk-color-profile.html
2312           fast/images/gray-scale-jpeg-with-color-profile.html
2313           fast/images/cmyk-jpeg-with-color-profile.html
2314           fast/images/color-jpeg-with-color-profile.html
2315
2316         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: white-space removals via Xcode.
2317         (WebCore::readColorProfile):  Use ImageDecoder.h color profile helper routines.
2318         (WebCore::JPEGImageReader::JPEGImageReader):
2319         (WebCore::JPEGImageReader::decode):
2320
2321 2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
2322
2323         [Texmap] Divide TextureMapperNode.cpp to 3 files.
2324         https://bugs.webkit.org/show_bug.cgi?id=76660
2325
2326         Reviewed by Kenneth Rohde Christiansen.
2327
2328         Split the animation part of TextureMapperNode out to a separate file, called
2329         TextureMapperAnimation.
2330         Provide a clean interface for that class, that allows separating the internals of the scene
2331         painting from the internals of the animation interpolation.
2332
2333         No new tests. Existing animation tests cover this.
2334
2335         * GNUmakefile.list.am: Added new TextureMapper-related files.
2336         * Target.pri: Added new TextureMapper-related files.
2337         * WebCore.gypi: Added new TextureMapper-related files.
2338         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2339         (WebCore::GraphicsLayerTextureMapper::addAnimation):
2340         (WebCore::GraphicsLayerTextureMapper::pauseAnimation):
2341         (WebCore::GraphicsLayerTextureMapper::removeAnimation):
2342         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
2343         * platform/graphics/texmap/TextureMapperAnimation.cpp: Added.
2344         * platform/graphics/texmap/TextureMapperAnimation.h: Added.
2345         * platform/graphics/texmap/TextureMapperNode.cpp:
2346         (WebCore::TextureMapperNode::syncCompositingStateSelf):
2347         (WebCore::TextureMapperNode::descendantsOrSelfHaveRunningAnimations):
2348         (WebCore::TextureMapperNode::syncAnimations):
2349         (WebCore::TextureMapperNode::syncAnimationsRecursively):
2350         (WebCore::TextureMapperNode::syncCompositingState):
2351         * platform/graphics/texmap/TextureMapperNode.h:
2352
2353 2012-01-25  Roland Steiner  <rolandsteiner@chromium.org>
2354
2355         <style scoped>: Implement registering of <style scoped> with the scoping element
2356         https://bugs.webkit.org/show_bug.cgi?id=67790
2357
2358         Implement registering of a <style> element with its parent element if the 'scoped' attribute is set.
2359         Update the registration whenever the 'scoped' attribute is changed,
2360         or the <style> element eneters or leaves the tree.
2361
2362         Also, extend windows.internals to allow for testing of the registration ref-counting.
2363
2364         Reviewed by Dimitri Glazkov.
2365
2366         Test: fast/css/style-scoped/registering.html
2367
2368         * WebCore.exp.in:
2369         * dom/Element.cpp:
2370         (WebCore::Element::hasScopedHTMLStyleChild):
2371         (WebCore::Element::numberOfScopedHTMLStyleChildren):
2372         (WebCore::Element::registerScopedHTMLStyleChild):
2373         (WebCore::Element::unregisterScopedHTMLStyleChild):
2374         * dom/Element.h:
2375         * dom/ElementRareData.h:
2376         (WebCore::ElementRareData::ElementRareData):
2377         (WebCore::ElementRareData::registerScopedHTMLStyleChild):
2378         (WebCore::ElementRareData::unregisterScopedHTMLStyleChild):
2379         (WebCore::ElementRareData::hasScopedHTMLStyleChild):
2380         (WebCore::ElementRareData::numberOfScopedHTMLStyleChildren):
2381         * html/HTMLStyleElement.cpp:
2382         (WebCore::HTMLStyleElement::HTMLStyleElement):
2383         (WebCore::HTMLStyleElement::~HTMLStyleElement):
2384         (WebCore::HTMLStyleElement::parseMappedAttribute):
2385         (WebCore::HTMLStyleElement::registerWithScopingNode):
2386         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
2387         (WebCore::HTMLStyleElement::insertedIntoDocument):
2388         (WebCore::HTMLStyleElement::removedFromDocument):
2389         (WebCore::HTMLStyleElement::willRemove):
2390         * html/HTMLStyleElement.h:
2391         * testing/Internals.cpp:
2392         (WebCore::Internals::numberOfScopedHTMLStyleChildren):
2393         * testing/Internals.h:
2394         * testing/Internals.idl:
2395
2396 2012-01-24  Daniel Bates  <dbates@webkit.org>
2397
2398         Attempt to fix Mac build after changeset <http://trac.webkit.org/changeset/105843>
2399         (https://bugs.webkit.org/show_bug.cgi?id=75049)
2400
2401         Don't include NotImplemented.h in KURL.h since NotImplemented.h includes Logging.h, which defines
2402         LOG_CHANNEL_PREFIX to be "Log". And this conflicts with the inclusion of WebKitLogging.h in
2403         WebHTMLView.mm (which would have defined LOG_CHANNEL_PREFIX to be "WebKitLog").
2404
2405         * platform/KURL.h:
2406         (WebCore::KURL::innerURL):
2407
2408 2012-01-24  Vangelis Kokkevis  <vangelis@chromium.org>
2409
2410         [chromium] Ignore m_skipsDraw in TiledLayerChromium::drawsContent()
2411         https://bugs.webkit.org/show_bug.cgi?id=76735
2412
2413         This is to add skipped layers to their RenderSurface's layer list so that they
2414         are considered in the next update. Without this change, m_skipsDraw = false sticks
2415         with the layer for the remainder of its lifetime.
2416
2417         Reviewed by James Robinson.
2418
2419         Tests: Unit test (TiledLayerChromiumTest.cpp)
2420
2421         * platform/graphics/chromium/TiledLayerChromium.cpp:
2422         (WebCore::TiledLayerChromium::drawsContent):
2423         * platform/graphics/chromium/TiledLayerChromium.h:
2424         (WebCore::TiledLayerChromium::skipsDraw):
2425
2426 2012-01-24  Kentaro Hara  <haraken@chromium.org>
2427
2428         Invalidate r105697, r105766, r105809 and r105805
2429         https://bugs.webkit.org/show_bug.cgi?id=76970
2430
2431         Reviewed by Adam Barth.
2432
2433         I've been trying to stop rebuilding .h/.cpp files generated by
2434         unchanged IDLs (bug 76836), but the approach was wrong.
2435         This patch invalidates patches committed in r105697, r105766,
2436         r105809 and r105805.
2437
2438         In r105697, r105766, r105809 and r105805, I modified CodeGenerator*.pm
2439         so that they overwrite .h/.cpp files only when the bytes differ.
2440         By this fix, we were able to stop rebuilding .h/.cpp files that are not
2441         changed. However, the fix has made generate-bindings.pl run for almost
2442         all IDLs every time. The reason is as follows:
2443
2444         (0) Assume that there are A.idl, B.idl and C.idl.
2445
2446         (1) Modify A.idl.
2447         (2) First build.
2448         (3) supplemental_dependency.tmp is updated.
2449         (4) generate-bindings.pl runs for A.idl, B.idl and C.idl.
2450         (5) A.h and A.cpp are updated. B.h, B.cpp, C.h and C.cpp are not updated.
2451
2452         (6) Second build.
2453         (7) Since B.h, B.cpp, C.h and C.cpp are older than supplemental_dependency.tmp, generate-bindings.pl runs for B.idl and C.idl.
2454         (8) B.h, B.cpp, C.h and C.cpp are not updated.
2455
2456         (9) Third build.
2457         (10) Since B.h, B.cpp, C.h and C.cpp are older than supplemental_dependency.tmp, generate-bindings.pl runs for B.idl and C.idl.
2458         (11) B.h, B.cpp, C.h and C.cpp are not updated.
2459         ...
2460
2461         We should fix the bug somehow, but how to fix it is not obvious.
2462         For the time being, this patch invalidates r105697, r105766, r105809
2463         and r105805.
2464
2465         No tests. No change in behavior.
2466
2467         * bindings/scripts/CodeGenerator.pm:
2468         (UpdateFile):
2469         * bindings/scripts/CodeGeneratorCPP.pm:
2470         (WriteData):
2471         * bindings/scripts/CodeGeneratorJS.pm:
2472         (WriteData):
2473         * bindings/scripts/CodeGeneratorObjC.pm:
2474         (WriteData):
2475         * bindings/scripts/CodeGeneratorV8.pm:
2476         (WriteData):
2477
2478 2012-01-24  Eric Uhrhane  <ericu@chromium.org>
2479
2480         Add full support for filesystem URLs.
2481         https://bugs.webkit.org/show_bug.cgi?id=75049
2482
2483         Reviewed by Adam Barth.
2484
2485         No new tests; existing layout tests cover the basic functionality, and
2486         the new functionality won't be there until Chromium adds it.  This patch
2487         merely enables that, without changing behavior.
2488
2489         * fileapi/EntryBase.cpp:
2490         (WebCore::EntryBase::toURL): Add missing escaping of URL path.
2491
2492         * page/SecurityOrigin.cpp:
2493         (WebCore::extractInnerURL): Use innerURL member, if it's populated.
2494
2495         * platform/KURL.h:
2496         (WebCore::KURL::innerURL): Add innerURL member.
2497
2498         * platform/KURLGoogle.cpp:
2499         (WebCore::KURLGooglePrivate::KURLGooglePrivate):
2500         (WebCore::KURLGooglePrivate::operator=):
2501         Add copy constructor and operator=, which are now needed since
2502         m_innerURL needs special handling.
2503         (WebCore::KURLGooglePrivate::setUtf8):
2504         (WebCore::KURLGooglePrivate::setAscii):
2505         Add calls to initInnerURL.
2506         (WebCore::KURLGooglePrivate::initInnerURL):
2507         Add method to init/copy m_innerURL.
2508         (WebCore::KURLGooglePrivate::copyTo):
2509         Handle m_innerURL during copies.
2510         (WebCore::encodeWithURLEscapeSequences):
2511         Unescape %2F ['/'] in paths; it's much more readable, and it's safe.
2512
2513         * platform/KURLGooglePrivate.h:
2514         (WebCore::KURLGooglePrivate::innerURL): Add accessor for new m_innerURL.
2515
2516 2012-01-24  Ken Buchanan  <kenrb@chromium.org>
2517
2518         Crash in updateFirstLetter() from unnecessary anonymous block
2519         https://bugs.webkit.org/show_bug.cgi?id=72675
2520
2521         Reviewed by David Hyatt.
2522
2523         There was a problem with anonymous blocks not getting removed when
2524         their only block flow siblings are removed if they also have non-block
2525         flow first-letter siblings (i.e. floats). This patch modifies
2526         RenderBlock::removeChild() to look for this situation and strip out
2527         unnecessary anonymous container blocks if it occurs.
2528
2529         * rendering/RenderBlock.cpp:
2530         (WebCore::RenderBlock::removeChild):
2531         (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
2532         * rendering/RenderBlock.h:
2533         (WebCore::RenderBlock::collapseAnonymousBoxChild): Added
2534
2535 2012-01-24  Daniel Cheng  <dcheng@chromium.org>
2536
2537         [chromium] event.dataTransfer.types should not return "Text" or "URL"
2538         https://bugs.webkit.org/show_bug.cgi?id=76218
2539
2540         Per the spec, "Text" and "URL" are special values handled for IE compatibility reasons in
2541         dataTransfer.setData() and dataTransfer.getData(). These values should not be exposed
2542         elsewhere.
2543
2544         Reviewed by Tony Chang.
2545
2546         Test: fast/events/dropzone-005.html
2547
2548         * platform/chromium/ChromiumDataObject.cpp:
2549         (WebCore::ChromiumDataObject::types):
2550         (WebCore::ChromiumDataObject::getData):
2551         * platform/chromium/DragDataChromium.cpp:
2552         (WebCore::DragData::containsURL):
2553         (WebCore::DragData::asURL):
2554         (WebCore::DragData::canSmartReplace):
2555
2556 2012-01-24  Daniel Cheng  <dcheng@chromium.org>
2557
2558         Make DataTransferItemList::length() const.
2559         https://bugs.webkit.org/show_bug.cgi?id=76946
2560
2561         Just a const-correctness change.
2562
2563         Reviewed by Tony Chang.
2564
2565         No new tests since no functionality changed.
2566
2567         * dom/DataTransferItemList.h:
2568         (DataTransferItemList):
2569         * platform/chromium/DataTransferItemListChromium.cpp:
2570         (WebCore::DataTransferItemListChromium::length):
2571         * platform/chromium/DataTransferItemListChromium.h:
2572         (DataTransferItemListChromium):
2573         * platform/qt/DataTransferItemListQt.cpp:
2574         (WebCore::DataTransferItemListQt::length):
2575         * platform/qt/DataTransferItemListQt.h:
2576         (DataTransferItemListQt):
2577
2578 2012-01-24  Tony Chang  <tony@chromium.org>
2579
2580         REGRESSION(r103245): can't scroll left/up using scrollbar controls of overflowing elements
2581         https://bugs.webkit.org/show_bug.cgi?id=76317
2582
2583         Reviewed by Darin Adler.
2584
2585         Test: scrollbars/scroll-rtl-or-bt-layer.html
2586
2587         * rendering/RenderLayer.cpp:
2588         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Call scrollToOffsetWithoutAnimation since we're always
2589         scrolling to the just computed offset.
2590
2591 2012-01-24  Mark Rowe  <mrowe@apple.com>
2592
2593         Fix all of the builds after r105812.
2594
2595         * loader/EmptyClients.h: Move the #include in to the correct #if.
2596
2597 2012-01-24  Dmitry Lomov  <dslomov@google.com>
2598
2599         [Chromium][V8] DOMWindow::postMessage crashes if window disassociated with frame.
2600         https://bugs.webkit.org/show_bug.cgi?id=76944.
2601
2602         Reviewed by David Levin.
2603
2604         * bindings/v8/V8Proxy.cpp:
2605         (WebCore::V8Proxy::retrieveWindowForCallingContext):
2606         * bindings/v8/V8Proxy.h:
2607         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2608         (WebCore::handlePostMessageCallback):
2609
2610 2012-01-24  Geoffrey Garen  <ggaren@apple.com>
2611
2612         Updated bindings test expectations after my last patch.
2613
2614         Not reviewed.
2615
2616         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2617         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
2618         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2619         (WebCore::JSTestEventConstructorConstructor::constructJSTestEventConstructor):
2620         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2621         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
2622         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
2623         * bindings/scripts/test/JS/JSTestInterface.cpp:
2624         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
2625         (WebCore::setJSTestInterfaceSupplementalStr2):
2626         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
2627         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2628         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
2629         * bindings/scripts/test/JS/JSTestObj.cpp:
2630         (WebCore::setJSTestObjStringAttr):
2631         (WebCore::setJSTestObjStringAttrWithGetterException):
2632         (WebCore::setJSTestObjStringAttrWithSetterException):
2633         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
2634         (WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
2635         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
2636         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
2637         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
2638         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
2639         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
2640         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
2641         (WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
2642         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
2643         * bindings/scripts/test/JS/JSTestOverridingNameGetter.cpp:
2644         (WebCore::jsTestOverridingNameGetterPrototypeFunctionAnotherFunction):
2645         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2646         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
2647
2648 2012-01-24  Greg Billock  <gbillock@google.com>
2649
2650         Change dispatchIntent API to pure virtual in FrameLoaderClient.
2651
2652         The Windows compiler needs this to deal with the forward declaration
2653         of WebCore::IntentRequest.
2654         https://bugs.webkit.org/show_bug.cgi?id=76940
2655
2656         Reviewed by Adam Barth.
2657
2658         * loader/EmptyClients.h:
2659         (WebCore::EmptyFrameLoaderClient::dispatchIntent):
2660         * loader/FrameLoaderClient.h:
2661
2662 2012-01-24  Kentaro Hara  <haraken@chromium.org>
2663
2664         CodeGeneratorJS.pm should overwrite the output .h/.cpp
2665         only if the bytes differ
2666         https://bugs.webkit.org/show_bug.cgi?id=76922
2667
2668         Reviewed by Darin Adler.
2669
2670         This is one of steps to stop rebuilding .h/.cpp files
2671         generated by unchanged IDLs (bug 76836).
2672         This patch makes a change on CodeGeneratorJS.pm so that
2673         it overwrites the output .h/.cpp only if the bytes differ.
2674
2675         No tests. No change in behavior.
2676         I manually confirmed that when I add a new attribute to Element.idl,
2677         the time-stamps of unrelated JS*.h and JS*.cpp do not change.
2678
2679         * bindings/scripts/CodeGeneratorJS.pm:
2680         (WriteData): Used UpdateFileIfChanged().
2681
2682 2012-01-24  Kentaro Hara  <haraken@chromium.org>
2683
2684         CodeGeneratorCPP.pm should overwrite the output .h/.cpp
2685         only if the bytes differ
2686         https://bugs.webkit.org/show_bug.cgi?id=76926
2687
2688         Reviewed by Adam Barth.
2689
2690         This is one of steps to stop rebuilding .h/.cpp files
2691         generated by unchanged IDLs (bug 76836).
2692         This patch makes a change on CodeGeneratorCPP.pm so that
2693         it overwrites the output .h/.cpp only if the bytes differ.
2694
2695         No tests. No change in behavior.
2696         Manually confirm that when you add a new attribute to Element.idl,
2697         the time-stamps of unrelated WebDOM*.h and WebDOM*.cpp do not change.
2698
2699         * bindings/scripts/CodeGeneratorCPP.pm:
2700         (WriteData): Used UpdateFileIfChanged().
2701
2702 2012-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>
2703
2704         Unreviewed, rolling out r105238.
2705         http://trac.webkit.org/changeset/105238
2706         https://bugs.webkit.org/show_bug.cgi?id=76943
2707
2708         Remove the assert text hack as it served its purpose.
2709         (Requested by dave_levin on #webkit).
2710
2711         * dom/ActiveDOMObject.cpp:
2712         (WebCore::ContextDestructionObserver::ContextDestructionObserver):
2713         (WebCore::ContextDestructionObserver::~ContextDestructionObserver):
2714         (WebCore::ActiveDOMObject::ActiveDOMObject):
2715         (WebCore::ActiveDOMObject::~ActiveDOMObject):
2716         * storage/DatabaseSync.cpp:
2717         (WebCore::DatabaseSync::openDatabaseSync):
2718         (WebCore::DatabaseSync::~DatabaseSync):
2719         (WebCore::DatabaseSync::changeVersion):
2720         (WebCore::DatabaseSync::runTransaction):
2721
2722 2012-01-24  Kentaro Hara  <haraken@chromium.org>
2723
2724         [Refactoring] In CodeGeneratorGObject.pm, merge
2725         GeneratePrivateHeader() into WriteData()
2726         https://bugs.webkit.org/show_bug.cgi?id=76923
2727
2728         Reviewed by Adam Barth.
2729
2730         This patch merges GeneratePrivateHeader() into WriteData(),
2731         so that all code to output .h/.cpp is managed by WriteData(),
2732         just like other CodeGenerator*.pm does.
2733
2734         No tests. No change in behavior.
2735         Confirm that GTK/GObject build passes.
2736
2737         * bindings/scripts/CodeGeneratorGObject.pm:
2738         (Generate):
2739         (WriteData): Copied GeneratePrivateHeader() to here.
2740         Removed $hasLegacyParen, $hasRealParent and $hasParent
2741         since they are not used.
2742         (GenerateInterface):
2743
2744 2012-01-24  Daniel Cheng  <dcheng@chromium.org>
2745
2746         dropzone does not normalize type strings
2747         https://bugs.webkit.org/show_bug.cgi?id=76925
2748
2749         Per the HTML spec, we are supposed to normalize types during dropzone processing by
2750         lowercasing them.
2751
2752         Reviewed by Tony Chang.
2753
2754         Tests: fast/events/dropzone-002.html
2755
2756         * dom/Clipboard.cpp:
2757         (WebCore::Clipboard::hasDropZoneType):
2758
2759 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
2760
2761         [GTK] Refactor GTK's accessibilitity code to be more modular
2762         https://bugs.webkit.org/show_bug.cgi?id=76783
2763
2764         Reviewed by Martin Robinson.
2765
2766         Don't expose functions for the ATK interfaces in header files.
2767
2768         Expose only the initialization function for each interface, and
2769         use the generic functions from ATK interfaces where needed.
2770
2771         * accessibility/gtk/WebKitAccessibleInterfaceAction.cpp:
2772         (webkitAccessibleActionDoAction): Made this function static.
2773         (webkitAccessibleActionGetNActions): Ditto.
2774         (webkitAccessibleActionGetDescription): Ditto.
2775         (webkitAccessibleActionGetKeybinding): Ditto.
2776         (webkitAccessibleActionGetName): Ditto.
2777         (webkitAccessibleActionInterfaceInit): Moved to the bottom.
2778         * accessibility/gtk/WebKitAccessibleInterfaceAction.h: Removed all
2779         functions but the one for initializing the interface from here.
2780
2781         * accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp:
2782         (webkitAccessibleComponentRefAccessibleAtPoint): Made this function static.
2783         (webkitAccessibleComponentGetExtents): Ditto.
2784         (webkitAccessibleComponentGrabFocus): Ditto.
2785         (webkitAccessibleComponentInterfaceInit): Moved to the bottom.
2786         * accessibility/gtk/WebKitAccessibleInterfaceComponent.h: Removed all
2787         functions but the one for initializing the interface from here.
2788
2789         * accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp:
2790         (webkitAccessibleDocumentGetAttributeValue): Made this function static.
2791         (webkitAccessibleDocumentGetAttributes): Ditto.
2792         (webkitAccessibleDocumentGetLocale): Ditto.
2793         (webkitAccessibleDocumentInterfaceInit): Moved to the bottom.
2794         * accessibility/gtk/WebKitAccessibleInterfaceDocument.h: Removed all
2795         functions but the one for initializing the interface from here.
2796
2797         * accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp:
2798         (webkitAccessibleEditableTextSetRunAttributes): Made this function static.
2799         (webkitAccessibleEditableTextSetTextContents): Ditto.
2800         (webkitAccessibleEditableTextInsertText): Ditto.
2801         (webkitAccessibleEditableTextCopyText): Ditto.
2802         (webkitAccessibleEditableTextCutText): Ditto.
2803         (webkitAccessibleEditableTextDeleteText): Ditto.
2804         (webkitAccessibleEditableTextPasteText): Ditto.
2805         (webkitAccessibleEditableTextInterfaceInit): Moved to the bottom.
2806         * accessibility/gtk/WebKitAccessibleInterfaceEditableText.h: Removed all
2807         functions but the one for initializing the interface from here.
2808
2809         * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
2810         (webkitAccessibleHyperlinkImplGetHyperlink): Made this function static.
2811         (webkitAccessibleHyperlinkImplInterfaceInit): Moved to the bottom.
2812         * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h: Removed all
2813         functions but the one for initializing the interface from here.
2814
2815         * accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp:
2816         (webkitAccessibleHypertextGetLink): Made this function static.
2817         (webkitAccessibleHypertextGetNLinks): Ditto.
2818         (webkitAccessibleHypertextGetLinkIndex): Ditto.
2819         (webkitAccessibleHypertextInterfaceInit): Moved to the bottom.
2820         * accessibility/gtk/WebKitAccessibleInterfaceHypertext.h: Removed all
2821         functions but the one for initializing the interface from here.
2822
2823         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
2824         (webkitAccessibleImageGetImagePosition): Made this function static.
2825         (webkitAccessibleImageGetImageDescription): Ditto.
2826         (webkitAccessibleImageGetImageSize): Ditto.
2827         (webkitAccessibleImageInterfaceInit): Moved to the bottom.
2828         * accessibility/gtk/WebKitAccessibleInterfaceImage.h: Removed all
2829         functions but the one for initializing the interface from here.
2830
2831         * accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp:
2832         (webkitAccessibleSelectionAddSelection): Made this function static.
2833         (webkitAccessibleSelectionClearSelection): Ditto.
2834         (webkitAccessibleSelectionRefSelection): Ditto.
2835         (webkitAccessibleSelectionGetSelectionCount): Ditto.
2836         (webkitAccessibleSelectionIsChildSelected): Ditto.
2837         (webkitAccessibleSelectionRemoveSelection): Ditto.
2838         (webkitAccessibleSelectionSelectAllSelection): Ditto.
2839         (webkitAccessibleSelectionInterfaceInit): Moved to the bottom.
2840         * accessibility/gtk/WebKitAccessibleInterfaceSelection.h: Removed all
2841         functions but the one for initializing the interface from here.
2842
2843         * accessibility/gtk/WebKitAccessibleInterfaceTable.cpp:
2844         (webkitAccessibleTableRefAt): Made this function static.
2845         (webkitAccessibleTableGetIndexAt): Ditto.
2846         (webkitAccessibleTableGetColumnAtIndex): Ditto.
2847         (webkitAccessibleTableGetRowAtIndex): Ditto.
2848         (webkitAccessibleTableGetNColumns): Ditto.
2849         (webkitAccessibleTableGetNRows): Ditto.
2850         (webkitAccessibleTableGetColumnExtentAt): Ditto.
2851         (webkitAccessibleTableGetRowExtentAt): Ditto.
2852         (webkitAccessibleTableGetColumnHeader): Ditto.
2853         (webkitAccessibleTableGetRowHeader): Ditto.
2854         (webkitAccessibleTableGetCaption): Ditto.
2855         (webkitAccessibleTableGetColumnDescription): Ditto.
2856         (webkitAccessibleTableGetRowDescription): Ditto.
2857         (webkitAccessibleTableInterfaceInit): Moved to the bottom.
2858         * accessibility/gtk/WebKitAccessibleInterfaceTable.h: Removed all
2859         functions but the one for initializing the interface from here.
2860
2861         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
2862         (textForRenderer): Made this function static.
2863         (textForObject): Ditto.
2864         (webkitAccessibleTextGetText): Ditto.
2865         (webkitAccessibleTextGetTextAfterOffset): Ditto.
2866         (webkitAccessibleTextGetTextAtOffset): Ditto.
2867         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
2868         (webkitAccessibleTextGetCharacterAtOffset): Ditto.
2869         (webkitAccessibleTextGetCaretOffset): Ditto.
2870         (webkitAccessibleTextGetRunAttributes): Ditto.
2871         (webkitAccessibleTextGetDefaultAttributes): Ditto.
2872         (webkitAccessibleTextGetCharacterExtents): Ditto.
2873         (webkitAccessibleTextGetRangeExtents): Ditto.
2874         (webkitAccessibleTextGetCharacterCount): Ditto.
2875         (webkitAccessibleTextGetOffsetAtPoint): Ditto.
2876         (webkitAccessibleTextGetNSelections): Ditto.
2877         (webkitAccessibleTextGetSelection): Ditto.
2878         (webkitAccessibleTextAddSelection): Ditto.
2879         (webkitAccessibleTextSetSelection): Ditto.
2880         (webkitAccessibleTextRemoveSelection): Ditto.
2881         (webkitAccessibleTextSetCaretOffset): Ditto.
2882         (webkitAccessibleTextInterfaceInit): Moved to the bottom.
2883         * accessibility/gtk/WebKitAccessibleInterfaceText.h: Removed all
2884         functions but the one for initializing the interface from here.
2885
2886         * accessibility/gtk/WebKitAccessibleInterfaceValue.cpp:
2887         (webkitAccessibleValueGetCurrentValue): Made this function static.
2888         (webkitAccessibleValueGetMaximumValue): Ditto.
2889         (webkitAccessibleValueGetMinimumValue): Ditto.
2890         (webkitAccessibleValueSetCurrentValue): Ditto.
2891         (webkitAccessibleValueGetMinimumIncrement): Ditto.
2892         (webkitAccessibleValueInterfaceInit): Moved to the bottom.
2893         * accessibility/gtk/WebKitAccessibleInterfaceValue.h: Removed all
2894         functions but the one for initializing the interface from here.
2895
2896         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
2897         (webkitAccessibleGetName): Replace call to
2898         webkitAccessibleTextGetText with atk_text_get_text.
2899
2900 2012-01-24  James Robinson  <jamesr@chromium.org>
2901
2902         [chromium] Add null check for ContentLayerChromium::m_delegate back to ContentLayerChromium::drawsContent()
2903         https://bugs.webkit.org/show_bug.cgi?id=76887
2904
2905         Reviewed by Dimitri Glazkov.
2906
2907         A ContentLayerChromium's m_delegate pointer is nulled out when its owning GraphicsLayerChromium is destroyed.
2908         It's possible in some circumstances for this to happen during painting. The null check for this pointer was
2909         erroneously removed from the base class TiledLayerChromium in r105460.
2910
2911         No new tests since we don't know how to reproduce this sort of layer mutation during paint (not for lack of
2912         trying!). Fix based on crash reports from the field.
2913
2914         * platform/graphics/chromium/ContentLayerChromium.cpp:
2915         (WebCore::ContentLayerChromium::drawsContent):
2916         * platform/graphics/chromium/ContentLayerChromium.h:
2917
2918 2012-01-16  Robert Hogan  <robert@webkit.org>
2919
2920         REGRESSION (r102040): Wrong column widths when row has colspan and unwrappable text
2921         https://bugs.webkit.org/show_bug.cgi?id=74874
2922
2923         Reviewed by Julien Chaffraix.
2924
2925         Tests: fast/css/min-width-with-spanned-cell-fixed.html
2926                fast/css/min-width-with-spanned-cell.html
2927
2928         A cell with unwrappable text must be as wide as the text is long. If it is a colspan in a table whose
2929         columns are all percent and the width of the span cell is wider than the cells it spans in any other 
2930         row then it will squeeze those cells beyond the width required to display their contents.
2931
2932         To fix this ensure that the squeezing of cells within a span respects the minimum width determined by
2933         their contents. The squeezing remains for fixed layout tables as per FF and Opera.
2934
2935         * rendering/AutoTableLayout.cpp:
2936         (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
2937
2938 2012-01-24  Tommy Widenflycht  <tommyw@google.com>
2939
2940         MediaStream API: Split the MediaStream track list into audio/video specific ones.
2941         https://bugs.webkit.org/show_bug.cgi?id=76614
2942
2943         The latest draft of the WebRTC standard have split the MediaStream combined track list
2944         into audio/video specific ones.
2945
2946         Reviewed by Darin Fisher.
2947
2948         Tests for the Media Stream API will be provided by the bug 56587, pending enough landed code.
2949
2950         * mediastream/LocalMediaStream.cpp:
2951         (WebCore::LocalMediaStream::create):
2952         (WebCore::LocalMediaStream::LocalMediaStream):
2953         * mediastream/LocalMediaStream.h:
2954         * mediastream/MediaStream.cpp:
2955         (WebCore::processTrackList):
2956         (WebCore::MediaStream::create):
2957         (WebCore::MediaStream::MediaStream):
2958         * mediastream/MediaStream.h:
2959         (WebCore::MediaStream::audioTracks):
2960         (WebCore::MediaStream::videoTracks):
2961         * mediastream/MediaStream.idl:
2962         * mediastream/MediaStreamTrack.cpp:
2963         (WebCore::MediaStreamTrack::create):
2964         (WebCore::MediaStreamTrack::MediaStreamTrack):
2965         (WebCore::MediaStreamTrack::kind):
2966         (WebCore::MediaStreamTrack::label):
2967         (WebCore::MediaStreamTrack::enabled):
2968         (WebCore::MediaStreamTrack::setEnabled):
2969         (WebCore::MediaStreamTrack::component):
2970         * mediastream/MediaStreamTrack.h:
2971         * mediastream/UserMediaClient.h:
2972         * mediastream/UserMediaRequest.cpp:
2973         (WebCore::UserMediaRequest::mediaStreamSourcesQueryCompleted):
2974         (WebCore::UserMediaRequest::succeed):
2975         * mediastream/UserMediaRequest.h:
2976         * platform/mediastream/MediaStreamCenter.cpp:
2977         (WebCore::MediaStreamCenter::queryMediaStreamSources):
2978         (WebCore::MediaStreamCenter::didSetMediaStreamTrackEnabled):
2979         * platform/mediastream/MediaStreamCenter.h:
2980         * platform/mediastream/MediaStreamDescriptor.h:
2981         (WebCore::MediaStreamDescriptor::create):
2982         (WebCore::MediaStreamDescriptor::numberOfAudioComponents):
2983         (WebCore::MediaStreamDescriptor::audioComponent):
2984         (WebCore::MediaStreamDescriptor::numberOfVideoComponents):
2985         (WebCore::MediaStreamDescriptor::videoComponent):
2986         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2987
2988 2012-01-24  Sheriff Bot  <webkit.review.bot@gmail.com>
2989
2990         Unreviewed, rolling out r105738.
2991         http://trac.webkit.org/changeset/105738
2992         https://bugs.webkit.org/show_bug.cgi?id=76930
2993
2994         caused fast/css/getComputedStyle/computed-style-border-
2995         image.html to crash (Requested by kling on #webkit).
2996
2997         * dom/NamedNodeMap.cpp:
2998         * dom/NamedNodeMap.h:
2999         * dom/StyledElement.cpp:
3000         (WebCore::StyledElement::updateStyleAttribute):
3001         (WebCore::StyledElement::createInlineStyleDecl):
3002         (WebCore::StyledElement::destroyInlineStyleDecl):
3003         (WebCore::StyledElement::ensureInlineStyleDecl):
3004         (WebCore::StyledElement::style):
3005         (WebCore::StyledElement::addSubresourceAttributeURLs):
3006         * dom/StyledElement.h:
3007         (WebCore::StyledElement::inlineStyleDecl):
3008
3009 2012-01-24  Parag Radke  <nrqv63@motorola.com>
3010
3011         REGRESSION (r73385): Marquee with behavior="alternate" is not working
3012         https://bugs.webkit.org/show_bug.cgi?id=64230
3013
3014         Reviewed by Simon Fraser.
3015
3016         This patch gives correct content width for marquee, which computes
3017         correct start position to scroll marquee.
3018
3019         Test: fast/html/marquee-alternate.html
3020
3021         * rendering/RenderBlock.cpp:
3022         (WebCore::RenderBlock::computePreferredLogicalWidths):
3023         We need(style()->marqueeBehavior() != MALTERNATE) check as we always need the marquee's 
3024         actual content width to compute the initial/end position in case of 'MALTERNATE'.
3025         So we need to calculate the logical width in Alternate case even if fixed width is specified
3026         as content has to animate between renderBox().right().x() - contentWidth() and 
3027         renderBox().left().x() + contentWidth().
3028         
3029         * rendering/RenderMarquee.cpp:
3030         (WebCore::RenderMarquee::computePosition):
3031         Using PreferredLogicalWidth in place of LayoutOverflow for calculating correct content width.
3032
3033 2012-01-24  Andreas Kling  <awesomekling@apple.com>
3034
3035         RenderInline: Skip caching the computed line height.
3036         <http://webkit.org/b/76929>
3037
3038         Reviewed by David Hyatt.
3039
3040         Stop caching the computed line height on RenderInline and make retrieving it from
3041         RenderStyle slightly cheaper, freeing up 4 bytes per RenderInline instance.
3042         This appears to be mostly performance neutral, I don't get more than the occasional
3043         sample hit when instrumenting heavier web pages.
3044
3045         This reduces memory consumption by 228 kB (both 32/64-bit) when viewing the full
3046         HTML5 spec at <http://whatwg.org/c>.
3047
3048         * rendering/RenderInline.cpp:
3049         (WebCore::RenderInline::RenderInline):
3050         (WebCore::RenderInline::styleDidChange):
3051         (WebCore::RenderInline::lineHeight):
3052         * rendering/RenderInline.h:
3053         * rendering/style/RenderStyle.h:
3054         (WebCore::RenderStyle::computedLineHeight):
3055
3056             Optimize computedLineHeight() to mitigate some of the damage of calling
3057             it more often.
3058
3059 2012-01-24  Abhishek Arya  <inferno@chromium.org>
3060
3061         Crash when rendering -webkit-column-span.
3062         https://bugs.webkit.org/show_bug.cgi?id=73265
3063
3064         Reviewed by David Hyatt.
3065
3066         This patch addresses 2 problems causing crashes in multi-column layout
3067         1. Trying to render -webkit-column-span for :before, :after caused
3068            re-entrancy in updateBeforeAfterContent while working on splitFlow.
3069         2. Cloning a block which has its :before, :after content not added yet,
3070            caused issues because cloneBlock will definitely have its :before,
3071            :after content created when setStyle() is called. So, we would
3072            overwrite cloneBlock with a wrong childrenInline value.
3073
3074         Tests: fast/multicol/clone-block-children-inline-mismatch-crash.html
3075                fast/multicol/span/generated-child-split-flow-crash.html
3076
3077         * rendering/RenderBlock.cpp:
3078         (WebCore::RenderBlock::clone):
3079         (WebCore::RenderBlock::columnsBlockForSpanningElement):
3080
3081 2012-01-22  Robert Hogan  <robert@webkit.org>
3082
3083         Incorrect positioning of floating pseudo-elements in table captions
3084         https://bugs.webkit.org/show_bug.cgi?id=76664
3085
3086         Reviewed by Julien Chaffraix.
3087
3088         Tests: fast/table/caption-encloses-overhanging-float-expected.html
3089                fast/table/caption-encloses-overhanging-float.html
3090
3091         Allow table captions to expand and enclose overhanging floats. When performing
3092         layout on a caption ensure that its logical top is set so that it does not mistakenly
3093         conclude that floats in a previous sibling are intruding into it when they're not.
3094
3095         Mostly diagnosed by Abhishek Arya.
3096
3097         * rendering/RenderBlock.cpp:
3098         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats): add table captions to the list
3099          that can enclosed overhanging floats.
3100         * rendering/RenderTable.cpp:
3101         (WebCore::RenderTable::layoutCaption): use the best available approximation of the caption's logical
3102          top offset before laying it out.
3103         (WebCore::RenderTable::layout):
3104         * rendering/RenderTable.h:
3105
3106 2012-01-24  Kentaro Hara  <haraken@chromium.org>
3107
3108         In CodeGeneratorV8.pm, overwrite the output .h/.cpp
3109         only if the bytes differ
3110         https://bugs.webkit.org/show_bug.cgi?id=76920
3111
3112         Reviewed by Darin Adler.
3113
3114         This is one of steps to stop rebuilding .h/.cpp files
3115         generated by unchanged IDLs (bug 76836).
3116         This patch makes a change on CodeGeneratorV8.pm so that
3117         it overwrites the output .h/.cpp only if the bytes differ.
3118
3119         No tests. No change in behavior.
3120         I manually confirmed that when I add a new attribute to Element.idl,
3121         the time-stamps of unrelated V8*.h and V8*.cpp do not change.
3122
3123         * bindings/scripts/CodeGeneratorV8.pm:
3124         (WriteData): Used UpdateFileIfChanged().
3125
3126 2012-01-24  Kentaro Hara  <haraken@chromium.org>
3127
3128         [Refactoring] Remove finish() from all CodeGenerator*.pm
3129         https://bugs.webkit.org/show_bug.cgi?id=76918
3130
3131         Reviewed by Darin Adler.
3132
3133         Now finish() is empty in all CodeGenerator*.pm. This patch removes them.
3134
3135         No tests. No change in behavior.
3136
3137         * bindings/scripts/CodeGenerator.pm:
3138         (ProcessDocument):
3139         * bindings/scripts/CodeGeneratorCPP.pm:
3140         * bindings/scripts/CodeGeneratorGObject.pm:
3141         * bindings/scripts/CodeGeneratorJS.pm:
3142         * bindings/scripts/CodeGeneratorObjC.pm:
3143         * bindings/scripts/CodeGeneratorV8.pm:
3144
3145 2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>
3146
3147         Web Inspector: incorrect highlight position when searching in console
3148         https://bugs.webkit.org/show_bug.cgi?id=76837
3149
3150         Reviewed by Yury Semikhatsky.
3151
3152         * inspector/front-end/ConsoleMessage.js:
3153         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
3154         (WebInspector.ConsoleMessageImpl.prototype.clearHighlight):
3155         (WebInspector.ConsoleMessageImpl.prototype.highlightSearchResults):
3156         (WebInspector.ConsoleMessageImpl.prototype._highlightSearchResultsInElement):
3157         (WebInspector.ConsoleMessageImpl.prototype.matchesRegex):
3158
3159 2012-01-23  Simon Fraser  <simon.fraser@apple.com>
3160
3161         Show layer borders for scrollbar layers
3162         https://bugs.webkit.org/show_bug.cgi?id=76888
3163
3164         Reviewed by Beth Dakin.
3165         
3166         When compositing layer borders are showing, show the borders
3167         for scrollbars layers. This reduces confusion about whether scrollbars
3168         are rendering into their own layers.
3169         
3170         Requires a new parameter to two GraphicsLayerClient methods.
3171
3172         * platform/graphics/GraphicsLayer.h:
3173         (WebCore::GraphicsLayer::showDebugBorders):
3174         (WebCore::GraphicsLayer::showRepaintCounter):
3175         * platform/graphics/GraphicsLayerClient.h:
3176         * rendering/RenderLayerBacking.cpp:
3177         (WebCore::RenderLayerBacking::showDebugBorders):
3178         (WebCore::RenderLayerBacking::showRepaintCounter):
3179         * rendering/RenderLayerBacking.h:
3180         * rendering/RenderLayerCompositor.cpp:
3181         (WebCore::RenderLayerCompositor::showDebugBorders):
3182         (WebCore::RenderLayerCompositor::showRepaintCounter):
3183         * rendering/RenderLayerCompositor.h:
3184
3185 2012-01-24  David Levin  <levin@chromium.org>
3186
3187         [windows] Convert usage of GetDC to HWndDC Part 3.
3188         https://bugs.webkit.org/show_bug.cgi?id=76889
3189
3190         Reviewed by Adam Roben.
3191
3192         No new functionality so no new tests.
3193
3194         * platform/graphics/win/UniscribeController.cpp:
3195         (WebCore::UniscribeController::shapeAndPlaceItem): Simple replacement.
3196         (WebCore::UniscribeController::shape): Use the delayed allocation.
3197         * platform/win/PopupMenuWin.cpp:
3198         (WebCore::PopupMenuWin::paint): Fix a dc leak and use the dellayed allocation.
3199
3200 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3201
3202         [GTK] Refactor GTK's accessibilitity code to be more modular
3203         https://bugs.webkit.org/show_bug.cgi?id=76783
3204
3205         Reviewed by Martin Robinson.
3206
3207         Fix coding style in the ATK AccessibilityObject wrapper.
3208
3209         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
3210         (webkitAccessibleGetName):
3211         (webkitAccessibleGetDescription):
3212         (webkitAccessibleGetParent):
3213         (webkitAccessibleGetNChildren):
3214         (webkitAccessibleRefChild):
3215         (webkitAccessibleGetIndexInParent):
3216         (webkitAccessibleGetAttributes):
3217         (atkRole):
3218         (webkitAccessibleGetRole):
3219         (setAtkStateSetFromCoreObject):
3220         (webkitAccessibleRefStateSet):
3221         (webkitAccessibleRefRelationSet):
3222         (webkitAccessibleInit):
3223         (webkitAccessibleFinalize):
3224         (webkit_accessible_class_init):
3225
3226 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3227
3228         [GTK] Refactor GTK's accessibilitity code to be more modular
3229         https://bugs.webkit.org/show_bug.cgi?id=76783
3230
3231         Reviewed by Martin Robinson.
3232
3233         Cleanup the list of includes in WebKitAccessibleWrapperAtk.cpp.
3234
3235         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Removes
3236         'include' lines that are no longer needed after the refactor.
3237
3238 2012-01-24  Raphael Kubo da Costa  <kubo@profusion.mobi>
3239
3240         [EFL] Remove CookieJarEfl.cpp
3241         https://bugs.webkit.org/show_bug.cgi?id=76916
3242
3243         Reviewed by Gustavo Noronha Silva.
3244
3245         CookieJarEfl.cpp has not been used for years -- we either need
3246         CookieJarCurl or CookieJarSoup depending on the chosen network
3247         backend.
3248
3249         No new tests, just an unused file being removed.
3250
3251         * WebCore.gypi: Remove reference to CookieJarEfl.cpp.
3252         * platform/efl/CookieJarEfl.cpp: Removed.
3253
3254 2012-01-24  Abhishek Arya  <inferno@chromium.org>
3255
3256         Crash when accessing removed parent in InlineTextBox.
3257         https://bugs.webkit.org/show_bug.cgi?id=72982
3258
3259         Reviewed by James Robinson.
3260
3261         The crash happens because:
3262         1. We add heading element(h1) before the span element(span1),
3263            causing splitflow on the anonymous block containing BeforeText,
3264            span1(and SpanText) and AfterText.
3265         2. span1 moves to the cloneBlock (continuation).
3266         3. Our anonymous block and cloneBlock are both marked for layout,
3267            however we still have a copy of our lineboxes with its childs
3268            as the textboxes belonging to SpanText.
3269         4. Our anonymous block only child BeforeText is getting removed,
3270            so we dont have any children anymore and we delete our lineboxes,
3271            leaving behind the children textboxes belonging to SpanText.
3272         5. SpanText is getting destroyed, so it tries to inform removed
3273            parent lineboxes causing the crash.
3274
3275         Test: fast/block/block-remove-child-delete-line-box-crash.html
3276
3277         * rendering/RenderBlock.cpp:
3278         (WebCore::RenderBlock::removeChild):
3279
3280 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3281
3282         [GTK] Refactor GTK's accessibilitity code to be more modular
3283         https://bugs.webkit.org/show_bug.cgi?id=76783
3284
3285         Reviewed by Martin Robinson.
3286
3287         New files for the implementation of the AtkTable interface,
3288         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3289
3290         * accessibility/gtk/WebKitAccessibleInterfaceTable.cpp: Added.
3291         (core):
3292         (cell):
3293         (cellIndex):
3294         (cellAtIndex):
3295         (webkitAccessibleTableInterfaceInit):
3296         (webkitAccessibleTableRefAt):
3297         (webkitAccessibleTableGetIndexAt):
3298         (webkitAccessibleTableGetColumnAtIndex):
3299         (webkitAccessibleTableGetRowAtIndex):
3300         (webkitAccessibleTableGetNColumns):
3301         (webkitAccessibleTableGetNRows):
3302         (webkitAccessibleTableGetColumnExtentAt):
3303         (webkitAccessibleTableGetRowExtentAt):
3304         (webkitAccessibleTableGetColumnHeader):
3305         (webkitAccessibleTableGetRowHeader):
3306         (webkitAccessibleTableGetCaption):
3307         (webkitAccessibleTableGetColumnDescription):
3308         (webkitAccessibleTableGetRowDescription):
3309         * accessibility/gtk/WebKitAccessibleInterfaceTable.h: Added.
3310         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3311         related to the implementation of the AtkTable interface.
3312
3313         Add new files to build files.
3314
3315         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceTable.[h|cpp].
3316         * WebCore.gypi: Ditto.
3317
3318 2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>
3319
3320         Web Inspector: Scripts panel tabbed editor container should have gray background when there are no open tabs.
3321         https://bugs.webkit.org/show_bug.cgi?id=76903
3322
3323         Reviewed by Yury Semikhatsky.
3324
3325         * inspector/front-end/TabbedPane.js:
3326         (WebInspector.TabbedPane.prototype._updateTabElements):
3327         * inspector/front-end/tabbedPane.css:
3328         (.tabbed-pane-content.has-no-tabs):
3329
3330 2012-01-24  Vsevolod Vlasov  <vsevik@chromium.org>
3331
3332         Web Inspector: OpenResourceDialog should work when there are no open tabs in scripts panel.
3333         https://bugs.webkit.org/show_bug.cgi?id=76907
3334
3335         Reviewed by Yury Semikhatsky.
3336
3337         * inspector/front-end/FilteredItemSelectionDialog.js:
3338         (WebInspector.OpenResourceDialog.install):
3339         * inspector/front-end/ScriptsPanel.js:
3340
3341 2012-01-24  Peter Rybin  <peter.rybin@gmail.com>
3342
3343         Web Inspector: CodeGeneratorInspector.py: put TypeBuilder namespace in a separate sources
3344         https://bugs.webkit.org/show_bug.cgi?id=76868
3345
3346         Reviewed by Yury Semikhatsky.
3347
3348         Configurations of (hopefully) all build systems are fixed.
3349
3350         * CMakeLists.txt:
3351         * DerivedSources.make:
3352         * DerivedSources.pri:
3353         * GNUmakefile.am:
3354         * GNUmakefile.list.am:
3355         * WebCore.gyp/WebCore.gyp:
3356         * WebCore.gypi:
3357         * WebCore.vcproj/WebCore.vcproj:
3358         * WebCore.xcodeproj/project.pbxproj:
3359         * inspector/CodeGeneratorInspector.py:
3360         (dash_to_camelcase):
3361         (InspectorFrontend_h):
3362         (InspectorBackendDispatcher_h):
3363
3364 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3365
3366         [GTK] Refactor GTK's accessibilitity code to be more modular
3367         https://bugs.webkit.org/show_bug.cgi?id=76783
3368
3369         Reviewed by Martin Robinson.
3370
3371         New files for the implementation of the AtkText interface,
3372         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3373
3374         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp: Added.
3375         (core):
3376         (textForRenderer):
3377         (textForObject):
3378         (getGailTextUtilForAtk):
3379         (getPangoLayoutForAtk):
3380         (baselinePositionForRenderObject):
3381         (getAttributeSetForAccessibilityObject):
3382         (compareAttribute):
3383         (attributeSetDifference):
3384         (accessibilityObjectLength):
3385         (getAccessibilityObjectForOffset):
3386         (getRunAttributesFromAccesibilityObject):
3387         (textExtents):
3388         (getSelectionOffsetsForObject):
3389         (webkitAccessibleTextInterfaceInit):
3390         (webkitAccessibleTextGetText):
3391         (webkitAccessibleTextGetTextAfterOffset):
3392         (webkitAccessibleTextGetTextAtOffset):
3393         (webkitAccessibleTextGetTextBeforeOffset):
3394         (webkitAccessibleTextGetCharacterAtOffset):
3395         (webkitAccessibleTextGetCaretOffset):
3396         (webkitAccessibleTextGetRunAttributes):
3397         (webkitAccessibleTextGetDefaultAttributes):
3398         (webkitAccessibleTextGetCharacterExtents):
3399         (webkitAccessibleTextGetRangeExtents):
3400         (webkitAccessibleTextGetCharacterCount):
3401         (webkitAccessibleTextGetOffsetAtPoint):
3402         (webkitAccessibleTextGetNSelections):
3403         (webkitAccessibleTextGetSelection):
3404         (webkitAccessibleTextAddSelection):
3405         (webkitAccessibleTextRemoveSelection):
3406         (webkitAccessibleTextSetSelection):
3407         (webkitAccessibleTextSetCaretOffset):
3408         * accessibility/gtk/WebKitAccessibleInterfaceText.h: Added.
3409
3410         Move common function selectionBelongsToObject out from the wrapper
3411         to the utility file, used from WebKitAccessibleInterfaceText.cpp.
3412
3413         * accessibility/gtk/WebKitAccessibleUtil.cpp:
3414         (selectionBelongsToObject): Taken from WebKitAccessibleWrapperAtk.cpp.
3415         * accessibility/gtk/WebKitAccessibleUtil.h:
3416         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove local
3417         implementation of selectionBelongsToObject, and the code related
3418         to the implementation of the AtkText interface.
3419         (webkit_accessible_get_name): Update call to the former function
3420         webkit_accessible_text_get_text and use the new function name.
3421         (webkit_accessible_table_get_column_description): Ditto.
3422         (webkit_accessible_table_get_row_description): Ditto.
3423
3424         Add new files to build files.
3425
3426         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceText.[h|cpp].
3427         * WebCore.gypi: Ditto.
3428
3429 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3430
3431         [GTK] Refactor GTK's accessibilitity code to be more modular
3432         https://bugs.webkit.org/show_bug.cgi?id=76783
3433
3434         Reviewed by Martin Robinson.
3435
3436         New files for the implementation of the AtkValue interface,
3437         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3438
3439         * accessibility/gtk/WebKitAccessibleInterfaceValue.cpp: Added.
3440         (core):
3441         (webkitAccessibleValueInterfaceInit):
3442         (webkitAccessibleValueGetCurrentValue):
3443         (webkitAccessibleValueGetMaximumValue):
3444         (webkitAccessibleValueGetMinimumValue):
3445         (webkitAccessibleValueSetCurrentValue):
3446         (webkitAccessibleValueGetMinimumIncrement):
3447         * accessibility/gtk/WebKitAccessibleInterfaceValue.h: Added.
3448         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3449         related to the implementation of the AtkValue interface.
3450
3451         Add new files to build files.
3452
3453         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceValue.[h|cpp].
3454         * WebCore.gypi: Ditto.
3455
3456 2012-01-24  Antti Koivisto  <antti@apple.com>
3457
3458         Reduce internal use of CSSStyleDeclaration base class
3459         https://bugs.webkit.org/show_bug.cgi?id=76904
3460
3461         Reviewed by Andreas Kling.
3462
3463         Internally WebCore should use the more specific CSSMutableStyleDeclaration and CSSComputedStyleDeclaration types.
3464         The CSSStyleDeclaration base should be used in the DOM API functions only. This will make it easier to separate 
3465         internal style sheet implementation from the DOM in the future.
3466         
3467         - Switch CSSStyleDeclaration -> CSSMutableStyleDeclaration where feasible
3468         - Use StyledElement::ensureInlineStyleDecl() instead of Element::style() (which is a DOM API function)
3469         - Remove Attribute::style() which looks like a DOM API function but is not exposed.
3470
3471         * css/CSSMutableStyleDeclaration.h:
3472         (WebCore::CSSMutableStyleDeclaration::getPropertyCSSValue):
3473         * dom/Attr.h:
3474         (WebCore::Attr::style):
3475         * dom/Attribute.h:
3476         * editing/EditingStyle.cpp:
3477         (WebCore::HTMLElementEquivalent::propertyExistsInStyle):
3478         (WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
3479         (WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle):
3480         (WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle):
3481         (WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
3482         * editing/Editor.cpp:
3483         (WebCore::Editor::applyEditingStyleToElement):
3484         * editing/markup.cpp:
3485         (WebCore::StyledMarkupAccumulator::wrapWithStyleNode):
3486         (WebCore::StyledMarkupAccumulator::appendStyleNodeOpenTag):
3487         (WebCore::propertyMissingOrEqualToNone):
3488         * inspector/InspectorCSSAgent.cpp:
3489         (WebCore::InspectorCSSAgent::buildArrayForAttributeStyles):
3490         * page/DragController.cpp:
3491         (WebCore::DragController::concludeEditDrag):
3492         * page/PageSerializer.cpp:
3493         (WebCore::PageSerializer::serializeFrame):
3494         (WebCore::PageSerializer::retrieveResourcesForCSSDeclaration):
3495         * page/PageSerializer.h:
3496         * rendering/RenderLayer.cpp:
3497         (WebCore::RenderLayer::resize):
3498         * svg/SVGStyledElement.cpp:
3499         (WebCore::SVGStyledElement::getPresentationAttribute):
3500
3501 2012-01-23  Andreas Kling  <awesomekling@apple.com>
3502
3503         Make elements that don't have attributes smaller.
3504         <http://webkit.org/b/76876>
3505
3506         Reviewed by Antti Koivisto.
3507
3508         Move the inline style declaration from StyledElement to NamedNodeMap, since having
3509         an inline style declaration also implies having a style attribute on the element.
3510         This saves one CPU word per element that has no attributes.
3511
3512         This reduces memory consumption by 412 kB (on 64-bit) when viewing the full
3513         HTML5 spec at <http://whatwg.org/c>.
3514
3515         * dom/NamedNodeMap.cpp:
3516         (WebCore::NamedNodeMap::ensureInlineStyleDecl):
3517         (WebCore::NamedNodeMap::destroyInlineStyleDecl):
3518         (WebCore::NamedNodeMap::createInlineStyleDecl):
3519         * dom/NamedNodeMap.h:
3520         (WebCore::NamedNodeMap::inlineStyleDecl):
3521         * dom/StyledElement.cpp:
3522         (WebCore::StyledElement::updateStyleAttribute):
3523         (WebCore::StyledElement::addSubresourceAttributeURLs):
3524         * dom/StyledElement.h:
3525         (WebCore::StyledElement::inlineStyleDecl):
3526         (WebCore::StyledElement::ensureInlineStyleDecl):
3527         (WebCore::StyledElement::destroyInlineStyleDecl):
3528
3529 2012-01-24  No'am Rosenthal  <noam.rosenthal@nokia.com>
3530
3531         [Qt][WK2] Qt's cross-process AC copies images excessively when updating tiles.
3532         https://bugs.webkit.org/show_bug.cgi?id=76877
3533
3534         Reviewed by Kenneth Rohde Christiansen.
3535
3536         Add BitmapTexture::updateRawContents(), which allows uploading image data to a texture
3537         without changing its format or swizzling RGB. The data has to be in the texture's native
3538         format.
3539
3540         No new tests, this affects performance on all existing tests.
3541
3542         * platform/graphics/opengl/TextureMapperGL.cpp:
3543         (WebCore::BitmapTextureGL::updateRawContents):
3544         * platform/graphics/qt/TextureMapperQt.cpp:
3545         * platform/graphics/texmap/TextureMapper.h:
3546         (WebCore::BitmapTexture::updateRawContents):
3547         * platform/graphics/texmap/TextureMapperNode.cpp:
3548         (WebCore::TextureMapperNode::setContentsTileBackBuffer):
3549         * platform/graphics/texmap/TextureMapperNode.h:
3550
3551 2012-01-24  Ilya Tikhonovsky  <loislo@chromium.org>
3552
3553         Web Inspector: inspector/debugger/dom-breakpoints.html started to fail after r105642
3554         https://bugs.webkit.org/show_bug.cgi?id=76908
3555
3556         Reviewed by Yury Semikhatsky.
3557
3558         * css/CSSMutableStyleDeclaration.cpp:
3559
3560 2012-01-24  Csaba Osztrogonác  <ossy@webkit.org>
3561
3562         [Refactoring] Make finish() of CodeGeneratorJS.pm empty
3563         https://bugs.webkit.org/show_bug.cgi?id=76846
3564
3565         Reviewed by Tor Arne Vestbø.
3566
3567         * bindings/scripts/CodeGeneratorJS.pm: Warning fix after r105683.
3568         (WriteData):
3569
3570 2012-01-24  Andras Becsi  <andras.becsi@nokia.com>
3571
3572         [Qt] Fix the build with the newes Qt5 hashes
3573         https://bugs.webkit.org/show_bug.cgi?id=76657
3574
3575         Reviewed by Simon Hausmann.
3576
3577         No new tests needed.
3578
3579         * platform/graphics/cairo/OpenGLShims.cpp:
3580         (WebCore::getProcAddress): Adopt API changes.
3581
3582 2012-01-24  Ádám Kallai  <Kallai.Adam@stud.u-szeged.hu>
3583
3584         [Qt] Incremental build problem.
3585         https://bugs.webkit.org/show_bug.cgi?id=74687
3586
3587         It is necessary to set mathattrs.in dependency for generating MathMLNames.cpp file.
3588
3589         Reviewed by Csaba Osztrogonác.
3590
3591         * DerivedSources.pri:
3592         I added missing depend.
3593
3594 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3595
3596         [GTK] Refactor GTK's accessibilitity code to be more modular
3597         https://bugs.webkit.org/show_bug.cgi?id=76783
3598
3599         Reviewed by Martin Robinson.
3600
3601         New files for the implementation of the AtkSelection interface,
3602         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3603
3604         * accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp: Added.
3605         (core):
3606         (listObjectForSelection):
3607         (optionFromList):
3608         (optionFromSelection):
3609         (webkitAccessibleSelectionInterfaceInit):
3610         (webkitAccessibleSelectionAddSelection):
3611         (webkitAccessibleSelectionClearSelection):
3612         (webkitAccessibleSelectionRefSelection):
3613         (webkitAccessibleSelectionGetSelectionCount):
3614         (webkitAccessibleSelectionIsChildSelected):
3615         (webkitAccessibleSelectionRemoveSelection):
3616         (webkitAccessibleSelectionSelectAllSelection):
3617         * accessibility/gtk/WebKitAccessibleInterfaceSelection.h: Added.
3618         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3619         related to the implementation of the AtkSelection interface.
3620
3621         Add new files to build files.
3622
3623         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceSelection.[h|cpp].
3624         * WebCore.gypi: Ditto.
3625
3626 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3627
3628         [GTK] Refactor GTK's accessibilitity code to be more modular
3629         https://bugs.webkit.org/show_bug.cgi?id=76783
3630
3631         Reviewed by Martin Robinson.
3632
3633         New files for the implementation of the AtkImage interface,
3634         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3635
3636         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp: Added.
3637         (core):
3638         (webkitAccessibleImageInterfaceInit):
3639         (webkitAccessibleImageGetImagePosition):
3640         (webkitAccessibleImageGetImageDescription):
3641         (webkitAccessibleImageGetImageSize):
3642         * accessibility/gtk/WebKitAccessibleInterfaceImage.h: Added.
3643         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3644         related to the implementation of the AtkImage interface.
3645
3646         Add new files to build files.
3647
3648         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceImage.[h|cpp].
3649         * WebCore.gypi: Ditto.
3650
3651 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3652
3653         [GTK] Refactor GTK's accessibilitity code to be more modular
3654         https://bugs.webkit.org/show_bug.cgi?id=76783
3655
3656         Reviewed by Martin Robinson.
3657
3658         New files for the implementation of the AtkHypertext interface,
3659         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3660
3661         * accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp: Added.
3662         (core):
3663         (webkitAccessibleHypertextInterfaceInit):
3664         (webkitAccessibleHypertextGetLink):
3665         (webkitAccessibleHypertextGetNLinks):
3666         (webkitAccessibleHypertextGetLinkIndex):
3667         * accessibility/gtk/WebKitAccessibleInterfaceHypertext.h: Added.
3668         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3669         related to the implementation of the AtkHypertext interface.
3670
3671         Add new files to build files.
3672
3673         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceHypertext.[h|cpp].
3674         * WebCore.gypi: Ditto.
3675
3676 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3677
3678         [GTK] Refactor GTK's accessibilitity code to be more modular
3679         https://bugs.webkit.org/show_bug.cgi?id=76783
3680
3681         Reviewed by Martin Robinson.
3682
3683         New files for the implementation of the AtkHyperlinkImpl interface,
3684         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3685
3686         * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp: Added.
3687         (webkitAccessibleHyperlinkImplInterfaceInit):
3688         (webkitAccessibleHyperlinkImplGetHyperlink):
3689         * accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h: Added.
3690         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3691         related to the implementation of the AtkHyperlinkImpl interface.
3692         (webkit_accessible_class_init):
3693
3694         Add new files to build files.
3695
3696         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceHyperlinkImpl.[h|cpp].
3697         * WebCore.gypi: Ditto.
3698
3699 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3700
3701         [GTK] Refactor GTK's accessibilitity code to be more modular
3702         https://bugs.webkit.org/show_bug.cgi?id=76783
3703
3704         Reviewed by Martin Robinson.
3705
3706         New files for the implementation of the AtkEditableText interface,
3707         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3708
3709         * accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp: Added.
3710         (core):
3711         (webkitAccessibleEditableTextInterfaceInit):
3712         (webkitAccessibleEditableTextSetRunAttributes):
3713         (webkitAccessibleEditableTextSetTextContents):
3714         (webkitAccessibleEditableTextInsertText):
3715         (webkitAccessibleEditableTextCopyText):
3716         (webkitAccessibleEditableTextCutText):
3717         (webkitAccessibleEditableTextDeleteText):
3718         (webkitAccessibleEditableTextPasteText):
3719         * accessibility/gtk/WebKitAccessibleInterfaceEditableText.h: Added.
3720         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove code
3721         related to the implementation of the AtkEditableText interface.
3722
3723         Add new files to build files.
3724
3725         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceEditableText.[h|cpp].
3726         * WebCore.gypi: Ditto.
3727
3728 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3729
3730         [GTK] Refactor GTK's accessibilitity code to be more modular
3731         https://bugs.webkit.org/show_bug.cgi?id=76783
3732
3733         Reviewed by Martin Robinson.
3734
3735         New files for the implementation of the AtkDocument interface,
3736         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3737
3738         * accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp: Added.
3739         (core):
3740         (documentAttributeValue):
3741         (webkitAccessibleDocumentInterfaceInit):
3742         (webkitAccessibleDocumentGetAttributeValue):
3743         (webkitAccessibleDocumentGetAttributes):
3744         (webkitAccessibleDocumentGetLocale):
3745         * accessibility/gtk/WebKitAccessibleInterfaceDocument.h: Added.
3746
3747         Move common function addAttributeToSet() out from the wrapper to
3748         the utility file, used from WebKitAccessibleInterfaceDocument.cpp.
3749
3750         * accessibility/gtk/WebKitAccessibleUtil.cpp:
3751         (addToAtkAttributeSet): Taken from WebKitAccessibleWrapperAtk.cpp.
3752         * accessibility/gtk/WebKitAccessibleUtil.h:
3753         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove local
3754         implementation of addAttributeToSet, as well as all the code related
3755         to the implementation of the AtkDocument interface.
3756
3757         Add new files to build files.
3758
3759         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceDocument.[h|cpp].
3760         * WebCore.gypi: Ditto.
3761
3762 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3763
3764         [GTK] Refactor GTK's accessibilitity code to be more modular
3765         https://bugs.webkit.org/show_bug.cgi?id=76783
3766
3767         Reviewed by Martin Robinson.
3768
3769         New files for the implementation of the AtkComponent interface,
3770         containing the related code from WebKitAccessibleWrapperAtk.cpp.
3771
3772         * accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp: Added.
3773         (core):
3774         (atkToContents):
3775         (webkitAccessibleComponentInterfaceInit):
3776         (webkitAccessibleComponentRefAccessibleAtPoint):
3777         (webkitAccessibleComponentGetExtents):
3778         (webkitAccessibleComponentGrabFocus):
3779         * accessibility/gtk/WebKitAccessibleInterfaceComponent.h: Added.
3780
3781         Move common function contentsToAtk() out from the wrapper to the
3782         utility file, used from WebKitAccessibleInterfaceComponent.cpp.
3783
3784         * accessibility/gtk/WebKitAccessibleUtil.cpp:
3785         (contentsRelativeToAtkCoordinateType): Taken from WebKitAccessibleWrapperAtk.cpp.
3786         * accessibility/gtk/WebKitAccessibleUtil.h:
3787         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp: Remove local
3788         implementation of contentsToAtk, as well as all the code related
3789         to the implementation of the AtkComponent interface.
3790
3791         Add new files to build files.
3792
3793         * GNUmakefile.list.am: Add WebKitAccessibleInterfaceComponent.[h|cpp].
3794         * WebCore.gypi: Ditto.
3795
3796 2012-01-24  Kentaro Hara  <haraken@chromium.org>
3797
3798         [Refactoring] Makes finish() of CodeGeneratorV8.pm empty
3799         https://bugs.webkit.org/show_bug.cgi?id=76841
3800
3801         Reviewed by Adam Barth.
3802
3803         This is one of steps to stop rebuilding .h/.cpp files
3804         generated by unchanged IDLs (bug 76836).
3805
3806         As refactoring, we are planning to remove finish() from
3807         all CodeGenerators. This patch makes finish() of
3808         CodeGeneratorV8.pm empty.
3809
3810         No new tests. No change in behavior.
3811
3812         * bindings/scripts/CodeGeneratorV8.pm:
3813         (finish): Made it empty. We will remove finish() after
3814         making finish() of all CodeGenerators empty.
3815         (GenerateInterface): Modified to call WriteData().
3816         (WriteData): Simple code refactoring.
3817         Removed if(defined $IMPL).
3818         Removed if(defined $HEADER).
3819         $IMPL -> IMPL.
3820         $HEADER -> HEADER.
3821
3822 2012-01-24  Mario Sanchez Prada  <msanchez@igalia.com>
3823
3824         Unreviewed build fix for GTK after r105698.
3825
3826         * bindings/js/JSPeerConnectionCustom.cpp:
3827         (WebCore::JSPeerConnectionConstructor::constructJSPeerConnection):
3828
3829 2012-01-24  Kent Tamura  <tkent@chromium.org>
3830
3831         Fix build erros on Mac by r105706.
3832         https://bugs.webkit.org/show_bug.cgi?id=76763
3833
3834         * html/canvas/WebGLRenderingContext.cpp:
3835         (WebCore::WebGLRenderingContext::compressedTexImage2D): Removed unused argument names.
3836         (WebCore::WebGLRenderingContext::compressedTexSubImage2D): ditto.
3837
3838 2012-01-23  Kent Tamura  <tkent@chromium.org>
3839
3840         Introduce RadioButtonGroup class to keep track of the group members and required state
3841         https://bugs.webkit.org/show_bug.cgi?id=74909
3842
3843         Reviewed by Darin Adler.
3844
3845         RadioButtonGroup contains a set of member radio buttons in the group,
3846         and "required" status of the group. This helps implementing correct
3847         radio button validity, and improving performance of updating validity
3848         status of radio buttons.
3849
3850         This change fixes the following bugs:
3851         - A radio button should be "required" if one of a member of the same
3852           group has the "required" attribute.
3853           https://bugs.webkit.org/show_bug.cgi?id=76365
3854         - :invalid style is not applied when a checked radio button is removed
3855           from its radio group
3856           https://bugs.webkit.org/show_bug.cgi?id=74914
3857         - Loading a page with N radio buttons in a group takes O(N^2) time.
3858
3859         Tests: fast/forms/radio/radio-live-validation-style.html
3860                perf/adding-radio-buttons.html
3861
3862         * dom/CheckedRadioButtons.cpp:
3863         (WebCore::RadioButtonGroup::isEmpty):
3864         (WebCore::RadioButtonGroup::isRequired):
3865         (WebCore::RadioButtonGroup::checkedButton):
3866         (WebCore::RadioButtonGroup::RadioButtonGroup):
3867         (WebCore::RadioButtonGroup::create):
3868         (WebCore::RadioButtonGroup::isValid):
3869         (WebCore::RadioButtonGroup::setCheckedButton):
3870         (WebCore::RadioButtonGroup::add):
3871         (WebCore::RadioButtonGroup::updateCheckedState):
3872         (WebCore::RadioButtonGroup::requiredAttributeChanged):
3873         (WebCore::RadioButtonGroup::remove):
3874         (WebCore::RadioButtonGroup::setNeedsValidityCheckForAllButtons):
3875         Add RadioButtonGroup class. It keeps track of pointers to member radio
3876         buttons and required status of the group in addition to the checked
3877         radio button pointer.
3878
3879         (WebCore::CheckedRadioButtons::CheckedRadioButtons):
3880         (WebCore::CheckedRadioButtons::~CheckedRadioButtons):
3881         Define empty constructor and destructor in order to avoid exposing
3882         RadioButtonGroup class.
3883
3884         (WebCore::CheckedRadioButtons::addButton):
3885         (WebCore::CheckedRadioButtons::updateCheckedState):
3886         (WebCore::CheckedRadioButtons::requiredAttributeChanged):
3887         (WebCore::CheckedRadioButtons::checkedButtonForGroup):
3888         (WebCore::CheckedRadioButtons::isInRequiredGroup):
3889         (WebCore::CheckedRadioButtons::removeButton):
3890         Change the HashMap member of this class so that it maps a group name to
3891         a RadioButtonGroup object. These functions just get a RadioButtonGroup
3892         object and call a corresponding member function of RadioButtonGroup.
3893
3894         * dom/CheckedRadioButtons.h: Update declarations.
3895
3896         * html/HTMLFormControlElement.cpp:
3897         (WebCore::HTMLFormControlElement::parseMappedAttribute):
3898         (WebCore::HTMLFormControlElement::requiredAttributeChanged):
3899         Move a part of parseMappedAttribute() into requiredAttributeChanged().
3900         * html/HTMLFormControlElement.h: Add requiredAttributeChanged().
3901         * html/HTMLInputElement.cpp:
3902         (WebCore::HTMLInputElement::valueMissing):
3903         Move required check code to InputType::valueMissing implementations.
3904         RadioInputType needs special handling for checking required state.
3905         readOnly() and disabled() are unnecessary because willValidate() checks them.
3906         (WebCore::HTMLInputElement::setChecked):
3907         Call new function CheckedRadioButtons::updateCheckedState() instead of
3908         removeButton() and updateCheckedRadioButtons().
3909         (WebCore::HTMLInputElement::requiredAttributeChanged):
3910         Override this to call CheckedRadioButtons::requiredAttributeChanged().
3911         * html/HTMLInputElement.h: Add requiredAttributeChanged().
3912         * html/RadioInputType.cpp:
3913         (WebCore::RadioInputType::valueMissing):
3914         Check required state by CheckedRadioButtons::isInRequiredGroup().
3915         * html/RadioInputType.h: Remove attach().
3916
3917         * html/CheckboxInputType.cpp:
3918         (WebCore::CheckboxInputType::valueMissing):
3919           Move required check from HTMLInputElement::valueMissing().
3920         * html/FileInputType.cpp:
3921         (WebCore::FileInputType::valueMissing): ditto.
3922         * html/TextFieldInputType.cpp:
3923         (WebCore::TextFieldInputType::valueMissing): ditto.
3924
3925 2012-01-24  Noel Gordon  <noel.gordon@gmail.com>
3926
3927         [chromium] PNG image with CMYK ICC color profile renders color-inverted and squashed
3928         https://bugs.webkit.org/show_bug.cgi?id=76804
3929
3930         Reviewed by Adam Barth.
3931
3932         Use color profiles for PNG images only if their embedded color profile is from an RGB
3933         color space input device.
3934
3935         Test: fast/images/rgb-png-with-cmyk-color-profile.html
3936
3937         * platform/image-decoders/ImageDecoder.h:
3938         (WebCore::ImageDecoder::rgbColorProfile): Return true if the profile has an RGB color space.
3939         (WebCore::ImageDecoder::inputDeviceColorProfile): Return true if the profile is from an input device.
3940         * platform/image-decoders/png/PNGImageDecoder.cpp:
3941         (WebCore::readColorProfile): Ignore PNG image embedded color profile unless the profile
3942         comes from an RGB color space input device.
3943         (WebCore::PNGImageDecoder::headerAvailable): Minor white-space removals courtesy Xcode.
3944
3945 2012-01-23  Pavel Podivilov  <podivilov@chromium.org>
3946
3947         Web Inspector: fix sticky DOM breakpoints.
3948         https://bugs.webkit.org/show_bug.cgi?id=64437
3949
3950         Reviewed by Yury Semikhatsky.
3951
3952         * inspector/front-end/DOMBreakpointsSidebarPane.js:
3953         (WebInspector.DOMBreakpointsSidebarPane.prototype._inspectedURLChanged):
3954
3955 2012-01-24  Gregg Tavares  <gman@google.com>
3956
3957         Expose WebGL texture compression methods on WebGLRenderingContext
3958         https://bugs.webkit.org/show_bug.cgi?id=76763
3959
3960         Reviewed by Kenneth Russell.
3961
3962         Test: fast/canvas/webgl/compressed-tex-image.html
3963
3964         * html/canvas/WebGLRenderingContext.cpp:
3965         (WebCore::WebGLRenderingContext::compressedTexImage2D):
3966         (WebCore::WebGLRenderingContext::compressedTexSubImage2D):
3967         * html/canvas/WebGLRenderingContext.h:
3968         * html/canvas/WebGLRenderingContext.idl:
3969
3970 2012-01-24  Kenichi Ishibashi  <bashi@chromium.org>
3971
3972         [V8] Add Uint8ClampedArray support
3973         https://bugs.webkit.org/show_bug.cgi?id=76803
3974
3975         Reviewed by Kenneth Russell.
3976
3977         No new tests. fast/js/script-tests/dfg-uint8clampedarray.js should pass on chromium port.
3978
3979         * WebCore.gypi: Added required files.
3980         * bindings/scripts/CodeGeneratorV8.pm:
3981         (IsTypedArrayType): Added Uint8ClampedArray.
3982         * bindings/v8/SerializedScriptValue.cpp: Added the tag for Uint8ClampedArray.
3983         (WebCore::V8ObjectMap::Writer::writeArrayBufferView): Appends the tag when buffer is Uint8ClampedArray.
3984         (WebCore::V8ObjectMap::Reader::readArrayBufferView): Creates Uint8ClampedArray instance when the tag represents Uint8ClampedArray.
3985         * bindings/v8/custom/V8ArrayBufferViewCustomScript.js:
3986         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp: Added.
3987         (WebCore::V8Uint8ClampedArray::constructorCallback):
3988         (WebCore::V8Uint8ClampedArray::setCallback):
3989         (WebCore::toV8):
3990         * page/Crypto.cpp: Added isUnsignedByteClampedArray() call to isIntegerArray().
3991         * page/DOMWindow.idl: Removed ifdefs.
3992         * workers/WorkerContext.idl: Added Uint8ArrayConstructor.
3993
3994 2012-01-24  Ilya Tikhonovsky  <loislo@chromium.org>
3995
3996         Unreviewed build fix for GTK Debug build after r105698.
3997
3998         * bindings/js/JSNavigatorCustom.cpp:
3999         (WebCore::JSNavigator::webkitGetUserMedia):
4000
4001 2012-01-23  Scott Graham  <scottmg@chromium.org>
4002
4003         Avoid spurious rebuilds on vs2010 due to DerivedSources not existing
4004         https://bugs.webkit.org/show_bug.cgi?id=76873
4005
4006         Reviewed by Adam Barth.
4007
4008         * WebCore.gyp/WebCore.gyp:
4009
4010 2012-01-23  Geoffrey Garen  <ggaren@apple.com>
4011
4012         JSValue::toString() should return a JSString* instead of a UString
4013         https://bugs.webkit.org/show_bug.cgi?id=76861
4014
4015         Reviewed by Gavin Barraclough.
4016
4017         Mechanical changes to call value() after calling toString(), to
4018         convert from "JS string" (JSString*) to "C++ string" (UString), since
4019         toString() no longer returns a "C++ string".
4020
4021         * bindings/js/IDBBindingUtilities.cpp:
4022         (WebCore::createIDBKeyFromValue):
4023         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
4024         (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
4025         * bindings/js/JSClipboardCustom.cpp:
4026         (WebCore::JSClipboard::clearData):
4027         (WebCore::JSClipboard::getData):
4028         * bindings/js/JSCustomXPathNSResolver.cpp:
4029         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
4030         * bindings/js/JSDOMBinding.cpp:
4031         (WebCore::valueToStringWithNullCheck):
4032         (WebCore::valueToStringWithUndefinedOrNullCheck):
4033         (WebCore::reportException):
4034         * bindings/js/JSDOMFormDataCustom.cpp:
4035         (WebCore::JSDOMFormData::append):
4036         * bindings/js/JSDOMStringMapCustom.cpp:
4037         (WebCore::JSDOMStringMap::putDelegate):
4038         * bindings/js/JSDOMWindowCustom.cpp:
4039         (WebCore::JSDOMWindow::setLocation):
4040         (WebCore::JSDOMWindow::open):
4041         (WebCore::JSDOMWindow::addEventListener):
4042         (WebCore::JSDOMWindow::removeEventListener):
4043         * bindings/js/JSDeviceMotionEventCustom.cpp:
4044         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
4045         * bindings/js/JSDeviceOrientationEventCustom.cpp:
4046         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
4047         * bindings/js/JSDictionary.cpp:
4048         (WebCore::JSDictionary::convertValue):
4049         * bindings/js/JSDocumentCustom.cpp:
4050         (WebCore::JSDocument::setLocation):
4051         * bindings/js/JSEventListener.cpp:
4052         (WebCore::JSEventListener::handleEvent):
4053         * bindings/js/JSHTMLAllCollectionCustom.cpp:
4054         (WebCore::callHTMLAllCollection):
4055         (WebCore::JSHTMLAllCollection::item):
4056         (WebCore::JSHTMLAllCollection::namedItem):
4057         * bindings/js/JSHTMLCanvasElementCustom.cpp:
4058         (WebCore::JSHTMLCanvasElement::getContext):
4059         * bindings/js/JSHTMLCollectionCustom.cpp:
4060         (WebCore::JSHTMLCollection::item):
4061         (WebCore::JSHTMLCollection::namedItem):
4062         * bindings/js/JSHTMLDocumentCustom.cpp:
4063         (WebCore::documentWrite):
4064         * bindings/js/JSHTMLInputElementCustom.cpp: