Unreviewed, rolling out r112954 and r112969.
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-04-03  Alexander Pavlov  <apavlov@chromium.org>
2
3         Unreviewed, rolling out r112954 and r112969.
4         http://trac.webkit.org/changeset/112954
5         http://trac.webkit.org/changeset/112969
6         https://bugs.webkit.org/show_bug.cgi?id=79172
7
8         Hits "ASSERTION FAILED: !m_isHandlingDrag" in DnD-related
9         tests on Debug bots
10
11         * page/DragController.cpp:
12         (WebCore::DragController::performDrag):
13
14 2012-04-03  Nikolas Zimmermann  <nzimmermann@rim.com>
15
16         Enable animVal support for SVGAnimatedEnumeration
17         https://bugs.webkit.org/show_bug.cgi?id=82459
18
19         Reviewed by Dirk Schulze.
20
21         Enable animVal support for the last missing SVG DOM primitive: SVGAnimatedEnumeration.
22         It's a bit more involved than the others as we have to differentiate between the various
23         enumerations to use the correct SVGPropertyTraits<MyEnum>::fromString() code-path.
24
25         One SVGAnimatedEnumeration property in the SVG DOM is special: SVGAnimatedEnumeration orientType
26         from SVGMarkerElement. SVGMarkerElement exposes both the orientType and SVGAnimatedAngle orientAngle
27         SVG DOM properties and both get mapped to the same SVGNames::orientAttr ("orient" XML attribute).
28         That means that any animation of the orientAttr has to update both orientType & orientAngle.
29
30         This is a not a new requirement, we already support attributes like 'stdDeviation' from
31         SVGFEGaussianBlurElement, which get mapped to multiple SVG DOM objects: SVGAnimatedInteger stdDeviationX/Y.
32         The difference is that <integer-optional-integer> or <number-optional-number> animations use the
33         same type in the pair<xxx, xxx> (eg. both int, or both float). The 'orient' attribute needs to be
34         mapped to pair<xxx, yyy> types. Generalize the templates in SVGAnimatedTypeAnimator to support that.
35
36         Example:
37         <marker id="someMarkerElement" orient="45deg"/>
38         <animate fill="remove" begin="1s" dur="2s" from="90deg" to="auto" attributeName="orient" xlink:href="#someMarkerElement"/>
39
40         at 0s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
41                someMarkerElement.orientAngle.animVal.value = 45
42
43                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
44                someMarkerElement.orientAngle.baseVal.value = 45
45
46         at 1s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
47                someMarkerElement.orientAngle.animVal.value = 90
48
49                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
50                someMarkerElement.orientAngle.baseVal.value = 45
51
52         at 2s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
53                someMarkerElement.orientAngle.animVal.value = 0
54
55                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
56                someMarkerElement.orientAngle.baseVal.value = 45
57
58          > 3s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
59                someMarkerElement.orientAngle.animVal.value = 45
60
61                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
62                someMarkerElement.orientAngle.baseVal.value = 45
63
64         We need to map the 'orient' attribute to a pair<SVGAngle, unsigned short> type, in order
65         to track both orientAngle & orientType at the same type. Fortunately SVGAnimatedAngle
66         is only used in the SVG DOM for SVGMarkerElements orientAngle property. We can directly
67         switch SVGAnimatedAngleAnimator to the new pair<SVGAngle, unsigned short> type instead
68         of having to introduce a special SVGAnimatedAngleAndEnumerationAnimator.
69
70         Added tests for all SVGAnimatedEnumeration properties in the SVG DOM, including an extensive set of tests
71         for the synchronization of the orientType / orientAngle properties, when they get animated.
72
73         Tests: svg/animations/animate-marker-orient-from-angle-to-angle.html
74                svg/animations/animate-marker-orient-from-angle-to-auto.html
75                svg/animations/animate-marker-orient-to-angle.html
76                svg/animations/svgenum-animation-1.html
77                svg/animations/svgenum-animation-10.html
78                svg/animations/svgenum-animation-11.html
79                svg/animations/svgenum-animation-12.html
80                svg/animations/svgenum-animation-13.html
81                svg/animations/svgenum-animation-2.html
82                svg/animations/svgenum-animation-3.html
83                svg/animations/svgenum-animation-4.html
84                svg/animations/svgenum-animation-5.html
85                svg/animations/svgenum-animation-6.html
86                svg/animations/svgenum-animation-7.html
87                svg/animations/svgenum-animation-8.html
88                svg/animations/svgenum-animation-9.html
89
90         * CMakeLists.txt:
91         * GNUmakefile.list.am:
92         * Target.pri:
93         * WebCore.gypi:
94         * WebCore.xcodeproj/project.pbxproj:
95         * svg/SVGAllInOne.cpp:
96         * svg/SVGAnimateElement.cpp:
97         (WebCore::SVGAnimateElement::determineAnimatedPropertyType):
98         (WebCore::SVGAnimateElement::calculateAnimatedValue):
99         (WebCore::propertyTypesAreConsistent):
100         (WebCore::SVGAnimateElement::applyResultsToTarget):
101         * svg/SVGAnimatedAngle.cpp:
102         (WebCore::SVGAnimatedAngleAnimator::constructFromString):
103         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
104         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
105         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
106         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
107         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
108         (WebCore::SVGAnimatedAngleAnimator::calculateFromAndByValues):
109         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
110         * svg/SVGAnimatedAngle.h:
111         (WebCore):
112         * svg/SVGAnimatedBoolean.cpp:
113         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
114         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
115         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
116         * svg/SVGAnimatedEnumeration.cpp: Added.
117         (WebCore):
118         (WebCore::enumerationValueForTargetAttribute):
119         (WebCore::SVGAnimatedEnumerationAnimator::SVGAnimatedEnumerationAnimator):
120         (WebCore::SVGAnimatedEnumerationAnimator::constructFromString):
121         (WebCore::SVGAnimatedEnumerationAnimator::startAnimValAnimation):
122         (WebCore::SVGAnimatedEnumerationAnimator::stopAnimValAnimation):
123         (WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):
124         (WebCore::SVGAnimatedEnumerationAnimator::animValWillChange):
125         (WebCore::SVGAnimatedEnumerationAnimator::animValDidChange):
126         (WebCore::SVGAnimatedEnumerationAnimator::calculateFromAndToValues):
127         (WebCore::SVGAnimatedEnumerationAnimator::calculateFromAndByValues):
128         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
129         (WebCore::SVGAnimatedEnumerationAnimator::calculateDistance):
130         * svg/SVGAnimatedEnumeration.h:
131         (SVGAnimatedEnumerationAnimator):
132         (WebCore::SVGAnimatedEnumerationAnimator::~SVGAnimatedEnumerationAnimator):
133         (WebCore):
134         * svg/SVGAnimatedInteger.cpp:
135         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
136         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
137         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
138         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
139         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
140         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
141         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
142         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
143         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
144         * svg/SVGAnimatedLength.cpp:
145         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
146         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
147         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
148         * svg/SVGAnimatedLengthList.cpp:
149         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
150         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
151         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
152         * svg/SVGAnimatedNumber.cpp:
153         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
154         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
155         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
156         * svg/SVGAnimatedNumberList.cpp:
157         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
158         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
159         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
160         * svg/SVGAnimatedNumberOptionalNumber.cpp:
161         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
162         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
163         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
164         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
165         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
166         * svg/SVGAnimatedPreserveAspectRatio.cpp:
167         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
168         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
169         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
170         * svg/SVGAnimatedRect.cpp:
171         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
172         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
173         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
174         * svg/SVGAnimatedString.cpp:
175         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
176         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
177         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
178         * svg/SVGAnimatedTransformList.cpp:
179         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
180         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
181         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
182         * svg/SVGAnimatedType.cpp:
183         (WebCore::SVGAnimatedType::~SVGAnimatedType):
184         (WebCore::SVGAnimatedType::createAngleAndEnumeration):
185         (WebCore::SVGAnimatedType::createEnumeration):
186         (WebCore):
187         (WebCore::SVGAnimatedType::angleAndEnumeration):
188         (WebCore::SVGAnimatedType::enumeration):
189         (WebCore::SVGAnimatedType::valueAsString):
190         (WebCore::SVGAnimatedType::setValueAsString):
191         (WebCore::SVGAnimatedType::supportsAnimVal):
192         * svg/SVGAnimatedType.h:
193         (SVGAnimatedType):
194         * svg/SVGAnimatedTypeAnimator.h:
195         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
196         (SVGAnimatedTypeAnimator):
197         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue):
198         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
199         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
200         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
201         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
202         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
203         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
204         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForTypes):
205         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForTypes):
206         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForTypes):
207         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
208         (WebCore::SVGAnimatedTypeAnimator::executeAction):
209         * svg/SVGAnimatorFactory.h:
210         (WebCore::SVGAnimatorFactory::create):
211         * svg/SVGMarkerElement.cpp:
212         (WebCore):
213         * svg/properties/SVGAnimatedListPropertyTearOff.h:
214         (SVGAnimatedListPropertyTearOff):
215         * svg/properties/SVGAnimatedPropertyTearOff.h:
216         (SVGAnimatedPropertyTearOff):
217         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
218         (SVGAnimatedStaticPropertyTearOff):
219
220 2012-04-03  Sheriff Bot  <webkit.review.bot@gmail.com>
221
222         Unreviewed, rolling out r112987 and r112993.
223         http://trac.webkit.org/changeset/112987
224         http://trac.webkit.org/changeset/112993
225         https://bugs.webkit.org/show_bug.cgi?id=83010
226
227         hits ASSERTs in Debug builds (Requested by philn-tp on
228         #webkit).
229
230         * dom/Document.cpp:
231         (WebCore::Document::Document):
232         (WebCore::Document::initSecurityContext):
233         * dom/Document.h:
234         (Document):
235         * html/HTMLAttributeNames.in:
236         * html/HTMLFrameElementBase.cpp:
237         (WebCore::HTMLFrameElementBase::parseAttribute):
238         (WebCore::HTMLFrameElementBase::location):
239         * html/HTMLIFrameElement.idl:
240         * html/parser/HTMLTreeBuilder.cpp:
241         (WebCore::HTMLTreeBuilder::defaultForInitial):
242         * loader/FrameLoader.cpp:
243         (WebCore::FrameLoader::urlSelected):
244         (WebCore::FrameLoader::submitForm):
245         (WebCore::FrameLoader::outgoingReferrer):
246         (WebCore::FrameLoader::loadFrameRequest):
247         (WebCore::FrameLoader::load):
248         (WebCore::FrameLoader::loadWithNavigationAction):
249         (WebCore::FrameLoader::reloadWithOverrideEncoding):
250         (WebCore::FrameLoader::reload):
251         (WebCore::FrameLoader::loadResourceSynchronously):
252         * loader/FrameLoader.h:
253         (FrameLoader):
254
255 2012-04-03  Bill Budge  <bbudge@chromium.org>
256
257         REGRESSION (r112217): H&R Block tax site won't load
258         https://bugs.webkit.org/show_bug.cgi?id=82964
259
260         Modifies the redirect checking code to first check if the security origin can
261         request the redirect URL before invoking the CORS check.
262
263         Reviewed by Adam Barth.
264
265         http/tests/xmlhttprequest/access-control-and-redirects-async.html
266
267         * loader/DocumentThreadableLoader.cpp:
268         * loader/DocumentThreadableLoader.h:
269
270 2012-04-03  Sheriff Bot  <webkit.review.bot@gmail.com>
271
272         Unreviewed, rolling out r112994.
273         http://trac.webkit.org/changeset/112994
274         https://bugs.webkit.org/show_bug.cgi?id=83008
275
276         This patch has to wait until v8 roll. (Requested by loislo on
277         #webkit).
278
279         * bindings/js/ScriptHeapSnapshot.h:
280         * bindings/v8/ScriptHeapSnapshot.cpp:
281         (WebCore):
282         * bindings/v8/ScriptHeapSnapshot.h:
283         (WebCore):
284         (ScriptHeapSnapshot):
285         * inspector/InspectorProfilerAgent.cpp:
286         (WebCore::InspectorProfilerAgent::createSnapshotHeader):
287         * inspector/front-end/DetailedHeapshotView.js:
288         (WebInspector.HeapSnapshotConstructorsDataGrid):
289         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.setDataSource):
290         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype.populateChildren):
291         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged.firstSnapshotLoaded):
292         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged.secondSnapshotLoaded):
293         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
294         (WebInspector.DetailedHeapshotView.prototype._changeFilter):
295         * inspector/front-end/HeapSnapshot.js:
296         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
297         (WebInspector.HeapSnapshot.prototype.updateStaticData):
298         * inspector/front-end/HeapSnapshotProxy.js:
299         (WebInspector.HeapSnapshotProxy.prototype.get maxNodeId):
300
301 2012-03-28  Ilya Tikhonovsky  <loislo@chromium.org>
302
303         Web Inspector: use maxJSObjectId that is provided by back-end.
304         https://bugs.webkit.org/show_bug.cgi?id=82451
305
306         Summary view can filter objects in snapshot. It uses maxJSObjectId for this.
307         There was no such field in the profile header at the
308         moment but I've landed a patch in downstream.
309
310         Reviewed by Yury Semikhatsky.
311
312         * bindings/v8/ScriptHeapSnapshot.cpp:
313         (WebCore::ScriptHeapSnapshot::maxSnapshotJSObjectId):
314         (WebCore):
315         * bindings/v8/ScriptHeapSnapshot.h:
316         (WebCore):
317         (ScriptHeapSnapshot):
318         * inspector/InspectorProfilerAgent.cpp:
319         (WebCore::InspectorProfilerAgent::createSnapshotHeader):
320         * inspector/front-end/DetailedHeapshotView.js:
321         (WebInspector.HeapSnapshotConstructorsDataGrid.prototype._filterSelectIndexChanged):
322         (WebInspector.DetailedHeapshotView.prototype._changeFilter):
323         * inspector/front-end/HeapSnapshot.js:
324         (WebInspector.HeapSnapshot.prototype.updateStaticData):
325         * inspector/front-end/HeapSnapshotProxy.js:
326
327 2012-04-02  Pavel Feldman  <pfeldman@chromium.org>
328
329         Web Inspector: "Pause on start" doesn't change checked state in workers panel
330         https://bugs.webkit.org/show_bug.cgi?id=82908
331
332         Reviewed by Yury Semikhatsky.
333
334         This change partially reverts logic that was introduced with r111551:
335         preventDefault was called beside each stopPropagation. As a result, default checkbox handler was not working.
336         Event.prototype.consume now receives preventDefault parameter that controls whether default action
337         should be prevented.
338
339         * inspector/front-end/AdvancedSearchController.js:
340         (WebInspector.SearchView.prototype._onKeyDown):
341         * inspector/front-end/CSSSelectorProfileView.js:
342         * inspector/front-end/ConsoleView.js:
343         (WebInspector.ConsoleView.prototype._enterKeyPressed):
344         (WebInspector.ConsoleGroup.prototype._titleClicked):
345         * inspector/front-end/DataGrid.js:
346         (WebInspector.DataGrid.prototype._keyDown):
347         * inspector/front-end/DatabaseQueryView.js:
348         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
349         * inspector/front-end/DetailedHeapshotView.js:
350         (WebInspector.DetailedHeapshotView.prototype._mouseDownInContentsGrid):
351         (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
352         * inspector/front-end/Dialog.js:
353         (WebInspector.Dialog.prototype._onKeyDown):
354         * inspector/front-end/Drawer.js:
355         (WebInspector.Drawer.prototype._statusBarDragging):
356         * inspector/front-end/Object.js:
357         (WebInspector.Event.prototype.consume):
358         * inspector/front-end/ObjectPropertiesSection.js:
359         (WebInspector.ObjectPropertyTreeElement.prototype._promptKeyDown):
360         * inspector/front-end/ProfileView.js:
361         * inspector/front-end/SearchController.js:
362         (WebInspector.SearchController.prototype._onKeyDown):
363         * inspector/front-end/SoftContextMenu.js:
364         (.WebInspector.SoftContextMenu.prototype.show):
365         (.WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
366         (.WebInspector.SoftContextMenu.prototype._menuKeyDown):
367         (.WebInspector.SoftContextMenu.prototype._discardMenu):
368         * inspector/front-end/Spectrum.js:
369         (WebInspector.Spectrum.draggable.consume):
370         (WebInspector.Spectrum.prototype._onKeyDown):
371         * inspector/front-end/StylesSidebarPane.js:
372         (WebInspector.StylesSidebarPane.muteEventListener):
373         (WebInspector.StylesSidebarPane):
374         (WebInspector.StylePropertiesSection.prototype._handleSelectorClick):
375         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
376         (WebInspector.StylePropertyTreeElement.prototype):
377         * inspector/front-end/TextPrompt.js:
378         (WebInspector.TextPrompt.prototype.onKeyDown):
379         (WebInspector.TextPromptWithHistory.prototype.defaultKeyHandler):
380         (WebInspector.TextPrompt.SuggestBox.prototype._onItemMouseDown):
381         * inspector/front-end/TextViewer.js:
382         (WebInspector.TextViewer.prototype._handleKeyDown):
383         * inspector/front-end/UIUtils.js:
384         (WebInspector.startEditing):
385         * inspector/front-end/inspector.js:
386         (WebInspector.documentKeyDown):
387         * inspector/front-end/treeoutline.js:
388         (TreeOutline.prototype._treeKeyPress):
389         (TreeOutline.prototype._treeKeyDown):
390         (TreeOutline.prototype._searchInputKeyDown):
391         (TreeElement.prototype.selectOnMouseDown):
392         * inspector/front-end/utilities.js:
393         (Event.prototype.consume):
394
395 2012-04-02  Chris Fleizach  <cfleizach@apple.com>
396
397         AX: search field on Google.com does not have the AXSearchField subrole
398         https://bugs.webkit.org/show_bug.cgi?id=82819
399
400         Reviewed by Darin Adler.
401
402         Detect search fields when possible for accessibility.
403
404         Test: platform/mac/accessibility/search-subrole.html
405
406         * accessibility/AccessibilityObject.h:
407         (WebCore::AccessibilityObject::isSearchField):
408         * accessibility/AccessibilityRenderObject.cpp:
409         (WebCore::AccessibilityRenderObject::isSearchField):
410         (WebCore):
411         * accessibility/AccessibilityRenderObject.h:
412         (AccessibilityRenderObject):
413         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
414         (-[WebAccessibilityObjectWrapper subrole]):
415
416 2012-04-02  Kent Tamura  <tkent@chromium.org>
417
418         Introduce another file-to-array script
419         https://bugs.webkit.org/show_bug.cgi?id=83001
420
421         Reviewed by Kentaro Hara.
422
423         make-file-arrays.py is a script to convert a binary file to a C++
424         char array. The differences from css/make-css-file-arrays.pl and
425         inspector/xxd.pl are:
426
427         - No whitespace stripping for CSS files
428         - We can make conditional arrays.
429         e.g. An array enclosed with #if ENABLE(...) - #endif.
430
431         This script will be used to implement a calendar picker for <input
432         type=date>.
433
434         * make-file-arrays.py: Added.
435
436 2012-04-02  Adam Barth  <abarth@webkit.org>
437
438         Implement <iframe srcdoc>
439         https://bugs.webkit.org/show_bug.cgi?id=82991
440
441         Reviewed by Sam Weinig.
442
443         This patch implements the <iframe srcdoc> feature. This feature allows
444         authors to easily supply the contents of an iframe without needing to
445         round-trip to the server. Using srcdoc is more convenient than using
446         data URLs because we set a bunch of properties of the child document
447         sensibly. For example, the child inherits the base URL of the parent
448         and the child uses standards mode by default.
449
450         This feature is specified in
451         <http://www.whatwg.org/specs/web-apps/current-work/#attr-iframe-srcdoc>.
452         Although the feature has been in the spec for a while, I'm not aware of
453         any other implementations in major browsers. The srcdoc feature works
454         especially well with the sandbox and seamless attributes. We already
455         implement sandbox and will likely implement seamless soon.
456
457         The srcdoc feature was announced on the webkit-dev mailing list on March 30:
458         https://lists.webkit.org/pipermail/webkit-dev/2012-March/020161.html
459
460         This patch approaches the implementation using SubstituteData, which is
461         a mechanism previously used for error messages and the like. Using
462         SubstituteData has the advantage of not needing to modify the loading
463         or history pipelines at all, making the integration of srcdoc with the
464         rest of WebCore quite smooth.
465
466         This patch encodes the contents of the srcdoc attribute to and from
467         UTF-8 when round-tripping the contents through the loader. In a future
468         patch, I plan to experiment with whether using UTF-16 (or perhaps
469         another encoding) can improve performance. There might also be a way to
470         avoid the memcpy entirely, but these optimizations are best left to
471         followup patches as this patch focuses on the observable behavior of
472         the feature.
473
474         Tests: fast/frames/srcdoc/reloading-a-srcdoc-document-loads-it-again.html
475                fast/frames/srcdoc/setting-src-does-nothing.html
476                fast/frames/srcdoc/setting-srcdoc-reloads-document.html
477                fast/frames/srcdoc/srcdoc-beats-src-dom.html
478                fast/frames/srcdoc/srcdoc-beats-src.html
479                fast/frames/srcdoc/srcdoc-can-be-in-qurks-mode.html
480                fast/frames/srcdoc/srcdoc-can-navigate.html
481                fast/frames/srcdoc/srcdoc-defaults-to-standards-mode.html
482                fast/frames/srcdoc/srcdoc-loads-content.html
483                fast/frames/srcdoc/srcdoc-urls.html
484                http/tests/security/srcdoc-can-access-parent.html
485                http/tests/security/srcdoc-in-sandbox-cannot-access-parent.html
486                http/tests/security/srcdoc-inherits-referrer-for-forms.html
487                http/tests/security/srcdoc-inherits-referrer.html
488
489         * dom/Document.cpp:
490         (WebCore::Document::Document):
491         (WebCore::Document::initSecurityContext):
492             - srcdoc documents need to inherit their security contexts from
493               their parents. We pick this initialization point to inherit the
494               base URL and to set the "srcdoc Document" bit so that everything
495               gets initialized atomically and from precisely the same owner
496               frame.
497         * dom/Document.h:
498         (Document):
499         (WebCore::Document::isSrcdocDocument):
500             - This bit of state is present in the HTML5 spec and is referred to
501               by a number of different requirements in the spec.
502         * html/HTMLAttributeNames.in:
503         * html/HTMLFrameElementBase.cpp:
504         (WebCore::HTMLFrameElementBase::parseAttribute):
505         (WebCore::HTMLFrameElementBase::location):
506             - These functions implement the requirement that the srcdoc
507               attribute takes precedence over the src attribute and triggers a
508               load of a document with the URL about:srcdoc.
509         * html/HTMLIFrameElement.idl:
510             - Expose the srcdoc property as a reflection of the DOM attribute.
511         * html/parser/HTMLTreeBuilder.cpp:
512         (WebCore::HTMLTreeBuilder::defaultForInitial):
513             - This tweak allows srcdoc documents to use standards mode by
514               default, saving authors from having to include a doctype in each
515               srcdoc document.
516         * loader/FrameLoader.cpp:
517         (WebCore::FrameLoader::defaultSubstituteDataForURL):
518             - This function transfers the contents of the srcdoc attribute into
519               the loading pipeline. If the client supplies other
520               SubstituteData, that takes precendence over our "default"
521               SubstituteData.
522         (WebCore::FrameLoader::outgoingReferrer):
523             - This function implements the requirement from the HTML5 spec that
524               srcdoc documents inherit their referrer from their parent
525               document. A recursive implementation might have been more
526               aesthetic but the iterative implementation seemed like a better
527               choice.
528         (WebCore::FrameLoader::shouldTreatURLAsSrcdocDocument):
529             - An about:srcdoc URL only has special meaning when loaded in an
530               iframe with a srcdoc attribute. Otherwise, it's just a normal
531               "about" URL, meaning a blank page.
532         (WebCore::FrameLoader::urlSelected):
533         (WebCore::FrameLoader::submitForm):
534         (WebCore::FrameLoader::loadFrameRequest):
535         (WebCore::FrameLoader::load):
536         (WebCore::FrameLoader::loadWithNavigationAction):
537         (WebCore::FrameLoader::reloadWithOverrideEncoding):
538         (WebCore::FrameLoader::reload):
539         (WebCore::FrameLoader::loadResourceSynchronously):
540             - Update these call sites to call defaultSubstituteDataForURL and
541               outgoingReferrer consistently.
542         * loader/FrameLoader.h:
543         (FrameLoader):
544
545 2012-04-02  Dana Jansens  <danakj@chromium.org>
546
547         [chromium] Remove SkCanvas::LayerIter use from OpaqueRegionSkia
548         https://bugs.webkit.org/show_bug.cgi?id=82564
549
550         Reviewed by Stephen White.
551
552         Per-tile-painting uses an SkPictureRecord in place of an SkCanvas
553         as the painting target for the GraphicsContext. This class only does
554         a simple recording and does not create layers in the canvas during
555         record, only playback. This is preventing us from correctly tracking
556         opaque regions under per-tile-painting.
557
558         We currently use the SkCanvas LayerIter to look at the layers in the
559         canvas backing the GraphicsContext, and check the SkPaints, clips,
560         and transforms to see how they impact the current draw once it reaches
561         the final device.
562
563         The clips and transforms can be retreived without using the LayerIter
564         through the "getTotal*" methods. A cumulative SkPaint is not available
565         so we store this ourselves.
566
567         PlatformContextSkia becomes aware of when saveLayer() is being called
568         on the underlying canvas, and passes this information to the
569         OpaqueRegionSkia class. Since we no longer watch layers in the canvas,
570         we must explicitly handle image clipping for the opaque tracker, as
571         it is implemented in the PlatformContextSkia, not via constructs in
572         the SkCanvas/SkPaint. We save the opaque area of the image mask for
573         the canvas layer in the stack along with the SkPaint for the layer.
574
575         Unit test: PlatformContextSkiaTest.PreserveOpaqueOnlyMattersForFirstLayer
576
577         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
578         (WebCore::FEGaussianBlur::platformApplySkia):
579         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
580         (WebCore::FEMorphology::platformApplySkia):
581         * platform/graphics/skia/GraphicsContextSkia.cpp:
582         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
583         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
584         * platform/graphics/skia/OpaqueRegionSkia.cpp:
585         (WebCore::OpaqueRegionSkia::pushCanvasLayer):
586         (WebCore):
587         (WebCore::OpaqueRegionSkia::popCanvasLayer):
588         (WebCore::OpaqueRegionSkia::setImageMask):
589         (WebCore::OpaqueRegionSkia::didDrawRect):
590         (WebCore::OpaqueRegionSkia::didDrawPath):
591         (WebCore::OpaqueRegionSkia::didDrawPoints):
592         (WebCore::OpaqueRegionSkia::didDrawBounded):
593         (WebCore::OpaqueRegionSkia::didDraw):
594         (WebCore::OpaqueRegionSkia::didDrawUnbounded):
595         * platform/graphics/skia/OpaqueRegionSkia.h:
596         (OpaqueRegionSkia):
597         (WebCore::OpaqueRegionSkia::CanvasLayerState::CanvasLayerState):
598         (CanvasLayerState):
599         * platform/graphics/skia/PlatformContextSkia.cpp:
600         (WebCore::PlatformContextSkia::saveLayer):
601         (WebCore):
602         (WebCore::PlatformContextSkia::restoreLayer):
603         (WebCore::PlatformContextSkia::beginLayerClippedToImage):
604         * platform/graphics/skia/PlatformContextSkia.h:
605         (PlatformContextSkia):
606
607 2012-04-02  Shinya Kawanaka  <shinyak@chromium.org>
608
609         Remove TreeScope::isShadowRoot.
610         https://bugs.webkit.org/show_bug.cgi?id=82879
611
612         Reviewed by Dimitri Glazkov.
613
614         This patch removes TreeScope::isShadowRoot(). To make code fast, TreeScope::isShadowRoot
615         is implemented in ShadowRoot.h. So when using TreeScope::isShadowRoot(), ShadowRoot.h is
616         always required. In some case,  this might bring unnecessary dependency.
617
618         Since TreeScope::rootNode() is inlined, the overall performance won't change.
619
620         No new tests, simple refactoring.
621
622         * dom/ShadowRoot.h:
623         * dom/TreeScope.h:
624         * html/shadow/HTMLShadowElement.cpp:
625         (WebCore::HTMLShadowElement::doesSelectFromHostChildren):
626         * html/shadow/InsertionPoint.cpp:
627         (WebCore::InsertionPoint::attach):
628         (WebCore::InsertionPoint::assignedFrom):
629         (WebCore::InsertionPoint::isShadowBoundary):
630
631 2012-04-02  Emil A Eklund  <eae@chromium.org>
632
633         Fix usage of LayoutUnits and pixel snapping in RenderLayer
634         https://bugs.webkit.org/show_bug.cgi?id=82498
635
636         Reviewed by Julien Chaffraix.
637
638         Fix usage of subpixel types and snapping/rounding in RenderLayer in
639         preparation for turning on subpixel layout.
640
641         No new tests, no change in functionality.
642
643         * rendering/LayoutTypes.h:
644         (WebCore::pixelSnappedIntSize):
645         Add no-op implementation of pixelSnappedIntSize, will be replaced with a
646         real implementation once we make the switch.
647         
648         * rendering/RenderLayer.cpp:
649         (WebCore::RenderLayer::updateLayerPosition):
650         Snap RenderBox size when updating the size of the layer.
651         
652         (WebCore::RenderLayer::resize):
653         Round position when setting the inline style during resize operation.
654
655         (WebCore::RenderLayer::scrollCornerRect):
656         Remove unnecessary pixelSnappedIntRect call.
657         
658         (WebCore::RenderLayer::positionOverflowControls):
659         Remove unnecessary pixelSnappedIntRect call.
660         
661         (WebCore::RenderLayer::scrollWidth):
662         (WebCore::RenderLayer::scrollHeight):
663         Fix implementation of scrollWidth and Height to pixel snap the values.
664          
665         (WebCore::RenderLayer::computeScrollDimensions):
666         (WebCore::RenderLayer::paintResizer):
667         (WebCore::RenderLayer::hitTestOverflowControls):
668         Remove unnecessary pixelSnappedIntRect calls.
669         
670         (WebCore::RenderLayer::paintLayerContents):
671         Pixel snap values just before painting (instead of earlier on).
672
673         (WebCore::RenderLayer::hitTest):
674         (WebCore::RenderLayer::hitTestContents):
675         Change to use subpixel types.
676
677 2012-04-02  Abhishek Arya  <inferno@chromium.org>
678
679         <select> shouldn't intrude as a run-in.
680         https://bugs.webkit.org/show_bug.cgi?id=82829
681
682         Reviewed by Tony Chang.
683
684         Matches Opera's behavior which also does not allow <select>
685         to intrude as a run-in into the neighbouring block.
686         IE and Firefox doesn't support run-ins, so can't compare behavior
687         with them.
688
689         Test: fast/runin/select-runin.html
690
691         * rendering/RenderBlock.cpp:
692         (WebCore::RenderBlock::handleRunInChild):
693
694 2012-04-02  Mark Pilgrim  <pilgrim@chromium.org>
695
696         Call decrementStatsCounter directly
697         https://bugs.webkit.org/show_bug.cgi?id=82950
698
699         Reviewed by Adam Barth.
700
701         * platform/chromium/PlatformSupport.h:
702         (PlatformSupport):
703
704 2012-04-02  Tony Chang  <tony@chromium.org>
705
706         add css parsing of -webkit-flex
707         https://bugs.webkit.org/show_bug.cgi?id=82927
708
709         Reviewed by Ojan Vafai.
710
711         This is the new syntax for CSS3 flexbox:
712         http://dev.w3.org/csswg/css3-flexbox/#flexibility
713
714         Not hooked up to anything in the render tree yet so the old syntax is
715         still valid.
716
717         Test: css3/flexbox/flex-property-parsing.html
718
719         * css/CSSComputedStyleDeclaration.cpp:
720         (WebCore):
721         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
722         * css/CSSParser.cpp:
723         (WebCore::CSSParser::parseValue):
724         (WebCore::CSSParser::parseFlex):
725         * css/CSSParser.h:
726         (WebCore):
727         * css/CSSProperty.cpp:
728         (WebCore::CSSProperty::isInheritedProperty):
729         * css/CSSPropertyNames.in:
730         * css/CSSStyleApplyProperty.cpp:
731         (ApplyPropertyFlex):
732         (WebCore::ApplyPropertyFlex::applyInheritValue):
733         (WebCore::ApplyPropertyFlex::applyInitialValue):
734         (WebCore::ApplyPropertyFlex::applyValue):
735         (WebCore::ApplyPropertyFlex::createHandler):
736         (WebCore::ApplyPropertyFlex::getFlexValue):
737         (WebCore):
738         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
739         * css/CSSStyleSelector.cpp:
740         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
741         * rendering/style/RenderStyle.h:
742         * rendering/style/StyleFlexibleBoxData.cpp:
743         (WebCore::StyleFlexibleBoxData::StyleFlexibleBoxData):
744         (WebCore::StyleFlexibleBoxData::operator==):
745         * rendering/style/StyleFlexibleBoxData.h:
746         (StyleFlexibleBoxData):
747
748 2012-04-02  Daniel Cheng  <dcheng@chromium.org>
749
750         Having a drop handler prevents navigation on drop even if event is not cancelled
751         https://bugs.webkit.org/show_bug.cgi?id=79172
752
753         Reviewed by Ryosuke Niwa.
754
755         Only early return if the drop handler prevents the default action.
756
757         Test: fast/events/drop-handler-should-not-stop-navigate.html
758
759         * page/DragController.cpp:
760         (WebCore::DragController::performDrag):
761
762 2012-04-02  Alexis Menard  <alexis.menard@openbossa.org>
763
764         We should use CSSPropertyID rather than integers when manipulating CSS property ids.
765         https://bugs.webkit.org/show_bug.cgi?id=82941
766
767         Reviewed by Andreas Kling.
768
769         CSSPropertyID enum holds all the CSS property ids but many parts of WebKit treat the ids
770         as integers. While it's not incorrect it is nicer to use the enum as a parameter of
771         functions manipulating property ids, as we ensure that the value passed will be an
772         existing value. It will also feel more correct after this patch that CSSProperty::id()
773         return a value of the enum rather than an integer. As this modification is quite big this
774         is the first part only so it will be easier to review.
775
776         No new tests : There should be no behavior change in this patch.
777
778         * css/CSSParser.cpp:
779         (WebCore::cssPropertyID):
780         * css/CSSParser.h:
781         (WebCore):
782         * css/CSSProperty.cpp:
783         (WebCore::CSSProperty::cssText):
784         * css/CSSProperty.h:
785         (WebCore::CSSProperty::id):
786         (WebCore::CSSProperty::shorthandID):
787         * css/PropertySetCSSStyleDeclaration.cpp:
788         (WebCore::PropertySetCSSStyleDeclaration::item):
789         (WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
790         (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
791         (WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):
792         (WebCore::PropertySetCSSStyleDeclaration::getPropertyShorthand):
793         (WebCore::PropertySetCSSStyleDeclaration::isPropertyImplicit):
794         * css/StylePropertySet.cpp:
795         (WebCore::StylePropertySet::getPropertyValue):
796         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
797         (WebCore::StylePropertySet::propertyIsImportant):
798         (WebCore::StylePropertySet::getPropertyShorthand):
799         (WebCore::StylePropertySet::isPropertyImplicit):
800         (WebCore::StylePropertySet::asText):
801         * css/StylePropertySet.h:
802         (StylePropertySet):
803         * editing/EditingStyle.cpp:
804         (WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
805         (WebCore::removePropertiesInStyle):
806         (WebCore::setTextDecorationProperty):
807         (WebCore::diffTextDecorations):
808         * editing/Editor.cpp:
809         (WebCore::Editor::selectionStartCSSPropertyValue):
810         * editing/Editor.h:
811         (Editor):
812         * editing/EditorCommand.cpp:
813         (WebCore::valueStyle):
814
815 2012-04-02  Nate Chapin  <japhet@chromium.org>
816
817         Simplify main resource load start/end in FrameLoader
818         and DocumentLoader.
819         https://bugs.webkit.org/show_bug.cgi?id=82935
820
821         1. Have FrameLoader call prepareForLoadStart() on itself directly, rather
822             than through DocumentLoader.
823         2. Remove DocumentLoader::m_primaryLoadComplete, since this is basically equivalent
824             to m_mainResourceLoader.
825         3. Rename setPrimaryLoadComplete() to clearMainResourceLoader(), and only call it at
826             the end of the main resource load.
827         4. Move clearing DocumentLoader::m_mainResourceError into startLoadingMainResource(),
828             which leaves DocumentLoader::prepareForLoadStart() empty.
829
830         Reviewed by Adam Barth.
831
832         No new tests, refactor only.
833
834         * WebCore.exp.in:
835         * loader/DocumentLoader.cpp:
836         (WebCore::DocumentLoader::DocumentLoader):
837         (WebCore):
838         (WebCore::DocumentLoader::mainReceivedError):
839         (WebCore::DocumentLoader::finishedLoading):
840         (WebCore::DocumentLoader::clearMainResourceLoader):
841         (WebCore::DocumentLoader::isLoadingInAPISense):
842         (WebCore::DocumentLoader::startLoadingMainResource):
843         * loader/DocumentLoader.h:
844         * loader/FrameLoader.cpp:
845         (WebCore::FrameLoader::commitProvisionalLoad):
846         (WebCore::FrameLoader::continueLoadAfterWillSubmitForm):
847         (WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
848         * loader/FrameLoader.h: prepareForLoadStart() is now called directly,
849             so make it private.
850
851 2012-04-02  Tim Horton  <timothy_horton@apple.com>
852
853         ASSERTION FAILED: m_purgePreventCount in FontCache::getCachedFontData running svg/custom/animate-disallowed-use-element.svg
854         https://bugs.webkit.org/show_bug.cgi?id=81002
855         <rdar://problem/11168969>
856
857         Reviewed by Simon Fraser.
858
859         Don't spend time rebuilding SVG text layout attributes if the document is being torn down, as
860         they won't be used, and can cause assertion failures in the font cache.
861
862         No new tests, as it fixes an intermittent assertion failure during document destruction.
863
864         * rendering/svg/RenderSVGInlineText.cpp:
865         (WebCore::RenderSVGInlineText::willBeDestroyed):
866
867 2012-04-02  Lianghui Chen  <liachen@rim.com>
868
869         [BlackBerry] Set ResourceRequest TargetType in WebPagePrivate::load()
870         https://bugs.webkit.org/show_bug.cgi?id=80519
871
872         Stop asserting in platformCachePolicyForRequest() as now it is expected
873         that the ResourceRequest might not have the right TargetType setup at
874         this time for main loads.
875
876         Reviewed by Rob Buis.
877
878         No new tests as no change in behaviour.
879
880         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
881         (WebCore::platformCachePolicyForRequest):
882
883 2012-04-02  Simon Fraser  <simon.fraser@apple.com>
884
885         Fix issue with reflections and composited layers
886         https://bugs.webkit.org/show_bug.cgi?id=82636
887
888         Reviewed by Alexey Proskuryakov
889         
890         When tearing down GraphicsLayers which referene eachother via m_replicatedLayer/m_replicaLayer,
891         we need to clean up the replica layer pointers.
892
893         No new tests; tested by existing compositing and repaint tests.
894
895         * platform/graphics/GraphicsLayer.cpp:
896         (WebCore::GraphicsLayer::~GraphicsLayer):
897         (WebCore::GraphicsLayer::setReplicatedByLayer):
898
899 2012-04-02  Chris Rogers  <crogers@google.com>
900
901         Add Oscillator/WaveTable implementation and tests
902         https://bugs.webkit.org/show_bug.cgi?id=82414
903         
904         Oscillator represents an audio source generating a periodic waveform.  It can be set to
905         a few commonly used waveforms.  Additionally, it can be set to an arbitrary periodic
906         waveform through the use of a WaveTable object.
907
908         Reviewed by Kenneth Russell.
909
910         Tests: webaudio/oscillator-custom.html
911                webaudio/oscillator-sawtooth.html
912                webaudio/oscillator-sine.html
913                webaudio/oscillator-square.html
914                webaudio/oscillator-triangle.html
915
916         * DerivedSources.make:
917         * GNUmakefile.list.am:
918         Add Oscillator and WaveTable to build files.
919         * Modules/webaudio/AudioContext.cpp:
920         (WebCore::AudioContext::createOscillator):
921         (WebCore):
922         (WebCore::AudioContext::createWaveTable):
923         * Modules/webaudio/AudioContext.h:
924         Add create methods for Oscillator and WaveTable.
925         (WebCore):
926         (AudioContext):
927         * Modules/webaudio/AudioContext.idl:
928         * Modules/webaudio/AudioNode.h:
929         * Modules/webaudio/Oscillator.cpp: Added.
930         (WebCore):
931         (WebCore::Oscillator::create):
932         (WebCore::Oscillator::Oscillator):
933         (WebCore::Oscillator::~Oscillator):
934         (WebCore::Oscillator::setType):
935         (WebCore::Oscillator::calculateSampleAccuratePhaseIncrements):
936         (WebCore::Oscillator::process):
937         (WebCore::Oscillator::reset):
938         (WebCore::Oscillator::setWaveTable):
939         * Modules/webaudio/Oscillator.h: Added.
940         (WebCore):
941         (Oscillator):
942         (WebCore::Oscillator::type):
943         (WebCore::Oscillator::frequency):
944         (WebCore::Oscillator::detune):
945         Implement Oscillator as AudioSourceNode.
946         * Modules/webaudio/Oscillator.idl: Added.
947         * Modules/webaudio/WaveTable.cpp: Added.
948         (WebCore):
949         (WebCore::WaveTable::create):
950         (WebCore::WaveTable::createSine):
951         (WebCore::WaveTable::createSquare):
952         (WebCore::WaveTable::createSawtooth):
953         (WebCore::WaveTable::createTriangle):
954         (WebCore::WaveTable::WaveTable):
955         (WebCore::WaveTable::waveDataForFundamentalFrequency):
956         (WebCore::WaveTable::maxNumberOfPartials):
957         (WebCore::WaveTable::numberOfPartialsForRange):
958         (WebCore::WaveTable::createBandLimitedTables):
959         (WebCore::WaveTable::generateBasicWaveform):
960         * Modules/webaudio/WaveTable.h: Added.
961         (WebCore):
962         (WaveTable):
963         (WebCore::WaveTable::rateScale):
964         (WebCore::WaveTable::waveTableSize):
965         (WebCore::WaveTable::sampleRate):
966         (WebCore::WaveTable::numberOfRanges):
967         Implement WaveTable which is constructed given a set of Fourier coefficients.
968         * Modules/webaudio/WaveTable.idl: Added.
969         * WebCore.gypi:
970         * WebCore.xcodeproj/project.pbxproj:
971         Add Oscillator and WaveTable files to build files.
972
973 2012-04-02  Levi Weintraub  <leviw@chromium.org>
974
975         Correct remaining LayoutUnit misuse in RenderReplaced and RenderFlexibleBox
976         https://bugs.webkit.org/show_bug.cgi?id=82899
977
978         Reviewed by Darin Adler.
979
980         Removing remaining LayoutUnit misuse and compiler errors that exist in RenderReplaced
981         and RenderFlexibleBox once LayoutUnit becomes sub-pixel.
982
983         No new tests. No change in behavior.
984
985         * rendering/RenderFlexibleBox.cpp:
986         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Switching
987         a raw zero in a ternary operation to zeroLayoutUnit.
988         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Ditto for std::max.
989         * rendering/RenderReplaced.cpp:
990         (WebCore::RenderReplaced::paint): Adding missing pixel snapping before painting.
991         (WebCore::RenderReplaced::computeReplacedLogicalWidth): Like above, switching
992         a raw zero to zeroLayoutUnit.
993         (WebCore::RenderReplaced::computePreferredLogicalWidths): Ditto.
994
995 2012-04-02  Ken Buchanan  <kenrb@chromium.org>
996
997         Crash due to floating object lists not properly being cleared
998         https://bugs.webkit.org/show_bug.cgi?id=74056
999
1000         Reviewed by David Hyatt.
1001
1002         Add a check to clearFloats() that determines when intruding floats
1003         are being cleared and not re-added. In this condition, ensure
1004         children with floats are also getting layout because they might
1005         need to have the same intruding floats cleared from their floating
1006         object lists also.
1007
1008         * rendering/RenderBlock.cpp:
1009         (WebCore::RenderBlock::clearFloats):
1010
1011 2012-04-02  Seo Sanghyeon  <sh4.seo@samsung.com>
1012
1013         Align IDL to Typed Array Specification
1014         https://bugs.webkit.org/show_bug.cgi?id=82919
1015
1016         Reviewed by Darin Adler.
1017
1018         No tests. No change in behavior.
1019
1020         * html/canvas/Float32Array.idl:
1021         * html/canvas/Float64Array.idl:
1022         * html/canvas/Int16Array.idl:
1023         * html/canvas/Int32Array.idl:
1024         * html/canvas/Int8Array.idl:
1025         * html/canvas/Uint16Array.idl:
1026         * html/canvas/Uint32Array.idl:
1027         * html/canvas/Uint8Array.idl:
1028         * html/canvas/Uint8ClampedArray.idl:
1029
1030 2012-04-02  Michael Saboff  <msaboff@apple.com>
1031
1032         WebKit should throttle memory pressure notifications in proportion to handler time
1033         https://bugs.webkit.org/show_bug.cgi?id=82674
1034
1035         Rubber-stamped by Darin Adler.
1036
1037         Updated r112910: <http://trac.webkit.org/changeset/112910> to address
1038         post checkin concerns raised in original bug.
1039
1040         No additional tests. This passes existing test and was verified using
1041         manual tests on a small memory system with many websites open.
1042
1043         * platform/mac/MemoryPressureHandlerMac.mm:
1044         (WebCore):
1045         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
1046
1047 2012-04-02  Darin Fisher  <darin@chromium.org>
1048
1049         HistoryItem not updated properly when a form submission begins before a
1050         previous form submission has finished.
1051         https://bugs.webkit.org/show_bug.cgi?id=76686
1052
1053         Reviewed by Nate Chapin.
1054
1055         Test: LayoutTests/fast/loader/form-submission-before-load-{get,post}.html
1056
1057         * loader/FrameLoader.cpp:
1058         (WebCore::FrameLoader::loadPostRequest):
1059
1060 2012-04-02  Antti Koivisto  <antti@apple.com>
1061
1062         Split remaining CSSRules into internal and CSSOM types
1063         https://bugs.webkit.org/show_bug.cgi?id=82728
1064
1065         Reviewed by Andreas Kling.
1066
1067         This will complete the move to internal types for CSS rules. The only remaining unsplit type is
1068         the CSSStyleSheet itself.
1069         
1070         By separating internal types from the CSSOM we save memory immediately and enable future performance
1071         optimizations as we are no longer tied to the structure of the API.
1072         
1073         CSSOM type              Internal type
1074         
1075         CSSStyleRule            StyleRule -> StyleRuleBase
1076         CSSPageRule             StyleRulePage -> StyleRuleBase
1077         CSSFontFaceRule         StyleRuleFontFace -> StyleRuleBase
1078         CSSMediaRule            StyleRuleMedia -> StyleRuleBlock -> StyleRuleBase
1079         CSSImportRule           StyleRuleImport -> StyleRuleBase
1080         CSSCharsetRule          String (owned by CSSStyleSheet)
1081         CSSUnknownRule          Never instantiated
1082         WebKitCSSRegionRule     StyleRuleRegion -> StyleRuleBlock -> StyleRuleBase
1083         WebKitKeyframesRule     StyleRuleKeyframes -> StyleRuleBase
1084         WebKitKeyframeRule      StyleKeyframe (owned by StyleRuleKeyframes)
1085         
1086         StyleRuleBase is refcounted. 
1087         
1088         The CSSOM objects contain the public API functions and their implementations (almost) nothing else. Unlike the 
1089         CSSOM types they don't have parent pointers, saving memory.  
1090         
1091         The CSSOM tree is constructed on demand only. The CSSOM wrapper instances are constructed and owned by 
1092         the parent wrapper in the tree. Wrappers ref the corresponding internal type. The trees are kept in sync
1093         when mutating.
1094         
1095         All rules shrink by a pointer (from the parent pointer removal). The immediate memory savings from this patch are
1096         larger as some earlier patches temporarily increased the memory use to allow incremental refactoring. 
1097
1098         * WebCore.xcodeproj/project.pbxproj:
1099         * bindings/js/JSDOMBinding.h:
1100         (WebCore):
1101         * css/CSSFontFaceRule.cpp:
1102         (WebCore::CSSFontFaceRule::CSSFontFaceRule):
1103         (WebCore::CSSFontFaceRule::style):
1104         (WebCore::CSSFontFaceRule::cssText):
1105         (WebCore):
1106         * css/CSSFontFaceRule.h:
1107         (WebCore):
1108         (WebCore::CSSFontFaceRule::create):
1109         (CSSFontFaceRule):
1110         * css/CSSFontSelector.cpp:
1111         (WebCore::CSSFontSelector::addFontFaceRule):
1112         * css/CSSFontSelector.h:
1113         (WebCore):
1114         * css/CSSGrammar.y:
1115         * css/CSSImportRule.cpp:
1116         (WebCore::StyleRuleImport::create):
1117         (WebCore::StyleRuleImport::StyleRuleImport):
1118         (WebCore::StyleRuleImport::~StyleRuleImport):
1119         (WebCore::StyleRuleImport::setCSSStyleSheet):
1120         (WebCore::StyleRuleImport::isLoading):
1121         (WebCore::StyleRuleImport::requestStyleSheet):
1122         (WebCore::CSSImportRule::CSSImportRule):
1123         (WebCore):
1124         (WebCore::CSSImportRule::media):
1125         (WebCore::CSSImportRule::cssText):
1126         * css/CSSImportRule.h:
1127         (StyleRuleImport):
1128         (WebCore::StyleRuleImport::parentStyleSheet):
1129         (WebCore::StyleRuleImport::clearParentStyleSheet):
1130         (WebCore::StyleRuleImport::href):
1131         (WebCore::StyleRuleImport::ImportedStyleSheetClient::ImportedStyleSheetClient):
1132         (ImportedStyleSheetClient):
1133         (CSSImportRule):
1134         (WebCore::CSSImportRule::create):
1135         (WebCore::CSSImportRule::href):
1136         (WebCore::CSSImportRule::styleSheet):
1137         (WebCore):
1138         * css/CSSMediaRule.cpp:
1139         (WebCore::CSSMediaRule::CSSMediaRule):
1140         (WebCore::CSSMediaRule::~CSSMediaRule):
1141         (WebCore::CSSMediaRule::insertRule):
1142         (WebCore::CSSMediaRule::deleteRule):
1143         (WebCore::CSSMediaRule::cssText):
1144         (WebCore::CSSMediaRule::media):
1145         (WebCore):
1146         (WebCore::CSSMediaRule::length):
1147         (WebCore::CSSMediaRule::item):
1148         (WebCore::CSSMediaRule::cssRules):
1149         * css/CSSMediaRule.h:
1150         (WebCore):
1151         (WebCore::CSSMediaRule::create):
1152         (CSSMediaRule):
1153         * css/CSSPageRule.cpp:
1154         (WebCore::CSSPageRule::CSSPageRule):
1155         (WebCore::CSSPageRule::style):
1156         (WebCore::CSSPageRule::selectorText):
1157         (WebCore::CSSPageRule::setSelectorText):
1158         (WebCore::CSSPageRule::cssText):
1159         * css/CSSPageRule.h:
1160         (WebCore):
1161         (WebCore::CSSPageRule::create):
1162         (CSSPageRule):
1163         * css/CSSParser.cpp:
1164         (WebCore::CSSParser::parseRule):
1165         (WebCore::CSSParser::createImportRule):
1166         (WebCore::CSSParser::createMediaRule):
1167         (WebCore::CSSParser::createKeyframesRule):
1168         (WebCore::CSSParser::createStyleRule):
1169         (WebCore::CSSParser::createFontFaceRule):
1170         (WebCore::CSSParser::createPageRule):
1171         (WebCore::CSSParser::createRegionRule):
1172         (WebCore::CSSParser::createMarginAtRule):
1173         * css/CSSParser.h:
1174         (WebCore):
1175         (CSSParser):
1176         * css/CSSPropertySourceData.h:
1177         (WebCore):
1178         * css/CSSStyleRule.cpp:
1179         (WebCore):
1180         (WebCore::selectorTextCache):
1181         (WebCore::CSSStyleRule::CSSStyleRule):
1182         (WebCore::CSSStyleRule::~CSSStyleRule):
1183         (WebCore::CSSStyleRule::setSelectorText):
1184         * css/CSSStyleRule.h:
1185         (WebCore):
1186         (WebCore::CSSStyleRule::create):
1187         (CSSStyleRule):
1188         * css/CSSStyleSelector.cpp:
1189         (RuleSet):
1190         (WebCore::RuleSet::pageRules):
1191         (WebCore::CSSStyleSelector::addKeyframeStyle):
1192         (WebCore::CSSStyleSelector::sortAndTransferMatchedRules):
1193         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1194         * css/CSSStyleSelector.h:
1195         (CSSStyleSelector):
1196         * css/CSSStyleSheet.cpp:
1197         (WebCore::CSSStyleSheet::CSSStyleSheet):
1198         (WebCore::CSSStyleSheet::parserAppendRule):
1199         (WebCore::CSSStyleSheet::createChildRuleCSSOMWrapper):
1200         (WebCore::CSSStyleSheet::item):
1201         (WebCore::CSSStyleSheet::clearCharsetRule):
1202         (WebCore::CSSStyleSheet::clearRules):
1203         (WebCore::CSSStyleSheet::rules):
1204         (WebCore::CSSStyleSheet::insertRule):
1205         (WebCore::CSSStyleSheet::deleteRule):
1206         (WebCore::CSSStyleSheet::addSubresourceStyleURLs):
1207         (WebCore::CSSStyleSheet::ensureCSSOMWrapper):
1208         (WebCore):
1209         (WebCore::CSSStyleSheet::ownerRule):
1210         (WebCore::CSSStyleSheet::parentStyleSheet):
1211         * css/CSSStyleSheet.h:
1212         (WebCore):
1213         (WebCore::CSSStyleSheet::create):
1214         (CSSStyleSheet):
1215         (WebCore::CSSStyleSheet::childRules):
1216         (WebCore::CSSStyleSheet::importRules):
1217         (WebCore::CSSStyleSheet::clearOwnerRule):
1218         (WebCore::CSSStyleSheet::hasCharsetRule):
1219         * css/StyleRule.cpp:
1220         (WebCore::StyleRuleBase::createCSSOMWrapper):
1221         (WebCore):
1222         (WebCore::StyleRuleBase::destroy):
1223         (WebCore::StyleRule::StyleRule):
1224         (WebCore::StyleRule::setProperties):
1225         (WebCore::StyleRulePage::StyleRulePage):
1226         (WebCore::StyleRulePage::~StyleRulePage):
1227         (WebCore::StyleRulePage::setProperties):
1228         (WebCore::StyleRuleFontFace::StyleRuleFontFace):
1229         (WebCore::StyleRuleFontFace::~StyleRuleFontFace):
1230         (WebCore::StyleRuleFontFace::setProperties):
1231         (WebCore::StyleRuleBlock::StyleRuleBlock):
1232         (WebCore::StyleRuleBlock::wrapperInsertRule):
1233         (WebCore::StyleRuleBlock::wrapperRemoveRule):
1234         (WebCore::StyleRuleMedia::StyleRuleMedia):
1235         (WebCore::StyleRuleRegion::StyleRuleRegion):
1236         * css/StyleRule.h:
1237         (WebCore):
1238         (WebCore::StyleRuleBase::type):
1239         (StyleRuleBase):
1240         (WebCore::StyleRuleBase::isCharsetRule):
1241         (WebCore::StyleRuleBase::isFontFaceRule):
1242         (WebCore::StyleRuleBase::isKeyframesRule):
1243         (WebCore::StyleRuleBase::isMediaRule):
1244         (WebCore::StyleRuleBase::isPageRule):
1245         (WebCore::StyleRuleBase::isStyleRule):
1246         (WebCore::StyleRuleBase::isRegionRule):
1247         (WebCore::StyleRuleBase::isImportRule):
1248         (WebCore::StyleRuleBase::sourceLine):
1249         (WebCore::StyleRuleBase::deref):
1250         (WebCore::StyleRuleBase::StyleRuleBase):
1251         (WebCore::StyleRuleBase::~StyleRuleBase):
1252         (StyleRule):
1253         (WebCore::StyleRule::create):
1254         (WebCore::StyleRule::parserAdoptSelectorVector):
1255         (WebCore::StyleRule::wrapperAdoptSelectorList):
1256         (StyleRuleFontFace):
1257         (WebCore::StyleRuleFontFace::create):
1258         (WebCore::StyleRuleFontFace::properties):
1259         (StyleRulePage):
1260         (WebCore::StyleRulePage::create):
1261         (WebCore::StyleRulePage::selector):
1262         (WebCore::StyleRulePage::properties):
1263         (WebCore::StyleRulePage::parserAdoptSelectorVector):
1264         (WebCore::StyleRulePage::wrapperAdoptSelectorList):
1265         (StyleRuleBlock):
1266         (WebCore::StyleRuleBlock::childRules):
1267         (StyleRuleMedia):
1268         (WebCore::StyleRuleMedia::create):
1269         (WebCore::StyleRuleMedia::mediaQueries):
1270         (StyleRuleRegion):
1271         (WebCore::StyleRuleRegion::create):
1272         (WebCore::StyleRuleRegion::selectorList):
1273         * css/StyleSheet.cpp:
1274         (WebCore::StyleSheet::StyleSheet):
1275         (WebCore):
1276         * css/StyleSheet.h:
1277         (WebCore):
1278         (WebCore::StyleSheet::ownerRule):
1279         (WebCore::StyleSheet::parentStyleSheet):
1280         (StyleSheet):
1281         * css/WebKitCSSKeyframesRule.cpp:
1282         (WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
1283         (WebCore):
1284         (WebCore::StyleRuleKeyframes::~StyleRuleKeyframes):
1285         (WebCore::StyleRuleKeyframes::parserAppendKeyframe):
1286         (WebCore::StyleRuleKeyframes::wrapperAppendKeyframe):
1287         (WebCore::StyleRuleKeyframes::wrapperRemoveKeyframe):
1288         (WebCore::StyleRuleKeyframes::findKeyframeIndex):
1289         (WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
1290         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
1291         (WebCore::WebKitCSSKeyframesRule::setName):
1292         (WebCore::WebKitCSSKeyframesRule::insertRule):
1293         (WebCore::WebKitCSSKeyframesRule::deleteRule):
1294         (WebCore::WebKitCSSKeyframesRule::findRule):
1295         (WebCore::WebKitCSSKeyframesRule::cssText):
1296         (WebCore::WebKitCSSKeyframesRule::length):
1297         (WebCore::WebKitCSSKeyframesRule::item):
1298         * css/WebKitCSSKeyframesRule.h:
1299         (WebCore):
1300         (StyleRuleKeyframes):
1301         (WebCore::StyleRuleKeyframes::create):
1302         (WebCore::StyleRuleKeyframes::keyframes):
1303         (WebCore::StyleRuleKeyframes::name):
1304         (WebCore::StyleRuleKeyframes::setName):
1305         (WebCore::WebKitCSSKeyframesRule::create):
1306         (WebCore::WebKitCSSKeyframesRule::name):
1307         (WebKitCSSKeyframesRule):
1308         * css/WebKitCSSRegionRule.cpp:
1309         (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
1310         (WebCore::WebKitCSSRegionRule::~WebKitCSSRegionRule):
1311         (WebCore::WebKitCSSRegionRule::cssText):
1312         (WebCore::WebKitCSSRegionRule::length):
1313         (WebCore):
1314         (WebCore::WebKitCSSRegionRule::item):
1315         (WebCore::WebKitCSSRegionRule::cssRules):
1316         * css/WebKitCSSRegionRule.h:
1317         (WebCore):
1318         (WebCore::WebKitCSSRegionRule::create):
1319         (WebKitCSSRegionRule):
1320         * inspector/InspectorInstrumentation.cpp:
1321         (WebCore::InspectorInstrumentation::willMatchRuleImpl):
1322         (WebCore::InspectorInstrumentation::willProcessRuleImpl):
1323         * inspector/InspectorStyleSheet.cpp:
1324         (WebCore::InspectorStyleSheet::ensureSourceData):
1325         * inspector/InspectorStyleSheet.h:
1326         (WebCore):
1327         * svg/SVGFontFaceElement.cpp:
1328         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
1329         (WebCore::SVGFontFaceElement::parseAttribute):
1330         (WebCore::SVGFontFaceElement::fontFamily):
1331         (WebCore::SVGFontFaceElement::rebuildFontFace):
1332         (WebCore::SVGFontFaceElement::insertedIntoDocument):
1333         (WebCore::SVGFontFaceElement::removedFromDocument):
1334         * svg/SVGFontFaceElement.h:
1335         (WebCore):
1336         (WebCore::SVGFontFaceElement::fontFaceRule):
1337         (SVGFontFaceElement):
1338
1339 2012-04-02  Rakesh KN  <rakesh.kn@motorola.com>
1340
1341         Scroll position is lost after hide/show element
1342         https://bugs.webkit.org/show_bug.cgi?id=72852
1343
1344         Maintain the scroll position of an overflowing element in the ElementRareData when the scrollable 
1345         RenderLayer is destroyed, which can be used to restore the scroll position if the same element gets
1346         back a RenderLayer.
1347
1348         WebKit behaviour will be the same as Firefox and IE. It differs from Opera as it does not reset the
1349         scroll position when an element is moved to another location in the same document. However Opera resets
1350         the scroll position for elements moved to another document, which matches other browsers.
1351
1352         Reviewed by Julien Chaffraix.
1353
1354         Test: fast/overflow/scroll-div-hide-show.html
1355
1356         * dom/Element.cpp:
1357         (WebCore::Element::removedFromDocument):
1358         Reset the saved scroll offset if the node is moved to another location in the same document or another one.
1359
1360         (WebCore::Element::savedLayerScrollOffset):
1361         (WebCore::Element::setSavedLayerScrollOffset):
1362         * dom/Element.h:
1363         Add helper functions to access the layer scroll offset from the element's rare data.
1364
1365         * dom/ElementRareData.h:
1366         (ElementRareData):
1367         Add the scroll offset book-keeping.
1368
1369         * rendering/RenderLayer.cpp:
1370         (WebCore::RenderLayer::RenderLayer):
1371         Restore the scroll offset.
1372         (WebCore::RenderLayer::~RenderLayer):
1373         Store the scroll offset if document is not being destroyed.
1374
1375 2012-04-02  Alexis Menard  <alexis.menard@openbossa.org>
1376
1377         Rename CSSPropertyLonghand files to StylePropertyShorthand.
1378         https://bugs.webkit.org/show_bug.cgi?id=82905
1379
1380         Reviewed by Antti Koivisto.
1381
1382         r112880 renamed CSSPropertyLonghand class to StylePropertyShorthand, so the
1383         files need to reflect this new name now.
1384
1385         No new tests : Just a renaming, No behaviour change intended.
1386
1387         * CMakeLists.txt:
1388         * GNUmakefile.list.am:
1389         * Target.pri:
1390         * WebCore.gypi:
1391         * WebCore.vcproj/WebCore.vcproj:
1392         * WebCore.xcodeproj/project.pbxproj:
1393         * css/CSSAllInOne.cpp:
1394         * css/CSSComputedStyleDeclaration.cpp:
1395         * css/CSSParser.cpp:
1396         * css/CSSProperty.cpp:
1397         * css/StylePropertySet.cpp:
1398         * css/StylePropertyShorthand.cpp: Renamed from Source/WebCore/css/CSSPropertyLonghand.cpp.
1399         (WebCore):
1400         (WebCore::backgroundShorthand):
1401         (WebCore::backgroundPositionShorthand):
1402         (WebCore::backgroundRepeatShorthand):
1403         (WebCore::borderShorthand):
1404         (WebCore::borderAbridgedShorthand):
1405         (WebCore::borderBottomShorthand):
1406         (WebCore::borderColorShorthand):
1407         (WebCore::borderImageShorthand):
1408         (WebCore::borderLeftShorthand):
1409         (WebCore::borderRadiusShorthand):
1410         (WebCore::borderRightShorthand):
1411         (WebCore::borderSpacingShorthand):
1412         (WebCore::borderStyleShorthand):
1413         (WebCore::borderTopShorthand):
1414         (WebCore::borderWidthShorthand):
1415         (WebCore::listStyleShorthand):
1416         (WebCore::fontShorthand):
1417         (WebCore::marginShorthand):
1418         (WebCore::outlineShorthand):
1419         (WebCore::overflowShorthand):
1420         (WebCore::paddingShorthand):
1421         (WebCore::webkitAnimationShorthand):
1422         (WebCore::webkitBorderAfterShorthand):
1423         (WebCore::webkitBorderBeforeShorthand):
1424         (WebCore::webkitBorderEndShorthand):
1425         (WebCore::webkitBorderStartShorthand):
1426         (WebCore::webkitColumnsShorthand):
1427         (WebCore::webkitColumnRuleShorthand):
1428         (WebCore::webkitFlexFlowShorthand):
1429         (WebCore::webkitMarginCollapseShorthand):
1430         (WebCore::webkitMarqueeShorthand):
1431         (WebCore::webkitMaskShorthand):
1432         (WebCore::webkitMaskPositionShorthand):
1433         (WebCore::webkitMaskRepeatShorthand):
1434         (WebCore::webkitTextEmphasisShorthand):
1435         (WebCore::webkitTextStrokeShorthand):
1436         (WebCore::webkitTransitionShorthand):
1437         (WebCore::webkitTransformOriginShorthand):
1438         (WebCore::webkitWrapShorthand):
1439         (WebCore::shorthandForProperty):
1440         * css/StylePropertyShorthand.h: Renamed from Source/WebCore/css/CSSPropertyLonghand.h.
1441         (WebCore):
1442         (StylePropertyShorthand):
1443         (WebCore::StylePropertyShorthand::StylePropertyShorthand):
1444         (WebCore::StylePropertyShorthand::properties):
1445         (WebCore::StylePropertyShorthand::propertiesForInitialization):
1446         (WebCore::StylePropertyShorthand::length):
1447         * page/animation/AnimationBase.cpp:
1448
1449 2012-04-02  Brady Eidson  <beidson@apple.com>
1450
1451         <rdar://problem/11020155> and https://bugs.webkit.org/show_bug.cgi?id=82910
1452         REGRESSION (98963 and 109091):  Crash when creating a WebArchive of a page with @page style rules
1453
1454         Reviewed by Antti Koivisto.
1455
1456         Test: webarchive/css-page-rule-crash.html
1457
1458         * css/CSSStyleSheet.cpp:
1459         (WebCore::CSSStyleSheet::addSubresourceStyleURLs): Page rules do not (currently) have subresource urls to get,
1460           and are not CSSStyleRules.
1461
1462 2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1463
1464         Unreviewed, rolling out r112851.
1465         http://trac.webkit.org/changeset/112851
1466         https://bugs.webkit.org/show_bug.cgi?id=82915
1467
1468         Broke 3 Mac accessibility tests (Requested by enrica on
1469         #webkit).
1470
1471         * accessibility/AXObjectCache.cpp:
1472         * accessibility/gtk/AXObjectCacheAtk.cpp:
1473         (WebCore::AXObjectCache::handleScrolledToAnchor):
1474         (WebCore):
1475         * accessibility/mac/AXObjectCacheMac.mm:
1476         (WebCore::AXObjectCache::handleScrolledToAnchor):
1477         (WebCore):
1478
1479 2012-04-02  Michael Saboff  <msaboff@apple.com>
1480
1481         WebKit should throttle memory pressure notifications in proportion to handler time
1482         https://bugs.webkit.org/show_bug.cgi?id=82674
1483
1484         Reviewed by Geoffrey Garen.
1485
1486         Changed the MemoryPressureHandler hold off timer to start timing after 
1487         respondToMemoryPressure runs.  The delay time is now 20 times longer than the
1488         time it took for respondToMemoryPressure to run with a minimum of 5 seconds.
1489         This throttles the response to low memory events in the extreme case where
1490         we are spending most of our time paging / swapping.
1491         This is a Mac only change.
1492
1493         No additional tests. This passes existing test and was verified using
1494         manual tests on a small memory system with many websites open.
1495
1496         * platform/mac/MemoryPressureHandlerMac.mm:
1497         (WebCore):
1498         (WebCore::MemoryPressureHandler::holdOff):
1499         (WebCore::MemoryPressureHandler::respondToMemoryPressure):
1500
1501 2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1502
1503         Unreviewed, rolling out r112163.
1504         http://trac.webkit.org/changeset/112163
1505         https://bugs.webkit.org/show_bug.cgi?id=82914
1506
1507         Possible OOM issues (Requested by aklein on #webkit).
1508
1509         * bindings/scripts/CodeGeneratorV8.pm:
1510         (GenerateConstructorCallback):
1511         (GenerateNamedConstructorCallback):
1512         * bindings/v8/V8DOMWindowShell.cpp:
1513         (WebCore::V8DOMWindowShell::installDOMWindow):
1514         * bindings/v8/V8DOMWrapper.cpp:
1515         (WebCore):
1516         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
1517         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
1518         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
1519         * bindings/v8/V8DOMWrapper.h:
1520         (V8DOMWrapper):
1521         * bindings/v8/V8Proxy.h:
1522         (WebCore::toV8):
1523         * bindings/v8/WorkerContextExecutionProxy.cpp:
1524         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
1525         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
1526         (WebCore::v8HTMLImageElementConstructorCallback):
1527         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
1528         (WebCore::V8WebKitMutationObserver::constructorCallback):
1529         * bindings/v8/custom/V8WebSocketCustom.cpp:
1530         (WebCore::V8WebSocket::constructorCallback):
1531         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1532         (WebCore::V8XMLHttpRequest::constructorCallback):
1533
1534 2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1535
1536         Unreviewed, rolling out r112318.
1537         http://trac.webkit.org/changeset/112318
1538         https://bugs.webkit.org/show_bug.cgi?id=82912
1539
1540         Possible OOM issues (Requested by aklein on #webkit).
1541
1542         * bindings/scripts/CodeGeneratorV8.pm:
1543         (GenerateConstructorCallback):
1544         (GenerateNamedConstructorCallback):
1545         (GenerateToV8Converters):
1546         (GetDomMapFunction):
1547         * bindings/scripts/test/V8/V8Float64Array.cpp:
1548         (WebCore::V8Float64Array::wrapSlow):
1549         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1550         (WebCore::V8TestActiveDOMObject::wrapSlow):
1551         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1552         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1553         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1554         (WebCore::V8TestEventConstructor::wrapSlow):
1555         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1556         (WebCore::V8TestEventTarget::wrapSlow):
1557         * bindings/scripts/test/V8/V8TestInterface.cpp:
1558         (WebCore::V8TestInterface::wrapSlow):
1559         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1560         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1561         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1562         (WebCore::V8TestNamedConstructor::wrapSlow):
1563         * bindings/scripts/test/V8/V8TestObj.cpp:
1564         (WebCore::V8TestObj::wrapSlow):
1565         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1566         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1567         * bindings/v8/V8DOMWrapper.cpp:
1568         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
1569         * bindings/v8/V8DOMWrapper.h:
1570         (V8DOMWrapper):
1571         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
1572         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
1573
1574 2012-04-02  Srikumar Bonda  <srikumar.b@gmail.com>
1575
1576         Missing NULL check for vendor string from glGetString()
1577         https://bugs.webkit.org/show_bug.cgi?id=82859
1578
1579         Reviewed by Kentaro Hara.
1580
1581         glGetString() possible to return NULL value.
1582         Refer to http://www.opengl.org/sdk/docs/man/xhtml/glGetString.xml
1583         for more information. The missing null check crashes webkit when
1584         vendor name is not set (null) by glGetString().
1585
1586         No new tests because this is missing NULL check for
1587         for openGL API response.
1588
1589         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1590         (WebCore::GraphicsContext3D::validateAttributes):
1591
1592 2012-04-02  Ami Fischman  <fischman@chromium.org>
1593
1594         Suppress HTMLMediaElement's text track code when !webkitVideoTrackEnabled()
1595         https://bugs.webkit.org/show_bug.cgi?id=82906
1596
1597         Reviewed by Eric Carlson.
1598
1599         * html/HTMLMediaElement.cpp:
1600         (WebCore::HTMLMediaElement::scheduleLoad):
1601         (WebCore::HTMLMediaElement::loadTimerFired):
1602         (WebCore::HTMLMediaElement::prepareForLoad):
1603         (WebCore::HTMLMediaElement::loadInternal):
1604         (WebCore::HTMLMediaElement::setReadyState):
1605         (WebCore::HTMLMediaElement::playbackProgressTimerFired):
1606         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
1607         (WebCore::HTMLMediaElement::userCancelledLoad):
1608
1609 2012-04-02  Andrey Kosyakov  <caseq@chromium.org>
1610
1611         Web Inspector: CPU time bar missing on top-level events in timeline panel
1612         https://bugs.webkit.org/show_bug.cgi?id=82909
1613
1614         Reviewed by Pavel Feldman.
1615
1616         * inspector/front-end/TimelinePresentationModel.js:
1617         (WebInspector.TimelinePresentationModel.prototype.addRecord):
1618
1619 2012-04-02  Eric Carlson  <eric.carlson@apple.com>
1620
1621         Renaming parameters for positioning a track cue
1622         https://bugs.webkit.org/show_bug.cgi?id=78706
1623
1624         Change WebVTT settings identifiers for spec change: D: -> vertical:, L: -> line:, 
1625         T: -> position:, S: -> size:, A: -> align:
1626
1627         Reviewed by Sam Weinig.
1628
1629         No new tests, existing tests updated for spec changes.
1630
1631         * html/track/TextTrackCue.cpp:
1632         (WebCore::verticalGrowingLeftKeyword): Drive-by change to improve readability.
1633         (WebCore::TextTrackCue::settingName): New, parse the settings keyword.
1634         (WebCore::TextTrackCue::parseSettings): Update to match the current spec.
1635         * html/track/TextTrackCue.h:
1636
1637         * html/track/WebVTTParser.h:
1638         (WebCore::WebVTTParser::isValidSettingDelimiter): New.
1639
1640 2012-03-29  Sam Weinig  <sam@webkit.org>
1641
1642         Add setting to disable Java for local files even if it is otherwise enabled
1643         https://bugs.webkit.org/show_bug.cgi?id=82685
1644
1645         Reviewed by Anders Carlsson.
1646
1647         * WebCore.exp.in:
1648         Export setting setter.
1649
1650         * html/HTMLAppletElement.cpp:
1651         (WebCore::HTMLAppletElement::canEmbedJava):
1652         * loader/SubframeLoader.cpp:
1653         (WebCore::SubframeLoader::requestPlugin):
1654         * page/Navigator.cpp:
1655         (WebCore::Navigator::javaEnabled):
1656         Check for both isJavaEnabled and isJavaEnabledForLocalFiles.
1657
1658         * page/Settings.cpp:
1659         (WebCore::Settings::setJavaEnabledForLocalFiles):
1660         * page/Settings.h:
1661         (WebCore::Settings::isJavaEnabledForLocalFiles):
1662         Add new setting.
1663
1664 2012-04-02  Alexander Pavlov  <apavlov@chromium.org>
1665
1666         Web Inspector: Implement frontend for device metrics emulation
1667         https://bugs.webkit.org/show_bug.cgi?id=82891
1668
1669         This change implements the backend-based device metrics emulation capability discovery,
1670         UI (enablement checkbox + input controls), and a persistence setting
1671         for the user-specified device metrics (screen width/height and an auxiliary font scale factor).
1672
1673         Reviewed by Pavel Feldman.
1674
1675         * English.lproj/localizedStrings.js:
1676         * WebCore.gypi:
1677         * WebCore.vcproj/WebCore.vcproj:
1678         * inspector/compile-front-end.py:
1679         * inspector/front-end/Settings.js:
1680         * inspector/front-end/SettingsScreen.js:
1681         (WebInspector.SettingsScreen):
1682         (WebInspector.SettingsScreen.prototype._createUserAgentSelectRowElement.get const):
1683         (WebInspector.SettingsScreen.prototype._showPaintRectsChanged):
1684         (WebInspector.SettingsScreen.prototype.set _applyDeviceMetricsUserInput):
1685         (WebInspector.SettingsScreen.prototype._setDeviceMetricsOverride):
1686         (WebInspector.SettingsScreen.prototype._setDeviceMetricsOverride.set if):
1687         (WebInspector.SettingsScreen.prototype._createDeviceMetricsElement.createInput):
1688         (WebInspector.SettingsScreen.prototype._createDeviceMetricsElement):
1689         * inspector/front-end/UserAgentSupport.js: Added.
1690         (WebInspector.UserAgentSupport.DeviceMetrics):
1691         (WebInspector.UserAgentSupport.DeviceMetrics.parseSetting):
1692         (WebInspector.UserAgentSupport.DeviceMetrics.parseUserInput):
1693         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.isValid):
1694         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.isWidthValid):
1695         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.isHeightValid):
1696         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.isFontScaleFactorValid):
1697         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.toSetting):
1698         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.widthToInput):
1699         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.heightToInput):
1700         (WebInspector.UserAgentSupport.DeviceMetrics.prototype.fontScaleFactorToInput):
1701         * inspector/front-end/WebKit.qrc:
1702         * inspector/front-end/helpScreen.css:
1703         (.help-table > tr > th):
1704         (.help-table > tr > td):
1705         (#resolution-override-section):
1706         * inspector/front-end/inspector.css:
1707         (.hidden):
1708         (.error-input):
1709         * inspector/front-end/inspector.html:
1710         * inspector/front-end/inspector.js:
1711         (WebInspector.doLoadedDone):
1712
1713 2012-04-02  Alexis Menard  <alexis.menard@openbossa.org>
1714
1715         Rename CSSPropertyLonghand class to StylePropertyShorthand.
1716         https://bugs.webkit.org/show_bug.cgi?id=82624
1717
1718         Reviewed by Antti Koivisto.
1719
1720         Rename CSSPropertyLonghand to StylePropertyShorthand as what CSSPropertyLonghand
1721         is representing is not a longhand but the list of longhands for a given shorthand.
1722         Also in the same time switch all shorthand declarations to use CSSPropertyID enum
1723         rather than a int so it is clear on what kind of data we are dealing with.
1724
1725         In a following patch I will rename CSSPropertyLonghand file.
1726
1727         No new tests : This is a refactoring, no behaviour change intended
1728
1729         * css/CSSComputedStyleDeclaration.cpp:
1730         (WebCore):
1731         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1732         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForShorthandProperties):
1733         (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
1734         (WebCore::CSSComputedStyleDeclaration::copyPropertiesInSet):
1735         * css/CSSComputedStyleDeclaration.h:
1736         (WebCore):
1737         (CSSComputedStyleDeclaration):
1738         * css/CSSParser.cpp:
1739         (WebCore::CSSParser::parseValue):
1740         (WebCore::CSSParser::parseFillShorthand):
1741         (WebCore::CSSParser::parseAnimationShorthand):
1742         (WebCore::CSSParser::parseTransitionShorthand):
1743         (WebCore::CSSParser::parseShorthand):
1744         (WebCore::CSSParser::parse4Values):
1745         * css/CSSParser.h:
1746         (WebCore):
1747         (CSSParser):
1748         * css/CSSProperty.cpp:
1749         (WebCore::resolveToPhysicalProperty):
1750         (WebCore::borderDirections):
1751         (WebCore::CSSProperty::resolveDirectionAwareProperty):
1752         * css/CSSPropertyLonghand.cpp:
1753         (WebCore::backgroundShorthand):
1754         (WebCore::backgroundPositionShorthand):
1755         (WebCore::backgroundRepeatShorthand):
1756         (WebCore::borderShorthand):
1757         (WebCore::borderAbridgedShorthand):
1758         (WebCore::borderBottomShorthand):
1759         (WebCore::borderColorShorthand):
1760         (WebCore::borderImageShorthand):
1761         (WebCore::borderLeftShorthand):
1762         (WebCore::borderRadiusShorthand):
1763         (WebCore::borderRightShorthand):
1764         (WebCore::borderSpacingShorthand):
1765         (WebCore::borderStyleShorthand):
1766         (WebCore::borderTopShorthand):
1767         (WebCore::borderWidthShorthand):
1768         (WebCore::listStyleShorthand):
1769         (WebCore::fontShorthand):
1770         (WebCore::marginShorthand):
1771         (WebCore::outlineShorthand):
1772         (WebCore::overflowShorthand):
1773         (WebCore::paddingShorthand):
1774         (WebCore::webkitAnimationShorthand):
1775         (WebCore::webkitBorderAfterShorthand):
1776         (WebCore::webkitBorderBeforeShorthand):
1777         (WebCore::webkitBorderEndShorthand):
1778         (WebCore::webkitBorderStartShorthand):
1779         (WebCore::webkitColumnsShorthand):
1780         (WebCore::webkitColumnRuleShorthand):
1781         (WebCore::webkitFlexFlowShorthand):
1782         (WebCore::webkitMarginCollapseShorthand):
1783         (WebCore::webkitMarqueeShorthand):
1784         (WebCore::webkitMaskShorthand):
1785         (WebCore::webkitMaskPositionShorthand):
1786         (WebCore::webkitMaskRepeatShorthand):
1787         (WebCore::webkitTextEmphasisShorthand):
1788         (WebCore::webkitTextStrokeShorthand):
1789         (WebCore::webkitTransitionShorthand):
1790         (WebCore::webkitTransformOriginShorthand):
1791         (WebCore::webkitWrapShorthand):
1792         (WebCore::shorthandForProperty):
1793         * css/CSSPropertyLonghand.h:
1794         (WebCore::StylePropertyShorthand::StylePropertyShorthand):
1795         (WebCore::StylePropertyShorthand::properties):
1796         (WebCore::StylePropertyShorthand::propertiesForInitialization):
1797         (StylePropertyShorthand):
1798         (WebCore):
1799         * css/StylePropertySet.cpp:
1800         (WebCore::StylePropertySet::getPropertyValue):
1801         (WebCore::StylePropertySet::borderSpacingValue):
1802         (WebCore::StylePropertySet::get4Values):
1803         (WebCore::StylePropertySet::getLayeredShorthandValue):
1804         (WebCore::StylePropertySet::getShorthandValue):
1805         (WebCore::StylePropertySet::getCommonValue):
1806         (WebCore::StylePropertySet::removeShorthandProperty):
1807         (WebCore::StylePropertySet::propertyIsImportant):
1808         (WebCore::StylePropertySet::setProperty):
1809         (WebCore::StylePropertySet::asText):
1810         (WebCore):
1811         (WebCore::StylePropertySet::removePropertiesInSet):
1812         (WebCore::StylePropertySet::copyPropertiesInSet):
1813         * css/StylePropertySet.h:
1814         (WebCore):
1815         (StylePropertySet):
1816         * editing/EditingStyle.cpp:
1817         (WebCore):
1818         (WebCore::removePropertiesInStyle):
1819         * page/animation/AnimationBase.cpp:
1820         (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper):
1821         (WebCore::addShorthandProperties):
1822         * page/animation/CompositeAnimation.cpp:
1823
1824 2012-03-28  Pavel Podivilov  <podivilov@chromium.org>
1825
1826         Web Inspector: refactor UI breakpoint listeners.
1827         https://bugs.webkit.org/show_bug.cgi?id=82481
1828
1829         Reviewed by Vsevolod Vlasov.
1830
1831         Breakpoint-added and breakpoint-removed events are currently dispatched on UISourceCode.
1832         That allows us to move handlers that manage SourceFrame's breakpoint decorations from ScriptsPanel to SourceFrame.
1833         SourceFrame's "Loaded" event is removed as it was only used by ScriptsPanel to restore SourceFrame's breakpoints.
1834
1835         * inspector/front-end/DebuggerPresentationModel.js:
1836         * inspector/front-end/JavaScriptSourceFrame.js:
1837         (WebInspector.JavaScriptSourceFrame):
1838         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu.addConditionalBreakpoint.didEditBreakpointCondition):
1839         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu.):
1840         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
1841         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
1842         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
1843         (WebInspector.JavaScriptSourceFrame.prototype._removeBreakpointDecoration):
1844         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
1845         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
1846         (WebInspector.JavaScriptSourceFrame.prototype.onTextViewerContentLoaded):
1847         * inspector/front-end/ScriptsPanel.js:
1848         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
1849         (WebInspector.ScriptsPanel.prototype._uiBreakpointAdded):
1850         (WebInspector.ScriptsPanel.prototype._uiBreakpointRemoved):
1851         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
1852         * inspector/front-end/SourceFrame.js:
1853         (WebInspector.SourceFrame.prototype.setContent):
1854         (WebInspector.SourceFrame.prototype.onTextViewerContentLoaded):
1855
1856 2012-04-02  Rob Buis  <rbuis@rim.com>
1857
1858         [BlackBerry] Take into account policy checks in ClipboardBlackBerry
1859         https://bugs.webkit.org/show_bug.cgi?id=82651
1860
1861         Reviewed by George Staikos.
1862
1863         Add policy checks in the methods we implemented.
1864
1865         Covered by existing tests.
1866
1867         * platform/blackberry/ClipboardBlackBerry.cpp:
1868         (WebCore::ClipboardBlackBerry::clearData):
1869         (WebCore::ClipboardBlackBerry::clearAllData):
1870         (WebCore::ClipboardBlackBerry::getData):
1871         (WebCore::ClipboardBlackBerry::setData):
1872         (WebCore::ClipboardBlackBerry::types):
1873         * platform/blackberry/ClipboardBlackBerry.h:
1874         (WebCore::ClipboardBlackBerry::create):
1875
1876 2012-04-02  Andrey Kosyakov  <caseq@chromium.org>
1877
1878         Web Inspector: [refactoring] factor our frame aggregation logic to TimelineFrameController
1879         https://bugs.webkit.org/show_bug.cgi?id=82735
1880
1881         Reviewed by Pavel Feldman.
1882
1883         - factor out frame aggregation logic from TimelineVerticalOverview into TimelineFrameController;
1884         - if we don't have frames, pretend each top-level event is a frame (this preserves behavior of vertical overview);
1885         - factor out time-by-category stats aggregation into class methods of TimelineModel for reuse accross timeline modules;
1886         - do not filter top-level events by type in vertical overview mode;
1887
1888         * WebCore.gypi: Added TimelineFrameController.js
1889         * WebCore.vcproj/WebCore.vcproj: ditto.
1890         * inspector/compile-front-end.py: ditto.
1891         * inspector/front-end/TimelineFrameController.js: Added.
1892         (WebInspector.TimelineFrameController):
1893         (WebInspector.TimelineFrameController.prototype._onRecordAdded):
1894         (WebInspector.TimelineFrameController.prototype._onRecordsCleared):
1895         (WebInspector.TimelineFrameController.prototype._addRecord):
1896         (WebInspector.TimelineFrameController.prototype._flushFrame):
1897         (WebInspector.TimelineFrameController.prototype._createSyntheticFrame): create a "frame" based on a single top-level record.
1898         (WebInspector.TimelineFrameController.prototype.dispose): Remove listeners that we added in constructor.
1899         (WebInspector.TimelineFrame):
1900         * inspector/front-end/TimelineModel.js: Added utilities for aggregating times by categories.
1901         (WebInspector.TimelineModel.aggregateTimeByCategories):
1902         (WebInspector.TimelineModel.aggregateTimeForRecord):
1903         * inspector/front-end/TimelineOverviewPane.js: Use frame information supplied by TimelineFrameController.
1904         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
1905         (WebInspector.TimelineOverviewPane.prototype._setVerticalOverview):
1906         (WebInspector.TimelineOverviewPane.prototype.addFrame):
1907         (WebInspector.TimelineVerticalOverview.prototype.reset): Clear stored frames upon reset()
1908         (WebInspector.TimelineVerticalOverview.prototype.update):
1909         (WebInspector.TimelineVerticalOverview.prototype.addFrame):
1910         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
1911         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
1912         * inspector/front-end/TimelinePanel.js: Create/dispose TimelineFrameController when switching to/from vertical overview mode.
1913         * inspector/front-end/TimelinePresentationModel.js:
1914         (WebInspector.TimelinePresentationModel.Record.prototype.calculateAggregatedStats): Factored out statistics aggregation to utilities method in the model.
1915         * inspector/front-end/WebKit.qrc: Added TimelineFrameController.js
1916         * inspector/front-end/inspector.html: ditto.
1917
1918 2012-03-31  Alexander Pavlov  <apavlov@chromium.org>
1919
1920         Web Inspector: Implement backend for device metrics emulation
1921         https://bugs.webkit.org/show_bug.cgi?id=82827
1922
1923         This change implements the inspector backend for the device metrics override feature,
1924         as well as the respective InspectorClient capability detection.
1925         When a navigation occurs in the override mode, the page auto-zooming ("fit width")
1926         is initiated upon the first layout after the DOMContentLoaded event.
1927
1928         Reviewed by Pavel Feldman.
1929
1930         * inspector/Inspector.json:
1931         * inspector/InspectorClient.h:
1932         (WebCore::InspectorClient::canOverrideDeviceMetrics):
1933         (WebCore::InspectorClient::overrideDeviceMetrics):
1934         (WebCore::InspectorClient::autoZoomPageToFitWidth):
1935         (InspectorClient):
1936         * inspector/InspectorInstrumentation.cpp:
1937         (WebCore::InspectorInstrumentation::didLayoutImpl):
1938         * inspector/InspectorPageAgent.cpp:
1939         (PageAgentState):
1940         (WebCore::InspectorPageAgent::InspectorPageAgent):
1941         (WebCore::InspectorPageAgent::restore):
1942         (WebCore::InspectorPageAgent::disable):
1943         (WebCore::InspectorPageAgent::canOverrideDeviceMetrics):
1944         (WebCore):
1945         (WebCore::InspectorPageAgent::setDeviceMetricsOverride):
1946         (WebCore::InspectorPageAgent::domContentEventFired):
1947         (WebCore::InspectorPageAgent::loadEventFired):
1948         (WebCore::InspectorPageAgent::didLayout):
1949         (WebCore::InspectorPageAgent::updateViewMetrics):
1950         * inspector/InspectorPageAgent.h:
1951         * inspector/InspectorState.cpp:
1952         (WebCore::InspectorState::getDouble):
1953         (WebCore):
1954         * inspector/InspectorState.h:
1955         (InspectorState):
1956         (WebCore::InspectorState::setDouble):
1957
1958 2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1959
1960         Unreviewed, rolling out r112813 and r112837.
1961         http://trac.webkit.org/changeset/112813
1962         http://trac.webkit.org/changeset/112837
1963         https://bugs.webkit.org/show_bug.cgi?id=82885
1964
1965         It made two tests crash on WK2 (Requested by Ossy on #webkit).
1966
1967         * CMakeLists.txt:
1968         * GNUmakefile.list.am:
1969         * Target.pri:
1970         * WebCore.gypi:
1971         * WebCore.xcodeproj/project.pbxproj:
1972         * svg/SVGAllInOne.cpp:
1973         * svg/SVGAnimateElement.cpp:
1974         (WebCore::SVGAnimateElement::determineAnimatedPropertyType):
1975         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1976         (WebCore::propertyTypesAreConsistent):
1977         (WebCore::SVGAnimateElement::applyResultsToTarget):
1978         * svg/SVGAnimatedAngle.cpp:
1979         (WebCore::SVGAnimatedAngleAnimator::constructFromString):
1980         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
1981         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
1982         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
1983         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
1984         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
1985         (WebCore::SVGAnimatedAngleAnimator::calculateFromAndByValues):
1986         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
1987         * svg/SVGAnimatedAngle.h:
1988         (WebCore):
1989         * svg/SVGAnimatedBoolean.cpp:
1990         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
1991         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
1992         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
1993         * svg/SVGAnimatedEnumeration.cpp: Removed.
1994         * svg/SVGAnimatedEnumeration.h:
1995         (WebCore):
1996         * svg/SVGAnimatedInteger.cpp:
1997         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
1998         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
1999         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
2000         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
2001         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
2002         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
2003         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
2004         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
2005         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
2006         * svg/SVGAnimatedLength.cpp:
2007         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
2008         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
2009         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
2010         * svg/SVGAnimatedLengthList.cpp:
2011         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
2012         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
2013         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
2014         * svg/SVGAnimatedNumber.cpp:
2015         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
2016         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
2017         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
2018         * svg/SVGAnimatedNumberList.cpp:
2019         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
2020         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
2021         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
2022         * svg/SVGAnimatedNumberOptionalNumber.cpp:
2023         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
2024         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
2025         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
2026         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
2027         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
2028         * svg/SVGAnimatedPreserveAspectRatio.cpp:
2029         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
2030         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
2031         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
2032         * svg/SVGAnimatedRect.cpp:
2033         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
2034         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
2035         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
2036         * svg/SVGAnimatedString.cpp:
2037         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
2038         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
2039         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
2040         * svg/SVGAnimatedTransformList.cpp:
2041         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
2042         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
2043         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
2044         * svg/SVGAnimatedType.cpp:
2045         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2046         (WebCore::SVGAnimatedType::createAngle):
2047         (WebCore::SVGAnimatedType::angle):
2048         (WebCore::SVGAnimatedType::valueAsString):
2049         (WebCore::SVGAnimatedType::setValueAsString):
2050         (WebCore::SVGAnimatedType::setPreserveAspectRatioBaseValue):
2051         (WebCore):
2052         (WebCore::SVGAnimatedType::supportsAnimVal):
2053         * svg/SVGAnimatedType.h:
2054         (SVGAnimatedType):
2055         * svg/SVGAnimatedTypeAnimator.h:
2056         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
2057         (SVGAnimatedTypeAnimator):
2058         (WebCore::SVGAnimatedTypeAnimator::startAnimation):
2059         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
2060         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
2061         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
2062         (WebCore::SVGAnimatedTypeAnimator::constructFromOneBaseValue):
2063         (WebCore::SVGAnimatedTypeAnimator::resetFromOneBaseValue):
2064         (WebCore::SVGAnimatedTypeAnimator::constructFromTwoBaseValues):
2065         (WebCore::SVGAnimatedTypeAnimator::resetFromTwoBaseValues):
2066         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
2067         (WebCore::SVGAnimatedTypeAnimator::collectAnimatedPropertiesFromInstances):
2068         * svg/SVGAnimatorFactory.h:
2069         (WebCore::SVGAnimatorFactory::create):
2070         * svg/SVGMarkerElement.cpp:
2071         (WebCore):
2072         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2073         (SVGAnimatedListPropertyTearOff):
2074         * svg/properties/SVGAnimatedPropertyTearOff.h:
2075         (SVGAnimatedPropertyTearOff):
2076         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
2077
2078 2012-04-02  Yury Semikhatsky  <yurys@chromium.org>
2079
2080         [V8] Web Inspector: don't crash when resolving DOM wrapper heap snapshot node to JS object
2081         https://bugs.webkit.org/show_bug.cgi?id=82872
2082
2083         Reviewed by Pavel Feldman.
2084
2085         Don't resolve heap object to a JS object if it is a wrapper boilerplate.
2086
2087         Test: inspector/profiler/heap-snapshot-inspect-dom-wrapper.html
2088
2089         * bindings/v8/ScriptProfiler.cpp:
2090         (WebCore::ScriptProfiler::objectByHeapObjectId):
2091         (WebCore):
2092         * inspector/InspectorProfilerAgent.cpp:
2093         (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
2094
2095 2012-04-02  Sheriff Bot  <webkit.review.bot@gmail.com>
2096
2097         Unreviewed, rolling out r112659.
2098         http://trac.webkit.org/changeset/112659
2099         https://bugs.webkit.org/show_bug.cgi?id=82884
2100
2101         Undo the rollout of 112489 since this was not the cause of
2102         failures (Requested by apavlov on #webkit).
2103
2104         * css/CSSSegmentedFontFace.cpp:
2105         (WebCore::appendFontDataWithInvalidUnicodeRangeIfLoading):
2106         (WebCore):
2107         (WebCore::CSSSegmentedFontFace::getFontData):
2108
2109 2012-04-01  Antti Koivisto  <antti@apple.com>
2110
2111         Add mechanism for mapping from StyleRules back to fully constructed CSSStyleRules 
2112         https://bugs.webkit.org/show_bug.cgi?id=82847
2113
2114         Reviewed by Andreas Kling.
2115
2116         Inspector is using CSSStyleSelector to calculate the CSS rules matched by a given element and
2117         expects to be able to walk the parent chain. After 82728 the stylesheet object tree won't have
2118         parent pointers and we are going to need another mechanism to support this.
2119         
2120         The new code does not actually run without 82728.
2121         
2122         * css/CSSStyleSelector.cpp:
2123         (WebCore):
2124         (WebCore::CSSStyleSelector::appendAuthorStylesheets):
2125         (WebCore::loadFullDefaultStyle):
2126         (WebCore::ensureDefaultStyleSheetsForElement):
2127         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2128         * css/CSSStyleSelector.h:
2129         (CSSStyleSelector):
2130     
2131         Add ensureFullCSSOMWrapperForStyleRule() method which traverses through all style
2132         sheets that apply to the document and constucts wrappers for the rules. These wrappers
2133         are cached to a map. The map can then be used for StyleRule -> CSSStyleRule lookups.
2134         
2135         This uses quite a bit of memory so should not be used for any normal engine functions.
2136     
2137         * inspector/InspectorCSSAgent.cpp:
2138         (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
2139         (WebCore::InspectorCSSAgent::buildArrayForRuleList):
2140     
2141         Use the new mechanism to get fully functional wrappers for rule objects without parent pointer.
2142     
2143         * inspector/InspectorCSSAgent.h:
2144         (InspectorCSSAgent):
2145
2146 2012-04-02  Carlos Garcia Campos  <cgarcia@igalia.com>
2147
2148         Unreviewed. Fix make distcheck issues.
2149
2150         * GNUmakefile.list.am: Remove duplicated files and add missing
2151         header.
2152
2153 2012-04-02  Levi Weintraub  <leviw@chromium.org>
2154
2155         Add rounding to Plugin creation in SubframeLoader
2156         https://bugs.webkit.org/show_bug.cgi?id=82221
2157
2158         Reviewed by Eric Seidel.
2159
2160         Adding rounding to the LayoutSize used to construct Plugins in SubframeLoader. Plugins, which
2161         are widgets, are always placed on integer boundaries, which means their sizes can be rounded
2162         without considering their location. See https://trac.webkit.org/wiki/LayoutUnit for details.
2163
2164         No new tests. No change in behavior.
2165
2166         * loader/SubframeLoader.cpp:
2167         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
2168         (WebCore::SubframeLoader::createJavaAppletWidget):
2169         (WebCore::SubframeLoader::loadPlugin):
2170
2171 2012-04-02  Mario Sanchez Prada  <msanchez@igalia.com>
2172
2173         in page anchor and keyboard navigation
2174         https://bugs.webkit.org/show_bug.cgi?id=17450
2175
2176         Reviewed by Chris Fleizach.
2177
2178         Ensure that the position of the caret and the focused element
2179         get updated when following an anchor link.
2180
2181         The implementation is moved from platform specific files out to
2182         AXObjectCache.cpp since it should be a cross-platform valid
2183         solution. However, the new code is currently activated for the Mac
2184         and GTK ports only, since the windows and chromium ports provide
2185         their own specific code, and removing it now might break things.
2186
2187         Test: accessibility/anchor-link-selection-and-focus.html
2188
2189         * accessibility/AXObjectCache.cpp:
2190         (WebCore):
2191         (WebCore::AXObjectCache::handleScrolledToAnchor): Cross-platform
2192         implementation of the fix, only activated for Mac and GTK for now.
2193         * accessibility/gtk/AXObjectCacheAtk.cpp: Removed the GTK-specific
2194         implementation of WebCore::AXObjectCache::handleScrolledToAnchor.
2195         * accessibility/mac/AXObjectCacheMac.mm: Removed the Mac-specific
2196         implementation of WebCore::AXObjectCache::handleScrolledToAnchor.
2197
2198 2012-04-02  Hayato Ito  <hayato@chromium.org>
2199
2200         [Shadow DOM] Introduce ComposedShadowTreeWalker as a successor of ReifiedTreeTraversal APIs
2201         https://bugs.webkit.org/show_bug.cgi?id=82009
2202
2203         Reviewed by Dimitri Glazkov.
2204
2205         ComposedShadowTreeWalker is intended to be a successor of current ReifiedTreeTraversal APIs.
2206         ComposedShadowTreeWalker uses a cursor pattern and takes a starting node in its constructor.
2207
2208         A typical usage is:
2209
2210           for (ComposedShadowTreeWalker walker(node); walker.get(); walker.next()) {
2211                 ...
2212           }
2213
2214         Follow-up patches will update clients which use current ReifiedTreeTraversal APIs so that they use the Walker.
2215         More tests will come along with these actual use cases in follow-up patches.
2216         After that, I'll get rid of ReifiedTreeTraversal APIs in favor of the Walker.
2217
2218         Note that 'ComposedShadowTree' and 'ReifiedTree' has the same meaning.
2219         Because ReifiedTree is not intuitive name, we are starting to use 'ComposedShadowTree' from now.
2220
2221         Test: fast/dom/shadow/composed-shadow-tree-walker.html
2222
2223         * CMakeLists.txt:
2224         * GNUmakefile.list.am:
2225         * Target.pri:
2226         * WebCore.exp.in:
2227         * WebCore.gypi:
2228         * WebCore.vcproj/WebCore.vcproj:
2229         * WebCore.xcodeproj/project.pbxproj:
2230         * dom/ComposedShadowTreeWalker.cpp: Added.
2231         (WebCore):
2232         (WebCore::isShadowHost):
2233         (WebCore::shadowTreeFor):
2234         (WebCore::shadowTreeOfParent):
2235         (WebCore::ComposedShadowTreeWalker::ComposedShadowTreeWalker):
2236         (WebCore::ComposedShadowTreeWalker::fromFirstChild):
2237         (WebCore::ComposedShadowTreeWalker::firstChild):
2238         (WebCore::ComposedShadowTreeWalker::traverseFirstChild):
2239         (WebCore::ComposedShadowTreeWalker::lastChild):
2240         (WebCore::ComposedShadowTreeWalker::traverseLastChild):
2241         (WebCore::ComposedShadowTreeWalker::traverseChild):
2242         (WebCore::ComposedShadowTreeWalker::traverseLightChildren):
2243         (WebCore::ComposedShadowTreeWalker::traverseNode):
2244         (WebCore::ComposedShadowTreeWalker::nextSibling):
2245         (WebCore::ComposedShadowTreeWalker::previousSibling):
2246         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
2247         (WebCore::ComposedShadowTreeWalker::traverseSiblingInCurrentTree):
2248         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToYoungerShadowRoot):
2249         (WebCore::ComposedShadowTreeWalker::escapeFallbackContentElement):
2250         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
2251         (WebCore::ComposedShadowTreeWalker::parent):
2252         (WebCore::ComposedShadowTreeWalker::traverseParent):
2253         (WebCore::ComposedShadowTreeWalker::traverseParentInCurrentTree):
2254         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost):
2255         (WebCore::ComposedShadowTreeWalker::traverseNextSibling):
2256         (WebCore::ComposedShadowTreeWalker::traversePreviousSibling):
2257         (WebCore::ComposedShadowTreeWalker::next):
2258         (WebCore::ComposedShadowTreeWalker::previous):
2259         * dom/ComposedShadowTreeWalker.h: Added.
2260         (WebCore):
2261         (ComposedShadowTreeWalker):
2262         (WebCore::ComposedShadowTreeWalker::get):
2263         (WebCore::ComposedShadowTreeWalker::canCrossUpperBoundary):
2264         (WebCore::ComposedShadowTreeWalker::assertPrecondition):
2265         (WebCore::ComposedShadowTreeWalker::assertPostcondition):
2266         * testing/Internals.cpp:
2267         (WebCore::Internals::nextSiblingByWalker):
2268         (WebCore):
2269         (WebCore::Internals::firstChildByWalker):
2270         (WebCore::Internals::lastChildByWalker):
2271         (WebCore::Internals::nextNodeByWalker):
2272         (WebCore::Internals::previousNodeByWalker):
2273         * testing/Internals.h:
2274         (Internals):
2275         * testing/Internals.idl:
2276
2277 2012-04-02  Pavel Podivilov  <podivilov@chromium.org>
2278
2279         Web Inspector: breakpoints are not shown in sidebar pane after switching pretty-print mode.
2280         https://bugs.webkit.org/show_bug.cgi?id=82768
2281
2282         Reviewed by Yury Semikhatsky.
2283
2284         When UISourceCode is replaced with another in ScriptsPanel, newly added
2285         UISourceCode could already have breakpoints. We should iterate over existing
2286         breakpoints and add them to sidebar pane.
2287
2288         * inspector/front-end/ScriptsPanel.js:
2289         (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
2290
2291 2012-04-02  Eric Seidel  <eric@webkit.org>
2292
2293         Teach RuleSet about modern memory management
2294         https://bugs.webkit.org/show_bug.cgi?id=82856
2295
2296         Reviewed by Adam Barth.
2297
2298         No change in behavior, thus no tests.
2299
2300         * css/CSSStyleSelector.cpp:
2301         (WebCore::RuleSet::create):
2302         (RuleSet):
2303         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
2304         (WebCore::CSSStyleSelector::CSSStyleSelector):
2305         (WebCore::makeRuleSet):
2306         (WebCore::CSSStyleSelector::appendAuthorStylesheets):
2307         (WebCore::loadFullDefaultStyle):
2308         (WebCore::loadSimpleDefaultStyle):
2309         (WebCore::loadViewSourceStyle):
2310         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2311
2312 2012-04-02  Kent Tamura  <tkent@chromium.org>
2313
2314         Add a calendar picker indicator to date-type input fields
2315         https://bugs.webkit.org/show_bug.cgi?id=80478
2316
2317         Reviewed by Hajime Morita.
2318
2319         Add an indicator to date-type controls. The bahevior change is enclosed
2320         with ENABLE_CALENDAR_PICKER.
2321
2322         - Remove spin buttons from date-type controls.
2323         It's not so helpful if we have a calendar picker. We introduce
2324         TextFieldInputType::shouldHaveSpinButton().
2325
2326         - Add CalendarPickerElement.
2327         This is added into a shadow tree of a date-type control. It uses
2328         RenderDetailsMarker.
2329
2330         We're going to add click handler and so on to CalendarPickerElement.
2331
2332         Test: fast/forms/date/date-appearance.html
2333
2334         * WebCore.gypi: Add CalendarPickerElement.{cpp,h}
2335         * css/html.css:
2336         (input::-webkit-calendar-picker-indicator):
2337         * html/DateInputType.cpp:
2338         (WebCore::DateInputType::createShadowSubtree): Insert CalendarPickerElement.
2339         (WebCore::DateInputType::needsContainer):
2340         Alwyas return true because we have an extra decoration element.
2341         (WebCore::DateInputType::shouldHaveSpinButton):
2342         Always return false to disable spin button.
2343         * html/DateInputType.h:
2344         (DateInputType): Add declarations.
2345         * html/TextFieldInputType.cpp:
2346         (WebCore::TextFieldInputType::shouldHaveSpinButton):
2347         (WebCore::TextFieldInputType::createShadowSubtree): Move some code to shouldHaveSpinButton().
2348         * html/TextFieldInputType.h:
2349         (TextFieldInputType): Add a declartion.
2350         * html/shadow/CalendarPickerElement.cpp:
2351         (WebCore::CalendarPickerElement::CalendarPickerElement):
2352         (WebCore::CalendarPickerElement::create):
2353         (WebCore::CalendarPickerElement::createRenderer): Creates RenderDetailsMarker.
2354         * html/shadow/CalendarPickerElement.h: Added.
2355         * rendering/RenderDetailsMarker.cpp:
2356         (WebCore::RenderDetailsMarker::isOpen): Always show a down arrow if this is in <input>.
2357         * rendering/RenderDetailsMarker.h:
2358
2359 2012-04-02  Andrey Kosyakov  <caseq@chromium.org>
2360
2361         Web Inspector: make timeline overview a view
2362         https://bugs.webkit.org/show_bug.cgi?id=82861
2363
2364         Reviewed by Yury Semikhatsky.
2365
2366         - make TimelineOverviewPane a view;
2367         - only update it if it's visible or upon wasShown().
2368
2369         * inspector/front-end/TimelineOverviewPane.js:
2370         (WebInspector.TimelineOverviewPane):
2371         (WebInspector.TimelineOverviewPane.prototype.wasShown): forced update.
2372         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
2373         (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh): skip refresh if not showing;
2374         * inspector/front-end/TimelinePanel.js: timelineOverviewPane.show() instead of appendChild();
2375         (WebInspector.TimelinePanel):
2376
2377 2012-04-02  Patrick Gansterer  <paroga@webkit.org>
2378
2379         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r112813.
2380
2381         * svg/SVGAnimatedEnumeration.cpp:
2382         (WebCore::enumerationValueForTargetAttribute):
2383
2384 2012-04-02  Adam Barth  <abarth@webkit.org>
2385
2386         [Chromium] Move another block of headers from WebKit/chromium/public/platform to Platform/chromium/public
2387         https://bugs.webkit.org/show_bug.cgi?id=82862
2388
2389         Rubber-stamped by Eric Seidel.
2390
2391         This is part of the change discussed in
2392         https://lists.webkit.org/pipermail/webkit-dev/2012-March/020166.html
2393
2394         * WebCore.gypi:
2395         * platform/chromium/support/WebAudioBus.cpp: Copied from Source/WebKit/chromium/src/WebAudioBus.cpp.
2396
2397 2012-04-01  Adam Barth  <abarth@webkit.org>
2398
2399         [Chromium] Move thread-related APIs from WebKit into Platform
2400         https://bugs.webkit.org/show_bug.cgi?id=82858
2401
2402         Reviewed by Eric Seidel.
2403
2404         This is part of the change discussed in
2405         https://lists.webkit.org/pipermail/webkit-dev/2012-March/020166.html
2406
2407         * WebCore.gypi:
2408         * platform/chromium/support/WebThreadSafeData.cpp: Copied from Source/WebKit/chromium/src/WebThreadSafeData.cpp.
2409
2410 2012-03-29  Kent Tamura  <tkent@chromium.org>
2411
2412         Fix some problems of text field decoration
2413         https://bugs.webkit.org/show_bug.cgi?id=82693
2414
2415         Reviewed by Dimitri Glazkov.
2416
2417         - Fix a problem that decorations are not removed when the input type is
2418         changed.
2419         - Add a comment to the 'willDetach' callback.
2420
2421         No new tests because the behavior changes are not visible yet.
2422
2423         * GNUMakefile.list.am: Add HTMLShadowElement.*.
2424         * html/InputType.cpp:
2425         (WebCore::InputType::destroyShadowSubtree):
2426         Remove all of ShadowRoot contents, and add a <shadow> element to each of
2427         them. We don't remove ShadowRoots from the tree because it's not
2428         supported well.
2429         * html/shadow/TextFieldDecorationElement.cpp:
2430         (getDecorationRootAndDecoratedRoot): A helper function for decorate().
2431         If the input element has a ShadowRoot with single <shadow> child, we
2432         don't create new ShadowRoot and reuse it.
2433         (WebCore::TextFieldDecorationElement::decorate):
2434         Use getDecorationRootAndDecoratedRoot().
2435         * html/shadow/TextFieldDecorationElement.h:
2436         (TextFieldDecorator): Add a comment to willDetach().
2437
2438 2012-04-01  Li Yin  <li.yin@intel.com>
2439
2440         [WebSocket]Reserved bits test case should cover both extension and no-extension scenarios
2441         https://bugs.webkit.org/show_bug.cgi?id=82100
2442
2443         Reviewed by Kent Tamura.
2444
2445         When it had no negotiated deflate-frame extension, if browser received the frame with
2446         setting compressed bit, it should fail the connection, and it should cover both
2447         enabling ZLIB port and disabling ZLIB port.
2448
2449         Test:  http/tests/websocket/tests/hybi/reserved-bits.html 
2450
2451         * Modules/websockets/WebSocketDeflateFramer.cpp:
2452         (WebCore::WebSocketDeflateFramer::inflate):
2453
2454 2012-04-01  Adam Barth  <abarth@webkit.org>
2455
2456         Clean up Document::canNavigate
2457         https://bugs.webkit.org/show_bug.cgi?id=82282
2458
2459         Reviewed by Eric Seidel.
2460
2461         This patch is just a minor clean up to Document::canNavigate. Eric
2462         asked me to clean up the function when I moved it from FrameLoader. I'm
2463         not sure this patch is much of a win, but at least the comments say
2464         things that are more sensible now.
2465
2466         * dom/Document.cpp:
2467         (WebCore::printNavigationErrorMessage):
2468         (WebCore):
2469         (WebCore::Document::canNavigate):
2470
2471 2012-04-01  Jon Lee  <jonlee@apple.com>
2472
2473         Rename notification properties and functions
2474         https://bugs.webkit.org/show_bug.cgi?id=80482
2475         <rdar://problem/10912432>
2476
2477         Reviewed by Kentaro Hara.
2478
2479         Change method name to close(), and set tag property on Notifications, based on discussions in WG:
2480         http://lists.w3.org/Archives/Public/public-web-notification/2012Mar/0024.html
2481         http://lists.w3.org/Archives/Public/public-web-notification/2012Mar/0013.html
2482
2483         * notifications/Notification.cpp:
2484         (WebCore::Notification::~Notification): Use close().
2485         (WebCore::Notification::close):
2486         * notifications/Notification.h:
2487         (Notification):
2488         (WebCore::Notification::cancel): Wrap in ENABLE(LEGACY_NOTIFICATIONS), and use close().
2489         (WebCore::Notification::replaceId): Wrap in ENABLE(LEGACY_NOTIFICATIONS), and use tag().
2490         (WebCore::Notification::setReplaceId): Wrap in ENABLE(LEGACY_NOTIFICATIONS), and use setTag().
2491         (WebCore::Notification::tag):
2492         (WebCore::Notification::setTag):
2493         * notifications/Notification.idl: Preserve cancel() and replaceID in ENABLE(LEGACY_NOTIFICATIONS), and
2494         close() and tag in ENABLE(NOTIFICATIONS).
2495
2496 2012-04-01  Eric Seidel  <eric@webkit.org>
2497
2498         Unreviewed, rolling out r112760.
2499         http://trac.webkit.org/changeset/112760
2500         https://bugs.webkit.org/show_bug.cgi?id=82795
2501
2502         Revert addition of webkitseamless.  I'll do this work on
2503         GitHub instead to avoid any half-implemented feature concerns.
2504
2505         * html/HTMLAttributeNames.in:
2506         * html/HTMLIFrameElement.idl:
2507
2508 2012-04-01  Timothy Hatcher  <timothy@apple.com>
2509
2510         Fix a crash when closing a tab/window while the Web Inspector is stopped in the debugger.
2511
2512         https://webkit.org/b/82846
2513         rdar://problem/8133494
2514
2515         Reviewed by Yury Semikhatsky.
2516
2517         * bindings/js/PageScriptDebugServer.cpp:
2518         (WebCore::PageScriptDebugServer::didPause): Added assert for page and early return. Also assert that
2519         m_pausedPage is null.
2520         (WebCore::PageScriptDebugServer::didContinue): Page can be null if we are continuing because the Page closed.
2521         So add a null check before using it. Added an assert that the page is null or m_pausedPage. 
2522         (WebCore::PageScriptDebugServer::didRemoveLastListener): Added assert for page.
2523
2524 2012-04-01  Tony Tseung  <tseung@apple.com>
2525
2526         Composite Font References is a new established standard (ISO/IEC 14496-28:2012) for specifying
2527         composite fonts from existing physical fonts.
2528         <rdar://problem/10717370>
2529         https://bugs.webkit.org/show_bug.cgi?id=82810
2530         
2531         CoreText have already the features enabled, here we added this to WebKit text layout and rendering.
2532         A member function getCompositeFontReferenceFontData is added to the SimpleFontData class for the component font
2533         correspond to the platformData, in this case, a NSFont. This is used when CoreText layout had resulted
2534         a component of the Composite Font Reference and its corresponding SimpleFontData object is then cached
2535         in the SimpleFontData object of the posting font (Composite Font Reference).
2536         
2537         When glyphs are encoded to form the GlyphPage for rendering, the Composite Font Reference is handled throught
2538         the CoreText layout path (using CTLine), here the resulting glyph is associated with a font which could
2539         be not the original font request. In this case, these are the component fonts of the Composite Font
2540         Reference. This is then identified and then added to the GlyphPage appropriately.
2541         
2542         To support this feature, a member function isCompositeFontReference is added to FontPlatformData to
2543         indicate a font is a Composite Font Reference. Also in order to pass the component font correctly a boolean
2544         isPrinterFont is added to one the FontPlatformData constructors to describe the NSFont.
2545
2546         Reviewed by Dan Bernstein.
2547
2548         Added test LayoutTests/fast/text/international/text-spliced-font.html
2549
2550         * WebCore.exp.in:
2551         Replaced obsolete FontPlatformData constructor entry.
2552
2553         * platform/graphics/FontPlatformData.cpp:
2554         (WebCore::FontPlatformData::FontPlatformData):
2555         Copy of the additional m_isCompositeFontReference and m_isPrinterFont data members.
2556         
2557         (WebCore::FontPlatformData::operator=):
2558         Assignment of the additional m_isCompositeFontReference and m_isPrinterFont data members.
2559         
2560         * platform/graphics/FontPlatformData.h:
2561         (WebCore::FontPlatformData::FontPlatformData):
2562         (FontPlatformData):
2563         Default value of m_isCompositeFontReference and m_isPrinterFont data members are set to false in various constructors.
2564         
2565         (WebCore::FontPlatformData::isCompositeFontReference):
2566         Newly added for Composite Font Reference type font.
2567
2568         (WebCore::FontPlatformData::isPrinterFont):
2569         Newly added for describing the NSFont parameter if is applicable.
2570
2571         (WebCore::FontPlatformData::operator==):
2572         Comparison of the additional m_isCompositeFontReference and m_isPrinterFont data members.
2573
2574         * platform/graphics/SimpleFontData.cpp:
2575         (WebCore::SimpleFontData::DerivedFontData::~DerivedFontData):
2576         Clean up the cache for component fonts of the Composite Font References.
2577
2578         * platform/graphics/SimpleFontData.h:
2579         (SimpleFontData):
2580         Added member function const SimpleFontData* getCompositeFontReferenceFontData(NSFont *key) const.
2581         
2582         (DerivedFontData):
2583         Added CFDictionary for caching the component font of Composite Font Reference.
2584
2585         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2586         (WebCore::FontPlatformData::FontPlatformData):
2587         Data members m_isCompositeFontReference and m_isPrinterFont are initialised and their values are determined in the body of the contructor.
2588
2589         (WebCore::FontPlatformData::setFont):
2590         Data members m_isCompositeFontReference and m_isPrinterFont are determined and set.
2591         
2592         * platform/graphics/mac/FontCacheMac.mm:
2593         (WebCore::FontCache::createFontPlatformData):
2594         Boolean value isUsingPrinterFont is passed in the new FontPlatformData constructor.
2595         
2596         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
2597         (WebCore::shouldUseCoreText):
2598         Added the condition for Composite Font Reference type font.
2599         
2600         (WebCore::GlyphPage::fill):
2601         In the case of Composite Font Reference, when iterate the runs, component font of Composite Font
2602         Reference is used to fill the glyph index in the GlyphPage.
2603         
2604         * platform/graphics/mac/SimpleFontDataMac.mm:
2605         (WebCore::SimpleFontData::getCompositeFontReferenceFontData):
2606         Newly added method for the component fonts correspond to the platformData, in this case, a NSFont. 
2607         This SimpleFontData is created and cached in this object and will only be deleted when the destructor
2608         if this is called.
2609         
2610 2012-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2611
2612         Support the Network Information API
2613         https://bugs.webkit.org/show_bug.cgi?id=73528
2614
2615         Reviewed by Adam Barth.
2616
2617         Network Information APIs is to provide an interface for Web Applications to access
2618         the underlying network information of device. In Web Application case, they need to know
2619         what current network interface it uses. Because, it is important to know current network
2620         information(bandwidth, metered) in mobile domain. Thus, Web Application can let user know
2621         whether current network information via this new functionality. In addition, in streaming
2622         service case, Web Application can control content resolution according to kind of network.
2623
2624         http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html
2625
2626         Tests: networkinformation/add-listener-from-callback.html
2627                networkinformation/basic-all-types-of-events.html
2628                networkinformation/basic-operation.html
2629                networkinformation/event-after-navigation.html
2630                networkinformation/multiple-frames.html
2631                networkinformation/updates.html
2632                networkinformation/window-property.html
2633
2634         * CMakeLists.txt:
2635         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp: Added.
2636         (WebCore):
2637         (WebCore::NavigatorNetworkInfoConnection::NavigatorNetworkInfoConnection):
2638         (WebCore::NavigatorNetworkInfoConnection::~NavigatorNetworkInfoConnection):
2639         (WebCore::NavigatorNetworkInfoConnection::from):
2640         (WebCore::NavigatorNetworkInfoConnection::webkitConnection):
2641         * Modules/networkinfo/NavigatorNetworkInfoConnection.h: Added.
2642         (WebCore):
2643         (NavigatorNetworkInfoConnection):
2644         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Added.
2645         * Modules/networkinfo/NetworkInfo.cpp: Added.
2646         (WebCore):
2647         (WebCore::NetworkInfo::NetworkInfo):
2648         * Modules/networkinfo/NetworkInfo.h: Added.
2649         (WebCore):
2650         (NetworkInfo):
2651         (WebCore::NetworkInfo::create):
2652         (WebCore::NetworkInfo::bandwidth):
2653         (WebCore::NetworkInfo::metered):
2654         * Modules/networkinfo/NetworkInfoClient.h: Added.
2655         (WebCore):
2656         (NetworkInfoClient):
2657         (WebCore::NetworkInfoClient::~NetworkInfoClient):
2658         * Modules/networkinfo/NetworkInfoConnection.cpp: Added.
2659         (WebCore):
2660         (WebCore::NetworkInfoConnection::create):
2661         (WebCore::NetworkInfoConnection::NetworkInfoConnection):
2662         (WebCore::NetworkInfoConnection::~NetworkInfoConnection):
2663         (WebCore::NetworkInfoConnection::bandwidth):
2664         (WebCore::NetworkInfoConnection::metered):
2665         (WebCore::NetworkInfoConnection::didChangeNetworkInformation):
2666         (WebCore::NetworkInfoConnection::addEventListener):
2667         (WebCore::NetworkInfoConnection::removeEventListener):
2668         (WebCore::NetworkInfoConnection::eventTargetData):
2669         (WebCore::NetworkInfoConnection::ensureEventTargetData):
2670         (WebCore::NetworkInfoConnection::interfaceName):
2671         (WebCore::NetworkInfoConnection::suspend):
2672         (WebCore::NetworkInfoConnection::resume):
2673         (WebCore::NetworkInfoConnection::stop):
2674         * Modules/networkinfo/NetworkInfoConnection.h: Added.
2675         (WebCore):
2676         (NetworkInfoConnection):
2677         (WebCore::NetworkInfoConnection::scriptExecutionContext):
2678         (WebCore::NetworkInfoConnection::canSuspend):
2679         (WebCore::NetworkInfoConnection::refEventTarget):
2680         (WebCore::NetworkInfoConnection::derefEventTarget):
2681         * Modules/networkinfo/NetworkInfoConnection.idl: Added.
2682         * Modules/networkinfo/NetworkInfoController.cpp: Added.
2683         (WebCore):
2684         (WebCore::NetworkInfoController::NetworkInfoController):
2685         (WebCore::NetworkInfoController::~NetworkInfoController):
2686         (WebCore::NetworkInfoController::create):
2687         (WebCore::NetworkInfoController::addListener):
2688         (WebCore::NetworkInfoController::removeListener):
2689         (WebCore::NetworkInfoController::didChangeNetworkInformation):
2690         (WebCore::NetworkInfoController::isActive):
2691         (WebCore::NetworkInfoController::supplementName):
2692         (WebCore::provideNetworkInfoTo):
2693         * Modules/networkinfo/NetworkInfoController.h: Added.
2694         (WebCore):
2695         (NetworkInfoController):
2696         (WebCore::NetworkInfoController::client):
2697         (WebCore::NetworkInfoController::from):
2698         * dom/EventNames.h:
2699         (WebCore):
2700         * dom/EventTargetFactory.in:
2701         * testing/Internals.cpp:
2702         (WebCore::Internals::setNetworkInformation):
2703         (WebCore):
2704         * testing/Internals.h:
2705         (Internals):
2706         * testing/Internals.idl:
2707
2708 2012-04-01  Leo Yang  <leo.yang@torchmobile.com.cn>
2709
2710         [BlackBerry] Use GraphicsContext::fillPath() and strokePath instead of drawPath() in RenderThemeBlackBerry
2711         https://bugs.webkit.org/show_bug.cgi?id=81486
2712
2713         Reviewed by Rob Buis.
2714
2715         RenderThemeBlackBerry was using GraphicsContext::drawPath() that's added for BlackBerry internally.
2716         But we already have fillPath() and strokePath() in GraphicsContext. So just substitute drawPath()
2717         by them. Also fix a build issue by adding a #include line.
2718
2719         No functionalities changed, no new tests.
2720
2721         * platform/blackberry/RenderThemeBlackBerry.cpp:
2722         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField):
2723         (WebCore::RenderThemeBlackBerry::paintButton):
2724
2725 2012-04-01  Nikolas Zimmermann  <nzimmermann@rim.com>
2726
2727         Enable animVal support for SVGAnimatedEnumeration
2728         https://bugs.webkit.org/show_bug.cgi?id=82459
2729
2730         Reviewed by Dirk Schulze.
2731
2732         Enable animVal support for the last missing SVG DOM primitive: SVGAnimatedEnumeration.
2733         It's a bit more involved than the others as we have to differentiate between the various
2734         enumerations to use the correct SVGPropertyTraits<MyEnum>::fromString() code-path.
2735
2736         One SVGAnimatedEnumeration property in the SVG DOM is special: SVGAnimatedEnumeration orientType
2737         from SVGMarkerElement. SVGMarkerElement exposes both the orientType and SVGAnimatedAngle orientAngle
2738         SVG DOM properties and both get mapped to the same SVGNames::orientAttr ("orient" XML attribute).
2739         That means that any animation of the orientAttr has to update both orientType & orientAngle.
2740
2741         This is a not a new requirement, we already support attributes like 'stdDeviation' from
2742         SVGFEGaussianBlurElement, which get mapped to multiple SVG DOM objects: SVGAnimatedInteger stdDeviationX/Y.
2743         The difference is that <integer-optional-integer> or <number-optional-number> animations use the
2744         same type in the pair<xxx, xxx> (eg. both int, or both float). The 'orient' attribute needs to be
2745         mapped to pair<xxx, yyy> types. Generalize the templates in SVGAnimatedTypeAnimator to support that.
2746
2747         Example:
2748         <marker id="someMarkerElement" orient="45deg"/>
2749         <animate fill="remove" begin="1s" dur="2s" from="90deg" to="auto" attributeName="orient" xlink:href="#someMarkerElement"/>
2750
2751         at 0s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2752                someMarkerElement.orientAngle.animVal.value = 45
2753
2754                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2755                someMarkerElement.orientAngle.baseVal.value = 45
2756
2757         at 1s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2758                someMarkerElement.orientAngle.animVal.value = 90
2759
2760                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2761                someMarkerElement.orientAngle.baseVal.value = 45
2762
2763         at 2s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_AUTO
2764                someMarkerElement.orientAngle.animVal.value = 0
2765
2766                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2767                someMarkerElement.orientAngle.baseVal.value = 45
2768
2769          > 3s: someMarkerElement.orientType.animVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2770                someMarkerElement.orientAngle.animVal.value = 45
2771
2772                someMarkerElement.orientType.baseVal = SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE
2773                someMarkerElement.orientAngle.baseVal.value = 45
2774
2775         We need to map the 'orient' attribute to a pair<SVGAngle, unsigned short> type, in order
2776         to track both orientAngle & orientType at the same type. Fortunately SVGAnimatedAngle
2777         is only used in the SVG DOM for SVGMarkerElements orientAngle property. We can directly
2778         switch SVGAnimatedAngleAnimator to the new pair<SVGAngle, unsigned short> type instead
2779         of having to introduce a special SVGAnimatedAngleAndEnumerationAnimator.
2780
2781         Added tests for all SVGAnimatedEnumeration properties in the SVG DOM, including an extensive set of tests
2782         for the synchronization of the orientType / orientAngle properties, when they get animated.
2783
2784         Tests: svg/animations/animate-marker-orient-from-angle-to-angle.html
2785                svg/animations/animate-marker-orient-from-angle-to-auto.html
2786                svg/animations/animate-marker-orient-to-angle.html
2787                svg/animations/svgenum-animation-1.html
2788                svg/animations/svgenum-animation-10.html
2789                svg/animations/svgenum-animation-11.html
2790                svg/animations/svgenum-animation-12.html
2791                svg/animations/svgenum-animation-13.html
2792                svg/animations/svgenum-animation-2.html
2793                svg/animations/svgenum-animation-3.html
2794                svg/animations/svgenum-animation-4.html
2795                svg/animations/svgenum-animation-5.html
2796                svg/animations/svgenum-animation-6.html
2797                svg/animations/svgenum-animation-7.html
2798                svg/animations/svgenum-animation-8.html
2799                svg/animations/svgenum-animation-9.html
2800
2801         * CMakeLists.txt:
2802         * GNUmakefile.list.am:
2803         * Target.pri:
2804         * WebCore.gypi:
2805         * WebCore.xcodeproj/project.pbxproj:
2806         * svg/SVGAllInOne.cpp:
2807         * svg/SVGAnimateElement.cpp:
2808         (WebCore::SVGAnimateElement::determineAnimatedPropertyType):
2809         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2810         (WebCore::propertyTypesAreConsistent):
2811         (WebCore::SVGAnimateElement::applyResultsToTarget):
2812         * svg/SVGAnimatedAngle.cpp:
2813         (WebCore::SVGAnimatedAngleAnimator::constructFromString):
2814         (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
2815         (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
2816         (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
2817         (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
2818         (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
2819         (WebCore::SVGAnimatedAngleAnimator::calculateFromAndByValues):
2820         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
2821         * svg/SVGAnimatedAngle.h:
2822         (WebCore):
2823         * svg/SVGAnimatedBoolean.cpp:
2824         (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
2825         (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
2826         (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
2827         * svg/SVGAnimatedEnumeration.cpp: Added.
2828         (WebCore):
2829         (WebCore::enumerationValueForTargetAttribute):
2830         (WebCore::SVGAnimatedEnumerationAnimator::SVGAnimatedEnumerationAnimator):
2831         (WebCore::SVGAnimatedEnumerationAnimator::constructFromString):
2832         (WebCore::SVGAnimatedEnumerationAnimator::startAnimValAnimation):
2833         (WebCore::SVGAnimatedEnumerationAnimator::stopAnimValAnimation):
2834         (WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):
2835         (WebCore::SVGAnimatedEnumerationAnimator::animValWillChange):
2836         (WebCore::SVGAnimatedEnumerationAnimator::animValDidChange):
2837         (WebCore::SVGAnimatedEnumerationAnimator::calculateFromAndToValues):
2838         (WebCore::SVGAnimatedEnumerationAnimator::calculateFromAndByValues):
2839         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
2840         (WebCore::SVGAnimatedEnumerationAnimator::calculateDistance):
2841         * svg/SVGAnimatedEnumeration.h:
2842         (SVGAnimatedEnumerationAnimator):
2843         (WebCore::SVGAnimatedEnumerationAnimator::~SVGAnimatedEnumerationAnimator):
2844         (WebCore):
2845         * svg/SVGAnimatedInteger.cpp:
2846         (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
2847         (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
2848         (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
2849         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
2850         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
2851         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
2852         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
2853         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
2854         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
2855         * svg/SVGAnimatedLength.cpp:
2856         (WebCore::SVGAnimatedLengthAnimator::startAnimValAnimation):
2857         (WebCore::SVGAnimatedLengthAnimator::stopAnimValAnimation):
2858         (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
2859         * svg/SVGAnimatedLengthList.cpp:
2860         (WebCore::SVGAnimatedLengthListAnimator::startAnimValAnimation):
2861         (WebCore::SVGAnimatedLengthListAnimator::stopAnimValAnimation):
2862         (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
2863         * svg/SVGAnimatedNumber.cpp:
2864         (WebCore::SVGAnimatedNumberAnimator::startAnimValAnimation):
2865         (WebCore::SVGAnimatedNumberAnimator::stopAnimValAnimation):
2866         (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
2867         * svg/SVGAnimatedNumberList.cpp:
2868         (WebCore::SVGAnimatedNumberListAnimator::startAnimValAnimation):
2869         (WebCore::SVGAnimatedNumberListAnimator::stopAnimValAnimation):
2870         (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
2871         * svg/SVGAnimatedNumberOptionalNumber.cpp:
2872         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::startAnimValAnimation):
2873         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::stopAnimValAnimation):
2874         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
2875         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValWillChange):
2876         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::animValDidChange):
2877         * svg/SVGAnimatedPreserveAspectRatio.cpp:
2878         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
2879         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
2880         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
2881         * svg/SVGAnimatedRect.cpp:
2882         (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
2883         (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
2884         (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
2885         * svg/SVGAnimatedString.cpp:
2886         (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
2887         (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
2888         (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
2889         * svg/SVGAnimatedTransformList.cpp:
2890         (WebCore::SVGAnimatedTransformListAnimator::startAnimValAnimation):
2891         (WebCore::SVGAnimatedTransformListAnimator::stopAnimValAnimation):
2892         (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
2893         * svg/SVGAnimatedType.cpp:
2894         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2895         (WebCore::SVGAnimatedType::createAngleAndEnumeration):
2896         (WebCore::SVGAnimatedType::createEnumeration):
2897         (WebCore):
2898         (WebCore::SVGAnimatedType::angleAndEnumeration):
2899         (WebCore::SVGAnimatedType::enumeration):
2900         (WebCore::SVGAnimatedType::valueAsString):
2901         (WebCore::SVGAnimatedType::setValueAsString):
2902         (WebCore::SVGAnimatedType::supportsAnimVal):
2903         * svg/SVGAnimatedType.h:
2904         (SVGAnimatedType):
2905         * svg/SVGAnimatedTypeAnimator.h:
2906         (WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
2907         (SVGAnimatedTypeAnimator):
2908         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue):
2909         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
2910         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForType):
2911         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForType):
2912         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForType):
2913         (WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
2914         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
2915         (WebCore::SVGAnimatedTypeAnimator::stopAnimValAnimationForTypes):
2916         (WebCore::SVGAnimatedTypeAnimator::animValDidChangeForTypes):
2917         (WebCore::SVGAnimatedTypeAnimator::animValWillChangeForTypes):
2918         (WebCore::SVGAnimatedTypeAnimator::castAnimatedPropertyToActualType):
2919         (WebCore::SVGAnimatedTypeAnimator::executeAction):
2920         * svg/SVGAnimatorFactory.h:
2921         (WebCore::SVGAnimatorFactory::create):
2922         * svg/SVGMarkerElement.cpp:
2923         (WebCore):
2924         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2925         (SVGAnimatedListPropertyTearOff):
2926         * svg/properties/SVGAnimatedPropertyTearOff.h:
2927         (SVGAnimatedPropertyTearOff):
2928         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
2929         (SVGAnimatedStaticPropertyTearOff):
2930
2931 2012-04-01  Hao Zheng  <zhenghao@chromium.org>
2932
2933         [chromium] Do not generate custom signature for static methods.
2934         https://bugs.webkit.org/show_bug.cgi?id=79222
2935
2936         Reviewed by Kentaro Hara.
2937
2938         No new tests. Covered by existing tests when MEDIA_STREAM is disabled.
2939
2940         * bindings/scripts/CodeGeneratorV8.pm:
2941         (RequiresCustomSignature):
2942
2943 2012-03-31  Steve Falkenburg  <sfalken@apple.com>
2944
2945         Windows build fix.
2946
2947         * WebCore.vcproj/WebCore.make:
2948
2949 2012-03-31  Philip Rogers  <pdr@google.com>
2950
2951         Fix complex strokes on CG platform
2952         https://bugs.webkit.org/show_bug.cgi?id=80423
2953
2954         Reviewed by Eric Seidel.
2955
2956         This change fixes a mistake in r112667 where the CG platform did not properly handle
2957         complex strokes. The mistake was to check for complex fills instead of complex strokes,
2958         which resulted in all complex strokes rendering as black.
2959
2960         No new tests, this change is covered by the following existing tests that were regressed:
2961         1) svg/custom/gradient-stroke-width.svg
2962         2) svg/custom/transform-with-shadow-and-gradient.svg
2963
2964         * platform/graphics/cg/GraphicsContextCG.cpp:
2965         (WebCore::GraphicsContext::platformStrokeEllipse):
2966
2967 2012-03-31  Jochen Eisinger  <jochen@chromium.org>
2968
2969         Don't insert linebreaks into text input fields.
2970         https://bugs.webkit.org/show_bug.cgi?id=81660
2971
2972         Reviewed by Ryosuke Niwa.
2973
2974         Test: fast/forms/textfield-no-linebreak.html
2975
2976         * editing/TypingCommand.cpp:
2977         (canAppendNewLineFeed): Only assume that a linefeed can be appended, if
2978         after the BeforeTextInserted event the event text is still a newline.
2979
2980 2012-03-31  Nikolas Zimmermann  <nzimmermann@rim.com>
2981
2982         LayoutTests: [r112391] Pixel test failure of svg/custom/preserve-aspect-ratio-syntax.svg
2983         https://bugs.webkit.org/show_bug.cgi?id=82469
2984
2985         Fix regression from r112391. The test excerising this code path is skipped on Lion, due to a libxml2 bug.
2986         I didn't notice I broke preserveAspectRatio parsing for many corner cases, revert to old logic.
2987
2988         * svg/SVGPreserveAspectRatio.cpp:
2989         (WebCore::SVGPreserveAspectRatio::parse):
2990
2991 2012-03-31  Antti Koivisto  <antti@apple.com>
2992
2993         CSSStyleRules should own their CSSStyleDeclarations 
2994         https://bugs.webkit.org/show_bug.cgi?id=82832
2995
2996         Reviewed by Andreas Kling.
2997
2998         Move the rule properties CSSOM wrapper ownership from the StylePropertySet to the rule itself.
2999         This is preparation for bug 82728 (Split remaining CSSRules into internal and CSSOM types). This
3000         temporarily grows the size of CSSStyleRule by a pointer (82728 will give the memory back and more)
3001
3002         * css/CSSFontFaceRule.cpp:
3003         (WebCore::CSSFontFaceRule::~CSSFontFaceRule):
3004         (WebCore):
3005         (WebCore::CSSFontFaceRule::style):
3006         * css/CSSFontFaceRule.h:
3007         (WebCore):
3008         (CSSFontFaceRule):
3009         * css/CSSPageRule.cpp:
3010         (WebCore::CSSPageRule::~CSSPageRule):
3011         (WebCore):
3012         (WebCore::CSSPageRule::style):
3013         * css/CSSPageRule.h:
3014         (WebCore):
3015         (CSSPageRule):
3016         * css/CSSStyleRule.cpp:
3017         (WebCore::CSSStyleRule::~CSSStyleRule):
3018         (WebCore::CSSStyleRule::style):
3019         * css/CSSStyleRule.h:
3020         (WebCore):
3021         (CSSStyleRule):
3022         
3023             Make the rules own the property CSSOM wrapper.
3024         
3025         * css/CSSStyleSelector.cpp:
3026         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3027         * css/PropertySetCSSStyleDeclaration.cpp:
3028         (WebCore::StyleRuleCSSStyleDeclaration::ref):
3029         (WebCore):
3030         (WebCore::StyleRuleCSSStyleDeclaration::deref):
3031         (WebCore::StyleRuleCSSStyleDeclaration::setNeedsStyleRecalc):
3032         (WebCore::StyleRuleCSSStyleDeclaration::contextStyleSheet):
3033         (WebCore::InlineCSSStyleDeclaration::ref):
3034         (WebCore::InlineCSSStyleDeclaration::deref):
3035         * css/PropertySetCSSStyleDeclaration.h:
3036         (WebCore::PropertySetCSSStyleDeclaration::parentElement):
3037         (PropertySetCSSStyleDeclaration):
3038         (WebCore::StyleRuleCSSStyleDeclaration::create):
3039         (StyleRuleCSSStyleDeclaration):
3040         (WebCore::StyleRuleCSSStyleDeclaration::clearParentRule):
3041         (WebCore::StyleRuleCSSStyleDeclaration::StyleRuleCSSStyleDeclaration):
3042         (WebCore::StyleRuleCSSStyleDeclaration::parentRule):
3043         
3044             - Rename RuleCSSStyleDeclaration -> StyleRuleCSSStyleDeclaration
3045             - Make StyleRuleCSSStyleDeclaration use regular refcounting since
3046               it is no longer owned by the wrapped object.
3047             - Rename hasCSSOMWrapper() -> isMutable(), m_hasCSSOMWrapper -> m_ownsCSSOMWrapper
3048               to match the purpose.
3049         
3050         (InlineCSSStyleDeclaration):
3051         * css/StylePropertySet.cpp:
3052         (WebCore::StylePropertySet::StylePropertySet):
3053         (WebCore::StylePropertySet::~StylePropertySet):
3054         (WebCore::StylePropertySet::ensureCSSStyleDeclaration):
3055         (WebCore):
3056         (WebCore::StylePropertySet::ensureInlineCSSStyleDeclaration):
3057         (WebCore::StylePropertySet::clearParentElement):
3058         * css/StylePropertySet.h:
3059         (StylePropertySet):
3060         (WebCore::StylePropertySet::isMutable):
3061         * dom/ElementAttributeData.cpp:
3062         (WebCore::ElementAttributeData::ensureMutableInlineStyle):
3063         (WebCore::ElementAttributeData::updateInlineStyleAvoidingMutation):
3064
3065 2012-03-31  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
3066
3067         [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
3068         https://bugs.webkit.org/show_bug.cgi?id=80135
3069
3070         Reviewed by Rob Buis.
3071
3072         RIM PR: 145660
3073         Fixed a regression introduced by r111810, we should cancel the new
3074         request when user press cancel button in http authentication challenge
3075         dialog, and we should also allow sending empty username and password
3076         with the request.
3077         Also removed redundant codes which checked the existence of the
3078         FrameLoaderClient pointer, as we've already moved authenticationChallenge()
3079         out of class FrameLoaderClient, it is not needed.
3080
3081         Manual test added. Testing http authentication dialog relies on user interaction.
3082
3083         * platform/network/blackberry/NetworkJob.cpp:
3084         (WebCore::NetworkJob::sendRequestWithCredentials):
3085
3086 2012-03-31  Charles Wei  <charles.wei@torchmobile.com.cn>
3087
3088         [BlackBerry] Upstream BlackBerry change to PlatformTouchEvent and PlatformTouchPoint
3089         https://bugs.webkit.org/show_bug.cgi?id=82828
3090
3091         Reviewed by Rob Buis.
3092
3093         No new tests, just upstream BlackBerry-specific change to
3094         PlatformTouchEvent and PlatformTouchPoint, to make it build
3095         for BlackBerry.
3096
3097         * platform/PlatformTouchEvent.h:
3098         (Platform):
3099         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
3100         (PlatformTouchEvent):
3101         (WebCore::PlatformTouchEvent::rotation):
3102         (WebCore::PlatformTouchEvent::scale):
3103         (WebCore::PlatformTouchEvent::doubleTap):
3104         (WebCore::PlatformTouchEvent::touchHold):
3105         * platform/PlatformTouchPoint.h:
3106         (Platform):
3107         (PlatformTouchPoint):
3108         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
3109         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
3110
3111 2012-03-31  Jason Liu  <jason.liu@torchmobile.com.cn>
3112
3113         [BlackBerry] Refactor : NetworkJob::handleNotifyHeaderReceived.
3114         https://bugs.webkit.org/show_bug.cgi?id=82825
3115
3116         We should use "else if" to decrease string's compare.
3117
3118         Reviewed by Rob Buis.
3119
3120         No new tests. Refactor.
3121
3122         * platform/network/blackberry/NetworkJob.cpp:
3123         (WebCore::NetworkJob::handleNotifyHeaderReceived):
3124
3125 2012-03-31  Charles Wei  <charles.wei@torchmobile.com.cn>
3126
3127         [BlackBerry] Upstream local change of PlatformKeyboardEventBlackBerry.cpp
3128         https://bugs.webkit.org/show_bug.cgi?id=82721
3129
3130         Reviewed by Rob Buis.
3131
3132         No new tests, just upstreaming the local change to make the upstreaming
3133         build for BlackBerry.
3134
3135         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
3136         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
3137
3138 2012-03-31  Abhishek Arya  <inferno@chromium.org>
3139
3140         Crash in HTMLFieldSetElement::disabledAttributeChanged.
3141         https://bugs.webkit.org/show_bug.cgi?id=82814
3142
3143         Reviewed by Kent Tamura.
3144
3145         Test: fast/forms/fieldset/fieldset-crash.html
3146
3147         * html/HTMLFieldSetElement.cpp:
3148         (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
3149
3150 2012-03-29  Adam Barth  <abarth@webkit.org>
3151
3152         [Chromium] Delete WebKit/chromium/bridge
3153         https://bugs.webkit.org/show_bug.cgi?id=82677
3154
3155         Reviewed by James Robinson.
3156
3157         These files are just moved from the WebKit layer with their include
3158         directives adjusted.
3159
3160         * WebCore.gypi:
3161         * platform/chromium/support/WebICECandidateDescriptor.cpp: Copied from Source/WebKit/chromium/src/WebICECandidateDescriptor.cpp.
3162         * platform/chromium/support/WebICEOptions.cpp: Copied from Source/WebKit/chromium/src/WebICEOptions.cpp.
3163         * platform/chromium/support/WebMediaHints.cpp: Copied from Source/WebKit/chromium/src/WebMediaHints.cpp.
3164         * platform/chromium/support/WebMediaStreamComponent.cpp: Copied from Source/WebKit/chromium/src/WebMediaStreamComponent.cpp.
3165         * platform/chromium/support/WebMediaStreamDescriptor.cpp: Copied from Source/WebKit/chromium/src/WebMediaStreamDescriptor.cpp.
3166         * platform/chromium/support/WebMediaStreamSource.cpp: Copied from Source/WebKit/chromium/src/WebMediaStreamSource.cpp.
3167         * platform/chromium/support/WebMediaStreamSourcesRequest.cpp: Copied from Source/WebKit/chromium/src/WebMediaStreamSourcesRequest.cpp.
3168         * platform/mediastream/chromium/DeprecatedPeerConnectionHandler.cpp: Copied from Source/WebKit/chromium/bridge/DeprecatedPeerConnectionHandler.cpp.
3169         * platform/mediastream/chromium/DeprecatedPeerConnectionHandlerInternal.cpp: Copied from Source/WebKit/chromium/bridge/DeprecatedPeerConnectionHandlerInternal.cpp.
3170         (WebCore::DeprecatedPeerConnectionHandlerInternal::DeprecatedPeerConnectionHandlerInternal):
3171         * platform/mediastream/chromium/DeprecatedPeerConnectionHandlerInternal.h: Copied from Source/WebKit/chromium/bridge/DeprecatedPeerConnectionHandlerInternal.h.
3172         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp: Copied from Source/WebKit/chromium/bridge/MediaStreamCenter.cpp.
3173         * platform/mediastream/chromium/MediaStreamCenterInternal.cpp: Copied from Source/WebKit/chromium/bridge/MediaStreamCenterInternal.cpp.
3174         (WebCore::MediaStreamCenterInternal::MediaStreamCenterInternal):
3175         * platform/mediastream/chromium/MediaStreamCenterInternal.h: Copied from Source/WebKit/chromium/bridge/MediaStreamCenterInternal.h.
3176         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Copied from Source/WebKit/chromium/bridge/PeerConnection00Handler.cpp.
3177         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Copied from Source/WebKit/chromium/bridge/PeerConnection00HandlerInternal.cpp.
3178         (WebCore::PeerConnection00HandlerInternal::PeerConnection00HandlerInternal):
3179         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Copied from Source/WebKit/chromium/bridge/PeerConnection00HandlerInternal.h.
3180
3181 2012-03-30  Adam Barth  <abarth@webkit.org>
3182
3183         [Chromium] Move ResourceHandle to WebCore/platform/network/chromium
3184         https://bugs.webkit.org/show_bug.cgi?id=82657
3185
3186         Reviewed by James Robinson.
3187
3188         We finally arive at our destination. This patch actually moves
3189         WebCore::ResourceHandle from Source/WebKit/chromium/src to
3190         Source/WebCore/network/chromium, matching its location in other ports.
3191         To make this happen, we also need to move WrappedResourceRequest and
3192         WrappedResourceResponse.
3193
3194         This patch is the last patch from
3195         https://github.com/abarth/webkit/compare/master...webcore-platform
3196
3197         * WebCore.gypi:
3198         * platform/chromium/support/WrappedResourceRequest.h: Copied from Source/WebCore/platform/chromium/support/WrappedResourceRequest.h.
3199         * platform/chromium/support/WrappedResourceResponse.h: Copied from Source/WebCore/platform/chromium/support/WrappedResourceResponse.h.
3200         * platform/network/chromium/ResourceHandle.cpp: Copied from Source/WebCore/platform/network/chromium/ResourceHandle.cpp.
3201         * platform/network/chromium/ResourceHandleInternal.h: Copied from Source/WebCore/platform/network/chromium/ResourceHandleInternal.h.
3202
3203 2012-03-30  Ryosuke Niwa  <rniwa@webkit.org>
3204
3205         Add a compile assert for the size of RenderText
3206         https://bugs.webkit.org/show_bug.cgi?id=82780
3207
3208         Reviewed by Dirk Pranke.
3209
3210         Added an assertion. Also moved m_maxWidth, m_beginMinWidth, and m_endMinWidth
3211         to right beneath m_minWidth so that gcc on GTK+ can pack floats properly.
3212
3213         * rendering/RenderText.cpp:
3214         (SameSizeAsRenderText):
3215         (WebCore):
3216         * rendering/RenderText.h:
3217         (RenderText):
3218
3219 2012-03-30  Ryosuke Niwa  <rniwa@webkit.org>
3220
3221         Add a compile assert for the size of ScrollableArea
3222         https://bugs.webkit.org/show_bug.cgi?id=82822
3223
3224         Reviewed by Dirk Pranke.
3225
3226         Added the assertion. Also made m_scrollOriginChanged a bitfield so that it can be packed nicely.
3227
3228         * platform/ScrollableArea.cpp:
3229         (SameSizeAsScrollableArea):
3230         (WebCore):
3231         * platform/ScrollableArea.h:
3232         (ScrollableArea):
3233
3234 2012-03-30  Dan Bernstein  <mitz@apple.com>
3235
3236         Reverted r112767, because it caused many vertical text tests to fail.
3237
3238         * WebCore.exp.in:
3239         * platform/graphics/FontPlatformData.cpp:
3240         (WebCore::FontPlatformData::FontPlatformData):
3241         (WebCore::FontPlatformData::operator=):
3242         * platform/graphics/FontPlatformData.h:
3243         (WebCore::FontPlatformData::FontPlatformData):
3244         (FontPlatformData):
3245         (WebCore::FontPlatformData::isColorBitmapFont):
3246         (WebCore::FontPlatformData::hash):
3247         (WebCore::FontPlatformData::operator==):
3248         * platform/graphics/SimpleFontData.cpp:
3249         (WebCore::SimpleFontData::DerivedFontData::~DerivedFontData):
3250         * platform/graphics/SimpleFontData.h:
3251         (SimpleFontData):
3252         (DerivedFontData):
3253         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
3254         (WebCore::FontPlatformData::FontPlatformData):
3255         (WebCore::FontPlatformData::setFont):
3256         * platform/graphics/mac/FontCacheMac.mm:
3257         (WebCore::FontCache::createFontPlatformData):
3258         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
3259         (WebCore::shouldUseCoreText):
3260         (WebCore::GlyphPage::fill):
3261         * platform/graphics/mac/SimpleFontDataMac.mm:
3262         (WebCore):
3263
3264 2012-03-30  Dan Bernstein  <mitz@apple.com>
3265
3266         Tried to fix the Chromium Mac build after r112767.
3267
3268         * platform/graphics/SimpleFontData.h:
3269         (SimpleFontData):
3270         (DerivedFontData):
3271
3272 2012-03-30  Dirk Schulze  <krit@webkit.org>
3273
3274         Colors seem to be parsed using HTML quirks in SVG attributes
3275         https://bugs.webkit.org/show_bug.cgi?id=46112
3276
3277         Reviewed by Eric Seidel.
3278         
3279         Finally move to SVGAttributeMode on parsing SVG presentation attributes. SVG attributes are
3280         mainly parsed in the strict mode, which affects strict parsing of colors and no spaces between
3281         values and units. Unit less values are still allowed.
3282
3283         Tests: svg/css/svg-attribute-length-parsing.html
3284                svg/css/svg-attribute-parser-mode.html
3285
3286         * css/CSSGrammar.y: No quirks mode for SVG.
3287         * css/CSSParser.h:
3288         (WebCore::CSSParser::inStrictMode): SVGAttributeMode also implies strict parsing.
3289         (WebCore::CSSParser::inQuirksMode): Remove SVGAttributeMode from quirks mode.
3290         * css/CSSParserMode.h:
3291         (isStrictParserMode): Ditto.
3292         * dom/StyledElement.cpp:
3293         (WebCore::StyledElement::updateAttributeStyle):
3294         * svg/SVGElementRareData.h:
3295         (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
3296         * svg/SVGFontFaceElement.cpp:
3297         (WebCore::SVGFontFaceElement::SVGFontFaceElement):
3298         * svg/SVGStyledElement.cpp: Switch to SVGAttributeMode if we parse a SVG presentation attribute.
3299         (WebCore::SVGStyledElement::getPresentationAttribute):
3300
3301 2012-03-30  Tony Tseung  <tseung@apple.com>
3302
3303         Composite Font References is a new established standard (ISO/IEC 14496-28:2012) for specifying
3304         composite fonts from existing physical fonts.
3305         <rdar://problem/10717370>
3306         https://bugs.webkit.org/show_bug.cgi?id=82810
3307         
3308         CoreText have already the features enabled, here we added this to WebKit text layout and rendering.
3309         A member function getCompositeFontReferenceFontData is added to the SimpleFontData class for the component font
3310         correspond to the platformData, in this case, a NSFont. This is used when CoreText layout had resulted
3311         a component of the Composite Font Reference and its corresponding SimpleFontData object is then cached
3312         in the SimpleFontData object of the posting font (Composite Font Reference).
3313         
3314         When glyphs are encoded to form the GlyphPage for rendering, the Composite Font Reference is handled throught
3315         the CoreText layout path (using CTLine), here the resulting glyph is associated with a font which could
3316         be not the original font request. In this case, these are the component fonts of the Composite Font
3317         Reference. This is then identified and then added to the GlyphPage appropriately.
3318         
3319         To support this feature, a member function isCompositeFontReference is added to FontPlatformData to
3320         indicate a font is a Composite Font Reference. Also in order to pass the component font correctly a boolean
3321         isPrinterFont is added to one the FontPlatformData constructors to describe the NSFont.
3322
3323         Reviewed by Dan Bernstein.
3324
3325         Added test LayoutTests/fast/text/international/text-spliced-font.html
3326
3327         * WebCore.exp.in:
3328         Replaced obsolete FontPlatformData constructor entry.
3329
3330         * platform/graphics/FontPlatformData.cpp:
3331         (WebCore::FontPlatformData::FontPlatformData):
3332         Copy of the additional m_isCompositeFontReference and m_isPrinterFont data members.
3333         
3334         (WebCore::FontPlatformData::operator=):
3335         Assignment of the additional m_isCompositeFontReference and m_isPrinterFont data members.
3336         
3337         * platform/graphics/FontPlatformData.h:
3338         (WebCore::FontPlatformData::FontPlatformData):
3339         (FontPlatformData):
3340         Default value of m_isCompositeFontReference and m_isPrinterFont data members are set to false in various constructors.
3341         
3342         (WebCore::FontPlatformData::isCompositeFontReference):
3343         Newly added for Composite Font Reference type font.
3344
3345         (WebCore::FontPlatformData::isPrinterFont):
3346         Newly added for describing the NSFont parameter if is applicable.
3347
3348         (WebCore::FontPlatformData::operator==):
3349         Comparison of the additional m_isCompositeFontReference and m_isPrinterFont data members.
3350
3351         * platform/graphics/SimpleFontData.cpp:
3352         (WebCore::SimpleFontData::DerivedFontData::~DerivedFontData):
3353         Clean up the cache for component fonts of the Composite Font References.
3354
3355         * platform/graphics/SimpleFontData.h:
3356         (SimpleFontData):
3357         Added member function const SimpleFontData* getCompositeFontReferenceFontData(NSFont *key) const.
3358         
3359         (DerivedFontData):
3360         Added CFDictionary for caching the component font of Composite Font Reference.
3361
3362         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
3363         (WebCore::FontPlatformData::FontPlatformData):
3364         Data members m_isCompositeFontReference and m_isPrinterFont are initialised and their values are determined in the body of the contructor.
3365
3366         (WebCore::FontPlatformData::setFont):
3367         Data members m_isCompositeFontReference and m_isPrinterFont are determined and set.
3368         
3369         * platform/graphics/mac/FontCacheMac.mm:
3370         (WebCore::FontCache::createFontPlatformData):
3371         Boolean value isUsingPrinterFont is passed in the new FontPlatformData constructor.
3372         
3373         * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
3374         (WebCore::shouldUseCoreText):
3375         Added the condition for Composite Font Reference type font.
3376         
3377         (WebCore::GlyphPage::fill):
3378         In the case of Composite Font Reference, when iterate the runs, component font of Composite Font
3379         Reference is used to fill the glyph index in the GlyphPage.
3380         
3381         * platform/graphics/mac/SimpleFontDataMac.mm:
3382         (WebCore::SimpleFontData::getCompositeFontReferenceFontData):
3383         Newly added method for the component fonts correspond to the platformData, in this case, a NSFont. 
3384         This SimpleFontData is created and cached in this object and will only be deleted when the destructor
3385         if this is called.
3386         
3387 2012-03-30  Charles Wei  <charles.wei@torchmobile.com.cn>
3388
3389         [BlackBerry] Use KURL::protocolIsInHTTPFamily() instead KURL::protocolInHTTPFamily()
3390         https://bugs.webkit.org/show_bug.cgi?id=82707
3391
3392         Reviewed by Rob Buis.
3393
3394         No new tests, just BlackBerry build fix.
3395
3396         * platform/network/blackberry/NetworkManager.cpp:
3397         (WebCore::NetworkManager::startJob):
3398
3399 2012-03-30  Eric Seidel  <eric@webkit.org>
3400         styleForElement() should use enums instead of bools so we can all understand what it's doing
3401         https://bugs.webkit.org/show_bug.cgi?id=82807
3402
3403         Reviewed by Adam Barth.
3404
3405         No change in behavior, thus no tests.
3406
3407         Mostly this is just replacing true/false with the correct new enum value