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