[chromium] Separate IOSurface layer type from texture layers
[WebKit.git] / Source / WebCore / ChangeLog
1 2012-04-26  James Robinson  <jamesr@chromium.org>
2
3         [chromium] Separate IOSurface layer type from texture layers
4         https://bugs.webkit.org/show_bug.cgi?id=85030
5
6         Reviewed by Adrienne Walker.
7
8         Adds a new layer type for IOSurface layers and pipes through a separate path through to rendering. IOSurface
9         layers are very simple - they have an IOSurface id and size, nothing else. All IOSurface layers are "flipped" in
10         our terminology.
11
12         * WebCore.gypi:
13         * platform/graphics/chromium/IOSurfaceLayerChromium.cpp:
14         (WebCore):
15         (WebCore::IOSurfaceLayerChromium::create):
16         (WebCore::IOSurfaceLayerChromium::IOSurfaceLayerChromium):
17         (WebCore::IOSurfaceLayerChromium::~IOSurfaceLayerChromium):
18         (WebCore::IOSurfaceLayerChromium::setIOSurfaceProperties):
19         (WebCore::IOSurfaceLayerChromium::createCCLayerImpl):
20         (WebCore::IOSurfaceLayerChromium::drawsContent):
21         (WebCore::IOSurfaceLayerChromium::pushPropertiesTo):
22         * platform/graphics/chromium/IOSurfaceLayerChromium.h:
23         (WebCore):
24         (IOSurfaceLayerChromium):
25         * platform/graphics/chromium/LayerRendererChromium.cpp:
26         (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
27         (WebCore::LayerRendererChromium::cleanupSharedObjects):
28         * platform/graphics/chromium/LayerRendererChromium.h:
29         (LayerRendererChromium):
30         * platform/graphics/chromium/TextureLayerChromium.cpp:
31         (WebCore::TextureLayerChromium::TextureLayerChromium):
32         (WebCore::TextureLayerChromium::drawsContent):
33         (WebCore::TextureLayerChromium::pushPropertiesTo):
34         * platform/graphics/chromium/TextureLayerChromium.h:
35         (TextureLayerChromium):
36         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
37         (WebCore::CCIOSurfaceDrawQuad::create):
38         (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
39         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
40         (CCIOSurfaceDrawQuad):
41         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
42         (WebCore):
43         (WebCore::CCIOSurfaceLayerImpl::CCIOSurfaceLayerImpl):
44         (WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
45         (WebCore::CCIOSurfaceLayerImpl::willDraw):
46         (WebCore::CCIOSurfaceLayerImpl::appendQuads):
47         (WebCore::CCIOSurfaceLayerImpl::dumpLayerProperties):
48         (WebCore::CCIOSurfaceLayerImpl::didLoseContext):
49         (WebCore::CCIOSurfaceLayerImpl::setIOSurfaceProperties):
50         * platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
51         (WebCore):
52         (CCIOSurfaceLayerImpl):
53         (WebCore::CCIOSurfaceLayerImpl::create):
54         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
55         (WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
56         (WebCore::CCTextureLayerImpl::~CCTextureLayerImpl):
57         (WebCore::CCTextureLayerImpl::appendQuads):
58         (WebCore::CCTextureLayerImpl::didLoseContext):
59         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
60         (CCTextureLayerImpl):
61
62 2012-04-27  Arvid Nilsson  <anilsson@rim.com>
63
64         [BlackBerry] OpenGL related bug fixes
65         https://bugs.webkit.org/show_bug.cgi?id=84836
66
67         Reviewed by Antonio Gomes.
68
69         PR147254, 148933, 149117, 149721, 150228
70
71         No new tests, covered by existing BlackBerry browser stress tests
72
73         * platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
74         (WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):
75         * platform/graphics/blackberry/LayerCompositingThread.cpp:
76         (WebCore::LayerCompositingThread::drawTextures):
77         * platform/graphics/blackberry/LayerRenderer.cpp:
78         (WebCore::LayerRenderer::~LayerRenderer):
79         (WebCore::LayerRenderer::drawLayers):
80         (WebCore::LayerRenderer::initializeSharedGLObjects):
81
82 2012-04-27  Nat Duca  <nduca@chromium.org>
83
84         Implement high-resolution time via window.performance.webkitNow()
85         https://bugs.webkit.org/show_bug.cgi?id=66684
86
87         This implements the high resolution time spec from
88         http://www.w3.org/TR/hr-time/, giving javascript access to
89         sub-millisecond timestamps that increase over time instead of being
90         subject to skewing, for example when the host machine's clock changes.
91
92         Reviewed by Tony Gentilcore.
93
94         Test: fast/performance/performance-now-timestamps.html
95
96         * page/Performance.cpp:
97         (WebCore::Performance::now):
98         (WebCore):
99         * page/Performance.h:
100         (Performance):
101         * page/Performance.idl:
102
103 2012-04-27  Filip Pizlo  <fpizlo@apple.com>
104
105         If you get a list of DOMWrapperWorld*'s and then plan to allocate in the heap, you should ref
106         the DOMWrapperWorld*'s
107         https://bugs.webkit.org/show_bug.cgi?id=85098
108         <rdar://problem/11318170>
109
110         Reviewed by Sam Weinig.
111
112         No new tests because this addresses hard-to-repro flaky behavior arising from GCs at inconvenient
113         times.
114
115         * bindings/js/ScriptController.cpp:
116         (WebCore::ScriptController::getAllWorlds):
117         * bindings/js/ScriptController.h:
118         (ScriptController):
119         * bindings/js/WebCoreJSClientData.h:
120         (WebCore::WebCoreJSClientData::getAllWorlds):
121         * bindings/v8/ScriptController.cpp:
122         (WebCore::ScriptController::getAllWorlds):
123         * bindings/v8/ScriptController.h:
124         (ScriptController):
125         * loader/FrameLoader.cpp:
126         (WebCore::FrameLoader::dispatchDidClearWindowObjectsInAllWorlds):
127         (WebCore::FrameLoader::dispatchGlobalObjectAvailableInAllWorlds):
128
129 2012-04-27  Geoffrey Garen  <ggaren@apple.com>
130
131         Removed the sole use of Weak<Unknown>
132         https://bugs.webkit.org/show_bug.cgi?id=85099
133
134         Reviewed by Sam Weinig.
135
136         The semantics and implementation of Weak<Unknown> are unclear because:
137             - Should you call a finalizer for a non-GC thingy? If so, when?
138
139                 * Possible answer: No.
140
141             - If WeakImpls for GC thingies live with the GC thingies in the
142               heap, where do WeakImpls for non-GC thingies live?
143
144                 * Possible answer: Directly in the Weak<T>.
145
146         Since no clients actually want these behaviors, it's hard to tell if
147         they're the right behaviors, and it's not worth the implementation
148         complexity. If we come up with a client that wants these behaviors, we
149         can always revisit this.
150
151         * bindings/js/JSNodeFilterCondition.cpp:
152         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition): Just leave our
153         filter NULL if it's not an object -- that's a better way to indicate
154         "not a valid filter object".
155
156         (WebCore::JSNodeFilterCondition::acceptNode): Fixed up some naming to
157         clarify that the object we're working with is not necessarily a function.
158
159         * bindings/js/JSNodeFilterCondition.h:
160         (JSNodeFilterCondition): Use Weak<JSObject>, since that more closely
161         matches what we're trying to do.
162
163 2012-04-26  Kentaro Hara  <haraken@chromium.org>
164
165         [V8] Pass Isolate to getDOMXXXMap()
166         https://bugs.webkit.org/show_bug.cgi?id=85022
167
168         Reviewed by Nate Chapin.
169
170         The objective is to pass Isolate around in V8 bindings.
171         This patch passes Isolate to getDOMXXXMap().
172
173         Also this patch removes DOMMap::getDOMDataStore() and
174         DOMData::getDefalutStore(), since the indirection by the
175         methods is redundant. This is not for performance
176         optimization but just for refactoring.
177
178         No tests. No change in behavior.
179
180         * bindings/v8/DOMData.cpp:
181         (WebCore::DOMData::getCurrentStore):
182         * bindings/v8/DOMData.h:
183         (DOMData):
184         * bindings/v8/V8DOMMap.cpp:
185         (WebCore::getDOMNodeMap):
186         (WebCore::getActiveDOMNodeMap):
187         (WebCore::getDOMObjectMap):
188         (WebCore::getActiveDOMObjectMap):
189         (WebCore::removeAllDOMObjects):
190         * bindings/v8/V8DOMMap.h:
191         (WebCore):
192
193 2012-04-26  Kentaro Hara  <haraken@chromium.org>
194
195         [V8] Pass Isolate to V8BindingPerIsolateData::current()
196         https://bugs.webkit.org/show_bug.cgi?id=85023
197
198         Reviewed by Nate Chapin.
199
200         The objective is to pass Isolate around in V8 bindings.
201         This patch passes Isolate to V8BindingPerIsolateData::current().
202
203         No tests. No change in behavior.
204
205         * bindings/v8/V8Binding.h:
206         (WebCore::V8BindingPerIsolateData::current):
207         (WebCore::v8ExternalString):
208
209 2012-04-27  Dimitri Glazkov  <dglazkov@chromium.org>
210
211         Unreviewed, rolling out r115484.
212         http://trac.webkit.org/changeset/115484
213         https://bugs.webkit.org/show_bug.cgi?id=84555
214
215         Broke Chromium compile.
216
217         * bindings/js/JSBlobCustom.cpp:
218         * bindings/v8/custom/V8BlobCustom.cpp:
219         * fileapi/Blob.cpp:
220         * fileapi/Blob.h:
221         (Blob):
222         * fileapi/Blob.idl:
223         * workers/WorkerContext.idl:
224
225 2012-04-27  Alexandru Chiculita  <achicu@adobe.com>
226
227         [CSS Shaders] Implement CSS Animations and Transitions for CSS Shaders
228         https://bugs.webkit.org/show_bug.cgi?id=71406
229
230         Reviewed by Dean Jackson.
231
232         I've implemented the blend function for the CustomFilterOperation. This should enable animations for CSS Shaders.
233         Currently, just floats are implemented. If any of the filter attributes like shader, mesh size or box mode are different, 
234         the fallback is to use the "to" part of the animation instead. If other shader parameters do not match, it will merge the parameter values
235         between the "from" and "to" states.
236
237         Test: css3/filters/custom/custom-filter-animation.html
238
239         * platform/graphics/filters/CustomFilterNumberParameter.h:
240         (WebCore::CustomFilterNumberParameter::blend):
241         (CustomFilterNumberParameter):
242         (WebCore::CustomFilterNumberParameter::operator==):
243         * platform/graphics/filters/CustomFilterOperation.cpp:
244         (WebCore::equalCustomFilterParameters):
245         (WebCore):
246         (WebCore::checkCustomFilterParametersOrder):
247         (WebCore::blendCustomFilterParameters):
248         (WebCore::CustomFilterOperation::CustomFilterOperation):
249         (WebCore::CustomFilterOperation::blend):
250         * platform/graphics/filters/CustomFilterOperation.h:
251         (WebCore):
252         (CustomFilterOperation):
253         (WebCore::CustomFilterOperation::operator==):
254         (WebCore::CustomFilterOperation::operator!=):
255         * platform/graphics/filters/CustomFilterParameter.h:
256         (CustomFilterParameter):
257         (WebCore::CustomFilterParameter::isSameType):
258         (WebCore::CustomFilterParameter::operator==):
259         (WebCore::CustomFilterParameter::operator!=):
260         * platform/graphics/filters/CustomFilterProgram.h:
261         * rendering/style/StyleCustomFilterProgram.h:
262         (StyleCustomFilterProgram):
263         (WebCore::StyleCustomFilterProgram::cachedVertexShader):
264         (WebCore::StyleCustomFilterProgram::cachedFragmentShader):
265         (WebCore::StyleCustomFilterProgram::operator==):
266
267 2012-04-27  Chris Rogers  <crogers@google.com>
268
269         Re-factor scheduling logic from AudioBufferSourceNode into AudioScheduledSourceNode
270         https://bugs.webkit.org/show_bug.cgi?id=84639
271
272         Reviewed by Eric Carlson.
273
274         Playback logic involving noteOn(), noteOff(), and playbackState were intertwined with
275         the AudioBufferSourceNode's buffer playback code.  These are more general concepts and
276         may be implemented separately in another class called AudioScheduledSourceNode.
277
278         No new tests. Covered by existing layout tests.
279
280         * GNUmakefile.list.am:
281         Add AudioScheduledSourceNode files to makefile.
282
283         * Modules/webaudio/AudioBufferSourceNode.cpp:
284         (WebCore):
285         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
286         Re-factor some member variables into new base class AudioScheduledSourceNode.
287
288         (WebCore::AudioBufferSourceNode::process):
289         Re-factor scheduling logic into AudioScheduledSourceNode.
290
291         * Modules/webaudio/AudioBufferSourceNode.h:
292         (AudioBufferSourceNode):
293         Simplify by re-factoring scheduling logic into AudioScheduledSourceNode.
294
295         * Modules/webaudio/AudioScheduledSourceNode.cpp: Added.
296         (WebCore):
297         (WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
298         (WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
299         Get frame information for the current time quantum.
300
301         * Modules/webaudio/AudioScheduledSourceNode.h: Added.
302         (WebCore::AudioScheduledSourceNode::noteOn):
303         (WebCore::AudioScheduledSourceNode::noteOff):
304         (WebCore::AudioScheduledSourceNode::finish):
305         (WebCore::AudioScheduledSourceNode::playbackState):
306         (WebCore::AudioScheduledSourceNode::isPlayingOrScheduled):
307         (WebCore::AudioScheduledSourceNode::hasFinished):
308         Re-factored from AudioBufferSourceNode.
309
310         * WebCore.gypi:
311         * WebCore.xcodeproj/project.pbxproj:
312         Add AudioScheduledSourceNode files to makefiles.
313     
314 2012-04-26  Sam Weinig  <sam@webkit.org>
315
316         Add support for the Blob constructor
317         https://bugs.webkit.org/show_bug.cgi?id=84555
318
319         Reviewed by Maciej Stachowiak.
320
321         Test: fast/files/blob-constructor.html
322
323         This adds an implementation of the Blob constructor that willfully
324         violates the W3C Editor’s Draft 29 February 2012 in the following ways:
325         - Elements in the parts array are coerced to DOMStrings https://www.w3.org/Bugs/Public/show_bug.cgi?id=16721 
326         - Don't throw for invalid key in the dictionary https://www.w3.org/Bugs/Public/show_bug.cgi?id=16727
327         - Values for the endings property are treated as enums https://www.w3.org/Bugs/Public/show_bug.cgi?id=16729 
328
329         * bindings/js/JSBlobCustom.cpp:
330         (WebCore::JSBlobConstructor::constructJSBlob):
331         Implement blob constructor.
332
333         * bindings/v8/custom/V8BlobCustom.cpp:
334         (WebCore::V8Blob::constructorCallback):
335         Implement blob constructor.
336
337         * fileapi/Blob.idl:
338         Add constructor to IDL.
339
340         * workers/WorkerContext.idl:
341         Add Blob constructor to the worker global object.
342
343 2012-04-27  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
344
345         [Qt] Fix minimal build.
346         https://bugs.webkit.org/show_bug.cgi?id=85045
347
348         Reviewed by Tor Arne Vestbø.
349
350         Compile LIBXML XML parser even if ENABLE_XSLT is not set.
351
352         * Target.pri:
353
354 2012-04-27  Shawn Singh  <shawnsingh@chromium.org>
355
356         Infinite backgroundClipRect should not be scrolled.
357         https://bugs.webkit.org/show_bug.cgi?id=84979
358
359         Reviewed by Adrienne Walker.
360
361         Test: compositing/iframes/scroll-fixed-transformed-element.html
362
363         By accidentally scrolling clipRects that should be considered
364         "infinite", they were no longer being considered infinite. This
365         caused a chain of un-intended code paths that caused fixed
366         position elements to stutter when scrolling in Chromium.
367
368         * rendering/RenderLayer.cpp:
369         (WebCore::RenderLayer::backgroundClipRect):
370
371 2012-04-27  Ryosuke Niwa  <rniwa@webkit.org>
372
373         FormatBlock crashes when body element is removed prior to the command execution
374         https://bugs.webkit.org/show_bug.cgi?id=84937
375
376         Reviewed by Tony Chang.
377
378         The crash was because because DOM had been modified since the last time selection had been "validated",
379         and therefore frame selection's endpoints are no longer visible when we instantiated visibleStart
380         and visibleEnd from m_endingSelection of the edit command.
381
382         Fixed the bug by checking the nullity and orphanedness of visible start and visible end directly.
383         I suspect we have similar bugs in other commands. The fundamental problem is that the copy constructor
384         of VisibleSelection never validates so when a VisibleSelection is passed from one class to another
385         (e.g. FrameSelection to EditCommand), we may not adjust end points as needed.
386
387         Test: editing/execCommand/format-block-without-body-crash.html
388
389         * editing/ApplyBlockElementCommand.cpp:
390         (WebCore::ApplyBlockElementCommand::doApply):
391
392 2012-04-27  Enrica Casucci  <enrica@apple.com>
393
394         REGRESSION(r96257): Deleting a large amount of text is very slow.
395         https://bugs.webkit.org/show_bug.cgi?id=83983
396         <rdar://problem/10826076>
397         
398         Reviewed by Ryosuke Niwa.
399
400         The change in r96257 did not cause the performance regression per se,
401         but exposed a problem in the way we calculate the offset in container
402         node when the anchorType is PositionIsOffsetInAnchor.
403         The offset was computed as the minimum between the given offset and
404         lastOffsetInNode. If the container has a very large number of children,
405         we walk the entire list of child nodes in the container simply to find
406         out how many they are.
407         Looking through the entire editing code, I found other 2 cases (one
408         is only an ASSERT) where we could do a similar optimization.
409
410         No new tests. No behavior change, only performance optimization.
411
412         * dom/Position.cpp:
413         (WebCore::Position::computeOffsetInContainerNode):
414         * dom/Position.h:
415         (WebCore::minOffsetForNode):
416         (WebCore::offsetIsBeforeLastNodeOffset):
417         * editing/ApplyStyleCommand.cpp:
418         (WebCore::ApplyStyleCommand::removeInlineStyle):
419         (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
420
421 2012-04-27  Julien Chaffraix  <jchaffraix@webkit.org>
422
423         NULL-deref in RenderBox::clippedOverflowRectForRepaint
424         https://bugs.webkit.org/show_bug.cgi?id=84774
425
426         Reviewed by Tony Chang.
427
428         Test: fast/inline/crash-new-continuation-with-outline.html
429
430         The bug comes from trying to repaint the :after content as part of updateBeforeAfterContent.
431         The repainting logic would query the yet-to-be-inserted continuation(). Then we would crash in
432         RenderBox::clippedOverflowRectForRepaint as we didn't have an enclosingLayer() (which any
433         RenderObject in the tree will have).
434
435         The fix is to check in RenderInline::clippedOverflowRectForRepaint that our continuation()
436         is properly inserted in the tree. We could check that it isRooted() but it's an overkill here.
437
438         * rendering/RenderInline.cpp:
439         (WebCore::RenderInline::clippedOverflowRectForRepaint):
440
441 2012-04-27  Antti Koivisto  <antti@apple.com>
442
443         Memory cache pruning should be protected against reentering.
444         https://bugs.webkit.org/show_bug.cgi?id=85077
445
446         Reviewed by Alexey Proskuryakov.
447
448         MemoryCache::pruneDeadResourcesToSize() has some ad-hock protection against reentering.
449         This patch adds more complete protection.
450
451         * loader/cache/MemoryCache.cpp:
452         (WebCore::MemoryCache::MemoryCache):
453         (WebCore::MemoryCache::pruneLiveResourcesToSize):
454         
455             Protect live resource pruning too.
456
457         (WebCore::MemoryCache::pruneDeadResourcesToSize):
458         
459             Remove the existing weak reentrancy handling in favor of full proctection.
460
461         * loader/cache/MemoryCache.h:
462         (MemoryCache):
463
464 2012-04-27  Alexander Pavlov  <apavlov@chromium.org>
465
466         Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
467         (re-landing r115417 with a test that should work on Windows.)
468         https://bugs.webkit.org/show_bug.cgi?id=84946
469
470         Reviewed by Yury Semikhatsky.
471
472         Test: inspector/debugger/disable-script.html
473
474         * inspector/Inspector.json:
475         * inspector/InspectorPageAgent.cpp:
476         (PageAgentState):
477         (WebCore::InspectorPageAgent::enable):
478         (WebCore::InspectorPageAgent::disable):
479         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
480         (WebCore):
481         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
482         * inspector/InspectorPageAgent.h:
483         * inspector/front-end/Settings.js:
484         * inspector/front-end/SettingsScreen.js:
485         (WebInspector.SettingsScreen):
486         (WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
487         (WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):
488         * inspector/front-end/inspector.js:
489
490 2012-04-27  Keishi Hattori  <keishi@webkit.org>
491
492         IETC HTML5: verify HTMLDataListElement - instanceof HTMLDataListElement fails.
493         https://bugs.webkit.org/show_bug.cgi?id=81196
494
495         Reviewed by Kent Tamura.
496
497         Test: fast/dom/Window/window-properties.html, fast/dom/Window/window-lookup-precedence.html
498
499         HTMLDataListElement should be available on DOMWindow.
500
501         * page/DOMWindow.idl: Added HTMLDataListElement.
502
503 2012-04-27  Dimitri Glazkov  <dglazkov@chromium.org>
504
505         Unreviewed, rolling out r115417.
506         http://trac.webkit.org/changeset/115417
507         https://bugs.webkit.org/show_bug.cgi?id=84946
508
509         Added test is broken on windows.
510
511         * inspector/Inspector.json:
512         * inspector/InspectorPageAgent.cpp:
513         (WebCore::InspectorPageAgent::enable):
514         (WebCore::InspectorPageAgent::disable):
515         * inspector/InspectorPageAgent.h:
516         * inspector/front-end/Settings.js:
517         * inspector/front-end/SettingsScreen.js:
518         (WebInspector.SettingsScreen):
519         * inspector/front-end/inspector.js:
520
521 2012-04-27  Gavin Peters  <gavinp@chromium.org>
522
523         Add new ENABLE_LINK_PRERENDER define to control the Prerendering API
524         https://bugs.webkit.org/show_bug.cgi?id=84871
525
526         Reviewed by Adam Barth.
527
528         Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
529         API separates it from prefetching.  Having separate include guards lets ports enable prefetching,
530         a relatively easy change, without needing to build the infrastructure for prerendering, which
531         is considerably more complicated.
532
533         * Configurations/FeatureDefines.xcconfig:
534
535 2012-04-27  Zan Dobersek  <zandobersek@gmail.com>
536
537         [Gtk][DOM Bindings] Feature-protected properties are put under condition guards
538         https://bugs.webkit.org/show_bug.cgi?id=85068
539
540         Reviewed by Martin Robinson.
541
542         Generated feature-dependent properties are now present regardless of that
543         feature being enabled. On getting or setting that property's value a warning
544         is thrown if the feature is not enabled. Additionally, if the generated
545         interface is feature-dependant, when getting or setting any property's value
546         a warning is thrown if the feature is not enabled.
547
548         No new tests - covered by existing bindings tests.
549
550         * bindings/scripts/CodeGeneratorGObject.pm:
551         (GenerateProperty):
552         (GenerateProperties):
553         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Rebaseline.
554         (webkit_dom_test_interface_set_property):
555         (webkit_dom_test_interface_get_property):
556         (webkit_dom_test_interface_class_init):
557         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
558         (webkit_dom_test_obj_set_property):
559         (webkit_dom_test_obj_get_property):
560         (webkit_dom_test_obj_class_init):
561         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.
562         (webkit_dom_test_serialized_script_value_interface_get_property):
563
564 2012-04-27  Zan Dobersek  <zandobersek@gmail.com>
565
566         [Gtk][DOM Bindings] Conditional string in implementation file generated in wrong place after 113450
567         https://bugs.webkit.org/show_bug.cgi?id=85065
568
569         Reviewed by Martin Robinson.
570
571         Put the condition string in implementation file after the header inclusions. This ensures
572         that build errors do not occur when disabling the future that applies to the condition string
573         because of WebCore objects and methods that are still in use despite the feature being disabled.
574
575         No new tests - covered by bindings tests.
576
577         * bindings/scripts/CodeGeneratorGObject.pm:
578         (WriteData):
579         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: Rebaseline generated results.
580         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Ditto.
581         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.
582
583 2012-04-27  Andreas Kling  <kling@webkit.org>
584
585         Avoid mutating Element attribute storage in StepRange constructor.
586         <http://webkit.org/b/84797>
587
588         Reviewed by Antti Koivisto.
589
590         Test: fast/selectors/querySelector-in-range-crash.html
591
592         * dom/Attribute.h:
593
594             Add comment about the volatility of references returned by getters.
595
596         * html/StepRange.cpp:
597         (WebCore::StepRange::StepRange):
598
599             Replace hasAttribute/getAttribute pair by a single fastGetAttribute.
600
601         * html/HTMLInputElement.cpp:
602         (WebCore::HTMLInputElement::updateType):
603         (WebCore::HTMLInputElement::value):
604
605             Store the value attribute in an local variable before passing it to sanitizeValue().
606
607 2012-04-27  Rob Buis  <rbuis@rim.com>
608
609         SVG inline style of 'marker-*' does not override
610         https://bugs.webkit.org/show_bug.cgi?id=84824
611
612         Reviewed by Nikolas Zimmermann.
613
614         Properly handle CSSValueNone for clip-path, filter, mask and marker-* properties. Instead
615         of bailing out, set the none value explicitly, since an earlier match may have set it to
616         something other than none.
617
618         Tests: svg/custom/inline-style-overrides-clipPath-expected.svg
619                svg/custom/inline-style-overrides-clipPath.svg
620                svg/custom/inline-style-overrides-filter-expected.svg
621                svg/custom/inline-style-overrides-filter.svg
622                svg/custom/inline-style-overrides-markers-expected.svg
623                svg/custom/inline-style-overrides-markers.svg
624                svg/custom/inline-style-overrides-mask-expected.svg
625                svg/custom/inline-style-overrides-mask.svg
626
627         * css/SVGCSSStyleSelector.cpp:
628         (WebCore::StyleResolver::applySVGProperty):
629
630 2012-04-27  Christophe Dumez  <christophe.dumez@intel.com>
631
632         [EFL] media/video-controls-rendering-toggle-display-none.html is failing
633         https://bugs.webkit.org/show_bug.cgi?id=84949
634
635         Reviewed by Antonio Gomes.
636
637         Fix volume slider rendering so that the
638         media/video-controls-rendering-toggle-display-none.html passes.
639
640         * css/mediaControlsEfl.css:
641         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
642         (audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
643         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
644
645 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
646
647         Support values animation mode with just a single value
648         https://bugs.webkit.org/show_bug.cgi?id=85064
649
650         Reviewed by Antti Koivisto.
651
652         values="a" is equal to <set to="a"> per SMIL specification.
653         We currently only support values animation if at least two values are given, fix that.
654
655         The reference animations in Dr. Olaf Hoffmanns SVG Animation test suite are mostly using
656         values animations, sometimes with only a single value given. Lots of the reference animations
657         are broken in trunk w/o this patch and now work as expected.
658
659         See http://hoffmann.bplaced.net/svgtest/index.php?s=en&in=start.
660
661         Test: svg/animations/single-values-animation.html
662
663         * svg/SVGAnimationElement.cpp:
664         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
665         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
666         (WebCore::SVGAnimationElement::startedActiveInterval):
667
668 2012-04-27  Konrad Piascik  <kpiascik@rim.com>
669
670         Web Inspector: Allow inspection of Web Socket Frames
671         https://bugs.webkit.org/show_bug.cgi?id=83282
672
673         Reviewed by Pavel Feldman.
674
675         Tests: http/tests/inspector/web-socket-frame-error.html
676                http/tests/inspector/web-socket-frame.html
677
678         * English.lproj/localizedStrings.js: Added new Web Inspector front-end UI strings.
679         * Modules/websockets/WebSocketChannel.cpp:  Added InspectorInstrumentation calls to
680                                                     the following methods.
681         (WebCore::WebSocketChannel::fail):
682         (WebCore::WebSocketChannel::processFrame):
683         (WebCore::WebSocketChannel::sendFrame):
684         * WebCore.gypi: Added new Web Inspector resource file.
685         * WebCore.vcproj/WebCore.vcproj: Added new Web Inspector resource file.
686         * inspector/Inspector.json: Added new Web Inspector resource file.
687         * inspector/InspectorInstrumentation.cpp: Added new methods for instrumenting a Web Socket frame or error.
688         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameImpl):
689         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameErrorImpl):
690         (WebCore::InspectorInstrumentation::didSendWebSocketFrameImpl):
691         * inspector/InspectorInstrumentation.h:
692         (WebCore):
693         (InspectorInstrumentation):
694         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
695         (WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
696         (WebCore::InspectorInstrumentation::didSendWebSocketFrame):
697         * inspector/InspectorResourceAgent.cpp:
698         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
699         (WebCore):
700         (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
701         (WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):
702         * inspector/InspectorResourceAgent.h:
703         (WebCore):
704         (InspectorResourceAgent):
705         * inspector/compile-front-end.py: Added new Web Inspector resource file.
706         * inspector/front-end/NetworkItemView.js: Added a new View for inspecting Web Socket frames and errors.
707         (WebInspector.NetworkItemView):
708         * inspector/front-end/NetworkManager.js: Implemented callback called by InspectorResourceAgent for
709                                                  the new Web Socket frame and error calls.
710         (WebInspector.NetworkDispatcher.prototype.webSocketFrameReceived):
711         (WebInspector.NetworkDispatcher.prototype.webSocketFrameSent):
712         (WebInspector.NetworkDispatcher.prototype.webSocketFrameError):
713         * inspector/front-end/NetworkRequest.js: Added a frames array to a Resource request along
714                                                  with accessor and helper methods
715         (WebInspector.NetworkRequest):
716         (WebInspector.NetworkRequest.prototype.resource):
717         (WebInspector.NetworkRequest.prototype.hasFrames):
718         (WebInspector.NetworkRequest.prototype.frameLength):
719         (WebInspector.NetworkRequest.prototype.getFrame):
720         (WebInspector.NetworkRequest.prototype.addFrameError):
721         (WebInspector.NetworkRequest.prototype.addFrame):
722         (WebInspector.NetworkRequest.prototype._pushFrame):
723         * inspector/front-end/ResourceWebSocketFrameView.js: Added to help display Web Socket frame and error data.
724         (WebInspector.ResourceWebSocketFrameView):
725         * inspector/front-end/WebKit.qrc: Added new Web Inspector resource file.
726         * inspector/front-end/inspector.html: Added new Web Inspector resource file.
727
728 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
729
730         Fix repetitions & by animation support for SVGAnimateTransformElement
731         https://bugs.webkit.org/show_bug.cgi?id=85051
732
733         Reviewed by Antti Koivisto.
734
735         Repetitions are currently handled by adjusting percentage (percentage += repeatCount).
736         This doesn't work for <animateTransform> as each repetition has to be post-multiplied to the animated transform list. Fix that.
737
738         By-animations are equal to values="0;by" animations in SMIL. '0' is the neutral element of addition, which is the _zero_ matrix,
739         not the identity matrix for SVGTransform. Add a new construction mode to SVGTransform to be able to construct zero transforms.
740
741         Tests: svg/animations/animateTransform-accumulation-expected.svg
742                svg/animations/animateTransform-accumulation.svg
743                svg/animations/animateTransform-by-scale-expected.svg
744                svg/animations/animateTransform-by-scale.svg
745                svg/animations/animateTransform-from-by-from-to-comparision-expected.svg
746                svg/animations/animateTransform-from-by-from-to-comparision.svg
747                svg/animations/animateTransform-from-by-scale-additive-sum-expected.svg
748                svg/animations/animateTransform-from-by-scale-additive-sum.svg
749                svg/animations/animateTransform-from-by-scale-expected.svg
750                svg/animations/animateTransform-from-by-scale.svg
751                svg/animations/animateTransform-rotate-around-point-expected.svg
752                svg/animations/animateTransform-rotate-around-point.svg
753                svg/animations/animateTransform-skewX-expected.svg
754                svg/animations/animateTransform-skewX.svg
755                svg/animations/animateTransform-skewY-expected.svg
756                svg/animations/animateTransform-skewY.svg
757                svg/animations/animateTransform-translate-expected.svg
758                svg/animations/animateTransform-translate.svg
759                svg/animations/multiple-animateTransform-additive-sum-expected.svg
760                svg/animations/multiple-animateTransform-additive-sum.svg
761
762         * svg/SVGAnimateTransformElement.cpp:
763         (WebCore::SVGAnimateTransformElement::parseAttribute):
764         * svg/SVGAnimatedTransformList.cpp:
765         (WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
766         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
767         * svg/SVGAnimationElement.h:
768         (WebCore::SVGAnimationElement::adjustFromToListValues):
769         * svg/SVGTransform.cpp:
770         (WebCore::SVGTransform::SVGTransform):
771         * svg/SVGTransform.h:
772         * svg/SVGTransformDistance.cpp:
773         (WebCore::SVGTransformDistance::SVGTransformDistance):
774         (WebCore::SVGTransformDistance::scaledDistance):
775         (WebCore::SVGTransformDistance::addSVGTransforms):
776         (WebCore::SVGTransformDistance::addToSVGTransform):
777         (WebCore::SVGTransformDistance::distance):
778         * svg/SVGTransformDistance.h:
779         (SVGTransformDistance):
780
781 2012-04-27  Nikolas Zimmermann  <nzimmermann@rim.com>
782
783         SVG Animations update baseVal instead of animVal
784         https://bugs.webkit.org/show_bug.cgi?id=12437
785
786         Reviewed by Dirk Schulze.
787
788         Cleanup animation code, remove last remaining crufts of the old setAttribute() animation model.
789         Now only two animation modes remain: animate SVG DOM animVal properties or CSS properties.
790
791         Stop caching base values per string in SMILTimeContainer, as it breaks additive="sum" for CSS
792         properties if the underlying base value is changed from the outside (eg. when calling
793         style.fontSize="20px", if font-size was 10px, and we're running an additive by-animation with 50px).
794
795         This requires us to cache the computed style of a SVGElement, without SMIL style property changes,
796         in SVGElementRareData, similar to how the computed style itself is cached in ElementRareData.
797         To be able to compute the base value for a CSS property at any time, we have to exclude any
798         previous animation effects residing in the SMIL animated style properties, per SMIL2/3 specs.
799
800         NOTE: This doesn't change or affect the way CSS Animations/Transitions are applied, we still
801               have some bugs in that area, but this patch doesn't address them. The idea is to only
802               remove the cache, to pave the way for future additive="sum" patches.
803
804         Tests: svg/animations/change-css-property-while-animating-fill-freeze.html
805                svg/animations/change-css-property-while-animating-fill-remove.html
806
807         * dom/Element.cpp:
808         (WebCore::Element::recalcStyle):
809         * dom/Node.h:
810         * svg/SVGAnimateElement.cpp:
811         (WebCore::propertyTypesAreConsistent):
812         (WebCore::SVGAnimateElement::resetToBaseValue):
813         (WebCore::SVGAnimateElement::applyResultsToTarget):
814         * svg/SVGAnimateElement.h:
815         (SVGAnimateElement):
816         * svg/SVGAnimateMotionElement.cpp:
817         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
818         * svg/SVGAnimateMotionElement.h:
819         (SVGAnimateMotionElement):
820         * svg/SVGAnimationElement.cpp:
821         (WebCore::applyCSSPropertyToTarget):
822         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedCSSValue):
823         * svg/SVGAnimationElement.h:
824         * svg/SVGElement.cpp:
825         (WebCore::SVGElement::SVGElement):
826         (WebCore::SVGElement::willRecalcStyle):
827         (WebCore):
828         (WebCore::SVGElement::rareSVGData):
829         (WebCore::SVGElement::ensureRareSVGData):
830         (WebCore::SVGElement::computedStyle):
831         (WebCore::SVGElement::isAnimatableAttribute):
832         * svg/SVGElement.h:
833         (SVGElement):
834         * svg/SVGElementRareData.h:
835         (WebCore::SVGElementRareData::SVGElementRareData):
836         (WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
837         (WebCore::SVGElementRareData::destroyAnimatedSMILStyleProperties):
838         (WebCore::SVGElementRareData::overrideComputedStyle):
839         (WebCore::SVGElementRareData::setUseOverrideComputedStyle):
840         * svg/animation/SMILTimeContainer.cpp:
841         (WebCore::SMILTimeContainer::updateAnimations):
842         * svg/animation/SMILTimeContainer.h:
843         (SMILTimeContainer):
844         * svg/animation/SVGSMILElement.h:
845         (SVGSMILElement):
846
847 2012-04-26  Alexander Pavlov  <apavlov@chromium.org>
848
849         Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
850         (re-landing r115323 with a fixed test.)
851         https://bugs.webkit.org/show_bug.cgi?id=84946
852
853         Based on user actions in the Inspector frontend, InspectorPageAgent invokes Settings::setScriptEnabled()
854         for the associated page to switch the script execution therein.
855
856         Reviewed by Yury Semikhatsky.
857
858         Test: inspector/debugger/disable-script.html
859
860         * inspector/Inspector.json:
861         * inspector/InspectorPageAgent.cpp:
862         (PageAgentState):
863         (WebCore::InspectorPageAgent::enable):
864         (WebCore::InspectorPageAgent::disable):
865         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
866         (WebCore):
867         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
868         * inspector/InspectorPageAgent.h:
869         * inspector/front-end/Settings.js:
870         * inspector/front-end/SettingsScreen.js:
871         (WebInspector.SettingsScreen):
872         (WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
873         (WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):
874         * inspector/front-end/inspector.js:
875
876 2012-04-26  Ryosuke Niwa  <rniwa@webkit.org>
877
878         REGRESSION (r94497): Pressing Command+A when inline (Marked Text) is not empty will clean whole content
879         https://bugs.webkit.org/show_bug.cgi?id=84501
880
881         Reviewed by Alexey Proskuryakov.
882
883         The bug was caused by setComposition, which is called by cancelComposition, deleting the contents when
884         the passed text is empty. Fixed it by not deleting text when canceling compositions. This is okay because
885         as the comment above the line suggests, this particular call to TypingCommand::deleteSelection is only useful
886         when the confirmed text is empty and the composition text had previously been non-empty.
887
888         Test: editing/input/select-all-clear-input-method.html
889
890         * editing/Editor.cpp:
891         (WebCore::Editor::setComposition):
892
893 2012-04-26  Keishi Hattori  <keishi@webkit.org>
894
895         datalist: Form control in a <datalist> should be barred from constraint validation
896         https://bugs.webkit.org/show_bug.cgi?id=84359
897
898         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element
899         According to this, if an element has a datalist element ancestor, it is barred from constraint validation.
900
901         Reviewed by Kent Tamura.
902
903         Test: fast/forms/datalist/datalist-child-validation.html
904
905         * html/HTMLFormControlElement.cpp:
906         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
907         (WebCore::HTMLFormControlElement::updateAncestors): Updates the ancestor information.
908         (WebCore::HTMLFormControlElement::insertedInto): Invalidates the ancestor information and calls setNeedsWillValidateCheck
909         (WebCore::HTMLFormControlElement::removedFrom): Invalidates the ancestor information and calls setNeedsWillValidateCheck
910         (WebCore::HTMLFormControlElement::disabled):
911         (WebCore::HTMLFormControlElement::recalcWillValidate): Returns false if element has a datalist ancestor.
912         (WebCore::HTMLFormControlElement::setNeedsWillValidateCheck): Check if ancestor information is valid too.
913         * html/HTMLFormControlElement.h:
914         (HTMLFormControlElement):
915
916 2012-04-26  Adrienne Walker  <enne@google.com>
917
918         [chromium] Remove unused CCLayerImpl::debugID()
919         https://bugs.webkit.org/show_bug.cgi?id=85019
920
921         Reviewed by James Robinson.
922
923         CCLayerSorter used debugID() but it was never set anywhere. Change
924         the CCLayerSorter LOG messages to use id(), which does get set.
925
926         * platform/graphics/chromium/cc/CCLayerImpl.h:
927         (CCLayerImpl):
928         * platform/graphics/chromium/cc/CCLayerSorter.cpp:
929         (WebCore::CCLayerSorter::createGraphNodes):
930         (WebCore::CCLayerSorter::createGraphEdges):
931         (WebCore::CCLayerSorter::sort):
932
933 2012-04-26  Nico Weber  <thakis@chromium.org>
934
935         [chromium] Fix C++ language use.
936         https://bugs.webkit.org/show_bug.cgi?id=85015
937
938         Reviewed by James Robinson.
939
940         Even though MSVC allows it, a sizeof followed by a non-parenthesized
941         typename is not valid C++.
942
943         No functionality change.
944
945         * rendering/RenderThemeChromiumWin.cpp:
946         (WebCore):
947         (WebCore::getNonClientMetrics):
948
949 2012-04-24  James Robinson  <jamesr@chromium.org>
950
951         [chromium] Move ProgramBinding definitions to LayerRendererChromium and normalize naming
952         https://bugs.webkit.org/show_bug.cgi?id=84808
953
954         Reviewed by Adrienne Walker.
955
956         The GL programs used are logically part of LayerRendererChromium and not something specific to a layer type,
957         since a different renderer would want to use a different thing to render the same layer types. This moves all of
958         the ProgramBinding definitions into LayerRendererChromium and gives them consistent names. With the exception of
959         CCRenderSurface (noted by an inline comment), these programs are private to LRC.
960
961         This patch also deduplicates programs a bit:
962         1.) Video's NativeTexture and RGBA programs were the same thing, folded.
963         2.) The TexStretch and TexTransform shaders are basically the same thing, folded together.
964
965         * platform/graphics/chromium/LayerChromium.h:
966         (LayerChromium):
967         * platform/graphics/chromium/LayerRendererChromium.cpp:
968         (WebCore::LayerRendererChromium::drawCheckerboardQuad):
969         (WebCore::LayerRendererChromium::drawDebugBorderQuad):
970         (WebCore::LayerRendererChromium::drawSolidColorQuad):
971         (WebCore::LayerRendererChromium::drawTileQuad):
972         (WebCore::LayerRendererChromium::drawYUV):
973         (WebCore::LayerRendererChromium::drawRGBA):
974         (WebCore::LayerRendererChromium::drawNativeTexture2D):
975         (WebCore::LayerRendererChromium::drawStreamTexture):
976         (WebCore::LayerRendererChromium::drawTextureQuad):
977         (WebCore::LayerRendererChromium::drawHeadsUpDisplay):
978         (WebCore::LayerRendererChromium::initializeSharedObjects):
979         (WebCore::LayerRendererChromium::tileCheckerboardProgram):
980         (WebCore::LayerRendererChromium::solidColorProgram):
981         (WebCore::LayerRendererChromium::headsUpDisplayProgram):
982         (WebCore::LayerRendererChromium::renderSurfaceProgram):
983         (WebCore::LayerRendererChromium::renderSurfaceProgramAA):
984         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
985         (WebCore::LayerRendererChromium::renderSurfaceMaskProgramAA):
986         (WebCore::LayerRendererChromium::tileProgram):
987         (WebCore::LayerRendererChromium::tileProgramOpaque):
988         (WebCore::LayerRendererChromium::tileProgramAA):
989         (WebCore::LayerRendererChromium::tileProgramSwizzle):
990         (WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
991         (WebCore::LayerRendererChromium::tileProgramSwizzleAA):
992         (WebCore::LayerRendererChromium::textureProgramFlip):
993         (WebCore::LayerRendererChromium::textureTexRectProgram):
994         (WebCore::LayerRendererChromium::textureTexRectProgramFlip):
995         (WebCore::LayerRendererChromium::videoRGBAProgram):
996         (WebCore::LayerRendererChromium::videoYUVProgram):
997         (WebCore::LayerRendererChromium::videoStreamTextureProgram):
998         (WebCore::LayerRendererChromium::cleanupSharedObjects):
999         * platform/graphics/chromium/LayerRendererChromium.h:
1000         (WebCore):
1001         (LayerRendererChromium):
1002         * platform/graphics/chromium/ShaderChromium.cpp:
1003         * platform/graphics/chromium/ShaderChromium.h:
1004         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
1005         (CCHeadsUpDisplay):
1006         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1007         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1008         (WebCore):
1009         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1010         (WebCore::CCRenderSurface::copyTextureToFramebuffer):
1011         (WebCore::CCRenderSurface::drawLayer):
1012         * platform/graphics/chromium/cc/CCRenderSurface.h:
1013         (CCRenderSurface):
1014         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1015         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1016         (CCTextureLayerImpl):
1017         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1018         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1019         (CCTiledLayerImpl):
1020         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1021         (WebCore):
1022         (CCVideoLayerImpl):
1023
1024 2012-04-26  Jeffrey Pfau  <jpfau@apple.com>
1025
1026         Invalid cast in WebCore::HTMLCollection::isAcceptableElement
1027         https://bugs.webkit.org/show_bug.cgi?id=84626
1028
1029         Reviewed by Darin Adler.
1030
1031         Check if the object is an HTMLElement before casting.
1032
1033         Test: fast/dom/htmlcollection-non-html.html
1034
1035         * html/HTMLCollection.cpp:
1036         (WebCore::HTMLCollection::isAcceptableElement):
1037
1038 2012-04-26  Dana Jansens  <danakj@chromium.org>
1039
1040         [chromium] Some background filters require inflating damage on the surface behind them
1041         https://bugs.webkit.org/show_bug.cgi?id=84479
1042
1043         Reviewed by Adrienne Walker.
1044
1045         A layer with a background blur will expand the damage from pixels in the
1046         surface below it. We extend the damage tracker to expand damage in a
1047         surface below such layers.
1048
1049         Unit test: CCDamageTrackerTest.verifyDamageForBackgroundBlurredChild
1050
1051         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1052         (WebCore::expandPixelOutsetsWithFilters):
1053         (WebCore):
1054         (WebCore::expandDamageRectInsideRectWithFilters):
1055         (WebCore::expandDamageRectWithFilters):
1056         (WebCore::CCDamageTracker::updateDamageTrackingState):
1057         (WebCore::CCDamageTracker::trackDamageFromActiveLayers):
1058         * platform/graphics/chromium/cc/CCDamageTracker.h:
1059         (CCDamageTracker):
1060
1061 2012-04-26  Simon Fraser  <simon.fraser@apple.com>
1062
1063         Improve compositing logging output
1064         https://bugs.webkit.org/show_bug.cgi?id=85010
1065
1066         Reviewed by Dean Jackson.
1067
1068         In the compositing log channel output, indent the layers
1069         based on z-order tree depth. Tabulate the summary, and
1070         show obligate and secondary backing store area separately.
1071
1072         * rendering/RenderLayer.cpp:
1073         (WebCore::RenderLayer::updateClipRects):
1074         * rendering/RenderLayerCompositor.cpp:
1075         (WebCore::RenderLayerCompositor::RenderLayerCompositor):
1076         (WebCore::RenderLayerCompositor::updateCompositingLayers):
1077         (WebCore::RenderLayerCompositor::logLayerInfo):
1078         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1079         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
1080         (WebCore::RenderLayerCompositor::reasonForCompositing):
1081         * rendering/RenderLayerCompositor.h:
1082         (RenderLayerCompositor):
1083
1084 2012-04-26  Anders Carlsson  <andersca@apple.com>
1085
1086         REGRESSION (r115163): Unable to scroll article body with trackpad on altdevblogaday.com blog post
1087         https://bugs.webkit.org/show_bug.cgi?id=85024
1088         <rdar://problem/11330758>
1089
1090         Reviewed by Sam Weinig.
1091
1092         Fix broken logic in canHaveScrollbars.
1093
1094         * page/scrolling/ScrollingTreeNode.h:
1095         (WebCore::ScrollingTreeNode::canHaveScrollbars):
1096
1097 2012-04-24  James Robinson  <jamesr@chromium.org>
1098
1099         [chromium] Use different CCDrawQuad types for textures vs IOSurfaces
1100         https://bugs.webkit.org/show_bug.cgi?id=84811
1101
1102         Reviewed by Adrienne Walker.
1103
1104         IOSurface and texture backed layers share few properties (only the flipped bool), so it doesn't make a lot of
1105         sense for them to use the same CCDrawQuad type for both. This splits IOSurfaces out to a dedicated quad type to
1106         make it easier to understand which bits of state apply to each.
1107
1108         The logical next step after this is to split the layer type as well, but that will be awkward until bug 84808 is
1109         resolved.
1110
1111         * WebCore.gypi:
1112         * platform/graphics/chromium/LayerRendererChromium.cpp:
1113         (WebCore::LayerRendererChromium::drawQuad):
1114         (WebCore::LayerRendererChromium::drawTextureQuad):
1115         (WebCore):
1116         (WebCore::LayerRendererChromium::drawIOSurfaceQuad):
1117         * platform/graphics/chromium/LayerRendererChromium.h:
1118         (LayerRendererChromium):
1119         * platform/graphics/chromium/cc/CCDrawQuad.cpp:
1120         (WebCore::CCDrawQuad::toIOSurfaceDrawQuad):
1121         (WebCore):
1122         * platform/graphics/chromium/cc/CCDrawQuad.h:
1123         (WebCore):
1124         (CCDrawQuad):
1125         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp.
1126         (WebCore):
1127         (WebCore::CCIOSurfaceDrawQuad::create):
1128         (WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
1129         * platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h.
1130         (WebCore):
1131         (CCIOSurfaceDrawQuad):
1132         (WebCore::CCIOSurfaceDrawQuad::flipped):
1133         (WebCore::CCIOSurfaceDrawQuad::ioSurfaceSize):
1134         (WebCore::CCIOSurfaceDrawQuad::ioSurfaceTextureId):
1135         * platform/graphics/chromium/cc/CCTextureDrawQuad.cpp:
1136         (WebCore::CCTextureDrawQuad::create):
1137         (WebCore::CCTextureDrawQuad::CCTextureDrawQuad):
1138         * platform/graphics/chromium/cc/CCTextureDrawQuad.h:
1139         (CCTextureDrawQuad):
1140         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1141         (WebCore::CCTextureLayerImpl::appendQuads):
1142
1143 2012-04-26  Benjamin Poulain  <bpoulain@apple.com>
1144
1145         Use WebKit types for the cache of ObjcClass::methodsNamed()
1146         https://bugs.webkit.org/show_bug.cgi?id=85012
1147
1148         Reviewed by Geoffrey Garen.
1149
1150         This patch redefines the method cache ObjcClass to avoid memory allocations in the case of positive match.
1151
1152         Instead of using the converted name as the key, the original identifier string is used. This shortcuts
1153         all the other operations when there is a match.
1154
1155         A side effect is a method can appear multiple times in the cache if it is invoked with different names using
1156         the escape character "$". An attaquer could bloat the cache with a few hundreds strings.
1157         In the common case, having each name mapped is an improvment.
1158
1159         * bridge/objc/objc_class.h:
1160         (ObjcClass):
1161         * bridge/objc/objc_class.mm:
1162         (JSC::Bindings::ObjcClass::ObjcClass):
1163         (JSC::Bindings::ObjcClass::methodsNamed):
1164
1165 2012-04-26  Ojan Vafai  <ojan@chromium.org>
1166
1167         Delete dead code in Arena.h/cpp
1168         https://bugs.webkit.org/show_bug.cgi?id=84997
1169
1170         Reviewed by Eric Seidel.
1171
1172         Also cleaned up some style issues. Renamed some single-letter variable names.
1173         Avoided anything other than totally trivial style changes to be 100% sure
1174         that there is no change in behavior.
1175
1176         No new tests. There's no non-style code changes except inlining CLEAR_UNUSED
1177         and CLEAR_ARENA.
1178
1179         * platform/Arena.cpp:
1180         (WebCore):
1181         (WebCore::CeilingLog2):
1182         (WebCore::InitArenaPool):
1183         (WebCore::ArenaAllocate):
1184         (WebCore::FreeArenaList):
1185         (WebCore::FinishArenaPool):
1186         * platform/Arena.h:
1187         (WebCore):
1188
1189 2012-04-26  Shawn Singh  <shawnsingh@chromium.org>
1190
1191         Re-implement backFaceVisibility to avoid dealing with perspective w < 0 problem
1192         https://bugs.webkit.org/show_bug.cgi?id=84059
1193
1194         Reviewed by Adrienne Walker.
1195
1196         Unit tests added to CCMathUtilTest.cpp.
1197
1198         This patch changes the implementation of backFaceIsVisible so that
1199         it doesn't need to deal with the w < 0 problem from of perspective
1200         projections. Instead, it is equally correct to simply use the
1201         inverse-transpose of the matrix, and quickly check the third row,
1202         third column element. Additionally, it was appropriate to move
1203         this function into TransformationMatrix itself.
1204
1205         Making this change fixes some issues related to disappearing
1206         layers in Chromium (where the compositor incorrectly thought that
1207         the back face was visible, and skipped the layer).
1208
1209         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
1210         (WebCore::calculateVisibleLayerRect):
1211         (WebCore::layerShouldBeSkipped):
1212         * platform/graphics/transforms/TransformationMatrix.cpp:
1213         (WebCore::TransformationMatrix::isBackFaceVisible):
1214         (WebCore):
1215         * platform/graphics/transforms/TransformationMatrix.h:
1216         (TransformationMatrix):
1217
1218 2012-04-26  Martin Robinson  <mrobinson@igalia.com>
1219
1220         [Cairo] Wrap cairo surfaces in a class when storing native images
1221         https://bugs.webkit.org/show_bug.cgi?id=83611
1222
1223         Reviewed by Alejandro G. Castro.
1224
1225         No new tests. This is just a refactoring. This shouldn't change
1226         functionality.
1227
1228         Added class that wraps Cairo images surfaces to serve as the "native image"
1229         type for the Cairo platform. This will allow the addition of caching resampled
1230         images as well as versions of the image for non-image Cairo backends. Also
1231         split out BitmapImageCairo.cpp from ImageCairo.cpp since these classes are
1232         defined in two headers.
1233
1234         * GNUmakefile.list.am: Added new files.
1235         * platform/graphics/BitmapImage.h: Added a factory method that takes an image surface to
1236         reduce code churn.
1237         * platform/graphics/ImageSource.h: NativeImagePtr is now NativeImageCairo*.
1238         (WebCore):
1239         * platform/graphics/cairo/BitmapImageCairo.cpp: Copied from Source/WebCore/platform/graphics/cairo/ImageCairo.cpp.
1240         * platform/graphics/cairo/GraphicsContext3DCairo.cpp: Updated to reflect use of NativeImageCairo.
1241         * platform/graphics/cairo/ImageCairo.cpp: Ditto.
1242         * platform/graphics/cairo/NativeImageCairo.cpp: Added.
1243         * platform/graphics/cairo/NativeImageCairo.h: Added.
1244         * platform/graphics/cairo/PatternCairo.cpp: Updated to reflect use of NativeImageCairo.
1245         * platform/graphics/gtk/ImageGtk.cpp: Ditto.
1246         * platform/image-decoders/cairo/ImageDecoderCairo.cpp: Ditto.
1247
1248 2012-04-26  Mark Hahnenberg  <mhahnenberg@apple.com>
1249
1250         [GTK] Massive media tests failures since r115288
1251         https://bugs.webkit.org/show_bug.cgi?id=84950
1252
1253         Reviewed by Filip Pizlo.
1254
1255         No new tests.
1256
1257         Since the "cross-platform" WebCore timer is at too high of a level in terms of the layers 
1258         of WebKit for JSC to use, we are not currently able to use it in JSC, thus only those 
1259         platforms that support CoreFoundation can currently take advantage of the new and improved 
1260         GC activity timer. We've restored the old code paths for those platforms that don't have 
1261         CF so that they will at least have the same behavior as before when calling garbageCollectSoon.
1262
1263         * bindings/js/GCController.cpp: Added back the old WebCore timer along with some 
1264         if-defs that do away with the WebCore timer on platforms that support CoreFoundation.
1265         (WebCore::GCController::GCController):
1266         (WebCore::GCController::garbageCollectSoon):
1267         (WebCore):
1268         (WebCore::GCController::gcTimerFired):
1269         * bindings/js/GCController.h: Ditto.
1270         (GCController):
1271
1272 2012-04-26  Adam Klein  <adamk@chromium.org>
1273
1274         Don't include V8Proxy.h in ScriptValue.h when V8GCController is all that's required
1275         https://bugs.webkit.org/show_bug.cgi?id=84986
1276
1277         Reviewed by Kentaro Hara.
1278
1279         This makes it easier to include ScriptValue.h since it greatly reduces
1280         that header's dependencies.
1281
1282         * bindings/v8/ScriptValue.h: Changed to include just V8GCController.h and
1283         removed comment which is redundant with explicit V8GCController references nearby.
1284
1285 2012-04-26  Aaron Colwell  <acolwell@chromium.org>
1286
1287         Fix missing sourceState change on MEDIA_ERR_SOURCE_NOT_SUPPORTED error.
1288         https://bugs.webkit.org/show_bug.cgi?id=84996
1289
1290         Reviewed by Eric Carlson.
1291
1292         No new tests. http/tests/media/media-source/webm/video-media-source-errors.html was updated to verify that webkitSourceState is always SOURCE_CLOSED when the onerror event fires.
1293
1294         * html/HTMLMediaElement.cpp:
1295         (WebCore::HTMLMediaElement::noneSupported):
1296
1297 2012-04-26  Antti Koivisto  <antti@apple.com>
1298
1299         Cache parsed stylesheets
1300         https://bugs.webkit.org/show_bug.cgi?id=85004
1301
1302         Reviewed by Andreas Kling.
1303
1304         CSS parsing is 1-2% of WebKit CPU usage on average pages, more on sites with large stylesheets.
1305         We currently reparse all stylesheets from source text when they are encountered again. In many
1306         browsing scenarios we can eliminate lot of this by caching the parsed stylesheets. For example 
1307         it is very common for subpages of a site to share the stylesheets.
1308         
1309         This patch enables memory caching for stylesheet loaded using the <link> element. Only stylesheets
1310         that have no import rules are cacheable for now.
1311         
1312         Cached stylesheets are copied on restore so there is no sharing (and no memory wins) yet.
1313         In the future we will also be able to share the actual data structures between pages for 
1314         significant memory savings.
1315         
1316         After browsing around for a while <5% of the memory cache data was in parsed stylesheets so this
1317         does not bloat the cache significantly.
1318
1319         * css/CSSStyleSheet.cpp:
1320         (WebCore):
1321         (WebCore::StyleSheetInternal::estimatedSizeInBytes):
1322         
1323             Estimate stylesheet size so we can handle decoded data pruning correctly.
1324
1325         * css/CSSStyleSheet.h:
1326         (StyleSheetInternal):
1327         * css/StylePropertySet.cpp:
1328         (WebCore::StylePropertySet::averageSizeInBytes):
1329         (WebCore):
1330         * css/StylePropertySet.h:
1331         (StylePropertySet):
1332         * css/StyleRule.cpp:
1333         (WebCore::StyleRule::averageSizeInBytes):
1334         (WebCore):
1335         * css/StyleRule.h:
1336         (StyleRule):
1337         * html/HTMLLinkElement.cpp:
1338         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1339         
1340             Save and restore parsed stylesheet. The current CSS parse context must be identical to the cached 
1341             stylesheets. This ensures that the parsing results would be identical.
1342
1343         * loader/cache/CachedCSSStyleSheet.cpp:
1344         (WebCore):
1345         (WebCore::CachedCSSStyleSheet::destroyDecodedData):
1346         (WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
1347         (WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):
1348         * loader/cache/CachedCSSStyleSheet.h:
1349         
1350             The parsed stylesheet cache is considered decoded data, similar to the image bitmaps. It uses the
1351             same mechanism for pruning.
1352
1353         (WebCore):
1354         (CachedCSSStyleSheet):
1355
1356 2012-04-26  Anders Carlsson  <andersca@apple.com>
1357
1358         A TileCache should never outlive its WebTileCacheLayer
1359         https://bugs.webkit.org/show_bug.cgi?id=85008
1360         <rdar://problem/11141172>
1361
1362         Reviewed by Andreas Kling.
1363
1364         Since WebTileCacheLayer objects can be destroyed on the scrolling thread, make sure to delete the TileCache layer
1365         when the PlatformCALayer is destroyed. This fixes a crash when the tile revalidation timer fires after the WebTileCacheLayer has
1366         been destroyed, but before the TileCache itself has been destroyed.
1367
1368         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1369         (PlatformCALayer::~PlatformCALayer):
1370         * platform/graphics/ca/mac/WebTileCacheLayer.h:
1371         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
1372         (-[WebTileCacheLayer dealloc]):
1373         (-[WebTileCacheLayer invalidate]):
1374
1375 2012-04-26  Benjamin Poulain  <bpoulain@apple.com>
1376
1377         Use String instead of RefPtr<StringImpl> for the cache of ObjcClass
1378         https://bugs.webkit.org/show_bug.cgi?id=84932
1379
1380         Reviewed by Andreas Kling.
1381
1382         The cache with RefPtr<StringImpl*> was added with r115007.
1383
1384         This patch aims at making the code a little easier to read. By using String,
1385         one would not need to know the Traits for StringImpl.
1386
1387         * bridge/objc/objc_class.h:
1388         (ObjcClass):
1389
1390 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1391
1392         [V8] Pass Isolate to wrap() in SerializedScriptValue.cpp
1393         https://bugs.webkit.org/show_bug.cgi?id=84923
1394
1395         Reviewed by Nate Chapin.
1396
1397         The objective is to pass Isolate around in V8 bindings.
1398         In this bug we pass Isolate to wrap() in SerializedScriptValue.cpp.
1399
1400         No tests. No change in behavior.
1401
1402         * bindings/v8/SerializedScriptValue.cpp:
1403
1404 2012-04-26  Hao Zheng  <zhenghao@chromium.org>
1405
1406         [chromium] Complex text support for Android.
1407         https://bugs.webkit.org/show_bug.cgi?id=84431
1408
1409         Complex text support is different on Android from other platforms.
1410         There are 2 kinds of font on Android: system fonts and fallback fonts.
1411         System fonts have a name, and are accessible in FontPlatformData.
1412         Fallback fonts do not have specific names, so they are not accessible
1413         from WebKit directly. There is one font for each script support.
1414         To feed Harfbuzz, use a trick to get correct SkTypeface based on script.
1415
1416         Reviewed by Tony Chang.
1417
1418         No new tests. Current tests are runnable on Android.
1419
1420         * platform/graphics/FontCache.h:
1421         (FontCache): Make ComplexTextController friend of FontCache on Android.
1422         * platform/graphics/chromium/FontCacheAndroid.cpp:
1423         (WebCore::FontCache::createFontPlatformData):
1424         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
1425         (WebCore::ComplexTextController::getComplexFontPlatformData):
1426         (WebCore):
1427         (WebCore::ComplexTextController::setupFontForScriptRun):
1428         * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h:
1429         (ComplexTextController):
1430
1431 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1432
1433         [V8] Pass Isolate to wrap() (Part2)
1434         https://bugs.webkit.org/show_bug.cgi?id=84922
1435
1436         Reviewed by Nate Chapin.
1437
1438         The objective is to pass Isolate around in V8 bindings.
1439         This patch passes Isolate to wrap() in custom bindings.
1440
1441         No tests. No change in behavior.
1442
1443         * bindings/v8/custom/V8LocationCustom.cpp:
1444         (WebCore::toV8):
1445         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
1446         (WebCore::toV8):
1447         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
1448         (WebCore::toV8):
1449         * bindings/v8/custom/V8StyleSheetCustom.cpp:
1450         (WebCore::toV8):
1451         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
1452         (WebCore::toV8):
1453         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
1454         (WebCore::toV8):
1455         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
1456         (WebCore::toV8):
1457         * bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:
1458         (WebCore::toV8):
1459
1460 2012-04-26  Jon Lee  <jonlee@apple.com>
1461
1462         [WK2] AlternativeTextClient leaks when the page is destroyed
1463         https://bugs.webkit.org/show_bug.cgi?id=84307
1464         <rdar://problem/11328431>
1465
1466         Reviewed by Enrica Casucci.
1467
1468         * page/AlternativeTextClient.h: Add pageDestroyed() call, as in EditorClient.
1469         (AlternativeTextClient):
1470         * page/Page.cpp:
1471         (WebCore::Page::~Page): When the page is destroyed, notify the client if it exists.
1472
1473 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1474
1475         [V8] Pass Isolate to wrap() (Part1)
1476         https://bugs.webkit.org/show_bug.cgi?id=84921
1477
1478         Reviewed by Nate Chapin.
1479
1480         The objective is to pass Isolate around in V8 bindings.
1481         This patch passes Isolate to wrap() in custom bindings.
1482
1483         No tests. No change in behavior.
1484
1485         * bindings/v8/custom/V8BlobCustom.cpp:
1486         (WebCore::toV8):
1487         * bindings/v8/custom/V8CSSRuleCustom.cpp:
1488         (WebCore::toV8):
1489         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp:
1490         (WebCore::toV8):
1491         * bindings/v8/custom/V8CSSValueCustom.cpp:
1492         (WebCore::toV8):
1493         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1494         (WebCore::toV8):
1495         * bindings/v8/custom/V8DOMTokenListCustom.cpp:
1496         (WebCore::toV8):
1497         * bindings/v8/custom/V8DataViewCustom.cpp:
1498         (WebCore::toV8):
1499         * bindings/v8/custom/V8EventCustom.cpp:
1500         (WebCore::toV8):
1501         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
1502         (WebCore::toV8):
1503         * bindings/v8/custom/V8Float64ArrayCustom.cpp:
1504         (WebCore::toV8):
1505         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
1506         (WebCore::toV8):
1507         * bindings/v8/custom/V8ImageDataCustom.cpp:
1508         (WebCore::toV8):
1509         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
1510         (WebCore::toV8):
1511         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
1512         (WebCore::toV8):
1513         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
1514         (WebCore::toV8):
1515
1516 2012-04-26  Benjamin Poulain  <bpoulain@apple.com>
1517
1518         ObjcClass::methodsNamed() can leak if buffer is dynamically allocated
1519         https://bugs.webkit.org/show_bug.cgi?id=84668
1520
1521         Reviewed by Alexey Proskuryakov.
1522
1523         Change ObjcClass::methodsNamed() to be based on a vector instead of managing
1524         the memory manually.
1525
1526         Tests: platform/mac/plugins/bindings-objc-long-method-name.html
1527                platform/mac/plugins/bindings-objc-method-name-conversion.html
1528
1529         * bridge/objc/objc_class.mm:
1530         (Bindings):
1531         (JSC::Bindings::convertJSMethodNameToObjc):
1532         (JSC::Bindings::ObjcClass::methodsNamed):
1533
1534 2012-04-26  Justin Novosad  <junov@chromium.org>
1535
1536         [Chromium] Single buffered canvas layers with the threaded compositor
1537         https://bugs.webkit.org/show_bug.cgi?id=80540
1538
1539         Reviewed by James Robinson.
1540
1541         Tests:
1542         CCLayerTreeHostTestWriteLayersRedraw
1543         CCLayerTreeHostTestWriteLayersAfterVisible
1544         Canvas2DLayerChromiumTest.testFullLifecycleSingleThreadDeferred
1545         Canvas2DLayerChromiumTest.testFullLifecycleThreadDeferred
1546         CCSchedulerTest.VisibilitySwitchWithTextureAcquisition
1547         CCSchedulerTest.TextureAcquisitionCollision
1548
1549         Disable double buffering and rate limiting on accelerated canvas
1550         when the threaded compositor and deferred canvas are enabled.
1551         Concurrent access to the layer texture by the main renderer thread and
1552         the compositor thread is avoided by enforcing a lock. The state of the
1553         lock is maintained by CCSchedulerStateMachine. Write access by the main
1554         thread is acquired through a signal round trip to the compositor thread,
1555         which may block the main thread in the event that one or more committed
1556         layers need to be protected until the compositor completes the requested
1557         draw. Draws on the impl thread are cancelled if the main thread has
1558         obtained write access to the texture.  The write access is relinquished
1559         by the main thread upon commit completion.  The scheduler state machine
1560         is responsible for preventing the texture lock from causing deadlocks by
1561         detecting and resolving problematic states.
1562
1563         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1564         (WebCore::Canvas2DLayerChromium::create):
1565         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
1566         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
1567         (WebCore::Canvas2DLayerChromium::drawingIntoImplThreadTexture):
1568         (WebCore):
1569         (WebCore::Canvas2DLayerChromium::setTextureId):
1570         (WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
1571         (WebCore::Canvas2DLayerChromium::update):
1572         (WebCore::Canvas2DLayerChromium::layerWillDraw):
1573         (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
1574         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1575         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1576         (WebCore::CCLayerTreeHost::acquireLayerTextures):
1577         (WebCore):
1578         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1579         (CCLayerTreeHost):
1580         * platform/graphics/chromium/cc/CCProxy.h:
1581         (CCProxy):
1582         * platform/graphics/chromium/cc/CCScheduler.cpp:
1583         (WebCore::CCScheduler::setMainThreadNeedsLayerTextures):
1584         (WebCore):
1585         (WebCore::CCScheduler::processScheduledActions):
1586         * platform/graphics/chromium/cc/CCScheduler.h:
1587         (CCSchedulerClient):
1588         (CCScheduler):
1589         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
1590         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
1591         (WebCore::CCSchedulerStateMachine::drawSuspendedUntilCommit):
1592         (WebCore):
1593         (WebCore::CCSchedulerStateMachine::scheduledToDraw):
1594         (WebCore::CCSchedulerStateMachine::shouldDraw):
1595         (WebCore::CCSchedulerStateMachine::shouldAcquireLayerTexturesForMainThread):
1596         (WebCore::CCSchedulerStateMachine::nextAction):
1597         (WebCore::CCSchedulerStateMachine::updateState):
1598         (WebCore::CCSchedulerStateMachine::setMainThreadNeedsLayerTextures):
1599         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
1600         (CCSchedulerStateMachine):
1601         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1602         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1603         (WebCore::CCThreadProxy::CCThreadProxy):
1604         (WebCore::CCThreadProxy::beginFrame):
1605         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
1606         (WebCore):
1607         (WebCore::CCThreadProxy::acquireLayerTextures):
1608         (WebCore::CCThreadProxy::acquireLayerTexturesForMainThreadOnImplThread):
1609         (WebCore::CCThreadProxy::scheduledActionAcquireLayerTexturesForMainThread):
1610         * platform/graphics/chromium/cc/CCThreadProxy.h:
1611         (CCThreadProxy):
1612         * platform/graphics/skia/ImageBufferSkia.cpp:
1613         (WebCore):
1614         (WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
1615         (WebCore::AcceleratedDeviceContext::prepareForDraw):
1616         (AcceleratedDeviceContext):
1617         (WebCore::createAcceleratedCanvas):
1618         (WebCore::ImageBuffer::context):
1619
1620 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1621
1622         [V8] Pass Isolate to toV8() in SerializedScriptValue.cpp
1623         https://bugs.webkit.org/show_bug.cgi?id=84918
1624
1625         Reviewed by Nate Chapin.
1626
1627         This is the last step to pass Isolate around in
1628         SerializedScriptValue.cpp. This patch passes Isolate
1629         to toV8().
1630
1631         No tests. No change in behavior.
1632
1633         * bindings/v8/SerializedScriptValue.cpp:
1634
1635 2012-04-26  Kentaro Hara  <haraken@chromium.org>
1636
1637         [V8] Pass Isolate to wrapSlow()
1638         https://bugs.webkit.org/show_bug.cgi?id=84919
1639
1640         Reviewed by Nate Chapin.
1641
1642         The objective is to pass Isolate around in V8 bindings.
1643         In this bug, we pass Isolate to wrapSlow().
1644
1645         Test: bindings/scripts/test/TestObj.idl etc
1646
1647         * bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
1648         (GenerateHeader):
1649         (GenerateToV8Converters):
1650
1651         * bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.
1652         (WebCore::V8Float64Array::wrapSlow):
1653         * bindings/scripts/test/V8/V8Float64Array.h:
1654         (V8Float64Array):
1655         (WebCore::V8Float64Array::wrap):
1656         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1657         (WebCore::V8TestActiveDOMObject::wrapSlow):
1658         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
1659         (V8TestActiveDOMObject):
1660         (WebCore::V8TestActiveDOMObject::wrap):
1661         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
1662         (WebCore::V8TestCustomNamedGetter::wrapSlow):
1663         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
1664         (V8TestCustomNamedGetter):
1665         (WebCore::V8TestCustomNamedGetter::wrap):
1666         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
1667         (WebCore::V8TestEventConstructor::wrapSlow):
1668         * bindings/scripts/test/V8/V8TestEventConstructor.h:
1669         (V8TestEventConstructor):
1670         (WebCore::V8TestEventConstructor::wrap):
1671         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1672         (WebCore::V8TestEventTarget::wrapSlow):
1673         * bindings/scripts/test/V8/V8TestEventTarget.h:
1674         (V8TestEventTarget):
1675         (WebCore::V8TestEventTarget::wrap):
1676         * bindings/scripts/test/V8/V8TestInterface.cpp:
1677         (WebCore::V8TestInterface::wrapSlow):
1678         * bindings/scripts/test/V8/V8TestInterface.h:
1679         (V8TestInterface):
1680         (WebCore::V8TestInterface::wrap):
1681         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
1682         (WebCore::V8TestMediaQueryListListener::wrapSlow):
1683         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
1684         (V8TestMediaQueryListListener):
1685         (WebCore::V8TestMediaQueryListListener::wrap):
1686         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1687         (WebCore::V8TestNamedConstructor::wrapSlow):
1688         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
1689         (V8TestNamedConstructor):
1690         (WebCore::V8TestNamedConstructor::wrap):
1691         * bindings/scripts/test/V8/V8TestNode.cpp:
1692         (WebCore::V8TestNode::wrapSlow):
1693         * bindings/scripts/test/V8/V8TestNode.h:
1694         (V8TestNode):
1695         (WebCore::V8TestNode::wrap):
1696         * bindings/scripts/test/V8/V8TestObj.cpp:
1697         (WebCore::V8TestObj::wrapSlow):
1698         * bindings/scripts/test/V8/V8TestObj.h:
1699         (V8TestObj):
1700         (WebCore::V8TestObj::wrap):
1701         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1702         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
1703         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
1704         (V8TestSerializedScriptValueInterface):
1705         (WebCore::V8TestSerializedScriptValueInterface::wrap):
1706
1707 2012-04-25  Antonio Gomes  <agomes@rim.com>
1708
1709         Add ScrollAnimatorBlackBerry as an extension to ScrollAnimatorNone
1710         https://bugs.webkit.org/show_bug.cgi?id=84625
1711
1712         Reviewed by Anders Carlsson.
1713
1714         Patch adds ScrollAnimatorBlackBerry class as an extension to of
1715         ScrollAnimatorNone. The main goal here is extending the later to allow
1716         overscrolling while the animation runs.
1717
1718         Once the animation finishes, the flag gets reseted and
1719         ScrollableArea::constrainsScrollingtoContentEdge is set back to the value
1720         it had before, so this method has to be explicitly called anytime it is wanted.
1721
1722         * CMakeLists.txt:
1723         * platform/ScrollAnimator.h:
1724         (WebCore::ScrollAnimator::animationWillStart):
1725         (WebCore::ScrollAnimator::animationDidFinish):
1726         (ScrollAnimator):
1727         * platform/ScrollAnimatorNone.cpp:
1728         (WebCore):
1729         (WebCore::ScrollAnimatorNone::scroll):
1730         (WebCore::ScrollAnimatorNone::animationTimerFired):
1731         * platform/blackberry/ScrollAnimatorBlackBerry.cpp: Added.
1732         (WebCore):
1733         (WebCore::ScrollAnimator::create):
1734         (WebCore::ScrollAnimatorBlackBerry::ScrollAnimatorBlackBerry):
1735         (WebCore::ScrollAnimatorBlackBerry::animationWillStart):
1736         (WebCore::ScrollAnimatorBlackBerry::animationDidFinish):
1737         (WebCore::ScrollAnimatorBlackBerry::setDisableConstrainsScrollingToContentEdgeWhileAnimating):
1738         * platform/blackberry/ScrollAnimatorBlackBerry.h: Added.
1739         (WebCore):
1740         (ScrollAnimatorBlackBerry):
1741
1742 2012-04-26  Antonio Gomes  <agomes@rim.com>
1743
1744         [BlackBerry] Add smooth_scrolling options to CMAKE and enable it for Blackberry
1745         https://bugs.webkit.org/show_bug.cgi?id=84954
1746
1747         Reviewed by Daniel Bates.
1748
1749         Add the default scroll animator to the build system (ScrollAnimatorNone.cpp)
1750
1751         * CMakeLists.txt:
1752
1753 2012-04-25  Antonio Gomes  <agomes@rim.com>
1754
1755         Make ScrollView::scrollSize scrollbar-independent
1756         https://bugs.webkit.org/show_bug.cgi?id=84873
1757
1758         Reviewed by Anders Carlsson.
1759
1760         For ports that disable scrollbars creation at FrameView creation time
1761         ScrollView::scrollSize should still return the scrollable ammount of
1762         content (if any) if scrolling is not prohibted.
1763
1764         No new test, but it makes ScrollAnimator work for the BlackBerry port.
1765
1766         * platform/ScrollView.cpp:
1767         (WebCore::ScrollView::scrollSize):
1768
1769 2012-04-25  Anders Carlsson  <andersca@apple.com>
1770
1771         The tile cache should know if a frame view can ever have scrollbars
1772         https://bugs.webkit.org/show_bug.cgi?id=84888
1773
1774         Reviewed by Andreas Kling.
1775
1776         If a frame view has overflow: hidden on its body element we know that the document will most
1777         likely never be scrolled. The tile cache should know about this so we can optimize.
1778
1779         * page/FrameView.cpp:
1780         (WebCore::FrameView::performPostLayoutTasks):
1781         * platform/graphics/TiledBacking.h:
1782         (TiledBacking):
1783         * platform/graphics/ca/mac/TileCache.h:
1784         (TileCache):
1785         * platform/graphics/ca/mac/TileCache.mm:
1786         (WebCore::TileCache::TileCache):
1787         (WebCore::TileCache::setCanHaveScrollbars):
1788         (WebCore):
1789         * rendering/RenderLayerBacking.cpp:
1790         (WebCore::RenderLayerBacking::RenderLayerBacking):
1791
1792 2012-04-26  Ken Buchanan  <kenrb@chromium.org>
1793
1794         Crash from removal of line break object after layout
1795         https://bugs.webkit.org/show_bug.cgi?id=75461
1796
1797         Reviewed by David Hyatt.
1798
1799         There is a condition where objects can get removed from underneath
1800         inlines while they represent a line break object in a RootInlineBox
1801         of an ancestor block. If an intermediary inline has already been
1802         marked as needing layout, then the line box will not get dirtied
1803         because dirtyLineFromChangedChild thinks it already has been.
1804
1805         This patch introduces a new set in RenderObject to indicate whether
1806         an ancestral line box corresponding to the current line has been
1807         marked dirty or not. dirtyLinesFromChangedChild() can use this set 
1808         rather than m_selfNeedsLayout, so it will not be confused if a
1809         container was dirtied for some other reason that did not affect the
1810         line box.
1811
1812         * rendering/RenderLineBoxList.cpp:
1813         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): Use the new
1814         set rather than m_selfNeedsLayout in the container to determine
1815         whether to continue propagating upward.
1816         * rendering/RenderObject.cpp:
1817         (WebCore::RenderObject::s_ancestorLineboxDirtySet): Instantiate the
1818         static member.
1819         (WebCore::RenderObject::willBeDestroyed): Clears the object from the
1820         linebox set when it is being destroyed.
1821         * rendering/RenderObject.h:
1822         (WebCore::RenderObject::s_ancestorLineboxDirtySet): Added static
1823         member set.
1824         (WebCore::RenderObject::setNeedsLayout): Clears the
1825         object from the linebox set when layout bits are getting cleared.
1826         (WebCore::RenderObject::ancestorLineBoxDirty): Added.
1827         (WebCore::RenderObject::setAncestorLineBoxDirty): Added.
1828
1829 2012-04-26  Christophe Dumez  <christophe.dumez@intel.com>
1830
1831         [EFL] Enable VIDEO_TRACK feature
1832         https://bugs.webkit.org/show_bug.cgi?id=84830
1833
1834         Reviewed by Gustavo Noronha Silva.
1835
1836         Enable support for VIDEO_TRACK feature by default for EFL port.
1837
1838         * UseJSC.cmake:
1839         * bindings/generic/RuntimeEnabledFeatures.cpp:
1840         (WebCore):
1841
1842 2012-04-26  Antti Koivisto  <antti@apple.com>
1843
1844         Implement StyleSheetInternal copying
1845         https://bugs.webkit.org/show_bug.cgi?id=84969
1846
1847         Reviewed by Andreas Kling.
1848
1849         We need to be able to copy stylesheets to cache them. Copying is already implement for
1850         most of the stylesheet data types but StyleSheetInternal::copy() is still missing.
1851         
1852         Preparation for stylesheet caching. The copying code is not used yet.
1853
1854         * css/CSSNamespace.h:
1855         
1856             Instead of making it copyable, remove CSSNamespace class.
1857     
1858         * css/CSSParser.cpp:
1859         (WebCore::operator==):
1860         (WebCore):
1861         (WebCore::CSSParser::addNamespace):
1862         
1863             Avoid ping-ponging to StyleSheetInternal and back to set the default namespace.
1864
1865         * css/CSSParserMode.h:
1866         (WebCore):
1867         (WebCore::operator!=):
1868
1869             Add equality comparison operator to CSSParseMode. This will be needed to determine
1870             if a cached copy can be used.
1871             
1872         * css/CSSStyleSheet.cpp:
1873         (WebCore::StyleSheetInternal::StyleSheetInternal):
1874         (WebCore):
1875         (WebCore::StyleSheetInternal::isCacheable):
1876         (WebCore::StyleSheetInternal::parserAddNamespace):
1877         (WebCore::StyleSheetInternal::determineNamespace):
1878         
1879             Use HashMap instead of iterating a linked list of CSSNamespaces.
1880
1881         (WebCore::StyleSheetInternal::styleSheetChanged):
1882         
1883             Add mutation bit.
1884
1885         * css/CSSStyleSheet.h:
1886         (WebCore):
1887         (StyleSheetInternal):
1888         (WebCore::StyleSheetInternal::copy):
1889         
1890             Copy constructor. It only usable for cacheable stylesheets.
1891
1892 2012-04-26  Philip Rogers  <pdr@google.com>
1893
1894         Fix Skia's SkPathContainsPoint to work with sub-pixel accuracy
1895         https://bugs.webkit.org/show_bug.cgi?id=84117
1896
1897         Reviewed by Eric Seidel.
1898
1899         Because we do hit testing in object-space (i.e., we may see a 0.1px*0.1px path) we
1900         need to support sub-pixel hit testing in Skia. Skia does not provide analytical
1901         path hit testing, so hit tests are done by rasterizing a path and checking if a
1902         specific pixel is drawn. SkPathContainsPoint did not work with sub-pixel values
1903         because this rasterization was sometimes very small which did not give enough
1904         resolution to check if the hit test pixel was drawn.
1905
1906         This patch scales the path to a very large size during hit testing so that Skia's
1907         raster-based hit testing will work properly. Because Skia avoids unnecessary
1908         path rasterization, this is actually inexpensive.
1909
1910         Below is a summary of a performance test on simple and complex paths:
1911                                                  (before patch, after patch)
1912         Skia/Chrome 10,000 hit tests on a simple path:  (229ms, 238ms)
1913         Skia/Chrome 10,000 hit tests on a complex path: (701ms, 704ms)
1914         For comparison, CG/Safari takes 236ms on the simple path and 466ms on the complex path.
1915  
1916         Therefore, this patch introduces small but measurable regression in hit testing
1917         performance due to scaling the path.
1918
1919         Test: svg/hittest/svg-small-path.xhtml
1920
1921         * platform/graphics/skia/SkiaUtils.cpp:
1922         (WebCore::SkPathContainsPoint):
1923
1924 2012-04-26  Sheriff Bot  <webkit.review.bot@gmail.com>
1925
1926         Unreviewed, rolling out r115323.
1927         http://trac.webkit.org/changeset/115323
1928         https://bugs.webkit.org/show_bug.cgi?id=84975
1929
1930         Bad test, breaks all builds (Requested by apavlov1 on
1931         #webkit).
1932
1933         * inspector/Inspector.json:
1934         * inspector/InspectorPageAgent.cpp:
1935         (WebCore::InspectorPageAgent::enable):
1936         (WebCore::InspectorPageAgent::disable):
1937         * inspector/InspectorPageAgent.h:
1938         * inspector/front-end/Settings.js:
1939         * inspector/front-end/SettingsScreen.js:
1940         (WebInspector.SettingsScreen):
1941         * inspector/front-end/inspector.js:
1942
1943 2012-04-26  Douglas Stockwell  <dstockwell@chromium.org>
1944
1945         IndexedDB: cursor does not correctly iterate over keys added and removed during iteration
1946         https://bugs.webkit.org/show_bug.cgi?id=84467
1947
1948         Reviewed by Ojan Vafai.
1949
1950         Ensure that the iterator over the tree of cached adds/removes always points at
1951         the current key, or if the db iterator is current, the next key:
1952         
1953         - When refreshing the tree iterator after a mutation, always seek unless the
1954         tree iterator is current.
1955         
1956         - When handing conflicts and delete markers, only advance the tree iterator as
1957         far as the db iterator.
1958         
1959         Remove the expensive (and now redundant) logic that issued a get() to check
1960         whether an item had been deleted.
1961
1962         Test: storage/indexeddb/cursor-added-bug.html
1963
1964         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
1965         (WebCore):
1966         * platform/leveldb/LevelDBTransaction.cpp:
1967         (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
1968         (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
1969
1970 2012-04-26  Alexander Pavlov  <apavlov@chromium.org>
1971
1972         Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
1973         https://bugs.webkit.org/show_bug.cgi?id=84946
1974
1975         Based on user actions in the Inspector frontend, InspectorPageAgent invokes Settings::setScriptEnabled()
1976         for the associated page to switch the script execution therein.
1977
1978         Reviewed by Yury Semikhatsky.
1979
1980         Test: inspector/debugger/disable-script.html
1981
1982         * inspector/Inspector.json:
1983         * inspector/InspectorPageAgent.cpp:
1984         (PageAgentState):
1985         (WebCore::InspectorPageAgent::enable):
1986         (WebCore::InspectorPageAgent::disable):
1987         (WebCore::InspectorPageAgent::getScriptExecutionStatus):
1988         (WebCore):
1989         (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
1990         * inspector/InspectorPageAgent.h:
1991         * inspector/front-end/Settings.js:
1992         * inspector/front-end/SettingsScreen.js:
1993         (WebInspector.SettingsScreen):
1994         (WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
1995         (WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):
1996         * inspector/front-end/inspector.js:
1997
1998 2012-04-26  Dominik Röttsches  <dominik.rottsches@linux.intel.com>
1999
2000         [cairo] CairoGraphicsContext fillRect (with Color) overrides composite operator
2001         https://bugs.webkit.org/show_bug.cgi?id=84848
2002
2003         Reviewed by Martin Robinson.
2004
2005         FillRectWithColor used to be called fillRectSourceOver before r89314
2006         where this operator still made sense. The way this function is used
2007         these days doesn't expect the composite operator to be overridden anymore.
2008
2009         No new tests, covered by existing tests, e.g.
2010         svg/filters/feDropShadow.svg
2011
2012         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2013         (WebCore::fillRectWithColor):
2014
2015 2012-04-26  Nikolas Zimmermann  <nzimmermann@rim.com>
2016
2017         Fix additive by animations for most SMIL list types
2018         https://bugs.webkit.org/show_bug.cgi?id=84968
2019
2020         Reviewed by Antti Koivisto.
2021
2022         Unify SMIL list animation code, to correctly respect the underlying from value for by-animations.
2023         Add lots of new tests covering by-animations for all primitives (except AnimatedPath/TransformList).
2024         AnimatedTransformList is not working correctly yet, and will be covered in a follow-up patch.
2025         AnimatdPath by-animations are complex, and thus also handled in another follow-up patch.
2026
2027         Tests: svg/animations/additive-type-by-animation.html
2028                svg/animations/length-list-animation-expected.svg
2029                svg/animations/length-list-animation.svg
2030                svg/animations/svglength-additive-by-1.html
2031                svg/animations/svglength-additive-by-2.html
2032                svg/animations/svglength-additive-by-3.html
2033                svg/animations/svglength-additive-by-4.html
2034                svg/animations/svglength-additive-by-5.html
2035                svg/animations/svglength-additive-by-6.html
2036                svg/animations/svglength-additive-from-by-1.html
2037                svg/animations/svglength-additive-from-by-2.html
2038                svg/animations/svglength-additive-from-by-3.html
2039                svg/animations/svglength-additive-from-by-4.html
2040
2041         * svg/SVGAnimatedLengthList.cpp:
2042         (WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
2043         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
2044         * svg/SVGAnimatedNumberList.cpp:
2045         (WebCore::SVGAnimatedNumberListAnimator::addAnimatedTypes):
2046         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
2047         * svg/SVGAnimatedPointList.cpp:
2048         (WebCore::SVGAnimatedPointListAnimator::addAnimatedTypes):
2049         (WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):
2050         * svg/SVGAnimationElement.h:
2051         (WebCore::SVGAnimationElement::adjustFromToListValues):
2052
2053 2012-04-26  Antti Koivisto  <antti@apple.com>
2054
2055         Add copy constructor to CSSSelector
2056         https://bugs.webkit.org/show_bug.cgi?id=84956
2057
2058         Reviewed by Anders Carlsson.
2059
2060         To copy CSSSelectorLists correctly CSSSelector needs a copy constructor.
2061         
2062         This will be needed to implement stylesheet caching. The code is not used yet.
2063
2064         * css/CSSSelector.cpp:
2065         (WebCore::CSSSelector::createRareData):
2066         * css/CSSSelector.h:
2067         (CSSSelector):
2068         (WebCore::CSSSelector::RareData::create):
2069         (RareData):
2070         
2071             Refcount RareData to make copying easier. This has no significant memory impact, rare data is rare.
2072
2073         (WebCore::CSSSelector::CSSSelector):
2074         (WebCore):
2075         (WebCore::CSSSelector::~CSSSelector):
2076         * css/CSSSelectorList.cpp:
2077         (WebCore::CSSSelectorList::CSSSelectorList):
2078         
2079             Use copy constructor instead of memcpy (which doesn't work).
2080
2081 2012-04-26  Raphael Kubo da Costa  <rakuco@webkit.org>
2082
2083         [EFL] Fix the build with DRAG_SUPPORT disabled.
2084         https://bugs.webkit.org/show_bug.cgi?id=84963
2085
2086         Reviewed by Antonio Gomes.
2087
2088         No new tests, build system-related change.
2089
2090         EventHandlerEfl.cpp always assumed DRAG_SUPPORT was enabled and lacked
2091         the proper #if ENABLED() checks for some member variables and methods
2092         conditionally defined in EventHandler.h.
2093
2094         * page/efl/EventHandlerEfl.cpp:
2095         (WebCore):
2096
2097 2012-04-26  Pavel Feldman  <pfeldman@chromium.org>
2098
2099         Web Inspector: remove stackTrace property from requestWillBeSent - it is already a part of the initiator.
2100         https://bugs.webkit.org/show_bug.cgi?id=84964
2101
2102         Reviewed by Yury Semikhatsky.
2103
2104         * inspector/InspectorResourceAgent.cpp:
2105         (WebCore::InspectorResourceAgent::willSendRequest):
2106         * inspector/front-end/ConsoleMessage.js:
2107         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2108         * inspector/front-end/NetworkManager.js:
2109         (WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
2110         (WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
2111         (WebInspector.NetworkDispatcher.prototype._appendRedirect):
2112         (WebInspector.NetworkDispatcher.prototype._createNetworkRequest):
2113         (get WebInspector):
2114
2115 2012-04-26  Stephen Chenney  <schenney@chromium.org>
2116
2117         SVG FEConvolveMatrix does not check for invalid property values
2118         https://bugs.webkit.org/show_bug.cgi?id=84363
2119
2120         Reviewed by Dirk Schulze.
2121
2122         Adding code to check for valid input values on SVG feConvolveMatrix properties.
2123         And adding some of the first effective error reporting for SVG elements.
2124
2125         Tests: svg/filters/feConvolveMatrix-invalid-targetX-expected.svg
2126                svg/filters/feConvolveMatrix-invalid-targetX.svg
2127                svg/filters/feConvolveMatrix-invalid-targetY-expected.svg
2128                svg/filters/feConvolveMatrix-invalid-targetY.svg
2129                svg/filters/feConvolveMatrix-negative-kernelUnitLengthX-expected.svg
2130                svg/filters/feConvolveMatrix-negative-kernelUnitLengthX.svg
2131                svg/filters/feConvolveMatrix-negative-kernelUnitLengthY-expected.svg
2132                svg/filters/feConvolveMatrix-negative-kernelUnitLengthY.svg
2133                svg/filters/feConvolveMatrix-negative-orderX-expected.svg
2134                svg/filters/feConvolveMatrix-negative-orderX.svg
2135                svg/filters/feConvolveMatrix-negative-orderY-expected.svg
2136                svg/filters/feConvolveMatrix-negative-orderY.svg
2137                svg/filters/feConvolveMatrix-non-integral-order-expected.svg
2138                svg/filters/feConvolveMatrix-non-integral-order.svg
2139                svg/filters/feConvolveMatrix-zero-divisor-expected.svg
2140                svg/filters/feConvolveMatrix-zero-divisor.svg
2141
2142         * platform/graphics/filters/FEConvolveMatrix.cpp:
2143         (WebCore::FEConvolveMatrix::FEConvolveMatrix):
2144         (WebCore::FEConvolveMatrix::setKernelSize):
2145         (WebCore::FEConvolveMatrix::setDivisor):
2146         (WebCore::FEConvolveMatrix::setKernelUnitLength):
2147         * svg/SVGFEConvolveMatrixElement.cpp:
2148         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
2149         (WebCore::SVGFEConvolveMatrixElement::build):
2150
2151 2012-04-26  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2152
2153         Move WebKit1 specific conversion of touch-events to WebKit1.
2154         https://bugs.webkit.org/show_bug.cgi?id=84951
2155
2156         Reviewed by Kenneth Rohde Christiansen.
2157
2158         No change in functionality. No new tests. 
2159
2160         * Target.pri:
2161         * platform/PlatformTouchEvent.h:
2162         (PlatformTouchEvent):
2163         * platform/PlatformTouchPoint.h:
2164         (PlatformTouchPoint):
2165         * platform/qt/PlatformTouchEventQt.cpp: Removed.
2166         * platform/qt/PlatformTouchPointQt.cpp: Removed.
2167
2168 2012-04-26  Nikolas Zimmermann  <nzimmermann@rim.com>
2169
2170         Share code used to animate numbers types between all animators
2171         https://bugs.webkit.org/show_bug.cgi?id=84945
2172
2173         Reviewed by Antti Koivisto.
2174
2175         Refactor animateAdditiveNumber() from SVGAnimatedNumberAnimator into SVGAnimationElement,
2176         to reuse it for all primitives. Converted most primitives to use the new code. Lists, paths,
2177         colors are still todo.
2178
2179         Doesn't affect any tests.
2180
2181         * svg/SVGAnimatedAngle.cpp:
2182         (WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
2183         * svg/SVGAnimatedInteger.cpp:
2184         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
2185         (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
2186         * svg/SVGAnimatedInteger.h:
2187         (SVGAnimatedIntegerAnimator):
2188         * svg/SVGAnimatedIntegerOptionalInteger.cpp:
2189         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
2190         (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
2191         * svg/SVGAnimatedLength.cpp:
2192         (WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):
2193         * svg/SVGAnimatedLengthList.cpp:
2194         (WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):
2195         * svg/SVGAnimatedNumber.cpp:
2196         (WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):
2197         * svg/SVGAnimatedNumber.h:
2198         * svg/SVGAnimatedNumberList.cpp:
2199         (WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):
2200         * svg/SVGAnimatedNumberOptionalNumber.cpp:
2201         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
2202         (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
2203         * svg/SVGAnimatedNumberOptionalNumber.h:
2204         * svg/SVGAnimatedRect.cpp:
2205         (WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):
2206         * svg/SVGAnimationElement.h:
2207         (WebCore::SVGAnimationElement::animateAdditiveNumber):
2208         (SVGAnimationElement):
2209
2210 2012-04-26  Ryosuke Niwa  <rniwa@webkit.org>
2211
2212         Forgotten build fix after r115227.
2213
2214         * css/StylePropertySet.cpp:
2215         (WebCore::StylePropertySet::get4Values):
2216
2217 2012-04-26  Mihnea Ovidenie  <mihnea@adobe.com>
2218
2219         Crash when collecting svg symbol element in named flow.
2220         https://bugs.webkit.org/show_bug.cgi?id=84493
2221
2222         Reviewed by David Hyatt.
2223
2224         Test: fast/regions/symbol-in-named-flow-crash.svg
2225
2226         * dom/Element.cpp:
2227         (WebCore::Element::~Element):
2228         Add an assert that an element that was collected into a named flow was already removed at this point
2229         (when the document is not in the process of destruction)
2230         (WebCore::Element::unregisterNamedFlowContentNode):
2231         Created a new function for unregistering a content node. In the future, this function may be used for
2232         content nodes from shadow dom.
2233         (WebCore::Element::detach):
2234         * dom/Element.h:
2235         (Element):
2236         * dom/NodeRenderingContext.cpp:
2237         (WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
2238         Prevent elements that are part of shadow dom to be collected into a named flow.
2239
2240 2012-04-26  Nikolas Zimmermann  <nzimmermann@rim.com>
2241
2242         Share code used to animate discrete types between all animators
2243         https://bugs.webkit.org/show_bug.cgi?id=84853
2244
2245         Reviewed by Andreas Kling.
2246
2247         Share by-animation handling for non-additive types in a central method in SVGAnimatedTypeAnimator,
2248         to be reusable by SVGAnimatedBoolean/Enumeration/PreserveAspectRatio/String. Add a new test covering
2249         these animations have no effect.
2250
2251         Test: svg/animations/non-additive-type-by-animation.html
2252
2253         * svg/SVGAnimateElement.cpp:
2254         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2255         (WebCore::SVGAnimateElement::isAdditive):
2256         * svg/SVGAnimateElement.h:
2257         (SVGAnimateElement):
2258         * svg/SVGAnimateMotionElement.cpp:
2259         (WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
2260         * svg/SVGAnimatedBoolean.cpp:
2261         (WebCore::isTrueString):
2262         (WebCore::SVGAnimatedBooleanAnimator::constructFromString):
2263         (WebCore::SVGAnimatedBooleanAnimator::addAnimatedTypes):
2264         (WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):
2265         * svg/SVGAnimatedEnumeration.cpp:
2266         (WebCore::SVGAnimatedEnumerationAnimator::addAnimatedTypes):
2267         (WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):
2268         * svg/SVGAnimatedPreserveAspectRatio.cpp:
2269         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::addAnimatedTypes):
2270         (WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):
2271         * svg/SVGAnimatedString.cpp:
2272         (WebCore::SVGAnimatedStringAnimator::addAnimatedTypes):
2273         (WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):
2274         * svg/SVGAnimationElement.cpp:
2275         (WebCore::SVGAnimationElement::startedActiveInterval):
2276         * svg/SVGAnimationElement.h:
2277         (SVGAnimationElement):
2278         (WebCore::SVGAnimationElement::animateDiscreteType):
2279
2280 2012-04-26  Chris Fleizach2  <cfleizach@apple.com>
2281
2282         CrashTracer: [USER] 157 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityRenderObject::isAttachment const + 29
2283         https://bugs.webkit.org/show_bug.cgi?id=84463
2284
2285         Reviewed by Darin Adler.
2286
2287         Accessibility was not being enabled when WK2 was asking only for the focused UI element.
2288
2289         No layout test could be written because the WKTestRunner mechanism works differently when asking for this.
2290
2291         * accessibility/AXObjectCache.cpp:
2292         (WebCore::AXObjectCache::focusedUIElementForPage):
2293         (WebCore::AXObjectCache::rootObject):
2294         (WebCore::AXObjectCache::rootObjectForFrame):
2295
2296 2012-04-25  Dana Jansens  <danakj@chromium.org>
2297
2298         [chromium] Remove guarded virtual methods from WebFilterOperation API
2299         https://bugs.webkit.org/show_bug.cgi?id=84926
2300
2301         Reviewed by James Robinson.
2302
2303         * WebCore.gypi:
2304         * platform/chromium/support/WebFilterOperation.cpp: Removed.
2305         * platform/chromium/support/WebFilterOperations.cpp:
2306         (WebKit::WebFilterOperations::append):
2307
2308 2012-04-25  Benjamin Poulain  <benjamin@webkit.org>
2309
2310         Add a version of StringImpl::find() without offset
2311         https://bugs.webkit.org/show_bug.cgi?id=83968
2312
2313         Reviewed by Sam Weinig.
2314
2315         Remove the zero offset of the find() functions on strings.
2316
2317         * html/parser/XSSAuditor.cpp:
2318         (WebCore::XSSAuditor::init):
2319         * platform/network/ResourceResponseBase.cpp:
2320         (WebCore::trimToNextSeparator):
2321         (WebCore::parseCacheHeader):
2322
2323 2012-04-25  Mark Hahnenberg  <mhahnenberg@apple.com>
2324
2325         WebCore shouldn't call collectAllGarbage directly
2326         https://bugs.webkit.org/show_bug.cgi?id=84897
2327
2328         Reviewed by Geoffrey Garen.
2329
2330         No new tests. 
2331
2332         Currently, GCController calls Heap::collectAllGarbage directly, which leads 
2333         to an overload of collections as the timer in GCController and the timer in 
2334         GCActivityCallback compete for collection time and fire independently. As a 
2335         result, we end up doing almost 600 full collections during an in-browser run 
2336         of SunSpider, or 20 full collections on a single load of TechCrunch. 
2337
2338         We can do better by preventing WebCore from calling collectAllGarbage directly 
2339         and instead going through Heap::reportAbandonedObjectGraph, since that is what 
2340         WebCore is trying to do--notify the Heap that a lot of garbage may have just 
2341         been generated when we left a page.
2342
2343         * WebCore.exp.in:
2344         * bindings/js/GCController.cpp: Removed all timer stuff.
2345         (WebCore::GCController::GCController):
2346         (WebCore::GCController::garbageCollectSoon): Changed to call Heap::reportAbandonedObjectGraph.
2347         (WebCore::GCController::garbageCollectNow): Changed to still directly call collectAllGarbage.
2348         We will deprecate this function soon hopefully.
2349         * bindings/js/GCController.h: Removed timer stuff.
2350         (GCController):
2351         * bindings/js/ScriptProfiler.cpp:
2352         (WebCore::ScriptProfiler::collectGarbage): Changed to call garbageCollectSoon.
2353
2354 2012-04-25  James Robinson  <jamesr@chromium.org>
2355
2356         [chromium] REGRESSION(112286) Compositor initialization blocks for program compilation / linking
2357         https://bugs.webkit.org/show_bug.cgi?id=84822
2358
2359         Reviewed by Adrienne Walker.
2360
2361         r112286 introduced a subtle regression in the chromium compositor startup sequence - by querying the texture
2362         copy program's uniform location at the end of LayerRendererChromium::initialize(), the compositor's thread was
2363         blocked until the service side compiled _all_ eagerly initialized shaders. The intent of the way the compositor
2364         programs are created is that a set of commonly-used programs are sent to the service side, but no blocking calls
2365         are made until after we go through the first paint (with the hope that the service side will complete the
2366         compilation by then).
2367
2368         Fixed by moving program initialization (which also grabs uniform locations) until the first actual use of the
2369         copier. It may be worth deferring the program initialization completely if it's not used very often.
2370
2371         Added unit test in LayerRendererChromiumTests to make sure LRC initialization does not make any
2372         synchronous calls (like getUniformLocation()).
2373
2374         * platform/graphics/chromium/TextureCopier.cpp:
2375         (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
2376         (WebCore::AcceleratedTextureCopier::copyTexture):
2377
2378 2012-04-25  Jason Liu  <jason.liu@torchmobile.com.cn>
2379
2380         [BlackBerry] Authenticated proxy isn't working.
2381         https://bugs.webkit.org/show_bug.cgi?id=84579
2382
2383         Reviewed by Antonio Gomes.
2384
2385         We should try to get username and password from WiFi advanced configuration first
2386         when 407 is received.
2387
2388         No new tests. This is covered by existing http tests when proxy's username and password
2389         are configured for WiFi.
2390
2391         * platform/network/blackberry/NetworkJob.cpp:
2392         (WebCore::NetworkJob::sendRequestWithCredentials):
2393
2394 2012-04-25  Alec Flett  <alecflett@chromium.org>
2395
2396         IndexedDB: implement cursor.advance()
2397         https://bugs.webkit.org/show_bug.cgi?id=84174
2398
2399         Reviewed by Ojan Vafai.
2400
2401         Implement IDBCursor.advance() to spec.
2402
2403         Test: storage/indexeddb/cursor-advance.html
2404
2405         * Modules/indexeddb/IDBBackingStore.h:
2406         * Modules/indexeddb/IDBCursor.cpp:
2407         (WebCore::IDBCursor::advance):
2408         (WebCore):
2409         * Modules/indexeddb/IDBCursor.h:
2410         (IDBCursor):
2411         * Modules/indexeddb/IDBCursor.idl:
2412         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
2413         (WebCore::IDBCursorBackendImpl::advance):
2414         (WebCore):
2415         (WebCore::IDBCursorBackendImpl::advanceInternal):
2416         * Modules/indexeddb/IDBCursorBackendImpl.h:
2417         (IDBCursorBackendImpl):
2418         * Modules/indexeddb/IDBCursorBackendInterface.h:
2419         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2420         (WebCore):
2421
2422 2012-04-24  Adrienne Walker  <enne@google.com>
2423
2424         [chromium] Hold video provider lock from willDraw to didDraw
2425         https://bugs.webkit.org/show_bug.cgi?id=84805
2426
2427         Reviewed by James Robinson.
2428
2429         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2430         (WebCore::CCVideoLayerImpl::willDraw):
2431         (WebCore):
2432         (WebCore::CCVideoLayerImpl::willDrawInternal):
2433         (WebCore::CCVideoLayerImpl::appendQuads):
2434         (WebCore::CCVideoLayerImpl::didDraw):
2435         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2436
2437 2012-04-25  Adrienne Walker  <enne@google.com>
2438
2439         [chromium] Prevent CCLayerImpl::willDraw/didDraw mismatches
2440         https://bugs.webkit.org/show_bug.cgi?id=84812
2441
2442         Reviewed by James Robinson.
2443
2444         Because some layers lock/unlock resources, it needs to be guaranteed
2445         that if willDraw is called on a layer then didDraw will also be called
2446         on that layer before another willDraw or before layer destruction. Add
2447         asserts to make sure that this is the case.
2448
2449         willDraw is called via CCLayerTreeHostImpl::prepareToDraw ->
2450         calculateRenderPasses. didDraw was previously called in
2451         CCLayerTreeHostImpl::drawLayers. Sometimes drawLayers was being
2452         skipped by the caller of these functions based on what prepareToDraw
2453         returned (causing didDraw to not be called). Fix this by having an
2454         explicit step to call didDraw on all layers. This new didDrawAllLayers
2455         function must be called if and only if prepareToDraw is called.
2456
2457         Tested by existing tests via new asserts in CCLayerImpl.
2458
2459         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2460         (WebCore::CCLayerImpl::CCLayerImpl):
2461         (WebCore::CCLayerImpl::~CCLayerImpl):
2462         (WebCore::CCLayerImpl::willDraw):
2463         (WebCore):
2464         (WebCore::CCLayerImpl::didDraw):
2465         * platform/graphics/chromium/cc/CCLayerImpl.h:
2466         (CCLayerImpl):
2467         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2468         (WebCore::CCLayerTreeHostImpl::drawLayers):
2469         (WebCore::CCLayerTreeHostImpl::didDrawAllLayers):
2470         (WebCore):
2471         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2472         (CCLayerTreeHostImpl):
2473         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2474         (WebCore::CCScrollbarLayerImpl::willDraw):
2475         (WebCore::CCScrollbarLayerImpl::didDraw):
2476         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2477         (WebCore::CCSingleThreadProxy::doComposite):
2478         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2479         (WebCore::CCTextureLayerImpl::willDraw):
2480         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2481         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
2482         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2483         (WebCore::CCVideoLayerImpl::willDraw):
2484         (WebCore::CCVideoLayerImpl::didDraw):
2485
2486 2012-04-24  Kent Tamura  <tkent@chromium.org>
2487
2488         Calendar Picker: Resize to minimal size to fit the content
2489         https://bugs.webkit.org/show_bug.cgi?id=84826
2490
2491         Reviewed by Hajime Morita.
2492
2493         Using fixed-size popup isn't nice. The calender picker popup size should
2494         be minimal.
2495
2496         The minimal size depends on font settings, localized labels, and
2497         localized formats. So we put visible objects on a transparent element,
2498         calculate minimal size, resize the popup, then show the objects.
2499
2500         * Resources/calendarPicker.css:
2501         (body): Don't use purple. It was for debugging purpose.
2502         The body is visible for a short period becuse we use transparent element.
2503         (#main):
2504          - Add nowrap to avoid text wrapping.
2505          - Add wider width to avoid wrapping.
2506          - Add opacity to hide incomplete layout.
2507         (.year-month-upper): Don't set flexible box yet.
2508         (.month-selector-box): Fix incorrect display value.
2509         (.days-area):
2510         Don't set table-layout:fixed and width:100% in order that it has the
2511         minimal width.
2512
2513         * Resources/calendarPicker.js:
2514         (initialize): Make a new functio to resize.
2515         (fixWindowSize):
2516         Compute the required width from the right edge of the next year button,
2517         the maximum cell width, and so on.  Then, set CSS properties to have
2518         correct layout.
2519         (YearMonthController.prototype.attachTo):
2520         Set min-width property for a long year-month string.
2521         (YearMonthController.prototype._showPopup):
2522         Center the _monthPopup vertically.
2523
2524         * html/shadow/CalendarPickerElement.cpp:
2525         (WebCore::CalendarPickerElement::contentSize):
2526         Specify small size for the initial size. It's better than showing a
2527         large window then shrink the size.
2528         * page/PagePopupClient.h:
2529         (PagePopupClient): Remove a false comment. We should support resize*().
2530
2531 2012-04-25  Kent Tamura  <tkent@chromium.org>
2532
2533         Unreviewed. Sort Xcode project file.
2534
2535         * WebCore.xcodeproj/project.pbxproj:
2536
2537 2012-04-25  Alpha Lam  <hclam@chromium.org>
2538
2539         Unreviewed, rolling out r115260.
2540         http://trac.webkit.org/changeset/115260
2541         https://bugs.webkit.org/show_bug.cgi?id=84467
2542
2543         r115260 is crashing a list of IndexDB tests, revert.
2544
2545         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2546         (WebCore):
2547         * platform/leveldb/LevelDBTransaction.cpp:
2548         (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
2549         (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
2550         * platform/leveldb/LevelDBTransaction.h:
2551         (TransactionIterator):
2552
2553 2012-04-25  James Simonsen  <simonjam@chromium.org>
2554
2555         [Web Timing] Add a vendor-prefixed Performance Timeline API
2556         https://bugs.webkit.org/show_bug.cgi?id=80350
2557
2558         As described here: http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html
2559
2560         The API is there and should be correct, but it isn't particularly useful,
2561         because nothing is populated. Upcoming changes will add Navigation Timing
2562         and Resource Timing.
2563
2564         Reviewed by Tony Gentilcore.
2565
2566         No new tests. Functionality is disabled on all platforms.
2567
2568         * CMakeLists.txt: Added PerformanceEntry* files.
2569         * DerivedSources.pri: Ditto.
2570         * GNUmakefile.list.am: Ditto.
2571         * WebCore.gypi: Ditto.
2572         * WebCore.vcproj/WebCore.vcproj: Ditto.
2573         * WebCore.xcodeproj/project.pbxproj: Ditto.
2574         * page/Performance.cpp:
2575         (WebCore::Performance::webkitGetEntries): Added.
2576         (WebCore::Performance::webkitGetEntriesByType): Added.
2577         (WebCore::Performance::webkitGetEntriesByName): Added.
2578         * page/Performance.h:
2579         (Performance):
2580         * page/Performance.idl:
2581         * page/PerformanceEntry.cpp: Added.
2582         (WebCore):
2583         (WebCore::PerformanceEntry::PerformanceEntry):
2584         (WebCore::PerformanceEntry::name):
2585         (WebCore::PerformanceEntry::entryType):
2586         (WebCore::PerformanceEntry::startTime):
2587         (WebCore::PerformanceEntry::duration):
2588         * page/PerformanceEntry.h: Added.
2589         (WebCore):
2590         (PerformanceEntry):
2591         * page/PerformanceEntry.idl: Added.
2592         * page/PerformanceEntryList.cpp: Added.
2593         (WebCore):
2594         (WebCore::PerformanceEntryList::PerformanceEntryList):
2595         (WebCore::PerformanceEntryList::~PerformanceEntryList):
2596         (WebCore::PerformanceEntryList::length):
2597         (WebCore::PerformanceEntryList::item):
2598         (WebCore::PerformanceEntryList::append):
2599         * page/PerformanceEntryList.h: Added.
2600         (WebCore):
2601         (PerformanceEntryList):
2602         (WebCore::PerformanceEntryList::create):
2603         * page/PerformanceEntryList.idl: Added.
2604
2605 2012-04-25  Benjamin Poulain  <bpoulain@apple.com>
2606
2607         Move convertJSMethodNameToObjc() to be a utility function of ObjcClass
2608         https://bugs.webkit.org/show_bug.cgi?id=84915
2609
2610         Reviewed by Darin Adler.
2611
2612         The function convertJSMethodNameToObjc() is only useful for ObjcClass::methodsNamed().
2613
2614         This patch moves the function from objc_utility.mm to be a static function in objc_class.mm.
2615         It aims at simplifying the code for future changes of ObjcClass.
2616
2617         * bridge/objc/objc_class.mm:
2618         (Bindings):
2619         (JSC::Bindings::convertJSMethodNameToObjc):
2620         * bridge/objc/objc_utility.h:
2621         * bridge/objc/objc_utility.mm:
2622         (Bindings):
2623
2624 2012-04-25  Kent Tamura  <tkent@chromium.org>
2625
2626         Unreviewed. Sort Xcode project file.
2627
2628         * WebCore.xcodeproj/project.pbxproj:
2629
2630 2012-04-25  Greg Billock  <gbillock@google.com>
2631
2632         Implement object-literal constructor for the Intent object.
2633         https://bugs.webkit.org/show_bug.cgi?id=84220
2634
2635         Reviewed by Kentaro Hara.
2636
2637         The use of the custom constructor will hopefully be temporary, as we plan
2638         to convert to just using the object literal constructor, which can then use codegen.
2639         See spec: http://dvcs.w3.org/hg/web-intents/raw-file/tip/spec/Overview.html
2640
2641         Added support for the service and extras parameters in the Intent
2642         object to support the speced members in the object literal constructor.
2643
2644         Added supporting accessor to Dictionary to retrieve a sub-Dictionary,
2645         and a utility to ScriptValue to serialize with ports.
2646
2647         Test: webintents/web-intent-obj-constructor.html
2648
2649         (WebCore):
2650         * Modules/intents/Intent.cpp:
2651         (WebCore::Intent::create):
2652         (WebCore::Intent::Intent):
2653         (WebCore::Intent::service):
2654         (WebCore):
2655         (WebCore::Intent::extras):
2656         * Modules/intents/Intent.h:
2657         (WebCore):
2658         (Intent):
2659         * Modules/intents/Intent.idl:
2660         * WebCore.gypi:
2661         * bindings/v8/Dictionary.cpp:
2662         (WebCore::Dictionary::get):
2663         (WebCore):
2664         * bindings/v8/Dictionary.h:
2665         (Dictionary):
2666         * bindings/v8/ScriptValue.cpp:
2667         (WebCore::ScriptValue::serialize):
2668         (WebCore):
2669         * bindings/v8/ScriptValue.h:
2670         (WTF):
2671         (WebCore):
2672         (ScriptValue):
2673         * bindings/v8/custom/V8IntentConstructor.cpp: Added.
2674         (WebCore):
2675         (WebCore::V8Intent::constructorCallback):
2676
2677 2012-04-25  Alexandru Chiculita  <achicu@adobe.com>
2678
2679         CSS Shaders: Use u_texture instead of s_texture. It was updated in the spec
2680         https://bugs.webkit.org/show_bug.cgi?id=82618
2681
2682         Reviewed by Dean Jackson.
2683         
2684         Changed the uniform name passed to the CSS Shaders from s_texture to u_texture.
2685         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
2686
2687         No new tests, just updating existing ones.
2688
2689         * platform/graphics/filters/CustomFilterShader.cpp:
2690         (WebCore::CustomFilterShader::defaultFragmentShaderString):
2691         (WebCore::CustomFilterShader::initializeParameterLocations):
2692
2693 2012-04-25  Douglas Stockwell  <dstockwell@chromium.org>
2694
2695         IndexedDB: cursor does not correctly iterate over keys added and removed during iteration
2696         https://bugs.webkit.org/show_bug.cgi?id=84467
2697
2698         Reviewed by Ojan Vafai.
2699
2700         Ensure that the iterator over the tree of cached adds/removes always points at
2701         the current key, or if the db iterator is current, the next key:
2702         
2703         - When refreshing the tree iterator after a mutation, always seek unless the
2704         tree iterator is current.
2705         
2706         - When handing conflicts and delete markers, only advance the tree iterator as
2707         far as the db iterator.
2708         
2709         Remove the expensive (and now redundant) logic that issued a get() to check
2710         whether an item had been deleted.
2711
2712         Test: storage/indexeddb/cursor-added-bug.html
2713
2714         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
2715         (WebCore):
2716         * platform/leveldb/LevelDBTransaction.cpp:
2717         (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
2718         (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
2719
2720 2012-04-25  Antti Koivisto  <antti@apple.com>
2721
2722         Try to fix build with STYLE_SCOPED enabled.
2723
2724         Not reviewed.
2725
2726         * css/StyleResolver.cpp:
2727         (WebCore::StyleResolver::determineScope):
2728
2729 2012-04-25  Alec Flett  <alecflett@chromium.org>
2730
2731         IndexedDB: support openCursor(IDBKey)
2732         https://bugs.webkit.org/show_bug.cgi?id=84652
2733
2734         Reviewed by Ojan Vafai.
2735
2736         Add signatures for openCursor/openKeyCursor(IDBKey).
2737
2738         Test: storage/indexeddb/opencursor-key.html
2739
2740         * Modules/indexeddb/IDBIndex.cpp:
2741         (WebCore::IDBIndex::openCursor):
2742         (WebCore):
2743         (WebCore::IDBIndex::openKeyCursor):
2744         * Modules/indexeddb/IDBIndex.h:
2745         (WebCore::IDBIndex::openCursor):
2746         (IDBIndex):
2747         (WebCore::IDBIndex::openKeyCursor):
2748         * Modules/indexeddb/IDBIndex.idl:
2749         * Modules/indexeddb/IDBObjectStore.cpp:
2750         (WebCore::IDBObjectStore::openCursor):
2751         (WebCore):
2752         * Modules/indexeddb/IDBObjectStore.h:
2753         (WebCore::IDBObjectStore::openCursor):
2754         (IDBObjectStore):
2755         * Modules/indexeddb/IDBObjectStore.idl:
2756
2757 2012-04-25  Antti Koivisto  <antti@apple.com>
2758
2759         Remove owner node pointer from StyleSheetInternal 
2760         https://bugs.webkit.org/show_bug.cgi?id=84882
2761
2762         Reviewed by Andreas Kling.
2763
2764         To make sharing between multiple nodes possible StyleSheetInternal should not have a Node pointer.
2765         
2766         - Make StyleSheetInternal constructor take CSSParserContext instead of Node*
2767         - Move owner node pointer to CSSStyleSheet. CSSStyleSheet now acts as a client for StyleSheetInternal.
2768         
2769         This gets us closer to being able to cache stylesheet data structures.
2770         
2771         * css/CSSImportRule.cpp:
2772         (WebCore::StyleRuleImport::setCSSStyleSheet):
2773         (WebCore::StyleRuleImport::requestStyleSheet):
2774         
2775             Setup CSSParserContext.
2776             Remove FIXME about updateBaseURL(). It is no longer possible to change URL of StyleSheetInternal.
2777
2778         * css/CSSPageRule.cpp:
2779         (WebCore::CSSPageRule::setSelectorText):
2780         * css/CSSParser.cpp:
2781         (WebCore::CSSParserContext::CSSParserContext):
2782         * css/CSSParserMode.h:
2783         (CSSParserContext):
2784     
2785             Expand CSSParserContext constructors.
2786
2787         * css/CSSStyleRule.cpp:
2788         (WebCore::CSSStyleRule::setSelectorText):
2789         * css/StyleResolver.cpp:
2790         (WebCore::StyleResolver::StyleResolver):
2791         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
2792         (WebCore::StyleResolver::collectMatchingRulesForList):
2793         * css/StyleResolver.h:
2794         (StyleResolver):
2795         * css/CSSStyleSheet.cpp:
2796
2797             User stylesheets went back to being CSSStyleSheets. Adapt to that.
2798
2799         (WebCore::StyleSheetInternal::StyleSheetInternal):
2800         (WebCore):
2801         (WebCore::StyleSheetInternal::checkLoaded):
2802         (WebCore::StyleSheetInternal::startLoadingDynamicSheet):
2803         (WebCore::StyleSheetInternal::rootStyleSheet):
2804         (WebCore::StyleSheetInternal::singleOwnerNode):
2805         (WebCore::StyleSheetInternal::singleOwnerDocument):
2806         (WebCore::StyleSheetInternal::styleSheetChanged):
2807         
2808             The owner node is now located through CSSStyleSheet. Only one client is supported atm.
2809
2810         (WebCore::StyleSheetInternal::registerClient):
2811         (WebCore::StyleSheetInternal::unregisterClient):
2812         
2813             Register CSSStyleSheets.
2814
2815         (WebCore::CSSStyleSheet::CSSStyleSheet):
2816         (WebCore::CSSStyleSheet::~CSSStyleSheet):
2817         (WebCore::CSSStyleSheet::rules):
2818         (WebCore::CSSStyleSheet::cssRules):
2819         (WebCore::CSSStyleSheet::ownerDocument):
2820         * css/CSSStyleSheet.h:
2821         (WebCore::StyleSheetInternal::create):
2822         (WebCore::StyleSheetInternal::createInline):
2823         (StyleSheetInternal):
2824         (WebCore::CSSStyleSheet::create):
2825         (CSSStyleSheet):
2826         
2827             Moved m_ownerNode.
2828             Changed constructors
2829             Removed setFinalURL(). 
2830
2831         * css/PropertySetCSSStyleDeclaration.cpp:
2832         (WebCore::StyleRuleCSSStyleDeclaration::setNeedsStyleRecalc):
2833         * dom/Document.cpp:
2834         (WebCore::Document::updateBaseURL):
2835         
2836             Instead of setFinalURL, construct a new StyleSheetInternal if the base url ever changes.
2837
2838         (WebCore::Document::pageUserSheet):
2839         (WebCore::Document::pageGroupUserSheets):
2840         (WebCore::Document::addUserSheet):
2841         (WebCore::Document::elementSheet):
2842         * dom/Document.h:
2843         (Document):
2844         (WebCore::Document::documentUserSheets):
2845         
2846             Adapt to the new interface.
2847             Turned user stylesheets CSSStyleSheets so they can find the owner node.
2848
2849         * dom/ProcessingInstruction.cpp:
2850         (WebCore::ProcessingInstruction::setCSSStyleSheet):
2851         * dom/StyleElement.cpp:
2852         (WebCore::StyleElement::createSheet):
2853         * html/HTMLLinkElement.cpp:
2854         (WebCore::HTMLLinkElement::setCSSStyleSheet):
2855         * inspector/InspectorCSSAgent.cpp:
2856         (WebCore::SelectorProfile::startSelector):
2857         (WebCore::InspectorCSSAgent::bindStyleSheet):
2858         * inspector/InspectorStyleSheet.cpp:
2859         (WebCore::fillMediaListChain):
2860         (WebCore::InspectorStyleSheet::ownerDocument):
2861         * page/PageSerializer.cpp:
2862         (WebCore::PageSerializer::serializeCSSStyleSheet):
2863
2864 2012-04-25  Adam Klein  <adamk@chromium.org>
2865
2866         Fix uninitialized variable warnings in PasteboardMac.mm after 115145
2867         https://bugs.webkit.org/show_bug.cgi?id=84879
2868
2869         Reviewed by Enrica Casucci.
2870
2871         * platform/mac/PasteboardMac.mm:
2872         (WebCore::Pasteboard::getDataSelection): Initialize attributedString to nil.
2873         (WebCore::Pasteboard::writeSelectionForTypes): ditto.
2874
2875 2012-04-25  Kenneth Russell  <kbr@google.com>
2876
2877         Delete CanvasPixelArray, ByteArray, JSByteArray and JSC code once unreferenced
2878         https://bugs.webkit.org/show_bug.cgi?id=83655
2879
2880         Reviewed by Oliver Hunt.
2881
2882         Removed last few references to ByteArray, replacing with
2883         Uint8ClampedArray as necessary, and deleted now-obsolete
2884         CanvasPixelArray, ByteArray and JSByteArray. Removed code from
2885         JavaScriptCore special-casing ByteArray.
2886
2887         No new tests. Did full layout test run on Mac OS; no regressions
2888         seen from this change.
2889
2890         * CMakeLists.txt:
2891         * DerivedSources.pri:
2892         * ForwardingHeaders/runtime/JSByteArray.h: Removed.
2893         * GNUmakefile.list.am:
2894         * PlatformBlackBerry.cmake:
2895         * Target.pri:
2896         * UseV8.cmake:
2897         * WebCore.gypi:
2898         * WebCore.order:
2899         * WebCore.vcproj/WebCore.vcproj:
2900         * WebCore.xcodeproj/project.pbxproj:
2901         * bindings/v8/SerializedScriptValue.cpp:
2902         * bindings/v8/V8Binding.h:
2903         (WebCore::isHostObject):
2904         * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: Removed.
2905         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2906         (WebCore::V8InjectedScriptHost::typeCallback):
2907         * bridge/qt/qt_runtime.cpp:
2908         (JSC::Bindings::isJSUint8ClampedArray):
2909         (Bindings):
2910         (JSC::Bindings::valueRealType):
2911         (JSC::Bindings::convertValueToQVariant):
2912         (JSC::Bindings::convertQVariantToValue):
2913         * html/canvas/CanvasPixelArray.cpp: Removed.
2914         * html/canvas/CanvasPixelArray.h: Removed.
2915         * html/canvas/CanvasPixelArray.idl: Removed.
2916         * html/canvas/WebGLRenderingContext.cpp:
2917         (WebCore):
2918         * platform/graphics/filters/FEConvolveMatrix.h:
2919         * rendering/svg/RenderSVGResourceMasker.cpp:
2920
2921 2012-04-25  Alpha Lam  <hclam@chromium.org>
2922
2923         Unreviewed build fix.
2924
2925         Build fix for compilation failure due to r115243.
2926
2927         * platform/graphics/chromium/LayerChromium.h:
2928         (WebCore):
2929
2930 2012-04-25  Ryosuke Niwa  <rniwa@webkit.org>
2931
2932         Build fix after r115227. Return null string when the string builder is empty
2933         to match the old behavior.
2934
2935         * css/StylePropertySet.cpp:
2936         (WebCore::StylePropertySet::borderPropertyValue):
2937
2938 2012-04-25  Ian Vollick  <vollick@chromium.org>
2939
2940         [chromium] Add support for animation finished events.
2941         https://bugs.webkit.org/show_bug.cgi?id=84454
2942
2943         Reviewed by James Robinson.
2944
2945         Tested in CCLayerTreeHostTestAnimationFinishedEvents
2946
2947         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2948         (WebCore::GraphicsLayerChromium::willBeDestroyed):
2949         (WebCore::GraphicsLayerChromium::notifyAnimationFinished):
2950         (WebCore):
2951         * platform/graphics/chromium/GraphicsLayerChromium.h:
2952         * platform/graphics/chromium/LayerChromium.cpp:
2953         (WebCore::LayerChromium::notifyAnimationStarted):
2954         (WebCore::LayerChromium::notifyAnimationFinished):
2955         (WebCore):
2956         * platform/graphics/chromium/LayerChromium.h:
2957         (WebCore):
2958         (LayerChromium):
2959         * platform/graphics/chromium/cc/CCAnimationEvents.h:
2960         (WebCore::CCAnimationEvent::CCAnimationEvent):
2961         (CCAnimationEvent):
2962         (WebCore):
2963         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2964         (WebCore::CCLayerAnimationController::animate):
2965         (WebCore::CCLayerAnimationController::notifyAnimationStarted):
2966         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
2967         (WebCore::CCLayerAnimationController::startAnimationsWaitingForStartTime):
2968         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
2969         (WebCore::CCLayerAnimationController::purgeFinishedAnimations):
2970         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
2971         (CCLayerAnimationController):
2972         * platform/graphics/chromium/cc/CCLayerAnimationDelegate.h:
2973         (CCLayerAnimationDelegate):
2974         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2975         (WebCore::CCLayerTreeHost::setAnimationEventsRecursive):
2976
2977 2012-04-25  Enrica Casucci  <enrica@apple.com>
2978
2979         REGRESSION (r110494): Dragging images from Safari to Finder results in .webloc rather than image file
2980         https://bugs.webkit.org/show_bug.cgi?id=84878
2981         <rdar://problem/11155407>
2982         
2983         In WebKit2, it could happen to try to start the drag twice, given the asynchronous nature
2984         of the communication between the UI process and the WebProcess.
2985         We need to guarantee that we don't do that, otherwise on OS X the pasteboard ownership
2986         gets changed which affects the promised file types.
2987
2988         Reviewed by Alexey Proskuryakov.
2989
2990         * page/EventHandler.cpp:
2991         (WebCore::EventHandler::handleDrag): Reset m_mouseDownMayStartDrag to false to
2992         avoid attempting to start another drag.
2993
2994 2012-04-25  Andreas Kling  <kling@webkit.org>
2995
2996         Remove unused Attribute constructor.
2997
2998         Semi-knowingly rubber-stamped by Antti Koivisto.
2999
3000         * dom/Attribute.h:
3001
3002 2012-04-25  Nate Chapin  <japhet@chromium.org>
3003
3004         Crash in CachedRawResource::didAddClient() due to missing protector.
3005         https://bugs.webkit.org/show_bug.cgi?id=83632
3006
3007         Reviewed by Eric Seidel.
3008
3009         Test: http/tests/xmlhttprequest/access-control-repeated-failed-preflight-crash.html
3010
3011         * loader/cache/CachedRawResource.cpp:
3012         (WebCore::CachedRawResource::didAddClient):
3013
3014 2012-04-25  Kentaro Hara  <haraken@chromium.org>
3015
3016         [V8] Pass Isolate to SerializedScriptValue::deserialize()
3017         https://bugs.webkit.org/show_bug.cgi?id=84758
3018
3019         Reviewed by Nate Chapin.
3020
3021         The objective is to pass Isolate around. This patch passes
3022         Isolate to SerializedScriptValue::deserialize().
3023
3024         No tests. No change in behavior.
3025
3026         * bindings/v8/custom/V8HistoryCustom.cpp:
3027         (WebCore::V8History::stateAccessorGetter):
3028         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3029         (WebCore::toV8):
3030         * bindings/v8/custom/V8MessageEventCustom.cpp:
3031         (WebCore::V8MessageEvent::dataAccessorGetter):
3032         * bindings/v8/custom/V8PopStateEventCustom.cpp:
3033         (WebCore::V8PopStateEvent::stateAccessorGetter):
3034
3035 2012-04-25  Kentaro Hara  <haraken@chromium.org>
3036
3037         [V8] Pass Isolate to SerializedScriptValue::create() in custom bindings
3038         https://bugs.webkit.org/show_bug.cgi?id=84757
3039
3040         Reviewed by Nate Chapin.
3041
3042         The objective is to pass Isolate around in V8 bindings.
3043         This patch passes Isolate to SerializedScriptValue::create()
3044         in custom bindings.
3045
3046         No tests. No change in behavior.
3047
3048         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3049         (WebCore::handlePostMessageCallback):
3050         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
3051         (WebCore::handlePostMessageCallback):
3052         * bindings/v8/custom/V8HistoryCustom.cpp:
3053         (WebCore::V8History::pushStateCallback):
3054         (WebCore::V8History::replaceStateCallback):
3055         * bindings/v8/custom/V8MessagePortCustom.cpp:
3056         (WebCore::handlePostMessageCallback):
3057         * bindings/v8/custom/V8WorkerCustom.cpp:
3058         (WebCore::handlePostMessageCallback):
3059
3060 2012-04-25  Kentaro Hara  <haraken@chromium.org>
3061
3062         [V8] Pass Isolate to SerializedScriptValue::create() in CodeGeneratorV8.pm
3063         https://bugs.webkit.org/show_bug.cgi?id=84753
3064
3065         Reviewed by Nate Chapin.
3066
3067         The objective is to pass Isolate around in V8 bindings.
3068         This patch passes Isolate to SerializedScriptValue::create()
3069         in CodeGeneratorV8.pm.
3070
3071         Tests: bindings/scripts/test/TestObj.idl
3072                bindings/scripts/test/TestSerializedScriptValueInterface.idl
3073
3074         * bindings/scripts/CodeGeneratorV8.pm:
3075         (GenerateNormalAttrSetter):
3076         (GenerateParametersCheck):
3077         (JSValueToNative):
3078
3079         * bindings/scripts/test/V8/V8TestObj.cpp: Updated run-bindings-tests results.
3080         (WebCore::TestObjV8Internal::intSequenceAttrAttrGetter):
3081         (WebCore::TestObjV8Internal::shortSequenceAttrAttrGetter):
3082         (WebCore::TestObjV8Internal::longSequenceAttrAttrGetter):
3083         (WebCore::TestObjV8Internal::longLongSequenceAttrAttrGetter):
3084         (WebCore::TestObjV8Internal::unsignedIntSequenceAttrAttrGetter):
3085         (WebCore::TestObjV8Internal::unsignedShortSequenceAttrAttrGetter):
3086         (WebCore::TestObjV8Internal::unsignedLongSequenceAttrAttrGetter):
3087         (WebCore::TestObjV8Internal::unsignedLongLongSequenceAttrAttrGetter):
3088         (WebCore::TestObjV8Internal::floatSequenceAttrAttrGetter):
3089         (WebCore::TestObjV8Internal::doubleSequenceAttrAttrGetter):
3090         (WebCore::TestObjV8Internal::booleanSequenceAttrAttrGetter):
3091         (WebCore::TestObjV8Internal::voidSequenceAttrAttrGetter):
3092         (WebCore::TestObjV8Internal::dateSequenceAttrAttrGetter):
3093         (WebCore::TestObjV8Internal::serializedValueCallback):
3094         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3095         (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetter):
3096         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
3097         (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
3098         (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback):
3099         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
3100
3101 2012-04-25  Kentaro Hara  <haraken@chromium.org>
3102
3103         [V8] Add m_isolate to SerializedScriptValue::Writer
3104         and SerializedScriptValue::Reader
3105         https://bugs.webkit.org/show_bug.cgi?id=84739
3106
3107         Reviewed by Nate Chapin.
3108
3109         This is the second step to pass Isolate around
3110         in SerializedScriptValue. This patch adds m_isolate to
3111         SerializedScriptValue::Writer and SerializedScriptValue::Reader,
3112         so that they can use the isolate around. The fix is safe since
3113         Writer and Reader are guaranteed to be used by one Isolate.
3114
3115         No tests. No change in behavior.
3116
3117         * bindings/v8/SerializedScriptValue.cpp:
3118         (WebCore::SerializedScriptValue::create):
3119         (WebCore::SerializedScriptValue::nullValue):
3120         (WebCore::SerializedScriptValue::undefinedValue):
3121         (WebCore::SerializedScriptValue::booleanValue):
3122         (WebCore::SerializedScriptValue::numberValue):
3123         (WebCore::SerializedScriptValue::SerializedScriptValue):
3124         (WebCore::SerializedScriptValue::deserialize):
3125         * bindings/v8/SerializedScriptValue.h:
3126         (SerializedScriptValue):
3127
3128 2012-04-25  Kentaro Hara  <haraken@chromium.org>
3129
3130         [V8] Make the Isolate* parameter non-optional in setDOMException()
3131         https://bugs.webkit.org/show_bug.cgi?id=84736
3132
3133         Reviewed by Nate Chapin.
3134
3135         Now all setDOMException() callers pass Isolate* to setDOMException().
3136         This patch makes the Isolate* parameter non-optional.
3137
3138         No tests. No change in behavior.
3139
3140         * bindings/v8/V8Proxy.h:
3141         (V8Proxy):
3142
3143 2012-04-24  Ryosuke Niwa  <rniwa@webkit.org>
3144
3145         REGRESSION(r112177): listStyleType CSS property gets converted into listStyle
3146         https://bugs.webkit.org/show_bug.cgi?id=83026
3147
3148         Reviewed by Darin Adler.
3149
3150         Fixed the bug by not using shorthand notations when some values are missing.
3151
3152         However, we still want to return a value when shorthand border property is explicitly
3153         requested so extract borderPropertyValue with a flag to support both behaviors.
3154
3155         * css/StylePropertySet.cpp:
3156         (WebCore::borderPropertyValue): Extracted from getPropertyValue.
3157         (WebCore::StylePropertySet::getPropertyValue):
3158         (WebCore::StylePropertySet::get4Values): Don't return values when priority don't match.
3159         (WebCore::StylePropertySet::getShorthandValue):
3160         (WebCore::StylePropertySet::getCommonValue): Don't return null string for initial values
3161         to disambiguate missing values and "initial" in getPropertyValue. Also check propriety.
3162         (WebCore::StylePropertySet::asText): Support emitting border-width, border-style, and
3163         border-color when border doesn't work but the former properties do.
3164
3165 2012-04-25  Ian Vollick  <vollick@chromium.org>
3166
3167         [chromium] Do not clobber synchronized start times.
3168         https://bugs.webkit.org/show_bug.cgi?id=84605
3169
3170         Reviewed by James Robinson.
3171
3172         Tested in CCLayerAnimationControllerTest.doNotClobberStartTimes
3173
3174         (WebCore):
3175         * platform/graphics/chromium/cc/CCActiveAnimation.h:
3176         (CCActiveAnimation):
3177         (WebCore::CCActiveAnimation::hasSetStartTime):
3178         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3179         (WebCore::CCLayerAnimationController::startAnimationsWaitingForNextTick):
3180         (WebCore::CCLayerAnimationController::startAnimationsWaitingForTargetAvailability):
3181
3182 2012-04-25  Nate Chapin  <japhet@chromium.org>
3183
3184         REGRESSION (r100311): YummySoup app crashes when trying to print
3185         https://bugs.webkit.org/show_bug.cgi?id=83918
3186
3187         Reviewed by Alexey Proskuryakov.
3188
3189         Test: http/tests/xmlhttprequest/cancel-during-failure-crash.html
3190
3191         * loader/ResourceLoader.cpp:
3192         (WebCore::ResourceLoader::didFail): Set m_calledDidFinishLoad when calling
3193            didFailToLoad() to prevent it from getting called twice if we cancel
3194            re-entrantly.
3195
3196 2012-04-25  Alexis Menard  <alexis.menard@openbossa.org>
3197
3198         Not reviewed, fix Windows build after r115215.
3199
3200         * css/CSSAllInOne.cpp:
3201
3202 2012-04-25  Eric Carlson  <eric.carlson@apple.com>
3203
3204         Not reviewed, attempt to fix Windows build after r115215.
3205
3206         * css/CSSAllInOne.cpp: Don't try to include CSSStyleSelector.cpp.
3207
3208 2012-04-25  Mark Pilgrim  <pilgrim@chromium.org>
3209
3210         [Chromium] Call actualMemoryUsageMB directly
3211         https://bugs.webkit.org/show_bug.cgi?id=84837
3212
3213         Reviewed by Kentaro Hara.
3214
3215         Part of a refactoring series. See tracking bug 82948.
3216
3217         * bindings/v8/V8DOMWindowShell.cpp:
3218         (WebCore::reportFatalErrorInV8):
3219         * bindings/v8/V8GCController.cpp:
3220         (WebCore):
3221         * platform/MemoryUsageSupport.cpp:
3222         (WebCore::MemoryUsageSupport::actualMemoryUsageMB):
3223         (WebCore):
3224         * platform/MemoryUsageSupport.h:
3225         (MemoryUsageSupport):
3226         * platform/chromium/MemoryUsageSupportChromium.cpp:
3227         (WebCore::MemoryUsageSupport::actualMemoryUsageMB):
3228         (WebCore):
3229         * platform/chromium/PlatformSupport.h:
3230         (PlatformSupport):
3231
3232 2012-04-25  Alexis Menard  <alexis.menard@openbossa.org>
3233
3234         Rename CSSStyleSelector files to StyleResolver.
3235         https://bugs.webkit.org/show_bug.cgi?id=84814
3236
3237         Reviewed by Antti Koivisto.
3238
3239         Rename CSSStyleSelector files to match the new class name StyleResolver.
3240         Update the includes all over the code base to the new name.
3241
3242         No new tests : renaming files, no behavior changes expected.
3243
3244         * CMakeLists.txt:
3245         * GNUmakefile.list.am:
3246         * Target.pri:
3247         * WebCore.gypi:
3248         * WebCore.vcproj/WebCore.vcproj:
3249         * WebCore.xcodeproj/project.pbxproj:
3250         * css/CSSAllInOne.cpp:
3251         * css/CSSCalculationValue.cpp:
3252         * css/CSSFontSelector.cpp:
3253         * css/CSSGradientValue.cpp:
3254         * css/MediaQueryEvaluator.cpp:
3255         * css/MediaQueryMatcher.cpp:
3256         * css/SVGCSSStyleSelector.cpp:
3257         * css/StyleBuilder.cpp:
3258         * css/StyleMedia.cpp:
3259         * css/StyleResolver.cpp: Renamed from Source/WebCore/css/CSSStyleSelector.cpp.
3260         (WebCore):
3261         (RuleData):
3262         (WebCore::RuleData::position):
3263         (WebCore::RuleData::rule):
3264         (WebCore::RuleData::selector):
3265         (WebCore::RuleData::hasFastCheckableSelector):
3266         (WebCore::RuleData::hasMultipartSelector):
3267         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
3268         (WebCore::RuleData::containsUncommonAttributeSelector):
3269         (WebCore::RuleData::specificity):
3270         (WebCore::RuleData::linkMatchType):
3271         (WebCore::RuleData::hasDocumentSecurityOrigin):
3272         (WebCore::RuleData::isInRegionRule):
3273         (WebCore::RuleData::descendantSelectorIdentifierHashes):
3274         (SameSizeAsRuleData):
3275         (RuleSet):
3276         (WebCore::RuleSet::create):
3277         (WebCore::RuleSet::disableAutoShrinkToFit):
3278         (WebCore::RuleSet::features):
3279         (WebCore::RuleSet::idRules):
3280         (WebCore::RuleSet::classRules):
3281         (WebCore::RuleSet::tagRules):
3282         (WebCore::RuleSet::shadowPseudoElementRules):
3283         (WebCore::RuleSet::linkPseudoClassRules):
3284         (WebCore::RuleSet::focusPseudoClassRules):
3285         (WebCore::RuleSet::universalRules):
3286         (WebCore::RuleSet::pageRules):
3287         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
3288         (RuleSetSelectorPair):
3289         (WebCore::elementCanUseSimpleDefaultStyle):
3290         (WebCore::screenEval):
3291         (WebCore::printEval):
3292         (WebCore::leftToRightDeclaration):
3293         (WebCore::rightToLeftDeclaration):
3294         (WebCore::StyleResolver::StyleResolver):
3295         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
3296         (WebCore::makeRuleSet):
3297         (WebCore::StyleResolver::collectFeatures):
3298         (WebCore::StyleResolver::determineScope):
3299         (WebCore::StyleResolver::ruleSetForScope):
3300         (WebCore::StyleResolver::appendAuthorStylesheets):
3301         (WebCore::StyleResolver::setupScopeStack):
3302         (WebCore::StyleResolver::pushScope):
3303         (WebCore::StyleResolver::popScope):
3304         (WebCore::StyleResolver::pushParentElement):
3305         (WebCore::StyleResolver::popParentElement):
3306         (WebCore::StyleResolver::pushParentShadowRoot):
3307         (WebCore::StyleResolver::popParentShadowRoot):
3308         (WebCore::StyleResolver::addKeyframeStyle):
3309         (WebCore::StyleResolver::~StyleResolver):
3310         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
3311         (WebCore::StyleResolver::Features::Features):
3312         (WebCore::StyleResolver::Features::~Features):
3313         (WebCore::StyleResolver::Features::add):
3314         (WebCore::StyleResolver::Features::clear):
3315         (WebCore::parseUASheet):
3316         (WebCore::loadFullDefaultStyle):
3317         (WebCore::loadSimpleDefaultStyle):
3318         (WebCore::loadViewSourceStyle):
3319         (WebCore::ensureDefaultStyleSheetsForElement):
3320         (WebCore::StyleResolver::addMatchedProperties):
3321         (WebCore::StyleResolver::addElementStyleProperties):
3322         (WebCore::StyleResolver::collectMatchingRules):
3323         (WebCore::StyleResolver::collectMatchingRulesForRegion):
3324         (WebCore::StyleResolver::sortAndTransferMatchedRules):
3325         (WebCore::StyleResolver::matchScopedAuthorRules):
3326         (WebCore::StyleResolver::matchAuthorRules):
3327         (WebCore::StyleResolver::matchUserRules):
3328         (WebCore::StyleResolver::matchUARules):
3329         (MatchingUARulesScope):
3330         (WebCore::MatchingUARulesScope::MatchingUARulesScope):
3331         (WebCore::MatchingUARulesScope::~MatchingUARulesScope):
3332         (WebCore::MatchingUARulesScope::isMatchingUARules):
3333         (WebCore::StyleResolver::collectMatchingRulesForList):
3334         * css/StyleResolver.h: Renamed from Source/WebCore/css/CSSStyleSelector.h.
3335         (WebCore):
3336         (MediaQueryResult):
3337         (WebCore::MediaQueryResult::MediaQueryResult):
3338         (StyleResolver):
3339         (WebCore::StyleResolver::style):
3340         (WebCore::StyleResolver::parentStyle):
3341         (WebCore::StyleResolver::rootElementStyle):
3342         (WebCore::StyleResolver::element):
3343         (WebCore::StyleResolver::document):
3344         (WebCore::StyleResolver::fontDescription):
3345         (WebCore::StyleResolver::parentFontDescription):
3346         (WebCore::StyleResolver::setFontDescription):
3347         (WebCore::StyleResolver::setZoom):
3348         (WebCore::StyleResolver::setEffectiveZoom):
3349         (WebCore::StyleResolver::setTextSizeAdjust):
3350         (WebCore::StyleResolver::hasParentNode):
3351         (WebCore::StyleResolver::pushScope):
3352         (WebCore::StyleResolver::popScope):
3353         (WebCore::StyleResolver::setStyle):
3354         (WebCore::StyleResolver::fontSelector):
3355         (WebCore::StyleResolver::allVisitedStateChanged):
3356         (WebCore::StyleResolver::visitedStateChanged):
3357         (WebCore::StyleResolver::usesSiblingRules):
3358         (WebCore::StyleResolver::usesFirstLineRules):
3359         (WebCore::StyleResolver::usesBeforeAfterRules):
3360         (WebCore::StyleResolver::usesLinkRules):
3361         (WebCore::StyleResolver::RuleFeature::RuleFeature):
3362         (RuleFeature):
3363         (Features):
3364         (WebCore::StyleResolver::addMatchedRule):
3365         (WebCore::StyleResolver::MatchRanges::MatchRanges):
3366         (MatchRanges):
3367         (WebCore::StyleResolver::MatchedProperties::MatchedProperties):
3368         (MatchedProperties):
3369         (WebCore::StyleResolver::MatchResult::MatchResult):
3370         (MatchResult):
3371         (WebCore::StyleResolver::MatchOptions::MatchOptions):
3372         (MatchOptions):
3373         (WebCore::StyleResolver::isRightPage):
3374         (WebCore::StyleResolver::styleNotYetAvailable):
3375         (WebCore::StyleResolver::applyPropertyToRegularStyle):
3376         (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
3377         (MatchedPropertiesCacheItem):
3378         (WebCore::StyleResolver::scopeStackIsConsistent):
3379         (WebCore::StyleResolver::ScopeStackFrame::ScopeStackFrame):
3380         (ScopeStackFrame):
3381         * css/WebKitCSSMatrix.cpp:
3382         * dom/Document.cpp:
3383         * dom/Element.cpp:
3384         * dom/Node.cpp:
3385         * dom/ShadowRoot.cpp:
3386         * dom/ShadowTree.cpp:
3387         * dom/StyledElement.cpp:
3388         * editing/ApplyStyleCommand.cpp:
3389         * editing/EditingStyle.cpp:
3390         * editing/Editor.cpp:
3391         * editing/markup.cpp:
3392         * history/CachedPage.cpp:
3393         * html/HTMLDocument.cpp:
3394         * html/HTMLLinkElement.cpp:
3395         * html/HTMLOptGroupElement.cpp:
3396         * html/HTMLOptionElement.cpp:
3397         * html/ValidationMessage.cpp:
3398         * html/canvas/CanvasRenderingContext2D.cpp:
3399         * html/shadow/MediaControlElements.cpp:
3400         * inspector/InspectorCSSAgent.cpp:
3401         * inspector/InspectorDOMAgent.cpp:
3402         * inspector/InspectorStyleSheet.cpp:
3403         * loader/LinkLoader.cpp:
3404         * page/DOMWindow.cpp:
3405         * page/FrameView.cpp:
3406         * page/Page.cpp:
3407         * page/animation/KeyframeAnimation.cpp:
3408         * platform/qt/RenderThemeQt.cpp:
3409         * platform/qt/RenderThemeQtMobile.cpp:
3410         * rendering/RenderLayer.cpp:
3411         * rendering/RenderLayerBacking.cpp:
3412         * rendering/RenderListBox.cpp:
3413         * rendering/RenderMenuList.cpp:
3414         * rendering/RenderObject.cpp:
3415         * rendering/RenderRegion.cpp:
3416         * rendering/RenderSlider.cpp:
3417         * rendering/RenderTextControlSingleLine.cpp:
3418         * rendering/RenderThemeMac.mm:
3419         * rendering/RenderThemeSafari.cpp:
3420         * rendering/style/RenderStyle.cpp:
3421         * rendering/style/StyleGeneratedImage.cpp:
3422         * rendering/style/StyleRareNonInheritedData.cpp:
3423         * rendering/svg/RenderSVGInlineText.cpp:
3424         * svg/SVGClipPathElement.cpp:
3425         * svg/SVGElement.cpp:
3426         * svg/SVGFontFaceElement.cpp:
3427         * svg/SVGGradientElement.cpp:
3428         * svg/SVGMaskElement.cpp:
3429         * svg/SVGUseElement.cpp:
3430
3431 2012-04-25  Crystal Zhang  <haizhang@rim.com>
3432             https://bugs.webkit.org/show_bug.cgi?id=84875
3433     
3434             make-css-file-arrays.pl now only take css files, make it also take js files,
3435             as for html popups we also need load js files.
3436     
3437             Reviewed by Antonio Gomes.
3438     
3439             * css/make-css-file-arrays.pl:
3440
3441 2012-04-25  Li Yin  <li.yin@intel.com>
3442
3443         [chromium][workers] setTargetType(ResourceRequest::TargetIsWorker) is repeatedly called in chromium
3444         https://bugs.webkit.org/show_bug.cgi?id=84542
3445
3446         Reviewed by David Levin.
3447
3448         In chromium platform, the default value of m_targetType is ResourceRequest::TargetIsWorker
3449         it isn't necessary to call
3450         worker->m_scriptLoader->setTargetType(ResourceRequest::TargetIsWorker) again in Worker.cpp
3451         In chromium platform, the m_targettype value determines the priority of resource loaded.
3452
3453         No new tests because this patch just deletes a repeated code, it can reduce code workload and can't impact any feature.
3454         If the target type isn't set correctly, the following test maybe fail because of timeout in the chromium.
3455         fast/workers/storage/multiple-transactions-on-different-handles.html
3456         fast/workers/storage/multiple-transactions-on-different-handles-sync.html
3457         fast/workers/storage/interrupt-database.html
3458
3459         * workers/Worker.cpp:
3460         (WebCore::Worker::create):
3461
3462 2012-04-25  Yury Semikhatsky  <yurys@chromium.org>
3463
3464         Web Inspector: move HeapSnapshotLoader into a separate file
3465         https://bugs.webkit.org/show_bug.cgi?id=84860
3466
3467         Extracted HeapSnapshotLoader into its own file.
3468
3469         Reviewed by Pavel Feldman.
3470
3471         * WebCore.gypi:
3472         * WebCore.vcproj/WebCore.vcproj:
3473         * inspector/compile-front-end.py:
3474         * inspector/front-end/HeapSnapshot.js:
3475         * inspector/front-end/HeapSnapshotLoader.js: Added.
3476         (WebInspector.HeapSnapshotLoader):
3477         (WebInspector.HeapSnapshotLoader.prototype._findBalancedCurlyBrackets):
3478         (WebInspector.HeapSnapshotLoader.prototype.finishLoading):
3479         (WebInspector.HeapSnapshotLoader.prototype._parseUintArray):
3480         (WebInspector.HeapSnapshotLoader.prototype._parseStringsArray):
3481         (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
3482         * inspector/front-end/WebKit.qrc:
3483         * inspector/front-end/inspector.html:
3484
3485 2012-04-25  'Pavel Feldman'  <pfeldman@chromium.org>
3486
3487         Not reviewed: inspector frontend tests fix.
3488
3489         * inspector/front-end/ScriptsSearchScope.js:
3490
3491 2012-04-25  Ian Vollick  <vollick@chromium.org>
3492
3493         [chromium] Animations waiting for a synchronized start time should never be marked finished.
3494         https://bugs.webkit.org/show_bug.cgi?id=84519
3495
3496         Reviewed by James Robinson.
3497
3498         Tested in CCLayerAnimationControllerTest.AnimationsWaitingForStartTimeDoNotFinishIfTheyWaitLongerToStartThanTheirDuration
3499
3500         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
3501         (WebCore::CCLayerAnimationController::tickAnimations):
3502
3503 2012-04-25  Pierre Rossi  <pierre.rossi@gmail.com>
3504
3505         [SVG] Nothing should be stroked when the stroke-width is 0
3506         https://bugs.webkit.org/show_bug.cgi?id=83568
3507
3508         Reviewed by Nikolas Zimmermann.
3509
3510         The spec states that "A zero value causes no stroke to be painted".
3511         We should avoid calling functions that could incorrectly paint something
3512         in that case.
3513
3514         Test: svg/custom/path-zero-strokewidth.svg
3515
3516         * rendering/style/SVGRenderStyle.h:
3517         (WebCore::SVGRenderStyle::hasVisibleStroke):
3518         * rendering/svg/RenderSVGEllipse.cpp:
3519         (WebCore::RenderSVGEllipse::strokeShape): Check if the stroke should be visible before painting.
3520         * rendering/svg/RenderSVGRect.cpp:
3521         (WebCore::RenderSVGRect::strokeShape): Ditto.
3522         * rendering/svg/RenderSVGShape.cpp:
3523         (WebCore::RenderSVGShape::strokeShape): Ditto.
3524         (WebCore::RenderSVGShape::strokePath): Ditto.
3525         * rendering/svg/SVGInlineTextBox.cpp:
3526         (WebCore::SVGInlineTextBox::paint): Dont call paintText for zero-width stroke.
3527         (WebCore::SVGInlineTextBox::paintDecoration): Ditto.
3528
3529 2012-04-25  Alexis Menard  <alexis.menard@openbossa.org>
3530
3531         Unfortunately http://trac.webkit.org/changeset/115055 was landed using webkit-patch
3532         land-from bug but didn't do the right thing, we lost the history.
3533
3534         This commit is merging back CSSStyleApplyProperty.* and their history, rename the files
3535         to StyleBuilder and re-apply the two patches on trunk that were apply after the rename.
3536
3537         Rename CSSStyleSelector class to StyleResolver.
3538         https://bugs.webkit.org/show_bug.cgi?id=84734
3539
3540         The name CSSStyleSelector is confusing as it conflicts a bit with
3541</