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