eeb508a9d1a84c768097f7dc18b6db394da9afad
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-15  David Levin  <levin@chromium.org>
2
3         Various autoresize fixes.
4         https://bugs.webkit.org/show_bug.cgi?id=81199
5
6         Reviewed by Darin Fisher.
7
8         Tested by WebViewTest additions.
9
10         * page/FrameView.cpp:
11         (WebCore::FrameView::autoSizeIfEnabled): Fixed a bug that caused a horizontal
12         scrollbar to appear when the size was width was fixed and height overflowed which
13         is one of the tests that was added.
14
15 2012-03-15  Andrey Kosyakov  <caseq@chromium.org>
16
17         Web Inspector: normalize vertical overview bars by longest bar, not by longest frame
18         https://bugs.webkit.org/show_bug.cgi?id=81231
19
20         Reviewed by Vsevolod Vlasov.
21
22         * inspector/front-end/TimelineOverviewPane.js:
23         (WebInspector.TimelineOverviewPane):
24         (WebInspector.TimelineOverviewPane.prototype.reset):
25         (WebInspector.TimelineOverviewPane.prototype.accept):
26         (WebInspector.TimelineOverviewPane.prototype.windowEndTime):
27         (WebInspector.TimelineVerticalOverview.prototype.reset):
28         (WebInspector.TimelineVerticalOverview.prototype.update):
29         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
30         (WebInspector.TimelineVerticalOverview.prototype._aggregateRecords):
31         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
32
33 2012-03-15  Andrey Kosyakov  <caseq@chromium.org>
34
35         Web Inspector: crash in InspectorTimelineAgent when trying to add children to cancelable records
36         https://bugs.webkit.org/show_bug.cgi?id=81245
37
38         Reviewed by Vsevolod Vlasov.
39
40         * inspector/InspectorTimelineAgent.cpp:
41         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
42         (WebCore):
43         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
44         (WebCore::InspectorTimelineAgent::appendRecord):
45         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
46         * inspector/InspectorTimelineAgent.h:
47         (InspectorTimelineAgent):
48
49 2012-03-15  Pavel Podivilov  <podivilov@chromium.org>
50
51         Web Inspector: live locations could be disposed twice.
52         https://bugs.webkit.org/show_bug.cgi?id=81249
53
54         Reviewed by Vsevolod Vlasov.
55
56         * inspector/front-end/ScriptMapping.js:
57         (WebInspector.MainScriptMapping.prototype._unregisterLiveLocation):
58
59 2012-03-15  Carlos Garcia Campos  <cgarcia@igalia.com>
60
61         [GTK] Implement unicode submenu items
62         https://bugs.webkit.org/show_bug.cgi?id=81117
63
64         Reviewed by Martin Robinson.
65
66         * loader/EmptyClients.h:
67         (WebCore::EmptyEditorClient::shouldShowUnicodeMenu): Just return
68         false.
69         * page/ContextMenuController.cpp:
70         (WebCore::insertUnicodeCharacter): Helper function to insert a
71         unicode character.
72         (WebCore::ContextMenuController::contextMenuItemSelected):
73         Implement unicode menu items using insertUnicodeCharacter() to
74         insert the apropriate unicode character.
75         (WebCore::ContextMenuController::createAndAppendUnicodeSubMenu):
76         Create the unicode submenu.
77         (WebCore::ContextMenuController::populate): Add unicode submenu
78         item for editable content.
79         (WebCore::ContextMenuController::checkOrEnableIfNeeded): Add
80         unicode submenu items to the switch.
81         * page/ContextMenuController.h:
82         * page/EditorClient.h:
83         (EditorClient): Add shouldShowUnicodeMenu() for GTK platform.
84         * platform/ContextMenuItem.h:
85         * platform/LocalizedStrings.h:
86         * platform/gtk/LocalizedStringsGtk.cpp:
87         (WebCore::contextMenuItemTagUnicodeInsertLRMMark): Add localized
88         string for the unicode menu item.
89         (WebCore::contextMenuItemTagUnicodeInsertRLMMark): Ditto.
90         (WebCore::contextMenuItemTagUnicodeInsertLREMark): Ditto.
91         (WebCore::contextMenuItemTagUnicodeInsertRLEMark): Ditto.
92         (WebCore::contextMenuItemTagUnicodeInsertLROMark): Ditto.
93         (WebCore::contextMenuItemTagUnicodeInsertRLOMark): Ditto.
94         (WebCore::contextMenuItemTagUnicodeInsertPDFMark): Ditto.
95         (WebCore::contextMenuItemTagUnicodeInsertZWSMark): Ditto.
96         (WebCore::contextMenuItemTagUnicodeInsertZWJMark): Ditto.
97         (WebCore::contextMenuItemTagUnicodeInsertZWNJMark): Ditto.
98
99 2012-03-15  Vsevolod Vlasov  <vsevik@chromium.org>
100
101         Web Inspector: MainScriptMapping should detect snippet scripts by means of sourceURL set before evaluation.
102         https://bugs.webkit.org/show_bug.cgi?id=81031
103
104         Reviewed by Pavel Feldman.
105
106         * inspector/front-end/SnippetsModel.js:
107         (WebInspector.SnippetsModel):
108         (WebInspector.SnippetsModel.prototype._saveSettings):
109         (WebInspector.SnippetsModel.prototype.deleteSnippet):
110         (WebInspector.SnippetsModel.prototype._snippetAdded):
111         (WebInspector.SnippetsModel.prototype._sourceURLForSnippet):
112         (WebInspector.SnippetsModel.prototype.snippetIdForSourceURL):
113         (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
114         (WebInspector.Snippet.prototype.evaluate):
115         (WebInspector.SnippetsScriptMapping):
116         (WebInspector.SnippetsScriptMapping.prototype.uiLocationToRawLocation.get if):
117         (WebInspector.SnippetsScriptMapping.prototype.uiLocationToRawLocation):
118         (WebInspector.SnippetsScriptMapping.prototype._releasedUISourceCodes):
119         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
120         (WebInspector.SnippetsScriptMapping.prototype._snippetWillBeEvaluated):
121         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
122         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
123
124 2012-03-15  Kevin Ollivier  <kevino@theolliviers.com>
125
126         [wx] Unreviewed. Build fixes for Mac and DOM bindings.
127
128         * bindings/cpp/WebDOMEventTarget.cpp:
129         (toWebKit):
130         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
131         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
132
133 2012-03-14  Pavel Podivilov  <podivilov@chromium.org>
134
135         Web Inspector: extract CompilerScriptMapping from RawSourceCode.
136         https://bugs.webkit.org/show_bug.cgi?id=81088
137
138         Reviewed by Vsevolod Vlasov.
139
140         * WebCore.gypi:
141         * WebCore.vcproj/WebCore.vcproj:
142         * inspector/compile-front-end.py:
143         * inspector/front-end/CompilerScriptMapping.js: Added.
144         (WebInspector.CompilerScriptMapping):
145         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
146         (WebInspector.CompilerScriptMapping.prototype.get uiSourceCodeList):
147         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
148         (WebInspector.CompilerScriptMapping.prototype.addScript):
149         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
150         (WebInspector.CompilerScriptMapping.prototype.reset):
151         * inspector/front-end/RawSourceCode.js:
152         (WebInspector.RawSourceCode):
153         (WebInspector.RawSourceCode.prototype.setFormatted):
154         (WebInspector.RawSourceCode.prototype._resourceFinished):
155         (WebInspector.RawSourceCode.prototype._createUISourceCode):
156         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
157         * inspector/front-end/ResourceScriptMapping.js:
158         (WebInspector.ResourceScriptMapping.prototype.addScript):
159         * inspector/front-end/ScriptMapping.js:
160         (WebInspector.MainScriptMapping):
161         * inspector/front-end/WebKit.qrc:
162         * inspector/front-end/inspector.html:
163
164 2012-03-15  Peter Rybin  <peter.rybin@gmail.com>
165
166         Web Inspector: Move all includes behind ENABLE(INSPECTOR) guards
167         https://bugs.webkit.org/show_bug.cgi?id=81132
168
169         Reviewed by Yury Semikhatsky.
170
171         Include directives are moved several lines down in .cpp files and in
172         generator templates.
173
174         * inspector/CodeGeneratorInspector.py:
175         * inspector/ContentSearchUtils.cpp:
176         * inspector/DOMEditor.cpp:
177         * inspector/DOMNodeHighlighter.cpp:
178         * inspector/DOMPatchSupport.cpp:
179         * inspector/IdentifiersFactory.cpp:
180         * inspector/InjectedScript.cpp:
181         * inspector/InjectedScriptHost.cpp:
182         * inspector/InjectedScriptManager.cpp:
183         * inspector/InspectorAgent.cpp:
184         * inspector/InspectorApplicationCacheAgent.cpp:
185         * inspector/InspectorBaseAgent.cpp:
186         * inspector/InspectorCSSAgent.cpp:
187         * inspector/InspectorClient.cpp:
188         * inspector/InspectorConsoleAgent.cpp:
189         * inspector/InspectorController.cpp:
190         * inspector/InspectorCounters.cpp:
191         * inspector/InspectorDOMAgent.cpp:
192         * inspector/InspectorDOMDebuggerAgent.cpp:
193         * inspector/InspectorDOMStorageAgent.cpp:
194         * inspector/InspectorDatabaseAgent.cpp:
195         * inspector/InspectorDatabaseResource.cpp:
196         * inspector/InspectorDebuggerAgent.cpp:
197         * inspector/InspectorFileSystemAgent.cpp:
198         * inspector/InspectorFrontendClientLocal.cpp:
199         * inspector/InspectorFrontendHost.cpp:
200         * inspector/InspectorHistory.cpp:
201         * inspector/InspectorIndexedDBAgent.cpp:
202         * inspector/InspectorInstrumentation.cpp:
203         * inspector/InspectorMemoryAgent.cpp:
204         * inspector/InspectorPageAgent.cpp:
205         * inspector/InspectorProfilerAgent.cpp:
206         * inspector/InspectorResourceAgent.cpp:
207         * inspector/InspectorRuntimeAgent.cpp:
208         * inspector/InspectorState.cpp:
209         * inspector/InspectorStyleSheet.cpp:
210         * inspector/InspectorStyleTextEditor.cpp:
211         * inspector/InspectorTimelineAgent.cpp:
212         * inspector/InspectorValues.cpp:
213         * inspector/InstrumentingAgents.cpp:
214         * inspector/NetworkResourcesData.cpp:
215         * inspector/PageConsoleAgent.cpp:
216         * inspector/PageDebuggerAgent.cpp:
217         * inspector/PageRuntimeAgent.cpp:
218         * inspector/TimelineRecordFactory.cpp:
219         * inspector/WorkerConsoleAgent.cpp:
220         * inspector/WorkerDebuggerAgent.cpp:
221         * inspector/WorkerRuntimeAgent.cpp:
222
223 2012-03-15  Yury Semikhatsky  <yurys@chromium.org>
224
225         Web Inspector: improve HeapSnapshot._buildReversIndex performance
226         https://bugs.webkit.org/show_bug.cgi?id=81224
227
228         Caching node indexes and node count in local variables instead of
229         calling getters each time reduces the method run time by
230         factor of 1.5
231
232         Reviewed by Pavel Feldman.
233
234         * inspector/front-end/HeapSnapshot.js:
235         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
236
237 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
238
239         SVG Animations update baseVal instead of animVal
240         https://bugs.webkit.org/show_bug.cgi?id=12437
241
242         Rubber-stamped by Rob Buis.
243
244         Rename constructFromCopy to constructFromVariant, and currentBaseValue to currentBaseValueVariant, to clarify what it actually does.
245
246         * svg/SVGAnimateElement.cpp:
247         (WebCore::SVGAnimateElement::resetToBaseValue):
248         * svg/SVGAnimatedLength.cpp:
249         (WebCore::SVGAnimatedLengthAnimator::constructFromVariant):
250         * svg/SVGAnimatedLength.h:
251         (SVGAnimatedLengthAnimator):
252         * svg/SVGAnimatedLengthList.cpp:
253         (WebCore::SVGAnimatedLengthListAnimator::constructFromVariant):
254         * svg/SVGAnimatedLengthList.h:
255         (SVGAnimatedLengthListAnimator):
256         * svg/SVGAnimatedNumber.cpp:
257         (WebCore::SVGAnimatedNumberAnimator::constructFromVariant):
258         * svg/SVGAnimatedNumber.h:
259         (SVGAnimatedNumberAnimator):
260         * svg/SVGAnimatedNumberList.cpp:
261         (WebCore::SVGAnimatedNumberListAnimator::constructFromVariant):
262         * svg/SVGAnimatedNumberList.h:
263         (SVGAnimatedNumberListAnimator):
264         * svg/SVGAnimatedTransformList.cpp:
265         (WebCore::SVGAnimatedTransformListAnimator::constructFromVariant):
266         * svg/SVGAnimatedTransformList.h:
267         (SVGAnimatedTransformListAnimator):
268         * svg/SVGAnimatedTypeAnimator.h:
269         (WebCore::SVGAnimatedTypeAnimator::constructFromVariant):
270         * svg/properties/SVGAnimatedListPropertyTearOff.h:
271         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValueVariant):
272         * svg/properties/SVGAnimatedProperty.h:
273         (SVGAnimatedProperty):
274         * svg/properties/SVGAnimatedPropertyTearOff.h:
275         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValueVariant):
276         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
277         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValueVariant):
278
279 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
280
281         Enable animVal support for SVGNumberList
282         https://bugs.webkit.org/show_bug.cgi?id=81219
283
284         Reviewed by Rob Buis.
285
286         Enable animVal support for SVGNumberList. Easy patch, we just need to add the missing
287         constructFromCopy() method to SVGAnumatedNumberListAnimator and report AnimatedNumberList
288         as supporting animVal.
289
290         Covered by existing tests.
291
292         * svg/SVGAnimatedNumberList.cpp:
293         (WebCore::SVGAnimatedNumberListAnimator::constructFromCopy):
294         (WebCore):
295         * svg/SVGAnimatedNumberList.h:
296         (WebCore):
297         (SVGAnimatedNumberListAnimator):
298         * svg/SVGAnimatedType.cpp:
299         (WebCore::SVGAnimatedType::supportsAnimVal):
300         (WebCore::SVGAnimatedType::setVariantValue):
301
302 2012-03-15  Rob Buis  <rbuis@rim.com>
303
304         Fix cast-align GCC warnings
305         https://bugs.webkit.org/show_bug.cgi?id=80790
306
307         Reviewed by Nikolas Zimmermann.
308
309         * platform/graphics/WOFFFileFormat.cpp:
310         (WebCore::writeUInt32):
311         (WebCore::writeUInt16):
312         (WebCore::convertWOFFToSfnt):
313
314 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
315
316         Not reviewed. Forgot to preserve copyrights, per reviewer comment.
317
318         * svg/SVGAnimatedTransformList.cpp:
319
320 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
321
322         Enable animVal support for SVGNumber
323         https://bugs.webkit.org/show_bug.cgi?id=81212
324
325         Reviewed by Rob Buis.
326
327         Enable animVal support for SVGNumber. This aligns SVGAnimatedStaticPropertyTearOff,
328         with the other SVGListPropertyTearOff & SVGPropertyTearOff, as all support animVal now.
329         Converting the rest of the types can be done in small patches now.
330
331         Test: svg/animations/svgnumber-animation-4.html
332
333         * svg/SVGAnimatedNumber.cpp:
334         (WebCore::SVGAnimatedNumberAnimator::constructFromCopy):
335         (WebCore):
336         * svg/SVGAnimatedNumber.h:
337         (WebCore):
338         (SVGAnimatedNumberAnimator):
339         * svg/SVGAnimatedType.cpp:
340         (WebCore::SVGAnimatedType::supportsAnimVal):
341         (WebCore::SVGAnimatedType::setVariantValue):
342         * svg/properties/SVGAnimatedProperty.h:
343         (SVGAnimatedProperty):
344         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
345         (WebCore::SVGAnimatedStaticPropertyTearOff::animVal):
346         (WebCore::SVGAnimatedStaticPropertyTearOff::currentAnimatedValue):
347         (SVGAnimatedStaticPropertyTearOff):
348         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValue):
349         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
350         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
351         (WebCore::SVGAnimatedStaticPropertyTearOff::animationValueWillChange):
352         (WebCore::SVGAnimatedStaticPropertyTearOff::animationValueDidChange):
353         (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
354
355 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
356
357         Enable animVal support for SVGTransformList
358         https://bugs.webkit.org/show_bug.cgi?id=80758
359
360         Reviewed by Antti Koivisto.
361
362         Enable animVal support for SVGTransformList. SVGTransformLists are only animatable
363         via <animateTransform>, not via <animate> directly. Still we can handle it in the
364         same framework as all other types used for <animate>, as we also need proper animVal
365         support for <animateTransform>.
366
367         This patch removes the special <animateTransform> implementation, and lets
368         SVGAnimateTransformElement inherit from SVGAnimateElement, just like its done
369         for SVGAnimateColorElement & SVGSetElement.
370
371         All existing code (calculateFromAndToValues/FromAndByValues/etc..) are moved from
372         SVGAnimateTransform right into the SVGAnimatedTransformListAnimator.
373
374         This doesn't change <animateTransform> behavior, it just simplies the code
375         and enables animVal support for SVGTransformLists - all covered by existing tests.
376
377         * CMakeLists.txt:
378         * GNUmakefile.list.am:
379         * Target.pri:
380         * WebCore.gypi:
381         * WebCore.xcodeproj/project.pbxproj:
382         * svg/SVGAllInOne.cpp:
383         * svg/SVGAnimateElement.cpp:
384         (WebCore::SVGAnimateElement::SVGAnimateElement):
385         (WebCore::SVGAnimateElement::determineAnimatedPropertyType):
386         (WebCore::SVGAnimateElement::calculateAnimatedValue):
387         (WebCore::SVGAnimateElement::applyResultsToTarget):
388         * svg/SVGAnimateTransformElement.cpp:
389         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
390         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
391         (WebCore::SVGAnimateTransformElement::parseAttribute):
392         * svg/SVGAnimateTransformElement.h:
393         (WebCore::SVGAnimateTransformElement::transformType):
394         (SVGAnimateTransformElement):
395         * svg/SVGAnimatedTransformList.cpp: Added.
396         (WebCore):
397         (WebCore::SVGAnimatedTransformListAnimator::SVGAnimatedTransformListAnimator):
398         (WebCore::SVGAnimatedTransformListAnimator::constructFromString):
399         (WebCore::SVGAnimatedTransformListAnimator::constructFromCopy):
400         (WebCore::SVGAnimatedTransformListAnimator::calculateFromAndToValues):
401         (WebCore::SVGAnimatedTransformListAnimator::calculateFromAndByValues):
402         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
403         (WebCore::SVGAnimatedTransformListAnimator::calculateDistance):
404         * svg/SVGAnimatedTransformList.h:
405         (WebCore):
406         (SVGAnimatedTransformListAnimator):
407         (WebCore::SVGAnimatedTransformListAnimator::~SVGAnimatedTransformListAnimator):
408         * svg/SVGAnimatedType.cpp:
409         (WebCore::SVGAnimatedType::~SVGAnimatedType):
410         (WebCore::SVGAnimatedType::createTransformList):
411         (WebCore):
412         (WebCore::SVGAnimatedType::transformList):
413         (WebCore::SVGAnimatedType::valueAsString):
414         (WebCore::SVGAnimatedType::setValueAsString):
415         (WebCore::SVGAnimatedType::supportsAnimVal):
416         (WebCore::SVGAnimatedType::setVariantValue):
417         * svg/SVGAnimatedType.h:
418         (WebCore):
419         (SVGAnimatedType):
420         * svg/SVGAnimatorFactory.h:
421         (WebCore::SVGAnimatorFactory::create):
422         * svg/SVGGradientElement.cpp:
423         (WebCore::SVGGradientElement::parseAttribute):
424         * svg/SVGPatternElement.cpp:
425         (WebCore::SVGPatternElement::parseAttribute):
426         * svg/SVGStyledTransformableElement.cpp:
427         (WebCore::SVGStyledTransformableElement::parseAttribute):
428         * svg/SVGTextElement.cpp:
429         (WebCore::SVGTextElement::parseAttribute):
430         * svg/SVGTransform.cpp:
431         (WebCore::SVGTransform::transformTypePrefixForParsing):
432         (WebCore):
433         (WebCore::SVGTransform::valueAsString):
434         * svg/SVGTransform.h:
435         (SVGTransform):
436         * svg/SVGTransformList.cpp:
437         (WebCore::SVGTransformList::parse):
438         (WebCore):
439         * svg/SVGTransformList.h:
440         (SVGTransformList):
441         * svg/SVGTransformable.cpp:
442         (WebCore::SVGTransformable::parseTransformType):
443         * svg/SVGTransformable.h:
444         (WebCore):
445         * svg/SVGViewSpec.cpp:
446         (WebCore::SVGViewSpec::setTransform):
447
448 2012-03-13  Nikolas Zimmermann  <nzimmermann@rim.com>
449
450         Enable animVal support for SVGLengthList
451         https://bugs.webkit.org/show_bug.cgi?id=80750
452
453         Reviewed by Zoltan Herczeg.
454
455         Introduce animVal support for generic SVGList types. This aligns SVGListProperty with SVGProperty
456         in terms of animVal/baseVal support. Use this to turn on animVal support for SVGLengthList.
457
458         Extend all existing SVGLengthList tests to correctly differentiate between baseVal/animVal.
459
460         * svg/SVGAnimateElement.cpp:
461         (WebCore::SVGAnimateElement::calculateAnimatedValue):
462         * svg/SVGAnimateTransformElement.cpp:
463         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
464         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
465         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
466         * svg/SVGAnimatedLengthList.cpp:
467         (WebCore::SVGAnimatedLengthListAnimator::constructFromCopy):
468         (WebCore):
469         * svg/SVGAnimatedLengthList.h:
470         (WebCore):
471         (SVGAnimatedLengthListAnimator):
472         * svg/SVGAnimatedType.cpp:
473         (WebCore::SVGAnimatedType::supportsAnimVal):
474         (WebCore::SVGAnimatedType::setVariantValue):
475         * svg/SVGAnimatedType.h:
476         * svg/SVGAnimationElement.cpp:
477         (WebCore::SVGAnimationElement::applyAnimatedValue):
478         * svg/properties/SVGAnimatedListPropertyTearOff.h:
479         (SVGAnimatedListPropertyTearOff):
480         (WebCore::SVGAnimatedListPropertyTearOff::baseVal):
481         (WebCore::SVGAnimatedListPropertyTearOff::animVal):
482         (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
483         (WebCore::SVGAnimatedListPropertyTearOff::detachListWrappers):
484         (WebCore::SVGAnimatedListPropertyTearOff::currentAnimatedValue):
485         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValue):
486         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
487         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
488         (WebCore::SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded):
489         (WebCore::SVGAnimatedListPropertyTearOff::animationValueWillChange):
490         (WebCore::SVGAnimatedListPropertyTearOff::animationValueDidChange):
491         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
492         (WebCore::SVGAnimatedPathSegListPropertyTearOff::baseVal):
493         (WebCore::SVGAnimatedPathSegListPropertyTearOff::animVal):
494         * svg/properties/SVGAnimatedProperty.h:
495         (WebCore::SVGAnimatedProperty::isAnimating):
496         (SVGAnimatedProperty):
497         (WebCore::SVGAnimatedProperty::animationValueWillChange):
498         (WebCore::SVGAnimatedProperty::animationValueDidChange):
499         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
500         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
501         * svg/properties/SVGAnimatedPropertyTearOff.h:
502         (SVGAnimatedPropertyTearOff):
503         (WebCore::SVGAnimatedPropertyTearOff::baseVal):
504         (WebCore::SVGAnimatedPropertyTearOff::animVal):
505         (WebCore::SVGAnimatedPropertyTearOff::currentAnimatedValue):
506         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
507         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
508         (WebCore::SVGAnimatedPropertyTearOff::animationValueWillChange):
509         (WebCore::SVGAnimatedPropertyTearOff::animationValueDidChange):
510         (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff):
511         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
512         (WebCore::SVGAnimatedTransformListPropertyTearOff::baseVal):
513         (WebCore::SVGAnimatedTransformListPropertyTearOff::animVal):
514         * svg/properties/SVGListProperty.h:
515         (WebCore::SVGListProperty::detachListWrappers):
516         (SVGListProperty):
517         (WebCore::SVGListProperty::setValuesAndWrappers):
518         (WebCore::SVGListProperty::clearValues):
519         (WebCore::SVGListProperty::clearValuesAndWrappers):
520         (WebCore::SVGListProperty::numberOfItems):
521         (WebCore::SVGListProperty::initializeValues):
522         (WebCore::SVGListProperty::initializeValuesAndWrappers):
523         (WebCore::SVGListProperty::canGetItem):
524         (WebCore::SVGListProperty::getItemValues):
525         (WebCore::SVGListProperty::getItemValuesAndWrappers):
526         (WebCore::SVGListProperty::insertItemBeforeValues):
527         (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
528         (WebCore::SVGListProperty::canReplaceItem):
529         (WebCore::SVGListProperty::replaceItemValues):
530         (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
531         (WebCore::SVGListProperty::canRemoveItem):
532         (WebCore::SVGListProperty::removeItemValues):
533         (WebCore::SVGListProperty::removeItemValuesAndWrappers):
534         (WebCore::SVGListProperty::appendItemValues):
535         (WebCore::SVGListProperty::appendItemValuesAndWrappers):
536         (WebCore::SVGListProperty::values):
537         (WebCore::SVGListProperty::wrappers):
538         (WebCore::SVGListProperty::SVGListProperty):
539         * svg/properties/SVGListPropertyTearOff.h:
540         (SVGListPropertyTearOff):
541         (WebCore::SVGListPropertyTearOff::create):
542         (WebCore::SVGListPropertyTearOff::removeItemFromList):
543         (WebCore::SVGListPropertyTearOff::clear):
544         (WebCore::SVGListPropertyTearOff::initialize):
545         (WebCore::SVGListPropertyTearOff::insertItemBefore):
546         (WebCore::SVGListPropertyTearOff::replaceItem):
547         (WebCore::SVGListPropertyTearOff::appendItem):
548         (WebCore::SVGListPropertyTearOff::SVGListPropertyTearOff):
549         (WebCore::SVGListPropertyTearOff::commitChange):
550         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
551         (WebCore::SVGPathSegListPropertyTearOff::clear):
552         (WebCore::SVGPathSegListPropertyTearOff::getItem):
553         (WebCore::SVGPathSegListPropertyTearOff::removeItem):
554         * svg/properties/SVGPathSegListPropertyTearOff.h:
555         (WebCore::SVGPathSegListPropertyTearOff::create):
556         (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
557         (SVGPathSegListPropertyTearOff):
558         (WebCore::SVGPathSegListPropertyTearOff::initialize):
559         (WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
560         (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
561         (WebCore::SVGPathSegListPropertyTearOff::appendItem):
562         (WebCore::SVGPathSegListPropertyTearOff::SVGPathSegListPropertyTearOff):
563         (WebCore::SVGPathSegListPropertyTearOff::commitChange):
564         * svg/properties/SVGPropertyInfo.h:
565         * svg/properties/SVGStaticListPropertyTearOff.h:
566         (SVGStaticListPropertyTearOff):
567         (WebCore::SVGStaticListPropertyTearOff::clear):
568         (WebCore::SVGStaticListPropertyTearOff::initialize):
569         (WebCore::SVGStaticListPropertyTearOff::getItem):
570         (WebCore::SVGStaticListPropertyTearOff::insertItemBefore):
571         (WebCore::SVGStaticListPropertyTearOff::replaceItem):
572         (WebCore::SVGStaticListPropertyTearOff::removeItem):
573         (WebCore::SVGStaticListPropertyTearOff::appendItem):
574         (WebCore::SVGStaticListPropertyTearOff::SVGStaticListPropertyTearOff):
575         (WebCore::SVGStaticListPropertyTearOff::commitChange):
576         * svg/properties/SVGTransformListPropertyTearOff.h:
577         (WebCore::SVGTransformListPropertyTearOff::create):
578         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
579         (WebCore::SVGTransformListPropertyTearOff::consolidate):
580         (WebCore::SVGTransformListPropertyTearOff::SVGTransformListPropertyTearOff):
581
582 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
583
584         AXDescription for HTML5 footer
585         https://bugs.webkit.org/show_bug.cgi?id=78967
586
587         Return a unique role description for the footer element.
588
589         Reviewed by Beth Dakin.
590
591         Test: platform/mac/accessibility/footer-roledescription.html
592
593         * English.lproj/Localizable.strings:+
594         * accessibility/AccessibilityObject.h:
595         * accessibility/AccessibilityRenderObject.cpp:
596         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
597         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
598         (createAccessibilityRoleMap):
599         (-[WebAccessibilityObjectWrapper subrole]):
600         (-[WebAccessibilityObjectWrapper roleDescription]):
601         * platform/LocalizedStrings.cpp:
602         (WebCore::AXFooterRoleDescriptionText):
603         (WebCore):
604         * platform/LocalizedStrings.h:
605         (WebCore):
606         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
607         (WebCore::AXFooterRoleDescriptionText):
608         (WebCore):
609         * platform/efl/LocalizedStringsEfl.cpp:
610         (WebCore::AXFooterRoleDescriptionText):
611         (WebCore):
612         * platform/gtk/LocalizedStringsGtk.cpp:
613         (WebCore::AXFooterRoleDescriptionText):
614         (WebCore):
615
616 2012-03-14  Mark Rowe  <mrowe@apple.com>
617
618         <http://webkit.org/b/81193> Ensure libWebCoreTestSupport.dylib's library identifier is set appropriately for all configurations.
619
620         Reviewed by Dan Bernstein.
621
622         * Configurations/WebCoreTestSupport.xcconfig: Switch to setting DYLIB_INSTALL_NAME_BASE
623         rather than LD_DYLIB_INSTALL_NAME. The latter is derived from the former. Ensure that
624         DYLIB_INSTALL_NAME_BASE is also set for the Production configuration.
625
626 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
627
628         AXDescription for ARIA role contentinfo incorrect
629         https://bugs.webkit.org/show_bug.cgi?id=78967
630
631         Reviewed by Beth Dakin.
632
633         Test: platform/mac/accessibility/aria-grouping-roles.html
634
635         * English.lproj/Localizable.strings:
636         * platform/LocalizedStrings.cpp:
637         (WebCore::AXARIAContentGroupText):
638
639 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
640
641         AX: ARIA tables need to support selected rows attribute/select rows changed notification
642         https://bugs.webkit.org/show_bug.cgi?id=79821
643
644         Reviewed by Beth Dakin.
645
646         Test: platform/mac/accessibility/selected-rows-table.html
647
648         * accessibility/AccessibilityARIAGrid.h:
649         (WebCore::AccessibilityARIAGrid::isMultiSelectable):
650         (AccessibilityARIAGrid):
651         * accessibility/AccessibilityRenderObject.cpp:
652         (WebCore::AccessibilityRenderObject::ariaSelectedRows):
653         * accessibility/AccessibilityTableRow.cpp:
654         (WebCore::AccessibilityTableRow::observableObject):
655         (WebCore):
656         * accessibility/AccessibilityTableRow.h:
657         (AccessibilityTableRow):
658         * accessibility/mac/AXObjectCacheMac.mm:
659         (WebCore::AXObjectCache::postPlatformNotification):
660
661 2012-03-14  James Robinson  <jamesr@chromium.org>
662
663         Platforms without USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) don't need to query the page's displayID
664         https://bugs.webkit.org/show_bug.cgi?id=81187
665
666         Reviewed by Simon Fraser.
667
668         * dom/Document.cpp:
669         (WebCore::Document::webkitRequestAnimationFrame):
670
671 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
672
673         AX: embedded attachments do not report their parents correctly
674         https://bugs.webkit.org/show_bug.cgi?id=80132
675
676         When a WebHTMLView has embedded attachments in it, the AXParent of those attachments is wrong.
677         It usually points to the AXScrollView of the web area. That's because there has been no way for WebCore to
678         communicate that this attachment view should actually make believe that it's parent is within the WebCore AX tree.
679
680         We can fix that by overriding the AXParent in overriden attributes for items that are attachments.
681
682         Reviewed by Beth Dakin.
683
684         Not able to construct a layout test because the problem only manifests itself when an AX client connects to WebKit
685         through the IPC mechanism.
686
687         * accessibility/AccessibilityObject.cpp:
688         (WebCore::AccessibilityObject::detachFromParent):
689         * accessibility/AccessibilityObject.h:
690         (AccessibilityObject):
691         (WebCore::AccessibilityObject::overrideAttachmentParent):
692         * accessibility/AccessibilityRenderObject.cpp:
693         (WebCore::AccessibilityRenderObject::updateAttachmentViewParents):
694         (WebCore::AccessibilityRenderObject::addChildren):
695         * accessibility/AccessibilityRenderObject.h:
696         (AccessibilityRenderObject):
697         * accessibility/mac/AccessibilityObjectMac.mm:
698         (WebCore::AccessibilityObject::overrideAttachmentParent):
699
700 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
701
702         Improve ContainerNode's collectNodes() performance
703         https://bugs.webkit.org/show_bug.cgi?id=80706
704
705         Reviewed by Antti Koivisto.
706
707         Bump up the size of stack allocated buffer from 1 to 11. According to the rough study I conducted,
708         this would cover 99.5% of all node collection.
709
710         Note: the actual code change was made in r110797 but I somehow mangled my patches.
711
712         * dom/ContainerNode.cpp:
713         (WebCore):
714
715 2012-03-14  Seo Sanghyeon  <sh4.seo@samsung.com>
716
717         Cleanup semicolons in IDLs
718         https://bugs.webkit.org/show_bug.cgi?id=81129
719
720         Reviewed by Kentaro Hara.
721
722         No tests. No change in behavior.
723
724         * svg/SVGAnimateColorElement.idl:
725         * svg/SVGAnimateElement.idl:
726         * svg/SVGAnimateTransformElement.idl:
727         * svg/SVGAnimatedRect.idl:
728
729 2012-03-14  Hayato Ito  <hayato@chromium.org>
730
731         Make ShadowRoot.activeElement return null if it does not contain a focused element.
732         https://bugs.webkit.org/show_bug.cgi?id=81097
733
734         Reviewed by Dimitri Glazkov.
735
736         * dom/TreeScope.cpp:
737         (WebCore::TreeScope::activeElement):
738
739 2012-03-14  Matt Falkenhagen  <falken@chromium.org>
740
741         Allow per-script font settings to be specified in layout tests
742         https://bugs.webkit.org/show_bug.cgi?id=78184
743
744         Reviewed by Hajime Morita.
745
746         This adds per-script font settings to InternalSettings, so it can be used in layout tests instead of
747         the per-script font settings support in DumpRenderTree overridePreference, which has only been implemented
748         for Chromium so far.
749
750         Test: changed fast/text/international/locale-sensitive-fonts.html to use InternalSettings
751         instead of overridePreference.
752
753         * WebCore.exp.in: Added symbols.
754         * platform/text/LocaleToScriptMapping.h: Added scriptNameToCode used by InternalSettings.
755         (WebCore):
756         * platform/text/LocaleToScriptMappingDefault.cpp:
757         (WebCore::scriptNameToCode):
758         (WebCore::localeToScriptCodeForFontSelection):
759         * platform/text/LocaleToScriptMappingICU.cpp:
760         (WebCore::scriptNameToCode):
761         (WebCore):
762         * testing/InternalSettings.cpp: Added per-script font settings.
763         (WebCore):
764         (WebCore::setFontFamily):
765         (WebCore::InternalSettings::setStandardFontFamily):
766         (WebCore::InternalSettings::setSerifFontFamily):
767         (WebCore::InternalSettings::setSansSerifFontFamily):
768         (WebCore::InternalSettings::setFixedFontFamily):
769         (WebCore::InternalSettings::setCursiveFontFamily):
770         (WebCore::InternalSettings::setFantasyFontFamily):
771         (WebCore::InternalSettings::setPictographFontFamily):
772         * testing/InternalSettings.h:
773         (InternalSettings):
774         * testing/InternalSettings.idl:
775
776 2012-03-14  Kwonjin Jeong  <gram@company100.net>
777
778         Remove obsolete constructors of CSSPrimitiveValue class.
779         https://bugs.webkit.org/show_bug.cgi?id=80971
780
781         Remove constructors of CSSPrimitiveValue that can't be
782         reached.
783
784         Reviewed by Andreas Kling.
785
786         * css/CSSPrimitiveValueMappings.h:
787
788 2012-03-14  Igor Oliveira  <igor.o@sisa.samsung.com>
789
790         Split the extra logic out of RenderBlock::updateFirstLetter
791         https://bugs.webkit.org/show_bug.cgi?id=80772
792
793         Reviewed by Julien Chaffraix.
794
795         No change in behavior expected.
796
797         * rendering/RenderBlock.cpp:
798         (WebCore::RenderBlock::updateFirstLetterStyle):
799         (WebCore::RenderBlock::createFirstLetterRenderer):
800         (WebCore::RenderBlock::updateFirstLetter):
801         (WebCore):
802         * rendering/RenderBlock.h:
803         (RenderBlock):
804
805 2012-03-14  Anders Carlsson  <andersca@apple.com>
806
807         Fix build.
808
809         * html/track/TextTrackList.cpp:
810
811 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
812
813         Build fix.
814
815         * dom/DynamicNodeList.h:
816         (DynamicSubtreeNodeList):
817
818 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
819
820         (register|unregister)DynamicSubtreeNodeList should be called only for labels and regions node lists
821         https://bugs.webkit.org/show_bug.cgi?id=80900
822
823         Reviewed by Andreas Kling.
824
825         Cleaned up invalidation code for dynamic node lists. It seems like the existing code was utterly confused
826         about the lifetime of node lists and caches within them. First, register/unregsiterDynamicSubtreeNodeList
827         are called for all dynamic node lists even though it's only useful for labels and region node lists since
828         it's a mechanism to allow node lists to be invalidated at a node to which the node list doesn't belong.
829
830         Second, some node lists had dedicated member functions on Node to explicitly invalidate caches in
831         parsedAttribute. However, this is redundant because invalidateNodeListsCacheAfterAttributeChanged should be
832         able to invalidate caches when the attribute value changes. This patch gets rid of the last instance of such
833         function in HTMLLabelElement.
834
835         And finally, this patch restricts the callers of DynamicSubtreeNodeList::invalidateCache to be member
836         functions of NodeListsNodeData (now friends of DynamicSubtreeNodeList) to allow futher refactoring.
837
838         * dom/DynamicNodeList.cpp:
839         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Don't register the node list since it's only
840         useful for labels and region node lists.
841         (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Ditto.
842         * dom/DynamicNodeList.h:
843         (DynamicSubtreeNodeList):
844         * dom/Node.cpp:
845         (WebCore):
846         (WebCore::Node::registerDynamicSubtreeNodeList): The comment about now we have to invalidate caches
847         when there had no caches is incorrect because registerDynamicSubtreeNodeList is called when a node list
848         is initially created. Also, if the tree scope didn't have any caches, then this is the first node list
849         to be added to the list, so there's no point in calling InvalidateCaches (no-op).
850         (WebCore::Node::unregisterDynamicSubtreeNodeList):
851         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Take care of "for" content attribute.
852         Also remove the redundant call to removeNodeListCacheIfPossible since we only invalidates node lists
853         and never remove entries from NodeListsNodeData in this function.
854         (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): The call to removeNodeListCacheIfPossible
855         is also redundant here. Also removed the invalidation of m_listsWithCaches since it's already done in
856         invalidateCaches via invalidateCachesThatDependOnAttributes.
857         (WebCore::NodeListsNodeData::invalidateCaches): Removed the invalidation of m_labelsNodeListCache. It's
858         done in invalidateCachesThatDependOnAttributes.
859         (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): Invalidate
860         m_listsInvalidatedAtDocument, which is renamed from m_listsWithCaches.
861         (WebCore::NodeListsNodeData::isEmpty):
862         * dom/Node.h:
863         (Node):
864         * dom/NodeRareData.h:
865         (NodeListsNodeData):
866         * html/HTMLLabelElement.cpp:
867         (WebCore): Removed parseAttribute since the invalidation labels node list is now done by
868         invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged.
869         * html/HTMLLabelElement.h:
870         (HTMLLabelElement):
871         * html/LabelsNodeList.cpp:
872         (WebCore::LabelsNodeList::LabelsNodeList):
873         (WebCore::LabelsNodeList::~LabelsNodeList):
874
875 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
876
877         Unreviewed, rolling out r110565.
878         http://trac.webkit.org/changeset/110565
879         https://bugs.webkit.org/show_bug.cgi?id=81173
880
881         chromium deps are now far enough along that the original cl
882         should work (Requested by thakis on #webkit).
883
884         * WebCore.gyp/mac/adjust_visibility.sh:
885
886 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
887
888         Unreviewed, rolling out r110641.
889         http://trac.webkit.org/changeset/110641
890         https://bugs.webkit.org/show_bug.cgi?id=81170
891
892         Causes an ASAN failure (Requested by abarth on #webkit).
893
894         * Target.pri:
895         * UseV8.cmake:
896         * WebCore.gypi:
897         * bindings/scripts/CodeGeneratorJS.pm:
898         (GenerateHeader):
899         (GenerateImplementation):
900         * bindings/scripts/CodeGeneratorV8.pm:
901         (GenerateHeader):
902         (GenerateNamedConstructorCallback):
903         (GenerateImplementation):
904         * bindings/scripts/IDLAttributes.txt:
905         * bindings/scripts/test/V8/V8Float64Array.cpp:
906         (WebCore):
907         * bindings/scripts/test/V8/V8Float64Array.h:
908         (V8Float64Array):
909         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
910         (WebCore):
911         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
912         (V8TestActiveDOMObject):
913         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
914         (WebCore):
915         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
916         (V8TestCustomNamedGetter):
917         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
918         (WebCore):
919         * bindings/scripts/test/V8/V8TestEventConstructor.h:
920         (V8TestEventConstructor):
921         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
922         (WebCore):
923         * bindings/scripts/test/V8/V8TestEventTarget.h:
924         (V8TestEventTarget):
925         * bindings/scripts/test/V8/V8TestInterface.cpp:
926         (WebCore):
927         * bindings/scripts/test/V8/V8TestInterface.h:
928         (V8TestInterface):
929         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
930         (WebCore):
931         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
932         (V8TestMediaQueryListListener):
933         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
934         (WebCore):
935         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
936         (V8TestNamedConstructor):
937         * bindings/scripts/test/V8/V8TestObj.cpp:
938         (WebCore):
939         * bindings/scripts/test/V8/V8TestObj.h:
940         (V8TestObj):
941         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
942         (WebCore):
943         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
944         (V8TestSerializedScriptValueInterface):
945         * bindings/v8/NPV8Object.cpp:
946         (WebCore::npObjectTypeInfo):
947         * bindings/v8/V8GCController.cpp:
948         (WebCore::GrouperVisitor::visitDOMWrapper):
949         * bindings/v8/WrapperTypeInfo.h:
950         (WebCore):
951         (WrapperTypeInfo):
952         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
953         (WebCore):
954         (WebCore::toV8):
955         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
956         (WebCore::toV8):
957         (WebCore):
958         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
959         (WebCore):
960         (WebCore::toV8):
961         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
962         (WebCore):
963         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
964         (WebCore::toV8):
965         (WebCore):
966         * bindings/v8/custom/V8StyleSheetCustom.cpp:
967         (WebCore::toV8):
968         * css/CSSStyleSheet.idl:
969         * css/StyleSheet.idl:
970         * dom/DOMStringMap.idl:
971         * dom/NamedNodeMap.idl:
972         * html/DOMTokenList.idl:
973         * html/track/TextTrackList.cpp:
974         * html/track/TextTrackList.idl:
975
976 2012-03-13  Jon Lee  <jonlee@apple.com>
977
978         Separate NOTIFICATIONS and LEGACY_NOTIFICATIONS
979         https://bugs.webkit.org/show_bug.cgi?id=80922
980         <rdar://problem/11035082>
981
982         Reviewed by Jian Li.
983
984         You can include either NOTIFICATIONS or LEGACY_NOTIFICATIONS and have a complete API.
985         LEGACY_NOTIFICATIONS should cover all of the previous functionality, and NOTIFICATIONS will cover the
986         new API. Therefore, APIs that are common between the two will have:
987         #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
988
989         This patch initially sets both to be exactly the same. As other bugs with patches begin to migrate to
990         the new API, the defines will begin to split. This allows ports to decide which set of APIs to include.
991
992         * bindings/scripts/InFilesCompiler.pm: Update the script to handle the "|" flag in a conditional.
993         (preferredConditional):
994         (conditionalStringFromAttributeValue):
995         (generateInterfacesHeader):
996         (generateHeadersHeader):
997
998         Update everything to be #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
999         * WebCore.exp.in:
1000         * bindings/cpp/WebDOMEventTarget.cpp:
1001         (toWebKit):
1002         * bindings/js/JSDesktopNotificationsCustom.cpp:
1003         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
1004         * dom/EventTargetFactory.in:
1005         * notifications/Notification.cpp:
1006         * notifications/Notification.h:
1007         * notifications/Notification.idl:
1008         * notifications/NotificationCenter.cpp:
1009         * notifications/NotificationCenter.h:
1010         * notifications/NotificationCenter.idl:
1011         * notifications/NotificationContents.h:
1012         * notifications/NotificationController.cpp:
1013         * notifications/NotificationController.h:
1014         * page/DOMWindow.cpp:
1015         (WebCore::DOMWindow::~DOMWindow):
1016         (WebCore::DOMWindow::willDetachPage):
1017         (WebCore::DOMWindow::disconnectDOMWindowProperties):
1018         (WebCore::DOMWindow::clearDOMWindowProperties):
1019         (WebCore):
1020         * page/DOMWindow.h:
1021         (DOMWindow):
1022         * page/DOMWindow.idl:
1023         * page/Frame.cpp:
1024         (WebCore::Frame::willDetachPage):
1025         (WebCore::Frame::transferChildFrameToNewDocument):
1026         * workers/WorkerContext.cpp:
1027         (WebCore::WorkerContext::~WorkerContext):
1028         (WebCore):
1029         * workers/WorkerContext.h:
1030         (WorkerContext):
1031         * workers/WorkerContext.idl:
1032         * workers/WorkerThread.cpp:
1033         (WebCore::WorkerThread::WorkerThread):
1034         * workers/WorkerThread.h:
1035         (WorkerThread):
1036
1037 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1038
1039         Unreviewed, rolling out r110744.
1040         http://trac.webkit.org/changeset/110744
1041         https://bugs.webkit.org/show_bug.cgi?id=81168
1042
1043         Causes many WebAudio tests to crash in debug (Requested by
1044         abarth on #webkit).
1045
1046         * platform/audio/Biquad.cpp:
1047         (WebCore::Biquad::process):
1048
1049 2012-03-14  Brady Eidson  <beidson@apple.com>
1050
1051         <rdar://problem/11045584> and https://bugs.webkit.org/show_bug.cgi?id=81166
1052         Repro crash in compositing/iframes/page-cache-layer-tree.html
1053
1054         Reviewed by Sam Weinig.
1055
1056         No new tests. (Discovered from and covered by existing test)
1057
1058         ScriptCachedFrameData doesn't need to keep a DOMWindow:
1059         * bindings/js/ScriptCachedFrameData.cpp:
1060         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
1061         * bindings/js/ScriptCachedFrameData.h:
1062         (ScriptCachedFrameData):
1063
1064         CachedFrame should grab it off the Frame directly and store it locally:
1065         * history/CachedFrame.cpp:
1066         (WebCore::CachedFrame::CachedFrame):
1067         * history/CachedFrame.h:
1068         (WebCore::CachedFrameBase::domWindow):
1069         (CachedFrameBase):
1070
1071 2012-03-14  Tony Chang  <tony@chromium.org>
1072
1073         fix negative flexing in auto sized columns
1074         https://bugs.webkit.org/show_bug.cgi?id=80069
1075
1076         Reviewed by Ojan Vafai.
1077
1078         New test cases in css3/flexbox/columns-auto-size.html.
1079
1080         * rendering/RenderFlexibleBox.cpp:
1081         (WebCore):
1082         (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): Properly compute this for auto sizing columns. Previously, we would always return 0.
1083         (WebCore::RenderFlexibleBox::layoutFlexItems):
1084         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm): Drop an unnecessary check against undefined. isSpecified covers this for us.
1085         * rendering/RenderFlexibleBox.h:
1086         (RenderFlexibleBox):
1087
1088 2012-03-14  Grace Ku  <gracek@codeaurora.org>
1089
1090         Incorrect handling of sizes in "em" when first-line changes font size
1091         https://bugs.webkit.org/show_bug.cgi?id=79526
1092
1093         Reviewed by Eric Seidel.
1094
1095         When a first-line pseudo class changes the font size, the "em" unit is handled incorrectly.
1096         It uses the paragraph's original font size (the size of the rest of the paragraph) rather than
1097         the font-size of the first-line of the paragraph.
1098
1099         This was corrected by checking if the InlineFlowBox was the first line using the existing
1100         InlineFlowBox::isFirstLineStyle() function. The corrected behaviour matches Gecko and Presto.
1101         Trident seems to get it half-wrong in the use case we are testing, painting the correct width for
1102         the border but leaving the wrong amount of space.
1103
1104         The CSS specification doc at the time of this patch specifies that ':first-line' should only support
1105         certain properties, though UAs may choose to apply more properties. Furthermore, the spec does not
1106         define the exact rendering of all cases of ':first-line'. It notes that a more precise definition
1107         may appear in future revisions.
1108
1109         Test: fast/css/pseudo-first-line-border-width.html
1110
1111         * rendering/InlineFlowBox.cpp:
1112         (WebCore::InlineFlowBox::paintBoxDecorations):
1113         * rendering/InlineFlowBox.h:
1114         (WebCore::InlineFlowBox::borderLogicalLeft):
1115         (WebCore::InlineFlowBox::borderLogicalRight):
1116         * rendering/RenderBoxModelObject.cpp:
1117         (WebCore::RenderBoxModelObject::paintBorder):
1118         (WebCore::RenderBoxModelObject::getBorderEdgeInfo):
1119         (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
1120         (WebCore::RenderBoxModelObject::borderObscuresBackground):
1121         * rendering/RenderBoxModelObject.h:
1122         (RenderBoxModelObject):
1123
1124 2012-03-14  Martin Robinson  <mrobinson@igalia.com>
1125
1126         Fix the TextureMapper build for GTK+.
1127
1128         No new tests. This is just a build fix.
1129
1130         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
1131         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
1132         * platform/graphics/texmap/TextureMapper.h:
1133
1134 2012-03-12  Martin Robinson  <mrobinson@igalia.com>
1135
1136         [GTK] Menulist buttons have separators even when the theme turns them off
1137         https://bugs.webkit.org/show_bug.cgi?id=80668
1138
1139         Reviewed by Daniel Bates.
1140
1141         No new tests. GTK+ theme differences are notoriously difficult
1142         to test, because consistent results depend on having certain themes
1143         and certain versions of themes installed.
1144
1145         Instead of using the GTK_TYPE_BUTTON and GTK_TYPE_SEPARATOR tags to get the
1146         style context, use GTK_TYPE_COMBO_BOX which should provide more accurate theme settings.
1147
1148         * platform/gtk/RenderThemeGtk3.cpp:
1149         (WebCore::getComboBoxMetrics): Get metrics from a GTK_TYPE_COMBO_BOX style context.
1150         (WebCore::RenderThemeGtk::paintMenuList): Get separator settings from the GTK_TYPE_COMBO_BOX style context.
1151
1152 2012-03-14  Levi Weintraub  <leviw@chromium.org>
1153
1154         Implement proper sub-pixel support in RenderFileUploadControl
1155         https://bugs.webkit.org/show_bug.cgi?id=80881
1156
1157         Reviewed by Dimitri Glazkov.
1158
1159         Correcting improper usage of LayoutUnits when interacting with the graphics context
1160         and platform code. Specifically:
1161         - pixel snapping the clip rect and paint offsets before sending values to the
1162           graphics context in paintObject.
1163         - using on-screen (pixel snapped) values to pass off to platform code to determine
1164           the max length of the filename to be drawn.
1165
1166         No new tests. No change in behavior.
1167
1168         * rendering/RenderFileUploadControl.cpp:
1169         (WebCore::nodeWidth):
1170         (WebCore::RenderFileUploadControl::maxFilenameWidth):
1171         (WebCore::RenderFileUploadControl::paintObject):
1172
1173 2012-03-14  Joseph Pecoraro  <pecoraro@apple.com>
1174
1175         [JSC] Web Inspector: CRASH running $0, $1, etc before they are set
1176         https://bugs.webkit.org/show_bug.cgi?id=81082
1177
1178         Don't return an invalid JSValue. Check if the ScriptValue
1179         has no value and return undefined in that case.
1180
1181         Reviewed by Pavel Feldman.
1182
1183         Updated test: inspector/console/command-line-api.html
1184
1185         * bindings/js/JSInjectedScriptHostCustom.cpp:
1186         (WebCore::JSInjectedScriptHost::inspectedObject):
1187
1188 2012-03-14  James Robinson  <jamesr@chromium.org>
1189
1190         [chromium] Remove canRecoverFromContextLoss attribute, it's unused
1191         https://bugs.webkit.org/show_bug.cgi?id=81158
1192
1193         Reviewed by Stephen White.
1194
1195         Canvas accelerated no longer depends on the canRecoverFromContextLoss attribute after r110716.
1196
1197         * platform/graphics/GraphicsContext3D.h:
1198         (WebCore::GraphicsContext3D::Attributes::Attributes):
1199         (Attributes):
1200         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
1201         (WebCore::SharedGraphicsContext3DImpl::get):
1202
1203 2012-03-14  Jer Noble  <jer.noble@apple.com>
1204
1205         Opening a URL in a MediaDocument does not propagate MIME type info to media element
1206         https://bugs.webkit.org/show_bug.cgi?id=81148
1207
1208         Reviewed by Eric Carlson.
1209
1210         Test: http/tests/media/media-document.html
1211
1212         Pass through the mime type from the DocumentLoader into the <source type=""> attribute of the
1213         generated video element. 
1214
1215         * html/MediaDocument.cpp:
1216         (WebCore::MediaDocumentParser::createDocumentStructure):
1217
1218 2012-03-14  Stephen White  <senorblanco@chromium.org>
1219
1220         [chromium] Fix accelerated Canvas2D with threaded compositing.
1221         https://bugs.webkit.org/show_bug.cgi?id=80998
1222
1223         Reviewed by James Robinson.
1224
1225         Covered by unit tests Canvas2DLayerChromiumTest and
1226         TreeSynchronizerTest.
1227
1228         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1229         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1230         (WebCore):
1231         Delay creation of the front texture for double-buffering until the
1232         first call to paintContentsIfDirty().
1233         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1234         (Canvas2DLayerChromium):
1235         Remove setTextureManager() and setLayerTreeHost(), since their job
1236         has been subsumed by paintContentsIfDirty().
1237         * platform/graphics/chromium/TreeSynchronizer.cpp:
1238         (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
1239         Perform an early-out if the passed-in layer is NULL.
1240
1241 2012-03-14  Mark Pilgrim  <pilgrim@chromium.org>
1242
1243         Move EntriesCallback to Modules/filesystem/
1244         https://bugs.webkit.org/show_bug.cgi?id=81032
1245
1246         Reviewed by Adam Barth.
1247
1248         No new tests, all existing tests pass.
1249
1250         * CMakeLists.txt:
1251         * DerivedSources.make:
1252         * DerivedSources.pri:
1253         * GNUmakefile.list.am:
1254         * Modules/filesystem/EntriesCallback.h: Copied from Source/WebCore/fileapi/EntriesCallback.h.
1255         * Modules/filesystem/EntriesCallback.idl: Copied from Source/WebCore/fileapi/EntriesCallback.idl.
1256         * Target.pri:
1257         * WebCore.gypi:
1258         * WebCore.vcproj/WebCore.vcproj:
1259         * WebCore.xcodeproj/project.pbxproj:
1260         * fileapi/EntriesCallback.h: Removed.
1261         * fileapi/EntriesCallback.idl: Removed.
1262
1263 2012-03-14  Tony Chang  <tony@chromium.org>
1264
1265         multiline column flexbox with auto height wrap too much
1266         https://bugs.webkit.org/show_bug.cgi?id=80929
1267
1268         Reviewed by David Hyatt.
1269
1270         Test: css3/flexbox/multiline-column-auto.html
1271
1272         * rendering/RenderBox.cpp:
1273         (WebCore::RenderBox::computeLogicalHeightUsing):
1274         (WebCore):
1275         (WebCore::RenderBox::computeContentLogicalHeightUsing): Pull out into a separate method.
1276         * rendering/RenderBox.h:
1277         (RenderBox):
1278         * rendering/RenderFlexibleBox.cpp:
1279         (WebCore::RenderFlexibleBox::lineBreakLength): Compute the value based on height & max-height for column layout.
1280         (WebCore):
1281         (WebCore::RenderFlexibleBox::computeNextFlexLine):
1282         * rendering/RenderFlexibleBox.h:
1283         (RenderFlexibleBox):
1284
1285 2012-03-14  Xingnan Wang  <xingnan.wang@intel.com>
1286
1287         Optimize the multiply-add in Biquad.cpp::process
1288         https://bugs.webkit.org/show_bug.cgi?id=75528
1289
1290         Reviewed by Chris Rogers.
1291
1292         Pipeline the multiply-add with SSE2 instructions and get about 20% improvement for the function.
1293
1294         * platform/audio/Biquad.cpp:
1295         (WebCore::Biquad::process):
1296
1297 2012-03-14  James Robinson  <jamesr@chromium.org>
1298
1299         [Chromium] Layout Test compositing/repaint/opacity-between-absolute.html is flaky
1300         https://bugs.webkit.org/show_bug.cgi?id=79823
1301
1302         Reviewed by Adrienne Walker.
1303
1304         LayerRendererChromium was storing a weak pointer to the current render surface in m_currentRenderSurface and
1305         using this in useRenderSurface() to avoid rebinding if we called useRenderSurface() multiple times in a row on
1306         the same surface. This pointer was never cleared, so if any subsequent surface landed at the same address this
1307         caching would misbehave and we'd fail to correctly initialize the new render surface. The caching wasn't
1308         actually buying us anything anyway since we only call useRenderSurface() once per surface per frame and we
1309         always set the viewport for the default render surface.
1310
1311         * platform/graphics/chromium/LayerRendererChromium.cpp:
1312         (WebCore::LayerRendererChromium::beginDrawingFrame):
1313         (WebCore::LayerRendererChromium::useRenderSurface):
1314
1315 2012-03-14  Zalan Bujtas  <zbujtas@gmail.com>
1316
1317         Frame flattening ASSERT(!needsLayout()) in FrameView::paintContents()
1318         https://bugs.webkit.org/show_bug.cgi?id=80155
1319
1320         Reviewed by Antti Koivisto.
1321
1322         This patch ensures that an iframe only schedules and calls parent's layout,
1323         when it is going to be flattened. Non-flattened iframe does not affect
1324         parent's layout, so normal layout flow applies. isInSubframeLayoutWithFrameFlattening()
1325         function has been added to test whether a particular child frame is changing
1326         parent's layout. This function also ensures that scheduleRelayout() and layout()
1327         are in sync of checking againts frame flattening.
1328
1329         Test: fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-with-js-forced-layout.html
1330
1331         * page/FrameView.cpp:
1332         (WebCore::FrameView::avoidScrollbarCreation):
1333         (WebCore::FrameView::layout):
1334         (WebCore::FrameView::scheduleRelayout):
1335         (WebCore::FrameView::isInChildFrameWithFrameFlattening):
1336         (WebCore):
1337         (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
1338         * page/FrameView.h:
1339         (FrameView):
1340         * rendering/RenderIFrame.h:
1341         (RenderIFrame):
1342         (WebCore::RenderIFrame::renderName):
1343
1344 2012-03-14  Anders Carlsson  <andersca@apple.com>
1345
1346         Don't cap the scroll position if layout happens when a FrameView's overhangAmount is non-zero
1347         https://bugs.webkit.org/show_bug.cgi?id=81146
1348         <rdar://problem/10850075>
1349
1350         Reviewed by Beth Dakin.
1351
1352         If layout happens when a page has a non-zero overhang amount, we shouldn't cap the scroll position
1353         to be inside of the valid maximum/minimum scroll offsets because that will cause the page to jump back, which
1354         can look really bad if layout happens in response to the page being scrolled.
1355
1356         * platform/ScrollView.cpp:
1357         (WebCore::ScrollView::updateScrollbars):
1358
1359 2012-03-14  Tommy Widenflycht  <tommyw@google.com>
1360
1361         MediaStream API (JSEP): Introducing IceCandidate
1362         https://bugs.webkit.org/show_bug.cgi?id=80699
1363
1364         Reviewed by Adam Barth.
1365
1366         Patch #2 in a series of patches to change the PeerConnection from ROAP to JSEP,
1367         see bug 80589 for more information.
1368         Adding the JS object IceCandidate and its WebCore/platform sibling IceCandidateDescriptor.
1369         This object will be created both from JS and the embedder.
1370
1371         Not possible to test until the entire JSEP feature is commited.
1372
1373         * GNUmakefile.list.am:
1374         * Modules/mediastream/IceCandidate.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1375         (WebCore):
1376         (WebCore::IceCandidate::create):
1377         (WebCore::IceCandidate::IceCandidate):
1378         (WebCore::IceCandidate::~IceCandidate):
1379         (WebCore::IceCandidate::label):
1380         (WebCore::IceCandidate::candidateLine):
1381         (WebCore::IceCandidate::toSdp):
1382         (WebCore::IceCandidate::descriptor):
1383         * Modules/mediastream/IceCandidate.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1384         (WebCore):
1385         (IceCandidate):
1386         * Modules/mediastream/IceCandidate.idl: Added.
1387         * WebCore.gypi:
1388         * platform/mediastream/IceCandidateDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1389         (WebCore):
1390         (WebCore::IceCandidateDescriptor::create):
1391         (WebCore::IceCandidateDescriptor::IceCandidateDescriptor):
1392         (WebCore::IceCandidateDescriptor::~IceCandidateDescriptor):
1393         (WebCore::IceCandidateDescriptor::toSdp):
1394         * platform/mediastream/IceCandidateDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1395         (WebCore):
1396         (IceCandidateDescriptor):
1397         (WebCore::IceCandidateDescriptor::label):
1398         (WebCore::IceCandidateDescriptor::candidateLine):
1399         * platform/mediastream/MediaStreamCenter.cpp:
1400         (WebCore::MediaStreamCenter::constructSdp):
1401         (WebCore):
1402         * platform/mediastream/MediaStreamCenter.h:
1403         (WebCore):
1404         (MediaStreamCenter):
1405
1406 2012-03-14  Simon Fraser  <simon.fraser@apple.com>
1407
1408         background-visibility:hidden should create a RenderLayer
1409         https://bugs.webkit.org/show_bug.cgi?id=81134
1410
1411         Reviewed by Dean Jackson.
1412         
1413         Background-visibility:hidden has to create RenderLayers, because it's implemented
1414         via compositing and/or paint short-circuiting in RenderLayer code.
1415
1416         Test: transforms/3d/general/background-visibility-layers.html
1417
1418         * rendering/RenderBox.h:
1419         * rendering/RenderBoxModelObject.h:
1420         (WebCore::RenderBoxModelObject::requiresLayer):
1421         * rendering/RenderObject.h:
1422         (WebCore::RenderObject::hasHiddenBackface):
1423         * rendering/RenderTableRow.h:
1424
1425 2012-03-14  Raul Hudea  <rhudea@adobe.com>
1426
1427         [CSSRegions][CSSOM] Implement regionLayoutEvent
1428         https://bugs.webkit.org/show_bug.cgi?id=78882
1429
1430         Reviewed by David Hyatt.
1431
1432         Adding the regionLayoutEvent that is dispatch for all regions after each flow-thread layout.
1433
1434         Tests: fast/regions/region-event-add-to-flow.html
1435                fast/regions/region-event-remove-from-dom.html
1436                fast/regions/region-event-remove-from-flow.html
1437                fast/regions/region-event.html
1438
1439         * dom/Document.cpp:
1440         (WebCore::Document::addListenerTypeIfNeeded): Added check for regionLayoutUpdate listeners
1441         * dom/Document.h:
1442         * dom/EventNames.h:
1443         (WebCore):
1444         * dom/Node.cpp:
1445         (WebCore::Node::dispatchRegionLayoutUpdateEvent):
1446         (WebCore):
1447         * dom/Node.h:
1448         (Node):
1449         * rendering/RenderFlowThread.cpp:
1450         (WebCore::RenderFlowThread::RenderFlowThread):
1451         (WebCore::RenderFlowThread::layout): Start the event dispatch timer but only if there are regionLayoutUpdate listeners and there is at least one region that had its layout updated.
1452         (WebCore::RenderFlowThread::computeOverflowStateForRegions): Mark regions that might had a layout update
1453         (WebCore::RenderFlowThread::regionLayoutUpdateEventTimerFired):
1454         (WebCore):
1455         * rendering/RenderFlowThread.h:
1456         * rendering/RenderRegion.cpp:
1457         (WebCore::RenderRegion::RenderRegion):
1458         * rendering/RenderRegion.h:
1459         (WebCore::RenderRegion::setDispatchRegionLayoutUpdateEvent):
1460         (WebCore::RenderRegion::shouldDispatchRegionLayoutUpdateEvent):
1461         (RenderRegion):
1462
1463 2012-03-14  Pierre Rossi  <pierre.rossi@gmail.com>
1464
1465         [Qt] Add support for vertical sliders in mobile theme
1466         https://bugs.webkit.org/show_bug.cgi?id=80179
1467
1468         This makes sliders using the "slider-vertical" appearance more sensible.
1469
1470         Reviewed by Simon Hausmann.
1471
1472         No new tests, since the mobile theme still isn't used in layout tests.
1473
1474         * platform/qt/RenderThemeQtMobile.cpp:
1475         (WebCore):
1476         (WebCore::StylePainterMobile::drawProgress):
1477         (WebCore::RenderThemeQtMobile::paintSliderTrack):
1478         * platform/qt/RenderThemeQtMobile.h:
1479         (StylePainterMobile):
1480
1481 2012-03-14  Jer Noble  <jer.noble@apple.com>
1482
1483         WebProcess spins beneath [QTMovie movieFileTypes:]
1484         https://bugs.webkit.org/show_bug.cgi?id=81133
1485
1486         Reviewed by Eric Carlson.
1487
1488         No new tests; speculative fix for top WebProcess spin.
1489
1490         When checking to see if a given mime type is supported by QuickTime,
1491         immediately exclude all types that do not begin with 'audio/' or 'video/'.
1492         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1493         (WebCore::MediaPlayerPrivateQTKit::supportsType):
1494
1495 2012-03-14  Zalan Bujtas  <zbujtas@gmail.com>
1496
1497         Make RenderIFrame::flattenFrame() return earlier, when frame flattening is disabled.
1498         https://bugs.webkit.org/show_bug.cgi?id=80301
1499
1500         Reviewed by Antti Koivisto.
1501
1502         Reorganize RenderIFrame flattenFrame() code, so that it returns
1503         earlier for the normal use case, when frame flattening is disabled.
1504         It also removes leftover null check.
1505
1506         No new tests, since there's no new functionality.
1507
1508         * rendering/RenderIFrame.cpp:
1509         (WebCore::RenderIFrame::flattenFrame):
1510
1511 2012-03-14  James Robinson  <jamesr@chromium.org>
1512
1513         [chromium] Provide explicit polling API to check if the platform is capable of accelerated 2d canvas
1514         https://bugs.webkit.org/show_bug.cgi?id=80667
1515
1516         Reviewed by Darin Fisher.
1517
1518         Query the platform to see if we can instantiate a context suitable for accelerating 2d canvas. If we can't, for
1519         instance if we're on a system that can't preserve a context when the screensaver comes up, then immediately fall
1520         back to software.
1521
1522         Covered by canvas layout tests in the virtual-gpu mode.
1523
1524         * html/HTMLCanvasElement.cpp:
1525         (WebCore::HTMLCanvasElement::shouldAccelerate):
1526         * platform/chromium/PlatformSupport.h:
1527
1528 2012-03-14  Carlos Garcia Campos  <cgarcia@igalia.com>
1529
1530         [GTK] Handle printing errors in WebKit2
1531         https://bugs.webkit.org/show_bug.cgi?id=77197
1532
1533         Reviewed by Gustavo Noronha Silva.
1534
1535         * platform/gtk/ErrorsGtk.cpp:
1536         (WebCore::printError): Create a generic print error.
1537         (WebCore::printerNotFoundError): Create a print error to notify
1538         that the selected printer could not be found.
1539         (WebCore::invalidPageRangeToPrint): Create a print error when the
1540         selected page range is invalid and there are no pages to print.
1541         * platform/gtk/ErrorsGtk.h:
1542         (WebCore): Add print error doamin.
1543
1544 2012-03-14  Nikolas Zimmermann  <nzimmermann@rim.com>
1545
1546         Make SVGUseElement respect & support externalResourcesRequired
1547         https://bugs.webkit.org/show_bug.cgi?id=81109
1548
1549         Reviewed by Rob Buis.
1550
1551         Generalize the existing externalResourcesRequired support from SVGScriptElement
1552         into SVGExternalResourcesRequired, so it can be shared with SVGUseElement, which
1553         was lacking proper externalResourcesRequired support.
1554
1555         <use xlink:href="external.svg" onload="alert('hi')" externalResourcesRequired="true"/>
1556         The onload handler now fires _after_ the external resources loaded, making it possible
1557         to write reliable tests that switch from internal to external resources or the other
1558         way around. Converted the new tests in svg/dynamic-updates/SVGUseElement* to listen
1559         to SVGLoad events, to make them reliable.
1560
1561         We may be able to generalize this to cover SVGImageElement as well (the only other class which
1562         is currently supporting externalResourcesRequired - but that's more involved, so I left it TODO).
1563
1564         Covered by existing tests and the changes to the new SVGUseElement tests.
1565
1566         * svg/SVGElement.h:
1567         (SVGElement): Make haveLoadedRequiredResources() public so SVGExternalResourcesRequired can call it.
1568         * svg/SVGExternalResourcesRequired.cpp: Refactored code from SVGScriptElement, 1:1 copies w/o changes.
1569         (WebCore::SVGExternalResourcesRequired::handleAttributeChange):
1570         (WebCore::SVGExternalResourcesRequired::dispatchLoadEvent):
1571         (WebCore::SVGExternalResourcesRequired::insertedIntoDocument):
1572         (WebCore::SVGExternalResourcesRequired::finishParsingChildren):
1573         (WebCore::SVGExternalResourcesRequired::haveLoadedRequiredResources):
1574         * svg/SVGExternalResourcesRequired.h: Add new virtual functions, that must be available in classes that inherit from SVGExternalResourcesRequired.
1575         (WebCore::SVGExternalResourcesRequired::setHaveFiredLoadEvent):
1576         (WebCore::SVGExternalResourcesRequired::isParserInserted):
1577         (WebCore::SVGExternalResourcesRequired::haveFiredLoadEvent):
1578         * svg/SVGScriptElement.cpp: Refactored externalResourcesRequired handling into SVGExternalResourcesRequired.
1579         (WebCore::SVGScriptElement::svgAttributeChanged):
1580         (WebCore::SVGScriptElement::insertedIntoDocument):
1581         (WebCore::SVGScriptElement::finishParsingChildren):
1582         * svg/SVGScriptElement.h: Ditto.
1583         (WebCore::SVGScriptElement::haveLoadedRequiredResources):
1584         (WebCore::SVGScriptElement::dispatchLoadEvent):
1585         (WebCore::SVGScriptElement::setHaveFiredLoadEvent):
1586         (WebCore::SVGScriptElement::isParserInserted):
1587         (WebCore::SVGScriptElement::haveFiredLoadEvent):
1588         * svg/SVGTests.cpp: Fix obvious typo, that leads to an assertion. Always return true if we know the attributeName.
1589         (WebCore::SVGTests::handleAttributeChange):
1590         * svg/SVGTests.h:
1591         * svg/SVGTextPathElement.cpp:
1592         (WebCore::SVGTextPathElement::insertedIntoDocument): Remove ambigous call warning.
1593         * svg/SVGUseElement.cpp: Support externalResourcesRequired="true/false" + dynamic changes of it. Covered by existing tests.
1594         (WebCore::SVGUseElement::SVGUseElement):
1595         (WebCore::SVGUseElement::create):
1596         (WebCore::SVGUseElement::insertedIntoDocument):
1597         (WebCore::SVGUseElement::svgAttributeChanged):
1598         (WebCore::SVGUseElement::notifyFinished):
1599         (WebCore::SVGUseElement::finishParsingChildren):
1600         (WebCore):
1601         * svg/SVGUseElement.h: Ditto.
1602         (WebCore::SVGUseElement::haveLoadedRequiredResources):
1603         (WebCore::SVGUseElement::setHaveFiredLoadEvent):
1604         (WebCore::SVGUseElement::isParserInserted):
1605         (WebCore::SVGUseElement::haveFiredLoadEvent):
1606         * svg/svgtags.in: Pass "bool wasInsertedByParser" to SVGUseElement constructor.
1607
1608 2012-03-14  Andrew Lo  <anlo@rim.com>
1609
1610         [BlackBerry] Implement REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR using AnimationFrameRateController
1611         https://bugs.webkit.org/show_bug.cgi?id=81000
1612
1613         Add BlackBerry port for DisplayRefreshMonitor using AnimationFrameRateController.
1614         Moved refreshDisplayOnMainThread to platform independant part of header.
1615
1616         Reviewed by Antonio Gomes.
1617
1618         requestAnimationFrame already covered by tests in LayoutTests/fast/animation.
1619
1620         * PlatformBlackBerry.cmake:
1621         * platform/graphics/DisplayRefreshMonitor.cpp:
1622         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
1623         * platform/graphics/DisplayRefreshMonitor.h:
1624         (WebCore):
1625         (DisplayAnimationClient):
1626         (WebCore::DisplayAnimationClient::~DisplayAnimationClient):
1627         (DisplayRefreshMonitor):
1628         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp: Added.
1629         (WebCore):
1630         (WebCore::DisplayAnimationClient::DisplayAnimationClient):
1631         (WebCore::DisplayAnimationClient::animationFrameChanged):
1632         (WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
1633         (WebCore::DisplayRefreshMonitor::startAnimationClient):
1634         (WebCore::DisplayRefreshMonitor::stopAnimationClient):
1635         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
1636         (WebCore::DisplayRefreshMonitor::displayLinkFired):
1637
1638 2012-03-14  Yury Semikhatsky  <yurys@chromium.org>
1639
1640         Web Inspector: use class name indexes instead of class names when evaluating aggregates
1641         https://bugs.webkit.org/show_bug.cgi?id=81100
1642
1643         Class name and type name indexes are now used when calculating class aggregates
1644         in heap snapshots instead of string lookup followed by a string comparison.
1645
1646         Class names like "Window / www.webkit.org" are now left as is in the UI (it used
1647         to be trimed to just "Window").
1648
1649         Reviewed by Pavel Feldman.
1650
1651         * inspector/front-end/HeapSnapshot.js:
1652         (WebInspector.HeapSnapshotNode.prototype.get classNameIndex):
1653         (WebInspector.HeapSnapshotNode.prototype.hasType):
1654         (WebInspector.HeapSnapshot.prototype._init):
1655         (WebInspector.HeapSnapshot.prototype._buildAggregates):
1656
1657 2012-03-14  Andrey Kosyakov  <caseq@chromium.org>
1658
1659         Web Inspector: add didCancelFrame timeline event
1660         https://bugs.webkit.org/show_bug.cgi?id=80994
1661
1662         Reviewed by Pavel Feldman.
1663
1664         - add an ability to cancel certain timeline events, unless they've been followed by other events.
1665         - implement didCancelFrame() event, fired when a platform decides not to render frame after didBeginFrame() was called.
1666
1667         Test: inspector/timeline/timeline-frames.html
1668
1669         * WebCore.exp.in:
1670         * inspector/InspectorInstrumentation.cpp:
1671         (WebCore::InspectorInstrumentation::didCancelFrameImpl):
1672         (WebCore):
1673         * inspector/InspectorInstrumentation.h:
1674         (InspectorInstrumentation):
1675         (WebCore::InspectorInstrumentation::didCancelFrame):
1676         (WebCore):
1677         * inspector/InspectorTimelineAgent.cpp:
1678         (WebCore::InspectorTimelineAgent::didBeginFrame):
1679         (WebCore):
1680         (WebCore::InspectorTimelineAgent::didCancelFrame):
1681         (WebCore::InspectorTimelineAgent::appendRecord):
1682         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
1683         (WebCore::InspectorTimelineAgent::pushCancelableRecord):
1684         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
1685         (WebCore::InspectorTimelineAgent::cancelRecord):
1686         * inspector/InspectorTimelineAgent.h:
1687         (InspectorTimelineAgent):
1688         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
1689         (TimelineRecordEntry):
1690         * testing/Internals.cpp:
1691         (WebCore::Internals::emitInspectorDidBeginFrame):
1692         (WebCore):
1693         (WebCore::Internals::emitInspectorDidCancelFrame):
1694         * testing/Internals.h:
1695         (Internals):
1696         * testing/Internals.idl:
1697
1698 2012-03-14  Dana Jansens  <danakj@chromium.org>
1699
1700         Region can acquire an empty span by subtracting an empty Region
1701         https://bugs.webkit.org/show_bug.cgi?id=81074
1702
1703         Reviewed by Anders Carlsson.
1704
1705         Subtracting an empty Region B from a Region A can cause A to end
1706         up with an empty span. This violates the rule that two Regions
1707         that cover the exact same area should have equal spans and segments.
1708
1709         Unit test: RegionTest.emptySpan
1710
1711         * platform/graphics/Region.cpp:
1712         (WebCore::Region::subtract):
1713
1714 2012-03-14  Simon Hausmann  <simon.hausmann@nokia.com>
1715
1716         [Textmap] Disable driver based BGRA swizzling for OpenGL/ES
1717
1718         Reviewed by Noam Rosenthal.
1719
1720         The current way of detecting swizzling support (check for GL_EXT_texture_format_BGRA8888)
1721         is unfortunately not reliable. We need a better way of detection that (filed bug 81103).
1722         In the meantime this patch reverts back to doing the swizzling in the texture mapper to
1723         get pixels back onto the screen.
1724
1725         * platform/graphics/texmap/TextureMapperGL.cpp:
1726         (WebCore::driverSupportsBGRASwizzling):
1727         (WebCore::BitmapTextureGL::updateContents):
1728
1729 2012-03-14  Leo Yang  <leo.yang@torchmobile.com.cn>
1730
1731         [BlackBerry] Upstream the BlackBerry change to platform/Cursor.h
1732         https://bugs.webkit.org/show_bug.cgi?id=81086
1733
1734         Reviewed by Rob Buis.
1735
1736         * platform/Cursor.h:
1737         (WebCore):
1738         (WebCore::Cursor::Cursor):
1739         Add the BlackBerry specific PlatformCursor.
1740         * platform/blackberry/PageClientBlackBerry.h:
1741         There was an alias named PlatformCursorHandle for PlatformCursor
1742         in the internal version of Cursor.h. But it's not necessary so it's
1743         not included in the upstreaming version of Cursor.h. As a result,
1744         use PlatformCursor directly in this file.
1745         (PageClientBlackBerry):
1746
1747 2012-03-14  Simon Hausmann  <simon.hausmann@nokia.com>
1748
1749         [Qt] RunLoopQt is missing reentrancy guards
1750         https://bugs.webkit.org/show_bug.cgi?id=80982
1751
1752         Reviewed by Tor Arne Vestbø.
1753
1754         Avoid recursive calls to RunLoop::performWork() with a simple
1755         counting mechanism, to avoid out-of-order message dispatching.
1756
1757         * platform/qt/RunLoopQt.cpp:
1758         (WebCore::RunLoop::TimerObject::TimerObject):
1759         (WebCore::RunLoop::TimerObject::performWork):
1760         (RunLoop::TimerObject):
1761
1762 2012-03-14  Ilya Tikhonovsky  <loislo@chromium.org>
1763
1764         Web Inspector: small improvement for HeapSnapshot performance ~12%.
1765         https://bugs.webkit.org/show_bug.cgi?id=81033
1766
1767         Reviewed by Yury Semikhatsky.
1768
1769         * inspector/front-end/HeapSnapshot.js:
1770         (WebInspector.HeapSnapshot.prototype.get nodeCount):
1771         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
1772         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
1773         (WebInspector.HeapSnapshot.prototype.get nodeIndexes):
1774         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
1775
1776 2012-03-14  Kentaro Hara  <haraken@chromium.org>
1777
1778         Return null when shouldAllowAccessToNode() fails
1779         https://bugs.webkit.org/show_bug.cgi?id=80205
1780
1781         Reviewed by Adam Barth.
1782
1783         shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
1784         and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
1785         requires that they should return null when the security check fails.
1786         Thus this patch changes the return value from undefined to null.
1787
1788         http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
1789         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
1790
1791         Tests: http/tests/security/local-iFrame-from-remote.html
1792                http/tests/security/cross-frame-access-frameelement.html
1793                http/tests/security/cross-frame-access-put.html
1794
1795         * bindings/scripts/CodeGeneratorJS.pm:
1796         (GenerateImplementation):
1797         * bindings/scripts/CodeGeneratorV8.pm:
1798         (GenerateNormalAttrGetter):
1799         (GenerateFunctionCallback):
1800
1801         * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
1802         (WebCore::jsTestObjContentDocument):
1803         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
1804         * bindings/scripts/test/V8/V8TestObj.cpp:
1805         (WebCore::TestObjInternal::contentDocumentAttrGetter):
1806         (WebCore::TestObjInternal::getSVGDocumentCallback):
1807
1808 2012-03-14  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
1809
1810         Build error: DNSSoup.cpp:30: fatal error: CString.h: No such file or
1811         directory
1812         https://bugs.webkit.org/show_bug.cgi?id=81093
1813
1814         Reviewed by Philippe Normand.
1815
1816         Fix build error introduced by r110669.
1817
1818         * platform/network/soup/DNSSoup.cpp:
1819
1820 2012-03-14  Marja Hölttä  <marja@google.com>
1821
1822         WebHTTPBody: Keep track of whether the data includes passwords.
1823         https://bugs.webkit.org/show_bug.cgi?id=81003
1824
1825         Reviewed by Darin Fisher.
1826
1827         This change enables Chrome to save HTTP bodies selectively, only
1828         if they don't contain passwords.
1829
1830         * loader/FormSubmission.cpp:
1831         (WebCore::FormSubmission::create): Check if the data contains passwords.
1832         * platform/network/FormData.cpp:
1833         (WebCore::FormData::FormData): Added containsPasswordData, setContainsPasswordData.
1834         * platform/network/FormData.h:
1835         (WebCore::FormData::containsPasswordData): Added.
1836         (WebCore::FormData::setHasPasswordData): Added.
1837         (FormData):
1838
1839 2012-03-14  Vsevolod Vlasov  <vsevik@chromium.org>
1840
1841         Web Inspector: Add snippets tab to scripts navigator.
1842         https://bugs.webkit.org/show_bug.cgi?id=81018
1843
1844         Reviewed by Pavel Feldman.
1845
1846         * English.lproj/localizedStrings.js:
1847         * inspector/front-end/ScriptsNavigator.js:
1848         (WebInspector.ScriptsNavigator):
1849         (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
1850         (WebInspector.ScriptsNavigator.prototype.focus):
1851         (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
1852         (WebInspector.ScriptsNavigator.prototype.reset):
1853         (WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement):
1854         (WebInspector.ScriptsNavigator.prototype._createFolderTreeElement):
1855         (WebInspector.ScriptsNavigator.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
1856         (WebInspector.ScriptsNavigator.prototype._scriptFolderIdentifier):
1857         (WebInspector.NavigatorTreeOutline):
1858         * inspector/front-end/ScriptsPanel.js:
1859         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1860         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
1861         * inspector/front-end/SnippetsModel.js:
1862
1863 2012-03-14  Pavel Feldman  <pfeldman@chromium.org>
1864
1865         Web Inspector: Copy on the Console gives a mangled result.
1866         https://bugs.webkit.org/show_bug.cgi?id=81091
1867
1868         Reviewed by Vsevolod Vlasov.
1869
1870         * inspector/front-end/ConsoleMessage.js:
1871         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1872         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1873
1874 2012-03-14  Nikolas Zimmermann  <nzimmermann@rim.com>
1875
1876         External <use> xlink:href references do not work
1877         https://bugs.webkit.org/show_bug.cgi?id=12499
1878
1879         Reviewed by Zoltan Herczeg.
1880
1881         Follow-up fix after r110676.
1882         Assertions are firing due last minute changes in isExternalURIReference.
1883
1884         Fix detecting local resources properly, when the given iri contains a /complex/path.
1885         Use document->completeURL() instead, and compare with the document->url() to decide
1886         if its a local reference or not.
1887
1888         If an external document load fails with an error (eg. file missing) don't assert
1889         in debug builds, instead handle it gracefully.
1890
1891         I decided to clean the code up as well, to make it more safe & obvious.
1892
1893         Test: svg/custom/use-external-crash.svg
1894
1895         * svg/SVGURIReference.cpp:
1896         (WebCore::SVGURIReference::targetElementFromIRIString):
1897         * svg/SVGURIReference.h:
1898         (WebCore::SVGURIReference::isExternalURIReference):
1899         * svg/SVGUseElement.cpp:
1900         (WebCore::SVGUseElement::externalDocument):
1901         (WebCore::SVGUseElement::buildPendingResource):
1902
1903 2012-03-14  Lars Knudsen  <lars.knudsen@nokia.com>
1904
1905         3D transformed surfaces with z>0 gets cropped
1906         https://bugs.webkit.org/show_bug.cgi?id=81009
1907
1908         Reviewed by Noam Rosenthal.
1909
1910         The scissor clipping in TextureMapperGL didn't take 3D transforms 
1911         into account when calculating the clipping region.
1912         Now, it will bail out early if the transform is not affine.
1913
1914         No new tests. Tested by current compositing layout tests.
1915
1916         * platform/graphics/texmap/TextureMapperGL.cpp:
1917         (WebCore::TextureMapperGL::beginScissorClip):
1918
1919 2012-03-14  Hajime Morrita  <morrita@chromium.org>
1920
1921         Unreviewed build fix.
1922
1923         * html/track/TextTrackList.cpp:
1924         (TextTrackList::append):
1925         (TextTrackList::remove):
1926         (TextTrackList::owner): Changed return type from HTMLMediaElement* to Node* and uninlined.
1927         * html/track/TextTrackList.h:
1928         (TextTrackList):
1929
1930 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
1931
1932         Web Inspector: [InspectorIndexedDB] Remote object should be released when data view is removed/updated.
1933         https://bugs.webkit.org/show_bug.cgi?id=81022
1934
1935         Reviewed by Pavel Feldman.
1936
1937         * inspector/front-end/IndexedDBViews.js:
1938         (WebInspector.IDBDataView):
1939         (WebInspector.IDBDataView.prototype._updateData.callback):
1940         (WebInspector.IDBDataView.prototype._updateData):
1941         (WebInspector.IDBDataView.prototype.get statusBarItems):
1942         (WebInspector.IDBDataView.prototype.clear):
1943         * inspector/front-end/ResourcesPanel.js:
1944         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
1945         (WebInspector.IDBDatabaseTreeElement.prototype.update):
1946         (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
1947         (WebInspector.IDBDatabaseTreeElement.prototype._objectStoreRemoved):
1948         (WebInspector.IDBDatabaseTreeElement.prototype.clear):
1949         (WebInspector.IDBObjectStoreTreeElement.prototype.update):
1950         (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
1951         (WebInspector.IDBObjectStoreTreeElement.prototype._indexRemoved):
1952         (WebInspector.IDBObjectStoreTreeElement.prototype.clear):
1953         (WebInspector.IDBIndexTreeElement.prototype.onselect):
1954         (WebInspector.IDBIndexTreeElement.prototype.clear):
1955
1956 2012-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
1957
1958         Web Inspector: Introduce SnippetsScriptMapping.
1959         https://bugs.webkit.org/show_bug.cgi?id=80890
1960
1961         Reviewed by Pavel Feldman.
1962
1963         * inspector/front-end/ScriptMapping.js:
1964         (WebInspector.MainScriptMapping):
1965         (WebInspector.MainScriptMapping.prototype.addScript):
1966         (WebInspector.MainScriptMapping.prototype._mappingForScript):
1967         * inspector/front-end/SnippetsModel.js:
1968         (WebInspector.SnippetsModel.prototype.snippetForId):
1969         (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
1970         (WebInspector.SnippetsScriptMapping):
1971         (WebInspector.SnippetsScriptMapping.prototype.uiSourceCodeList):
1972         (WebInspector.SnippetsScriptMapping.prototype.addScript):
1973         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1974         (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript.get if):
1975         (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript):
1976         (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted.get this):
1977         (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted):
1978         (WebInspector.SnippetsScriptMapping.prototype.reset):
1979         (WebInspector.SnippetContentProvider):
1980
1981 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
1982
1983         Unreviewed, rolling out r110673.
1984         http://trac.webkit.org/changeset/110673
1985         https://bugs.webkit.org/show_bug.cgi?id=81090
1986
1987         "Qt minimal build broken" (Requested by yurys on #webkit).
1988
1989         * inspector/CodeGeneratorInspector.py:
1990         (CommandReturnPassModel.ByPointer.get_set_return_condition):
1991         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
1992         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
1993         (Generator.process_event):
1994         (Generator.process_command):
1995         * inspector/ContentSearchUtils.cpp:
1996         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
1997         (WebCore::ContentSearchUtils::searchInTextByLines):
1998         * inspector/ContentSearchUtils.h:
1999         (ContentSearchUtils):
2000         * inspector/InjectedScript.cpp:
2001         (WebCore::InjectedScript::evaluate):
2002         (WebCore::InjectedScript::callFunctionOn):
2003         (WebCore::InjectedScript::evaluateOnCallFrame):
2004         (WebCore::InjectedScript::makeEvalCall):
2005         * inspector/InjectedScript.h:
2006         (InjectedScript):
2007         * inspector/InspectorDOMDebuggerAgent.cpp:
2008         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
2009         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
2010         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
2011         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
2012         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
2013         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
2014         * inspector/InspectorDebuggerAgent.cpp:
2015         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
2016         (WebCore::InspectorDebuggerAgent::setBreakpoint):
2017         (WebCore::InspectorDebuggerAgent::searchInContent):
2018         (WebCore::InspectorDebuggerAgent::setScriptSource):
2019         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
2020         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
2021         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2022         (WebCore::InspectorDebuggerAgent::didPause):
2023         (WebCore::InspectorDebuggerAgent::breakProgram):
2024         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
2025         * inspector/InspectorDebuggerAgent.h:
2026         (InspectorDebuggerAgent):
2027         * inspector/InspectorPageAgent.cpp:
2028         (WebCore::buildObjectForCookie):
2029         (WebCore::buildArrayForCookies):
2030         (WebCore::InspectorPageAgent::getCookies):
2031         (WebCore::InspectorPageAgent::getResourceTree):
2032         (WebCore::InspectorPageAgent::searchInResource):
2033         (WebCore::InspectorPageAgent::searchInResources):
2034         (WebCore::InspectorPageAgent::buildObjectForFrame):
2035         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
2036         * inspector/InspectorPageAgent.h:
2037         * inspector/InspectorRuntimeAgent.cpp:
2038         (WebCore::InspectorRuntimeAgent::evaluate):
2039         (WebCore::InspectorRuntimeAgent::callFunctionOn):
2040
2041 2012-03-14  Renata Hodovan  <reni@webkit.org>
2042
2043         External <use> xlink:href references do not work
2044         https://bugs.webkit.org/show_bug.cgi?id=12499
2045
2046         Reviewed by Nikolas Zimmermann.
2047
2048         This is a follow-up patch after r108785.
2049         In this patch we bind the previously introduced CachedSVGDocument class
2050         into the caching mechanism of SVGUseElement. The mode how external resources
2051         are handled is similar to the processing of internal ones. We build the instance
2052         and shadow tree the same way but we have to keep in mind that the requested resources
2053         maybe not loaded yet. We can check it with cachedDocumentIsStillLoading() function.
2054
2055         SVGURIReference::targetElementFromIRIString() also need to be extended. The baseURI
2056         computation needs to take the referenced documents URL into account, instead of the current documents.
2057
2058         The patch affects a lot of tests which have external resources especially in svg/batik. Because
2059         of the size of that test refactor they will be commited in a follow-up patch.
2060
2061         Tests: svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg
2062                svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t.svg
2063                svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t.svg
2064                svg/custom/use-extern-href.svg
2065                svg/custom/use-referencing-an-image-expected.svg
2066                svg/custom/use-referencing-an-image.svg
2067                svg/custom/use-referencing-indirectly-itself-expected.svg
2068                svg/custom/use-referencing-indirectly-itself.svg
2069                svg/custom/use-referencing-itself-expected.svg
2070                svg/custom/use-referencing-itself.svg
2071                svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
2072                svg/dynamic-updates/SVGUseElement-dom-href2-attr.html
2073                svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html
2074                svg/dynamic-updates/SVGUseElement-svgdom-href2-prop.html
2075
2076         * loader/cache/CachedResourceLoader.cpp:
2077         (WebCore):
2078         (WebCore::CachedResourceLoader::requestSVGDocument):
2079         * loader/cache/CachedResourceLoader.h:
2080         (WebCore):
2081         (CachedResourceLoader):
2082         * page/ContentSecurityPolicy.h:
2083         * platform/KURL.cpp:
2084         (WebCore::equalIgnoringFragmentIdentifier):
2085         * platform/network/chromium/ResourceRequest.h:
2086         * svg/SVGURIReference.cpp:
2087         (WebCore::urlFromIRIStringWithFragmentIdentifier):
2088         (WebCore):
2089         (WebCore::SVGURIReference::targetElementFromIRIString):
2090         * svg/SVGURIReference.h:
2091         (SVGURIReference):
2092         (WebCore::SVGURIReference::isExternalURIReference):
2093         * svg/SVGUseElement.cpp:
2094         (WebCore::SVGUseElement::SVGUseElement):
2095         (WebCore::SVGUseElement::~SVGUseElement):
2096         (WebCore):
2097         (WebCore::SVGUseElement::referencedDocument):
2098         (WebCore::SVGUseElement::externalDocument):
2099         (WebCore::SVGUseElement::svgAttributeChanged):
2100         (WebCore::dumpInstanceTree):
2101         (WebCore::SVGUseElement::buildPendingResource):
2102         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
2103         (WebCore::SVGUseElement::hasCycleUseReferencing):
2104         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
2105         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
2106         (WebCore::SVGUseElement::notifyFinished):
2107         (WebCore::SVGUseElement::cachedDocumentIsStillLoading):
2108         (WebCore::SVGUseElement::instanceTreeIsLoading):
2109         * svg/SVGUseElement.h:
2110         (WebCore):
2111         (SVGUseElement):
2112
2113 2012-03-14  Peter Rybin  <peter.rybin@gmail.com>
2114
2115         Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
2116         https://bugs.webkit.org/show_bug.cgi?id=80789
2117
2118         Reviewed by Yury Semikhatsky.
2119
2120         OptOutput class is added for optional return parameters.
2121
2122         Strict mode added to Generator that makes all parameter types strict
2123         and drop pre-set default values for return parameters.
2124
2125         Debugger and Page domain is switched to strict mode.
2126
2127
2128         * inspector/CodeGeneratorInspector.py:
2129         (CommandReturnPassModel.ByPointer):
2130         (CommandReturnPassModel):
2131         (CommandReturnPassModel.OptOutput):
2132         (CommandReturnPassModel.OptOutput.__init__):
2133         (CommandReturnPassModel.OptOutput.get_return_var_type):
2134         (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
2135         (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
2136         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
2137         (CommandReturnPassModel.OptOutput.get_set_return_condition):
2138         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
2139         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
2140         (OptOutput):
2141         (Generator.process_event):
2142         (Generator.process_command):
2143         * inspector/ContentSearchUtils.cpp:
2144         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
2145         (WebCore::ContentSearchUtils::searchInTextByLines):
2146         * inspector/ContentSearchUtils.h:
2147         (ContentSearchUtils):
2148         * inspector/InjectedScript.cpp:
2149         (WebCore::InjectedScript::evaluate):
2150         (WebCore::InjectedScript::callFunctionOn):
2151         (WebCore::InjectedScript::evaluateOnCallFrame):
2152         (WebCore::InjectedScript::makeEvalCall):
2153         * inspector/InjectedScript.h:
2154         (InjectedScript):
2155         * inspector/InspectorDOMDebuggerAgent.cpp:
2156         (WebCore):
2157         * inspector/InspectorDebuggerAgent.cpp:
2158         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
2159         (WebCore::InspectorDebuggerAgent::setBreakpoint):
2160         (WebCore::InspectorDebuggerAgent::searchInContent):
2161         (WebCore::InspectorDebuggerAgent::setScriptSource):
2162         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
2163         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
2164         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2165         (WebCore::InspectorDebuggerAgent::didPause):
2166         (WebCore::InspectorDebuggerAgent::breakProgram):
2167         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
2168         * inspector/InspectorDebuggerAgent.h:
2169         (InspectorDebuggerAgent):
2170         * inspector/InspectorPageAgent.cpp:
2171         (WebCore::buildObjectForCookie):
2172         (WebCore::buildArrayForCookies):
2173         (WebCore::InspectorPageAgent::getCookies):
2174         (WebCore::InspectorPageAgent::getResourceTree):
2175         (WebCore::InspectorPageAgent::searchInResource):
2176         (WebCore::InspectorPageAgent::searchInResources):
2177         (WebCore::InspectorPageAgent::buildObjectForFrame):
2178         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
2179         * inspector/InspectorPageAgent.h:
2180         * inspector/InspectorRuntimeAgent.cpp:
2181         (WebCore::InspectorRuntimeAgent::evaluate):
2182         (WebCore::InspectorRuntimeAgent::callFunctionOn):
2183
2184 2012-03-14  Sergio Villar Senin  <svillar@igalia.com>
2185
2186         Unreviewed. Build fix for EFL after r110669.
2187
2188         * PlatformEfl.cmake: added DNSSoup.cpp
2189
2190 2012-03-13  Sergio Villar Senin  <svillar@igalia.com>
2191
2192         [GTK] Use the same DNS prefetching path than the other ports.
2193         https://bugs.webkit.org/show_bug.cgi?id=80997
2194
2195         Reviewed by Martin Robinson.
2196
2197         This patch basically reverts r56128. There is no need to add an
2198         special code path for GTK+ DNS pre-fetching because the main
2199         reason to do that (some potential changes in libsoup) is not
2200         going to happen. It also reduces the amount of DNS queries by
2201         adding a NULL hostname check.
2202
2203         No need for new tests as this just moves code around.
2204
2205         * GNUmakefile.list.am:
2206         * html/HTMLAnchorElement.cpp:
2207         (WebCore::HTMLAnchorElement::parseAttribute):
2208         * html/HTMLLinkElement.cpp:
2209         * loader/LinkLoader.cpp:
2210         (WebCore::LinkLoader::loadLink):
2211         * page/Chrome.cpp:
2212         (WebCore::Chrome::mouseDidMoveOverElement):
2213         * platform/network/DNS.h:
2214         (WebCore):
2215         * platform/network/ResourceHandle.cpp:
2216         * platform/network/ResourceHandle.h:
2217         (ResourceHandle):
2218         * platform/network/chromium/DNSChromium.cpp:
2219         * platform/network/soup/DNSSoup.cpp: restored.
2220         (WebCore):
2221         (WebCore::prefetchDNS):
2222         * platform/network/soup/ResourceHandleSoup.cpp:
2223
2224 2012-03-14  Kentaro Hara  <haraken@chromium.org>
2225
2226         Return null when shouldAllowAccessToNode() fails
2227         https://bugs.webkit.org/show_bug.cgi?id=80205
2228
2229         Reviewed by Adam Barth.
2230
2231         shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
2232         and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
2233         requires that they should return null when the security check fails.
2234         Thus this patch changes the return value from undefined to null.
2235
2236         http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
2237         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
2238
2239         Tests: http/tests/security/local-iFrame-from-remote.html
2240                http/tests/security/cross-frame-access-frameelement.html
2241                http/tests/security/cross-frame-access-put.html
2242
2243         * bindings/scripts/CodeGeneratorJS.pm:
2244         (GenerateImplementation):
2245         * bindings/scripts/CodeGeneratorV8.pm:
2246         (GenerateNormalAttrGetter):
2247         (GenerateFunctionCallback):
2248
2249         * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
2250         (WebCore::jsTestObjContentDocument):
2251         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
2252         * bindings/scripts/test/V8/V8TestObj.cpp:
2253         (WebCore::TestObjInternal::contentDocumentAttrGetter):
2254         (WebCore::TestObjInternal::getSVGDocumentCallback):
2255
2256 2012-03-13  Yosifumi Inoue  <yosin@chromium.org>
2257
2258         [Forms] Hidden input element should not have labels. 
2259         https://bugs.webkit.org/show_bug.cgi?id=80403
2260
2261         Reviewed by Kent Tamura.
2262
2263         This patch changes "labels" attribute behavior for hidden input type.
2264         It returns null instead of NodeList of labels or empty node list.
2265
2266         Note: The HTML5 specification isn't clear for non-labelable element's "labels"
2267         attribute return value. Firefox and Opera return empty node list. IE returns null.
2268
2269         No new tests. Existing tests are updated.
2270
2271         * html/HTMLInputElement.cpp:
2272         (WebCore::HTMLInputElement::isLabelable): Added. Dispatch to InputType.
2273         * html/HiddenInputType.h:  Added isLabelable returning false.
2274         * html/InputType.cpp:
2275         (WebCore::InputType::isLabelable): Added. Returning true for all input types except for "hidden" type.
2276         (WebCore):
2277         * html/InputType.h:
2278         (InputType): Added isLabelable declaration.
2279
2280 2012-03-13  Yosifumi Inoue  <yosin@chromium.org>
2281
2282         [Forms] The "output" element should have labels.
2283         https://bugs.webkit.org/show_bug.cgi?id=80466
2284
2285         Reviewed by Kent Tamura.
2286
2287         This patch enables functionality of "labels" attribute for
2288         HTMLOutputElement implemented in LabelableElement which use
2289         isLabelable predicate whether an element can have label or not.
2290
2291         Update existing tests in fast/forms/label/ directory to cover
2292         the "output" element with the "labels" attribute.
2293
2294         * html/HTMLOutputElement.h: Implement virtual method isLabelable.
2295
2296 2012-03-13  Luke Macpherson   <macpherson@chromium.org>
2297
2298         Move opacity clamping into RenderStyle setter.
2299         https://bugs.webkit.org/show_bug.cgi?id=76966
2300
2301         Reviewed by Eric Seidel.
2302
2303         Covered by existing tests.
2304
2305         * css/CSSStyleSelector.cpp:
2306         (WebCore::CSSStyleSelector::applyProperty):
2307         * rendering/style/RenderStyle.h:
2308         (WebCore::RenderStyleBitfields::setOpacity):
2309
2310 2012-03-12  Igor Oliveira  <igor.o@sisa.samsung.com>
2311
2312         Split the extra logic out of RenderObjectChildList::updateBeforeAfterContent
2313         https://bugs.webkit.org/show_bug.cgi?id=80856
2314
2315         Extra part of the generated content handling logic out of RenderObjectChildList::updateBeforeAfterContent
2316
2317         Reviewed by Julien Chaffraix.
2318
2319         No change in behavior expected.
2320
2321         * rendering/RenderObjectChildList.cpp:
2322         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
2323         (WebCore::createRenderForBeforeAfterContent):
2324         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
2325         * rendering/RenderObjectChildList.h:
2326         (WebCore):
2327         (RenderObjectChildList):
2328
2329 2012-03-13  Simon Fraser  <simon.fraser@apple.com>
2330
2331         Fix potential crash when loading test results
2332         https://bugs.webkit.org/show_bug.cgi?id=81062
2333         <rdar://problem/11041732>
2334         
2335         Reviewed by Dean Jackson.
2336
2337         If RenderLayerBacking::isSimpleContainerCompositingLayer() is called early,
2338         before the document has a documentElement(), then it crashes. Fix with
2339         a null check on documentElement().
2340         
2341         No test because it's timing dependent.
2342
2343         * rendering/RenderLayerBacking.cpp:
2344         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
2345
2346 2012-03-13  Dan Bernstein  <mitz@apple.com>
2347
2348         <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com
2349         https://bugs.webkit.org/show_bug.cgi?id=81051
2350
2351         Reviewed by Simon Fraser.
2352
2353         Test: ManualTests/inline-repaint-container.html.
2354
2355         * rendering/RenderInline.cpp:
2356         (WebCore::RenderInline::clippedOverflowRectForRepaint): This function was not handling the
2357         case of the repaint container being a descendant of the containing block correctly, leading
2358         to the assertion failure, but also to a correctness bug seen in the new test. If the repaint
2359         container is a descendant of the containing block, just return the rect in the repaint
2360         container coordinates.
2361
2362 2012-03-13  Dan Bernstein  <mitz@apple.com>
2363
2364         <rdar://problem/11025217> [Mac] Assertion failure in collectComplexTextRunsForCharactersCoreText
2365         https://bugs.webkit.org/show_bug.cgi?id=77044
2366
2367         Reviewed by Sam Weinig.
2368
2369         Test: platform/mac/fast/text/core-text-fallback-to-unknown-font.html
2370
2371         Handle the case of Core Text choosing a fallback font that NSFontManager cannot find by name.
2372
2373         * platform/graphics/FontCache.h:
2374         (FontCache): Made ComplexTextController a friend class.
2375         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2376         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Removed the
2377         failing assertion, which was not true, and added code to handle the case where a font
2378         cannot be found by name by using the font as returned from Core Text.
2379
2380 2012-03-13  Erik Arvidsson  <arv@chromium.org>
2381
2382         [V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
2383         https://bugs.webkit.org/show_bug.cgi?id=80880
2384
2385         Reviewed by Adam Barth.
2386
2387         We used to add a hidden property in the getter to the returned wrapper.
2388         With this patch we instead handle the liveness of the wrapper in the GC phase by
2389         calling v8::V8::AddHiddenReference.
2390
2391         To reduce the amount of custom code we need, the V8 code generator now supports
2392         GenerateIsReachable (as well as CustomIsReachable) which, even though different
2393         from the JSC attribute, is used in the same cases and takes the same values (even though
2394         at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
2395         also have a dependent life time (just like if V8DependentLifetime was present).
2396
2397         Second try. This time with an added include in TextTrackList.cpp.
2398
2399         No new tests. Covered by existing tests.
2400
2401         * Target.pri:
2402         * UseV8.cmake:
2403         * WebCore.gypi:
2404         * bindings/scripts/CodeGeneratorJS.pm:
2405         (GetGenerateIsReachable):
2406         (GetCustomIsReachable):
2407         (GenerateHeader):
2408         (GenerateImplementation):
2409         * bindings/scripts/CodeGeneratorV8.pm:
2410         (NeedsToVisitDOMWrapper):
2411         (GetGenerateIsReachable):
2412         (GetCustomIsReachable):
2413         (GenerateVisitDOMWrapper):
2414         (GenerateHeader):
2415         (GenerateNamedConstructorCallback):
2416         (GenerateImplementation):
2417         * bindings/scripts/IDLAttributes.txt:
2418         * bindings/scripts/test/V8/V8Float64Array.cpp:
2419         (WebCore):
2420         * bindings/scripts/test/V8/V8Float64Array.h:
2421         (V8Float64Array):
2422         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2423         (WebCore):
2424         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2425         (V8TestActiveDOMObject):
2426         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2427         (WebCore):
2428         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2429         (V8TestCustomNamedGetter):
2430         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2431         (WebCore):
2432         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2433         (V8TestEventConstructor):
2434         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2435         (WebCore):
2436         * bindings/scripts/test/V8/V8TestEventTarget.h:
2437         (V8TestEventTarget):
2438         * bindings/scripts/test/V8/V8TestInterface.cpp:
2439         (WebCore):
2440         * bindings/scripts/test/V8/V8TestInterface.h:
2441         (V8TestInterface):
2442         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2443         (WebCore):
2444         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2445         (V8TestMediaQueryListListener):
2446         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2447         (WebCore):
2448         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2449         (V8TestNamedConstructor):
2450         * bindings/scripts/test/V8/V8TestObj.cpp:
2451         (WebCore):
2452         * bindings/scripts/test/V8/V8TestObj.h:
2453         (V8TestObj):
2454         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2455         (WebCore):
2456         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2457         (V8TestSerializedScriptValueInterface):
2458         * bindings/v8/NPV8Object.cpp:
2459         (WebCore::npObjectTypeInfo):
2460         * bindings/v8/V8GCController.cpp:
2461         (WebCore::GrouperVisitor::visitDOMWrapper):
2462         * bindings/v8/WrapperTypeInfo.h:
2463         (WebCore):
2464         (WrapperTypeInfo):
2465         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
2466         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2467         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
2468         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2469         (WebCore):
2470         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2471         * bindings/v8/custom/V8StyleSheetCustom.cpp:
2472         (WebCore::toV8):
2473         * css/CSSStyleSheet.idl:
2474         * css/StyleSheet.idl:
2475         * dom/DOMStringMap.idl:
2476         * dom/NamedNodeMap.idl:
2477         * html/DOMTokenList.idl:
2478         * html/track/TextTrackList.cpp:
2479         * html/track/TextTrackList.idl:
2480
2481 2012-03-13  Jacky Jiang  <zhajiang@rim.com>
2482
2483         MathML crash in WebCore::Node::previousSibling()
2484         https://bugs.webkit.org/show_bug.cgi?id=80773
2485
2486         Reviewed by Julien Chaffraix.
2487
2488         When adding child for msub render, if the child is mtr or mtd render,
2489         we will creat an anonymous render as the container. As the anonymous
2490         render's node is 0, accessing it directly can cause crash.
2491         We should do a valid check of the node before using. In addition to
2492         that, for msub, attach the anonymous render and it's children to render
2493         tree. For msubsup, such kind of situation should never happen based on
2494         the current codebase.
2495
2496         Test: mathml/msub-anonymous-child-render-crash.html
2497
2498         * rendering/mathml/RenderMathMLSubSup.cpp:
2499         (WebCore::RenderMathMLSubSup::addChild):
2500
2501 2012-03-13  Mihnea Ovidenie  <mihnea@adobe.com>
2502
2503         [CSSRegions]NamedFlow::getRegionsByContentNode should not return a live NodeList
2504         https://bugs.webkit.org/show_bug.cgi?id=81021
2505
2506         Reviewed by Ryosuke Niwa.
2507
2508         Reverting the original patch as we need a better solution.
2509
2510         * CMakeLists.txt:
2511         * GNUmakefile.list.am:
2512         * Target.pri:
2513         * WebCore.gypi:
2514         * WebCore.vcproj/WebCore.vcproj:
2515         * WebCore.xcodeproj/project.pbxproj:
2516         * dom/Node.cpp:
2517         (WebCore::NodeListsNodeData::invalidateCaches):
2518         (WebCore::NodeListsNodeData::isEmpty):
2519         * dom/Node.h:
2520         (Node):
2521         * dom/NodeRareData.h:
2522         (NodeListsNodeData):
2523         * dom/RegionNodeList.cpp: Removed.
2524         * dom/RegionNodeList.h: Removed.
2525         * dom/WebKitNamedFlow.cpp:
2526         * dom/WebKitNamedFlow.h:
2527         (WebKitNamedFlow):
2528         * dom/WebKitNamedFlow.idl:
2529         * rendering/RenderFlowThread.cpp:
2530         * rendering/RenderFlowThread.h:
2531         * rendering/RenderRegion.h:
2532         (RenderRegion):
2533
2534 2012-03-13  Shawn Singh  <shawnsingh@chromium.org>
2535
2536         [chromium] wrong transform causing incorrect culling
2537         https://bugs.webkit.org/show_bug.cgi?id=80471
2538
2539         Reviewed by James Robinson.
2540
2541         Unit test added to CCRenderSurfaceTest.cpp
2542
2543         In addition to using originTransform() instead of drawTransform(),
2544         this patch shuffles a bit of code so that a unit test can be
2545         easily added.
2546
2547         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2548         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
2549         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2550         (WebCore::CCRenderSurface::createSharedQuadState):
2551         (WebCore):
2552         * platform/graphics/chromium/cc/CCRenderSurface.h:
2553         (CCRenderSurface):
2554
2555 2012-03-13  Dave Tharp  <dtharp@codeaurora.org>
2556
2557         Alternate xml-stylesheets with no title are loaded, in violation of the CSSOM draft
2558         https://bugs.webkit.org/show_bug.cgi?id=77549
2559
2560         Reviewed by David Hyatt.
2561
2562         Amended code to ignore alternate stylesheets that do not have a title attribute.
2563
2564         Test: fast/css/xml-stylesheet-alternate-no-title.xhtml
2565
2566         * dom/ProcessingInstruction.cpp:
2567         (WebCore::ProcessingInstruction::checkStyleSheet):
2568
2569 2012-03-13  Levi Weintraub  <leviw@chromium.org>
2570
2571         Revert RenderLayer::absoluteBoundingBox to an IntRect
2572         https://bugs.webkit.org/show_bug.cgi?id=81017
2573
2574         Reviewed by Eric Seidel.
2575
2576         Reverting RenderLayer::absoluteBoundingBox to an (pixel snapped) IntRect. Whenever
2577         possible, we use integers representing for absolute coordinates. This is especially
2578         relevant for methods, such as this one, that are exported and used in platform code.
2579
2580         No new tests. No change in behavior.
2581
2582         * rendering/RenderLayer.cpp:
2583         (WebCore::RenderLayer::absoluteBoundingBox):
2584         * rendering/RenderLayer.h:
2585         (RenderLayer):
2586         * rendering/RenderLayerCompositor.cpp:
2587         (WebCore::RenderLayerCompositor::requiresCompositingForPosition): This intersects
2588         the absolute bounding box with the FrameView, which uses all integer values. It's
2589         the only use of absoluteBoundingBox in WebCore.
2590
2591 2012-03-13  Nat Duca  <nduca@chromium.org>
2592
2593         [chromium] vsync ticks are needed in invisible tabs when we are still updating resources
2594         https://bugs.webkit.org/show_bug.cgi?id=80910
2595
2596         Reviewed by James Robinson.
2597
2598         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
2599         (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
2600
2601 2012-03-13  Dave Tharp  <dtharp@codeaurora.org>
2602
2603         Alternate stylesheets (without title attribute) are loaded on refresh
2604         https://bugs.webkit.org/show_bug.cgi?id=24354
2605
2606         Reviewed by David Hyatt.
2607
2608         Alternate stylesheets are now ignored in <link> tags if 
2609         they have no title attribute (per spec).
2610
2611         Tests: fast/css/link-alternate-stylesheet-1.html
2612                fast/css/link-alternate-stylesheet-2.html
2613                fast/css/link-alternate-stylesheet-3.html
2614                fast/css/link-alternate-stylesheet-4.html
2615                fast/css/link-alternate-stylesheet-5.html
2616
2617         * dom/Document.cpp:
2618         (WebCore::Document::collectActiveStylesheets):
2619
2620 2012-03-13  Dana Jansens  <danakj@chromium.org>
2621
2622         Region::contains(IntPoint) is slow
2623         https://bugs.webkit.org/show_bug.cgi?id=81008
2624
2625         Reviewed by Anders Carlsson.
2626
2627         Speed up Region::contains(IntPoint) by directly testing if the point
2628         is inside the Region's shape, rather than using a temporary 1x1 Region
2629         for the test.
2630
2631         Unit test: RegionTest.containsPoint
2632
2633         * platform/graphics/Region.cpp:
2634         (WebCore::Region::contains):
2635
2636 2012-03-13  Adrienne Walker  <enne@google.com>
2637
2638         [chromium] Mark root layer scrollbars as always opaque to disable blending
2639         https://bugs.webkit.org/show_bug.cgi?id=79951
2640
2641         Reviewed by James Robinson.
2642
2643         Now that scrollbar layers exist, mark non-overlay root scrollbars as
2644         opaque. This disables blending for correctness and performance.
2645
2646         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
2647         (WebCore::scrollbarLayerDidChange):
2648         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
2649         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
2650         * platform/graphics/chromium/LayerRendererChromium.cpp:
2651         (WebCore::LayerRendererChromium::drawTileQuad):
2652
2653 2012-03-13  Gavin Peters  <gavinp@chromium.org>
2654
2655         Remove vestigal abortEvent from image attribute.
2656         https://bugs.webkit.org/show_bug.cgi?id=80795
2657
2658         Reviewed by Adam Barth.
2659
2660         It seems we installed a listener for the abort event on images,
2661         but never ever raised them.  So this patch removes it.  This could
2662         cause different behaviour if the user sends abort events directly
2663         at an image element, although addEventListener will still work.
2664
2665         * html/HTMLImageElement.cpp:
2666         (WebCore::HTMLImageElement::parseAttribute):
2667
2668 2012-03-13  Nate Chapin  <japhet@chromium.org>
2669
2670         Rework how a CachedRawResource decides if it can be reused
2671         for a given ResourceRequest. Ensure method, body, cookie policy,
2672         and all headers match.
2673         http://bugs.webkit.org/show_bug.cgi?id=79325
2674
2675         Reviewed by Oliver Hunt.
2676
2677         Test: http/tests/cache/xhr-body.html
2678
2679         * loader/cache/CachedRawResource.cpp:
2680         (WebCore::CachedRawResource::canReuse):
2681         * loader/cache/CachedRawResource.h: Take a ResourceRequest in canReuse().
2682         * loader/cache/CachedResourceLoader.cpp:
2683         (WebCore::CachedResourceLoader::determineRevalidationPolicy): Remove Range header
2684             check, since it is now redundant.
2685
2686 2012-03-13  Rob Buis  <rbuis@rim.com>
2687
2688         Fix cast-align GCC warning
2689         https://bugs.webkit.org/show_bug.cgi?id=80790
2690
2691         Reviewed by Dan Bates.
2692
2693         This touches unpackOneRowOfBGRA8ToRGBA8.
2694
2695         * platform/graphics/GraphicsContext3D.cpp:
2696         (WebCore):
2697
2698 2012-03-12  Simon Fraser  <simon.fraser@apple.com>
2699
2700         Refactor some code that is used to check whether a layer needs backing store
2701         https://bugs.webkit.org/show_bug.cgi?id=80917
2702
2703         Reviewed by Dean Jackson.
2704
2705         Move some code out of isSimpleContainerCompositingLayer() in two new
2706         methods to make the code more self-descriptive.
2707         
2708         No behavior change, so no tests.
2709
2710         * rendering/RenderLayerBacking.cpp:
2711         (WebCore::RenderLayerBacking::paintsBoxDecorations):
2712         (WebCore::RenderLayerBacking::paintsChildren):
2713         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
2714         * rendering/RenderLayerBacking.h:
2715         (RenderLayerBacking):
2716
2717 2012-03-13  Daniel Bates  <dbates@webkit.org>
2718
2719         REGRESSION(r99369): File input button doesn't highlight when pressed
2720         https://bugs.webkit.org/show_bug.cgi?id=79385
2721
2722         Reviewed by Kent Tamura.
2723
2724         Fixes an issue where the file input button doesn't highlight on mouse press.
2725
2726         Currently we always override the active state of the button with whether
2727         a dragged file is being hovered over the file input control (i.e. can the control
2728         receive a dropped file; HTMLInputElement::canReceiveDroppedFiles()).
2729         Instead, we should only override the active state of the button when the state
2730         changes for whether we can receive dropped files (e.g. during a drag) so that
2731         we honor the active state of the button when it is pressed.
2732
2733         Test: fast/forms/file/file-input-pressed-state.html
2734
2735         * rendering/RenderFileUploadControl.cpp:
2736         (WebCore::RenderFileUploadControl::RenderFileUploadControl):
2737         (WebCore::RenderFileUploadControl::updateFromElement):
2738         * rendering/RenderFileUploadControl.h:
2739         (RenderFileUploadControl):
2740
2741 2012-03-13  Dana Jansens  <danakj@chromium.org>
2742
2743         [chromium] Use CCOcclusionTracker for draw culling
2744         https://bugs.webkit.org/show_bug.cgi?id=80743
2745
2746         Reviewed by Adrienne Walker.
2747
2748         In this CL we enable the use of CCOcclusionTracker for draw-side
2749         culling. This means moving from a per-quad culling model to a
2750         per-layer model.
2751
2752         When calculating RenderPasses, we construct the set of passes,
2753         then iterate over layers in front-to-back order. We make
2754         CCQuadCuller instantiable, and pass it to the layer
2755         appendQuads() methods instead of the bare list, where it can
2756         filter quads before the end up in the list.
2757
2758         Covered by existing tests.
2759
2760         * platform/graphics/chromium/LayerRendererChromium.cpp:
2761         (WebCore::LayerRendererChromium::drawRenderPass):
2762         * platform/graphics/chromium/LayerRendererChromium.h:
2763         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
2764         (WebCore::CCCanvasLayerImpl::appendQuads):
2765         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
2766         (CCCanvasLayerImpl):
2767         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2768         (WebCore::CCLayerImpl::appendQuads):
2769         (WebCore::CCLayerImpl::appendGutterQuads):
2770         (WebCore::CCLayerImpl::appendDebugBorderQuad):
2771         * platform/graphics/chromium/cc/CCLayerImpl.h:
2772         (WebCore):
2773         (CCLayerImpl):
2774         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2775         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2776         (WebCore::CCLayerTreeHostImpl::drawLayers):
2777         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2778         (CCLayerTreeHostImpl):
2779         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
2780         (WebCore::CCPluginLayerImpl::appendQuads):
2781         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
2782         (CCPluginLayerImpl):
2783         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2784         (WebCore::CCQuadCuller::CCQuadCuller):
2785         (WebCore::CCQuadCuller::append):
2786         * platform/graphics/chromium/cc/CCQuadCuller.h:
2787         (WebCore):
2788         (CCQuadCuller):
2789         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2790         (WebCore::CCRenderPass::appendQuadsForLayer):
2791         * platform/graphics/chromium/cc/CCRenderPass.h:
2792         (WebCore):
2793         (CCQuadList):
2794         (WebCore::CCQuadList::backToFrontBegin):
2795         (WebCore::CCQuadList::backToFrontEnd):
2796         (CCRenderPass):
2797         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2798         (WebCore::CCScrollbarLayerImpl::appendQuads):
2799         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2800         (CCScrollbarLayerImpl):
2801         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2802         (WebCore::CCSolidColorLayerImpl::appendQuads):
2803         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2804         (CCSolidColorLayerImpl):
2805         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2806         (WebCore::CCTiledLayerImpl::appendQuads):
2807         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2808         (CCTiledLayerImpl):
2809         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2810         (WebCore::CCVideoLayerImpl::appendQuads):
2811         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2812         (CCVideoLayerImpl):
2813
2814 2012-03-13  Adam Barth  <abarth@webkit.org> && Benjamin Poulain  <bpoulain@apple.com>
2815
2816         Always enable ENABLE(CLIENT_BASED_GEOLOCATION)
2817         https://bugs.webkit.org/show_bug.cgi?id=78853
2818
2819         Reviewed by Adam Barth.
2820
2821         * CMakeLists.txt:
2822         * Configurations/FeatureDefines.xcconfig:
2823         * GNUmakefile.am:
2824         * GNUmakefile.list.am:
2825         * Modules/geolocation/Geolocation.cpp:
2826         (WebCore):
2827         (WebCore::createPositionError):
2828         (WebCore::Geolocation::Geolocation):
2829         (WebCore::Geolocation::stop):
2830         (WebCore::Geolocation::lastPosition):
2831         (WebCore::Geolocation::requestPermission):
2832         (WebCore::Geolocation::startUpdating):
2833         (WebCore::Geolocation::stopUpdating):
2834         * Modules/geolocation/Geolocation.h:
2835         (WebCore):
2836         (Geolocation):
2837         * Modules/geolocation/GeolocationController.cpp:
2838         * Modules/geolocation/GeolocationController.h:
2839         * Modules/geolocation/GeolocationError.h:
2840         * Modules/geolocation/GeolocationPosition.h:
2841         * Target.pri:
2842         * WebCore.exp.in:
2843         * WebCore.gypi:
2844         * WebCore.vcproj/WebCore.vcproj:
2845         * bindings/js/JSGeolocationCustom.cpp:
2846         * loader/EmptyClients.h:
2847         (EmptyChromeClient):
2848         * page/ChromeClient.h:
2849         (ChromeClient):
2850         * page/Page.cpp:
2851         (WebCore::Page::Page):
2852         * page/Page.h:
2853         (Page):
2854         * platform/GeolocationService.cpp: Removed.
2855         * platform/GeolocationService.h: Removed.
2856         * platform/mock/GeolocationClientMock.cpp:
2857         * platform/mock/GeolocationClientMock.h:
2858         * platform/mock/GeolocationServiceMock.cpp: Removed.
2859         * platform/mock/GeolocationServiceMock.h: Removed.
2860
2861 2012-03-12  Antonio Gomes  <agomes@rim.com>
2862
2863         Convert nodesFromRect tests to use Internals interface
2864         https://bugs.webkit.org/show_bug.cgi?id=80886
2865
2866         Reviewed by Ryosuke Niwa.
2867
2868         Add Internals::nodesFromRect implementation to unify
2869         the codepath for testing Document::nodesFromRect in a
2870         cross port way.
2871
2872         No new tests, since we are improving here the infra-structure
2873         for testing a specific method.
2874
2875         * testing/Internals.cpp:
2876         (WebCore::Internals::nodesFromRect):
2877         (WebCore):
2878         * testing/Internals.h:
2879         (Internals):
2880         * testing/Internals.idl:
2881
2882 2012-03-13  Philip Rogers  <pdr@google.com>
2883
2884         Fix the use of stale text fragments
2885         https://bugs.webkit.org/show_bug.cgi?id=80729
2886
2887         Reviewed by Nikolas Zimmermann.
2888
2889         Previously, we were allowing SVGTextFragments to get out of sync with the
2890         actual text in RenderSVGInlineTextBox. This patch reuses the dirty line
2891         box code in RenderText::setTextWithOffset to force
2892         clearTextFragments() when setTextWithOffset is called, preventing the use
2893         of stale SVGTextFragments.
2894
2895         Test: svg/custom/delete-text-crash.html
2896
2897         * rendering/InlineBox.h:
2898         (InlineBox):
2899         * rendering/svg/SVGInlineTextBox.cpp:
2900         (WebCore::SVGInlineTextBox::dirtyLineBoxes):
2901         (WebCore):
2902         * rendering/svg/SVGInlineTextBox.h:
2903         (SVGInlineTextBox):
2904
2905 2012-03-13  Nikolas Zimmermann  <nzimmermann@rim.com>
2906
2907         SVG Animations update baseVal instead of animVal
2908         https://bugs.webkit.org/show_bug.cgi?id=12437
2909
2910         Reviewed by Dirk Schulze.
2911
2912         Blind fix for some GC related assertions firing on v8.
2913
2914         Assure that animationStarted/animationEnded calls are happening
2915         on the same SVGAnimatedProperty. Always call animationEnded(),
2916         even if we shouldn't do anything for the target element, as its
2917         destructed, as we still have to reset m_isAnimating.
2918
2919         * svg/SVGAnimateElement.cpp:
2920         (WebCore::SVGAnimateElement::SVGAnimateElement):
2921         (WebCore::SVGAnimateElement::resetToBaseValue):
2922         (WebCore::SVGAnimateElement::targetElementWillChange):
2923         * svg/SVGAnimateElement.h:
2924         (SVGAnimateElement):
2925         * svg/properties/SVGAnimatedPropertyTearOff.h:
2926         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
2927
2928 2012-03-13  Mark Pilgrim  <pilgrim@chromium.org>
2929
2930         Move DirectoryEntry and DirectoryReader to new Modules/filesystem/ directory
2931         https://bugs.webkit.org/show_bug.cgi?id=80625
2932
2933         Reviewed by Adam Barth.
2934
2935         No new tests, all existing tests pass.
2936
2937         * CMakeLists.txt:
2938         * DerivedSources.make:
2939         * DerivedSources.pri:
2940         * GNUmakefile.am:
2941         * GNUmakefile.list.am:
2942         * Modules/filesystem: Added.
2943         * Modules/filesystem/DirectoryEntry.cpp: Copied from Source/WebCore/fileapi/DirectoryEntry.cpp.
2944         * Modules/filesystem/DirectoryEntry.h: Copied from Source/WebCore/fileapi/DirectoryEntry.h.
2945         * Modules/filesystem/DirectoryEntry.idl: Copied from Source/WebCore/fileapi/DirectoryEntry.idl.
2946         * Modules/filesystem/DirectoryEntrySync.cpp: Copied from Source/WebCore/fileapi/DirectoryEntrySync.cpp.
2947         * Modules/filesystem/DirectoryEntrySync.h: Copied from Source/WebCore/fileapi/DirectoryEntrySync.h.
2948         * Modules/filesystem/DirectoryEntrySync.idl: Copied from Source/WebCore/fileapi/DirectoryEntrySync.idl.
2949         * Modules/filesystem/DirectoryReader.cpp: Copied from Source/WebCore/fileapi/DirectoryReader.cpp.
2950         * Modules/filesystem/DirectoryReader.h: Copied from Source/WebCore/fileapi/DirectoryReader.h.
2951         * Modules/filesystem/DirectoryReader.idl: Copied from Source/WebCore/fileapi/DirectoryReader.idl.
2952         * Modules/filesystem/DirectoryReaderBase.h: Copied from Source/WebCore/fileapi/DirectoryReaderBase.h.
2953         * Modules/filesystem/DirectoryReaderSync.cpp: Copied from Source/WebCore/fileapi/DirectoryReaderSync.cpp.
2954         * Modules/filesystem/DirectoryReaderSync.h: Copied from Source/WebCore/fileapi/DirectoryReaderSync.h.
2955         * Modules/filesystem/DirectoryReaderSync.idl: Copied from Source/WebCore/fileapi/DirectoryReaderSync.idl.
2956         * Target.pri:
2957         * WebCore.gyp/WebCore.gyp:
2958         * WebCore.gypi:
2959         * WebCore.pri:
2960         * WebCore.vcproj/WebCore.vcproj:
2961         * WebCore.xcodeproj/project.pbxproj:
2962         * fileapi/DirectoryEntry.cpp: Removed.
2963         * fileapi/DirectoryEntry.h: Removed.
2964         * fileapi/DirectoryEntry.idl: Removed.
2965         * fileapi/DirectoryEntrySync.cpp: Removed.
2966         * fileapi/DirectoryEntrySync.h: Removed.
2967         * fileapi/DirectoryEntrySync.idl: Removed.
2968         * fileapi/DirectoryReader.cpp: Removed.
2969         * fileapi/DirectoryReader.h: Removed.
2970         * fileapi/DirectoryReader.idl: Removed.
2971         * fileapi/DirectoryReaderBase.h: Removed.
2972         * fileapi/DirectoryReaderSync.cpp: Removed.
2973         * fileapi/DirectoryReaderSync.h: Removed.
2974         * fileapi/DirectoryReaderSync.idl: Removed.
2975
2976 2012-03-13  Igor Oliveira  <igor.o@sisa.samsung.com>
2977
2978         animation-iteration-count does not handle floating point values correctly.
2979         https://bugs.webkit.org/show_bug.cgi?id=69531
2980
2981         Implements support for non-integers animation-iteration-count numbers.
2982         Non-integer numbers will cause the animation to end part-way through a cycle.
2983
2984         Reviewed by Dean Jackson.
2985
2986         Tests: animations/fill-mode-iteration-count-non-integer.html
2987                animations/keyframes-iteration-count-non-integer.html
2988
2989         * css/CSSComputedStyleDeclaration.cpp:
2990         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2991         * css/CSSParser.cpp:
2992         (WebCore::CSSParser::parseAnimationIterationCount):
2993         * css/CSSStyleApplyProperty.cpp:
2994         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2995         * css/CSSStyleSelector.cpp:
2996         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2997         * page/animation/AnimationBase.cpp:
2998         (WebCore::AnimationBase::fractionalTime):
2999         (WebCore::AnimationBase::progress):
3000         * page/animation/CompositeAnimation.cpp:
3001         (WebCore::CompositeAnimation::pauseAnimationAtTime):
3002         * platform/animation/Animation.h:
3003         (WebCore::Animation::iterationCount):
3004         (WebCore::Animation::setIterationCount):
3005         (Animation):
3006         (WebCore::Animation::initialAnimationIterationCount):
3007
3008 2012-03-13  Tommy Widenflycht  <tommyw@google.com>
3009
3010         MediaStream API: Rename PeerConnection to DeprecatedPeerConnection
3011         https://bugs.webkit.org/show_bug.cgi?id=80692
3012
3013         Reviewed by Adam Barth.
3014
3015         First patch in a series of patches to change the PeerConnection from ROAP to JSEP,
3016         see bug 80589 for more information.
3017
3018         Patch covered by modified existing tests.
3019
3020         * GNUmakefile.list.am:
3021         * Modules/mediastream/DOMWindowMediaStream.idl:
3022         * Modules/mediastream/DeprecatedPeerConnection.cpp: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.cpp.
3023         (WebCore):
3024         (WebCore::DeprecatedPeerConnection::create):
3025         (WebCore::DeprecatedPeerConnection::DeprecatedPeerConnection):
3026         (WebCore::DeprecatedPeerConnection::~DeprecatedPeerConnection):
3027         (WebCore::DeprecatedPeerConnection::processSignalingMessage):
3028         (WebCore::DeprecatedPeerConnection::readyState):
3029         (WebCore::DeprecatedPeerConnection::send):
3030         (WebCore::DeprecatedPeerConnection::addStream):
3031         (WebCore::DeprecatedPeerConnection::removeStream):
3032         (WebCore::DeprecatedPeerConnection::localStreams):
3033         (WebCore::DeprecatedPeerConnection::remoteStreams):
3034         (WebCore::DeprecatedPeerConnection::close):
3035         (WebCore::DeprecatedPeerConnection::didCompleteICEProcessing):
3036         (WebCore::DeprecatedPeerConnection::didGenerateSDP):
3037         (WebCore::DeprecatedPeerConnection::didReceiveDataStreamMessage):
3038         (WebCore::DeprecatedPeerConnection::didAddRemoteStream):
3039         (WebCore::DeprecatedPeerConnection::didRemoveRemoteStream):
3040         (WebCore::DeprecatedPeerConnection::interfaceName):
3041         (WebCore::DeprecatedPeerConnection::scriptExecutionContext):
3042         (WebCore::DeprecatedPeerConnection::stop):
3043         (WebCore::DeprecatedPeerConnection::eventTargetData):
3044         (WebCore::DeprecatedPeerConnection::ensureEventTargetData):
3045         (WebCore::DeprecatedPeerConnection::scheduleInitialNegotiation):
3046         (WebCore::DeprecatedPeerConnection::initialNegotiationTimerFired):
3047         (WebCore::DeprecatedPeerConnection::ensureStreamChangeScheduled):
3048         (WebCore::DeprecatedPeerConnection::streamChangeTimerFired):
3049         (WebCore::DeprecatedPeerConnection::scheduleReadyStateChange):
3050         (WebCore::DeprecatedPeerConnection::readyStateChangeTimerFired):
3051         (WebCore::DeprecatedPeerConnection::changeReadyState):
3052         * Modules/mediastream/DeprecatedPeerConnection.h: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.h.
3053         (WebCore):
3054         (DeprecatedPeerConnection):
3055         (WebCore::DeprecatedPeerConnection::didChangeState):
3056         (WebCore::DeprecatedPeerConnection::refEventTarget):
3057         (WebCore::DeprecatedPeerConnection::derefEventTarget):
3058         * Modules/mediastream/DeprecatedPeerConnection.idl: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.idl.
3059         * Modules/mediastream/SignalingCallback.h:
3060         (WebCore):
3061         (SignalingCallback):
3062         * Modules/mediastream/SignalingCallback.idl:
3063         * WebCore.gypi:
3064         * bindings/generic/RuntimeEnabledFeatures.h:
3065         (WebCore::RuntimeEnabledFeatures::webkitDeprecatedPeerConnectionEnabled):
3066         * bindings/js/JSDeprecatedPeerConnectionCustom.cpp: Renamed from Source/WebCore/bindings/js/JSPeerConnectionCustom.cpp.
3067         (WebCore):
3068         (WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):
3069         * dom/EventTarget.h:
3070         (WebCore):
3071         * dom/EventTargetFactory.in:
3072         * platform/mediastream/DeprecatedPeerConnectionHandler.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandler.h.
3073         (WebCore):
3074         (DeprecatedPeerConnectionHandler):
3075         * platform/mediastream/DeprecatedPeerConnectionHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h.
3076         (WebCore):
3077         (DeprecatedPeerConnectionHandlerClient):
3078         (WebCore::DeprecatedPeerConnectionHandlerClient::~DeprecatedPeerConnectionHandlerClient):
3079         * platform/mediastream/gstreamer/DeprecatedPeerConnectionHandler.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/PeerConnectionHandler.cpp.
3080         (WebCore):
3081         (WebCore::DeprecatedPeerConnectionHandler::create):
3082         (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
3083         (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
3084         (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
3085         (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
3086         (WebCore::DeprecatedPeerConnectionHandler::processSDP):
3087         (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
3088         (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
3089         (WebCore::DeprecatedPeerConnectionHandler::stop):
3090
3091 2012-03-13  Pavel Feldman  <pfeldman@chromium.org>
3092
3093         Web Inspector: front-end compilation was broken while supporting large arrays.
3094         https://bugs.webkit.org/show_bug.cgi?id=81013
3095
3096         Reviewed by Vsevolod Vlasov.
3097
3098         * inspector/front-end/ExtensionPanel.js:
3099         * inspector/front-end/ObjectPropertiesSection.js:
3100         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.buildObjectFragment):
3101         * inspector/front-end/RemoteObject.js:
3102
3103 2012-03-13  Tony Chang  <tony@chromium.org>
3104
3105         flexbox's computePreferredLogicalWidth needs to take multiline into account
3106         https://bugs.webkit.org/show_bug.cgi?id=80931
3107
3108         Reviewed by Ojan Vafai.
3109
3110         Tests: css3/flexbox/multiline-shrink-to-fit-expected.html
3111                css3/flexbox/multiline-shrink-to-fit.html
3112
3113         * rendering/RenderFlexibleBox.cpp:
3114         (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): Set min/max preferredLogicalWidth based on always breaking or never breaking.
3115         (WebCore::RenderFlexibleBox::computeNextFlexLine): Add a FIXME.
3116         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Don't change the width after computePreferredWidth has been called.
3117
3118 2012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3119
3120         Unreviewed, rolling out r110469.
3121         http://trac.webkit.org/changeset/110469
3122         https://bugs.webkit.org/show_bug.cgi?id=81010
3123
3124         This patch still appears to crash (Requested by abarth on
3125         #webkit).
3126
3127         * page/FrameView.cpp:
3128         (WebCore::FrameView::FrameView):
3129         (WebCore::FrameView::reset):
3130         (WebCore::FrameView::repaintContentRectangle):
3131         (WebCore):
3132         (WebCore::FrameView::endDeferredRepaints):
3133         (WebCore::FrameView::doDeferredRepaints):
3134         (WebCore::FrameView::deferredRepaintTimerFired):
3135         * page/FrameView.h:
3136         (FrameView):
3137         * rendering/RenderView.cpp:
3138         (WebCore::RenderView::shouldRepaint):
3139         * svg/graphics/SVGImage.cpp:
3140         (WebCore::SVGImage::drawSVGToImageBuffer):
3141         (WebCore::SVGImage::draw):
3142         * svg/graphics/SVGImage.h:
3143         * svg/graphics/SVGImageCache.cpp:
3144         (WebCore::SVGImageCache::imageContentChanged):
3145         (WebCore::SVGImageCache::redrawTimerFired):
3146         * svg/graphics/SVGImageCache.h:
3147         (SVGImageCache):
3148
3149 2012-03-13  Max Vujovic  <mvujovic@adobe.com>
3150
3151         Add a method to window.internals to enable testing of inspector highlight rects
3152         https://bugs.webkit.org/show_bug.cgi?id=80338
3153
3154         Reviewed by Pavel Feldman.
3155
3156         Add window.internals.inspectorHighlightRects, a method which makes it possible to test the
3157         positions and sizes of inspector highlight rects.
3158
3159         Test: inspector/elements/highlight-node.html
3160
3161         * WebCore.exp.in: Export symbols.
3162         * testing/Internals.cpp:
3163         (WebCore::Internals::inspectorHighlightRects): Call InspectorController::getHighlight and
3164         return the highlight's quads as a ClientRectList.
3165         (WebCore):
3166         * testing/Internals.h:
3167         (WebCore):
3168         (Internals):
3169         * testing/Internals.idl:
3170
3171             Add inspectorHighlightRects to the window.internals interface.
3172
3173 2012-03-13  Konrad Piascik  <kpiascik@rim.com>
3174
3175         [BlackBerry] Remove sublayers before clamping just in case the layer already exists
3176         https://bugs.webkit.org/show_bug.cgi?id=80989
3177
3178         Reviewed by Antonio Gomes.
3179
3180         Discovered when trying to add a highlight sublayer for web inspector.  Since that layer
3181         may already exist in the tree we need to see if it will be pruned before we clamp on the
3182         size.
3183
3184         This was manually tested during the writing of another patch to add web inspector highlights
3185         to accelrated compositing.
3186
3187         * platform/graphics/blackberry/LayerWebKitThread.cpp:
3188         (WebCore::LayerWebKitThread::insertSublayer):
3189
3190 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
3191
3192         Web Inspector: Add snippets model.
3193         https://bugs.webkit.org/show_bug.cgi?id=80863
3194
3195         Reviewed by Yury Semikhatsky.
3196
3197         Test: inspector/debugger/snippets-model.html
3198
3199         * WebCore.gypi:
3200         * WebCore.vcproj/WebCore.vcproj:
3201         * inspector/compile-front-end.py:
3202         * inspector/front-end/Settings.js:
3203         (WebInspector.ExperimentsSettings):
3204         * inspector/front-end/SnippetsModel.js: Added.
3205         * inspector/front-end/WebKit.qrc:
3206         * inspector/front-end/inspector.html:
3207         * inspector/front-end/inspector.js:
3208
3209 2012-03-13  'Pavel Feldman'  <pfeldman@chromium.org>
3210
3211         Not reviewed: chromium build fix.
3212
3213         * history/CachedFrame.cpp:
3214
3215 2012-03-13  Peter Rybin  <peter.rybin@gmail.com>
3216
3217         Web Inspector: CodeGeneratorInspector.py: refactor copy-paste getter methods
3218         https://bugs.webkit.org/show_bug.cgi?id=80923
3219
3220         Reviewed by Yury Semikhatsky.
3221
3222         Several methods are combined in one using C++ templates.
3223
3224         * inspector/CodeGeneratorInspector.py:
3225
3226 2012-03-13  Rob Buis  <rbuis@rim.com>
3227
3228         [BlackBerry] Fix cast-align warning in QuotesData.cpp
3229         https://bugs.webkit.org/show_bug.cgi?id=80601
3230
3231         Reviewed by Nikolas Zimmermann.
3232
3233         Fix warning by adding variable of correct return type.
3234
3235         * rendering/style/QuotesData.cpp:
3236         (WebCore::QuotesData::create):
3237
3238 2012-03-12  Brady Eidson  <beidson@apple.com>
3239
3240         <rdar://problem/7908830> and https://bugs.webkit.org/show_bug.cgi?id=34679
3241         Location and other objects are dysfunctional after a document gets restored from page cache
3242
3243         Reviewed by Adam Barth.
3244
3245         Test: fast/loader/window-properties-restored-from-page-cache.html
3246
3247         Give DOMWindowProperties the ability to reconnect to their Frame:
3248         * page/DOMWindowProperty.cpp:
3249         (WebCore::DOMWindowProperty::reconnectFrame):
3250         * page/DOMWindowProperty.h:
3251         (DOMWindowProperty):
3252
3253         Let ApplicationCache do some extra work when reconnecting:
3254         * loader/appcache/DOMApplicationCache.cpp:
3255         (WebCore::DOMApplicationCache::reconnectFrame):
3256         (WebCore):
3257         * loader/appcache/DOMApplicationCache.h:
3258         (DOMApplicationCache):
3259
3260         Let IndexDB do some extra work when reconnecting:
3261         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
3262         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
3263         (WebCore::DOMWindowIndexedDatabase::reconnectFrame):
3264         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
3265         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
3266         (DOMWindowIndexedDatabase):
3267
3268         Tell the DOMWindow to suspend to the page cache:
3269         * history/CachedFrame.cpp:
3270         (WebCore::CachedFrame::CachedFrame):
3271
3272         Tell the DOMWindow to resume from the page cache:
3273         * loader/FrameLoader.cpp:
3274         (WebCore::FrameLoader::open):
3275
3276         * page/DOMWindow.cpp:
3277         (WebCore::DOMWindow::DOMWindow):
3278         (WebCore::DOMWindow::~DOMWindow): Call clearDOMWindowProperties directly instead of clear()
3279         (WebCore::DOMWindow::frameDestroyed): Ditto.
3280         (WebCore::DOMWindow::clear): Only clear if the DOMWindow is not suspended for the page cache.
3281         (WebCore::DOMWindow::suspendForPageCache): Disconnect properties and set the page cache flag.
3282         (WebCore::DOMWindow::resumeFromPageCache): Reconnect properties and revert the page cache flag.
3283         (WebCore::DOMWindow::disconnectDOMWindowProperties): Only disconnect the registered properties.
3284         (WebCore::DOMWindow::reconnectDOMWindowProperties):
3285         (WebCore::DOMWindow::clearDOMWindowProperties): Disconnect the registered properties then clear them out.
3286
3287         For all of the following, if the DOMWindow is not displayed in a frame (i.e., it is suspended), do nothing:
3288         (WebCore::DOMWindow::screen):
3289         (WebCore::DOMWindow::history):
3290         (WebCore::DOMWindow::crypto):
3291         (WebCore::DOMWindow::locationbar):
3292         (WebCore::DOMWindow::menubar):
3293         (WebCore::DOMWindow::personalbar):
3294         (WebCore::DOMWindow::scrollbars):
3295         (WebCore::DOMWindow::statusbar):
3296         (WebCore::DOMWindow::toolbar):
3297         (WebCore::DOMWindow::console):
3298         (WebCore::DOMWindow::applicationCache):
3299         (WebCore::DOMWindow::navigator):
3300         (WebCore::DOMWindow::performance):
3301         (WebCore::DOMWindow::location):
3302         (WebCore::DOMWindow::sessionStorage):
3303         (WebCore::DOMWindow::localStorage):
3304         (WebCore::DOMWindow::webkitNotifications):
3305         (WebCore::DOMWindow::postMessageTimerFired):
3306         (WebCore::DOMWindow::getSelection):
3307         (WebCore::DOMWindow::styleMedia):
3308         (WebCore::DOMWindow::webkitStorageInfo):
3309         * page/DOMWindow.h:
3310
3311 2012-03-13  Dana Jansens  <danakj@chromium.org>
3312
3313         [chromium] Use projectQuad to apply inverse mapRect
3314         https://bugs.webkit.org/show_bug.cgi?id=80741
3315
3316         Reviewed by Adrienne Walker.
3317
3318         Unit test: CCOcclusionTrackerTest3dTransform
3319                    CCOcclusionTrackerTestPerspectiveTransform
3320                    CCOcclusionTrackerTestPerspectiveTransformBehindCamera
3321
3322         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3323         (WebCore::projectQuad):
3324         (WebCore):
3325         (WebCore::computeUnoccludedContentRect):
3326
3327 2012-03-13  Gavin Peters  <gavinp@chromium.org>
3328
3329         New PageCache histogram which counts failures ignoring Settings.
3330         https://bugs.webkit.org/show_bug.cgi?id=80864
3331
3332         Reviewed by Brady Eidson.
3333
3334         Chrome has a command line switch to turn on the page cache.
3335         Currently it doesn't work, but it can cause the PageCache reasons
3336         for failure count to read lower than it should.  Add a new
3337         histogram to report the corrected value.
3338
3339         * history/PageCache.cpp:
3340         (WebCore::logCanCachePageDecision):
3341
3342 2012-03-13  George Staikos  <staikos@webkit.org>
3343
3344         Fix signed/unsigned mismatch compiler warnings.
3345         https://bugs.webkit.org/show_bug.cgi?id=80790
3346
3347         Reviewed by Alexey Proskuryakov.
3348
3349         * loader/icon/IconDatabase.cpp:
3350         (WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
3351         * platform/network/MIMESniffing.cpp:
3352
3353 2012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3354
3355         Unreviewed, rolling out r110510.
3356         http://trac.webkit.org/changeset/110510
3357         https://bugs.webkit.org/show_bug.cgi?id=80987
3358
3359         depends on chromium r 125700, which isn't rolled into webkit
3360         yet :-/ (Requested by thakis_ on #webkit).
3361
3362         * WebCore.gyp/mac/adjust_visibility.sh:
3363
3364 2012-03-13  Gavin Peters  <gavinp@chromium.org>
3365
3366         Make ApplicationCacheHost::canCacheInPageCache() non-const.
3367         https://bugs.webkit.org/show_bug.cgi?id=80904
3368
3369         Reviewed by Alexey Proskuryakov.
3370
3371         A const pointer to a large object like ApplicationCacheHost is not our standard
3372         practice; so remove this (implicit) one.  See also https://bugs.webkit.org/show_bug.cgi?id=80898
3373
3374         * loader/appcache/ApplicationCacheHost.cpp:
3375         (WebCore::ApplicationCacheHost::canCacheInPageCache):
3376         * loader/appcache/ApplicationCacheHost.h:
3377         (ApplicationCacheHost):
3378
3379 2012-03-13  Stephen Chenney  <schenney@chromium.org>
3380
3381         Crash in WebCore::GraphicsContext::paintingDisabled
3382         https://bugs.webkit.org/show_bug.cgi?id=80669
3383
3384         Reviewed by Nikolas Zimmermann.
3385
3386         The SVGImageBufferTools::clipToImageBuffer method deletes the clip
3387         image when it thinks it is not needed. However, there are cases when
3388         it is in fact still needed, particularly when the clip buffer is
3389         coming from higher up in the stack where it may be needed again.
3390
3391         So this patch adds a flag to only allow deletion of the image buffer
3392         if it was created at the most recent call site.
3393
3394         Tests: svg/custom/circular-clip-path-references-crash-expected.svg
3395                svg/custom/circular-clip-path-references-crash.svg
3396
3397         * rendering/svg/RenderSVGResourceClipper.cpp:
3398         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
3399         * rendering/svg/RenderSVGResourceGradient.cpp:
3400         (WebCore::clipToTextMask):
3401         * rendering/svg/RenderSVGResourceMasker.cpp:
3402         (WebCore::RenderSVGResourceMasker::applyResource):
3403         * rendering/svg/SVGImageBufferTools.cpp:
3404         (WebCore::SVGImageBufferTools::clipToImageBuffer):
3405         * rendering/svg/SVGImageBufferTools.h:
3406         (SVGImageBufferTools):
3407
3408 2012-03-13  Gavin Peters  <gavinp@chromium.org>
3409
3410         Fix an enumeration name in ReasonsFrameCannotBeInPageCache.
3411         https://bugs.webkit.org/show_bug.cgi?id=80849
3412
3413         Reviewed by Brady Eidson.
3414
3415         It seems that somebody goofed, and named one of the
3416         ReasonsFrameCannotBeInPageCache antonymically.
3417
3418         * history/PageCache.cpp:
3419         (WebCore::logCanCacheFrameDecision):
3420
3421 2012-03-12  Kinuko Yasuda  <kinuko@chromium.org>
3422
3423         File upload control should use File.name() rather than File.path() to show chosen filenames
3424         https://bugs.webkit.org/show_bug.cgi?id=80970
3425
3426         In some rare cases (e.g. files from FileSystem API or files created
3427         using the newly added WebKit API) File.name has different displayName
3428         from the basename of file.path, and in the file uploader controller we
3429         should use File.name rather than File.path.
3430
3431         Reviewed by Kent Tamura.
3432
3433         No new tests: existing tests should pass as this should not change
3434         behavior in regular use cases.  (New behavior where File.name differs
3435         from File.path can be only tested in chromeos environment, therefore
3436         not adding new tests for that)
3437
3438         * platform/gtk/RenderThemeGtk.cpp:
3439         (WebCore::RenderThemeGtk::fileListNameForWidth): Updated to handle FileList.
3440         * platform/gtk/RenderThemeGtk.h:
3441         * platform/qt/RenderThemeQt.cpp:
3442         (WebCore::RenderThemeQt::fileListNameForWidth): Updated to handle FileList.
3443         * platform/qt/RenderThemeQt.h:
3444         * rendering/RenderFileUploadControl.cpp:
3445         (WebCore::RenderFileUploadControl::fileTextValue): Changed to pass FileList rather than FileList->paths().
3446         * rendering/RenderTheme.cpp:
3447         (WebCore::RenderTheme::fileListNameForWidth): Updated to handle FileList and use File.name for displaying the file name.
3448         * rendering/RenderTheme.h:
3449         * rendering/RenderThemeMac.h:
3450         * rendering/RenderThemeMac.mm:
3451         (WebCore::RenderThemeMac::fileListNameForWidth): Updated to handle FileList.
3452
3453 2012-03-13  Kinuko Yasuda  <kinuko@chromium.org>
3454
3455         Allow WebFileChooser to return extra file info (like displayName) in addition to mere file paths
3456         https://bugs.webkit.org/show_bug.cgi?id=80719
3457
3458         Reviewed by Kent Tamura.
3459
3460         No new tests: this change itself shouldn't change existing behavior.
3461
3462         * fileapi/File.cpp:
3463         (WebCore::createBlobDataForFileWithName): Renamed from createBlobDataForFileSystemFile.
3464         * fileapi/File.h:
3465         * html/FileInputType.cpp:
3466         (WebCore::FileInputType::saveFormControlState): Updated to handle File.name.
3467         (WebCore::FileInputType::restoreFormControlState): Ditto.
3468         (WebCore::FileInputType::setFileList): Changed the signature to take
3469         FileChooserFileInfo.
3470         (WebCore::FileInputType::filesChosen): Ditto.
3471         (WebCore::FileInputType::receiveDroppedFiles):
3472         * html/FileInputType.h:
3473         (FileInputType):
3474         * platform/FileChooser.cpp:
3475         (WebCore::FileChooser::chooseFiles): Added an overloaded method that
3476         takes FileChooserFileInfo.
3477         (WebCore):
3478         * platform/FileChooser.h:
3479         (WebCore::FileChooserFileInfo::FileChooserFileInfo): Added.
3480         * platform/MIMETypeRegistry.cpp:
3481         (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Removed surrouonding ifdefs as this function is now used even if FILE_SYSTEM is not enabled.
3482         * platform/MIMETypeRegistry.h:
3483         (MIMETypeRegistry):
3484
3485 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
3486
3487         Unreviewed inspector compilation module name fix after r110550.
3488
3489         * inspector/compile-front-end.py:
3490
3491 2012-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
3492
3493         Web Inspector: Changes to the list of scripts for front-end compilation should not require update of number of scripts in module.
3494         https://bugs.webkit.org/show_bug.cgi?id=80872
3495
3496         Reviewed by Pavel Feldman.
3497
3498         * inspector/compile-front-end.py: Added.
3499         * inspector/compile-front-end.sh:
3500
3501 2012-03-12  Pavel Podivilov  <podivilov@chromium.org>
3502
3503         Web Inspector: move ResourceScriptMapping to a separate file.
3504         https://bugs.webkit.org/show_bug.cgi?id=80859
3505
3506         Reviewed by Vsevolod Vlasov.
3507
3508         * WebCore.gypi:
3509         * WebCore.vcproj/WebCore.vcproj:
3510         * inspector/compile-front-end.sh:
3511         * inspector/front-end/ResourceScriptMapping.js: Copied from Source/WebCore/inspector/front-end/ScriptMapping.js.
3512         (WebInspector.ResourceScriptMapping):
3513         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
3514         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
3515         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeListChanged):
3516         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeListChanged):
3517         (WebInspector.ResourceScriptMapping.prototype._bindScriptToRawSourceCode):
3518         (WebInspector.ResourceScriptMapping.prototype.setFormatSource):
3519         (WebInspector.ResourceScriptMapping.prototype.forceUpdateSourceMapping):
3520         (WebInspector.ResourceScriptMapping.prototype.reset):
3521         * inspector/front-end/ScriptMapping.js:
3522         * inspector/front-end/WebKit.qrc:
3523         * inspector/front-end/inspector.html:
3524
3525 2012-03-12  Kentaro Hara  <haraken@chromium.org>
3526
3527         Rename OptionsObject to Dictionary
3528         https://bugs.webkit.org/show_bug.cgi?id=80802
3529
3530         Reviewed by Adam Barth.
3531
3532         For clarification, rename OptionsObject.{h,cpp} to Dictionary.{h,cpp}.
3533         This patch just renames and sorts alphabetically.
3534
3535         No tests. No change in behavior.
3536
3537         * GNUmakefile.list.am:
3538         * Modules/indexeddb/IDBDatabase.cpp:
3539         (WebCore::IDBDatabase::createObjectStore):
3540         * Modules/indexeddb/IDBDatabase.h:
3541         (WebCore::IDBDatabase::createObjectStore):
3542         (IDBDatabase):
3543         * Modules/indexeddb/IDBDatabase.idl:
3544         * Modules/indexeddb/IDBKeyRange.h:
3545         * Modules/indexeddb/IDBObjectStore.cpp:
3546         (WebCore::IDBObjectStore::createIndex):
3547         * Modules/indexeddb/IDBObjectStore.h:
3548         (WebCore::IDBObjectStore::createIndex):
3549         (IDBObjectStore):
3550         * Modules/indexeddb/IDBObjectStore.idl:
3551         * Target.pri:
3552         * UseV8.cmake:
3553         * WebCore.gypi:
3554         * WebCore.vcproj/WebCore.vcproj:
3555         * bindings/js/Dictionary.h: Renamed from Source/WebCore/bindings/js/OptionsObject.h.
3556         (WebCore):
3557         (Dictionary):
3558         (WebCore::Dictionary::Dictionary):
3559         (WebCore::Dictionary::isObject):
3560         (WebCore::Dictionary::isUndefinedOrNull):
3561         (WebCore::Dictionary::get):
3562         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
3563         * bindings/js/IDBBindingUtilities.cpp:
3564         (WebCore::createDictionaryFromValue):
3565         * bindings/js/IDBBindingUtilities.h:
3566         (WebCore):
3567         * bindings/scripts/CodeGeneratorJS.pm:
3568         (JSValueToNative):
3569         * bindings/scripts/CodeGeneratorV8.pm:
3570         (GenerateHeader):
3571         (GenerateParametersCheck):
3572         (GenerateEventConstructorCallback):
3573         (GetNativeType):
3574         (JSValueToNative):
3575         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
3576         (WebDOMTestObj::optionsObject):
3577         * bindings/scripts/test/CPP/WebDOMTestObj.h:
3578         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3579         (webkit_dom_test_obj_options_object):
3580         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
3581         * bindings/scripts/test/JS/JSTestObj.cpp:
3582         (WebCore::jsTestObjPrototypeFunctionIdbKey):
3583         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
3584         * bindings/scripts/test/ObjC/DOMTestObj.h:
3585         * bindings/scripts/test/ObjC/DOMTestObj.mm:
3586         (-[DOMTestObj optionsObject:ooo:]):
3587         * bindings/scripts/test/TestObj.idl:
3588         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3589         (WebCore::V8TestEventConstructor::constructorCallback):
3590         (WebCore::fillTestEventConstructorInit):
3591         * bindings/scripts/test/V8/V8TestEventConstructor.h:
3592         (WebCore):
3593         * bindings/scripts/test/V8/V8TestObj.cpp:
3594         (WebCore::TestObjInternal::optionsObjectCallback):
3595         * bindings/v8/Dictionary.cpp: Renamed from Source/WebCore/bindings/v8/OptionsObject.cpp.
3596         (WebCore):
3597         (WebCore::Dictionary::Dictionary):
3598         (WebCore::Dictionary::~Dictionary):
3599         (WebCore::Dictionary::operator=):
3600         (WebCore::Dictionary::isObject):
3601         (WebCore::Dictionary::isUndefinedOrNull):
3602         (WebCore::Dictionary::getKey):
3603         (WebCore::Dictionary::get):
3604         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
3605         * bindings/v8/Dictionary.h: Renamed from Source/WebCore/bindings/v8/OptionsObject.h.
3606         (WebCore):
3607         (Dictionary):
3608         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
3609         (WebCore::V8WebKitMutationObserver::observeCallback):
3610
3611 2012-03-12  Nikolas Zimmermann  <nzimmermann@rim.com>
3612
3613         SVG Animations update baseVal instead of animVal
3614         https://bugs.webkit.org/show_bug.cgi?id=12437
3615
3616         Reviewed by Dirk Schulze.
3617
3618         Begin implementing the last missing core piece of the SVG DOM: proper animVal support.
3619         Most SVG DOM interfaces exposing eg. lengths use SVGAnimatedLength. eg. from SVGRectElement:
3620         "readonly attribute SVGAnimatedLength x;" SVGAnimatedXXX contains following methods:
3621         "readonly attribute SVGLength baseVal; readonly attribute SVGLength animVal;"
3622         From SVG DOM perspective, animVal and baseVal are two distinctive objects, animVal != baseVal.
3623         Its underlying value is the same though, if no animation is running on that attribute.
3624
3625         As soon as a SMIL animation starts animating an SVGAnimated* target attribute, its
3626         baseVal and animVal may begin to differ. The animVal always reflect the current animated
3627         value (including all effects of additive/accumulated animations) which is shown on screen
3628         when eg animating the width of a <rect>. The baseVal is is equal to the underlying XML
3629         property value / SVG DOM value, but may be influenced through dynamic changes.
3630         (Consider changing rect1.width.baseVal.value while 'width' is animated)
3631
3632         During the last year we prepared our animation code to turn on animVal support.
3633         This patch adds the last missing pieces to turn on animVal support for the SVGLength.
3634         SVGLengthList and all other types will follow, one after the other.
3635
3636         I've decided to write an exhaustive ChangeLog, as this as the base for any future
3637         work in this area - hopefully making this more reviewable.
3638
3639         Tests: svg/animations/additive-from-to-width-animation.html
3640                svg/animations/additive-values-width-animation.html
3641                svg/animations/change-baseVal-while-animating-fill-freeze-2.html
3642                svg/animations/change-baseVal-while-animating-fill-freeze.html
3643                svg/animations/change-baseVal-while-animating-fill-remove-2.html
3644                svg/animations/change-baseVal-while-animating-fill-remove.html
3645                svg/animations/change-target-while-animating-SVG-property.html
3646                svg/animations/multiple-animations-fill-freeze.html
3647                svg/animations/remove-animation-element-while-animation-is-running.html
3648                svg/repaint/repainting-after-animation-element-removal.svg
3649
3650         * svg/SVGAnimateElement.cpp: Remove unnecessary std namespace inclusion.
3651         (WebCore::SVGAnimateElement::SVGAnimateElement): Remove now-obsolete m_aboutToStopAnimation.
3652         (WebCore::SVGAnimateElement::calculateAnimatedValue): Swap assertion order, to test hasTagName() _before_ casting.
3653         (WebCore::SVGAnimateElement::resetToBaseValue):
3654             Stop relying on the cached baseValue (breaking additive="sum"+values animation) for SVG DOM primitive animations.
3655             Avoid any string roundtrips previously needed to reset the SVGAnimatedType to the base value. Just grab the
3656             currentBaseValue() from the associated SVGAnimatedProperty, which includes all dynamic changes to the baseVal
3657             either by SVG DOM or setAttribute() calls - this way we don't need to utilize the buggy cache in SMILTimeContainer,
3658             which can be removed once all SVG DOM primitive types switched to the new animVal concept.
3659
3660             NOTE: When multiple animations of the same attribute are applied to a target element, resetToBaseValue() will be called
3661             for the highest priority SVGSMILElement, on every animation step! Consider two <animate> elements, applied to a target
3662             <rect> which both animate the 'x' attribute, one from 0s to 2s, the other from 4s to 6s. The last <animate> element
3663             will reuse the SVGAnimatedType m_animatedType from the first <animate> element, and never create an own m_animatedType.
3664             When the animation starts the first time at 0s, we update the rect.x.animVals SVGLength* pointer, to point to the
3665             SVGAnimatedType of the first <animate> element, owning the m_animatedType. From that point on each call to rect.x.animVal
3666             will always return the same value as the SVGAnimatedType of the first <animate> element holds. Now after 2s the first
3667             <animate> element becomes inactive, but its m_animatedType remains alive. The bindings don't notice this change at all.
3668             Now at 4s, the second animation element gets active. It reuses the SVGAnimatedType of the first <animate> element, and
3669             applies its animation changes to that SVGAnimatedType, which is immediately reflected in the bindings w/o any additional
3670             work. It's very important for the understanding when animationStarted/animationEnded need to be called.
3671
3672         (WebCore::SVGAnimateElement::applyResultsToTarget): Remove now-obsolete m_aboutToStopAnimation logic. No need to know it at this point.
3673         (WebCore::SVGAnimateElement::targetElementWillChange):
3674             Renamed from targetElementDidChange(). This method is called from SVGSMILElement for following conditions:
3675             - animation element is destructed
3676             - animation element is removed from document
3677             - target element of animation is destructed
3678             - target element of animation is removed from document
3679             - target element of animation changes id
3680
3681             Whenever any of this happens, we need to reset the animVal. Resetting the animVal involves resetting the PropertyType* pointer,
3682             eg. SVGLength*, from the animVal property tear off, belonging to a certain SVGAnimatedProperty (eg. rect.x) to the initial
3683             value again, which is the 'm_x' of the SVGRectElement. This is needed as the SVGAnimatedType the animVal currently points to,
3684             if an animation is/was running, is destructed in targetElementWillChange(), to reset the SVGAnimateElement to the initial
3685             state before it received a target. This is the only place which destructed the m_animatedType, and thus the only place that
3686             needs to take care of resetting the animVal pointers.
3687
3688         * svg/SVGAnimatedLength.cpp:
3689         (WebCore::SVGAnimatedLengthAnimator::constructFromCopy):
3690             Add a new constructFromCopy(SVGGenericAnimatedType) function to SVGAnimatedLengthAnimator.
3691             It takes a type-unsafe SVGGenericAnimatedType - the caller has to guarantee the type matches.
3692             This is strictly enforced for the single caller of constructFromCopy, and guaranteed to be safe.
3693
3694         * svg/SVGAnimatedLength.h: Add new constructFromCopy method, which is used to avoid string-roundtrips when resetting to base values.
3695         * svg/SVGAnimatedType.cpp:
3696         (WebCore::SVGAnimatedType::supportsAnimVal): Only returns true for AnimatedLength, for now.
3697         (WebCore::SVGAnimatedType::setVariantValue): Takes a SVGGenericAnimatedType, assuming the type matches. Callers have to guarantee type-safety!
3698         * svg/SVGAnimatedType.h:
3699         (SVGAnimatedType): Add new static supportsAnimVal(AnimatedPropertyType) function.
3700         (WebCore::SVGAnimatedType::variantValue): Add a generic accessor for all animated types, called variant(). Only one place uses this.
3701         * svg/SVGAnimatedTypeAnimator.h:
3702         (WebCore::SVGAnimatedTypeAnimator::constructFromCopy):
3703             New method to construct an eg. SVGAnimatedLengthAnimator right from a SVGLength, instead of a String.
3704             In that case the SVGAnimatedType just stores a pointer to the underlying SVGLength, no copying and or other roundtrips involved.
3705
3706         * svg/SVGAnimationElement.cpp:
3707         (WebCore::SVGAnimationElement::svgAttributeChanged):
3708             Implement this instead of attributeChanged. The previous implementation reset the animation state to Inactive, causing a full
3709             rebuild, whenever any attribute changes, even though it might not be related for the animation element, eg.
3710             animate.setAttribute("stdDeviationX", "foobar"). Fix that by checking if we support the attribute (keyTimes/keySplines/etc..)
3711             , if not pass it on to SVGSMILElement (which supports begin/end/etc..) to check if it can handle that.
3712
3713         (WebCore::SVGAnimationElement::animationAttributeChanged):
3714             Called from our svgAttributeChanged, and/or from SVGSMILElement::svgAttributeChanged, whenever a _known_ attribute has changed.
3715             This sledgehammer should be used with care, instead of each time attributeChanged() is called :-)
3716
3717         (WebCore::setTargetAttributeAnimatedCSSValue):
3718             Remove support for removing properties from the override style sheet. I've added this optimization too early, we should reevaluate
3719             this once more types support animVal. It currently complexifies the logic too much, requiring setAttributeAnimatedValue to know
3720             if the animation ends (and that's not easy to figure out, at least not using started/endedActiveInterval, as I anticipated).
3721
3722         (WebCore::findMatchingAnimatedProperty):
3723             Add helper functions which retrieves a SVGAnimatedProperty* for a given SVGElement* targetElement, an attributeName, and an attribute
3724             type. eg. findMatchingAnimatedProperty(myRectElement, SVGNames::xAttr, AnimatedLength) returns the SVGAnimatedProperty which is
3725             exposed to JS, that holds: SVGProperty* baseVal, and SVGProperty* animVal. (Lazily created if they got accessed from JS.). This is
3726             used to update the animVal pointing to a new eg. SVGLength* value, once animation has started, to make rect->x() return that new
3727             SVGLength* value (internally), and to reflect the current animated value in rect.x.animVal.value from JS.
3728
3729         (WebCore::SVGAnimationElement::applyAnimatedValue): Refactored from setTargetAttributeAnimatedValue, to simplify the code.
3730         (WebCore::notifyAnimatedPropertyAboutAnimationBeginEnd):
3731             Helper function to share code betweeen animationStarted/animationEnded.
3732             It takes a SVGAnimatedProperty* and a SVGAnimatedType* which may be zero, indicating that the animation ended.
3733             It calls animationStarted/animationEnded on the given SVGAnimatedProperty, to update the animVal state.
3734             It also figures out all instances of the target element, and their SVGAnimatedProperties that may need updating.
3735
3736         (WebCore::SVGAnimationElement::animationStarted): Uses the helper above, passing on the given animatedType.
3737         (WebCore::SVGAnimationElement::animationEnded): Uses the helper above, passing 0 as animatedType.
3738         (WebCore::InstanceUpdateBlocker::InstanceUpdateBlocker):
3739             Added new helper struct, doing element->setInstancesUpdatedBlock(true) on construction and setInstancesUpdatesBlocked(false) on
3740             destruction, making it impossible to forget one. If we ever rewrite svgAttributeChanged & co to auto-update the cloned instances,
3741             this can go away.
3742
3743         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
3744             Now takes an SVGAnimatedType* instead of a String parameter. In order to avoid string-roundtrips for animVal support, let us
3745             decide if we need to construct a String out of it, or not. For animations supporting animVal (only SVGLength) we don't need
3746             to update any attribute or animVal pointer here, that happens automatically! We only need to notify the targetElement eg,
3747             that its xAttr changed! Previously we had to call targetElement->setAttribute("x", "...") on every animation step for
3748             SVGLength animations - that's gone now! The SVGAnimatedType pointers remains the same during the whole animation, so there's
3749             no need to call animationStarted() at each animated step!
3750
3751         (WebCore::SVGAnimationElement::animatedPropertyForType):
3752             Helper function returning a SVGAnimatedProperty* for the current target element & current target attribute, if the
3753             current animation is running on a type supporting animVal (SVGLength), or returning 0. This is needed for SVGAnimateElement.
3754             Reuses the existing findMatchingAnimatedProperty code.
3755
3756         * svg/SVGAnimationElement.h:
3757         * svg/animation/SMILTimeContainer.cpp:
3758         (WebCore::SMILTimeContainer::updateAnimations):
3759             Add comment to clarify why caching baseValues is just wrong. For SVGLength animations the problem is now gone.
3760             This is exercised using the new additive-from-to-width-animation.html & additive-values-width-animation.html tests.
3761
3762         * svg/animation/SVGSMILElement.cpp:
3763         (WebCore::SVGSMILElement::removedFromDocument):
3764             Since animVal requires that the SVGAnimatedProperties are correctly reset if an animation element is removed from the document,
3765             we have to call targetElementWillChange(0) from here. That requires to move the "m_attributeName = anyQName()" line down,
3766             otherwise targetElementWillChange() would early exit, as no valid attributeName was specified.
3767             
3768             This is verified using the new svg/animations/remove-animation-element-while-animation-is-running.html
3769             and svg/repaint/repainting-after-animation-element-removal.svg tests.
3770
3771         (WebCore::SVGSMILElement::isSupportedAttribute): Add function like all SVG*Elements have identifying their supported attributes.
3772         (WebCore::SVGSMILElement::svgAttributeChanged):
3773             Implement svgAttributeChanged instead of attributeChanged. Only take action if the attribute is actually supported.
3774             If one of the common attributes like begin/end/etc. changed, be sure to call animationAttributeChanged() so that our
3775             ancestor-classes get notified about this and can take action as well. NOTE: This is not about animating begin/end attributes,
3776             but about pure DOM changes. begin/end/et.. are not exposed to the SVG DOM, we still reuse the svgAttributeChanged logic
3777             for consistency. (This does NOT make those attributes animatable, nothing this here as it came up while reviewing).
3778     
3779         (WebCore::SVGSMILElement::targetElement): Adapt logic to targetElementDidChange -> targetElementWillChange change.
3780         (WebCore::SVGSMILElement::targetElementWillChange):
3781             Renamed from targetElementDidChange. Added "oldTarget" as parameter as well. Our ancestor-classes like SVGAnimateElement
3782             use this to properly deregister the animVal in the old target, before resetting the SVGAnimatedType, otherwise we'd leave
3783             dangling pointers around (verified manually by guard malloc runs, that none of this happens).
3784
3785             Also add a default implementation here in targetElementWillChange, that ancestor classes have to call.
3786             Now we properly call endedActiveInterval() if the m_activeState is currently Active, so that animations are shut-down
3787             just like if the animation properly ends (use the same cleanup routines, etc.). Not doing that now leads to assertions.
3788
3789         (WebCore::SVGSMILElement::resetTargetElement):
3790             Instead of forcing m_activeState to be inactive, use the standard methods to end the animation.
3791             targetElementWillChange(m_targetElement, 0) and animationAttributeChanged().
3792
3793             resetTargetElement() is only called by SVGDocumentExtensions::removeAllAnimationElementsFromTarget() for following conditions:
3794             - targetElement gets destructed
3795             - targetElement gets removed from the document
3796             - targetElement id changes
3797
3798             If the targetElement gets destructed or removed, no actions need to be taken, as the SVGAnimatedPropertys are teared down
3799             as well. But if only the id changes, we still have to properly disconnect the animVals - this is all handled through
3800             targetElementWillChange now - that's why this has to be called from here as well.
3801             That explains why targetElementWillChange() now needs to check if the targetElement is destructing or not.
3802
3803         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
3804             Pass the AnimatedPropertyType from the SVGPropertyInfo to the SVGAnimatedProperties.
3805             Requires mechanic changes in all SVGAnimated* classes. We need acccess to the AnimatedPropertyType
3806             to verify the SVGAnimatedType objects, passed to animationStarted, match our type. This is to enforce
3807             strict type-checking, whenever SVGGenericAnimatedTypes are passed around.
3808
3809         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
3810         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
3811         * svg/properties/SVGAnimatedListPropertyTearOff.h: Ditto.
3812         (WebCore::SVGAnimatedListPropertyTearOff::create):
3813         (WebCore::SVGAnimatedListPropertyTearOff::SVGAnimatedListPropertyTearOff):
3814         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Ditto.
3815         (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
3816         (WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):
3817         * svg/properties/SVGAnimatedProperty.h: Store AnimatedPropertyType, add accessors.
3818         (WebCore::SVGAnimatedProperty::animatedPropertyType): Add accessor.
3819         (WebCore::SVGAnimatedProperty::animationValueChanged): New animVal related functions to be implemented in the animated tear offs.
3820         (WebCore::SVGAnimatedProperty::animationStarted): Ditto.
3821         (WebCore::SVGAnimatedProperty::animationEnded): Ditto.
3822         (WebCore::SVGAnimatedProperty::currentBaseValue):
3823             Generic accessor for the baseVal: returns a SVGGenericAnimatedType.
3824             It takes an AnimatedPropertyType as input, that's only needed to verify that the type we're returning matches
3825             the expectation of the caller. If not, return 0 to avoid any potential casting mistakes, which would lead to crashes.
3826
3827         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): Store m_animatedPropertyType.
3828         * svg/properties/SVGAnimatedPropertyTearOff.h:
3829         (WebCore::SVGAnimatedPropertyTearOff::create): Same changes as in the other tear offs: pass around AnimatedPropertyType.
3830         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue): Returns &m_property, if the type matches (see above).
3831         (SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
3832         (WebCore::SVGAnimatedPropertyTearOff::animationValueChanged): No-op for non list types, don't need to do anything here.
3833         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
3834         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
3835             Store the currently animated value in the animVal() property tear off, that's also re-used as-is for the JS bindings.
3836             As this is important, here's an example of how this affects methods like rect->x() used in the renderers.
3837
3838             Setting m_isAnimating to true, redirects any rect->x() calls that previously returned rect->m_x, to
3839             rect->xAnimated()->animVal()->propertyReference() (which returns the same SVGLength& that the SVGAnimatedElement
3840             m_animatedType contains). Calling rect->setXBaseValue() still modifies rect->m_x, and is used by all parseAttribute()
3841             methods in svg/ as setAttribute() calls only ever modify the "baseValue", never the current animated value.
3842             rect.x.baseVal will return a SVGLength object corresponding to rect->m_x.
3843             rect.x.animVal will return a SVGLength object corresponding to rect->xAnimated()->animVal()->propertyReference().
3844
3845             These implementation details are all hidden in the SVGAnimatedPropertyMacros. Here's an example from SVGRectElement:
3846             DECLARE_ANIMATED_LENGTH(X, x) -> Replace PropertyType with 'SVGLength', LowerProperty with 'x', and UpperProperty with 'X'.
3847
3848             PropertyType& LowerProperty() const
3849             {
3850                 if (TearOffType* wrapper = SVGAnimatedProperty::lookupWrapper<UseOwnerType, TearOffType, IsDerivedFromSVGElement<UseOwnerType>::value>(this, LowerProperty##PropertyInfo())) {
3851                     if (wrapper->isAnimating())
3852                         return wrapper->currentAnimatedValue();
3853                 }
3854                 return m_##LowerProperty.value;
3855             }
3856
3857             PropertyType& LowerProperty##BaseValue() const
3858             {
3859                 return m_##LowerProperty.value;
3860             }
3861
3862             void set##UpperProperty##BaseValue(const PropertyType& type)
3863             {
3864                 m_##LowerProperty.value = type;
3865             }
3866
3867             Any code outside of svg/, eg. in rendering/svg, does not need to care about any baseVal/animVal differences.
3868             During layout eg. RenderSVGRect calls rect->x().value(someLengthContext) to get the current 'x' as float. If an animation
3869             is running on that rect element it will automatically retrieve the last set animated value here - all under the hood.
3870             I hope that sheds some light in those myserious functions, they were designed with animVal in mind, but we never had that until now :-)
3871
3872         (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
3873         (WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff): Add destructor to debug builds veryifing that m_isAnimating is false.
3874         * svg/properties/SVGAnimatedStaticPropertyTearOff.h: Ditto.
3875         (WebCore::SVGAnimatedStaticPropertyTearOff::create):
3876         (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
3877         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Ditto.
3878         (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
3879         (WebCore::SVGAnimatedTransformListPropertyTearOff::SVGAnimatedTransformListPropertyTearOff):
3880         * svg/properties/SVGPropertyInfo.h: Add SVGGenericAnimatedType definition.
3881         * svg/properties/SVGPropertyTearOff.h: Remove obsolete updateAnimVal method - switched to using setValue directly.
3882
3883 2012-03-13  Luke Macpherson   <macpherson@chromium.org>
3884
3885         Implement CSSPropertyTextOverflow in CSSStyleApplyProperty.
3886         https://bugs.webkit.org/show_bug.cgi?id=80934
3887
3888         Reviewed by Andreas Kling.
3889
3890         No new tests / refactoring only.
3891
3892         * css/CSSStyleApplyProperty.cpp:
3893         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
3894         * css/CSSStyleSelector.cpp:
3895         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3896
3897 2012-03-12  Matt Falkenhagen  <falken@chromium.org>
3898
3899         Switch Chromium from LocaleToScriptMappingICU.cpp to LocaleToScriptMappingDefault.cpp
3900         https://bugs.webkit.org/show_bug.cgi?id=80935
3901
3902         Reviewed by Kent Tamura.
3903
3904         ICU seems to have issues with non-well-formed locale strings.
3905         Currently, the only port that uses LocaleToScriptMappingICU.cpp is
3906         Chromium.
3907
3908         No new tests. LocaleToScriptMappingDefault.cpp is already used by
3909         other ports and covered by existing tests.
3910
3911         * WebCore.gyp/WebCore.gyp:
3912
3913 2012-03-12  Benjamin Poulain  <bpoulain@apple.com>
3914
3915         Fix IndexedDB build with JSC
3916         https://bugs.webkit.org/show_bug.cgi?id=80207
3917
3918         Reviewed by Adam Barth.
3919
3920         This fixes the build of WebKit when IndexedDB is enabled. Most functions were added
3921         empty implementation, it compiles but IndexedDB is not working.
3922
3923         * DerivedSources.make: Added missing IDL files.
3924         * Modules/indexeddb/IDBDatabaseBackendImpl.h: Fix warnings and build errors.
3925         (IDBDatabaseBackendImpl):
3926         * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: ditto.
3927         (WebCore::IDBDatabaseCallbacksImpl::unregisterDatabase): ditto.
3928         * Modules/indexeddb/IDBFactoryBackendImpl.cpp: ditto.
3929         (WebCore::IDBFactoryBackendImpl::openBackingStore):
3930         * Modules/indexeddb/IDBIndexBackendImpl.cpp: ditto.
3931         (WebCore::IDBIndexBackendImpl::countInternal):
3932         * Modules/indexeddb/IDBKeyPathBackendImpl.cpp: Fix the method signature and add
3933         an empty implementation.
3934         (WebCore):
3935         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
3936         (WebCore::IDBKeyPathBackendImpl::injectIDBKeyIntoSerializedValue):
3937         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Fix warnings.
3938         (WebCore::IDBObjectStoreBackendImpl::countInternal):
3939         * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: ditto.
3940         (WebCore::transactions):
3941         * Modules/indexeddb/IDBRequest.cpp: ditto.
3942         (WebCore::IDBRequest::resetReadyState):
3943         * Modules/indexeddb/IDBRequest.h: ditto.
3944         (WebCore::IDBRequest::onSuccessWithPrefetch):
3945         (WebCore):
3946         (WebCore::JSIDBVersionChangeRequest::visitChildren):
3947         * WebCore.xcodeproj/project.pbxproj:
3948         * bindings/js/IDBBindingUtilities.cpp:
3949         (WebCore::createIDBKeyFromValue): Fix the creation of IDBKeys.
3950         (WebCore::createOptionsObjectFromValue): Add an empty implementation of
3951         the handling of database options (IDBObjectStoreParameters).
3952         (WebCore):
3953         * bindings/js/IDBBindingUtilities.h:
3954         (WebCore):
3955         * bindings/js/JSIDBAnyCustom.cpp:
3956         (WebCore::toJS): Add the missing IDBAny's types.
3957         * bindings/js/JSIDBKeyCustom.cpp:
3958         (WebCore::toJS): Add the missing IDBKey's types.
3959         * bindings/js/JSIDBVersionChangeRequestCustom.cpp: Added.
3960         IDBVersionChangeRequest has the attribute EventTarget so it requires
3961         the visitChildren() function. An empty implementation was added.
3962         * bindings/js/OptionsObject.h: Add an empty implementation.
3963         (WebCore):
3964         (OptionsObject):
3965         (WebCore::OptionsObject::OptionsObject):
3966         (WebCore::OptionsObject::isObject):
3967         (WebCore::OptionsObject::isUndefinedOrNull):
3968         (WebCore::OptionsObject::get):
3969         (WebCore::OptionsObject::getWithUndefinedOrNullCheck):
3970         * bindings/js/SerializedScriptValue.cpp: Add the missing functions needed by IndexedDB.
3971         (WebCore):
3972         (WebCore::SerializedScriptValue::create):
3973         (WebCore::SerializedScriptValue::toWireString):
3974         (WebCore::SerializedScriptValue::createFromWire):
3975         (WebCore::SerializedScriptValue::numberValue):
3976         (WebCore::SerializedScriptValue::deserialize):
3977         * bindings/js/SerializedScriptValue.h:
3978         (SerializedScriptValue):
3979         * bindings/scripts/CodeGeneratorJS.pm: Modify the code generator to:
3980         -Support the IDBKey type correctly.
3981         -Support the OptionsObject type.
3982         -Generate valid function call for static functions.
3983         (GenerateImplementationFunctionCall):
3984         (JSValueToNative):
3985         (NativeToJSValue):
3986         * inspector/InspectorIndexedDBAgent.cpp:
3987         (WebCore):
3988
3989 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
3990
3991         Unreviewed, rolling out r110529.
3992         http://trac.webkit.org/changeset/110529
3993         https://bugs.webkit.org/show_bug.cgi?id=80969
3994
3995         breaks mac build (Requested by morrita on #webkit).
3996
3997         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3998         (WebCore::computeUnoccludedContentRect):
3999
4000 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
4001