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