bf06ab02234d4f69088da7f2e9901b20b2935fd1
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-14  Vsevolod Vlasov  <vsevik@chromium.org>
2
3         Web Inspector: Add snippets tab to scripts navigator.
4         https://bugs.webkit.org/show_bug.cgi?id=81018
5
6         Reviewed by Pavel Feldman.
7
8         * English.lproj/localizedStrings.js:
9         * inspector/front-end/ScriptsNavigator.js:
10         (WebInspector.ScriptsNavigator):
11         (WebInspector.ScriptsNavigator.prototype.get defaultFocusedElement):
12         (WebInspector.ScriptsNavigator.prototype.focus):
13         (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
14         (WebInspector.ScriptsNavigator.prototype.reset):
15         (WebInspector.ScriptsNavigator.prototype._getOrCreateFolderTreeElement):
16         (WebInspector.ScriptsNavigator.prototype._createFolderTreeElement):
17         (WebInspector.ScriptsNavigator.prototype._getOrCreateSnippetEvaluationsFolderTreeElement):
18         (WebInspector.ScriptsNavigator.prototype._scriptFolderIdentifier):
19         (WebInspector.NavigatorTreeOutline):
20         * inspector/front-end/ScriptsPanel.js:
21         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
22         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
23         * inspector/front-end/SnippetsModel.js:
24
25 2012-03-14  Pavel Feldman  <pfeldman@chromium.org>
26
27         Web Inspector: Copy on the Console gives a mangled result.
28         https://bugs.webkit.org/show_bug.cgi?id=81091
29
30         Reviewed by Vsevolod Vlasov.
31
32         * inspector/front-end/ConsoleMessage.js:
33         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
34         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
35
36 2012-03-14  Nikolas Zimmermann  <nzimmermann@rim.com>
37
38         External <use> xlink:href references do not work
39         https://bugs.webkit.org/show_bug.cgi?id=12499
40
41         Reviewed by Zoltan Herczeg.
42
43         Follow-up fix after r110676.
44         Assertions are firing due last minute changes in isExternalURIReference.
45
46         Fix detecting local resources properly, when the given iri contains a /complex/path.
47         Use document->completeURL() instead, and compare with the document->url() to decide
48         if its a local reference or not.
49
50         If an external document load fails with an error (eg. file missing) don't assert
51         in debug builds, instead handle it gracefully.
52
53         I decided to clean the code up as well, to make it more safe & obvious.
54
55         Test: svg/custom/use-external-crash.svg
56
57         * svg/SVGURIReference.cpp:
58         (WebCore::SVGURIReference::targetElementFromIRIString):
59         * svg/SVGURIReference.h:
60         (WebCore::SVGURIReference::isExternalURIReference):
61         * svg/SVGUseElement.cpp:
62         (WebCore::SVGUseElement::externalDocument):
63         (WebCore::SVGUseElement::buildPendingResource):
64
65 2012-03-14  Lars Knudsen  <lars.knudsen@nokia.com>
66
67         3D transformed surfaces with z>0 gets cropped
68         https://bugs.webkit.org/show_bug.cgi?id=81009
69
70         Reviewed by Noam Rosenthal.
71
72         The scissor clipping in TextureMapperGL didn't take 3D transforms 
73         into account when calculating the clipping region.
74         Now, it will bail out early if the transform is not affine.
75
76         No new tests. Tested by current compositing layout tests.
77
78         * platform/graphics/texmap/TextureMapperGL.cpp:
79         (WebCore::TextureMapperGL::beginScissorClip):
80
81 2012-03-14  Hajime Morrita  <morrita@chromium.org>
82
83         Unreviewed build fix.
84
85         * html/track/TextTrackList.cpp:
86         (TextTrackList::append):
87         (TextTrackList::remove):
88         (TextTrackList::owner): Changed return type from HTMLMediaElement* to Node* and uninlined.
89         * html/track/TextTrackList.h:
90         (TextTrackList):
91
92 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
93
94         Web Inspector: [InspectorIndexedDB] Remote object should be released when data view is removed/updated.
95         https://bugs.webkit.org/show_bug.cgi?id=81022
96
97         Reviewed by Pavel Feldman.
98
99         * inspector/front-end/IndexedDBViews.js:
100         (WebInspector.IDBDataView):
101         (WebInspector.IDBDataView.prototype._updateData.callback):
102         (WebInspector.IDBDataView.prototype._updateData):
103         (WebInspector.IDBDataView.prototype.get statusBarItems):
104         (WebInspector.IDBDataView.prototype.clear):
105         * inspector/front-end/ResourcesPanel.js:
106         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
107         (WebInspector.IDBDatabaseTreeElement.prototype.update):
108         (WebInspector.IDBDatabaseTreeElement.prototype.onselect):
109         (WebInspector.IDBDatabaseTreeElement.prototype._objectStoreRemoved):
110         (WebInspector.IDBDatabaseTreeElement.prototype.clear):
111         (WebInspector.IDBObjectStoreTreeElement.prototype.update):
112         (WebInspector.IDBObjectStoreTreeElement.prototype.onselect):
113         (WebInspector.IDBObjectStoreTreeElement.prototype._indexRemoved):
114         (WebInspector.IDBObjectStoreTreeElement.prototype.clear):
115         (WebInspector.IDBIndexTreeElement.prototype.onselect):
116         (WebInspector.IDBIndexTreeElement.prototype.clear):
117
118 2012-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
119
120         Web Inspector: Introduce SnippetsScriptMapping.
121         https://bugs.webkit.org/show_bug.cgi?id=80890
122
123         Reviewed by Pavel Feldman.
124
125         * inspector/front-end/ScriptMapping.js:
126         (WebInspector.MainScriptMapping):
127         (WebInspector.MainScriptMapping.prototype.addScript):
128         (WebInspector.MainScriptMapping.prototype._mappingForScript):
129         * inspector/front-end/SnippetsModel.js:
130         (WebInspector.SnippetsModel.prototype.snippetForId):
131         (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
132         (WebInspector.SnippetsScriptMapping):
133         (WebInspector.SnippetsScriptMapping.prototype.uiSourceCodeList):
134         (WebInspector.SnippetsScriptMapping.prototype.addScript):
135         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
136         (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript.get if):
137         (WebInspector.SnippetsScriptMapping.prototype._releaseSnippetScript):
138         (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted.get this):
139         (WebInspector.SnippetsScriptMapping.prototype._snippetDeleted):
140         (WebInspector.SnippetsScriptMapping.prototype.reset):
141         (WebInspector.SnippetContentProvider):
142
143 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
144
145         Unreviewed, rolling out r110673.
146         http://trac.webkit.org/changeset/110673
147         https://bugs.webkit.org/show_bug.cgi?id=81090
148
149         "Qt minimal build broken" (Requested by yurys on #webkit).
150
151         * inspector/CodeGeneratorInspector.py:
152         (CommandReturnPassModel.ByPointer.get_set_return_condition):
153         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
154         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
155         (Generator.process_event):
156         (Generator.process_command):
157         * inspector/ContentSearchUtils.cpp:
158         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
159         (WebCore::ContentSearchUtils::searchInTextByLines):
160         * inspector/ContentSearchUtils.h:
161         (ContentSearchUtils):
162         * inspector/InjectedScript.cpp:
163         (WebCore::InjectedScript::evaluate):
164         (WebCore::InjectedScript::callFunctionOn):
165         (WebCore::InjectedScript::evaluateOnCallFrame):
166         (WebCore::InjectedScript::makeEvalCall):
167         * inspector/InjectedScript.h:
168         (InjectedScript):
169         * inspector/InspectorDOMDebuggerAgent.cpp:
170         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
171         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
172         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
173         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
174         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
175         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
176         * inspector/InspectorDebuggerAgent.cpp:
177         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
178         (WebCore::InspectorDebuggerAgent::setBreakpoint):
179         (WebCore::InspectorDebuggerAgent::searchInContent):
180         (WebCore::InspectorDebuggerAgent::setScriptSource):
181         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
182         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
183         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
184         (WebCore::InspectorDebuggerAgent::didPause):
185         (WebCore::InspectorDebuggerAgent::breakProgram):
186         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
187         * inspector/InspectorDebuggerAgent.h:
188         (InspectorDebuggerAgent):
189         * inspector/InspectorPageAgent.cpp:
190         (WebCore::buildObjectForCookie):
191         (WebCore::buildArrayForCookies):
192         (WebCore::InspectorPageAgent::getCookies):
193         (WebCore::InspectorPageAgent::getResourceTree):
194         (WebCore::InspectorPageAgent::searchInResource):
195         (WebCore::InspectorPageAgent::searchInResources):
196         (WebCore::InspectorPageAgent::buildObjectForFrame):
197         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
198         * inspector/InspectorPageAgent.h:
199         * inspector/InspectorRuntimeAgent.cpp:
200         (WebCore::InspectorRuntimeAgent::evaluate):
201         (WebCore::InspectorRuntimeAgent::callFunctionOn):
202
203 2012-03-14  Renata Hodovan  <reni@webkit.org>
204
205         External <use> xlink:href references do not work
206         https://bugs.webkit.org/show_bug.cgi?id=12499
207
208         Reviewed by Nikolas Zimmermann.
209
210         This is a follow-up patch after r108785.
211         In this patch we bind the previously introduced CachedSVGDocument class
212         into the caching mechanism of SVGUseElement. The mode how external resources
213         are handled is similar to the processing of internal ones. We build the instance
214         and shadow tree the same way but we have to keep in mind that the requested resources
215         maybe not loaded yet. We can check it with cachedDocumentIsStillLoading() function.
216
217         SVGURIReference::targetElementFromIRIString() also need to be extended. The baseURI
218         computation needs to take the referenced documents URL into account, instead of the current documents.
219
220         The patch affects a lot of tests which have external resources especially in svg/batik. Because
221         of the size of that test refactor they will be commited in a follow-up patch.
222
223         Tests: svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t.svg
224                svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t.svg
225                svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t.svg
226                svg/custom/use-extern-href.svg
227                svg/custom/use-referencing-an-image-expected.svg
228                svg/custom/use-referencing-an-image.svg
229                svg/custom/use-referencing-indirectly-itself-expected.svg
230                svg/custom/use-referencing-indirectly-itself.svg
231                svg/custom/use-referencing-itself-expected.svg
232                svg/custom/use-referencing-itself.svg
233                svg/dynamic-updates/SVGUseElement-dom-href1-attr.html
234                svg/dynamic-updates/SVGUseElement-dom-href2-attr.html
235                svg/dynamic-updates/SVGUseElement-svgdom-href1-prop.html
236                svg/dynamic-updates/SVGUseElement-svgdom-href2-prop.html
237
238         * loader/cache/CachedResourceLoader.cpp:
239         (WebCore):
240         (WebCore::CachedResourceLoader::requestSVGDocument):
241         * loader/cache/CachedResourceLoader.h:
242         (WebCore):
243         (CachedResourceLoader):
244         * page/ContentSecurityPolicy.h:
245         * platform/KURL.cpp:
246         (WebCore::equalIgnoringFragmentIdentifier):
247         * platform/network/chromium/ResourceRequest.h:
248         * svg/SVGURIReference.cpp:
249         (WebCore::urlFromIRIStringWithFragmentIdentifier):
250         (WebCore):
251         (WebCore::SVGURIReference::targetElementFromIRIString):
252         * svg/SVGURIReference.h:
253         (SVGURIReference):
254         (WebCore::SVGURIReference::isExternalURIReference):
255         * svg/SVGUseElement.cpp:
256         (WebCore::SVGUseElement::SVGUseElement):
257         (WebCore::SVGUseElement::~SVGUseElement):
258         (WebCore):
259         (WebCore::SVGUseElement::referencedDocument):
260         (WebCore::SVGUseElement::externalDocument):
261         (WebCore::SVGUseElement::svgAttributeChanged):
262         (WebCore::dumpInstanceTree):
263         (WebCore::SVGUseElement::buildPendingResource):
264         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
265         (WebCore::SVGUseElement::hasCycleUseReferencing):
266         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
267         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
268         (WebCore::SVGUseElement::notifyFinished):
269         (WebCore::SVGUseElement::cachedDocumentIsStillLoading):
270         (WebCore::SVGUseElement::instanceTreeIsLoading):
271         * svg/SVGUseElement.h:
272         (WebCore):
273         (SVGUseElement):
274
275 2012-03-14  Peter Rybin  <peter.rybin@gmail.com>
276
277         Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
278         https://bugs.webkit.org/show_bug.cgi?id=80789
279
280         Reviewed by Yury Semikhatsky.
281
282         OptOutput class is added for optional return parameters.
283
284         Strict mode added to Generator that makes all parameter types strict
285         and drop pre-set default values for return parameters.
286
287         Debugger and Page domain is switched to strict mode.
288
289
290         * inspector/CodeGeneratorInspector.py:
291         (CommandReturnPassModel.ByPointer):
292         (CommandReturnPassModel):
293         (CommandReturnPassModel.OptOutput):
294         (CommandReturnPassModel.OptOutput.__init__):
295         (CommandReturnPassModel.OptOutput.get_return_var_type):
296         (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
297         (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
298         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
299         (CommandReturnPassModel.OptOutput.get_set_return_condition):
300         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
301         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
302         (OptOutput):
303         (Generator.process_event):
304         (Generator.process_command):
305         * inspector/ContentSearchUtils.cpp:
306         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
307         (WebCore::ContentSearchUtils::searchInTextByLines):
308         * inspector/ContentSearchUtils.h:
309         (ContentSearchUtils):
310         * inspector/InjectedScript.cpp:
311         (WebCore::InjectedScript::evaluate):
312         (WebCore::InjectedScript::callFunctionOn):
313         (WebCore::InjectedScript::evaluateOnCallFrame):
314         (WebCore::InjectedScript::makeEvalCall):
315         * inspector/InjectedScript.h:
316         (InjectedScript):
317         * inspector/InspectorDOMDebuggerAgent.cpp:
318         (WebCore):
319         * inspector/InspectorDebuggerAgent.cpp:
320         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
321         (WebCore::InspectorDebuggerAgent::setBreakpoint):
322         (WebCore::InspectorDebuggerAgent::searchInContent):
323         (WebCore::InspectorDebuggerAgent::setScriptSource):
324         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
325         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
326         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
327         (WebCore::InspectorDebuggerAgent::didPause):
328         (WebCore::InspectorDebuggerAgent::breakProgram):
329         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
330         * inspector/InspectorDebuggerAgent.h:
331         (InspectorDebuggerAgent):
332         * inspector/InspectorPageAgent.cpp:
333         (WebCore::buildObjectForCookie):
334         (WebCore::buildArrayForCookies):
335         (WebCore::InspectorPageAgent::getCookies):
336         (WebCore::InspectorPageAgent::getResourceTree):
337         (WebCore::InspectorPageAgent::searchInResource):
338         (WebCore::InspectorPageAgent::searchInResources):
339         (WebCore::InspectorPageAgent::buildObjectForFrame):
340         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
341         * inspector/InspectorPageAgent.h:
342         * inspector/InspectorRuntimeAgent.cpp:
343         (WebCore::InspectorRuntimeAgent::evaluate):
344         (WebCore::InspectorRuntimeAgent::callFunctionOn):
345
346 2012-03-14  Sergio Villar Senin  <svillar@igalia.com>
347
348         Unreviewed. Build fix for EFL after r110669.
349
350         * PlatformEfl.cmake: added DNSSoup.cpp
351
352 2012-03-13  Sergio Villar Senin  <svillar@igalia.com>
353
354         [GTK] Use the same DNS prefetching path than the other ports.
355         https://bugs.webkit.org/show_bug.cgi?id=80997
356
357         Reviewed by Martin Robinson.
358
359         This patch basically reverts r56128. There is no need to add an
360         special code path for GTK+ DNS pre-fetching because the main
361         reason to do that (some potential changes in libsoup) is not
362         going to happen. It also reduces the amount of DNS queries by
363         adding a NULL hostname check.
364
365         No need for new tests as this just moves code around.
366
367         * GNUmakefile.list.am:
368         * html/HTMLAnchorElement.cpp:
369         (WebCore::HTMLAnchorElement::parseAttribute):
370         * html/HTMLLinkElement.cpp:
371         * loader/LinkLoader.cpp:
372         (WebCore::LinkLoader::loadLink):
373         * page/Chrome.cpp:
374         (WebCore::Chrome::mouseDidMoveOverElement):
375         * platform/network/DNS.h:
376         (WebCore):
377         * platform/network/ResourceHandle.cpp:
378         * platform/network/ResourceHandle.h:
379         (ResourceHandle):
380         * platform/network/chromium/DNSChromium.cpp:
381         * platform/network/soup/DNSSoup.cpp: restored.
382         (WebCore):
383         (WebCore::prefetchDNS):
384         * platform/network/soup/ResourceHandleSoup.cpp:
385
386 2012-03-14  Kentaro Hara  <haraken@chromium.org>
387
388         Return null when shouldAllowAccessToNode() fails
389         https://bugs.webkit.org/show_bug.cgi?id=80205
390
391         Reviewed by Adam Barth.
392
393         shouldAllowAccessToNode() is used for window.frameElement, HTMLFrameElement.contentDocument,
394         and getSVGDocument(). The spec of window.frameElement and HTMLFrameElement.contentDocument
395         requires that they should return null when the security check fails.
396         Thus this patch changes the return value from undefined to null.
397
398         http://www.whatwg.org/specs/web-apps/current-work/multipage/browsers.html#navigating-nested-browsing-contexts-in-the-dom
399         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#dom-iframe-contentdocument
400
401         Tests: http/tests/security/local-iFrame-from-remote.html
402                http/tests/security/cross-frame-access-frameelement.html
403                http/tests/security/cross-frame-access-put.html
404
405         * bindings/scripts/CodeGeneratorJS.pm:
406         (GenerateImplementation):
407         * bindings/scripts/CodeGeneratorV8.pm:
408         (GenerateNormalAttrGetter):
409         (GenerateFunctionCallback):
410
411         * bindings/scripts/test/JS/JSTestObj.cpp: Updated run-bindings-tests results.
412         (WebCore::jsTestObjContentDocument):
413         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
414         * bindings/scripts/test/V8/V8TestObj.cpp:
415         (WebCore::TestObjInternal::contentDocumentAttrGetter):
416         (WebCore::TestObjInternal::getSVGDocumentCallback):
417
418 2012-03-13  Yosifumi Inoue  <yosin@chromium.org>
419
420         [Forms] Hidden input element should not have labels. 
421         https://bugs.webkit.org/show_bug.cgi?id=80403
422
423         Reviewed by Kent Tamura.
424
425         This patch changes "labels" attribute behavior for hidden input type.
426         It returns null instead of NodeList of labels or empty node list.
427
428         Note: The HTML5 specification isn't clear for non-labelable element's "labels"
429         attribute return value. Firefox and Opera return empty node list. IE returns null.
430
431         No new tests. Existing tests are updated.
432
433         * html/HTMLInputElement.cpp:
434         (WebCore::HTMLInputElement::isLabelable): Added. Dispatch to InputType.
435         * html/HiddenInputType.h:  Added isLabelable returning false.
436         * html/InputType.cpp:
437         (WebCore::InputType::isLabelable): Added. Returning true for all input types except for "hidden" type.
438         (WebCore):
439         * html/InputType.h:
440         (InputType): Added isLabelable declaration.
441
442 2012-03-13  Yosifumi Inoue  <yosin@chromium.org>
443
444         [Forms] The "output" element should have labels.
445         https://bugs.webkit.org/show_bug.cgi?id=80466
446
447         Reviewed by Kent Tamura.
448
449         This patch enables functionality of "labels" attribute for
450         HTMLOutputElement implemented in LabelableElement which use
451         isLabelable predicate whether an element can have label or not.
452
453         Update existing tests in fast/forms/label/ directory to cover
454         the "output" element with the "labels" attribute.
455
456         * html/HTMLOutputElement.h: Implement virtual method isLabelable.
457
458 2012-03-13  Luke Macpherson   <macpherson@chromium.org>
459
460         Move opacity clamping into RenderStyle setter.
461         https://bugs.webkit.org/show_bug.cgi?id=76966
462
463         Reviewed by Eric Seidel.
464
465         Covered by existing tests.
466
467         * css/CSSStyleSelector.cpp:
468         (WebCore::CSSStyleSelector::applyProperty):
469         * rendering/style/RenderStyle.h:
470         (WebCore::RenderStyleBitfields::setOpacity):
471
472 2012-03-12  Igor Oliveira  <igor.o@sisa.samsung.com>
473
474         Split the extra logic out of RenderObjectChildList::updateBeforeAfterContent
475         https://bugs.webkit.org/show_bug.cgi?id=80856
476
477         Extra part of the generated content handling logic out of RenderObjectChildList::updateBeforeAfterContent
478
479         Reviewed by Julien Chaffraix.
480
481         No change in behavior expected.
482
483         * rendering/RenderObjectChildList.cpp:
484         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
485         (WebCore::createRenderForBeforeAfterContent):
486         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
487         * rendering/RenderObjectChildList.h:
488         (WebCore):
489         (RenderObjectChildList):
490
491 2012-03-13  Simon Fraser  <simon.fraser@apple.com>
492
493         Fix potential crash when loading test results
494         https://bugs.webkit.org/show_bug.cgi?id=81062
495         <rdar://problem/11041732>
496         
497         Reviewed by Dean Jackson.
498
499         If RenderLayerBacking::isSimpleContainerCompositingLayer() is called early,
500         before the document has a documentElement(), then it crashes. Fix with
501         a null check on documentElement().
502         
503         No test because it's timing dependent.
504
505         * rendering/RenderLayerBacking.cpp:
506         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
507
508 2012-03-13  Dan Bernstein  <mitz@apple.com>
509
510         <rdar://problem/11025225> Assertion failure in RenderView::computeRectForRepaint() (!repaintContainer || repaintContainer == this) at store.apple.com
511         https://bugs.webkit.org/show_bug.cgi?id=81051
512
513         Reviewed by Simon Fraser.
514
515         Test: ManualTests/inline-repaint-container.html.
516
517         * rendering/RenderInline.cpp:
518         (WebCore::RenderInline::clippedOverflowRectForRepaint): This function was not handling the
519         case of the repaint container being a descendant of the containing block correctly, leading
520         to the assertion failure, but also to a correctness bug seen in the new test. If the repaint
521         container is a descendant of the containing block, just return the rect in the repaint
522         container coordinates.
523
524 2012-03-13  Dan Bernstein  <mitz@apple.com>
525
526         <rdar://problem/11025217> [Mac] Assertion failure in collectComplexTextRunsForCharactersCoreText
527         https://bugs.webkit.org/show_bug.cgi?id=77044
528
529         Reviewed by Sam Weinig.
530
531         Test: platform/mac/fast/text/core-text-fallback-to-unknown-font.html
532
533         Handle the case of Core Text choosing a fallback font that NSFontManager cannot find by name.
534
535         * platform/graphics/FontCache.h:
536         (FontCache): Made ComplexTextController a friend class.
537         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
538         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Removed the
539         failing assertion, which was not true, and added code to handle the case where a font
540         cannot be found by name by using the font as returned from Core Text.
541
542 2012-03-13  Erik Arvidsson  <arv@chromium.org>
543
544         [V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
545         https://bugs.webkit.org/show_bug.cgi?id=80880
546
547         Reviewed by Adam Barth.
548
549         We used to add a hidden property in the getter to the returned wrapper.
550         With this patch we instead handle the liveness of the wrapper in the GC phase by
551         calling v8::V8::AddHiddenReference.
552
553         To reduce the amount of custom code we need, the V8 code generator now supports
554         GenerateIsReachable (as well as CustomIsReachable) which, even though different
555         from the JSC attribute, is used in the same cases and takes the same values (even though
556         at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
557         also have a dependent life time (just like if V8DependentLifetime was present).
558
559         Second try. This time with an added include in TextTrackList.cpp.
560
561         No new tests. Covered by existing tests.
562
563         * Target.pri:
564         * UseV8.cmake:
565         * WebCore.gypi:
566         * bindings/scripts/CodeGeneratorJS.pm:
567         (GetGenerateIsReachable):
568         (GetCustomIsReachable):
569         (GenerateHeader):
570         (GenerateImplementation):
571         * bindings/scripts/CodeGeneratorV8.pm:
572         (NeedsToVisitDOMWrapper):
573         (GetGenerateIsReachable):
574         (GetCustomIsReachable):
575         (GenerateVisitDOMWrapper):
576         (GenerateHeader):
577         (GenerateNamedConstructorCallback):
578         (GenerateImplementation):
579         * bindings/scripts/IDLAttributes.txt:
580         * bindings/scripts/test/V8/V8Float64Array.cpp:
581         (WebCore):
582         * bindings/scripts/test/V8/V8Float64Array.h:
583         (V8Float64Array):
584         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
585         (WebCore):
586         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
587         (V8TestActiveDOMObject):
588         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
589         (WebCore):
590         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
591         (V8TestCustomNamedGetter):
592         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
593         (WebCore):
594         * bindings/scripts/test/V8/V8TestEventConstructor.h:
595         (V8TestEventConstructor):
596         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
597         (WebCore):
598         * bindings/scripts/test/V8/V8TestEventTarget.h:
599         (V8TestEventTarget):
600         * bindings/scripts/test/V8/V8TestInterface.cpp:
601         (WebCore):
602         * bindings/scripts/test/V8/V8TestInterface.h:
603         (V8TestInterface):
604         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
605         (WebCore):
606         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
607         (V8TestMediaQueryListListener):
608         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
609         (WebCore):
610         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
611         (V8TestNamedConstructor):
612         * bindings/scripts/test/V8/V8TestObj.cpp:
613         (WebCore):
614         * bindings/scripts/test/V8/V8TestObj.h:
615         (V8TestObj):
616         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
617         (WebCore):
618         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
619         (V8TestSerializedScriptValueInterface):
620         * bindings/v8/NPV8Object.cpp:
621         (WebCore::npObjectTypeInfo):
622         * bindings/v8/V8GCController.cpp:
623         (WebCore::GrouperVisitor::visitDOMWrapper):
624         * bindings/v8/WrapperTypeInfo.h:
625         (WebCore):
626         (WrapperTypeInfo):
627         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
628         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
629         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
630         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
631         (WebCore):
632         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
633         * bindings/v8/custom/V8StyleSheetCustom.cpp:
634         (WebCore::toV8):
635         * css/CSSStyleSheet.idl:
636         * css/StyleSheet.idl:
637         * dom/DOMStringMap.idl:
638         * dom/NamedNodeMap.idl:
639         * html/DOMTokenList.idl:
640         * html/track/TextTrackList.cpp:
641         * html/track/TextTrackList.idl:
642
643 2012-03-13  Jacky Jiang  <zhajiang@rim.com>
644
645         MathML crash in WebCore::Node::previousSibling()
646         https://bugs.webkit.org/show_bug.cgi?id=80773
647
648         Reviewed by Julien Chaffraix.
649
650         When adding child for msub render, if the child is mtr or mtd render,
651         we will creat an anonymous render as the container. As the anonymous
652         render's node is 0, accessing it directly can cause crash.
653         We should do a valid check of the node before using. In addition to
654         that, for msub, attach the anonymous render and it's children to render
655         tree. For msubsup, such kind of situation should never happen based on
656         the current codebase.
657
658         Test: mathml/msub-anonymous-child-render-crash.html
659
660         * rendering/mathml/RenderMathMLSubSup.cpp:
661         (WebCore::RenderMathMLSubSup::addChild):
662
663 2012-03-13  Mihnea Ovidenie  <mihnea@adobe.com>
664
665         [CSSRegions]NamedFlow::getRegionsByContentNode should not return a live NodeList
666         https://bugs.webkit.org/show_bug.cgi?id=81021
667
668         Reviewed by Ryosuke Niwa.
669
670         Reverting the original patch as we need a better solution.
671
672         * CMakeLists.txt:
673         * GNUmakefile.list.am:
674         * Target.pri:
675         * WebCore.gypi:
676         * WebCore.vcproj/WebCore.vcproj:
677         * WebCore.xcodeproj/project.pbxproj:
678         * dom/Node.cpp:
679         (WebCore::NodeListsNodeData::invalidateCaches):
680         (WebCore::NodeListsNodeData::isEmpty):
681         * dom/Node.h:
682         (Node):
683         * dom/NodeRareData.h:
684         (NodeListsNodeData):
685         * dom/RegionNodeList.cpp: Removed.
686         * dom/RegionNodeList.h: Removed.
687         * dom/WebKitNamedFlow.cpp:
688         * dom/WebKitNamedFlow.h:
689         (WebKitNamedFlow):
690         * dom/WebKitNamedFlow.idl:
691         * rendering/RenderFlowThread.cpp:
692         * rendering/RenderFlowThread.h:
693         * rendering/RenderRegion.h:
694         (RenderRegion):
695
696 2012-03-13  Shawn Singh  <shawnsingh@chromium.org>
697
698         [chromium] wrong transform causing incorrect culling
699         https://bugs.webkit.org/show_bug.cgi?id=80471
700
701         Reviewed by James Robinson.
702
703         Unit test added to CCRenderSurfaceTest.cpp
704
705         In addition to using originTransform() instead of drawTransform(),
706         this patch shuffles a bit of code so that a unit test can be
707         easily added.
708
709         * platform/graphics/chromium/cc/CCRenderPass.cpp:
710         (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer):
711         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
712         (WebCore::CCRenderSurface::createSharedQuadState):
713         (WebCore):
714         * platform/graphics/chromium/cc/CCRenderSurface.h:
715         (CCRenderSurface):
716
717 2012-03-13  Dave Tharp  <dtharp@codeaurora.org>
718
719         Alternate xml-stylesheets with no title are loaded, in violation of the CSSOM draft
720         https://bugs.webkit.org/show_bug.cgi?id=77549
721
722         Reviewed by David Hyatt.
723
724         Amended code to ignore alternate stylesheets that do not have a title attribute.
725
726         Test: fast/css/xml-stylesheet-alternate-no-title.xhtml
727
728         * dom/ProcessingInstruction.cpp:
729         (WebCore::ProcessingInstruction::checkStyleSheet):
730
731 2012-03-13  Levi Weintraub  <leviw@chromium.org>
732
733         Revert RenderLayer::absoluteBoundingBox to an IntRect
734         https://bugs.webkit.org/show_bug.cgi?id=81017
735
736         Reviewed by Eric Seidel.
737
738         Reverting RenderLayer::absoluteBoundingBox to an (pixel snapped) IntRect. Whenever
739         possible, we use integers representing for absolute coordinates. This is especially
740         relevant for methods, such as this one, that are exported and used in platform code.
741
742         No new tests. No change in behavior.
743
744         * rendering/RenderLayer.cpp:
745         (WebCore::RenderLayer::absoluteBoundingBox):
746         * rendering/RenderLayer.h:
747         (RenderLayer):
748         * rendering/RenderLayerCompositor.cpp:
749         (WebCore::RenderLayerCompositor::requiresCompositingForPosition): This intersects
750         the absolute bounding box with the FrameView, which uses all integer values. It's
751         the only use of absoluteBoundingBox in WebCore.
752
753 2012-03-13  Nat Duca  <nduca@chromium.org>
754
755         [chromium] vsync ticks are needed in invisible tabs when we are still updating resources
756         https://bugs.webkit.org/show_bug.cgi?id=80910
757
758         Reviewed by James Robinson.
759
760         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
761         (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
762
763 2012-03-13  Dave Tharp  <dtharp@codeaurora.org>
764
765         Alternate stylesheets (without title attribute) are loaded on refresh
766         https://bugs.webkit.org/show_bug.cgi?id=24354
767
768         Reviewed by David Hyatt.
769
770         Alternate stylesheets are now ignored in <link> tags if 
771         they have no title attribute (per spec).
772
773         Tests: fast/css/link-alternate-stylesheet-1.html
774                fast/css/link-alternate-stylesheet-2.html
775                fast/css/link-alternate-stylesheet-3.html
776                fast/css/link-alternate-stylesheet-4.html
777                fast/css/link-alternate-stylesheet-5.html
778
779         * dom/Document.cpp:
780         (WebCore::Document::collectActiveStylesheets):
781
782 2012-03-13  Dana Jansens  <danakj@chromium.org>
783
784         Region::contains(IntPoint) is slow
785         https://bugs.webkit.org/show_bug.cgi?id=81008
786
787         Reviewed by Anders Carlsson.
788
789         Speed up Region::contains(IntPoint) by directly testing if the point
790         is inside the Region's shape, rather than using a temporary 1x1 Region
791         for the test.
792
793         Unit test: RegionTest.containsPoint
794
795         * platform/graphics/Region.cpp:
796         (WebCore::Region::contains):
797
798 2012-03-13  Adrienne Walker  <enne@google.com>
799
800         [chromium] Mark root layer scrollbars as always opaque to disable blending
801         https://bugs.webkit.org/show_bug.cgi?id=79951
802
803         Reviewed by James Robinson.
804
805         Now that scrollbar layers exist, mark non-overlay root scrollbars as
806         opaque. This disables blending for correctness and performance.
807
808         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
809         (WebCore::scrollbarLayerDidChange):
810         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
811         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
812         * platform/graphics/chromium/LayerRendererChromium.cpp:
813         (WebCore::LayerRendererChromium::drawTileQuad):
814
815 2012-03-13  Gavin Peters  <gavinp@chromium.org>
816
817         Remove vestigal abortEvent from image attribute.
818         https://bugs.webkit.org/show_bug.cgi?id=80795
819
820         Reviewed by Adam Barth.
821
822         It seems we installed a listener for the abort event on images,
823         but never ever raised them.  So this patch removes it.  This could
824         cause different behaviour if the user sends abort events directly
825         at an image element, although addEventListener will still work.
826
827         * html/HTMLImageElement.cpp:
828         (WebCore::HTMLImageElement::parseAttribute):
829
830 2012-03-13  Nate Chapin  <japhet@chromium.org>
831
832         Rework how a CachedRawResource decides if it can be reused
833         for a given ResourceRequest. Ensure method, body, cookie policy,
834         and all headers match.
835         http://bugs.webkit.org/show_bug.cgi?id=79325
836
837         Reviewed by Oliver Hunt.
838
839         Test: http/tests/cache/xhr-body.html
840
841         * loader/cache/CachedRawResource.cpp:
842         (WebCore::CachedRawResource::canReuse):
843         * loader/cache/CachedRawResource.h: Take a ResourceRequest in canReuse().
844         * loader/cache/CachedResourceLoader.cpp:
845         (WebCore::CachedResourceLoader::determineRevalidationPolicy): Remove Range header
846             check, since it is now redundant.
847
848 2012-03-13  Rob Buis  <rbuis@rim.com>
849
850         Fix cast-align GCC warning
851         https://bugs.webkit.org/show_bug.cgi?id=80790
852
853         Reviewed by Dan Bates.
854
855         This touches unpackOneRowOfBGRA8ToRGBA8.
856
857         * platform/graphics/GraphicsContext3D.cpp:
858         (WebCore):
859
860 2012-03-12  Simon Fraser  <simon.fraser@apple.com>
861
862         Refactor some code that is used to check whether a layer needs backing store
863         https://bugs.webkit.org/show_bug.cgi?id=80917
864
865         Reviewed by Dean Jackson.
866
867         Move some code out of isSimpleContainerCompositingLayer() in two new
868         methods to make the code more self-descriptive.
869         
870         No behavior change, so no tests.
871
872         * rendering/RenderLayerBacking.cpp:
873         (WebCore::RenderLayerBacking::paintsBoxDecorations):
874         (WebCore::RenderLayerBacking::paintsChildren):
875         (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
876         * rendering/RenderLayerBacking.h:
877         (RenderLayerBacking):
878
879 2012-03-13  Daniel Bates  <dbates@webkit.org>
880
881         REGRESSION(r99369): File input button doesn't highlight when pressed
882         https://bugs.webkit.org/show_bug.cgi?id=79385
883
884         Reviewed by Kent Tamura.
885
886         Fixes an issue where the file input button doesn't highlight on mouse press.
887
888         Currently we always override the active state of the button with whether
889         a dragged file is being hovered over the file input control (i.e. can the control
890         receive a dropped file; HTMLInputElement::canReceiveDroppedFiles()).
891         Instead, we should only override the active state of the button when the state
892         changes for whether we can receive dropped files (e.g. during a drag) so that
893         we honor the active state of the button when it is pressed.
894
895         Test: fast/forms/file/file-input-pressed-state.html
896
897         * rendering/RenderFileUploadControl.cpp:
898         (WebCore::RenderFileUploadControl::RenderFileUploadControl):
899         (WebCore::RenderFileUploadControl::updateFromElement):
900         * rendering/RenderFileUploadControl.h:
901         (RenderFileUploadControl):
902
903 2012-03-13  Dana Jansens  <danakj@chromium.org>
904
905         [chromium] Use CCOcclusionTracker for draw culling
906         https://bugs.webkit.org/show_bug.cgi?id=80743
907
908         Reviewed by Adrienne Walker.
909
910         In this CL we enable the use of CCOcclusionTracker for draw-side
911         culling. This means moving from a per-quad culling model to a
912         per-layer model.
913
914         When calculating RenderPasses, we construct the set of passes,
915         then iterate over layers in front-to-back order. We make
916         CCQuadCuller instantiable, and pass it to the layer
917         appendQuads() methods instead of the bare list, where it can
918         filter quads before the end up in the list.
919
920         Covered by existing tests.
921
922         * platform/graphics/chromium/LayerRendererChromium.cpp:
923         (WebCore::LayerRendererChromium::drawRenderPass):
924         * platform/graphics/chromium/LayerRendererChromium.h:
925         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
926         (WebCore::CCCanvasLayerImpl::appendQuads):
927         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
928         (CCCanvasLayerImpl):
929         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
930         (WebCore::CCLayerImpl::appendQuads):
931         (WebCore::CCLayerImpl::appendGutterQuads):
932         (WebCore::CCLayerImpl::appendDebugBorderQuad):
933         * platform/graphics/chromium/cc/CCLayerImpl.h:
934         (WebCore):
935         (CCLayerImpl):
936         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
937         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
938         (WebCore::CCLayerTreeHostImpl::drawLayers):
939         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
940         (CCLayerTreeHostImpl):
941         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
942         (WebCore::CCPluginLayerImpl::appendQuads):
943         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
944         (CCPluginLayerImpl):
945         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
946         (WebCore::CCQuadCuller::CCQuadCuller):
947         (WebCore::CCQuadCuller::append):
948         * platform/graphics/chromium/cc/CCQuadCuller.h:
949         (WebCore):
950         (CCQuadCuller):
951         * platform/graphics/chromium/cc/CCRenderPass.cpp:
952         (WebCore::CCRenderPass::appendQuadsForLayer):
953         * platform/graphics/chromium/cc/CCRenderPass.h:
954         (WebCore):
955         (CCQuadList):
956         (WebCore::CCQuadList::backToFrontBegin):
957         (WebCore::CCQuadList::backToFrontEnd):
958         (CCRenderPass):
959         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
960         (WebCore::CCScrollbarLayerImpl::appendQuads):
961         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
962         (CCScrollbarLayerImpl):
963         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
964         (WebCore::CCSolidColorLayerImpl::appendQuads):
965         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
966         (CCSolidColorLayerImpl):
967         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
968         (WebCore::CCTiledLayerImpl::appendQuads):
969         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
970         (CCTiledLayerImpl):
971         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
972         (WebCore::CCVideoLayerImpl::appendQuads):
973         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
974         (CCVideoLayerImpl):
975
976 2012-03-13  Adam Barth  <abarth@webkit.org> && Benjamin Poulain  <bpoulain@apple.com>
977
978         Always enable ENABLE(CLIENT_BASED_GEOLOCATION)
979         https://bugs.webkit.org/show_bug.cgi?id=78853
980
981         Reviewed by Adam Barth.
982
983         * CMakeLists.txt:
984         * Configurations/FeatureDefines.xcconfig:
985         * GNUmakefile.am:
986         * GNUmakefile.list.am:
987         * Modules/geolocation/Geolocation.cpp:
988         (WebCore):
989         (WebCore::createPositionError):
990         (WebCore::Geolocation::Geolocation):
991         (WebCore::Geolocation::stop):
992         (WebCore::Geolocation::lastPosition):
993         (WebCore::Geolocation::requestPermission):
994         (WebCore::Geolocation::startUpdating):
995         (WebCore::Geolocation::stopUpdating):
996         * Modules/geolocation/Geolocation.h:
997         (WebCore):
998         (Geolocation):
999         * Modules/geolocation/GeolocationController.cpp:
1000         * Modules/geolocation/GeolocationController.h:
1001         * Modules/geolocation/GeolocationError.h:
1002         * Modules/geolocation/GeolocationPosition.h:
1003         * Target.pri:
1004         * WebCore.exp.in:
1005         * WebCore.gypi:
1006         * WebCore.vcproj/WebCore.vcproj:
1007         * bindings/js/JSGeolocationCustom.cpp:
1008         * loader/EmptyClients.h:
1009         (EmptyChromeClient):
1010         * page/ChromeClient.h:
1011         (ChromeClient):
1012         * page/Page.cpp:
1013         (WebCore::Page::Page):
1014         * page/Page.h:
1015         (Page):
1016         * platform/GeolocationService.cpp: Removed.
1017         * platform/GeolocationService.h: Removed.
1018         * platform/mock/GeolocationClientMock.cpp:
1019         * platform/mock/GeolocationClientMock.h:
1020         * platform/mock/GeolocationServiceMock.cpp: Removed.
1021         * platform/mock/GeolocationServiceMock.h: Removed.
1022
1023 2012-03-12  Antonio Gomes  <agomes@rim.com>
1024
1025         Convert nodesFromRect tests to use Internals interface
1026         https://bugs.webkit.org/show_bug.cgi?id=80886
1027
1028         Reviewed by Ryosuke Niwa.
1029
1030         Add Internals::nodesFromRect implementation to unify
1031         the codepath for testing Document::nodesFromRect in a
1032         cross port way.
1033
1034         No new tests, since we are improving here the infra-structure
1035         for testing a specific method.
1036
1037         * testing/Internals.cpp:
1038         (WebCore::Internals::nodesFromRect):
1039         (WebCore):
1040         * testing/Internals.h:
1041         (Internals):
1042         * testing/Internals.idl:
1043
1044 2012-03-13  Philip Rogers  <pdr@google.com>
1045
1046         Fix the use of stale text fragments
1047         https://bugs.webkit.org/show_bug.cgi?id=80729
1048
1049         Reviewed by Nikolas Zimmermann.
1050
1051         Previously, we were allowing SVGTextFragments to get out of sync with the
1052         actual text in RenderSVGInlineTextBox. This patch reuses the dirty line
1053         box code in RenderText::setTextWithOffset to force
1054         clearTextFragments() when setTextWithOffset is called, preventing the use
1055         of stale SVGTextFragments.
1056
1057         Test: svg/custom/delete-text-crash.html
1058
1059         * rendering/InlineBox.h:
1060         (InlineBox):
1061         * rendering/svg/SVGInlineTextBox.cpp:
1062         (WebCore::SVGInlineTextBox::dirtyLineBoxes):
1063         (WebCore):
1064         * rendering/svg/SVGInlineTextBox.h:
1065         (SVGInlineTextBox):
1066
1067 2012-03-13  Nikolas Zimmermann  <nzimmermann@rim.com>
1068
1069         SVG Animations update baseVal instead of animVal
1070         https://bugs.webkit.org/show_bug.cgi?id=12437
1071
1072         Reviewed by Dirk Schulze.
1073
1074         Blind fix for some GC related assertions firing on v8.
1075
1076         Assure that animationStarted/animationEnded calls are happening
1077         on the same SVGAnimatedProperty. Always call animationEnded(),
1078         even if we shouldn't do anything for the target element, as its
1079         destructed, as we still have to reset m_isAnimating.
1080
1081         * svg/SVGAnimateElement.cpp:
1082         (WebCore::SVGAnimateElement::SVGAnimateElement):
1083         (WebCore::SVGAnimateElement::resetToBaseValue):
1084         (WebCore::SVGAnimateElement::targetElementWillChange):
1085         * svg/SVGAnimateElement.h:
1086         (SVGAnimateElement):
1087         * svg/properties/SVGAnimatedPropertyTearOff.h:
1088         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
1089
1090 2012-03-13  Mark Pilgrim  <pilgrim@chromium.org>
1091
1092         Move DirectoryEntry and DirectoryReader to new Modules/filesystem/ directory
1093         https://bugs.webkit.org/show_bug.cgi?id=80625
1094
1095         Reviewed by Adam Barth.
1096
1097         No new tests, all existing tests pass.
1098
1099         * CMakeLists.txt:
1100         * DerivedSources.make:
1101         * DerivedSources.pri:
1102         * GNUmakefile.am:
1103         * GNUmakefile.list.am:
1104         * Modules/filesystem: Added.
1105         * Modules/filesystem/DirectoryEntry.cpp: Copied from Source/WebCore/fileapi/DirectoryEntry.cpp.
1106         * Modules/filesystem/DirectoryEntry.h: Copied from Source/WebCore/fileapi/DirectoryEntry.h.
1107         * Modules/filesystem/DirectoryEntry.idl: Copied from Source/WebCore/fileapi/DirectoryEntry.idl.
1108         * Modules/filesystem/DirectoryEntrySync.cpp: Copied from Source/WebCore/fileapi/DirectoryEntrySync.cpp.
1109         * Modules/filesystem/DirectoryEntrySync.h: Copied from Source/WebCore/fileapi/DirectoryEntrySync.h.
1110         * Modules/filesystem/DirectoryEntrySync.idl: Copied from Source/WebCore/fileapi/DirectoryEntrySync.idl.
1111         * Modules/filesystem/DirectoryReader.cpp: Copied from Source/WebCore/fileapi/DirectoryReader.cpp.
1112         * Modules/filesystem/DirectoryReader.h: Copied from Source/WebCore/fileapi/DirectoryReader.h.
1113         * Modules/filesystem/DirectoryReader.idl: Copied from Source/WebCore/fileapi/DirectoryReader.idl.
1114         * Modules/filesystem/DirectoryReaderBase.h: Copied from Source/WebCore/fileapi/DirectoryReaderBase.h.
1115         * Modules/filesystem/DirectoryReaderSync.cpp: Copied from Source/WebCore/fileapi/DirectoryReaderSync.cpp.
1116         * Modules/filesystem/DirectoryReaderSync.h: Copied from Source/WebCore/fileapi/DirectoryReaderSync.h.
1117         * Modules/filesystem/DirectoryReaderSync.idl: Copied from Source/WebCore/fileapi/DirectoryReaderSync.idl.
1118         * Target.pri:
1119         * WebCore.gyp/WebCore.gyp:
1120         * WebCore.gypi:
1121         * WebCore.pri:
1122         * WebCore.vcproj/WebCore.vcproj:
1123         * WebCore.xcodeproj/project.pbxproj:
1124         * fileapi/DirectoryEntry.cpp: Removed.
1125         * fileapi/DirectoryEntry.h: Removed.
1126         * fileapi/DirectoryEntry.idl: Removed.
1127         * fileapi/DirectoryEntrySync.cpp: Removed.
1128         * fileapi/DirectoryEntrySync.h: Removed.
1129         * fileapi/DirectoryEntrySync.idl: Removed.
1130         * fileapi/DirectoryReader.cpp: Removed.
1131         * fileapi/DirectoryReader.h: Removed.
1132         * fileapi/DirectoryReader.idl: Removed.
1133         * fileapi/DirectoryReaderBase.h: Removed.
1134         * fileapi/DirectoryReaderSync.cpp: Removed.
1135         * fileapi/DirectoryReaderSync.h: Removed.
1136         * fileapi/DirectoryReaderSync.idl: Removed.
1137
1138 2012-03-13  Igor Oliveira  <igor.o@sisa.samsung.com>
1139
1140         animation-iteration-count does not handle floating point values correctly.
1141         https://bugs.webkit.org/show_bug.cgi?id=69531
1142
1143         Implements support for non-integers animation-iteration-count numbers.
1144         Non-integer numbers will cause the animation to end part-way through a cycle.
1145
1146         Reviewed by Dean Jackson.
1147
1148         Tests: animations/fill-mode-iteration-count-non-integer.html
1149                animations/keyframes-iteration-count-non-integer.html
1150
1151         * css/CSSComputedStyleDeclaration.cpp:
1152         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1153         * css/CSSParser.cpp:
1154         (WebCore::CSSParser::parseAnimationIterationCount):
1155         * css/CSSStyleApplyProperty.cpp:
1156         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1157         * css/CSSStyleSelector.cpp:
1158         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1159         * page/animation/AnimationBase.cpp:
1160         (WebCore::AnimationBase::fractionalTime):
1161         (WebCore::AnimationBase::progress):
1162         * page/animation/CompositeAnimation.cpp:
1163         (WebCore::CompositeAnimation::pauseAnimationAtTime):
1164         * platform/animation/Animation.h:
1165         (WebCore::Animation::iterationCount):
1166         (WebCore::Animation::setIterationCount):
1167         (Animation):
1168         (WebCore::Animation::initialAnimationIterationCount):
1169
1170 2012-03-13  Tommy Widenflycht  <tommyw@google.com>
1171
1172         MediaStream API: Rename PeerConnection to DeprecatedPeerConnection
1173         https://bugs.webkit.org/show_bug.cgi?id=80692
1174
1175         Reviewed by Adam Barth.
1176
1177         First patch in a series of patches to change the PeerConnection from ROAP to JSEP,
1178         see bug 80589 for more information.
1179
1180         Patch covered by modified existing tests.
1181
1182         * GNUmakefile.list.am:
1183         * Modules/mediastream/DOMWindowMediaStream.idl:
1184         * Modules/mediastream/DeprecatedPeerConnection.cpp: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.cpp.
1185         (WebCore):
1186         (WebCore::DeprecatedPeerConnection::create):
1187         (WebCore::DeprecatedPeerConnection::DeprecatedPeerConnection):
1188         (WebCore::DeprecatedPeerConnection::~DeprecatedPeerConnection):
1189         (WebCore::DeprecatedPeerConnection::processSignalingMessage):
1190         (WebCore::DeprecatedPeerConnection::readyState):
1191         (WebCore::DeprecatedPeerConnection::send):
1192         (WebCore::DeprecatedPeerConnection::addStream):
1193         (WebCore::DeprecatedPeerConnection::removeStream):
1194         (WebCore::DeprecatedPeerConnection::localStreams):
1195         (WebCore::DeprecatedPeerConnection::remoteStreams):
1196         (WebCore::DeprecatedPeerConnection::close):
1197         (WebCore::DeprecatedPeerConnection::didCompleteICEProcessing):
1198         (WebCore::DeprecatedPeerConnection::didGenerateSDP):
1199         (WebCore::DeprecatedPeerConnection::didReceiveDataStreamMessage):
1200         (WebCore::DeprecatedPeerConnection::didAddRemoteStream):
1201         (WebCore::DeprecatedPeerConnection::didRemoveRemoteStream):
1202         (WebCore::DeprecatedPeerConnection::interfaceName):
1203         (WebCore::DeprecatedPeerConnection::scriptExecutionContext):
1204         (WebCore::DeprecatedPeerConnection::stop):
1205         (WebCore::DeprecatedPeerConnection::eventTargetData):
1206         (WebCore::DeprecatedPeerConnection::ensureEventTargetData):
1207         (WebCore::DeprecatedPeerConnection::scheduleInitialNegotiation):
1208         (WebCore::DeprecatedPeerConnection::initialNegotiationTimerFired):
1209         (WebCore::DeprecatedPeerConnection::ensureStreamChangeScheduled):
1210         (WebCore::DeprecatedPeerConnection::streamChangeTimerFired):
1211         (WebCore::DeprecatedPeerConnection::scheduleReadyStateChange):
1212         (WebCore::DeprecatedPeerConnection::readyStateChangeTimerFired):
1213         (WebCore::DeprecatedPeerConnection::changeReadyState):
1214         * Modules/mediastream/DeprecatedPeerConnection.h: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.h.
1215         (WebCore):
1216         (DeprecatedPeerConnection):
1217         (WebCore::DeprecatedPeerConnection::didChangeState):
1218         (WebCore::DeprecatedPeerConnection::refEventTarget):
1219         (WebCore::DeprecatedPeerConnection::derefEventTarget):
1220         * Modules/mediastream/DeprecatedPeerConnection.idl: Renamed from Source/WebCore/Modules/mediastream/PeerConnection.idl.
1221         * Modules/mediastream/SignalingCallback.h:
1222         (WebCore):
1223         (SignalingCallback):
1224         * Modules/mediastream/SignalingCallback.idl:
1225         * WebCore.gypi:
1226         * bindings/generic/RuntimeEnabledFeatures.h:
1227         (WebCore::RuntimeEnabledFeatures::webkitDeprecatedPeerConnectionEnabled):
1228         * bindings/js/JSDeprecatedPeerConnectionCustom.cpp: Renamed from Source/WebCore/bindings/js/JSPeerConnectionCustom.cpp.
1229         (WebCore):
1230         (WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):
1231         * dom/EventTarget.h:
1232         (WebCore):
1233         * dom/EventTargetFactory.in:
1234         * platform/mediastream/DeprecatedPeerConnectionHandler.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandler.h.
1235         (WebCore):
1236         (DeprecatedPeerConnectionHandler):
1237         * platform/mediastream/DeprecatedPeerConnectionHandlerClient.h: Renamed from Source/WebCore/platform/mediastream/PeerConnectionHandlerClient.h.
1238         (WebCore):
1239         (DeprecatedPeerConnectionHandlerClient):
1240         (WebCore::DeprecatedPeerConnectionHandlerClient::~DeprecatedPeerConnectionHandlerClient):
1241         * platform/mediastream/gstreamer/DeprecatedPeerConnectionHandler.cpp: Renamed from Source/WebCore/platform/mediastream/gstreamer/PeerConnectionHandler.cpp.
1242         (WebCore):
1243         (WebCore::DeprecatedPeerConnectionHandler::create):
1244         (WebCore::DeprecatedPeerConnectionHandler::DeprecatedPeerConnectionHandler):
1245         (WebCore::DeprecatedPeerConnectionHandler::~DeprecatedPeerConnectionHandler):
1246         (WebCore::DeprecatedPeerConnectionHandler::produceInitialOffer):
1247         (WebCore::DeprecatedPeerConnectionHandler::handleInitialOffer):
1248         (WebCore::DeprecatedPeerConnectionHandler::processSDP):
1249         (WebCore::DeprecatedPeerConnectionHandler::processPendingStreams):
1250         (WebCore::DeprecatedPeerConnectionHandler::sendDataStreamMessage):
1251         (WebCore::DeprecatedPeerConnectionHandler::stop):
1252
1253 2012-03-13  Pavel Feldman  <pfeldman@chromium.org>
1254
1255         Web Inspector: front-end compilation was broken while supporting large arrays.
1256         https://bugs.webkit.org/show_bug.cgi?id=81013
1257
1258         Reviewed by Vsevolod Vlasov.
1259
1260         * inspector/front-end/ExtensionPanel.js:
1261         * inspector/front-end/ObjectPropertiesSection.js:
1262         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties.buildObjectFragment):
1263         * inspector/front-end/RemoteObject.js:
1264
1265 2012-03-13  Tony Chang  <tony@chromium.org>
1266
1267         flexbox's computePreferredLogicalWidth needs to take multiline into account
1268         https://bugs.webkit.org/show_bug.cgi?id=80931
1269
1270         Reviewed by Ojan Vafai.
1271
1272         Tests: css3/flexbox/multiline-shrink-to-fit-expected.html
1273                css3/flexbox/multiline-shrink-to-fit.html
1274
1275         * rendering/RenderFlexibleBox.cpp:
1276         (WebCore::RenderFlexibleBox::computePreferredLogicalWidths): Set min/max preferredLogicalWidth based on always breaking or never breaking.
1277         (WebCore::RenderFlexibleBox::computeNextFlexLine): Add a FIXME.
1278         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Don't change the width after computePreferredWidth has been called.
1279
1280 2012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
1281
1282         Unreviewed, rolling out r110469.
1283         http://trac.webkit.org/changeset/110469
1284         https://bugs.webkit.org/show_bug.cgi?id=81010
1285
1286         This patch still appears to crash (Requested by abarth on
1287         #webkit).
1288
1289         * page/FrameView.cpp:
1290         (WebCore::FrameView::FrameView):
1291         (WebCore::FrameView::reset):
1292         (WebCore::FrameView::repaintContentRectangle):
1293         (WebCore):
1294         (WebCore::FrameView::endDeferredRepaints):
1295         (WebCore::FrameView::doDeferredRepaints):
1296         (WebCore::FrameView::deferredRepaintTimerFired):
1297         * page/FrameView.h:
1298         (FrameView):
1299         * rendering/RenderView.cpp:
1300         (WebCore::RenderView::shouldRepaint):
1301         * svg/graphics/SVGImage.cpp:
1302         (WebCore::SVGImage::drawSVGToImageBuffer):
1303         (WebCore::SVGImage::draw):
1304         * svg/graphics/SVGImage.h:
1305         * svg/graphics/SVGImageCache.cpp:
1306         (WebCore::SVGImageCache::imageContentChanged):
1307         (WebCore::SVGImageCache::redrawTimerFired):
1308         * svg/graphics/SVGImageCache.h:
1309         (SVGImageCache):
1310
1311 2012-03-13  Max Vujovic  <mvujovic@adobe.com>
1312
1313         Add a method to window.internals to enable testing of inspector highlight rects
1314         https://bugs.webkit.org/show_bug.cgi?id=80338
1315
1316         Reviewed by Pavel Feldman.
1317
1318         Add window.internals.inspectorHighlightRects, a method which makes it possible to test the
1319         positions and sizes of inspector highlight rects.
1320
1321         Test: inspector/elements/highlight-node.html
1322
1323         * WebCore.exp.in: Export symbols.
1324         * testing/Internals.cpp:
1325         (WebCore::Internals::inspectorHighlightRects): Call InspectorController::getHighlight and
1326         return the highlight's quads as a ClientRectList.
1327         (WebCore):
1328         * testing/Internals.h:
1329         (WebCore):
1330         (Internals):
1331         * testing/Internals.idl:
1332
1333             Add inspectorHighlightRects to the window.internals interface.
1334
1335 2012-03-13  Konrad Piascik  <kpiascik@rim.com>
1336
1337         [BlackBerry] Remove sublayers before clamping just in case the layer already exists
1338         https://bugs.webkit.org/show_bug.cgi?id=80989
1339
1340         Reviewed by Antonio Gomes.
1341
1342         Discovered when trying to add a highlight sublayer for web inspector.  Since that layer
1343         may already exist in the tree we need to see if it will be pruned before we clamp on the
1344         size.
1345
1346         This was manually tested during the writing of another patch to add web inspector highlights
1347         to accelrated compositing.
1348
1349         * platform/graphics/blackberry/LayerWebKitThread.cpp:
1350         (WebCore::LayerWebKitThread::insertSublayer):
1351
1352 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
1353
1354         Web Inspector: Add snippets model.
1355         https://bugs.webkit.org/show_bug.cgi?id=80863
1356
1357         Reviewed by Yury Semikhatsky.
1358
1359         Test: inspector/debugger/snippets-model.html
1360
1361         * WebCore.gypi:
1362         * WebCore.vcproj/WebCore.vcproj:
1363         * inspector/compile-front-end.py:
1364         * inspector/front-end/Settings.js:
1365         (WebInspector.ExperimentsSettings):
1366         * inspector/front-end/SnippetsModel.js: Added.
1367         * inspector/front-end/WebKit.qrc:
1368         * inspector/front-end/inspector.html:
1369         * inspector/front-end/inspector.js:
1370
1371 2012-03-13  'Pavel Feldman'  <pfeldman@chromium.org>
1372
1373         Not reviewed: chromium build fix.
1374
1375         * history/CachedFrame.cpp:
1376
1377 2012-03-13  Peter Rybin  <peter.rybin@gmail.com>
1378
1379         Web Inspector: CodeGeneratorInspector.py: refactor copy-paste getter methods
1380         https://bugs.webkit.org/show_bug.cgi?id=80923
1381
1382         Reviewed by Yury Semikhatsky.
1383
1384         Several methods are combined in one using C++ templates.
1385
1386         * inspector/CodeGeneratorInspector.py:
1387
1388 2012-03-13  Rob Buis  <rbuis@rim.com>
1389
1390         [BlackBerry] Fix cast-align warning in QuotesData.cpp
1391         https://bugs.webkit.org/show_bug.cgi?id=80601
1392
1393         Reviewed by Nikolas Zimmermann.
1394
1395         Fix warning by adding variable of correct return type.
1396
1397         * rendering/style/QuotesData.cpp:
1398         (WebCore::QuotesData::create):
1399
1400 2012-03-12  Brady Eidson  <beidson@apple.com>
1401
1402         <rdar://problem/7908830> and https://bugs.webkit.org/show_bug.cgi?id=34679
1403         Location and other objects are dysfunctional after a document gets restored from page cache
1404
1405         Reviewed by Adam Barth.
1406
1407         Test: fast/loader/window-properties-restored-from-page-cache.html
1408
1409         Give DOMWindowProperties the ability to reconnect to their Frame:
1410         * page/DOMWindowProperty.cpp:
1411         (WebCore::DOMWindowProperty::reconnectFrame):
1412         * page/DOMWindowProperty.h:
1413         (DOMWindowProperty):
1414
1415         Let ApplicationCache do some extra work when reconnecting:
1416         * loader/appcache/DOMApplicationCache.cpp:
1417         (WebCore::DOMApplicationCache::reconnectFrame):
1418         (WebCore):
1419         * loader/appcache/DOMApplicationCache.h:
1420         (DOMApplicationCache):
1421
1422         Let IndexDB do some extra work when reconnecting:
1423         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
1424         (WebCore::DOMWindowIndexedDatabase::disconnectFrame):
1425         (WebCore::DOMWindowIndexedDatabase::reconnectFrame):
1426         (WebCore::DOMWindowIndexedDatabase::webkitIndexedDB):
1427         * Modules/indexeddb/DOMWindowIndexedDatabase.h:
1428         (DOMWindowIndexedDatabase):
1429
1430         Tell the DOMWindow to suspend to the page cache:
1431         * history/CachedFrame.cpp:
1432         (WebCore::CachedFrame::CachedFrame):
1433
1434         Tell the DOMWindow to resume from the page cache:
1435         * loader/FrameLoader.cpp:
1436         (WebCore::FrameLoader::open):
1437
1438         * page/DOMWindow.cpp:
1439         (WebCore::DOMWindow::DOMWindow):
1440         (WebCore::DOMWindow::~DOMWindow): Call clearDOMWindowProperties directly instead of clear()
1441         (WebCore::DOMWindow::frameDestroyed): Ditto.
1442         (WebCore::DOMWindow::clear): Only clear if the DOMWindow is not suspended for the page cache.
1443         (WebCore::DOMWindow::suspendForPageCache): Disconnect properties and set the page cache flag.
1444         (WebCore::DOMWindow::resumeFromPageCache): Reconnect properties and revert the page cache flag.
1445         (WebCore::DOMWindow::disconnectDOMWindowProperties): Only disconnect the registered properties.
1446         (WebCore::DOMWindow::reconnectDOMWindowProperties):
1447         (WebCore::DOMWindow::clearDOMWindowProperties): Disconnect the registered properties then clear them out.
1448
1449         For all of the following, if the DOMWindow is not displayed in a frame (i.e., it is suspended), do nothing:
1450         (WebCore::DOMWindow::screen):
1451         (WebCore::DOMWindow::history):
1452         (WebCore::DOMWindow::crypto):
1453         (WebCore::DOMWindow::locationbar):
1454         (WebCore::DOMWindow::menubar):
1455         (WebCore::DOMWindow::personalbar):
1456         (WebCore::DOMWindow::scrollbars):
1457         (WebCore::DOMWindow::statusbar):
1458         (WebCore::DOMWindow::toolbar):
1459         (WebCore::DOMWindow::console):
1460         (WebCore::DOMWindow::applicationCache):
1461         (WebCore::DOMWindow::navigator):
1462         (WebCore::DOMWindow::performance):
1463         (WebCore::DOMWindow::location):
1464         (WebCore::DOMWindow::sessionStorage):
1465         (WebCore::DOMWindow::localStorage):
1466         (WebCore::DOMWindow::webkitNotifications):
1467         (WebCore::DOMWindow::postMessageTimerFired):
1468         (WebCore::DOMWindow::getSelection):
1469         (WebCore::DOMWindow::styleMedia):
1470         (WebCore::DOMWindow::webkitStorageInfo):
1471         * page/DOMWindow.h:
1472
1473 2012-03-13  Dana Jansens  <danakj@chromium.org>
1474
1475         [chromium] Use projectQuad to apply inverse mapRect
1476         https://bugs.webkit.org/show_bug.cgi?id=80741
1477
1478         Reviewed by Adrienne Walker.
1479
1480         Unit test: CCOcclusionTrackerTest3dTransform
1481                    CCOcclusionTrackerTestPerspectiveTransform
1482                    CCOcclusionTrackerTestPerspectiveTransformBehindCamera
1483
1484         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1485         (WebCore::projectQuad):
1486         (WebCore):
1487         (WebCore::computeUnoccludedContentRect):
1488
1489 2012-03-13  Gavin Peters  <gavinp@chromium.org>
1490
1491         New PageCache histogram which counts failures ignoring Settings.
1492         https://bugs.webkit.org/show_bug.cgi?id=80864
1493
1494         Reviewed by Brady Eidson.
1495
1496         Chrome has a command line switch to turn on the page cache.
1497         Currently it doesn't work, but it can cause the PageCache reasons
1498         for failure count to read lower than it should.  Add a new
1499         histogram to report the corrected value.
1500
1501         * history/PageCache.cpp:
1502         (WebCore::logCanCachePageDecision):
1503
1504 2012-03-13  George Staikos  <staikos@webkit.org>
1505
1506         Fix signed/unsigned mismatch compiler warnings.
1507         https://bugs.webkit.org/show_bug.cgi?id=80790
1508
1509         Reviewed by Alexey Proskuryakov.
1510
1511         * loader/icon/IconDatabase.cpp:
1512         (WebCore::IconDatabase::synchronousLoadDecisionForIconURL):
1513         * platform/network/MIMESniffing.cpp:
1514
1515 2012-03-13  Sheriff Bot  <webkit.review.bot@gmail.com>
1516
1517         Unreviewed, rolling out r110510.
1518         http://trac.webkit.org/changeset/110510
1519         https://bugs.webkit.org/show_bug.cgi?id=80987
1520
1521         depends on chromium r 125700, which isn't rolled into webkit
1522         yet :-/ (Requested by thakis_ on #webkit).
1523
1524         * WebCore.gyp/mac/adjust_visibility.sh:
1525
1526 2012-03-13  Gavin Peters  <gavinp@chromium.org>
1527
1528         Make ApplicationCacheHost::canCacheInPageCache() non-const.
1529         https://bugs.webkit.org/show_bug.cgi?id=80904
1530
1531         Reviewed by Alexey Proskuryakov.
1532
1533         A const pointer to a large object like ApplicationCacheHost is not our standard
1534         practice; so remove this (implicit) one.  See also https://bugs.webkit.org/show_bug.cgi?id=80898
1535
1536         * loader/appcache/ApplicationCacheHost.cpp:
1537         (WebCore::ApplicationCacheHost::canCacheInPageCache):
1538         * loader/appcache/ApplicationCacheHost.h:
1539         (ApplicationCacheHost):
1540
1541 2012-03-13  Stephen Chenney  <schenney@chromium.org>
1542
1543         Crash in WebCore::GraphicsContext::paintingDisabled
1544         https://bugs.webkit.org/show_bug.cgi?id=80669
1545
1546         Reviewed by Nikolas Zimmermann.
1547
1548         The SVGImageBufferTools::clipToImageBuffer method deletes the clip
1549         image when it thinks it is not needed. However, there are cases when
1550         it is in fact still needed, particularly when the clip buffer is
1551         coming from higher up in the stack where it may be needed again.
1552
1553         So this patch adds a flag to only allow deletion of the image buffer
1554         if it was created at the most recent call site.
1555
1556         Tests: svg/custom/circular-clip-path-references-crash-expected.svg
1557                svg/custom/circular-clip-path-references-crash.svg
1558
1559         * rendering/svg/RenderSVGResourceClipper.cpp:
1560         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
1561         * rendering/svg/RenderSVGResourceGradient.cpp:
1562         (WebCore::clipToTextMask):
1563         * rendering/svg/RenderSVGResourceMasker.cpp:
1564         (WebCore::RenderSVGResourceMasker::applyResource):
1565         * rendering/svg/SVGImageBufferTools.cpp:
1566         (WebCore::SVGImageBufferTools::clipToImageBuffer):
1567         * rendering/svg/SVGImageBufferTools.h:
1568         (SVGImageBufferTools):
1569
1570 2012-03-13  Gavin Peters  <gavinp@chromium.org>
1571
1572         Fix an enumeration name in ReasonsFrameCannotBeInPageCache.
1573         https://bugs.webkit.org/show_bug.cgi?id=80849
1574
1575         Reviewed by Brady Eidson.
1576
1577         It seems that somebody goofed, and named one of the
1578         ReasonsFrameCannotBeInPageCache antonymically.
1579
1580         * history/PageCache.cpp:
1581         (WebCore::logCanCacheFrameDecision):
1582
1583 2012-03-12  Kinuko Yasuda  <kinuko@chromium.org>
1584
1585         File upload control should use File.name() rather than File.path() to show chosen filenames
1586         https://bugs.webkit.org/show_bug.cgi?id=80970
1587
1588         In some rare cases (e.g. files from FileSystem API or files created
1589         using the newly added WebKit API) File.name has different displayName
1590         from the basename of file.path, and in the file uploader controller we
1591         should use File.name rather than File.path.
1592
1593         Reviewed by Kent Tamura.
1594
1595         No new tests: existing tests should pass as this should not change
1596         behavior in regular use cases.  (New behavior where File.name differs
1597         from File.path can be only tested in chromeos environment, therefore
1598         not adding new tests for that)
1599
1600         * platform/gtk/RenderThemeGtk.cpp:
1601         (WebCore::RenderThemeGtk::fileListNameForWidth): Updated to handle FileList.
1602         * platform/gtk/RenderThemeGtk.h:
1603         * platform/qt/RenderThemeQt.cpp:
1604         (WebCore::RenderThemeQt::fileListNameForWidth): Updated to handle FileList.
1605         * platform/qt/RenderThemeQt.h:
1606         * rendering/RenderFileUploadControl.cpp:
1607         (WebCore::RenderFileUploadControl::fileTextValue): Changed to pass FileList rather than FileList->paths().
1608         * rendering/RenderTheme.cpp:
1609         (WebCore::RenderTheme::fileListNameForWidth): Updated to handle FileList and use File.name for displaying the file name.
1610         * rendering/RenderTheme.h:
1611         * rendering/RenderThemeMac.h:
1612         * rendering/RenderThemeMac.mm:
1613         (WebCore::RenderThemeMac::fileListNameForWidth): Updated to handle FileList.
1614
1615 2012-03-13  Kinuko Yasuda  <kinuko@chromium.org>
1616
1617         Allow WebFileChooser to return extra file info (like displayName) in addition to mere file paths
1618         https://bugs.webkit.org/show_bug.cgi?id=80719
1619
1620         Reviewed by Kent Tamura.
1621
1622         No new tests: this change itself shouldn't change existing behavior.
1623
1624         * fileapi/File.cpp:
1625         (WebCore::createBlobDataForFileWithName): Renamed from createBlobDataForFileSystemFile.
1626         * fileapi/File.h:
1627         * html/FileInputType.cpp:
1628         (WebCore::FileInputType::saveFormControlState): Updated to handle File.name.
1629         (WebCore::FileInputType::restoreFormControlState): Ditto.
1630         (WebCore::FileInputType::setFileList): Changed the signature to take
1631         FileChooserFileInfo.
1632         (WebCore::FileInputType::filesChosen): Ditto.
1633         (WebCore::FileInputType::receiveDroppedFiles):
1634         * html/FileInputType.h:
1635         (FileInputType):
1636         * platform/FileChooser.cpp:
1637         (WebCore::FileChooser::chooseFiles): Added an overloaded method that
1638         takes FileChooserFileInfo.
1639         (WebCore):
1640         * platform/FileChooser.h:
1641         (WebCore::FileChooserFileInfo::FileChooserFileInfo): Added.
1642         * platform/MIMETypeRegistry.cpp:
1643         (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Removed surrouonding ifdefs as this function is now used even if FILE_SYSTEM is not enabled.
1644         * platform/MIMETypeRegistry.h:
1645         (MIMETypeRegistry):
1646
1647 2012-03-13  Vsevolod Vlasov  <vsevik@chromium.org>
1648
1649         Unreviewed inspector compilation module name fix after r110550.
1650
1651         * inspector/compile-front-end.py:
1652
1653 2012-03-12  Vsevolod Vlasov  <vsevik@chromium.org>
1654
1655         Web Inspector: Changes to the list of scripts for front-end compilation should not require update of number of scripts in module.
1656         https://bugs.webkit.org/show_bug.cgi?id=80872
1657
1658         Reviewed by Pavel Feldman.
1659
1660         * inspector/compile-front-end.py: Added.
1661         * inspector/compile-front-end.sh:
1662
1663 2012-03-12  Pavel Podivilov  <podivilov@chromium.org>
1664
1665         Web Inspector: move ResourceScriptMapping to a separate file.
1666         https://bugs.webkit.org/show_bug.cgi?id=80859
1667
1668         Reviewed by Vsevolod Vlasov.
1669
1670         * WebCore.gypi:
1671         * WebCore.vcproj/WebCore.vcproj:
1672         * inspector/compile-front-end.sh:
1673         * inspector/front-end/ResourceScriptMapping.js: Copied from Source/WebCore/inspector/front-end/ScriptMapping.js.
1674         (WebInspector.ResourceScriptMapping):
1675         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
1676         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
1677         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeListChanged):
1678         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeListChanged):
1679         (WebInspector.ResourceScriptMapping.prototype._bindScriptToRawSourceCode):
1680         (WebInspector.ResourceScriptMapping.prototype.setFormatSource):
1681         (WebInspector.ResourceScriptMapping.prototype.forceUpdateSourceMapping):
1682         (WebInspector.ResourceScriptMapping.prototype.reset):
1683         * inspector/front-end/ScriptMapping.js:
1684         * inspector/front-end/WebKit.qrc:
1685         * inspector/front-end/inspector.html:
1686
1687 2012-03-12  Kentaro Hara  <haraken@chromium.org>
1688
1689         Rename OptionsObject to Dictionary
1690         https://bugs.webkit.org/show_bug.cgi?id=80802
1691
1692         Reviewed by Adam Barth.
1693
1694         For clarification, rename OptionsObject.{h,cpp} to Dictionary.{h,cpp}.
1695         This patch just renames and sorts alphabetically.
1696
1697         No tests. No change in behavior.
1698
1699         * GNUmakefile.list.am:
1700         * Modules/indexeddb/IDBDatabase.cpp:
1701         (WebCore::IDBDatabase::createObjectStore):
1702         * Modules/indexeddb/IDBDatabase.h:
1703         (WebCore::IDBDatabase::createObjectStore):
1704         (IDBDatabase):
1705         * Modules/indexeddb/IDBDatabase.idl:
1706         * Modules/indexeddb/IDBKeyRange.h:
1707         * Modules/indexeddb/IDBObjectStore.cpp:
1708         (WebCore::IDBObjectStore::createIndex):
1709         * Modules/indexeddb/IDBObjectStore.h:
1710         (WebCore::IDBObjectStore::createIndex):
1711         (IDBObjectStore):
1712         * Modules/indexeddb/IDBObjectStore.idl:
1713         * Target.pri:
1714         * UseV8.cmake:
1715         * WebCore.gypi:
1716         * WebCore.vcproj/WebCore.vcproj:
1717         * bindings/js/Dictionary.h: Renamed from Source/WebCore/bindings/js/OptionsObject.h.
1718         (WebCore):
1719         (Dictionary):
1720         (WebCore::Dictionary::Dictionary):
1721         (WebCore::Dictionary::isObject):
1722         (WebCore::Dictionary::isUndefinedOrNull):
1723         (WebCore::Dictionary::get):
1724         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
1725         * bindings/js/IDBBindingUtilities.cpp:
1726         (WebCore::createDictionaryFromValue):
1727         * bindings/js/IDBBindingUtilities.h:
1728         (WebCore):
1729         * bindings/scripts/CodeGeneratorJS.pm:
1730         (JSValueToNative):
1731         * bindings/scripts/CodeGeneratorV8.pm:
1732         (GenerateHeader):
1733         (GenerateParametersCheck):
1734         (GenerateEventConstructorCallback):
1735         (GetNativeType):
1736         (JSValueToNative):
1737         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
1738         (WebDOMTestObj::optionsObject):
1739         * bindings/scripts/test/CPP/WebDOMTestObj.h:
1740         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
1741         (webkit_dom_test_obj_options_object):
1742         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1743         * bindings/scripts/test/JS/JSTestObj.cpp:
1744         (WebCore::jsTestObjPrototypeFunctionIdbKey):
1745         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
1746         * bindings/scripts/test/ObjC/DOMTestObj.h:
1747         * bindings/scripts/test/ObjC/DOMTestObj.mm:
1748         (-[DOMTestObj optionsObject:ooo:]):
1749         * bindings/scripts/test/TestObj.idl:
1750         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1751         (WebCore::V8TestEventConstructor::constructorCallback):
1752         (WebCore::fillTestEventConstructorInit):
1753         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1754         (WebCore):
1755         * bindings/scripts/test/V8/V8TestObj.cpp:
1756         (WebCore::TestObjInternal::optionsObjectCallback):
1757         * bindings/v8/Dictionary.cpp: Renamed from Source/WebCore/bindings/v8/OptionsObject.cpp.
1758         (WebCore):
1759         (WebCore::Dictionary::Dictionary):
1760         (WebCore::Dictionary::~Dictionary):
1761         (WebCore::Dictionary::operator=):
1762         (WebCore::Dictionary::isObject):
1763         (WebCore::Dictionary::isUndefinedOrNull):
1764         (WebCore::Dictionary::getKey):
1765         (WebCore::Dictionary::get):
1766         (WebCore::Dictionary::getWithUndefinedOrNullCheck):
1767         * bindings/v8/Dictionary.h: Renamed from Source/WebCore/bindings/v8/OptionsObject.h.
1768         (WebCore):
1769         (Dictionary):
1770         * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
1771         (WebCore::V8WebKitMutationObserver::observeCallback):
1772
1773 2012-03-12  Nikolas Zimmermann  <nzimmermann@rim.com>
1774
1775         SVG Animations update baseVal instead of animVal
1776         https://bugs.webkit.org/show_bug.cgi?id=12437
1777
1778         Reviewed by Dirk Schulze.
1779
1780         Begin implementing the last missing core piece of the SVG DOM: proper animVal support.
1781         Most SVG DOM interfaces exposing eg. lengths use SVGAnimatedLength. eg. from SVGRectElement:
1782         "readonly attribute SVGAnimatedLength x;" SVGAnimatedXXX contains following methods:
1783         "readonly attribute SVGLength baseVal; readonly attribute SVGLength animVal;"
1784         From SVG DOM perspective, animVal and baseVal are two distinctive objects, animVal != baseVal.
1785         Its underlying value is the same though, if no animation is running on that attribute.
1786
1787         As soon as a SMIL animation starts animating an SVGAnimated* target attribute, its
1788         baseVal and animVal may begin to differ. The animVal always reflect the current animated
1789         value (including all effects of additive/accumulated animations) which is shown on screen
1790         when eg animating the width of a <rect>. The baseVal is is equal to the underlying XML
1791         property value / SVG DOM value, but may be influenced through dynamic changes.
1792         (Consider changing rect1.width.baseVal.value while 'width' is animated)
1793
1794         During the last year we prepared our animation code to turn on animVal support.
1795         This patch adds the last missing pieces to turn on animVal support for the SVGLength.
1796         SVGLengthList and all other types will follow, one after the other.
1797
1798         I've decided to write an exhaustive ChangeLog, as this as the base for any future
1799         work in this area - hopefully making this more reviewable.
1800
1801         Tests: svg/animations/additive-from-to-width-animation.html
1802                svg/animations/additive-values-width-animation.html
1803                svg/animations/change-baseVal-while-animating-fill-freeze-2.html
1804                svg/animations/change-baseVal-while-animating-fill-freeze.html
1805                svg/animations/change-baseVal-while-animating-fill-remove-2.html
1806                svg/animations/change-baseVal-while-animating-fill-remove.html
1807                svg/animations/change-target-while-animating-SVG-property.html
1808                svg/animations/multiple-animations-fill-freeze.html
1809                svg/animations/remove-animation-element-while-animation-is-running.html
1810                svg/repaint/repainting-after-animation-element-removal.svg
1811
1812         * svg/SVGAnimateElement.cpp: Remove unnecessary std namespace inclusion.
1813         (WebCore::SVGAnimateElement::SVGAnimateElement): Remove now-obsolete m_aboutToStopAnimation.
1814         (WebCore::SVGAnimateElement::calculateAnimatedValue): Swap assertion order, to test hasTagName() _before_ casting.
1815         (WebCore::SVGAnimateElement::resetToBaseValue):
1816             Stop relying on the cached baseValue (breaking additive="sum"+values animation) for SVG DOM primitive animations.
1817             Avoid any string roundtrips previously needed to reset the SVGAnimatedType to the base value. Just grab the
1818             currentBaseValue() from the associated SVGAnimatedProperty, which includes all dynamic changes to the baseVal
1819             either by SVG DOM or setAttribute() calls - this way we don't need to utilize the buggy cache in SMILTimeContainer,
1820             which can be removed once all SVG DOM primitive types switched to the new animVal concept.
1821
1822             NOTE: When multiple animations of the same attribute are applied to a target element, resetToBaseValue() will be called
1823             for the highest priority SVGSMILElement, on every animation step! Consider two <animate> elements, applied to a target
1824             <rect> which both animate the 'x' attribute, one from 0s to 2s, the other from 4s to 6s. The last <animate> element
1825             will reuse the SVGAnimatedType m_animatedType from the first <animate> element, and never create an own m_animatedType.
1826             When the animation starts the first time at 0s, we update the rect.x.animVals SVGLength* pointer, to point to the
1827             SVGAnimatedType of the first <animate> element, owning the m_animatedType. From that point on each call to rect.x.animVal
1828             will always return the same value as the SVGAnimatedType of the first <animate> element holds. Now after 2s the first
1829             <animate> element becomes inactive, but its m_animatedType remains alive. The bindings don't notice this change at all.
1830             Now at 4s, the second animation element gets active. It reuses the SVGAnimatedType of the first <animate> element, and
1831             applies its animation changes to that SVGAnimatedType, which is immediately reflected in the bindings w/o any additional
1832             work. It's very important for the understanding when animationStarted/animationEnded need to be called.
1833
1834         (WebCore::SVGAnimateElement::applyResultsToTarget): Remove now-obsolete m_aboutToStopAnimation logic. No need to know it at this point.
1835         (WebCore::SVGAnimateElement::targetElementWillChange):
1836             Renamed from targetElementDidChange(). This method is called from SVGSMILElement for following conditions:
1837             - animation element is destructed
1838             - animation element is removed from document
1839             - target element of animation is destructed
1840             - target element of animation is removed from document
1841             - target element of animation changes id
1842
1843             Whenever any of this happens, we need to reset the animVal. Resetting the animVal involves resetting the PropertyType* pointer,
1844             eg. SVGLength*, from the animVal property tear off, belonging to a certain SVGAnimatedProperty (eg. rect.x) to the initial
1845             value again, which is the 'm_x' of the SVGRectElement. This is needed as the SVGAnimatedType the animVal currently points to,
1846             if an animation is/was running, is destructed in targetElementWillChange(), to reset the SVGAnimateElement to the initial
1847             state before it received a target. This is the only place which destructed the m_animatedType, and thus the only place that
1848             needs to take care of resetting the animVal pointers.
1849
1850         * svg/SVGAnimatedLength.cpp:
1851         (WebCore::SVGAnimatedLengthAnimator::constructFromCopy):
1852             Add a new constructFromCopy(SVGGenericAnimatedType) function to SVGAnimatedLengthAnimator.
1853             It takes a type-unsafe SVGGenericAnimatedType - the caller has to guarantee the type matches.
1854             This is strictly enforced for the single caller of constructFromCopy, and guaranteed to be safe.
1855
1856         * svg/SVGAnimatedLength.h: Add new constructFromCopy method, which is used to avoid string-roundtrips when resetting to base values.
1857         * svg/SVGAnimatedType.cpp:
1858         (WebCore::SVGAnimatedType::supportsAnimVal): Only returns true for AnimatedLength, for now.
1859         (WebCore::SVGAnimatedType::setVariantValue): Takes a SVGGenericAnimatedType, assuming the type matches. Callers have to guarantee type-safety!
1860         * svg/SVGAnimatedType.h:
1861         (SVGAnimatedType): Add new static supportsAnimVal(AnimatedPropertyType) function.
1862         (WebCore::SVGAnimatedType::variantValue): Add a generic accessor for all animated types, called variant(). Only one place uses this.
1863         * svg/SVGAnimatedTypeAnimator.h:
1864         (WebCore::SVGAnimatedTypeAnimator::constructFromCopy):
1865             New method to construct an eg. SVGAnimatedLengthAnimator right from a SVGLength, instead of a String.
1866             In that case the SVGAnimatedType just stores a pointer to the underlying SVGLength, no copying and or other roundtrips involved.
1867
1868         * svg/SVGAnimationElement.cpp:
1869         (WebCore::SVGAnimationElement::svgAttributeChanged):
1870             Implement this instead of attributeChanged. The previous implementation reset the animation state to Inactive, causing a full
1871             rebuild, whenever any attribute changes, even though it might not be related for the animation element, eg.
1872             animate.setAttribute("stdDeviationX", "foobar"). Fix that by checking if we support the attribute (keyTimes/keySplines/etc..)
1873             , if not pass it on to SVGSMILElement (which supports begin/end/etc..) to check if it can handle that.
1874
1875         (WebCore::SVGAnimationElement::animationAttributeChanged):
1876             Called from our svgAttributeChanged, and/or from SVGSMILElement::svgAttributeChanged, whenever a _known_ attribute has changed.
1877             This sledgehammer should be used with care, instead of each time attributeChanged() is called :-)
1878
1879         (WebCore::setTargetAttributeAnimatedCSSValue):
1880             Remove support for removing properties from the override style sheet. I've added this optimization too early, we should reevaluate
1881             this once more types support animVal. It currently complexifies the logic too much, requiring setAttributeAnimatedValue to know
1882             if the animation ends (and that's not easy to figure out, at least not using started/endedActiveInterval, as I anticipated).
1883
1884         (WebCore::findMatchingAnimatedProperty):
1885             Add helper functions which retrieves a SVGAnimatedProperty* for a given SVGElement* targetElement, an attributeName, and an attribute
1886             type. eg. findMatchingAnimatedProperty(myRectElement, SVGNames::xAttr, AnimatedLength) returns the SVGAnimatedProperty which is
1887             exposed to JS, that holds: SVGProperty* baseVal, and SVGProperty* animVal. (Lazily created if they got accessed from JS.). This is
1888             used to update the animVal pointing to a new eg. SVGLength* value, once animation has started, to make rect->x() return that new
1889             SVGLength* value (internally), and to reflect the current animated value in rect.x.animVal.value from JS.
1890
1891         (WebCore::SVGAnimationElement::applyAnimatedValue): Refactored from setTargetAttributeAnimatedValue, to simplify the code.
1892         (WebCore::notifyAnimatedPropertyAboutAnimationBeginEnd):
1893             Helper function to share code betweeen animationStarted/animationEnded.
1894             It takes a SVGAnimatedProperty* and a SVGAnimatedType* which may be zero, indicating that the animation ended.
1895             It calls animationStarted/animationEnded on the given SVGAnimatedProperty, to update the animVal state.
1896             It also figures out all instances of the target element, and their SVGAnimatedProperties that may need updating.
1897
1898         (WebCore::SVGAnimationElement::animationStarted): Uses the helper above, passing on the given animatedType.
1899         (WebCore::SVGAnimationElement::animationEnded): Uses the helper above, passing 0 as animatedType.
1900         (WebCore::InstanceUpdateBlocker::InstanceUpdateBlocker):
1901             Added new helper struct, doing element->setInstancesUpdatedBlock(true) on construction and setInstancesUpdatesBlocked(false) on
1902             destruction, making it impossible to forget one. If we ever rewrite svgAttributeChanged & co to auto-update the cloned instances,
1903             this can go away.
1904
1905         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
1906             Now takes an SVGAnimatedType* instead of a String parameter. In order to avoid string-roundtrips for animVal support, let us
1907             decide if we need to construct a String out of it, or not. For animations supporting animVal (only SVGLength) we don't need
1908             to update any attribute or animVal pointer here, that happens automatically! We only need to notify the targetElement eg,
1909             that its xAttr changed! Previously we had to call targetElement->setAttribute("x", "...") on every animation step for
1910             SVGLength animations - that's gone now! The SVGAnimatedType pointers remains the same during the whole animation, so there's
1911             no need to call animationStarted() at each animated step!
1912
1913         (WebCore::SVGAnimationElement::animatedPropertyForType):
1914             Helper function returning a SVGAnimatedProperty* for the current target element & current target attribute, if the
1915             current animation is running on a type supporting animVal (SVGLength), or returning 0. This is needed for SVGAnimateElement.
1916             Reuses the existing findMatchingAnimatedProperty code.
1917
1918         * svg/SVGAnimationElement.h:
1919         * svg/animation/SMILTimeContainer.cpp:
1920         (WebCore::SMILTimeContainer::updateAnimations):
1921             Add comment to clarify why caching baseValues is just wrong. For SVGLength animations the problem is now gone.
1922             This is exercised using the new additive-from-to-width-animation.html & additive-values-width-animation.html tests.
1923
1924         * svg/animation/SVGSMILElement.cpp:
1925         (WebCore::SVGSMILElement::removedFromDocument):
1926             Since animVal requires that the SVGAnimatedProperties are correctly reset if an animation element is removed from the document,
1927             we have to call targetElementWillChange(0) from here. That requires to move the "m_attributeName = anyQName()" line down,
1928             otherwise targetElementWillChange() would early exit, as no valid attributeName was specified.
1929             
1930             This is verified using the new svg/animations/remove-animation-element-while-animation-is-running.html
1931             and svg/repaint/repainting-after-animation-element-removal.svg tests.
1932
1933         (WebCore::SVGSMILElement::isSupportedAttribute): Add function like all SVG*Elements have identifying their supported attributes.
1934         (WebCore::SVGSMILElement::svgAttributeChanged):
1935             Implement svgAttributeChanged instead of attributeChanged. Only take action if the attribute is actually supported.
1936             If one of the common attributes like begin/end/etc. changed, be sure to call animationAttributeChanged() so that our
1937             ancestor-classes get notified about this and can take action as well. NOTE: This is not about animating begin/end attributes,
1938             but about pure DOM changes. begin/end/et.. are not exposed to the SVG DOM, we still reuse the svgAttributeChanged logic
1939             for consistency. (This does NOT make those attributes animatable, nothing this here as it came up while reviewing).
1940     
1941         (WebCore::SVGSMILElement::targetElement): Adapt logic to targetElementDidChange -> targetElementWillChange change.
1942         (WebCore::SVGSMILElement::targetElementWillChange):
1943             Renamed from targetElementDidChange. Added "oldTarget" as parameter as well. Our ancestor-classes like SVGAnimateElement
1944             use this to properly deregister the animVal in the old target, before resetting the SVGAnimatedType, otherwise we'd leave
1945             dangling pointers around (verified manually by guard malloc runs, that none of this happens).
1946
1947             Also add a default implementation here in targetElementWillChange, that ancestor classes have to call.
1948             Now we properly call endedActiveInterval() if the m_activeState is currently Active, so that animations are shut-down
1949             just like if the animation properly ends (use the same cleanup routines, etc.). Not doing that now leads to assertions.
1950
1951         (WebCore::SVGSMILElement::resetTargetElement):
1952             Instead of forcing m_activeState to be inactive, use the standard methods to end the animation.
1953             targetElementWillChange(m_targetElement, 0) and animationAttributeChanged().
1954
1955             resetTargetElement() is only called by SVGDocumentExtensions::removeAllAnimationElementsFromTarget() for following conditions:
1956             - targetElement gets destructed
1957             - targetElement gets removed from the document
1958             - targetElement id changes
1959
1960             If the targetElement gets destructed or removed, no actions need to be taken, as the SVGAnimatedPropertys are teared down
1961             as well. But if only the id changes, we still have to properly disconnect the animVals - this is all handled through
1962             targetElementWillChange now - that's why this has to be called from here as well.
1963             That explains why targetElementWillChange() now needs to check if the targetElement is destructing or not.
1964
1965         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
1966             Pass the AnimatedPropertyType from the SVGPropertyInfo to the SVGAnimatedProperties.
1967             Requires mechanic changes in all SVGAnimated* classes. We need acccess to the AnimatedPropertyType
1968             to verify the SVGAnimatedType objects, passed to animationStarted, match our type. This is to enforce
1969             strict type-checking, whenever SVGGenericAnimatedTypes are passed around.
1970
1971         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
1972         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
1973         * svg/properties/SVGAnimatedListPropertyTearOff.h: Ditto.
1974         (WebCore::SVGAnimatedListPropertyTearOff::create):
1975         (WebCore::SVGAnimatedListPropertyTearOff::SVGAnimatedListPropertyTearOff):
1976         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h: Ditto.
1977         (WebCore::SVGAnimatedPathSegListPropertyTearOff::create):
1978         (WebCore::SVGAnimatedPathSegListPropertyTearOff::SVGAnimatedPathSegListPropertyTearOff):
1979         * svg/properties/SVGAnimatedProperty.h: Store AnimatedPropertyType, add accessors.
1980         (WebCore::SVGAnimatedProperty::animatedPropertyType): Add accessor.
1981         (WebCore::SVGAnimatedProperty::animationValueChanged): New animVal related functions to be implemented in the animated tear offs.
1982         (WebCore::SVGAnimatedProperty::animationStarted): Ditto.
1983         (WebCore::SVGAnimatedProperty::animationEnded): Ditto.
1984         (WebCore::SVGAnimatedProperty::currentBaseValue):
1985             Generic accessor for the baseVal: returns a SVGGenericAnimatedType.
1986             It takes an AnimatedPropertyType as input, that's only needed to verify that the type we're returning matches
1987             the expectation of the caller. If not, return 0 to avoid any potential casting mistakes, which would lead to crashes.
1988
1989         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty): Store m_animatedPropertyType.
1990         * svg/properties/SVGAnimatedPropertyTearOff.h:
1991         (WebCore::SVGAnimatedPropertyTearOff::create): Same changes as in the other tear offs: pass around AnimatedPropertyType.
1992         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValue): Returns &m_property, if the type matches (see above).
1993         (SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
1994         (WebCore::SVGAnimatedPropertyTearOff::animationValueChanged): No-op for non list types, don't need to do anything here.
1995         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
1996         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
1997             Store the currently animated value in the animVal() property tear off, that's also re-used as-is for the JS bindings.
1998             As this is important, here's an example of how this affects methods like rect->x() used in the renderers.
1999
2000             Setting m_isAnimating to true, redirects any rect->x() calls that previously returned rect->m_x, to
2001             rect->xAnimated()->animVal()->propertyReference() (which returns the same SVGLength& that the SVGAnimatedElement
2002             m_animatedType contains). Calling rect->setXBaseValue() still modifies rect->m_x, and is used by all parseAttribute()
2003             methods in svg/ as setAttribute() calls only ever modify the "baseValue", never the current animated value.
2004             rect.x.baseVal will return a SVGLength object corresponding to rect->m_x.
2005             rect.x.animVal will return a SVGLength object corresponding to rect->xAnimated()->animVal()->propertyReference().
2006
2007             These implementation details are all hidden in the SVGAnimatedPropertyMacros. Here's an example from SVGRectElement:
2008             DECLARE_ANIMATED_LENGTH(X, x) -> Replace PropertyType with 'SVGLength', LowerProperty with 'x', and UpperProperty with 'X'.
2009
2010             PropertyType& LowerProperty() const
2011             {
2012                 if (TearOffType* wrapper = SVGAnimatedProperty::lookupWrapper<UseOwnerType, TearOffType, IsDerivedFromSVGElement<UseOwnerType>::value>(this, LowerProperty##PropertyInfo())) {
2013                     if (wrapper->isAnimating())
2014                         return wrapper->currentAnimatedValue();
2015                 }
2016                 return m_##LowerProperty.value;
2017             }
2018
2019             PropertyType& LowerProperty##BaseValue() const
2020             {
2021                 return m_##LowerProperty.value;
2022             }
2023
2024             void set##UpperProperty##BaseValue(const PropertyType& type)
2025             {
2026                 m_##LowerProperty.value = type;
2027             }
2028
2029             Any code outside of svg/, eg. in rendering/svg, does not need to care about any baseVal/animVal differences.
2030             During layout eg. RenderSVGRect calls rect->x().value(someLengthContext) to get the current 'x' as float. If an animation
2031             is running on that rect element it will automatically retrieve the last set animated value here - all under the hood.
2032             I hope that sheds some light in those myserious functions, they were designed with animVal in mind, but we never had that until now :-)
2033
2034         (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff): Pass around AnimatedPropertyType.
2035         (WebCore::SVGAnimatedPropertyTearOff::~SVGAnimatedPropertyTearOff): Add destructor to debug builds veryifing that m_isAnimating is false.
2036         * svg/properties/SVGAnimatedStaticPropertyTearOff.h: Ditto.
2037         (WebCore::SVGAnimatedStaticPropertyTearOff::create):
2038         (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
2039         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h: Ditto.
2040         (WebCore::SVGAnimatedTransformListPropertyTearOff::create):
2041         (WebCore::SVGAnimatedTransformListPropertyTearOff::SVGAnimatedTransformListPropertyTearOff):
2042         * svg/properties/SVGPropertyInfo.h: Add SVGGenericAnimatedType definition.
2043         * svg/properties/SVGPropertyTearOff.h: Remove obsolete updateAnimVal method - switched to using setValue directly.
2044
2045 2012-03-13  Luke Macpherson   <macpherson@chromium.org>
2046
2047         Implement CSSPropertyTextOverflow in CSSStyleApplyProperty.
2048         https://bugs.webkit.org/show_bug.cgi?id=80934
2049
2050         Reviewed by Andreas Kling.
2051
2052         No new tests / refactoring only.
2053
2054         * css/CSSStyleApplyProperty.cpp:
2055         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2056         * css/CSSStyleSelector.cpp:
2057         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2058
2059 2012-03-12  Matt Falkenhagen  <falken@chromium.org>
2060
2061         Switch Chromium from LocaleToScriptMappingICU.cpp to LocaleToScriptMappingDefault.cpp
2062         https://bugs.webkit.org/show_bug.cgi?id=80935
2063
2064         Reviewed by Kent Tamura.
2065
2066         ICU seems to have issues with non-well-formed locale strings.
2067         Currently, the only port that uses LocaleToScriptMappingICU.cpp is
2068         Chromium.
2069
2070         No new tests. LocaleToScriptMappingDefault.cpp is already used by
2071         other ports and covered by existing tests.
2072
2073         * WebCore.gyp/WebCore.gyp:
2074
2075 2012-03-12  Benjamin Poulain  <bpoulain@apple.com>
2076
2077         Fix IndexedDB build with JSC
2078         https://bugs.webkit.org/show_bug.cgi?id=80207
2079
2080         Reviewed by Adam Barth.
2081
2082         This fixes the build of WebKit when IndexedDB is enabled. Most functions were added
2083         empty implementation, it compiles but IndexedDB is not working.
2084
2085         * DerivedSources.make: Added missing IDL files.
2086         * Modules/indexeddb/IDBDatabaseBackendImpl.h: Fix warnings and build errors.
2087         (IDBDatabaseBackendImpl):
2088         * Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp: ditto.
2089         (WebCore::IDBDatabaseCallbacksImpl::unregisterDatabase): ditto.
2090         * Modules/indexeddb/IDBFactoryBackendImpl.cpp: ditto.
2091         (WebCore::IDBFactoryBackendImpl::openBackingStore):
2092         * Modules/indexeddb/IDBIndexBackendImpl.cpp: ditto.
2093         (WebCore::IDBIndexBackendImpl::countInternal):
2094         * Modules/indexeddb/IDBKeyPathBackendImpl.cpp: Fix the method signature and add
2095         an empty implementation.
2096         (WebCore):
2097         (WebCore::IDBKeyPathBackendImpl::createIDBKeysFromSerializedValuesAndKeyPath):
2098         (WebCore::IDBKeyPathBackendImpl::injectIDBKeyIntoSerializedValue):
2099         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Fix warnings.
2100         (WebCore::IDBObjectStoreBackendImpl::countInternal):
2101         * Modules/indexeddb/IDBPendingTransactionMonitor.cpp: ditto.
2102         (WebCore::transactions):
2103         * Modules/indexeddb/IDBRequest.cpp: ditto.
2104         (WebCore::IDBRequest::resetReadyState):
2105         * Modules/indexeddb/IDBRequest.h: ditto.
2106         (WebCore::IDBRequest::onSuccessWithPrefetch):
2107         (WebCore):
2108         (WebCore::JSIDBVersionChangeRequest::visitChildren):
2109         * WebCore.xcodeproj/project.pbxproj:
2110         * bindings/js/IDBBindingUtilities.cpp:
2111         (WebCore::createIDBKeyFromValue): Fix the creation of IDBKeys.
2112         (WebCore::createOptionsObjectFromValue): Add an empty implementation of
2113         the handling of database options (IDBObjectStoreParameters).
2114         (WebCore):
2115         * bindings/js/IDBBindingUtilities.h:
2116         (WebCore):
2117         * bindings/js/JSIDBAnyCustom.cpp:
2118         (WebCore::toJS): Add the missing IDBAny's types.
2119         * bindings/js/JSIDBKeyCustom.cpp:
2120         (WebCore::toJS): Add the missing IDBKey's types.
2121         * bindings/js/JSIDBVersionChangeRequestCustom.cpp: Added.
2122         IDBVersionChangeRequest has the attribute EventTarget so it requires
2123         the visitChildren() function. An empty implementation was added.
2124         * bindings/js/OptionsObject.h: Add an empty implementation.
2125         (WebCore):
2126         (OptionsObject):
2127         (WebCore::OptionsObject::OptionsObject):
2128         (WebCore::OptionsObject::isObject):
2129         (WebCore::OptionsObject::isUndefinedOrNull):
2130         (WebCore::OptionsObject::get):
2131         (WebCore::OptionsObject::getWithUndefinedOrNullCheck):
2132         * bindings/js/SerializedScriptValue.cpp: Add the missing functions needed by IndexedDB.
2133         (WebCore):
2134         (WebCore::SerializedScriptValue::create):
2135         (WebCore::SerializedScriptValue::toWireString):
2136         (WebCore::SerializedScriptValue::createFromWire):
2137         (WebCore::SerializedScriptValue::numberValue):
2138         (WebCore::SerializedScriptValue::deserialize):
2139         * bindings/js/SerializedScriptValue.h:
2140         (SerializedScriptValue):
2141         * bindings/scripts/CodeGeneratorJS.pm: Modify the code generator to:
2142         -Support the IDBKey type correctly.
2143         -Support the OptionsObject type.
2144         -Generate valid function call for static functions.
2145         (GenerateImplementationFunctionCall):
2146         (JSValueToNative):
2147         (NativeToJSValue):
2148         * inspector/InspectorIndexedDBAgent.cpp:
2149         (WebCore):
2150
2151 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2152
2153         Unreviewed, rolling out r110529.
2154         http://trac.webkit.org/changeset/110529
2155         https://bugs.webkit.org/show_bug.cgi?id=80969
2156
2157         breaks mac build (Requested by morrita on #webkit).
2158
2159         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2160         (WebCore::computeUnoccludedContentRect):
2161
2162 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2163
2164         Unreviewed, rolling out r110524.
2165         http://trac.webkit.org/changeset/110524
2166         https://bugs.webkit.org/show_bug.cgi?id=80936
2167
2168         breaks chromium win build. (Requested by morrita on #webkit).
2169
2170         * Target.pri:
2171         * UseV8.cmake:
2172         * WebCore.gypi:
2173         * bindings/scripts/CodeGeneratorJS.pm:
2174         (GenerateHeader):
2175         (GenerateImplementation):
2176         * bindings/scripts/CodeGeneratorV8.pm:
2177         (GenerateHeader):
2178         (GenerateNamedConstructorCallback):
2179         (GenerateImplementation):
2180         * bindings/scripts/IDLAttributes.txt:
2181         * bindings/scripts/test/V8/V8Float64Array.cpp:
2182         (WebCore):
2183         * bindings/scripts/test/V8/V8Float64Array.h:
2184         (V8Float64Array):
2185         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2186         (WebCore):
2187         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2188         (V8TestActiveDOMObject):
2189         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2190         (WebCore):
2191         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2192         (V8TestCustomNamedGetter):
2193         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2194         (WebCore):
2195         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2196         (V8TestEventConstructor):
2197         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2198         (WebCore):
2199         * bindings/scripts/test/V8/V8TestEventTarget.h:
2200         (V8TestEventTarget):
2201         * bindings/scripts/test/V8/V8TestInterface.cpp:
2202         (WebCore):
2203         * bindings/scripts/test/V8/V8TestInterface.h:
2204         (V8TestInterface):
2205         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2206         (WebCore):
2207         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2208         (V8TestMediaQueryListListener):
2209         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2210         (WebCore):
2211         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2212         (V8TestNamedConstructor):
2213         * bindings/scripts/test/V8/V8TestObj.cpp:
2214         (WebCore):
2215         * bindings/scripts/test/V8/V8TestObj.h:
2216         (V8TestObj):
2217         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2218         (WebCore):
2219         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2220         (V8TestSerializedScriptValueInterface):
2221         * bindings/v8/NPV8Object.cpp:
2222         (WebCore::npObjectTypeInfo):
2223         * bindings/v8/V8GCController.cpp:
2224         (WebCore::GrouperVisitor::visitDOMWrapper):
2225         * bindings/v8/WrapperTypeInfo.h:
2226         (WebCore):
2227         (WrapperTypeInfo):
2228         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2229         (WebCore):
2230         (WebCore::toV8):
2231         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2232         (WebCore::toV8):
2233         (WebCore):
2234         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2235         (WebCore):
2236         (WebCore::toV8):
2237         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2238         (WebCore):
2239         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2240         (WebCore::toV8):
2241         (WebCore):
2242         * bindings/v8/custom/V8StyleSheetCustom.cpp:
2243         (WebCore::toV8):
2244         * css/CSSStyleSheet.idl:
2245         * css/StyleSheet.idl:
2246         * dom/DOMStringMap.idl:
2247         * dom/NamedNodeMap.idl:
2248         * html/DOMTokenList.idl:
2249         * html/track/TextTrackList.idl:
2250
2251 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2252
2253         [V8][Refactoring] Remove getCachedWrapperSlow() from V8Bindings.cpp
2254         https://bugs.webkit.org/show_bug.cgi?id=80924
2255
2256         Reviewed by Adam Barth.
2257
2258         getCachedWrapperSlow() is called by getCachedWrapper() only,
2259         and getCachedWrapperSlow() just calls getCachedWrapperInline().
2260         Thus, this patch expands getCachedWrapperInline() into getCachedWrapper(),
2261         and removes getCachedWrapperSlow().
2262
2263         No tests. No change in behavior.
2264
2265         * bindings/v8/V8DOMWrapper.cpp:
2266         * bindings/v8/V8DOMWrapper.h:
2267         (WebCore::V8DOMWrapper::getCachedWrapper):
2268
2269 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2270
2271         [V8][Refactoring] Remove existingWrapper() from generated code
2272         https://bugs.webkit.org/show_bug.cgi?id=80927
2273
2274         Reviewed by Adam Barth.
2275
2276         Currently wrap() calls existingWrapper(), and existingWrapper()
2277         just calls getCachedWrapper(). We can remove existingWrapper() from the generated code.
2278
2279         Test: bindings/scripts/test/*
2280
2281         * bindings/scripts/CodeGeneratorV8.pm: Removed existingWrapper().
2282         (GenerateHeader):
2283         (GenerateNormalAttrGetter):
2284
2285         * bindings/scripts/test/V8/V8Float64Array.h: Updated run-bindings-tests results.
2286         (V8Float64Array):
2287         (WebCore::V8Float64Array::wrap):
2288         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2289         (V8TestActiveDOMObject):
2290         (WebCore::V8TestActiveDOMObject::wrap):
2291         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2292         (V8TestCustomNamedGetter):
2293         (WebCore::V8TestCustomNamedGetter::wrap):
2294         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2295         (V8TestEventConstructor):
2296         (WebCore::V8TestEventConstructor::wrap):
2297         * bindings/scripts/test/V8/V8TestEventTarget.h:
2298         (V8TestEventTarget):
2299         (WebCore::V8TestEventTarget::wrap):
2300         * bindings/scripts/test/V8/V8TestInterface.h:
2301         (V8TestInterface):
2302         (WebCore::V8TestInterface::wrap):
2303         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2304         (V8TestMediaQueryListListener):
2305         (WebCore::V8TestMediaQueryListListener::wrap):
2306         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2307         (V8TestNamedConstructor):
2308         (WebCore::V8TestNamedConstructor::wrap):
2309         * bindings/scripts/test/V8/V8TestObj.cpp:
2310         (WebCore::TestObjInternal::readOnlyTestObjAttrAttrGetter):
2311         (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
2312         (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
2313         * bindings/scripts/test/V8/V8TestObj.h:
2314         (V8TestObj):
2315         (WebCore::V8TestObj::wrap):
2316         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2317         (V8TestSerializedScriptValueInterface):
2318         (WebCore::V8TestSerializedScriptValueInterface::wrap):
2319
2320 2012-03-12  Dana Jansens  <danakj@chromium.org>
2321
2322         [chromium] Use tileRect instead of pointer derefs
2323         https://bugs.webkit.org/show_bug.cgi?id=80919
2324
2325         Reviewed by Adrienne Walker.
2326
2327         Covered by existing tests.
2328
2329         * platform/graphics/chromium/LayerRendererChromium.cpp:
2330         (WebCore::LayerRendererChromium::drawTileQuad):
2331
2332 2012-03-12  Hans Muller  <hmuller@adobe.com>
2333
2334         SVG should support transform-origin and relative values
2335         https://bugs.webkit.org/show_bug.cgi?id=79068
2336
2337         Reviewed by Dirk Schulze.
2338
2339         Added SVG support for the CSS 'transform-origin' property and for percentage
2340         values in the transform translate function.  The changes conform to
2341         http://dev.w3.org/csswg/css3-transforms/.
2342
2343         Tests: svg/transforms/percent-transform-values.xhtml
2344                svg/transforms/transform-origin-css-property.xhtml
2345
2346         * css/svg.css:
2347         (*):
2348         (html|* > svg):
2349         Default transform-origin for SVG elements is 0 0.
2350
2351         * platform/Length.h:
2352         (WebCore::Length::calcFloatValue):
2353         Added a calcFloatValue overload whose max parameter (for percent lengths) is a float.
2354         The original version will be obsolete when the sub-pixel layout support is completed.
2355
2356         * rendering/style/RenderStyle.cpp:
2357         * rendering/style/RenderStyle.h:
2358         (WebCore):
2359         (WebCore::requireTransformOrigin):
2360         Transforms that only include translations don't depend on the transform-origin.
2361
2362         (WebCore::RenderStyle::applyTransform):
2363         SVG elements interpret non-percentage/keyword transform-origin values relative to their viewport,
2364         unlike HTML which interprets all transform-origin values relative to the element's origin.
2365         The new FloatRect applyTransform() function handles SVG semantics. Similarly, SVG elements interpret
2366         percentage/keyword transform-origin values relative to the origin of their objectBoundingBox(), HTML
2367         uses the borderBox.  All this per http://dev.w3.org/csswg/css3-transforms/.
2368
2369         * svg/SVGStyledTransformableElement.cpp:
2370         (WebCore::SVGStyledTransformableElement::animatedLocalTransform):
2371
2372 2012-03-12  Dana Jansens  <danakj@chromium.org>
2373
2374         [chromium] Use projectQuad to apply inverse mapRect
2375         https://bugs.webkit.org/show_bug.cgi?id=80741
2376
2377         Reviewed by Adrienne Walker.
2378
2379         Unit test: CCOcclusionTrackerTest3dTransform
2380                    CCOcclusionTrackerTestPerspectiveTransform
2381                    CCOcclusionTrackerTestPerspectiveTransformBehindCamera
2382
2383         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
2384         (WebCore::projectQuad):
2385         (WebCore):
2386         (WebCore::computeUnoccludedContentRect):
2387
2388 2012-03-12  Leo Yang  <leo.yang@torchmobile.com.cn>
2389
2390         [BlackBerry] Upstream the BlackBerry change to platform/graphics/FontPlatformData.h
2391         https://bugs.webkit.org/show_bug.cgi?id=80820
2392
2393         Reviewed by Rob Buis.
2394
2395         The BlackBerry is using the FontPlatformData from Chromium porting.
2396
2397         * platform/graphics/FontPlatformData.h:
2398
2399 2012-03-12  Zhenyao Mo  <zmo@google.com>
2400
2401         After webgl canvas resize, bindings might be lost
2402         https://bugs.webkit.org/show_bug.cgi?id=80895
2403
2404         Reviewed by Stephen White.
2405
2406         Test: fast/canvas/webgl/texture-bindings-uneffected-on-resize.html
2407
2408         * html/canvas/WebGLRenderingContext.cpp:
2409         (WebCore):
2410         (WebCore::WebGLRenderingContext::reshape): recover bindings after reshape.
2411
2412 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2413
2414         [V8][Refactoring] Remove getWrapper() and getWrapperSlow()
2415         https://bugs.webkit.org/show_bug.cgi?id=80920
2416
2417         Reviewed by Adam Barth.
2418
2419         Now getWrapper() is the same as getExistingWrapper().
2420         getWrapperSlow() is the same as getExistingWrapperSlow().
2421         This patch removes getWrapper() and getWrapperSlow().
2422         Also this patch renames getExistingWrapper() to getCachedWrapper().
2423
2424         No tests. No change in behavior.
2425
2426         * bindings/scripts/CodeGeneratorV8.pm:
2427         (GenerateHeader):
2428         * bindings/v8/V8DOMWrapper.cpp:
2429         (WebCore::V8DOMWrapper::getWrapperSlow):
2430         * bindings/v8/V8DOMWrapper.h:
2431         (WebCore::V8DOMWrapper::getWrapper):
2432         (V8DOMWrapper):
2433         * bindings/v8/custom/V8NodeCustom.cpp:
2434         (WebCore::toV8Slow):
2435
2436 2012-03-12  Erik Arvidsson  <arv@chromium.org>
2437
2438         [V8] Use v8::V8::AddHiddenReferences instead of SetHiddenValue
2439         https://bugs.webkit.org/show_bug.cgi?id=80880
2440
2441         Reviewed by Adam Barth.
2442
2443         We used to add a hidden property in the getter to the returned wrapper.
2444         With this patch we instead handle the liveness of the wrapper in the GC phase by
2445         calling v8::V8::AddHiddenReference.
2446
2447         To reduce the amount of custom code we need, the V8 code generator now supports
2448         GenerateIsReachable (as well as CustomIsReachable) which, even though different
2449         from the JSC attribute, is used in the same cases and takes the same values (even though
2450         at the moment not all JSC values are supported by V8).
2451
2452         No new tests. Covered by existing tests.
2453
2454         * Target.pri:
2455         * UseV8.cmake:
2456         * WebCore.gypi:
2457         * bindings/scripts/CodeGeneratorJS.pm:
2458         (GetGenerateIsReachable):
2459         (GetCustomIsReachable):
2460         (GenerateHeader):
2461         (GenerateImplementation):
2462         * bindings/scripts/CodeGeneratorV8.pm:
2463         (NeedsToVisitDOMWrapper):
2464         (GetGenerateIsReachable):
2465         (GetCustomIsReachable):
2466         (GenerateVisitDOMWrapper):
2467         (GenerateHeader):
2468         (GenerateNamedConstructorCallback):
2469         (GenerateImplementation):
2470         * bindings/scripts/IDLAttributes.txt:
2471         * bindings/scripts/test/V8/V8Float64Array.cpp:
2472         (WebCore):
2473         * bindings/scripts/test/V8/V8Float64Array.h:
2474         (V8Float64Array):
2475         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2476         (WebCore):
2477         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2478         (V8TestActiveDOMObject):
2479         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2480         (WebCore):
2481         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2482         (V8TestCustomNamedGetter):
2483         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2484         (WebCore):
2485         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2486         (V8TestEventConstructor):
2487         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2488         (WebCore):
2489         * bindings/scripts/test/V8/V8TestEventTarget.h:
2490         (V8TestEventTarget):
2491         * bindings/scripts/test/V8/V8TestInterface.cpp:
2492         (WebCore):
2493         * bindings/scripts/test/V8/V8TestInterface.h:
2494         (V8TestInterface):
2495         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2496         (WebCore):
2497         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2498         (V8TestMediaQueryListListener):
2499         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2500         (WebCore):
2501         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2502         (V8TestNamedConstructor):
2503         * bindings/scripts/test/V8/V8TestObj.cpp:
2504         (WebCore):
2505         * bindings/scripts/test/V8/V8TestObj.h:
2506         (V8TestObj):
2507         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2508         (WebCore):
2509         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2510         (V8TestSerializedScriptValueInterface):
2511         * bindings/v8/NPV8Object.cpp:
2512         (WebCore::npObjectTypeInfo):
2513         * bindings/v8/V8GCController.cpp:
2514         (WebCore::GrouperVisitor::visitDOMWrapper):
2515         * bindings/v8/WrapperTypeInfo.h:
2516         (WebCore):
2517         (WrapperTypeInfo):
2518         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
2519         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2520         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
2521         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2522         (WebCore):
2523         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2524         * bindings/v8/custom/V8StyleSheetCustom.cpp:
2525         (WebCore::toV8):
2526         * css/CSSStyleSheet.idl:
2527         * css/StyleSheet.idl:
2528         * dom/DOMStringMap.idl:
2529         * dom/NamedNodeMap.idl:
2530         * html/DOMTokenList.idl:
2531         * html/track/TextTrackList.idl:
2532
2533 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2534
2535         [V8][Refactoring] Make getWrapperSlow() and getExistingWrapperSlow() same
2536         https://bugs.webkit.org/show_bug.cgi?id=80916
2537
2538         Reviewed by Adam Barth.
2539
2540         This is one of the steps for fixing bug 80841.
2541         This patch makes getWrapperSlow() and getExistingWrapperSlow() same.
2542         In the next patch, we will remove getExistingWrapper() and getExistingWrapperSlow().
2543
2544         No tests. No change in behavior.
2545
2546         * bindings/scripts/CodeGeneratorV8.pm:
2547         (GenerateHeader):
2548         * bindings/v8/V8DOMWrapper.cpp:
2549         (WebCore::V8DOMWrapper::getWrapperSlow):
2550
2551 2012-03-12  Kentaro Hara  <haraken@chromium.org>
2552
2553         [V8] Refactor some header includes in V8 bindings
2554         https://bugs.webkit.org/show_bug.cgi?id=80913
2555
2556         Reviewed by Adam Barth.
2557
2558         This patch refactors some header includes in V8 bindings
2559         required for fixing bug 80841.
2560
2561         No tests. No change in behavior.
2562
2563         * bindings/v8/DOMDataStore.h:
2564         (DOMDataStore):
2565         * bindings/v8/V8DOMMap.h:
2566         * bindings/v8/V8DOMWrapper.cpp:
2567         * bindings/v8/V8IsolatedContext.cpp:
2568         (WebCore::V8IsolatedContext::isolatedContext):
2569         * bindings/v8/V8IsolatedContext.h:
2570         (WebCore::V8IsolatedContext::getEntered):
2571         (V8IsolatedContext):
2572         * bindings/v8/WorldContextHandle.cpp:
2573
2574 2012-03-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2575
2576         Unreviewed, rolling out r110501.
2577         http://trac.webkit.org/changeset/110501
2578         https://bugs.webkit.org/show_bug.cgi?id=80908
2579
2580         Broke the Apple-Win build (Requested by abarth on #webkit).
2581
2582         * CMakeLists.txt:
2583         * DerivedSources.make:
2584         * DerivedSources.pri:
2585         * GNUmakefile.am:
2586         * GNUmakefile.list.am:
2587         * Target.pri:
2588         * WebCore.gyp/WebCore.gyp:
2589         * WebCore.gypi:
2590         * WebCore.pri:
2591         * WebCore.xcodeproj/project.pbxproj:
2592         * fileapi/DirectoryEntry.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.cpp.
2593         (WebCore):
2594         (WebCore::DirectoryEntry::DirectoryEntry):
2595         (WebCore::DirectoryEntry::createReader):
2596         (WebCore::DirectoryEntry::getFile):
2597         (WebCore::DirectoryEntry::getDirectory):
2598         (WebCore::DirectoryEntry::removeRecursively):
2599         * fileapi/DirectoryEntry.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.h.
2600         (WebCore):
2601         (DirectoryEntry):
2602         (WebCore::DirectoryEntry::create):
2603         (WebCore::DirectoryEntry::isDirectory):
2604         * fileapi/DirectoryEntry.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntry.idl.
2605         * fileapi/DirectoryEntrySync.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.cpp.
2606         (WebCore):
2607         (WebCore::DirectoryEntrySync::DirectoryEntrySync):
2608         (WebCore::DirectoryEntrySync::createReader):
2609         (WebCore::DirectoryEntrySync::getFile):
2610         (WebCore::DirectoryEntrySync::getDirectory):
2611         (WebCore::DirectoryEntrySync::removeRecursively):
2612         * fileapi/DirectoryEntrySync.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.h.
2613         (WebCore):
2614         (DirectoryEntrySync):
2615         (WebCore::DirectoryEntrySync::create):
2616         (WebCore::DirectoryEntrySync::isDirectory):
2617         * fileapi/DirectoryEntrySync.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl.
2618         * fileapi/DirectoryReader.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.cpp.
2619         (WebCore):
2620         (WebCore::DirectoryReader::DirectoryReader):
2621         (WebCore::DirectoryReader::readEntries):
2622         * fileapi/DirectoryReader.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.h.
2623         (WebCore):
2624         (DirectoryReader):
2625         (WebCore::DirectoryReader::create):
2626         (WebCore::DirectoryReader::filesystem):
2627         * fileapi/DirectoryReader.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryReader.idl.
2628         * fileapi/DirectoryReaderBase.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderBase.h.
2629         (WebCore):
2630         (DirectoryReaderBase):
2631         (WebCore::DirectoryReaderBase::filesystem):
2632         (WebCore::DirectoryReaderBase::setHasMoreEntries):
2633         (WebCore::DirectoryReaderBase::DirectoryReaderBase):
2634         * fileapi/DirectoryReaderSync.cpp: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.cpp.
2635         (WebCore):
2636         (WebCore::DirectoryReaderSync::DirectoryReaderSync):
2637         (WebCore::DirectoryReaderSync::readEntries):
2638         * fileapi/DirectoryReaderSync.h: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.h.
2639         (WebCore):
2640         (DirectoryReaderSync):
2641         (WebCore::DirectoryReaderSync::create):
2642         * fileapi/DirectoryReaderSync.idl: Renamed from Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl.
2643
2644 2012-03-12  Nico Weber  <thakis@chromium.org>
2645
2646         [chromium/mac] Make sure libWebKitSystemInterface.a doesn't contain ppc object files.
2647         https://bugs.webkit.org/show_bug.cgi?id=80902
2648
2649         Reviewed by Adam Barth.
2650
2651         Follow-up to http://codereview.chromium.org/9638015/
2652
2653         No intended behavior change.
2654
2655         * WebCore.gyp/mac/adjust_visibility.sh:
2656
2657 2012-03-12  Jer Noble  <jer.noble@apple.com>
2658
2659         WebCore: Add support for AudioNode "tailTime()" and "latencyTime()"
2660         https://bugs.webkit.org/show_bug.cgi?id=74750
2661
2662         Reviewed by Chris Rogers.
2663
2664         No new tests; optimization of existing code path, so covered by existing tests.
2665
2666         To account for AudioNodes which may generate non-silent audio when fed silent input
2667         for a certain amount of time after the last non-silent audio data, add two new virtual
2668         functions tailTime() and latencyTime().
2669
2670         * webaudio/AudioNode.h:
2671         (WebCore::AudioNode::tailTime): Added. Pure virtual.
2672         (WebCore::AudioNode::latencyTime): Added. Pure virtual.
2673         * platform/audio/AudioProcessor.h:
2674         (WebCore::AudioProcessor::tailTime): Added. Pure virtual.
2675         (WebCore::AudioProcessor::latencyTime): Added. Pure virtual.
2676         * platform/audio/AudioDSPKernel.h:
2677         (WebCore::AudioDSPKernel::tailTime): Added. Pure virtual.
2678         (WebCore::AudioDSPKernel::latencyTime): Added. Pure virtual.
2679
2680         Added tailTime() and latencyTime() overrides to the following classes:
2681         * platform/audio/AudioDSPKernelProcessor.cpp:
2682         (WebCore::AudioDSPKernelProcessor::tailTime):
2683         (WebCore::AudioDSPKernelProcessor::latencyTime):
2684         * platform/audio/AudioDSPKernelProcessor.h:
2685         * platform/audio/DynamicsCompressor.h:
2686         (WebCore::DynamicsCompressor::tailTime):
2687         (WebCore::DynamicsCompressor::latencyTime):
2688         * platform/audio/EqualPowerPanner.h:
2689         * platform/audio/HRTFPanner.cpp:
2690         (WebCore::HRTFPanner::tailTime):
2691         (WebCore::HRTFPanner::latencyTime):
2692         * platform/audio/HRTFPanner.h:
2693         * platform/audio/Panner.h:
2694         * webaudio/AudioBasicProcessorNode.cpp:
2695         (WebCore::AudioBasicProcessorNode::tailTime):
2696         (WebCore::AudioBasicProcessorNode::latencyTime):
2697         * webaudio/AudioBasicProcessorNode.h:
2698         * webaudio/AudioChannelMerger.h:
2699         * webaudio/AudioChannelSplitter.h:
2700         * webaudio/AudioDestinationNode.h:
2701         * webaudio/AudioGainNode.h:
2702         * webaudio/AudioPannerNode.h:
2703         * webaudio/AudioSourceNode.h:
2704         * webaudio/BiquadDSPKernel.cpp:
2705         (WebCore::BiquadDSPKernel::tailTime):
2706         (WebCore::BiquadDSPKernel::latencyTime):
2707         * webaudio/BiquadDSPKernel.h:
2708         * webaudio/BiquadFilterNode.h:
2709         * webaudio/ConvolverNode.cpp:
2710         (WebCore::ConvolverNode::tailTime):
2711         (WebCore::ConvolverNode::latencyTime):
2712         * webaudio/ConvolverNode.h:
2713         * webaudio/DelayDSPKernel.cpp:
2714         (WebCore::DelayDSPKernel::tailTime):
2715         (WebCore::DelayDSPKernel::latencyTime):
2716         * webaudio/DelayDSPKernel.h:
2717         * webaudio/DelayProcessor.h:
2718         * webaudio/DynamicsCompressorNode.cpp:
2719         (WebCore::DynamicsCompressorNode::tailTime):
2720         (WebCore::DynamicsCompressorNode::latencyTime):
2721         * webaudio/DynamicsCompressorNode.h:
2722         * webaudio/JavaScriptAudioNode.cpp:
2723         (WebCore::JavaScriptAudioNode::tailTime):
2724         (WebCore::JavaScriptAudioNode::latencyTime):
2725         * webaudio/JavaScriptAudioNode.h:
2726         * webaudio/RealtimeAnalyserNode.h:
2727         * webaudio/WaveShaperDSPKernel.h:
2728
2729         The following functions were added as support for the new AudioNode and AudioProcessor functions:
2730         * platform/audio/Biquad.cpp:
2731         (WebCore::Biquad::latencyFrames):
2732         * platform/audio/Biquad.h:
2733         * platform/audio/Reverb.cpp:
2734         (WebCore::Reverb::latencyFrames):
2735         * platform/audio/ReverbConvolver.h:
2736         (WebCore::ReverbConvolver::latencyFrames):
2737
2738         The following functions were made const-correct:
2739         * platform/audio/HRTFPanner.h:
2740         (WebCore::HRTFPanner::fftSize):
2741         * platform/audio/Reverb.h:
2742         (WebCore::Reverb::impulseResponseLength):
2743
2744 2012-03-12  Anders Carlsson  <andersca@apple.com>
2745
2746         WebTileLayers should be opaque
2747         https://bugs.webkit.org/show_bug.cgi?id=80907
2748         <rdar://problem/11034390>
2749
2750         Reviewed by Andreas Kling.
2751
2752         * platform/graphics/ca/mac/TileCache.mm:
2753         (WebCore::TileCache::createTileLayer):
2754         Call -[CALayer setOpaque:] on the newly created WebTileLayer.
2755
2756 2012-03-12  Emil A Eklund  <eae@chromium.org>
2757
2758         Fix rounding in scrollbar rect calculations
2759         https://bugs.webkit.org/show_bug.cgi?id=80894
2760
2761         Reviewed by Eric Seidel.
2762
2763         Fix usage of subpixel units in RenderScrollbar::buttonRect and
2764         RenderScrollbar::trackRect.
2765
2766         No new tests, no new functionality.
2767
2768         * rendering/LayoutTypes.h:
2769         (WebCore::isIntegerValue):
2770         Add dummy isIntegerValue function, will be replaced with actual
2771         implementation once LayoutUnit is remapped to FractionalLayoutUnit.
2772         
2773         * rendering/RenderScrollbar.cpp:
2774         (WebCore::RenderScrollbar::buttonRect):
2775         (WebCore::RenderScrollbar::trackRect):
2776         Change rect calculations to use pixel snapped values.
2777
2778         * rendering/RenderScrollbarPart.h:
2779         (RenderScrollbarPart):
2780         (WebCore::RenderScrollbarPart::marginTop):
2781         (WebCore::RenderScrollbarPart::marginBottom):
2782         (WebCore::RenderScrollbarPart::marginLeft):
2783         (WebCore::RenderScrollbarPart::marginRight):
2784         Add ASSERT to ensure that scrollbar parts are always aligned to device
2785         pixels.
2786
2787 2012-03-12  C Anthony Risinger  <anthony@xtfx.me>
2788
2789         [GObject IDL Parser] STRING argument should be HASHREF
2790         https://bugs.webkit.org/show_bug.cgi?id=78877
2791
2792         Reviewed by Kentaro Hara.
2793
2794         * bindings/scripts/CodeGeneratorGObject.pm:
2795         (GenerateFunctions): extendedAttributes are hashes, not strings
2796
2797 2012-03-12  Jessie Berlin  <jberlin@apple.com>
2798
2799         More Windows build fixing.
2800
2801         Use fully qualified paths for WTF headers.
2802
2803         * platform/graphics/cg/ImageSourceCGWin.cpp:
2804         * platform/graphics/win/UniscribeController.h:
2805         * platform/win/DragImageCGWin.cpp:
2806         * platform/win/DragImageCairoWin.cpp:
2807         * platform/win/DragImageWin.cpp:
2808         * rendering/RenderThemeSafari.cpp:
2809
2810 2012-03-12  Mark Pilgrim  <pilgrim@chromium.org>
2811
2812         Move DirectoryEntry and DirectoryReader to new Modules/filesystem/ directory
2813         https://bugs.webkit.org/show_bug.cgi?id=80625
2814
2815         Reviewed by Adam Barth.
2816
2817         No new tests, all existing tests pass.
2818
2819         * CMakeLists.txt:
2820         * DerivedSources.make:
2821         * DerivedSources.pri:
2822         * GNUmakefile.am:
2823         * GNUmakefile.list.am:
2824         * Modules/filesystem: Added.
2825         * Modules/filesystem/DirectoryEntry.cpp: Copied from Source/WebCore/fileapi/DirectoryEntry.cpp.
2826         * Modules/filesystem/DirectoryEntry.h: Copied from Source/WebCore/fileapi/DirectoryEntry.h.
2827         * Modules/filesystem/DirectoryEntry.idl: Copied from Source/WebCore/fileapi/DirectoryEntry.idl.
2828         * Modules/filesystem/DirectoryEntrySync.cpp: Copied from Source/WebCore/fileapi/DirectoryEntrySync.cpp.
2829         * Modules/filesystem/DirectoryEntrySync.h: Copied from Source/WebCore/fileapi/DirectoryEntrySync.h.
2830         * Modules/filesystem/DirectoryEntrySync.idl: Copied from Source/WebCore/fileapi/DirectoryEntrySync.idl.
2831         * Modules/filesystem/DirectoryReader.cpp: Copied from Source/WebCore/fileapi/DirectoryReader.cpp.
2832         * Modules/filesystem/DirectoryReader.h: Copied from Source/WebCore/fileapi/DirectoryReader.h.
2833         * Modules/filesystem/DirectoryReader.idl: Copied from Source/WebCore/fileapi/DirectoryReader.idl.
2834         * Modules/filesystem/DirectoryReaderBase.h: Copied from Source/WebCore/fileapi/DirectoryReaderBase.h.
2835         * Modules/filesystem/DirectoryReaderSync.cpp: Copied from Source/WebCore/fileapi/DirectoryReaderSync.cpp.
2836         * Modules/filesystem/DirectoryReaderSync.h: Copied from Source/WebCore/fileapi/DirectoryReaderSync.h.
2837         * Modules/filesystem/DirectoryReaderSync.idl: Copied from Source/WebCore/fileapi/DirectoryReaderSync.idl.
2838         * Target.pri:
2839         * WebCore.gyp/WebCore.gyp:
2840         * WebCore.gypi:
2841         * WebCore.pri:
2842         * WebCore.xcodeproj/project.pbxproj:
2843         * fileapi/DirectoryEntry.cpp: Removed.
2844         * fileapi/DirectoryEntry.h: Removed.
2845         * fileapi/DirectoryEntry.idl: Removed.
2846         * fileapi/DirectoryEntrySync.cpp: Removed.
2847         * fileapi/DirectoryEntrySync.h: Removed.
2848         * fileapi/DirectoryEntrySync.idl: Removed.
2849         * fileapi/DirectoryReader.cpp: Removed.
2850         * fileapi/DirectoryReader.h: Removed.
2851         * fileapi/DirectoryReader.idl: Removed.
2852         * fileapi/DirectoryReaderBase.h: Removed.
2853         * fileapi/DirectoryReaderSync.cpp: Removed.
2854         * fileapi/DirectoryReaderSync.h: Removed.
2855         * fileapi/DirectoryReaderSync.idl: Removed.
2856
2857 2012-03-12  Brady Eidson  <beidson@apple.com>
2858
2859         https://bugs.webkit.org/show_bug.cgi?id=80903
2860         InspectorDOMStorageAgent creates a Storage object which is a DOMWindowProperty - Should use the StorageArea directly
2861
2862         Reviewed by Tim Hatcher.
2863
2864         No new tests. (No behavior change)
2865
2866         Changed to hold the StorageArea directly and added a Frame* accessor:
2867         * inspector/InspectorDOMStorageResource.h:
2868         (WebCore::InspectorDOMStorageResource::create):
2869         (WebCore::InspectorDOMStorageResource::storageArea):
2870         (WebCore::InspectorDOMStorageResource::frame):
2871         (InspectorDOMStorageResource):
2872
2873         * inspector/InspectorDOMStorageResource.cpp:
2874         (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
2875
2876         * inspector/InspectorDOMStorageAgent.cpp:
2877         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
2878         (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
2879         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
2880         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
2881
2882 2012-03-12  Brian Salomon  <bsalomon@google.com>
2883
2884         [Skia] Release CGImage used to apply color space conversion to SkBitmap
2885         https://bugs.webkit.org/show_bug.cgi?id=80892
2886
2887         Reviewed by Adam Barth.
2888
2889         Regressions should be covered by any test that does image decode on the mac.
2890
2891         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
2892         (WebCore::resolveColorSpace):
2893
2894 2012-03-12  Levi Weintraub  <leviw@chromium.org>
2895
2896         Update LayoutUnit usage in RenderMathML* classes
2897         https://bugs.webkit.org/show_bug.cgi?id=77916
2898
2899         Reviewed by Eric Seidel.
2900
2901         The purpose of this patch is to ensure MathML rendering does not regress when
2902         we switch to sub-pixel layout. A subsequent patch can likely improve MathML's
2903         rendering when zoom is applied.
2904
2905         To accomplish this without changing the current heuristics for positioning,
2906         we continue to use integers for sizes and locations, using pixel snapping
2907         when communicating with other Rendering classes.
2908
2909         No new tests. No change in behavior.
2910
2911         * rendering/mathml/RenderMathMLBlock.cpp:
2912         (WebCore::RenderMathMLBlock::paint): Cleaning up debug painting to be on
2913         pixel boundaries instead of subpixel.
2914         * rendering/mathml/RenderMathMLFraction.cpp:
2915         (WebCore::RenderMathMLFraction::paint): Reverting to integers for determining
2916         the vertical offset.
2917         (WebCore::RenderMathMLFraction::baselinePosition):
2918         * rendering/mathml/RenderMathMLRoot.cpp:
2919         (WebCore::RenderMathMLRoot::paint): Using integers for height and width
2920         and only accumulating pixel snapped values.
2921         (WebCore::RenderMathMLRoot::layout): Setting padding with integers to
2922         avoid inconsistent rounding based on the root's location.
2923         * rendering/mathml/RenderMathMLRow.cpp:
2924         (WebCore::RenderMathMLRow::layout):
2925         * rendering/mathml/RenderMathMLSquareRoot.cpp:
2926         (WebCore::RenderMathMLSquareRoot::paint): See RenderMathMLRoot.
2927         (WebCore::RenderMathMLSquareRoot::layout): Ditto.
2928         * rendering/mathml/RenderMathMLUnderOver.cpp:
2929         (WebCore::getOffsetHeight):
2930         (WebCore::RenderMathMLUnderOver::layout):
2931
2932 2012-03-12  Anders Carlsson  <andersca@apple.com>
2933
2934         Use smaller tiles for right and bottom edges
2935         https://bugs.webkit.org/show_bug.cgi?id=80893
2936         <rdar://problem/11032873>
2937
2938         Reviewed by Sam Weinig.
2939
2940         * platform/graphics/ca/mac/TileCache.mm:
2941         (WebCore::TileCache::rectForTileIndex):
2942         Intersect the rect with the tile cache bounds.
2943
2944         (WebCore::TileCache::revalidateTiles):
2945         Resize already existing tiles if needed.
2946
2947         (WebCore::TileCache::createTileLayer):
2948         This now takes a tile rect. Use setFrame instead of setting the bounds and position separately.
2949
2950 2012-03-12  Enrica Casucci  <enrica@apple.com>
2951
2952         WebKit2: remove NSPasteboard access for promised data from the WebProcess
2953         https://bugs.webkit.org/show_bug.cgi?id=80073
2954         
2955         Reviewed by Alexey Proskuryakov.
2956
2957         * WebCore.exp.in: Added two exported methods.
2958         * platform/mac/FileSystemMac.mm:
2959         (WebCore::setMetaData): Last parameter in the call to wkSetMetadataURL
2960         needs to be wrapped in String before casting to NSString.
2961
2962 2012-03-12  Alexey Proskuryakov  <ap@apple.com>
2963
2964         clang build fix
2965
2966         * css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::convertToLength): Reorder
2967         boolean operators, so that a warning about "use of logical || with constant operand" doesn't
2968         appear.
2969
2970 2012-03-12  Abhishek Arya  <inferno@chromium.org>
2971
2972         Crash in Text::splitText due to mutation events.
2973         https://bugs.webkit.org/show_bug.cgi?id=80828
2974
2975         Reviewed by Ryosuke Niwa.
2976
2977         Test: fast/text/split-text-crash.xhtml
2978
2979         * dom/Range.cpp:
2980         (WebCore::Range::insertNode): replace m_start.container() calls with ref protected node.
2981
2982 2012-03-12  Kenneth Russell  <kbr@google.com>
2983
2984         Null argument to texSubImage2D crashes
2985         https://bugs.webkit.org/show_bug.cgi?id=80778
2986
2987         Reviewed by Dean Jackson.
2988
2989         Generate INVALID_VALUE OpenGL error upon receiving null argument.
2990         Final behavior still being decided on public-webgl mailing list.
2991
2992         * html/canvas/WebGLRenderingContext.cpp:
2993         (WebCore):
2994         (WebCore::WebGLRenderingContext::texImage2D):
2995         (WebCore::WebGLRenderingContext::texSubImage2D):
2996         (WebCore::WebGLRenderingContext::validateTexFuncData):
2997         * html/canvas/WebGLRenderingContext.h:
2998
2999 2012-03-12  Luke Macpherson   <macpherson@chromium.org>
3000
3001         Remove CSSStyleSelector's convertToLength method and use CSSPrimitiveValue's version directly.
3002         https://bugs.webkit.org/show_bug.cgi?id=80484
3003
3004         Reviewed by Julien Chaffraix.
3005
3006         No new tests / code cleanup only.
3007
3008         * css/CSSPrimitiveValueMappings.h:
3009         (WebCore::CSSPrimitiveValue::convertToLength):
3010         * css/CSSStyleApplyProperty.cpp:
3011         (WebCore::ApplyPropertyClip::convertToLength):
3012         * css/CSSStyleSelector.cpp:
3013         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
3014
3015 2012-03-12  Stephen White  <senorblanco@chromium.org>
3016
3017         [chromium] Restore canvas2D acceleration after context loss.
3018         https://bugs.webkit.org/show_bug.cgi?id=80629
3019
3020         Reviewed by James Robinson.
3021
3022         Covered by existing canvas tests, and manual testing (killing the GPU
3023         process).
3024
3025         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3026         (WebCore::Canvas2DLayerChromium::create):
3027         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
3028         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
3029         (WebCore::Canvas2DLayerChromium::drawsContent):
3030         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3031         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3032         (Canvas2DLayerChromium):
3033         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
3034         (WebCore::CCRenderSurface::applyFilters):
3035         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
3036         (SharedGraphicsContext3DImpl):
3037         (WebCore::SharedGraphicsContext3DImpl::SharedGraphicsContext3DImpl):
3038         (WebCore::SharedGraphicsContext3DImpl::get):
3039         (WebCore):
3040         (WebCore::SharedGraphicsContext3D::get):
3041         * platform/graphics/gpu/SharedGraphicsContext3D.h:
3042         (SharedGraphicsContext3D):
3043         * platform/graphics/skia/ImageBufferSkia.cpp:
3044         (WebCore::createAcceleratedCanvas):
3045         * platform/graphics/skia/PlatformContextSkia.cpp:
3046         (WebCore::PlatformContextSkia::PlatformContextSkia):
3047         (WebCore):
3048         * platform/graphics/skia/PlatformContextSkia.h:
3049         (WebCore):
3050         (WebCore::PlatformContextSkia::isAccelerated):
3051         (WebCore::PlatformContextSkia::setAccelerated):
3052         (PlatformContextSkia):
3053
3054 2012-03-12  George Staikos  <staikos@webkit.org>
3055
3056         It doesn't make sense to return const unsigned, and GCC warns about it.
3057         Remove const.
3058         https://bugs.webkit.org/show_bug.cgi?id=80790
3059
3060         Reviewed by Antonio Gomes.
3061
3062         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h:
3063         (WebCore::ComplexTextController::length):
3064         (WebCore::ComplexTextController::numCodePoints):
3065         (WebCore::ComplexTextController::offsetX):
3066
3067 2012-03-12  Beth Dakin  <bdakin@apple.com>
3068
3069         https://bugs.webkit.org/show_bug.cgi?id=80888
3070         Clear background for NSTextFieldCell is unreliable and not necessary
3071         -and corresponding-
3072         <rdar://problem/10663710>
3073
3074         Reviewed by Dan Bernstein.
3075
3076         With http://trac.webkit.org/changeset/104240 I thought it was necessary to 
3077         make NSTextFieldCells draw with a clear background in order to allow styled 
3078         text fields. That is not actually necessary; we just had a different bug 
3079         where isControlStyled() was only checking for styled borders on text fields. 
3080         Text fields can also be styled with backgrounds, so they need the full check.
3081         * rendering/RenderThemeMac.mm:
3082         (WebCore::RenderThemeMac::isControlStyled):
3083         (WebCore::RenderThemeMac::textField):
3084
3085 2012-03-12  Scott Byer  <scottbyer@chromium.org>
3086
3087         Cleanup obsolete files.
3088         https://bugs.webkit.org/show_bug.cgi?id=80737
3089
3090         Reviewed by James Robinson.
3091
3092         No new code.
3093
3094         * GNUmakefile.list.am:
3095         * PlatformWinCE.cmake:
3096         * Target.pri:
3097         * WebCore.vcproj/WebCore.vcproj:
3098         * platform/ScrollAnimatorWin.cpp: Removed.
3099         * platform/ScrollAnimatorWin.h: Removed.
3100
3101 2012-03-12  Gregg Tavares  <gman@google.com>
3102
3103         Make texImage2D error for wrong size ArrayBufferView more helpful
3104         https://bugs.webkit.org/show_bug.cgi?id=80868
3105         
3106         It took me about 30 minutes to figure out my texImage2D was failing
3107         not because my ArrayBufferView was too small but because the default
3108         alignment is 4. A better error message might help devs find this issue
3109         faster.
3110
3111         Reviewed by Kenneth Russell.
3112
3113         No new tests as no new functionality.
3114
3115         * html/canvas/WebGLRenderingContext.cpp:
3116         (WebCore):
3117         (WebCore::WebGLRenderingContext::validateTexFuncData):
3118
3119 2012-03-12  Tim Horton  <timothy_horton@apple.com>
3120
3121         Infinite repaint loop with SVGImageCache and deferred repaint timers
3122         https://bugs.webkit.org/show_bug.cgi?id=78315
3123         <rdar://problem/10651634>
3124
3125         Reviewed by Nikolas Zimmermann.
3126
3127         Only defer image redraw on a timer if we're in layout. This breaks
3128         the repaint loop while still preventing us from drawing inside layout.
3129
3130         Completely disable repaint during relayout inside SVGImage::drawSVGToImageBuffer,
3131         preventing deferred repaint timers from being started during that process.
3132
3133         No new tests, as the problem only occurs in a nonstandard configuration.
3134
3135         * page/FrameView.cpp:
3136         (WebCore::FrameView::FrameView):
3137         (WebCore::FrameView::reset):
3138         (WebCore::FrameView::repaintContentRectangle):
3139         (WebCore::FrameView::endDeferredRepaints):
3140         (WebCore::FrameView::startDeferredRepaintTimer):
3141         (WebCore):
3142         (WebCore::FrameView::doDeferredRepaints):
3143         (WebCore::FrameView::deferredRepaintTimerFired):
3144         (WebCore::FrameView::beginDisableRepaints):
3145         (WebCore::FrameView::endDisableRepaints):
3146         * page/FrameView.h:
3147         (FrameView):
3148         (WebCore::FrameView::repaintsDisabled):
3149         * rendering/RenderView.cpp:
3150         (WebCore::RenderView::shouldRepaint):
3151         * svg/graphics/SVGImage.cpp:
3152         (WebCore::SVGImage::drawSVGToImageBuffer):
3153         (WebCore::SVGImage::draw):
3154         (WebCore::SVGImage::frameView):
3155         (WebCore):
3156         * svg/graphics/SVGImage.h:
3157         (WebCore):
3158         * svg/graphics/SVGImageCache.cpp:
3159         (WebCore::SVGImageCache::imageContentChanged):
3160         (WebCore::SVGImageCache::redraw):
3161         (WebCore::SVGImageCache::redrawTimerFired):
3162         (WebCore):
3163         * svg/graphics/SVGImageCache.h:
3164         (SVGImageCache):
3165
3166 2012-03-12  Adam Klein  <adamk@chromium.org>
3167
3168         [MutationObservers] Enforce a consistent order of MutationRecord delivery
3169         https://bugs.webkit.org/show_bug.cgi?id=80549
3170
3171         Reviewed by Ojan Vafai.
3172
3173         Mutations should be delivered in order of creation.
3174
3175         Tests: fast/mutation/create-during-delivery.html
3176                fast/mutation/delivery-order.html
3177                fast/mutation/mutate-during-delivery.html
3178
3179         * dom/WebKitMutationObserver.cpp:
3180         (WebCore):
3181         (WebCore::WebKitMutationObserver::ObserverLessThan::operator()): Functor for use with std::sort.
3182         (WebCore::WebKitMutationObserver::create):
3183         (WebCore::WebKitMutationObserver::WebKitMutationObserver):
3184         (WebCore::WebKitMutationObserver::deliverAllMutations): Move observers into a sorted vector before delivery.
3185         * dom/WebKitMutationObserver.h: Add a "priority" member which monotonically increases with each construction.
3186
3187 2012-03-12  Nat Duca  <nduca@chromium.org>
3188
3189         [Chromium] Force compositeAndReadback through regular scheduling flow
3190         https://bugs.webkit.org/show_bug.cgi?id=77049
3191
3192         Reviewed by James Robinson.
3193
3194         * platform/graphics/chromium/cc/CCFrameRateController.cpp:
3195         (WebCore::CCFrameRateController::onTimerTick):
3196         * platform/graphics/chromium/cc/CCFrameRateController.h:
3197         (CCFrameRateControllerClient):
3198         * platform/graphics/chromium/cc/CCScheduler.cpp:
3199         (WebCore::CCScheduler::setNeedsForcedCommit):
3200         (WebCore):
3201         (WebCore::CCScheduler::vsyncTick):
3202         * platform/graphics/chromium/cc/CCScheduler.h:
3203         (CCScheduler):
3204         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
3205         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
3206         (WebCore::CCSchedulerStateMachine::nextAction):
3207         (WebCore::CCSchedulerStateMachine::updateState):
3208         (WebCore::CCSchedulerStateMachine::setNeedsForcedCommit):
3209         (WebCore):
3210         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
3211         (CCSchedulerStateMachine):
3212         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3213         (WebCore::CCThreadProxy::CCThreadProxy):
3214         (WebCore::CCThreadProxy::compositeAndReadback):
3215         (WebCore::CCThreadProxy::requestReadbackOnImplThread):
3216         (WebCore::CCThreadProxy::forceBeginFrameOnImplThread):
3217         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
3218         (WebCore::CCThreadProxy::beginFrame):
3219         * platform/graphics/chromium/cc/CCThreadProxy.h:
3220         (CCThreadProxy):
3221         (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
3222         (BeginFrameAndCommitState):
3223
3224 2012-03-12  Joshua Bell  <jsbell@chromium.org>
3225
3226         IndexedDB: Handle LevelDB database corruption
3227         https://bugs.webkit.org/show_bug.cgi?id=79413
3228
3229         Add LevelDBDatabase::destroy() method so that clients can retry if open() fails.
3230
3231         Reviewed by Tony Chang.
3232
3233         Test: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.CorruptionTest'
3234
3235         * Modules/indexeddb/IDBLevelDBBackingStore.cpp: Implement open/destroy/open strategy.
3236         (WebCore::IDBLevelDBBackingStore::open):
3237         * platform/leveldb/LevelDBDatabase.cpp:
3238         (WebCore::LevelDBDatabase::destroy):
3239         (WebCore):
3240         * platform/leveldb/LevelDBDatabase.h:
3241         (LevelDBDatabase):
3242
3243 2012-03-11  Shawn Singh  <shawnsingh@chromium.org>
3244
3245         Fix regression on fast/table/table-row-compositing-repaint-crash.html
3246         https://bugs.webkit.org/show_bug.cgi?id=80804
3247
3248         Reviewed by Simon Fraser.
3249
3250         Covered by existing tests.
3251
3252         http://trac.webkit.org/changeset/110401/ accidentally caused
3253         fast/table/table-row-compositing-repaint-crash.html to fail.
3254
3255         * rendering/RenderLayerCompositor.cpp:
3256         (WebCore::RenderLayerCompositor::updateBacking):
3257
3258 2012-03-12  Mike Lawther  <mikelawther@chromium.org>
3259
3260         CSS3 calc: enable mixed percent/absolute for font
3261         https://bugs.webkit.org/show_bug.cgi?id=80813
3262
3263         Reviewed by Ojan Vafai.
3264
3265         Add support for mixed percent/absolute expressions to the font handling class.
3266
3267         * css/CSSStyleApplyProperty.cpp:
3268         (WebCore::ApplyPropertyFontSize::applyValue):
3269
3270 2012-03-12  Andreas Kling  <awesomekling@apple.com>
3271
3272         Restore Attr::style() functionality.
3273         <http://webkit.org/b/80678>
3274         <rdar://problem/10933904>
3275
3276         Reviewed by Antti Koivisto.
3277
3278         The neutering of Attr::style() in r106740 broke some internal clients of the Obj-C API,
3279         so this was definitely premature.
3280
3281         Since we no longer have a per-Attribute style object, synthesize one in style() and
3282         hang it off of the Attr. This grows Attr by one pointer, but it's a low-volume object
3283         so it shouldn't matter much.
3284
3285         We recreate the StylePropertySet object on every call to style(), to avoid complicating
3286         things with custom invalidation code.
3287
3288         * dom/Attr.cpp:
3289         (WebCore::Attr::style):
3290         * dom/Attr.h:
3291         * dom/StyledElement.h:
3292         (WebCore::StyledElement::collectStyleForAttribute):
3293
3294 2012-03-12  Ryosuke Niwa  <rniwa@webkit.org>
3295
3296         REGRESSION(r109285): Crash in WebCore::Document::nodeChildrenWillBeRemoved
3297         https://bugs.webkit.org/show_bug.cgi?id=80578
3298
3299         Reviewed by Andreas Kling.
3300
3301         Test: svg/css/style-change-crash.html
3302
3303         * dom/Element.cpp:
3304         (WebCore::Element::setAttribute):
3305         (WebCore::Element::setAttributeInternal):
3306         * dom/Element.h:
3307         (Element):
3308         * dom/ElementAttributeData.cpp:
3309         (WebCore::ElementAttributeData::addAttribute):
3310         (WebCore::ElementAttributeData::removeAttribute):
3311         * dom/ElementAttributeData.h:
3312         (ElementAttributeData):
3313         * dom/StyledElement.cpp:
3314         (WebCore::StyledElement::updateStyleAttribute):
3315
3316 2012-03-12  Sadrul Habib Chowdhury  <sadrul@chromium.org>
3317
3318         Touch event handler count is not updated when adding handlers to the window.
3319         https://bugs.webkit.org/show_bug.cgi?id=80756
3320
3321         Touch event handlers added to the window needs to be included when counting the number of touch event
3322         handlers. This makes touch event handler counting identical to wheel event handler counting.
3323
3324         Reviewed by Anders Carlsson.
3325
3326         Test: fast/events/touch/touch-handler-count.html
3327
3328         * dom/EventNames.h:
3329         (EventNames):
3330         (WebCore::EventNames::isTouchEventType):
3331         * dom/Node.cpp:
3332         (WebCore):
3333         (WebCore::tryAddEventListener):
3334         (WebCore::tryRemoveEventListener):
3335         * page/DOMWindow.cpp:
3336         (WebCore::DOMWindow::addEventListener):
3337         (WebCore::DOMWindow::removeEventListener):
3338         * testing/Internals.cpp:
3339         (WebCore::Internals::touchEventHandlerCount):
3340         (WebCore):
3341         * testing/Internals.h:
3342         (Internals):
3343         * testing/Internals.idl:
3344
3345 2012-03-12  Pavel Podivilov  <podivilov@chromium.org>
3346
3347         Web Inspector: extract ResourceScriptMapping from MainScriptMapping.
3348         https://bugs.webkit.org/show_bug.cgi?id=80834
3349
3350         Reviewed by Vsevolod Vlasov.
3351
3352         * inspector/front-end/ScriptMapping.js:
3353         (WebInspector.ResourceScriptMapping):
3354         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeListChanged):
3355         (WebInspector.ResourceScriptMapping.prototype.reset):
3356         (WebInspector.MainScriptMapping):
3357         (WebInspector.MainScriptMapping.prototype.rawLocationToUILocation):
3358         (WebInspector.MainScriptMapping.prototype.createLiveLocation):
3359         (WebInspector.MainScriptMapping.prototype._registerLiveLocation):
3360         (WebInspector.MainScriptMapping.prototype._unregisterLiveLocation):
3361         (WebInspector.MainScriptMapping.prototype._updateLiveLocations):
3362         (WebInspector.MainScriptMapping.prototype.uiSourceCodeList):
3363         (WebInspector.MainScriptMapping.prototype.addScript):
3364         (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
3365         (WebInspector.MainScriptMapping.prototype.setFormatSource):
3366         (WebInspector.MainScriptMapping.prototype.forceUpdateSourceMapping):
3367         (WebInspector.MainScriptMapping.prototype.reset):
3368
3369 2012-03-12  Pavel Feldman  <pfeldman@chromium.org>
3370
3371         Web Inspector: recognize Float*Array and Int*Array as arrays.
3372         https://bugs.webkit.org/show_bug.cgi?id=80850
3373
3374         Reviewed by Vsevolod Vlasov.
3375
3376         Test: inspector/console/console-external-array.html
3377
3378         * bindings/js/JSInjectedScriptHostCustom.cpp:
3379         (WebCore::JSInjectedScriptHost::type):
3380         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3381         (WebCore::V8InjectedScriptHost::typeCallback):
3382
3383 2012-03-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3384
3385         [TexMapGL] Pixel-align the transform of textures that fit pixel-for-pixel on the frame buffer.
3386         https://bugs.webkit.org/show_bug.cgi?id=80848
3387
3388         Reviewed by Noam Rosenthal.
3389
3390         When rendering a transformed texture on the screen with a fractional
3391         coordinate with linear filtering, the resulting pixel will be blended from
3392         the texels around this fractional position according to their cover ratio.
3393         This produces a slight blur of pixels which give no benefit when rendering
3394         a texture that isn't scaled.
3395
3396         This patch offsets the transform by rounding the translation part of the
3397         layer's transform to align the result to integer coordinates.
3398         Applying the adjustment on the layer transform makes sure that all the tiles
3399         get the same adjustment.
3400
3401         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3402         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
3403         * platform/graphics/texmap/TextureMapperGL.cpp:
3404         (WebCore::TextureMapperGL::drawTexture):
3405         * platform/graphics/texmap/TextureMapperGL.h:
3406         (WebCore::BitmapTextureGL::textureSize):
3407
3408 2012-03-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3409
3410         [TexMapGL] Use textures sized exactly to their contents.
3411         https://bugs.webkit.org/show_bug.cgi?id=80845
3412
3413         Reviewed by Noam Rosenthal.
3414
3415         This fixes a regression introduced in r108273 as well as the bug it fixed.
3416         The regressing behavior was that textures were rendered shrunk by 1 pixel
3417         and thus would appear blurry on the screen.
3418         The original problem was that garbage contents would appear on filtered
3419         textures since we would reuse textures of different sizes by giving them
3420         a slightly bigger size.
3421
3422         This patch will reuse the texture only if the size matches exactly to allow
3423         edge clamping to work properly when redering with linear filtering.
3424         Reusing textures would only saves us the allocation of graphic memory
3425         anyway, which is negligeable compared to texture upload.
3426
3427         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3428         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
3429         * platform/graphics/texmap/TextureMapperGL.cpp:
3430         (WebCore::TextureMapperGL::drawTexture):
3431         (WebCore::BitmapTextureGL::didReset):
3432         * platform/graphics/texmap/TextureMapperGL.h:
3433         (BitmapTextureGL):
3434         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
3435         (WebCore::TextureMapperShaderProgramOpacityAndMask::TextureMapperShaderProgramOpacityAndMask):
3436         (WebCore::TextureMapperShaderProgramOpacityAndMask::prepare):
3437         * platform/graphics/texmap/TextureMapperShaderManager.h:
3438         (TextureMapperShaderProgramOpacityAndMask):
3439
3440 2012-03-12  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3441
3442         [TexMap] Remove BitmapTexture::destroy.
3443         https://bugs.webkit.org/show_bug.cgi?id=80844
3444
3445         Reviewed by Noam Rosenthal.
3446
3447         Use the destructor directly instead.
3448
3449         * platform/graphics/texmap/TextureMapper.h:
3450         * platform/graphics/texmap/TextureMapperGL.cpp:
3451         (WebCore::BitmapTextureGL::~BitmapTextureGL):
3452         * platform/graphics/texmap/TextureMapperGL.h:
3453         (BitmapTextureGL):
3454         * platform/graphics/texmap/TextureMapperImageBuffer.h:
3455         (WebCore::BitmapTextureImageBuffer::~BitmapTextureImageBuffer):
3456
3457 2012-03-12  Pavel Podivilov  <podivilov@chromium.org>
3458
3459         Web Inspector: DebuggerModel.Location should have scriptId property.
3460         https://bugs.webkit.org/show_bug.cgi?id=80830
3461
3462         Reviewed by Vsevolod Vlasov.
3463
3464         * inspector/front-end/CompilerSourceMapping.js:
3465         (WebInspector.ClosureCompilerSourceMapping.prototype.sourceLocationToCompiledLocation):
3466         * inspector/front-end/ConsoleMessage.js:
3467         (WebInspector.ConsoleMessageImpl.prototype.location):
3468         * inspector/front-end/DebuggerModel.js:
3469         (WebInspector.DebuggerModel.Location):
3470         (WebInspector.DebuggerModel.prototype._failedToParseScriptSource):
3471         (WebInspector.DebuggerModel.prototype.createRawLocation):
3472         (WebInspector.DebuggerModel.prototype.createRawLocationByURL):
3473         * inspector/front-end/DebuggerPresentationModel.js:
3474         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
3475         (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
3476         (WebInspector.DebuggerPresentationModel.prototype._addPendingConsoleMessagesToScript):
3477         (WebInspector.DebuggerPresentationModelResourceBinding.prototype._uiSourceCodeForResource):
3478         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyLocation):
3479         * inspector/front-end/RawSourceCode.js:
3480         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
3481         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
3482         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
3483         (WebInspector.RawSourceCode.CompilerSourceMapping.prototype.uiLocationToRawLocation):
3484         * inspector/front-end/ScriptFormatter.js:
3485         (WebInspector.ScriptFormatter.locationToPosition):
3486         (WebInspector.ScriptFormatter.positionToLocation):
3487         (WebInspector.FormattedSourceMapping.prototype.originalToFormatted):
3488         (WebInspector.FormattedSourceMapping.prototype.formattedToOriginal):
3489
3490 2012-03-12  Dana Jansens  <danakj@chromium.org>
3491
3492         [chromium] A couple early-outs for occlusion tracker
3493         https://bugs.webkit.org/show_bug.cgi?id=80742
3494
3495         Reviewed by Adrienne Walker.
3496
3497         Covered by existing tests.
3498
3499         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
3500         (WebCore::::occluded):
3501         (WebCore::::unoccludedContentRect):
3502
3503 2012-03-12  Zeno Albisser  <zeno@webkit.org>
3504
3505         [Qt][Mac] Build fails after adding WebCoreCFAutorelease(CFTypeRef) (r110360).
3506         https://bugs.webkit.org/show_bug.cgi?id=80840
3507
3508         CoreFoundation/CFBase.h needs to be included to define the type CFTypeRef.
3509
3510         Reviewed by Tor Arne Vestbø.
3511
3512         * platform/mac/WebCoreObjCExtras.h:
3513
3514 2012-03-12  George Staikos  <staikos@webkit.org>
3515
3516         Remove unused global static variable for BlackBerry.
3517         https://bugs.webkit.org/show_bug.cgi?id=80790
3518
3519         Reviewed by Alexey Proskuryakov.
3520
3521         * platform/graphics/gpu/DrawingBuffer.cpp:
3522         (WebCore):
3523
3524 2012-03-12  George Staikos  <staikos@webkit.org>
3525
3526         Correct usage of NDEBUG to fix warnings on BlackBerry.
3527         https://bugs.webkit.org/show_bug.cgi?id=80790
3528
3529         Reviewed by Alexey Proskuryakov.
3530
3531         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
3532         (WebCore::CookieDatabaseBackingStore::sendChangesToDatabase):
3533         * platform/blackberry/CookieManager.cpp:
3534         (WebCore::CookieManager::initiateCookieLimitCleanUp):
3535
3536 2012-03-12  Ilya Tikhonovsky  <loislo@chromium.org>
3537
3538         Re-apply the patch after v8 roll to r11000.
3539
3540         Web Inspector: move heap snapshot nodes data to external array.
3541         https://bugs.webkit.org/show_bug.cgi?id=79911
3542
3543         Reviewed by Vsevolod Vlasov.
3544
3545         Tests:
3546         heap-shapshot.html
3547         heap-shapshot-loader.html
3548
3549         * inspector/front-end/HeapSnapshot.js:
3550         (WebInspector.Int32Array):
3551         (WebInspector.Int32Array.prototype.get array):
3552         (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
3553         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
3554         (WebInspector.HeapSnapshot):
3555         (WebInspector.HeapSnapshot.prototype._init):
3556
3557 2012-03-12  Simon Hausmann  <simon.hausmann@nokia.com>
3558
3559         [Qt] Fix build with newer Qt 5.
3560
3561         Reviewed by Tor Arne Vestbø.
3562
3563         * platform/qt/RenderThemeQt.cpp:
3564         (WebCore::RenderThemeQt::fileListNameForWidth): Use DefaultCodec instead of the
3565         deprecated CodecForTR.
3566
3567 2012-03-12  Hans Wennborg  <hans@chromium.org>
3568
3569         Speech JavaScript API: SpeechRecognitionEvent
3570         https://bugs.webkit.org/show_bug.cgi?id=80513
3571
3572         Reviewed by Adam Barth.
3573
3574         Implement SpeechRecognitionEvent.
3575         (Spec: http://speech-javascript-api-spec.googlecode.com/git/speechapi.html)
3576
3577         Test: fast/events/constructors/speech-recognition-event-constructor.html
3578
3579         * Modules/speech/DOMWindowSpeech.idl:
3580         * Modules/speech/SpeechRecognitionEvent.cpp: Added.
3581         (WebCore):
3582         (WebCore::SpeechRecognitionEventInit::SpeechRecognitionEventInit):
3583         (WebCore::SpeechRecognitionEvent::create):
3584         (WebCore::SpeechRecognitionEvent::createResult):
3585         (WebCore::SpeechRecognitionEvent::createNoMatch):
3586         (WebCore::SpeechRecognitionEvent::createResultDeleted):
3587         (WebCore::SpeechRecognitionEvent::createError):
3588         (WebCore::SpeechRecognitionEvent::interfaceName):
3589         (WebCore::SpeechRecognitionEvent::SpeechRecognitionEvent):
3590         * Modules/speech/SpeechRecognitionEvent.h: Added.
3591         (WebCore):
3592         (SpeechRecognitionEventInit):
3593         (SpeechRecognitionEvent):
3594         (WebCore::SpeechRecognitionEvent::result):
3595         (WebCore::SpeechRecognitionEvent::error):
3596         (WebCore::SpeechRecognitionEvent::resultIndex):
3597         (WebCore::SpeechRecognitionEvent::resultHistory):
3598         * Modules/speech/SpeechRecognitionEvent.idl:
3599         * WebCore.gypi:
3600         * bindings/generic/RuntimeEnabledFeatures.h:
3601         (WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionEventEnabled):
3602         * bindings/v8/OptionsObject.cpp:
3603         (WebCore::OptionsObject::get):
3604         (WebCore):
3605         * bindings/v8/OptionsObject.h:
3606         (WebCore):
3607         (OptionsObject):
3608         * dom/EventNames.h:
3609         (WebCore):
3610         * dom/EventNames.in:
3611
3612 2012-03-12  Kent Tamura  <tkent@chromium.org>
3613
3614         Use ICU C API instead of C++ API in LocalizedNumberICU
3615         https://bugs.webkit.org/show_bug.cgi?id=80815
3616         https://bugs.gentoo.org/show_bug.cgi?id=407401
3617
3618         Reviewed by Hajime Morita.
3619
3620         ICU 4.8 doesn't have kNumberStyle. We had better to use ICU C API in
3621         general to avoid such issues.
3622
3623         This patch should not make any behavior change.
3624
3625         * platform/text/LocalizedNumberICU.cpp:
3626         (WebCore::ICULocale::ICULocale):
3627         Change the argument type: icu::Locale -> const char*
3628         (WebCore::ICULocale::~ICULocale): Delete m_numberFormat with unum_close().
3629         (WebCore::ICULocale::create): Do not create icu::Locale.
3630         (WebCore::ICULocale::createForCurrentLocale): ditto.
3631         (WebCore::ICULocale::setDecimalSymbol):
3632         Use unum_getSymbol() instead of DecimalFormatSymbols::getSymbol().
3633         (WebCore::ICULocale::setDecimalTextAttribute):
3634         Added. A utility function to store prefixes and suffixes.
3635         (WebCore::ICULocale::initializeDecimalFormat):
3636         - unum_open(), instead of NumberFormat::createInstance().
3637         - Use C API symbols.
3638         - Cache positive/negative prefixes/suffixes.
3639         (WebCore::ICULocale::convertToLocalizedNumber): Use cached prefixes and suffixes.
3640         (WebCore::matches): Stop using template because we don't use UString anymore.
3641         (WebCore::ICULocale::detectSignAndGetDigitRange):
3642         - Use cached prefixes and suffixes.
3643         - Use String::startsWith() and endsWith().
3644         (WebCore::ICULocale::convertFromLocalizedNumber):
3645         * platform/text/LocalizedNumberICU.h:
3646         (ICULocale):
3647
3648 2012-03-11  Pavel Podivilov  <podivilov@chromium.org>
3649
3650         Web Inspector: decouple LiveLocation from RawSourceCode.
3651         https://bugs.webkit.org/show_bug.cgi?id=80785
3652
3653         Reviewed by Vsevolod Vlasov.
3654
3655         * inspector/front-end/DebuggerPresentationModel.js:
3656         (WebInspector.DebuggerPresentationModel.prototype.createPlacard):
3657         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
3658         (WebInspector.PresentationCallFrame):
3659         (WebInspector.PresentationCallFrame.prototype.uiLocation):
3660         (WebInspector.DebuggerPresentationModel.CallFramePlacard):
3661         * inspector/front-end/RawSourceCode.js:
3662         * inspector/front-end/ScriptMapping.js:
3663         (WebInspector.MainScriptMapping):
3664         (WebInspector.MainScriptMapping.prototype.createLiveLocation):
3665         (WebInspector.MainScriptMapping.prototype._registerLiveLocation):
3666         (WebInspector.MainScriptMapping.prototype._unregisterLiveLocation):
3667         (WebInspector.MainScriptMapping.prototype._updateLiveLocations):
3668         (WebInspector.MainScriptMapping.prototype._uiSourceCodeListChanged):
3669         (WebInspector.MainScriptMapping.prototype.reset):
3670         (WebInspector.LiveLocation):
3671         (WebInspector.LiveLocation.prototype.init):
3672         (WebInspector.LiveLocation.prototype.dispose):
3673         (WebInspector.LiveLocation.prototype._update):
3674
3675 2012-03-11  Victor Carbune  <vcarbune@adobe.com>
3676
3677         The main code structure for placing future text track cue rendering
3678         code and main outer rendering steps.
3679         https://bugs.webkit.org/show_bug.cgi?id=79746
3680
3681         Reviewed by Eric Carlson.
3682
3683         No new tests. Only refactoring, but some chromium tests require rebaselining
3684         and have been marked accordingly.
3685
3686         * css/mediaControls.css:
3687         (::-webkit-media-controls): Changed the default display to -webkit-box, as
3688         captions need to always be rendered on top of the controls, if they are visible.
3689         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
3690         Default position attribute is now relative, handled by the parent -webkit-box
3691         (video::-webkit-media-text-track-container): The position of the container is
3692         now relative, handled by -webkit-box.
3693         (video::-webkit-media-text-track-display): Adjusted text color to match
3694         the color required in the WebVTT spec (section 3.5.1 'color' property)
3695         * css/mediaControlsChromium.css:
3696         (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
3697         Default position attribute is now relative, handled by the parent -webkit-box
3698
3699         * html/shadow/MediaControlElements.cpp:
3700         (WebCore::MediaControlPanelElement::MediaControlPanelElement): Added a timer
3701         for the webkit fade out transition event. This timer is required for setting
3702         the display property to 'none', when the fade out transition is over. Otherwise,
3703         captions would not be displayed at the bottom of the video.
3704         (WebCore::MediaControlPanelElement::startTimer): Added.
3705         (WebCore):
3706         (WebCore::MediaControlPanelElement::stopTimer): Added.
3707         (WebCore::MediaControlPanelElement::transitionTimerFired): Added. If the current
3708         state of the controls is transparent, the display property is set to 'none'.
3709         (WebCore::MediaControlPanelElement::makeOpaque): The inline display:'none' property
3710         is removed before the fade in transition.
3711         (WebCore::MediaControlPanelElement::makeTransparent): Added the timer start.
3712         (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
3713         Removed m_bottom as it is not needed anymore.
3714         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Added. Main
3715         function for the rendering rules.
3716         (WebCore::MediaControlTextTrackContainerElement::updateSizes): The bottom position
3717         needs not to be set anymore.
3718         * html/shadow/MediaControlElements.h:
3719         (MediaControlPanelElement): Added timer internals.
3720         (MediaControlTextTrackContainerElement): Added updateDisplay() and removed unused
3721         variables.
3722
3723         (WebCore):
3724         * html/shadow/MediaControlRootElement.cpp: Removed m_textTrackDisplay
3725         and duplicated code with MediaControlRootElementChromium (only minimum
3726         function calls to the main text track container)
3727         (WebCore::MediaControlRootElement::MediaControlRootElement):
3728         (WebCore::MediaControlRootElement::setMediaController):
3729         (WebCore::MediaControlRootElement::createTextTrackDisplay):
3730         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
3731
3732         * html/shadow/MediaControlRootElementChromium.cpp: Removed m_textTrackDisplay
3733         and duplicate code with MediaControlRootElement (only minimum function calls
3734         to the main text track container remained)
3735         (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
3736         (WebCore::MediaControlRootElementChromium::setMediaController):
3737         (WebCore::MediaControlRootElementChromium::createTextTrackDisplay):
3738         (WebCore::MediaControlRootElementChromium::updateTextTrackDisplay):
3739
3740         (WebCore):
3741         * html/track/TextTrackCue.cpp: Enhanced structure for supporting more complex
3742         rendering required by the WebVTT spec.
3743         (WebCore::TextTrackCue::TextTrackCue):
3744         (WebCore::TextTrackCue::cueDidChange): Mark the display tree as obsolete, so that
3745         it needs to be re-computed.
3746         (WebCore::TextTrackCue::setIsActive): The display tree needs to be removed as
3747         soon as the cue becomes inactive. Adjusted this method to support the functionality.
3748         (WebCore):
3749         (WebCore::TextTrackCue::determineDisplayParameters): Added. This method will hold
3750         main positioning parameter computations for a TextTrackCue
3751         (WebCore):
3752         (WebCore::TextTrackCue::getDisplayTree): Added. This method returns the root node
3753         of the CSS boxes that need to be displayed on top of the video, for the current
3754         instance.
3755         * html/track/TextTrackCue.h:
3756         (WebCore):
3757         (TextTrackCue):
3758
3759 2012-03-11  Sheriff Bot  <webkit.review.bot@gmail.com>
3760
3761         Unreviewed, rolling out r110359.
3762         http://trac.webkit.org/changeset/110359
3763         https://bugs.webkit.org/show_bug.cgi?id=80799
3764
3765         SelectPopupMenuTest.ClickItem failure (Requested by ukai on
3766         #webkit).
3767
3768         * platform/chromium/PopupListBox.cpp:
3769         (WebCore::PopupListBox::paint):
3770         (WebCore::PopupListBox::paintRow):
3771         (WebCore::PopupListBox::getRowHeight):
3772         * platform/chromium/PopupListBox.h:
3773         (PopupContainerSettings):
3774         * platform/chromium/PopupMenuChromium.cpp:
3775         (WebCore):
3776         (WebCore::PopupMenuChromium::show):
3777         * platform/chromium/PopupMenuChromium.h:
3778         (PopupMenuChromium):
3779         * rendering/RenderMenuList.cpp:
3780         (WebCore::RenderMenuList::showPopup):
3781
3782 2012-03-11  Timothy Hatcher  <timothy@apple.com>
3783
3784         Fix a crash opening the Web Inspector in WebKit1 clients.
3785
3786         The call to InspectorFrontendClientLocal::setAttachedWindow is preformed really early in the process,
3787         causing it to crash almost every time. It should use evaluateOnLoad instead of evaluateAsBoolean.
3788
3789         <rdar://problem/10951109> Crash when bringing up Web Inspector in WebKit1 client
3790         https://bugs.webkit.org/show_bug.cgi?id=80796
3791
3792         Reviewed by Brian Weinstein.
3793
3794         * inspector/InspectorFrontendClientLocal.cpp:
3795         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Use evaluateOnLoad instead of evaluateAsBoolean.
3796
3797 2012-03-11  Shawn Singh  <shawnsingh@chromium.org>
3798
3799         REGRESSION (r93614): scrolling div does not repaint
3800         https://bugs.webkit.org/show_bug.cgi?id=80641
3801
3802         Reviewed by Simon Fraser.
3803
3804         Test: compositing/repaint/newly-composited-repaint-rect.html
3805
3806         * rendering/RenderLayerCompositor.cpp:
3807         (WebCore::RenderLayerCompositor::updateBacking): When a layer
3808         becomes newly composited and creates its backing, the repaintRect
3809         may become invalid. This patch recomputes repaintRects in this
3810         case.
3811
3812 2012-03-11  George Staikos  <staikos@webkit.org>
3813
3814         Enable JPEG encoding for BlackBerry.
3815         https://bugs.webkit.org/show_bug.cgi?id=80792
3816
3817         Reviewed by Antonio Gomes.
3818
3819         * PlatformBlackBerry.cmake:
3820
3821 2012-03-11  Pavel Feldman  <pfeldman@chromium.org>
3822
3823         Web Inspector: console.log attempts to substitute any "%" character in the message.
3824         https://bugs.webkit.org/show_bug.cgi?id=80504
3825
3826         Reviewed by Vsevolod Vlasov.
3827
3828         Test: inspector/console/console-string-format.html
3829
3830         * inspector/front-end/AuditRules.js:
3831         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
3832         * inspector/front-end/ProfileDataGridTree.js:
3833         * inspector/front-end/ProfilesPanel.js:
3834         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
3835         * inspector/front-end/utilities.js:
3836
3837 2012-03-11  Andrey Kosyakov  <caseq@chromium.org>
3838
3839         Web Inspector: use monotonically increasing time in timeline agent
3840         https://bugs.webkit.org/show_bug.cgi?id=80786
3841
3842         Reviewed by Pavel Feldman.
3843
3844         * bindings/v8/ScriptGCEvent.cpp:
3845         (WebCore::ScriptGCEvent::gcPrologueCallback):
3846         (WebCore::ScriptGCEvent::gcEpilogueCallback):
3847         * inspector/InspectorTimelineAgent.cpp:
3848         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
3849         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
3850         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
3851         (WebCore::InspectorTimelineAgent::appendRecord):
3852         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
3853         (WebCore::InspectorTimelineAgent::timestamp):
3854         (WebCore):
3855         * inspector/InspectorTimelineAgent.h:
3856         (InspectorTimelineAgent):
3857         (WebCore::InspectorTimelineAgent::timestamp):
3858
3859 2012-03-11  Vsevolod Vlasov  <vsevik@chromium.org>
3860
3861         Web Inspector: Network panel does not show responses for application/json data
3862         https://bugs.webkit.org/show_bug.cgi?id=80684
3863
3864         Reviewed by Pavel Feldman.
3865
3866         Test: http/tests/inspector/network/async-xhr-json-mime-type.html
3867
3868         * inspector/InspectorPageAgent.cpp:
3869         (WebCore::createXHRTextDecoder):
3870         (WebCore::InspectorPageAgent::cachedResourceContent):
3871         * inspector/InspectorPageAgent.h:
3872         * inspector/NetworkResourcesData.cpp:
3873         (WebCore::createOtherResourceTextDecoder):
3874         (WebCore):
3875         (WebCore::NetworkResourcesData::responseReceived):
3876
3877 2012-03-11  Vsevolod Vlasov  <vsevik@chromium.org>
3878
3879         Web Inspector: CSS content is not shown when stylesheet is loaded with invalid mime type in quirks mode.
3880         https://bugs.webkit.org/show_bug.cgi?id=80528
3881
3882         Reviewed by Pavel Feldman.
3883
3884         Test: http/tests/inspector/resource-tree/resource-tree-invalid-mime-type-css-content.html
3885
3886         * inspector/InspectorPageAgent.cpp:
3887         (WebCore::InspectorPageAgent::cachedResourceContent):
3888
3889 2012-03-11  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
3890
3891         [Qt] [WK2] Support threaded renderer in WK2
3892         https://bugs.webkit.org/show_bug.cgi?id=76661
3893
3894         Reviewed by Noam Rosenthal.
3895
3896         Add TransformationMatrix conversions from/to Qt QMatrix4x4. Used by Qt WebKit2
3897         rendering and tested by Qt WebKit2 API tests.
3898
3899         * platform/graphics/qt/TransformationMatrixQt.cpp:
3900         (WebCore::TransformationMatrix::operator QMatrix4x4):
3901         (WebCore):
3902         (WebCore::TransformationMatrix::TransformationMatrix):
3903         * platform/graphics/transforms/TransformationMatrix.h:
3904         (TransformationMatrix):
3905
3906 2012-03-09  Jon Lee  <jonlee@apple.com>
3907
3908         Rename NotificationPresenter to NotificationClient
3909         https://bugs.webkit.org/show_bug.cgi?id=80488
3910         <rdar://problem/10965558>
3911
3912         Reviewed by Kentaro Hara.
3913
3914         * notifications/NotificationCenter.h: Renamed from notifications/NotificationPresenter.h.
3915
3916         Refactor to use renamed WebCore::NotificationClient.
3917         * GNUmakefile.list.am:
3918         * Target.pri:
3919         * WebCore.exp.in:
3920         * WebCore.gypi:
3921         * WebCore.vcproj/WebCore.vcproj:
3922         * WebCore.xcodeproj/project.pbxproj:
3923         * notifications/Notification.cpp:
3924         (WebCore::Notification::Notification):
3925         (WebCore::Notification::show):
3926         (WebCore::Notification::cancel):
3927         (WebCore::Notification::contextDestroyed):
3928         (WebCore::Notification::finishLoading):
3929         * notifications/NotificationCenter.cpp:
3930         (WebCore::NotificationCenter::create):
3931         (WebCore::NotificationCenter::NotificationCenter):
3932         (WebCore::NotificationCenter::checkPermission):
3933         (WebCore::NotificationCenter::requestPermission):
3934         (WebCore::NotificationCenter::disconnectFrame):
3935         * notifications/NotificationController.cpp:
3936         (WebCore::NotificationController::NotificationController):
3937         (WebCore::NotificationController::create):
3938         (WebCore::NotificationController::clientFrom):
3939         (WebCore::provideNotification):
3940         * notifications/NotificationController.h:
3941         (WebCore):
3942         (NotificationController):
3943         (WebCore::NotificationController::client):
3944         * page/DOMWindow.cpp:
3945         (WebCore::DOMWindow::webkitNotifications):
3946         * page/DOMWindow.h:
3947         (DOMWindow):
3948         * workers/WorkerContext.cpp:
3949         (WebCore::WorkerContext::webkitNotifications):
3950         * workers/WorkerThread.cpp:
3951         (WebCore::WorkerThread::WorkerThread):
3952         * workers/WorkerThread.h:
3953         (WebCore):
3954         (WebCore::WorkerThread::getNotificationClient):
3955         (WebCore::WorkerThread::setNotificationClient):
3956         (WorkerThread):
3957
3958 2012-03-10  Julien Chaffraix  <jchaffraix@webkit.org>
3959
3960         RenderObject with 'resize' different from 'none' should have a RenderLayer
3961         https://bugs.webkit.org/show_bug.cgi?id=80738
3962
3963         Reviewed by James Robinson.
3964
3965         Covered by fast/css/resize-single-axis.html.
3966
3967         * rendering/RenderBox.h:
3968         (WebCore::RenderBox::requiresLayerForOverflowClip):
3969         The resizer logic is tied to RenderLayer so force a RenderLayer to be allocated if resize() != RESIZE_NONE.
3970
3971 2012-03-10  Stephen White  <senorblanco@chromium.org>
3972
3973         Unreviewed, rolling out r110358.
3974         http://trac.webkit.org/changeset/110358
3975         https://bugs.webkit.org/show_bug.cgi?id=80706
3976
3977         No improvement on specified benchmarks.
3978
3979         * dom/ContainerNode.cpp:
3980         (WebCore::collectNodes):
3981         (WebCore::collectTargetNodes):
3982
3983 2012-03-10  MORITA Hajime  <morrita@google.com>
3984
3985         ShadowTree uses weak iteration patterns
3986         https://bugs.webkit.org/show_bug.cgi?id=80572
3987
3988         Reviewed by Dimitri Glazkov.
3989
3990         Patch by Adam Barth.
3991
3992         This patch moves various ShadowTree to using a better iteration pattern
3993         in which we collect all the ShadowRoots we're planning to iterate into
3994         a vector and then iterate over them.
3995
3996         * dom/ShadowTree.cpp:
3997         (ShadowRootVector):
3998         (WebCore::ShadowRootVector::ShadowRootVector):
3999         (WebCore):
4000         (WebCore::ShadowTree::removeAllShadowRoots):
4001         (WebCore::ShadowTree::insertedIntoDocument):
4002         (WebCore::ShadowTree::removedFromDocument):
4003         (WebCore::ShadowTree::insertedIntoTree):
4004         (WebCore::ShadowTree::removedFromTree):
4005         (WebCore::ShadowTree::willRemove):
4006
4007 2012-03-10  Sheriff Bot  <webkit.review.bot@gmail.com>
4008
4009         Unreviewed, rolling out r110363.
4010         http://trac.webkit.org/changeset/110363
4011         https://bugs.webkit.org/show_bug.cgi?id=80757
4012
4013         link error in chromium: unresolved external symbol
4014         webkit_support::CreateScopedTempDirectory(void) (Requested by
4015         ukai_home on #webkit).
4016
4017         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
4018         (WebCore::IDBLevelDBBackingStore::open):
4019         * platform/leveldb/LevelDBDatabase.cpp:
4020         * platform/leveldb/LevelDBDatabase.h:
4021         (LevelDBDatabase):
4022
4023 2012-03-09  Robert Kroeger  <rjkroege@chromium.org>
4024
4025         Handle more Gesture* events by performing scrolls on the correct target ScrollableArea 
4026         https://bugs.webkit.org/show_bug.cgi?id=80311
4027
4028         Implement GestureScroll* events via re-use of WheelEvent dispatch.