df96c0236e80633c318e0f2cc13d344e27ec1df2
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-23  Dean Jackson  <dino@apple.com>
2
3         Disable CSS_SHADERS in Apple builds
4         https://bugs.webkit.org/show_bug.cgi?id=81996
5
6         Reviewed by Simon Fraser.
7
8         Remove ENABLE_CSS_SHADERS from FeatureDefines. It's now in Platform.h.
9
10         * Configurations/FeatureDefines.xcconfig:
11
12 2012-03-23  Dave Michael  <dmichael@chromium.org>
13
14         Relanding(r111754): HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
15         https://bugs.webkit.org/show_bug.cgi?id=80428
16
17         Reviewed by Eric Seidel and Ryosuke Niwa.
18
19         Make HTMLPluginElement release its m_NPObject in detach() to break a
20         reference-counting cycle that happens on reload or navigation. With this
21         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
22         was removed. Note that Releasing m_NPObject does not result in a call to
23         the plugin; it simply releases a reference count on the wrapper object
24         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
25         when the render tree is destroyed, when PluginView calls
26         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
27         detach, because it can not result in layout or style changes.
28
29         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
30         window.internals to enable testing.
31
32         Test: plugins/netscape-dom-access-and-reload.html
33
34         * WebCore.exp.in:
35         * html/HTMLPlugInElement.cpp:
36         (WebCore::HTMLPlugInElement::detach):
37         * html/HTMLPlugInElement.h:
38         (HTMLPlugInElement):
39         * testing/Internals.cpp:
40         (WebCore):
41         (WebCore::Internals::numberOfLiveNodes):
42         (WebCore::Internals::numberOfLiveDocuments):
43         * testing/Internals.h:
44         (Internals):
45         * testing/Internals.idl:
46
47 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
48
49         CSSParser doesn't set border-*-width/style/color to initial by border shorthand property
50         https://bugs.webkit.org/show_bug.cgi?id=82040
51
52         Reviewed by Antti Koivisto.
53
54         The border shorthand property sets values for border-width, border-style, and border-color shorthand properties.
55         While CSSParser::parseValue can process these shorthand properties properly and set the longhand properties
56         such as border-top-width, border-right-width, ... border-left-color, CSSParser::addProperty can't and the
57         initialization in parseShorthand fails for the border property.
58
59         Fixed the bug by explicitly initializing longhand properties.
60
61         Changing the behavior here is unlikely to break the Web since our behavior already differs from that of Firefox
62         and Internet Explorer. Both of those browsers return the actual initial values such as "medium" and "currentColor".
63         This discrepancy is tracked by https://bugs.webkit.org/show_bug.cgi?id=82078.
64
65         Test: fast/css/border-shorthand-initialize-longhands.html
66
67         * css/CSSParser.cpp:
68         (WebCore::CSSParser::parseValue): Uses borderAbridgedLonghand.
69         (WebCore::CSSParser::parseShorthand): Uses longhand properties for initialization if one is available.
70         This allows us to initialize multiple properties (e.g. border-*-color) for a single property missing in the set.
71         * css/CSSPropertyLonghand.cpp:
72         (WebCore::borderAbridgedLonghand): Added. The longhand here (border-width, border-style, border-color) is
73         "abridged" in the sense that they're still shorthands.
74         * css/CSSPropertyLonghand.h:
75         (WebCore::CSSPropertyLonghand::CSSPropertyLonghand):
76         (CSSPropertyLonghand): Added the version that takes longhand instances for initialization purposes.
77         (WebCore::CSSPropertyLonghand::longhandsForInitialization):
78
79 2012-03-23  Tony Chang  <tony@chromium.org>
80
81         [chromium] rename newwtf target back to wtf
82         https://bugs.webkit.org/show_bug.cgi?id=82064
83
84         Reviewed by Adam Barth.
85
86         No new tests, only renaming a build target.
87
88         * WebCore.gyp/WebCore.gyp:
89
90 2012-03-23  Adrienne Walker  <enne@google.com>
91
92         [chromium] Turn off painting of scrollbars on compositor thread for unsupported platforms
93         https://bugs.webkit.org/show_bug.cgi?id=82066
94
95         Reviewed by James Robinson.
96
97         With threaded compositing, OSX will crash and Windows will have black
98         scrollbars. Fix that by reverting to the previosu behavior of updating
99         scrollbars on the main thread instead.
100
101         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
102         (WebCore::scrollbarLayerDidChange):
103
104 2012-03-23  Dan Bernstein  <mitz@apple.com>
105
106         <rdar://problem/7883987> ASSERTION FAILED: ASSERT(input == AnimationStateInputEndTimerFired || input == AnimationStateInputPlayStatePaused) in AnimationBase::updateStateMachine causing multiple "crashes" on Lion Intel Debug WebKit testers
107         https://bugs.webkit.org/show_bug.cgi?id=81351
108
109         Rubber-stamped by Jessie Berlin.
110
111         * page/animation/AnimationBase.cpp:
112         (WebCore::AnimationBase::updateStateMachine): Replaced the assertion with a LOG_ERROR so that
113         the issue is still noticeable, but it does not automatically make the debug bots red.
114
115 2012-03-23  Mike Lawther  <mikelawther@chromium.org>
116
117         CSS3 calc: image sizing works with mixed percentage/absolute
118         https://bugs.webkit.org/show_bug.cgi?id=82017
119
120         Reviewed by Ojan Vafai.
121
122         Test: css3/calc/img-size-expected.html
123
124         * rendering/RenderBox.cpp:
125         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
126         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
127
128 2012-03-23  Julien Chaffraix  <jchaffraix@webkit.org>
129
130         REGRESSION(107971): Google Voice contact list is broken in WebKit due to badly allocating the extra height
131         https://bugs.webkit.org/show_bug.cgi?id=81826
132
133         Reviewed by Tony Chang.
134
135         Covered by tables/mozilla/bugs/bug27038-{1|2}.html.
136
137         This partly reverts r107971: the extra logical height distribution change was not needed
138         to fix the bug (it is needed by the test though). We revert to giving all the extra height
139         to the first tbody and not the first section.
140
141         This is broken but unfortunately some websites are relying on that. Getting a real
142         distribution algorithm is covered by bug 81824. However this is super tricky to get
143         right and I did not want to add more compatibility risks until I have something solid.
144
145         * rendering/RenderTable.cpp:
146         (WebCore::RenderTable::distributeExtraLogicalHeight):
147
148 2012-03-23  Xingnan Wang  <xingnan.wang@intel.com>
149
150         Optimize for IPP in DirectConvolver::process()
151         https://bugs.webkit.org/show_bug.cgi?id=80255
152
153         Reviewed by Chris Rogers.
154
155         Increase ~2X performance by conv() in IPP.
156
157         * platform/audio/DirectConvolver.cpp:
158         (WebCore::DirectConvolver::DirectConvolver):
159         (WebCore::DirectConvolver::process):
160         * platform/audio/DirectConvolver.h:
161         (DirectConvolver):
162
163 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
164
165         MediaStream API (JSEP): Introducing PeerConnection00 and IceCallback
166         https://bugs.webkit.org/show_bug.cgi?id=81657
167
168         Reviewed by Adam Barth.
169
170         Last major WebCore patch for the JSEP PeerConnection, together with the associated
171         IceCallback (they both depend on each other and IceCallback has very few lines of real code).
172
173         My next patch after this one will do a major overhaul of the existing layout tests
174         and add a few new ones.
175
176         * GNUmakefile.list.am:
177         * Modules/mediastream/DOMWindowMediaStream.idl:
178         * Modules/mediastream/IceCallback.h: Added.
179         (WebCore):
180         (IceCallback):
181         (WebCore::IceCallback::~IceCallback):
182         * Modules/mediastream/IceCallback.idl: Added.
183         * Modules/mediastream/PeerConnection00.cpp: Added.
184         (WebCore):
185         (WebCore::PeerConnection00::create):
186         (WebCore::PeerConnection00::PeerConnection00):
187         (WebCore::PeerConnection00::~PeerConnection00):
188         (WebCore::PeerConnection00::hasLocalAudioTrack):
189         (WebCore::PeerConnection00::hasLocalVideoTrack):
190         (WebCore::PeerConnection00::parseMediaHints):
191         (WebCore::PeerConnection00::createOffer):
192         (WebCore::PeerConnection00::createAnswer):
193         (WebCore::PeerConnection00::setLocalDescription):
194         (WebCore::PeerConnection00::setRemoteDescription):
195         (WebCore::PeerConnection00::localDescription):
196         (WebCore::PeerConnection00::remoteDescription):
197         (WebCore::PeerConnection00::startIce):
198         (WebCore::PeerConnection00::processIceMessage):
199         (WebCore::PeerConnection00::readyState):
200         (WebCore::PeerConnection00::iceState):
201         (WebCore::PeerConnection00::addStream):
202         (WebCore::PeerConnection00::removeStream):
203         (WebCore::PeerConnection00::localStreams):
204         (WebCore::PeerConnection00::remoteStreams):
205         (WebCore::PeerConnection00::close):
206         (WebCore::PeerConnection00::didGenerateIceCandidate):
207         (WebCore::PeerConnection00::didChangeReadyState):
208         (WebCore::PeerConnection00::didChangeIceState):
209         (WebCore::PeerConnection00::didAddRemoteStream):
210         (WebCore::PeerConnection00::didRemoveRemoteStream):
211         (WebCore::PeerConnection00::interfaceName):
212         (WebCore::PeerConnection00::scriptExecutionContext):
213         (WebCore::PeerConnection00::stop):
214         (WebCore::PeerConnection00::eventTargetData):
215         (WebCore::PeerConnection00::ensureEventTargetData):
216         (WebCore::PeerConnection00::changeReadyState):
217         (WebCore::PeerConnection00::changeIceState):
218         * Modules/mediastream/PeerConnection00.h: Added.
219         (WebCore):
220         (PeerConnection00):
221         (WebCore::PeerConnection00::refEventTarget):
222         (WebCore::PeerConnection00::derefEventTarget):
223         * Modules/mediastream/PeerConnection00.idl: Added.
224         * WebCore.gypi:
225         * bindings/generic/RuntimeEnabledFeatures.h:
226         (WebCore::RuntimeEnabledFeatures::webkitPeerConnection00Enabled):
227         * bindings/js/JSPeerConnection00Custom.cpp: Added.
228         (WebCore):
229         (WebCore::JSPeerConnection00Constructor::constructJSPeerConnection00):
230         * dom/EventTargetFactory.in:
231
232 2012-03-23  Adrienne Walker  <enne@google.com>
233
234         [chromium] Fix scrollbarLayerLostContext flaky test crash on 10.6
235         https://bugs.webkit.org/show_bug.cgi?id=82062
236
237         Reviewed by James Robinson.
238
239         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
240         (CCScrollbarLayerImpl):
241
242 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
243
244         [chromium] MediaStream API (JSEP): Extending WebMediaStreamCenter
245         https://bugs.webkit.org/show_bug.cgi?id=81924
246
247         Reviewed by Adam Barth.
248
249         Nothing to test, just moving methods.
250
251         * platform/mediastream/MediaStreamCenter.cpp:
252         (WebCore::MediaStreamCenter::constructSDP):
253         (WebCore):
254
255 2012-03-23  Sami Kyostila  <skyostil@chromium.org>
256
257         Reuse buffer allocation if canvas size does not change
258         https://bugs.webkit.org/show_bug.cgi?id=80871
259
260         Reviewed by Stephen White.
261
262         If the user changes the width or height attributes of a canvas element,
263         the contents of the canvas should be cleared and the context state
264         should be reset. This has become a common idiom to clear the canvas
265         "efficiently" at the start of a frame.
266
267         Previously, this code path triggered a full reallocation of the image
268         buffer backing the canvas, leading to reduced performance. This patch
269         implements an optimization where we reuse the previous image buffer
270         allocation if the size of the canvas did not change. Also, instead of
271         clearing the canvas every time its dimensions are touched, we only clear
272         if anything has been drawn into the canvas since it was previously
273         cleared.
274
275         Note that for now this optimization only applies for 2D canvases,
276         since it is not entirely clear how touching the dimensions of a WebGL
277         canvas should work.
278
279         Test: fast/canvas/canvas-resize-after-paint-without-layout.html +
280               existing layout tests for canvas resetting.
281
282         * html/HTMLCanvasElement.cpp:
283         (WebCore::HTMLCanvasElement::HTMLCanvasElement):
284         (WebCore::HTMLCanvasElement::reset):
285         (WebCore::HTMLCanvasElement::createImageBuffer): Save the initial
286         graphics context state so we can restore it without creating a new
287         context.
288         (WebCore::HTMLCanvasElement::clearImageBuffer):
289         (WebCore):
290         (WebCore::HTMLCanvasElement::clearCopiedImage):
291         * html/HTMLCanvasElement.h:
292         (HTMLCanvasElement):
293         * html/canvas/CanvasRenderingContext2D.cpp:
294         (WebCore::CanvasRenderingContext2D::reset): No need to notify the
295         compositor when the context is reset, because clearing the image buffer
296         does the same thing. We can also skip the notification if we did not
297         have an image buffer at the time of the reset, because the reset will
298         not have any visual impact in this case. Finally, if the canvas size
299         did change, the notification is also unnecessary because of the call
300         to RenderObject::repaint() from HTMLCanvasElement::reset().
301
302 2012-03-22  Martin Robinson  <mrobinson@igalia.com>
303
304         Fix some code generation warnings on GTK+.
305
306         Reviewed by Gustavo Noronha Silva.
307
308         No new tests. This just fixes warnings.
309
310         * GNUmakefile.am: Remove nonexistent directories from the list IDL directories.
311
312 2012-03-23  Sheriff Bot  <webkit.review.bot@gmail.com>
313
314         Unreviewed, rolling out r111751.
315         http://trac.webkit.org/changeset/111751
316         https://bugs.webkit.org/show_bug.cgi?id=82060
317
318         caused 15% page cycler regression for chromium-linux
319         (Requested by eae on #webkit).
320
321         * css/CSSStyleSelector.cpp:
322         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
323
324 2012-03-23  Kentaro Hara  <haraken@chromium.org>
325
326         Support [ImplementedAs] for attributes
327         https://bugs.webkit.org/show_bug.cgi?id=81605
328
329         Reviewed by Adam Barth.
330
331         [ImplementedAs] just supports methods. [ImplementedAs] should support
332         attributes too.
333
334         Explained here: https://trac.webkit.org/wiki/WebKitIDL#ImplementedAs
335
336         Test: bindings/scripts/test/TestObj.idl
337
338         * bindings/scripts/CodeGenerator.pm: Modified to support [ImplementedAs] for attributes.
339         (AttributeNameForGetterAndSetter):
340
341         * bindings/scripts/test/TestObj.idl: Added a test case.
342
343         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
344         (WebDOMTestObj::strawberry):
345         (WebDOMTestObj::setStrawberry):
346         * bindings/scripts/test/CPP/WebDOMTestObj.h:
347         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
348         (webkit_dom_test_obj_get_strawberry):
349         (webkit_dom_test_obj_set_strawberry):
350         (webkit_dom_test_obj_get_property):
351         (webkit_dom_test_obj_class_init):
352         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
353         * bindings/scripts/test/JS/JSTestObj.cpp:
354         (WebCore):
355         (WebCore::jsTestObjStrawberry):
356         (WebCore::setJSTestObjStrawberry):
357         * bindings/scripts/test/JS/JSTestObj.h:
358         (WebCore):
359         * bindings/scripts/test/ObjC/DOMTestObj.h:
360         * bindings/scripts/test/ObjC/DOMTestObj.mm:
361         (-[DOMTestObj strawberry]):
362         (-[DOMTestObj setStrawberry:]):
363         * bindings/scripts/test/V8/V8TestObj.cpp:
364         (WebCore::TestObjInternal::strawberryAttrGetter):
365         (TestObjInternal):
366         (WebCore::TestObjInternal::strawberryAttrSetter):
367         (WebCore):
368
369 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
370
371         The JSC code generator doesn't generate correct code for Constructors
372         https://bugs.webkit.org/show_bug.cgi?id=82046
373
374         Reviewed by Kentaro Hara.
375
376         The main bulk of generated code for constructors uses the name jsConstructor
377         for the created object, and then calls GenerateParametersCheck which generates
378         code that uses the name castedThis.
379
380         * bindings/scripts/CodeGeneratorJS.pm:
381         (GenerateConstructorDefinition):
382         * bindings/scripts/test/JS/JSTestInterface.cpp:
383         (WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
384         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
385         (WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
386         * bindings/scripts/test/JS/JSTestObj.cpp:
387         (WebCore::JSTestObjConstructor::finishCreation):
388         (WebCore::JSTestObjConstructor::constructJSTestObj):
389         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
390         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
391         * bindings/scripts/test/TestObj.idl:
392         * bindings/scripts/test/V8/V8TestObj.cpp:
393         (WebCore::V8TestObj::constructorCallback):
394
395 2012-03-23  Tommy Widenflycht  <tommyw@google.com>
396
397         The JSC code generator can't handle boolean arguments for Callbacks
398         https://bugs.webkit.org/show_bug.cgi?id=82045
399
400         Reviewed by Kentaro Hara.
401
402         CodeGeneratorJS.pm only handles DOMStrings and objects as arguments
403         for a Callback, so I added support for boolean values as well.
404
405         * bindings/scripts/CodeGeneratorJS.pm:
406         (GenerateCallbackImplementation):
407         * bindings/scripts/test/CPP/WebDOMTestCallback.cpp:
408         (WebDOMTestCallback::callbackWithBoolean):
409         * bindings/scripts/test/CPP/WebDOMTestCallback.h:
410         (WebDOMTestCallback):
411         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
412         (webkit_dom_test_callback_callback_with_boolean):
413         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
414         * bindings/scripts/test/JS/JSTestCallback.cpp:
415         (WebCore::JSTestCallback::callbackWithBoolean):
416         (WebCore):
417         * bindings/scripts/test/JS/JSTestCallback.h:
418         (JSTestCallback):
419         * bindings/scripts/test/ObjC/DOMTestCallback.h:
420         * bindings/scripts/test/ObjC/DOMTestCallback.mm:
421         (-[DOMTestCallback callbackWithBoolean:]):
422         * bindings/scripts/test/TestCallback.idl:
423         * bindings/scripts/test/V8/V8TestCallback.cpp:
424         (WebCore::V8TestCallback::callbackWithBoolean):
425         (WebCore):
426         * bindings/scripts/test/V8/V8TestCallback.h:
427         (V8TestCallback):
428
429 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
430
431         Touch adjustment forgets some subtarget quads.
432         https://bugs.webkit.org/show_bug.cgi?id=82044
433
434         Reviewed by Kenneth Rohde Christiansen.
435
436         Do not uncritically skip all nodes that are ancestors to other test results.
437         Instead return the inner-most element if multiple nodes have the same distance.
438
439         Test: touchadjustment/block-testing.html
440
441         * page/TouchAdjustment.cpp:
442         (WebCore::TouchAdjustment::compileSubtargetList):
443         (WebCore::TouchAdjustment::findNodeWithLowestDistanceMetric):
444
445 2012-03-23  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
446
447         TouchAdjustment does not correct for frame position
448         https://bugs.webkit.org/show_bug.cgi?id=82043
449
450         Reviewed by Kenneth Rohde Christiansen.
451
452         Convert geometry to window coordinates before calculating distance.
453
454         Test: touchadjustment/iframe.html
455
456         * page/TouchAdjustment.cpp:
457         (WebCore::TouchAdjustment::distanceSquaredToTargetCenterLine):
458
459 2012-03-23  Vlad Voicu  <vladv@rosedu.org>
460
461         Fixed minor WebInspector display issue
462         Clicking on disabled sections in Styles Sidebar Pane creates new elements.
463         https://bugs.webkit.org/show_bug.cgi?id=81925
464
465         Reviewed by Timothy Hatcher
466
467         No new tests should be required.
468
469         * inspector/front-end/StylesSidebarPane.js:
470         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
471         (WebInspector.StylePropertyTreeElement.prototype):
472
473 2012-03-23  Kentaro Hara  <haraken@chromium.org>
474
475         Unreviewed, rebaselined run-bindings-tests results.
476
477         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
478         * bindings/scripts/test/CPP/WebDOMTestObj.h:
479         * bindings/scripts/test/JS/JSTestObj.cpp:
480         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
481         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
482         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
483         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
484         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
485         * bindings/scripts/test/V8/V8TestObj.cpp:
486         (WebCore::TestObjInternal::methodWithCallbackArgCallback):
487         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
488         (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
489         (WebCore::TestObjInternal::overloadedMethod5Callback):
490         (WebCore::TestObjInternal::overloadedMethodCallback):
491
492 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
493
494         cssText should use StringBuilder
495         https://bugs.webkit.org/show_bug.cgi?id=82028
496
497         Reviewed by Hajime Morita.
498
499         Make StylePropertySet::asText more efficient by deploying StringBuilder;
500         avoids heap churn by String::operator+ and String::operator+=.
501
502         * css/StylePropertySet.cpp:
503         (WebCore::StylePropertySet::asText):
504
505 2012-03-23  Ryosuke Niwa  <rniwa@webkit.org>
506
507         REGRESSION(r111754): plugins/reloadplugins-and-pages.html fails on all platforms
508         https://bugs.webkit.org/show_bug.cgi?id=82035
509
510         Rollout r111754 since it caused a test to fail and the test added by the patch
511         is failing on Mac WebKit 2.
512
513         * WebCore.exp.in:
514         * html/HTMLPlugInElement.cpp:
515         (WebCore::HTMLPlugInElement::detach):
516         (WebCore):
517         (WebCore::HTMLPlugInElement::removedFromDocument):
518         * html/HTMLPlugInElement.h:
519         (HTMLPlugInElement):
520         * testing/Internals.cpp:
521         * testing/Internals.h:
522         (Internals):
523         * testing/Internals.idl:
524
525 2012-03-23  Adam Barth  <abarth@webkit.org>
526
527         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 2)
528         https://bugs.webkit.org/show_bug.cgi?id=82026
529
530         Reviewed by Kentaro Hara.
531
532         This patch removes DOMWindow::resetNotifications, which was unneeded
533         special-case logic for clearing the notifications center.  The previous
534         patch that tried to accomplish the same thing did not override
535         willDetachPage, which is why it caused crashes.
536
537         There's actually a cleaner way to handle these cases, which will let us
538         implement reconnectFrame, but that will need to wait for the next
539         patch.
540
541         * notifications/DOMWindowNotifications.cpp:
542         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
543         (WebCore::DOMWindowNotifications::from):
544         (WebCore::DOMWindowNotifications::webkitNotifications):
545         (WebCore):
546         (WebCore::DOMWindowNotifications::disconnectFrame):
547         (WebCore::DOMWindowNotifications::willDetachPage):
548         (WebCore::DOMWindowNotifications::reset):
549         * notifications/DOMWindowNotifications.h:
550         (DOMWindowNotifications):
551         * page/DOMWindow.cpp:
552         (WebCore::DOMWindow::willDetachPage):
553         (WebCore::DOMWindow::disconnectDOMWindowProperties):
554         (WebCore::DOMWindow::clearDOMWindowProperties):
555         * page/DOMWindow.h:
556         (DOMWindow):
557         * page/Frame.cpp:
558         (WebCore::Frame::willDetachPage):
559
560 2012-03-22  Adam Barth  <abarth@webkit.org>
561
562         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl (Part 1)
563         https://bugs.webkit.org/show_bug.cgi?id=82015
564
565         Reviewed by Kentaro Hara.
566
567         This patch moves DOMWindow.webkitNotifications from DOMWindow.idl to
568         DOMWindowNotificiations.idl in preparation for moving notificiations
569         into Modules.
570
571         A future patch will remove DOMWindow::resetNotificaitions in favor of
572         more general mechanisms.
573
574         * CMakeLists.txt:
575         * DerivedSources.make:
576         * DerivedSources.pri:
577         * GNUmakefile.list.am:
578         * Target.pri:
579         * WebCore.gypi:
580         * WebCore.vcproj/WebCore.vcproj:
581         * WebCore.xcodeproj/project.pbxproj:
582         * notifications/DOMWindowNotifications.cpp: Added.
583         (WebCore):
584         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
585         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
586         (WebCore::DOMWindowNotifications::from):
587         (WebCore::DOMWindowNotifications::webkitNotifications):
588         (WebCore::DOMWindowNotifications::reset):
589         (WebCore::DOMWindowNotifications::supplementName):
590         * notifications/DOMWindowNotifications.h: Added.
591         (WebCore):
592         (DOMWindowNotifications):
593         * notifications/DOMWindowNotifications.idl: Added.
594         * page/DOMWindow.cpp:
595         (WebCore::DOMWindow::~DOMWindow):
596         (WebCore):
597         (WebCore::DOMWindow::resetNotifications):
598         * page/DOMWindow.h:
599         (WebCore):
600         (DOMWindow):
601         * page/DOMWindow.idl:
602
603 2012-03-22  Li Yin  <li.yin@intel.com>
604
605         A client MUST close a connection if it detects a masked frame
606         https://bugs.webkit.org/show_bug.cgi?id=81361
607
608         Reviewed by Kent Tamura.
609
610         A server must not mask any frames that it sends to the client.
611         Change the test case, not mask the frames from server to client.
612         
613         Test: http/tests/websocket/tests/hybi/invalid-masked-frames-from-server.html
614
615         * Modules/websockets/WebSocketChannel.cpp:
616         (WebCore::WebSocketChannel::processFrame):
617
618 2012-03-22  Li Yin  <li.yin@intel.com>
619
620         [WebSocket]The minimal number of bytes MUST be used to encode the length
621         https://bugs.webkit.org/show_bug.cgi?id=81443
622
623         Reviewed by Kent Tamura.
624
625         From RFC 6455 http://tools.ietf.org/html/rfc6455#section-5.2
626         the minimal number of bytes MUST be used to encode the length
627         
628         New test case : http/tests/websocket/tests/hybi/invalid-encode-length.html
629
630         * Modules/websockets/WebSocketChannel.cpp:
631         (WebCore::WebSocketChannel::parseFrame):
632
633 2012-03-22  Adam Barth  <abarth@webkit.org>
634
635         Unreviewed.  Sort xcodeproj file.
636
637         * WebCore.xcodeproj/project.pbxproj:
638
639 2012-03-22  Mao Yujie  <yujie.mao@intel.com>
640
641         Implement strict testing criterion for callback function definition
642         https://bugs.webkit.org/show_bug.cgi?id=80005
643
644         Reviewed by Adam Barth.
645
646         Callback function should be defined as the function type instead of
647         the object type.
648
649         LayoutTest: fast/dom/MediaStream/argument-types.html
650
651         * bindings/scripts/CodeGeneratorJS.pm:
652         (GenerateParametersCheckExpression):
653         (GenerateParametersCheck):
654         * bindings/scripts/CodeGeneratorV8.pm:
655         (GenerateParametersCheckExpression):
656         (GenerateParametersCheck):
657
658 2012-03-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
659
660         Convert hasGrammarMarker to use Internals interface
661         https://bugs.webkit.org/show_bug.cgi?id=82004
662
663         Reviewed by Ryosuke Niwa.
664
665         Remove hasGrammarMarker functions, because it is able to work in the
666         cross-port way through the Internals interface.
667
668         No new tests, since we are improving here the infra-structure
669         for testing a specific method.
670
671         * testing/Internals.cpp:
672         (WebCore::Internals::hasGrammarMarker):
673         (WebCore):
674         * testing/Internals.h:
675         (Internals):
676         * testing/Internals.idl:
677
678 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
679
680         Add exception for the setter of "fftSize" in RealtimeAnalyserNode
681         https://bugs.webkit.org/show_bug.cgi?id=81748
682
683         Reviewed by Chris Rogers.
684
685         * Modules/webaudio/RealtimeAnalyser.cpp:
686         (WebCore::RealtimeAnalyser::setFftSize):
687         * Modules/webaudio/RealtimeAnalyser.h:
688         (RealtimeAnalyser):
689         * Modules/webaudio/RealtimeAnalyserNode.cpp:
690         (WebCore::RealtimeAnalyserNode::setFftSize):
691         (WebCore):
692         * Modules/webaudio/RealtimeAnalyserNode.h:
693         (RealtimeAnalyserNode):
694         * Modules/webaudio/RealtimeAnalyserNode.idl:
695
696 2012-03-22  Leo Yang  <leo.yang@torchmobile.com.cn>
697
698         [BlackBerry] Add HistoryItemViewState for BlackBerry port
699         https://bugs.webkit.org/show_bug.cgi?id=81867
700
701         Reviewed by Rob Buis.
702
703         HistoryItemViewState is the blackberry specific field of HistoryItem.
704         It's used to maintain the porting specific view state.
705
706         No new test because the port can't be built yet.
707
708         * history/HistoryItem.h:
709         (HistoryItem):
710         (WebCore::HistoryItem::viewState):
711
712 2012-03-22  SravanKumar Sandela  <ssandela@innominds.com>
713
714         Fieldset unexpectedly stretches to minimum intrinsic width
715         https://bugs.webkit.org/show_bug.cgi?id=79128
716
717         Reviewed by Julien Chaffraix.
718
719         Fieldset element width will now check if css width is specified explicitly
720         before stretching to minimum intrinsic width. The reference
721         can be taken from IE9, instead of FF(FF acknowledged the broken behavior). 
722
723         Tests: fast/forms/fieldset-width-nostretch-ifspecified-expected.html
724                fast/forms/fieldset-width-nostretch-ifspecified.html
725
726         * rendering/RenderFieldset.cpp:
727         (WebCore::RenderFieldset::stretchesToMinIntrinsicLogicalWidth):
728         (WebCore):
729         * rendering/RenderFieldset.h:
730         (RenderFieldset):
731
732 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
733
734         [chromium] Target surface should be damaged for a new layers even when layer had no changes
735         https://bugs.webkit.org/show_bug.cgi?id=81879
736
737         Reviewed by Adrienne Walker.
738
739         Unit test added to CCDamageTrackerTest.
740
741         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
742         (WebCore::CCDamageTracker::removeRectFromCurrentFrame): added a
743         boolean arg to detect if the layer is new on this update.
744
745         (WebCore::CCDamageTracker::extendDamageForLayer): added logic that
746         damages the target surface if the layer is new.
747
748         (WebCore::CCDamageTracker::extendDamageForRenderSurface): added
749         logic that damages the target surface if the descendant surface is
750         new; similar logic for the surface's replica if the replica is new.
751
752         * platform/graphics/chromium/cc/CCDamageTracker.h:
753         (CCDamageTracker):
754
755 2012-03-22  Charles Wei  <charles.wei@torchmobile.com.cn>
756
757         [BlackBerry] Need to store the meta info of a page in the ViewState of the history
758         https://bugs.webkit.org/show_bug.cgi?id=82000
759
760         Reviewed by Rob Buis.
761
762         Internally reviewed by George Staikos.
763
764         No new tests, BlackBerry porting doesn't build yet upstreaming.
765
766         * history/blackberry/HistoryItemViewState.h:
767         (WebCore::HistoryItemViewState::HistoryItemViewState):
768         (HistoryItemViewState):
769
770 2012-03-22  Adam Klein  <adamk@chromium.org>
771
772         [v8] wrapSlow methods should ref underlying object before creating wrapper
773         https://bugs.webkit.org/show_bug.cgi?id=81919
774
775         Reviewed by Adam Barth.
776
777         Because instatiating the wrapper can trigger GC, it's important that
778         wrapSlow() hold a reference to an object when creating a wrapper for
779         that object. Once the V8 wrapper exists and is associated with the object,
780         the reference can be handed off (via leakRef) to be handled by the normal
781         binding code logic (where derefObject is called if the handle is GCed).
782
783         Binding tests have been updated to reflect this change.
784
785         Testing the change directly is hard. Any test landed today would only
786         be a valid test until V8's logic about when to GC changes, at which point
787         it would become dead weight. So I don't think it's worth landing a
788         layout test along with this.
789
790         * bindings/scripts/CodeGeneratorV8.pm:
791         (GenerateHeader): Make wrapSlow take a PassRefPtr for RefCounted objects.
792         (GenerateToV8Converters): Get rid of the explicit call to ref() and
793         instead call leakRef() when adding a RefCounted object to the DOM map.
794         (GetPassRefPtrType): Helper to generate "PassRefPtr<T>", or "PassRefPtr<T<U> >" as appropriate.
795         * bindings/scripts/test/V8/V8Float64Array.cpp:
796         (WebCore::V8Float64Array::wrapSlow):
797         * bindings/scripts/test/V8/V8Float64Array.h:
798         (V8Float64Array):
799         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
800         (WebCore::V8TestActiveDOMObject::wrapSlow):
801         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
802         (V8TestActiveDOMObject):
803         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
804         (WebCore::V8TestCustomNamedGetter::wrapSlow):
805         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
806         (V8TestCustomNamedGetter):
807         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
808         (WebCore::V8TestEventConstructor::wrapSlow):
809         * bindings/scripts/test/V8/V8TestEventConstructor.h:
810         (V8TestEventConstructor):
811         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
812         (WebCore::V8TestEventTarget::wrapSlow):
813         * bindings/scripts/test/V8/V8TestEventTarget.h:
814         (V8TestEventTarget):
815         * bindings/scripts/test/V8/V8TestInterface.cpp:
816         (WebCore::V8TestInterface::wrapSlow):
817         * bindings/scripts/test/V8/V8TestInterface.h:
818         (V8TestInterface):
819         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
820         (WebCore::V8TestMediaQueryListListener::wrapSlow):
821         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
822         (V8TestMediaQueryListListener):
823         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
824         (WebCore::V8TestNamedConstructor::wrapSlow):
825         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
826         (V8TestNamedConstructor):
827         * bindings/scripts/test/V8/V8TestObj.cpp:
828         (WebCore::V8TestObj::wrapSlow):
829         * bindings/scripts/test/V8/V8TestObj.h:
830         (V8TestObj):
831         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
832         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
833         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
834         (V8TestSerializedScriptValueInterface):
835
836 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
837
838         [BlackBerry] add interface clearCredentials() and clearNeverRememberSites()
839         https://bugs.webkit.org/show_bug.cgi?id=81887
840
841         Reviewed by Rob Buis.
842
843         Fixed SQL issue when clearing table logins and table never_remember.
844
845         No new tests.
846
847         * platform/network/blackberry/CredentialBackingStore.cpp:
848         (WebCore::CredentialBackingStore::clearLogins):
849         (WebCore::CredentialBackingStore::clearNeverRemember):
850
851 2012-03-22  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
852
853         [BlackBerry] http authenticate dialog popup only once no matter authentication pass or fail
854         https://bugs.webkit.org/show_bug.cgi?id=80135
855
856         Reviewed by Rob Buis.
857
858         Modified the interface function authenticationChallenge() in class
859         PageClientBlackBerry, moved Credential from return value to the
860         function's reference parameter, and returned a bool to indicate if
861         user pressed Ok button or not.
862         Removed the logic which checks m_currentWebChallenge not null,
863         because we should challenge user again if the last provided credential
864         is not valid; also added the logic that will popup challenge
865         dialog again immediately if user press Ok buttton directly without
866         inputting anything.
867
868         No new tests.
869
870         * platform/blackberry/PageClientBlackBerry.h:
871         * platform/network/blackberry/NetworkJob.cpp:
872         (WebCore::NetworkJob::handleAuthHeader):
873         (WebCore::NetworkJob::sendRequestWithCredentials):
874
875 2012-03-22  Jason Liu  <jason.liu@torchmobile.com.cn>
876
877         [BlackBerry] Synchronize platform/network/blackberry
878         https://bugs.webkit.org/show_bug.cgi?id=81874
879
880         We changed a lot in these files locally. But the changes are not upstreamed.
881         It is not convenient to do the other upstreaming work based on these differences.
882         So upstream these changes.
883
884         Reviewed by Rob Buis.
885
886         No new tests. Just synchronize codes.
887
888         * platform/network/blackberry/NetworkJob.cpp:
889         (WebCore::NetworkJob::NetworkJob):
890         (WebCore::NetworkJob::initialize):
891         (WebCore::NetworkJob::handleNotifyHeaderReceived):
892         (WebCore::NetworkJob::handleNotifyDataReceived):
893         (WebCore::NetworkJob::sendResponseIfNeeded):
894         (WebCore::NetworkJob::sendRequestWithCredentials):
895         (WebCore::NetworkJob::handleAbout):
896         * platform/network/blackberry/NetworkJob.h:
897         (WebCore::NetworkJob::isError):
898         (NetworkJob):
899         * platform/network/blackberry/NetworkManager.cpp:
900         (WebCore::NetworkManager::startJob):
901         * platform/network/blackberry/ResourceRequest.h:
902         (WebCore::ResourceRequest::ResourceRequest):
903         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
904         (WebCore::platformTargetTypeForRequest):
905
906 2012-03-22  Tom Sepez  <tsepez@chromium.org>
907
908         XSS Auditor bypass via script tag src=data:, URLS.
909         https://bugs.webkit.org/show_bug.cgi?id=81948
910
911         Reviewed by Adam Barth.
912
913         This change fixes an XSSAuditor bypass wherby a script with a data: URL src
914         attribute could evade detection by using characters from the page to create
915         a snippet for matching not found in the URL's reflected vector.  This change 
916         terminates the snippet for matching earlier in these cases.
917         
918         Test: http/tests/security/xssAuditor/script-tag-with-source-data-url2.html
919
920         * html/parser/XSSAuditor.cpp:
921         (WebCore::XSSAuditor::decodedSnippetForAttribute):
922
923 2012-03-22  Dana Jansens  <danakj@chromium.org>
924
925         [chromium] Incorrect assert on animating opacity for a surface
926         https://bugs.webkit.org/show_bug.cgi?id=81994
927
928         Reviewed by Adrienne Walker.
929
930         Draw opacity and animation state match on the surface itself. A
931         surface with animating opacity always has an owning layer without
932         animation, as the surface does the animation for it.
933
934         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
935         (WebCore::CCLayerTreeHost::paintLayerContents):
936
937 2012-03-22  Dana Jansens  <danakj@chromium.org>
938
939         [chromium] Skip frames when checkerboarding an animation
940         https://bugs.webkit.org/show_bug.cgi?id=81716
941
942         Reviewed by Adrienne Walker.
943
944         This will stop drawing frames when prepareToDraw fails, if the draw is
945         not forced. The expected behaviour is outlined below by the unit tests.
946
947         When a draw fails, we:
948         1. Set m_needsRedraw to try again next vsync
949         2. Set m_needsCommit because we need more data from webkit to succeed
950         3. Set m_drawIfPossibleFailed. This allows us to try draw again within
951         the same vsync *if* a commit finishes during this time.
952
953         Unit test: CCSchedulerTest.RequestRedrawInsideFailedDraw
954                    CCSchedulerTest.RequestCommitInsideFailedDraw
955                    CCSchedulerTest.NoBeginFrameWhenDrawFails
956                    CCSchedulerStateMachineTest.TestFailedDrawSetsNeedsCommitAndDoesNotDrawAgain
957                    CCSchedulerStateMachineTest.TestSetNeedsRedrawDuringFailedDrawDoesNotRemoveNeedsRedraw
958                    CCSchedulerStateMachineTest.TestCommitAfterFailedDrawAllowsDrawInSameFrame
959                    CCSchedulerStateMachineTest.TestCommitAfterFailedAndSuccessfulDrawDoesNotAllowDrawInSameFrame
960                    CCSchedulerStateMachineTest.TestFailedDrawIsRetriedNextVSync
961
962         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
963         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
964         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
965         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
966         (CCLayerTreeHostImpl):
967         * platform/graphics/chromium/cc/CCScheduler.cpp:
968         (WebCore::CCScheduler::processScheduledActions):
969         * platform/graphics/chromium/cc/CCScheduler.h:
970         (CCSchedulerClient):
971         * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
972         (WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
973         (WebCore::CCSchedulerStateMachine::nextAction):
974         (WebCore::CCSchedulerStateMachine::updateState):
975         (WebCore::CCSchedulerStateMachine::didDrawIfPossibleCompleted):
976         (WebCore):
977         * platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
978         (CCSchedulerStateMachine):
979         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
980         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
981         (WebCore):
982         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
983         (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
984         * platform/graphics/chromium/cc/CCThreadProxy.h:
985         (CCThreadProxy):
986
987 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
988
989         [chromium] Force update of nonFastScrollableRegion if target CCLayerImpl has been freshly created.
990         https://bugs.webkit.org/show_bug.cgi?id=81968
991
992         Reviewed by Adrienne Walker.
993
994         Added unit test to existing tests for TreeSynchronizer.
995
996         When creating a new CCLayerImpl during tree synchronization, make sure we transfer the nonFastScrollableRegion as
997         the new CCLayerImpl will default to an empty region.
998
999         * platform/graphics/chromium/LayerChromium.h:
1000         (WebCore::LayerChromium::nonFastScrollableRegion):
1001         (WebCore::LayerChromium::setNonFastScrollableRegionChanged):
1002         * platform/graphics/chromium/TreeSynchronizer.cpp:
1003         (WebCore::TreeSynchronizer::reuseOrCreateCCLayerImpl):
1004
1005 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
1006
1007         [CMake] Unreviewed build fix after r111778.
1008
1009         * CMakeLists.txt: Replace ${JAVASCRIPTCORE_DIR}/wtf includes with
1010         ${WTF_DIR}/wtf ones.
1011
1012 2012-03-22  Tony Chang  <tony@chromium.org>
1013
1014         Unreviewed, fix chromium build after wtf move.
1015
1016         Only use newwtf, remove references to wtf.
1017
1018         * WebCore.gyp/WebCore.gyp:
1019
1020 2012-03-22  Benjamin Poulain  <bpoulain@apple.com>
1021
1022         Remove an obsolete comment regarding magic frames from Geolocation
1023         https://bugs.webkit.org/show_bug.cgi?id=81871
1024
1025         Reviewed by Alexey Proskuryakov.
1026
1027         Moving a frame into another document is no longer possible after r111361. The comment
1028         is now irrelevant.
1029
1030         * Modules/geolocation/Geolocation.cpp:
1031         (WebCore::Geolocation::stop):
1032
1033 2012-03-22  Csaba Osztrogonác  <ossy@webkit.org>
1034
1035         Actually move WTF files to their new home
1036         https://bugs.webkit.org/show_bug.cgi?id=81844
1037
1038         [Qt] Unreviewed buildfix after r111778.
1039
1040         * Target.pri:
1041
1042 2012-03-22  Kentaro Hara  <haraken@chromium.org>
1043
1044         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl
1045         https://bugs.webkit.org/show_bug.cgi?id=81852
1046
1047         Reviewed by Adam Barth.
1048
1049         run-bindings-tests output a lot of errors in TestSerializedScriptValueInterface.idl:
1050
1051         Use of uninitialized value in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2743.
1052         Use of uninitialized value $name in substitution (s///) at WebCore/bindings/scripts/CodeGenerator.pm line 119.
1053         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2969.
1054         Use of uninitialized value $type in string eq at WebCore/bindings/scripts/CodeGeneratorJS.pm line 2972.
1055         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 367.
1056         Use of uninitialized value $type in hash element at WebCore/bindings/scripts/CodeGenerator.pm line 368.
1057         ...
1058
1059         This is because [Constructor(...)] does not yet support [Optional] arguments.
1060         It just supports [Optional=DefaultIsUndefined] and [Optional=DefaultIsNullString] arguments:
1061         https://trac.webkit.org/wiki/WebKitIDL#Constructor
1062
1063         This patch replaces [Optional] with [Optional=DefaultIsUndefined]
1064         in TestSerializedScriptValueInterface.idl.
1065
1066         Test: bindings/scripts/test/TestSerializedScriptValueInterface.idl
1067
1068         * bindings/scripts/CodeGeneratorJS.pm:
1069         (GenerateConstructorDefinition):
1070         * bindings/scripts/CodeGeneratorV8.pm:
1071         (GenerateConstructorCallback):
1072         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1073         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
1074         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
1075         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1076         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
1077
1078 2012-03-22  Michal Mocny  <mmocny@google.com>
1079
1080         [chromium] LayerRendererChromium should use GpuMemoryAllocationChanged callback to explicitly manage framebuffer.
1081         https://bugs.webkit.org/show_bug.cgi?id=81823
1082
1083         Reviewed by Adrienne Walker.
1084
1085         New UnitTests: LayerRendererChromiumTest
1086
1087         * platform/graphics/chromium/LayerRendererChromium.cpp:
1088         (LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
1089         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::create):
1090         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::~LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
1091         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChanged):
1092         (WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::LayerRendererGpuMemoryAllocationChangedCallbackAdapter):
1093         (WebCore):
1094         (WebCore::LayerRendererChromium::LayerRendererChromium):
1095         (WebCore::LayerRendererChromium::initialize):
1096         (WebCore::LayerRendererChromium::~LayerRendererChromium):
1097         (WebCore::LayerRendererChromium::setVisible):
1098         (WebCore::LayerRendererChromium::swapBuffers):
1099         (WebCore::LayerRendererChromium::discardFramebuffer):
1100         (WebCore::LayerRendererChromium::ensureFramebuffer):
1101         * platform/graphics/chromium/LayerRendererChromium.h:
1102         (WebCore):
1103         (LayerRendererChromiumClient):
1104         (LayerRendererChromium):
1105         (WebCore::LayerRendererChromium::isFramebufferDiscarded):
1106         (ScopedEnsureFramebufferAllocation):
1107         (WebCore::ScopedEnsureFramebufferAllocation::ScopedEnsureFramebufferAllocation):
1108         (WebCore::ScopedEnsureFramebufferAllocation::~ScopedEnsureFramebufferAllocation):
1109         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1110         (WebCore::LayerRendererCapabilities::LayerRendererCapabilities):
1111         (LayerRendererCapabilities):
1112         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1113         (WebCore::CCLayerTreeHostImpl::setVisible):
1114         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1115         (CCLayerTreeHostImpl):
1116         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1117         (WebCore::CCSingleThreadProxy::compositeAndReadback):
1118         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1119         (WebCore::CCThreadProxy::compositeAndReadback):
1120
1121 2012-03-22  Adam Barth  <abarth@webkit.org>
1122
1123         ContainerNode::insertedIntoTree and removedFromTree use weak iteration patterns
1124         https://bugs.webkit.org/show_bug.cgi?id=80570
1125
1126         Reviewed by Ryosuke Niwa.
1127
1128         These functions use weak iteration patterns, but as far as I can tell,
1129         we never execute script below these functions.  This patch adds ASSERTs
1130         to help us avoid adding events in the future.
1131
1132         * dom/ContainerNode.cpp:
1133         (WebCore::ContainerNode::insertedIntoTree):
1134         (WebCore::ContainerNode::removedFromTree):
1135         * html/HTMLMediaElement.cpp:
1136         (WebCore::HTMLMediaElement::loadInternal):
1137             - There's a somewhat complex call chain from insertedIntoTree into
1138               HTMLMediaElement, and somewhat complex control flow below
1139               loadInternal that eventually leads to the BeforeLoad event being
1140               fired.  In studying this code, I don't see a way for the
1141               BeforeLoad event to be fired during insertedIntoTree, but I've
1142               added this assert here to make sure we don't call loadInternal
1143               when we're not supposed to dispatch events.  This ASSERT should
1144               help us catch these BeforeLoad errors more quickly.
1145
1146 2012-03-22  Raphael Kubo da Costa  <rakuco@FreeBSD.org>
1147
1148         Crash in fast/dom/navigator-detached-nocrash.html
1149         https://bugs.webkit.org/show_bug.cgi?id=81773
1150
1151         Reviewed by Adam Barth.
1152
1153         BatteryManager::create() blindly assumes the Navigator* it
1154         receives has a valid Frame, which is not always the case, as made
1155         evident by the crashing test.
1156
1157         Follow abarth's suggestion and just stop
1158         NavigatorBattery::webkitBattery() before it reaches the call to
1159         BatteryManager::create() if that's the case.
1160
1161         No new tests, covered by fast/dom/navigator-detached-nocrash.html.
1162
1163         * Modules/battery/NavigatorBattery.cpp:
1164         (WebCore::NavigatorBattery::webkitBattery):
1165
1166 2012-03-22  Emil A Eklund  <eae@chromium.org>
1167
1168         Unreviewed, add missing include statement for CSSValueList.h.
1169
1170         * css/CSSStyleSelector.h:
1171
1172 2012-03-22  Tony Chang  <tony@chromium.org>
1173
1174         flexbox flexing implementation should match the spec
1175         https://bugs.webkit.org/show_bug.cgi?id=70796
1176
1177         Reviewed by Ojan Vafai.
1178
1179         Match the algorithm in the spec. Handling min/max constraints are slightly improved.
1180         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
1181
1182         New test cases in css3/flexbox/flex-algorithm-min-max.html.
1183
1184         * rendering/RenderFlexibleBox.cpp:
1185         (WebCore::adjustFlexSizeForMinAndMax): Step 5 of resolving flexible lengths.
1186         (WebCore):
1187         (WebCore::RenderFlexibleBox::Violation::Violation):
1188         (RenderFlexibleBox::Violation):
1189         (WebCore::RenderFlexibleBox::freezeViolations): Used by step 6.
1190         (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
1191         * rendering/RenderFlexibleBox.h:
1192
1193 2012-03-22  Emil A Eklund  <eae@chromium.org>
1194
1195         Unreviewed, add missing import.
1196
1197         * rendering/RenderThemeMac.mm:
1198
1199 2012-03-22  Anders Carlsson  <andersca@apple.com>
1200
1201         ASSERT(!needsLayout) in RenderView.cpp when visiting http://www.panic.com/blog/
1202         https://bugs.webkit.org/show_bug.cgi?id=81953
1203         <rdar://problem/11086998>
1204
1205         Reviewed by Sam Weinig.
1206
1207         If a page ends up creating CATiledLayers, CA transactions can be committed outside of the normal
1208         CA run loop observer, so we can't call setNeedsDisplay on tile cache layers directly because then
1209         we'll end up calling into painting code before all the layers have been flushed.
1210
1211         Fix this by adding a list of dirty rects to platformCALayerDidCreateTiles and change GraphicsLayerCA to
1212         mark them as dirty. This ensures that any CA transaction commits won't cause newly added layers to be painted.
1213
1214         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
1215         (WebCore::LayerClient::platformCALayerDidCreateTiles):
1216         * platform/graphics/ca/GraphicsLayerCA.cpp:
1217         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
1218         * platform/graphics/ca/GraphicsLayerCA.h:
1219         (GraphicsLayerCA):
1220         * platform/graphics/ca/PlatformCALayerClient.h:
1221         (PlatformCALayerClient):
1222         * platform/graphics/ca/mac/TileCache.mm:
1223         (WebCore::TileCache::setScale):
1224         (WebCore::TileCache::revalidateTiles):
1225         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
1226         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDidCreateTiles):
1227
1228 2012-03-19  Robert Hogan  <robert@webkit.org>
1229
1230         Text should overflow when list item height set to 0
1231         https://bugs.webkit.org/show_bug.cgi?id=78726
1232
1233         Reviewed by Julien Chaffraix.
1234
1235         Tests: css2.1/20110323/height-applies-to-010a-expected.html
1236                fast/css/heightless-list-item-expected.html
1237                fast/css/heightless-list-item.html
1238
1239         * rendering/RenderListItem.cpp:
1240         (WebCore::RenderListItem::paint):
1241            If the list item has height:0, only paint it if the list item allows any block or inline content 
1242            to overflow unclipped. The zero-height check is a shortcut to avoid unnecessary painting and 
1243            this seems to be the only case where there's something to do.
1244
1245 2012-03-22  Dave Michael  <dmichael@chromium.org>
1246
1247         HTMLPluginElement is not destroyed on reload or navigation if getNPObject is called
1248         https://bugs.webkit.org/show_bug.cgi?id=80428
1249
1250         Reviewed by Eric Seidel.
1251
1252         Make HTMLPluginElement release its m_NPObject in detach() to break a
1253         reference-counting cycle that happens on reload or navigation. With this
1254         change, HTMLPlugInElement::removedFromDocument is unnecessary, so it
1255         was removed. Note that Releasing m_NPObject does not result in a call to
1256         the plugin; it simply releases a reference count on the wrapper object
1257         for this HTMLPlugInElement. (The plugin's NPP_Deallocate is invoked
1258         when the render tree is destroyed, when PluginView calls
1259         PluginPackage::unload.) Thus, it is safe to release m_NPObject in
1260         detach, because it can not result in layout or style changes.
1261
1262         Also added numberOfLiveNodes() and numberOfLiveDocuments() to
1263         window.internals to enable testing.
1264
1265         Test: plugins/netscape-dom-access-and-reload.html
1266
1267         * WebCore.exp.in:
1268         * html/HTMLPlugInElement.cpp:
1269         (WebCore::HTMLPlugInElement::detach):
1270         * html/HTMLPlugInElement.h:
1271         (HTMLPlugInElement):
1272         * testing/Internals.cpp:
1273         (WebCore::Internals::numberOfLiveDocuments):
1274         (WebCore::Internals::numberOfLiveNodes):
1275         (WebCore):
1276         * testing/Internals.h:
1277         (Internals):
1278         * testing/Internals.idl:
1279
1280 2012-03-22  Shawn Singh  <shawnsingh@chromium.org>
1281
1282         [chromium] Make CCDamageTracker robust to empty layer lists
1283         https://bugs.webkit.org/show_bug.cgi?id=81831
1284
1285         Reviewed by Adrienne Walker.
1286
1287         Added a unit test in CCDamageTrackerTest that causes a crash in
1288         the old code. With this patch applied, the crash will not occur.
1289         In theory, that crash should never occur anyway, unless there is a
1290         bug outside the damage tracker, but for robustness it's
1291         appropriate to handle it properly.
1292
1293         In addition to this fix, performed some trivial maintenance on the
1294         damage tracker code.
1295
1296         * platform/graphics/chromium/cc/CCDamageTracker.cpp:
1297         (WebCore::CCDamageTracker::updateDamageTrackingState): removed
1298         unclean code that accessed the targetSurface to get necessary
1299         information. Instead, we now pass those args through the damage
1300         tracker's API.
1301
1302         * platform/graphics/chromium/cc/CCDamageTracker.h:
1303         (CCDamageTracker): modified args passed to damage tracker on update.
1304
1305         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1306         (WebCore::CCLayerTreeHostImpl::trackDamageForAllSurfaces):
1307         modified args passed to damage tracker on update.
1308
1309 2012-03-22  Julien Chaffraix  <jchaffraix@webkit.org>
1310
1311         Enable style sharing for elements with a style attribute
1312         https://bugs.webkit.org/show_bug.cgi?id=81523
1313
1314         Reviewed by Antti Koivisto.
1315
1316         Memory improvement change only.
1317
1318         Overall, this is a performance wash (some benchmarks may regress a bit due to the increase in time taken
1319         by CSSStyleSelector::locateSharedStyle as we try more nodes, others increase their performance due to style sharing).
1320
1321         Instrumenting our style sharing, this should give us some nice memory shavings on some benchmarks:
1322         - HTML5 isn't impacted as it doesn't use much inline style
1323         - page cyclers' intl1 showed a 6% increase in style sharing.
1324
1325         * css/CSSStyleSelector.cpp:
1326         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1327         This method now handles inline style like presentation attributes on the element.
1328
1329         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
1330         (WebCore::CSSStyleSelector::locateSharedStyle):
1331         Don't bail out for an element with an inline style declaration.
1332
1333         (WebCore::CSSStyleSelector::stylesEqual):
1334         Generalized attributeStylesEqual to share the logic between attribute and
1335         inline style property set. This means that attribute checks are actually
1336         doing a little extra more work but that didn't impact our benchmarks.
1337
1338 2012-03-22  Kevin Ollivier  <kevino@theolliviers.com>
1339
1340         [wx] Unreviewed. WebDOM build fix after array type changes.
1341
1342         * bindings/scripts/CodeGeneratorCPP.pm:
1343         (ShouldSkipType):
1344
1345 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
1346
1347         Web Inspector: text gutter decorations should move upon edits.
1348         https://bugs.webkit.org/show_bug.cgi?id=81932
1349
1350         Reviewed by Vsevolod Vlasov.
1351
1352         Decorations set by the line number now shift as editing inserts / removes lines.
1353
1354         * inspector/front-end/TextViewer.js:
1355         (WebInspector.TextViewer.prototype._syncLineHeight):
1356         (WebInspector.TextEditorGutterPanel):
1357         (WebInspector.TextEditorGutterPanel.prototype.textChanged):
1358         (WebInspector.TextEditorGutterPanel.prototype.syncClientHeight):
1359         (WebInspector.TextEditorGutterPanel.prototype.addDecoration):
1360         (WebInspector.TextEditorGutterPanel.prototype.removeDecoration):
1361
1362 2012-03-21  Robert Hogan  <robert@webkit.org>
1363
1364         CSS 2.1 failure: fixed-table-layout-006 fails
1365         https://bugs.webkit.org/show_bug.cgi?id=78412
1366
1367         Reviewed by Julien Chaffraix.
1368
1369         Tests: css2.1/20110323/fixed-table-layout-006.htm
1370                fast/css/fixed-table-layout-cell-padding.htm
1371
1372         In fixed tables, positive width specified on a column should include borders and padding.
1373         See the thread at http://lists.w3.org/Archives/Public/www-style/2011Oct/0502.html. The discussion
1374         there resulted in a whole new set of tests for section 17.5.2.1 in the CSS 2.1 spec. See 
1375         http://test.csswg.org/harness/test/CSS21_DEV/section/17.5.2.1/. This patch allows WebKit
1376         to pass all of them, and all tests for the 17.5.2.1 section as a whole. I'll land them all separately.
1377     
1378         * rendering/FixedTableLayout.cpp:
1379         (WebCore::FixedTableLayout::calcWidthArray): Include border width and cell padding in the width of the column.
1380          Note that borderAndPaddingLogicalWidth() returns the border width for separate and collapsed borders as appropriate.
1381
1382 2012-03-22  Simon Fraser  <simon.fraser@apple.com>
1383
1384         Factor compositing layer updates after scroll into a new method
1385         https://bugs.webkit.org/show_bug.cgi?id=81943
1386
1387         Reviewed by Dean Jackson.
1388
1389         Move some code that updates compositing layers after scrolling
1390         into its own method, for cleanliness.
1391
1392         * rendering/RenderLayer.cpp:
1393         (WebCore::RenderLayer::scrollTo):
1394         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
1395         (WebCore):
1396         * rendering/RenderLayer.h:
1397         (RenderLayer):
1398
1399 2012-03-22  Gavin Barraclough  <barraclough@apple.com>
1400
1401         Add JSValue::isFunction
1402         https://bugs.webkit.org/show_bug.cgi?id=81935
1403
1404         Reviewed by Geoff Garen.
1405
1406         This would be useful in the WebCore bindings code.
1407         Also, remove asFunction, replace with jsCast<JSFunction*>.
1408
1409         * bindings/js/JSInjectedScriptHostCustom.cpp:
1410         (WebCore::JSInjectedScriptHost::functionDetails):
1411         * bindings/js/ScriptCallStackFactory.cpp:
1412         (WebCore::createScriptCallStack):
1413
1414 2012-03-22  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1415
1416         TiledBackingStore: Fix test regressions that appeared with r111560.
1417         https://bugs.webkit.org/show_bug.cgi?id=81519
1418
1419         Reviewed by Kenneth Rohde Christiansen.
1420
1421         The visible rect wasn't intersected with the contents rect anymore which
1422         could lead to an astronomical layer size to check for intersecting tiles.
1423
1424         Add a visibleContentsRect that doesn't do the conversion and use it
1425         in visibleAreaIsCovered.
1426
1427         * platform/graphics/TiledBackingStore.cpp:
1428         (WebCore::TiledBackingStore::visibleContentsRect):
1429         (WebCore):
1430         (WebCore::TiledBackingStore::visibleRect):
1431         (WebCore::TiledBackingStore::visibleAreaIsCovered):
1432         * platform/graphics/TiledBackingStore.h:
1433         (TiledBackingStore):
1434
1435 2012-03-22  Joe Thomas  <joethomas@motorola.com>
1436
1437         Make Length Calculation functions non-inline
1438         https://bugs.webkit.org/show_bug.cgi?id=81733
1439
1440         Currently length calculation functions in LengthFunctions.h are inline. These functions are pretty big to be inline.
1441         And these functions are expected to grow again when new length units will be introduced in bug 27160.
1442
1443         A decent rule of thumb is to not inline a function if it is more than 10 lines long. Also it's typically not cost effective to inline
1444         functions with loops or switch statements. (Reference: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Inline_Functions).
1445
1446         Ran PerformanceTests/Parser/html5-full-render.html on Mac Snow-Leopard with and without the patch and did not see much performance difference.
1447
1448         Reviewed by Antti Koivisto.
1449
1450         * CMakeLists.txt:
1451         * GNUmakefile.list.am:
1452         * Target.pri:
1453         * WebCore.gypi:
1454         * WebCore.vcproj/WebCore.vcproj:
1455         * WebCore.xcodeproj/project.pbxproj:
1456         * css/LengthFunctions.cpp: Added.
1457         (WebCore):
1458         (WebCore::miminumValueForLength):
1459         (WebCore::valueForLength):
1460         (WebCore::floatValueForLength):
1461         * css/LengthFunctions.h:
1462         (WebCore):
1463
1464 2012-03-22  Alexis Menard  <alexis.menard@openbossa.org>
1465
1466         Increase code sharing between CSSParser and CSSPropertyLonghand.
1467         https://bugs.webkit.org/show_bug.cgi?id=81587
1468
1469         Reviewed by Antti Koivisto.
1470
1471         Expose the longhands declaration for a given shorthand in CSSPropertyLonghand and
1472         make CSSParser use them. It will make the declaration of longhands in one place only.
1473         Remove the map of CSSPropertyLonghand and replace it by a regular switch/case.
1474         The map doesn't bring much here and it's cleaner and faster to use the switch.
1475         It also shows a little performance improvement in CSS/CSSPropertySetterGetter.html.
1476
1477         No new tests : no behavior change.
1478
1479         * css/CSSParser.cpp:
1480         (WebCore::CSSParser::parseValue):
1481         (WebCore::CSSParser::parseAnimationShorthand):
1482         (WebCore::CSSParser::parseTransitionShorthand):
1483         (WebCore::CSSParser::parseShorthand):
1484         Modify the prototype of this function to directly use the CSSPropertyLonghand.
1485         * css/CSSParser.h:
1486         (WebCore):
1487         (CSSParser):
1488         * css/CSSPropertyLonghand.cpp:
1489         (WebCore):
1490         (WebCore::backgroundLonghand):
1491         (WebCore::backgroundPositionLonghand):
1492         (WebCore::backgroundRepeatLonghand):
1493         (WebCore::borderLonghand):
1494         (WebCore::borderBottomLonghand):
1495         (WebCore::borderColorLonghand):
1496         (WebCore::borderImageLonghand):
1497         (WebCore::borderLeftLonghand):
1498         (WebCore::borderRadiusLonghand):
1499         (WebCore::borderRightLonghand):
1500         (WebCore::borderSpacingLonghand):
1501         (WebCore::borderStyleLonghand):
1502         (WebCore::borderTopLonghand):
1503         (WebCore::borderWidthLonghand):
1504         (WebCore::listStyleLonghand):
1505         (WebCore::fontLonghand):
1506         (WebCore::marginLonghand):
1507         (WebCore::outlineLonghand):
1508         (WebCore::overflowLonghand):
1509         (WebCore::paddingLonghand):
1510         (WebCore::webkitAnimationLonghand):
1511         (WebCore::webkitBorderAfterLonghand):
1512         (WebCore::webkitBorderBeforeLonghand):
1513         (WebCore::webkitBorderEndLonghand):
1514         (WebCore::webkitBorderStartLonghand):
1515         (WebCore::webkitColumnsLonghand):
1516         (WebCore::webkitColumnRuleLonghand):
1517         (WebCore::webkitFlexFlowLonghand):
1518         (WebCore::webkitMarginCollapseLonghand):
1519         (WebCore::webkitMarqueeLonghand):
1520         (WebCore::webkitMaskLonghand):
1521         (WebCore::webkitMaskPositionLonghand):
1522         (WebCore::webkitMaskRepeatLonghand):
1523         (WebCore::webkitTextEmphasisLonghand):
1524         (WebCore::webkitTextStrokeLonghand):
1525         (WebCore::webkitTransitionLonghand):
1526         (WebCore::webkitTransformOriginLonghand):
1527         (WebCore::webkitWrapLonghand):
1528         (WebCore::longhandForProperty):
1529         * css/CSSPropertyLonghand.h:
1530         (WebCore):
1531
1532 2012-03-22  Emil A Eklund  <eae@chromium.org>
1533
1534         Unreviewed, touching file to force bots to pick up CSS_SHADERS flag change. 
1535
1536         * css/CSSStyleSelector.h:
1537         (CSSStyleSelector):
1538
1539 2012-03-22  Xingnan Wang  <xingnan.wang@intel.com>
1540
1541         ReverbConvolver::latencyFrames() should return 0.
1542         https://bugs.webkit.org/show_bug.cgi?id=81806
1543
1544         Reviewed by Chris Rogers.
1545
1546         * platform/audio/ReverbConvolver.cpp:
1547         (WebCore::ReverbConvolver::latencyFrames):
1548
1549 2012-03-22  Tony Chang  <tony@chromium.org>
1550
1551         refactor flexbox in preparation for flex-line-pack
1552         https://bugs.webkit.org/show_bug.cgi?id=81843
1553
1554         Reviewed by Ojan Vafai.
1555
1556         Replace WrapReverseContext with a vector of LineContexts that contain
1557         the same information, plus values needed for flex-align.
1558
1559         alignChildren has been moved to after all the lines have been
1560         positioned. We want to align children after flex-line-pack has changed
1561         the size of each line to avoid unnecessary layouts.
1562
1563         Take 2: Remove the assert. If there are no children, then there are no
1564         flex lines. Instead, assert that child is not null.
1565
1566         No new tests, just refactoring.
1567
1568         * rendering/RenderFlexibleBox.cpp:
1569         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
1570         holds information needed for wrap-reverse and aligning children.
1571         (RenderFlexibleBox::LineContext):
1572         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
1573         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
1574         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
1575         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
1576         * rendering/RenderFlexibleBox.h:
1577
1578 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1579
1580         Event dispatching in XMLHttpRequestProgressEventThrottle should go through XMLHttpRequestProgressEventThrottle::dispatchEvent
1581         https://bugs.webkit.org/show_bug.cgi?id=46743
1582
1583         Reviewed by Julien Chaffraix
1584         Based on original patch by Anton D'Auria
1585
1586         In preparation for platform-specific queuing of XMLHttpRequest events,
1587         this patch changes all calls to m_target->dispatchEvent to
1588         XMLHttpRequestProgressEventThrottle::dispatchEvent.
1589         Currently, we queue only one progress event on suspend() if we have
1590         throttled progress events. We should be able to queue all XHR events
1591         that can be generated after suspend(), if the platform network layer
1592         continues to receive data.
1593         XMLHttpRequest uses XMLHttpRequestProgressEventThrottle to dispatch only
1594         download events, so this doesn't change behavior of upload events, which
1595         aren't throttled or queued.
1596
1597         * xml/XMLHttpRequest.cpp:
1598         (WebCore::XMLHttpRequest::callReadyStateChangeListener):
1599         * xml/XMLHttpRequestProgressEventThrottle.cpp:
1600         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
1601         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent):
1602         (WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
1603         (WebCore::XMLHttpRequestProgressEventThrottle::dispatchPausedEvent):
1604         (WebCore::XMLHttpRequestProgressEventThrottle::fired):
1605         * xml/XMLHttpRequestProgressEventThrottle.h:
1606         (XMLHttpRequestProgressEventThrottle):
1607
1608 2012-03-22  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
1609
1610         [EFL] Map BackSpace key code to Unicode value
1611         https://bugs.webkit.org/show_bug.cgi?id=81130
1612
1613         Reviewed by Gustavo Noronha Silva.
1614
1615         Test: fast/events/backspace-navigates-back.html
1616
1617         * platform/efl/EflKeyboardUtilities.cpp:
1618         (WebCore::createKeyMap): Map BackSpace to Unicode value
1619
1620 2012-03-22  Abhishek Arya  <inferno@chromium.org>
1621
1622         Incorrect beforeChild parent calculation in RenderRubyBase::moveChildren.
1623         https://bugs.webkit.org/show_bug.cgi?id=80297
1624
1625         Reviewed by Julien Chaffraix.
1626
1627         beforeChild might share the same anonymous block parent with other previous
1628         siblings. Before moving the children across ruby bases, we need to make sure
1629         to split the tree across the beforeChild correctly.
1630
1631         Test: fast/ruby/ruby-text-before-child-split.html
1632
1633         * rendering/RenderRubyBase.cpp:
1634         (WebCore::RenderRubyBase::moveChildren):
1635
1636 2012-03-22  Kristóf Kosztyó  <kkristof@inf.u-szeged.hu>
1637
1638         [Qt] Fix Qt minimal build after r111692
1639
1640         Reviewed by Csaba Osztrogonác.
1641
1642         * bindings/js/JSScriptProfileNodeCustom.cpp:
1643
1644 2012-03-22  Adrienne Walker  <enne@google.com>
1645
1646         [chromium] Fix scrollbar layers holding onto invalid textures after lost context
1647         https://bugs.webkit.org/show_bug.cgi?id=81841
1648
1649         Reviewed by James Robinson.
1650
1651         Unit test: CCLayerTreeHostImplTest.scrollbarLayerLostContext
1652
1653         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1654         (WebCore::CCScrollbarLayerImpl::willDraw):
1655
1656 2012-03-22  Philippe Normand  <pnormand@igalia.com>
1657
1658         [GTK] ASSERT bug in WebAudio (AudioFileReader)
1659         https://bugs.webkit.org/show_bug.cgi?id=81777
1660
1661         Reviewed by Martin Robinson.
1662
1663         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
1664         (WebCore::AudioFileReader::decodeAudioForBusCreation): Don't steal
1665         the GstBus floating reference.
1666         (WebCore::AudioFileReader::createBus): Ditto.
1667
1668 2012-03-22  Ilya Tikhonovsky  <loislo@chromium.org>
1669
1670         Unreviewed: Web Inspector: fix syntax error in text.
1671
1672         * English.lproj/localizedStrings.js:
1673         * inspector/front-end/HeapSnapshotProxy.js:
1674         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
1675
1676 2012-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
1677
1678         Unreviewed, rolling out r111688.
1679         http://trac.webkit.org/changeset/111688
1680         https://bugs.webkit.org/show_bug.cgi?id=81912
1681
1682         "Heap profiler test fails" (Requested by yurys on #webkit).
1683
1684         * inspector/front-end/HeapSnapshot.js:
1685         (WebInspector.HeapSnapshot.prototype._buildRetainers):
1686
1687 2012-03-22  Dana Jansens  <danakj@chromium.org>
1688
1689         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
1690         https://bugs.webkit.org/show_bug.cgi?id=81437
1691
1692         Reviewed by Adrienne Walker.
1693
1694         Split CCLayerTreeHostImpl::drawLayers() into two phases:
1695         prepareToDraw() and drawLayers().
1696
1697         When calculating a RenderPass, and we checkerboard a quad on a
1698         layer, bubble this info back up to CCLayerTreeHostImpl. If the
1699         layer is transforming in an animation, then abort the prepareToDraw()
1700         phase and cause it to return false back to the thread proxy.
1701
1702         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
1703
1704         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
1705         (WebCore::CCLayerImpl::appendQuads):
1706         * platform/graphics/chromium/cc/CCLayerImpl.h:
1707         (CCLayerImpl):
1708         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1709         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1710         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
1711         (WebCore):
1712         (WebCore::CCLayerTreeHostImpl::drawLayers):
1713         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1714         (CCLayerTreeHostImpl):
1715         (FrameData):
1716         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1717         (WebCore::CCQuadCuller::append):
1718         * platform/graphics/chromium/cc/CCQuadCuller.h:
1719         (CCQuadCuller):
1720         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1721         (WebCore::CCRenderPass::appendQuadsForLayer):
1722         * platform/graphics/chromium/cc/CCRenderPass.h:
1723         (CCRenderPass):
1724         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
1725         (WebCore::CCScrollbarLayerImpl::appendQuads):
1726         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
1727         (CCScrollbarLayerImpl):
1728         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1729         (WebCore::CCSingleThreadProxy::doComposite):
1730         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
1731         (WebCore::CCSolidColorLayerImpl::appendQuads):
1732         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
1733         (CCSolidColorLayerImpl):
1734         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
1735         (WebCore::CCTextureLayerImpl::appendQuads):
1736         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
1737         (CCTextureLayerImpl):
1738         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1739         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
1740         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
1741         (WebCore::CCTiledLayerImpl::appendQuads):
1742         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
1743         (CCTiledLayerImpl):
1744         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1745         (WebCore::CCVideoLayerImpl::appendQuads):
1746         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
1747         (CCVideoLayerImpl):
1748
1749 2012-03-22  Levi Weintraub  <leviw@chromium.org>
1750
1751         Correct LayoutUnit usage in Accessibility code
1752         https://bugs.webkit.org/show_bug.cgi?id=81789
1753
1754         Reviewed by Eric Seidel.
1755
1756         Reverting Accessibility hit testing code back to integers. Accessibility hit tests originate from
1757         the embedder and don't accumulate offsets, so we get nothing from using LayoutUnits, and needlessly
1758         expose them to the embedder.
1759
1760         No new tests. No change in behavior.
1761
1762         * accessibility/AccessibilityListBox.cpp:
1763         (WebCore::AccessibilityListBox::elementAccessibilityHitTest): See above.
1764         * accessibility/AccessibilityListBox.h:
1765         (AccessibilityListBox):
1766         * accessibility/AccessibilityObject.cpp:
1767         (WebCore::AccessibilityObject::clickPoint): This value is only ever used to display a context menu,
1768         which is always done with integer coordinates.
1769         (WebCore::AccessibilityObject::boundingBoxForQuads): This is a bounding box built from floats. We
1770         don't pixel snap floats, so we return an integer bounding box.
1771         (WebCore::AccessibilityObject::elementAccessibilityHitTest): See above.
1772         (WebCore::AccessibilityObject::scrollToMakeVisible): Pixel snapping the bounding box and simplifying
1773         up the code to position it at (0,0).
1774         * accessibility/AccessibilityObject.h:
1775         (WebCore::AccessibilityObject::accessibilityHitTest): See above.
1776         (AccessibilityObject):
1777         (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect): Convenience method for embedder callers.
1778         * accessibility/AccessibilityRenderObject.cpp:
1779         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): The point passed in here is comes from
1780         screen coordinates and originates in embedder code. Reverting it to take an integer.
1781         (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest): See above.
1782         (WebCore::AccessibilityRenderObject::accessibilityHitTest): See above.
1783         * accessibility/AccessibilityRenderObject.h:
1784         (AccessibilityRenderObject):
1785         * accessibility/AccessibilityScrollView.cpp:
1786         (WebCore::AccessibilityScrollView::accessibilityHitTest): See above.
1787         * accessibility/AccessibilityScrollView.h:
1788         (AccessibilityScrollView):
1789         * accessibility/AccessibilitySlider.cpp:
1790         (WebCore::AccessibilitySlider::elementAccessibilityHitTest): See above.
1791         * accessibility/AccessibilitySlider.h:
1792         (AccessibilitySlider):
1793
1794 2012-03-21  Ilya Tikhonovsky  <loislo@chromium.org>
1795
1796         Web Inspector: HeapProfiler: Heap snapshot worker has to report the errors to the front-end
1797         https://bugs.webkit.org/show_bug.cgi?id=81804
1798
1799         Sometimes the worker process of HeapSnapshot does some wrong thing and throw an Exception.
1800         At this momemnt we have no way to see the error in the front-end.
1801
1802         Reviewed by Yury Semikhatsky.
1803
1804         * English.lproj/localizedStrings.js:
1805         * inspector/front-end/HeapSnapshotProxy.js: check the exception field and dump it into front-end's console.
1806         (WebInspector.HeapSnapshotWorker.prototype._messageReceived):
1807         * inspector/front-end/HeapSnapshotWorkerDispatcher.js: catch the exception and transfer it's text to requester's side.
1808         (WebInspector.HeapSnapshotWorkerDispatcher.prototype.dispatchMessage):
1809
1810 2012-03-22  Carlos Garcia Campos  <cgarcia@bb-webkit-rel-64.local.igalia.com>
1811
1812         [GTK] Use the angle-bracket form to include wtf headers
1813         https://bugs.webkit.org/show_bug.cgi?id=81884
1814
1815         Reviewed by Eric Seidel.
1816
1817         Use #include <wtf/foo> instead of #include "foo".
1818
1819         * platform/graphics/freetype/FontPlatformData.h:
1820         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1821         * platform/gtk/DataObjectGtk.h:
1822         * platform/network/ResourceHandleInternal.h:
1823         * platform/network/soup/SocketStreamHandleSoup.cpp:
1824
1825 2012-03-22  Alexander Pavlov  <apavlov@chromium.org>
1826
1827         Web Inspector: Case of the elements of the xml document should be shown as it is in the console
1828         https://bugs.webkit.org/show_bug.cgi?id=81902
1829
1830         When registering a detached root, DOMAgent always presumes it is a node,
1831         while it can also be a document.
1832
1833         Reviewed by Vsevolod Vlasov.
1834
1835         Test: inspector/console/console-xml-document.html
1836
1837         * inspector/front-end/ConsoleMessage.js:
1838         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1839         * inspector/front-end/DOMAgent.js:
1840         (WebInspector.DOMAgent.prototype._setDetachedRoot):
1841
1842 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
1843
1844         Web Inspector: Introduce ScriptBound/ScriptUnbound events in ScriptMapping.
1845         https://bugs.webkit.org/show_bug.cgi?id=81904
1846
1847         Reviewed by Pavel Feldman.
1848
1849         This is another step on the way to cleaner BreakpointManager logic.
1850         Here we extract ScriptBound/ScriptUnbound events from UISourceCodeListChanged event.
1851         This allows us to handle script-uiSourceCode binding separately from
1852         uiSourceCode creation/deletion and to handle unbinding that was not
1853         possible at all before.
1854
1855         * inspector/front-end/CompilerScriptMapping.js:
1856         (WebInspector.CompilerScriptMapping.prototype._uiSourceCodesForSourceMap):
1857         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
1858         (WebInspector.CompilerScriptMapping.prototype.addScript):
1859         (WebInspector.CompilerScriptMapping.prototype.reset):
1860         * inspector/front-end/ResourceScriptMapping.js:
1861         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
1862         * inspector/front-end/ScriptMapping.js:
1863         (WebInspector.MainScriptMapping):
1864         (WebInspector.MainScriptMapping.prototype._updateLiveLocation):
1865         (WebInspector.MainScriptMapping.prototype._handleUISourceCodeListChanged):
1866         (WebInspector.MainScriptMapping.prototype._handleScriptBound):
1867         (WebInspector.MainScriptMapping.prototype._handleScriptUnbound):
1868         * inspector/front-end/SnippetsModel.js:
1869         (WebInspector.SnippetsScriptMapping.prototype.addScript.get this):
1870         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
1871         (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
1872         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
1873         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
1874         (WebInspector.SnippetsScriptMapping.prototype.reset):
1875
1876 2012-03-22  Vineet Chaudhary  <rgf748@motorola.com>
1877
1878         https://bugs.webkit.org/show_bug.cgi?id=81893
1879         Remove custom bindings form ScriptProfileNode.idl of attribute type Array.
1880
1881         Reviewed by Kentaro Hara.
1882
1883         Replace [CustomGetter] Array with sequence<ScriptProfileNode>.
1884         To remove the custom bindings code.
1885
1886         Test: No new tests. LayoutTests/fast/profiler/* test are enough for this.
1887
1888         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed custom function.
1889         (WebCore::JSScriptProfileNode::callUID):
1890         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp: Removed custom function.
1891         (WebCore):
1892         * inspector/ScriptProfileNode.idl: Replaced Array with sequence<ScriptProfileNode>.
1893
1894 2012-03-22  Andrey Kosyakov  <caseq@chromium.org>
1895
1896         Web Inspector: only update timeline overview categories strips when these are visible
1897         https://bugs.webkit.org/show_bug.cgi?id=81903
1898
1899         Reviewed by Pavel Feldman.
1900
1901         - factor out category strips update into a separate method;
1902         - only invoke it when "Timeline" overview mode is selected.
1903
1904         * inspector/front-end/TimelineOverviewPane.js:
1905         (WebInspector.TimelineOverviewPane.prototype._showTimelines):
1906         (WebInspector.TimelineOverviewPane.prototype.update):
1907         (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
1908
1909 2012-03-22  Levi Weintraub  <leviw@chromium.org>
1910
1911         Update LayoutUnit usage in FrameSelection
1912         https://bugs.webkit.org/show_bug.cgi?id=81754
1913
1914         Reviewed by Eric Seidel.
1915
1916         FrameSelection stores its caret and repaint bounds in absolute coordinates. Absolute coordinates
1917         we treat as pixel values, so this patch changes these values to integers. Sub-pixel precision
1918         will still be used when these coordinates are passed down and used locally.
1919
1920         No new tests. No change in behavior.
1921
1922         * editing/FrameSelection.cpp:
1923         (WebCore::absoluteCaretY): Uses absolute coordinates, which are ints.
1924         (WebCore::FrameSelection::modify): Uses absolute coordinates to handle vertical selection
1925         modification. Sub-pixel precision will be used when these values are converted to local ones.
1926         (WebCore::CaretBase::absoluteBoundsForLocalRect): Absolute coordinates -> ints.
1927         (WebCore::FrameSelection::absoluteCaretBounds): Ditto.
1928         (WebCore::CaretBase::caretRepaintRect): The caret repaint rect is stored in absolute coordinates.
1929         Reverting the values to ints.
1930         (WebCore::FrameSelection::recomputeCaretRect): Ditto.
1931         * editing/FrameSelection.h:
1932         (FrameSelection):
1933         * editing/mac/FrameSelectionMac.mm:
1934         (WebCore::FrameSelection::notifyAccessibilityForSelectionChange): Switching to store absolute
1935         coordinates as integers.
1936
1937 2012-03-22  Alexei Filippov  <alexeif@chromium.org>
1938
1939         Web Inspector: Speed up the build retainers phase.
1940         https://bugs.webkit.org/show_bug.cgi?id=81763
1941
1942         Replacing the edge iterator with a raw loop makes it
1943         faster by more than 10 times.
1944
1945         Reviewed by Yury Semikhatsky.
1946
1947         * inspector/front-end/HeapSnapshot.js:
1948         (WebInspector.HeapSnapshot.prototype._buildRetainers):
1949
1950 2012-03-22  No'am Rosenthal  <noam.rosenthal@nokia.com>
1951
1952         [Qt][WK2] The background appears to have one extra pixel from the contents
1953         https://bugs.webkit.org/show_bug.cgi?id=81830
1954
1955         Reviewed by Kenneth Rohde Christiansen.
1956
1957         TextureMapperGL applied a 1-offset that was covering for another bug,
1958         which was already fixed.
1959
1960         No new tests, this would be tested once we test GL rendering results.
1961
1962         * platform/graphics/texmap/TextureMapperGL.cpp:
1963         (WebCore::TextureMapperGLData::SharedGLData::scissorClip):
1964
1965 2012-03-22  W. James MacLean  <wjmaclean@chromium.org>
1966
1967         Rename touchpad fling curve, add curve parameters to constructor.
1968         https://bugs.webkit.org/show_bug.cgi?id=81820
1969
1970         Reviewed by Adrienne Walker.
1971
1972         Covered by existing unit tests.
1973
1974         * GNUmakefile.list.am:
1975         * WebCore.gypi:
1976         * platform/ScrollAnimatorNone.cpp:
1977         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
1978         * platform/TouchpadFlingPlatformGestureCurve.cpp: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.cpp.
1979         (WebCore):
1980         (WebCore::TouchpadFlingPlatformGestureCurve::create):
1981         (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
1982         (WebCore::TouchpadFlingPlatformGestureCurve::~TouchpadFlingPlatformGestureCurve):
1983         (WebCore::TouchpadFlingPlatformGestureCurve::apply):
1984         * platform/TouchpadFlingPlatformGestureCurve.h: Renamed from Source/WebCore/platform/TouchFlingPlatformGestureCurve.h.
1985         (WebCore):
1986         (TouchpadFlingPlatformGestureCurve):
1987
1988 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
1989
1990         Web Inspector: make CSS and JavaScript files editable by default.
1991         https://bugs.webkit.org/show_bug.cgi?id=81787
1992
1993         Reviewed by Vsevolod Vlasov.
1994
1995         This change removes cancelEditing and setReadOnly capabilities from source frame.
1996         It removes dblclick handler as well since one does not need to enter editing mode.
1997         It also establishes proper content dispatching so that views are updated with the
1998         resource content. All these are inter-dependent, need to be landed simultaneously.
1999         Drive-by follow up to the r111675 where range is modified prior to the exiting
2000         edit mode.
2001
2002         * inspector/front-end/JavaScriptSourceFrame.js:
2003         (WebInspector.JavaScriptSourceFrame):
2004         (WebInspector.JavaScriptSourceFrame.prototype.requestContent):
2005         (WebInspector.JavaScriptSourceFrame.prototype.afterTextChanged):
2006         (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
2007         (WebInspector.JavaScriptSourceFrame.prototype.didEditContent):
2008         (WebInspector.JavaScriptSourceFrame.prototype._lineNumberAfterEditing):
2009         * inspector/front-end/ResourceView.js:
2010         (WebInspector.ResourceSourceFrame):
2011         (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
2012         (WebInspector.ResourceSourceFrame.prototype._contentChanged):
2013         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
2014         (WebInspector.EditableResourceSourceFrame.prototype.editContent.callbackWrapper):
2015         (WebInspector.EditableResourceSourceFrame.prototype.editContent):
2016         (WebInspector.EditableResourceSourceFrame.prototype._contentChanged):
2017         * inspector/front-end/ResourcesPanel.js:
2018         (WebInspector.ResourcesPanel.prototype._innerShowView):
2019         (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
2020         * inspector/front-end/ScriptsPanel.js:
2021         (WebInspector.ScriptsPanel.prototype.setScriptSourceIsDirty):
2022         * inspector/front-end/Settings.js:
2023         (WebInspector.ExperimentsSettings):
2024         * inspector/front-end/SourceFrame.js:
2025         (WebInspector.SourceFrame):
2026         (WebInspector.SourceFrame.prototype.wasShown):
2027         (WebInspector.SourceFrame.prototype.willHide):
2028         (WebInspector.SourceFrame.prototype.beforeTextChanged):
2029         (WebInspector.SourceFrame.prototype.setContent):
2030         (WebInspector.SourceFrame.prototype.commitEditing):
2031         (WebInspector.SourceFrame.prototype.didEditContent):
2032         (WebInspector.SourceFrame.prototype.editContent):
2033         * inspector/front-end/TextPrompt.js:
2034         (WebInspector.TextPrompt.prototype._startEditing):
2035         (WebInspector.TextPrompt.prototype._stopEditing):
2036         * inspector/front-end/TextViewer.js:
2037         (WebInspector.TextViewer):
2038         (WebInspector.TextViewer.prototype._registerShortcuts):
2039         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
2040
2041 2012-03-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2042
2043         [Qt] Enable FAST_MOBILE_SCROLLING when scrolling is delegated.
2044         https://bugs.webkit.org/show_bug.cgi?id=81889
2045
2046         Reviewed by Kenneth Rohde Christiansen.
2047
2048         On the Qt platform only enable the fast mobile scroll feature when scrolling is delegated.
2049
2050         * rendering/RenderObject.cpp:
2051         (WebCore::RenderObject::styleWillChange):
2052
2053 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2054
2055         Web Inspector: dispatch styleSheetChanged event synchronously.
2056         https://bugs.webkit.org/show_bug.cgi?id=81892
2057
2058         Reviewed by Vsevolod Vlasov.
2059
2060         Today, backend generates stylesheet change event synchronously from within set* command.
2061         But CSSStyleModel defers its dispatching until the stylesheet content is available. This
2062         prevents us from ignoring update events from within commands that initiated those updates.
2063
2064         This change makes stylesheet change event dispatch synchronously and delegates stylesheet
2065         content fetching to the event client.
2066
2067         * inspector/front-end/CSSStyleModel.js:
2068         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
2069         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
2070         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
2071         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent.callbackWrapper):
2072         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
2073         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.callback):
2074         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
2075         (WebInspector.CSSStyleModelResourceBinding.prototype._innerStyleSheetChanged):
2076
2077 2012-03-21  Ian Vollick  <vollick@chromium.org>
2078
2079         [chromium] timing functions are getting incorrectly applied for accelerated css transitions
2080         https://bugs.webkit.org/show_bug.cgi?id=81692
2081
2082         Reviewed by Adrienne Walker.
2083
2084         Tested in CCLayerTreeHostTestAddAnimationWithTimingFunction
2085
2086         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
2087
2088 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2089
2090         Web Inspector: allow on-hover popover while in edit mode.
2091         https://bugs.webkit.org/show_bug.cgi?id=81898
2092
2093         Reviewed by Vsevolod Vlasov.
2094
2095         This change allows popover while in-edit mode, hides it upon Esc. It also introduces anchorOverride
2096         concept in ObjectPopoverHelper that allows dynamically switching the anchor (say if we want to highlight anchor itself).
2097
2098         * inspector/front-end/DetailedHeapshotView.js:
2099         * inspector/front-end/ElementsPanel.js:
2100         * inspector/front-end/JavaScriptSourceFrame.js:
2101         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover.showObjectPopover):
2102         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
2103         (WebInspector.JavaScriptSourceFrame.prototype._onKeyDown):
2104         * inspector/front-end/NetworkPanel.js:
2105         * inspector/front-end/ObjectPopoverHelper.js:
2106         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover.showObjectPopover.):
2107         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
2108         * inspector/front-end/Popover.js:
2109         (WebInspector.PopoverHelper.prototype.isPopoverVisible):
2110         * inspector/front-end/TimelinePanel.js:
2111
2112 2012-03-22  Pavel Feldman  <pfeldman@chromium.org>
2113
2114         Web Inspector: breakpoints should shift when line break is inserted in the middle of the line.
2115         https://bugs.webkit.org/show_bug.cgi?id=81896
2116
2117         Reviewed by Vsevolod Vlasov.
2118
2119         There is a bug that collapses selection prior to exiting change mode, we should never
2120         collapse edit area prior committing.
2121
2122         * inspector/front-end/TextEditorModel.js:
2123         (WebInspector.TextEditorModel.endsWithBracketRegex.):
2124         * inspector/front-end/TextViewer.js:
2125         (WebInspector.TextViewer):
2126         (WebInspector.TextEditorMainPanel.prototype.highlightLine):
2127         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo.callback):
2128         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
2129
2130 2012-03-22  Zoltan Herczeg  <zherczeg@webkit.org>
2131
2132         Merge SVGImageBufferTools to SVGRenderingContext
2133         https://bugs.webkit.org/show_bug.cgi?id=81890
2134
2135         Reviewed by Nikolas Zimmermann.
2136
2137         Copy the code to SVGRenderingContext and delete
2138         SVGImageBufferTools[.cpp.h]. Update build systems,
2139         no functionality change. This is the first step
2140         towards making SVGImageBufferTools stageful.
2141
2142         Existing tests cover this issue.
2143
2144         * CMakeLists.txt:
2145         * GNUmakefile.list.am:
2146         * Target.pri:
2147         * WebCore.gypi:
2148         * WebCore.xcodeproj/project.pbxproj:
2149         * platform/graphics/filters/FETile.cpp:
2150         (WebCore::FETile::platformApplySoftware):
2151         * rendering/svg/RenderSVGAllInOne.cpp:
2152         * rendering/svg/RenderSVGInlineText.cpp:
2153         (WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
2154         * rendering/svg/RenderSVGResourceClipper.cpp:
2155         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
2156         (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
2157         * rendering/svg/RenderSVGResourceFilter.cpp:
2158         (WebCore::RenderSVGResourceFilter::applyResource):
2159         * rendering/svg/RenderSVGResourceGradient.cpp:
2160         (WebCore::createMaskAndSwapContextForTextGradient):
2161         (WebCore::clipToTextMask):
2162         * rendering/svg/RenderSVGResourceMasker.cpp:
2163         (WebCore::RenderSVGResourceMasker::applyResource):
2164         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
2165         * rendering/svg/RenderSVGResourcePattern.cpp:
2166         (WebCore::RenderSVGResourcePattern::applyResource):
2167         (WebCore::RenderSVGResourcePattern::createTileImage):
2168         * rendering/svg/SVGImageBufferTools.cpp: Removed.
2169         * rendering/svg/SVGImageBufferTools.h: Removed.
2170         * rendering/svg/SVGInlineTextBox.cpp:
2171         * rendering/svg/SVGRenderingContext.cpp:
2172         (WebCore::currentContentTransformation):
2173         (WebCore):
2174         (WebCore::SVGRenderingContext::calculateTransformationToOutermostSVGCoordinateSystem):
2175         (WebCore::SVGRenderingContext::createImageBuffer):
2176         (WebCore::SVGRenderingContext::createImageBufferForPattern):
2177         (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
2178         (WebCore::SVGRenderingContext::clipToImageBuffer):
2179         (WebCore::SVGRenderingContext::clampedAbsoluteTargetRect):
2180         (WebCore::SVGRenderingContext::clampedAbsoluteSize):
2181         (WebCore::SVGRenderingContext::clear2DRotation):
2182         * rendering/svg/SVGRenderingContext.h:
2183         (SVGRenderingContext):
2184         (WebCore::SVGRenderingContext::calculateImageBufferRect):
2185         * svg/graphics/filters/SVGFEImage.cpp:
2186         (WebCore::FEImage::platformApplySoftware):
2187
2188 2012-03-22  Hyowon Kim  <hw1008.kim@samsung.com>
2189
2190         [EFL] Add PageClientEfl to WebCoreSupport.
2191         https://bugs.webkit.org/show_bug.cgi?id=80748
2192
2193         Reviewed by Noam Rosenthal.
2194
2195         * platform/Widget.h: Use PageClientEfl as type for PlatformPageClient.
2196         (WebCore):
2197         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
2198         (WebCore::GraphicsContext3DPrivate::createSurface): Change the argument type.
2199         * plugins/efl/PluginViewEfl.cpp:
2200         (WebCore::PluginView::platformGetValue): Use PageClientEfl.
2201
2202 2012-03-22  Kaustubh Atrawalkar  <kaustubh@motorola.com>
2203
2204         blur() on shadow host should work when a shadow host contains a focused element in its shadow DOM subtrees
2205         https://bugs.webkit.org/show_bug.cgi?id=81102
2206
2207         Reviewed by Hajime Morita.
2208
2209         This implementation will support blur for a focused element when its shadowHost's blur() is called.
2210         To achieve this Element::blur() function is modified to blur the focused node in it's treeScope.
2211
2212         Test: fast/dom/shadow/shadow-root-blur.html
2213
2214         * dom/Element.cpp:
2215         (WebCore::Element::blur): Modified to blur current treeScope's focused node.
2216         * dom/ShadowRoot.h:
2217         (WebCore::ShadowRoot::activeElement): Rework for code sharing.
2218         * dom/TreeScope.cpp:
2219         (WebCore::TreeScope::focusedNode): Added new function to share code for getting focused node.
2220         * dom/TreeScope.h:
2221         (TreeScope): New function declartion.
2222         * html/HTMLDocument.cpp:
2223         (WebCore::HTMLDocument::activeElement): Rework for code sharing.
2224
2225 2012-03-22  Vsevolod Vlasov  <vsevik@chromium.org>
2226
2227         Web Inspector: RawSourceCode does not need uiSourceCode lists because it never has more than one.
2228         https://bugs.webkit.org/show_bug.cgi?id=81894
2229
2230         RawSourceCode never has more than one uiSourceCode, uiSourceCodeList
2231         are just remains of older implementation. This patch switches RawSourceCode
2232         and SourceMappings from uiSourceCodeList to uiSourceCode.
2233
2234         Reviewed by Pavel Feldman.
2235
2236         * inspector/front-end/RawSourceCode.js:
2237         (WebInspector.RawSourceCode.prototype.uiSourceCode):
2238         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
2239         (WebInspector.RawSourceCode.SourceMapping.prototype.uiLocationToRawLocation):
2240         (WebInspector.RawSourceCode.SourceMapping.prototype.uiSourceCode):
2241         (WebInspector.RawSourceCode.PlainSourceMapping):
2242         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.rawLocationToUILocation):
2243         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiLocationToRawLocation):
2244         (WebInspector.RawSourceCode.PlainSourceMapping.prototype.uiSourceCode):
2245         (WebInspector.RawSourceCode.FormattedSourceMapping):
2246         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
2247         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiLocationToRawLocation):
2248         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.uiSourceCode):
2249         * inspector/front-end/ResourceScriptMapping.js:
2250         (WebInspector.ResourceScriptMapping.prototype.uiSourceCodeList):
2251         (WebInspector.ResourceScriptMapping.prototype.addScript):
2252         (WebInspector.ResourceScriptMapping.prototype._handleUISourceCodeChanged):
2253         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged):
2254         (WebInspector.ResourceScriptMapping.prototype.reset):
2255
2256 2012-03-22  Mario Sanchez Prada  <msanchez@igalia.com>
2257
2258         [GTK] Fix the only remaining coding style issue in GTK accessibility code
2259         https://bugs.webkit.org/show_bug.cgi?id=81885
2260
2261         Reviewed by Xan Lopez.
2262
2263         Add needed extra line and remove an unneeded one.
2264
2265         * accessibility/gtk/AccessibilityObjectAtk.cpp:
2266
2267 2012-03-22  Kent Tamura  <tkent@chromium.org>
2268
2269         Expand RenderTextControlSingleLine::controlClipRect() to contain contentRect().
2270         https://bugs.webkit.org/show_bug.cgi?id=81866
2271
2272         Reviewed by Hajime Morita.
2273
2274         We need to expand the controlClipRect because the existing shadow
2275         tree of a text field can be wrapped by another shadow tree. e.g.
2276
2277         A current situation:
2278
2279         <input>
2280           ┗ ShadowRoot
2281              ┗ container element
2282         ┌────────────┐<input>'s border box
2283         │┌──────────┐│
2284         ││container box       ││
2285         │└──────────┘│
2286         └────────────┘
2287
2288         Wrapped by another ShadowRoot:
2289
2290         <input>
2291           ┗ New ShadowRoot
2292              ┣ <shadow> represents the existing shadow tree
2293              ┃  ┗ container element
2294              ┗ D: an additional decoration element
2295         ┌────────────┐<input>'s border box
2296         │┌───────┬──┐│
2297         ││container box │ D  ││
2298         │└───────┴──┘│
2299         └────────────┘
2300         In this case, if we clip child renderers by container box, D is not
2301         drawn. We should clip by the content box of the <input>.
2302
2303         A search field has an exceptional behavior. It can have the container
2304         box of which height is taller than the content box height. The
2305         controlClipRect should contain both of the container box and the content
2306         box in this case. In other cases, the container box is equivalent to the
2307         content box. So the code always unites them.
2308
2309         No new tests. This won't make any behavior change for now.
2310
2311         * rendering/RenderTextControlSingleLine.cpp:
2312         (WebCore::RenderTextControlSingleLine::controlClipRect):
2313
2314 2012-03-22  Yoshifumi Inoue  <yosin@chromium.org>
2315
2316         [Forms] The option element should not be form associated element.
2317         https://bugs.webkit.org/show_bug.cgi?id=79764
2318
2319         Reviewed by Kent Tamura.
2320
2321         This patch changes base class of HTMLOptionELement to HTMLElement
2322         from HTMLFormControlElement for saving memory space and iteration
2323         time of extra "option" elements in HTMLFormElement::m_formAssociatedElements
2324         and matching the HTML5 specification for ease of maintenance.
2325
2326         This patch changes behavior of handling of CSS pseudo classes "invalid"
2327         and "valid". The "option" elements no longer use these CSS pseudo classes
2328         as HTML5 specification. This bug was filed in https://bugs.webkit.org/show_bug.cgi?id=80088
2329
2330         Changes of TextIterator is lead by usage of isFormControlElement. This
2331         changes will be replaced with more meaningful predicate as part of
2332         https://bugs.webkit.org/show_bug.cgi?id=80381
2333
2334         No new tests but updated select-live-pseudo-selectors.html test.
2335
2336         * css/CSSStyleSelector.cpp:
2337         (WebCore::CSSStyleSelector::canShareStyleWithElement): Added checking of the "option" element and returns false as HTMLFormControlElement.
2338         * css/SelectorChecker.cpp:
2339         (WebCore::SelectorChecker::checkOneSelector): Removed isFormControlElement for PseudoDisabled and PseudoChecked.
2340         * html/HTMLKeygenElement.cpp:
2341         (WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed form parameter of call site of HTMLOptionElement::create.
2342         * html/HTMLOptionElement.cpp:
2343         (WebCore::HTMLOptionElement::HTMLOptionElement): Removed form parameter which no longer needed. Changed base class in initialization list. Added m_disabled initialization.
2344         (WebCore::HTMLOptionElement::create): Removed form parameter which no longer needed.
2345         (WebCore::HTMLOptionElement::attach): Changeid base class.
2346         (WebCore::HTMLOptionElement::detach): Changed base class.
2347         (WebCore::HTMLOptionElement::parseAttribute): Changed base class. Added "disabled" attribute handling.
2348         (WebCore::HTMLOptionElement::childrenChanged): Changed base class.
2349         (WebCore::HTMLOptionElement::insertedIntoTree): Changed base class.
2350         * html/HTMLOptionElement.h:
2351         (HTMLOptionElement): Added new member variable m_disabled which was in HTMLFormControlElement.
2352         (WebCore::HTMLOptionElement::ownElementDisabled): Changed for using m_disabled.
2353         * html/HTMLTagNames.in: Removed constructorNeedsFormElement for the "option" element, which was used for passing form parameter to create function.
2354
2355 2012-03-21  Pavel Podivilov  <podivilov@chromium.org>
2356
2357         Web Inspector: rename ClosureCompilerSourceMapping to SourceMapParser and move it to CompilerScriptMapping.js.
2358         https://bugs.webkit.org/show_bug.cgi?id=81780
2359
2360         Reviewed by Pavel Feldman.
2361
2362         * WebCore.gypi:
2363         * WebCore.vcproj/WebCore.vcproj:
2364         * inspector/compile-front-end.py:
2365         * inspector/front-end/CompilerScriptMapping.js:
2366         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
2367         (WebInspector.SourceMapParserPayload):
2368         (WebInspector.SourceMapParser):
2369         (WebInspector.SourceMapParser.prototype.load):
2370         (WebInspector.SourceMapParser.prototype.compiledLocationToSourceLocation):
2371         (WebInspector.SourceMapParser.prototype.sourceLocationToCompiledLocation):
2372         (WebInspector.SourceMapParser.prototype.sources):
2373         (WebInspector.SourceMapParser.prototype.loadSourceCode):
2374         (WebInspector.SourceMapParser.prototype._findMapping):
2375         (WebInspector.SourceMapParser.prototype._parseMappingPayload):
2376         (WebInspector.SourceMapParser.prototype._parseSections):
2377         (WebInspector.SourceMapParser.prototype._parseMap):
2378         (WebInspector.SourceMapParser.prototype._isSeparator):
2379         (WebInspector.SourceMapParser.prototype._decodeVLQ):
2380         (WebInspector.SourceMapParser.prototype._canonicalizeURL):
2381         (WebInspector.SourceMapParser.StringCharIterator):
2382         (WebInspector.SourceMapParser.StringCharIterator.prototype.next):
2383         (WebInspector.SourceMapParser.StringCharIterator.prototype.peek):
2384         (WebInspector.SourceMapParser.StringCharIterator.prototype.hasNext):
2385         * inspector/front-end/CompilerSourceMapping.js: Removed.
2386         * inspector/front-end/WebKit.qrc:
2387         * inspector/front-end/inspector.html:
2388
2389 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
2390
2391         Web Inspector: IndexedDB transaction is not closed when requesting data.
2392         https://bugs.webkit.org/show_bug.cgi?id=81837
2393
2394         Reviewed by Pavel Feldman.
2395
2396         * inspector/InspectorIndexedDBAgent.cpp: Added missing IDBCursorBackendInterface::postSuccessHandlerCallback() call.
2397         (WebCore):
2398
2399 2012-03-21  Yury Semikhatsky  <yurys@chromium.org>
2400
2401         Web Inspector: event listeners section is broken for about:blank page
2402         https://bugs.webkit.org/show_bug.cgi?id=81795
2403
2404         Parse about:blank as a valid URL.
2405
2406         Reviewed by Pavel Feldman.
2407
2408         Test: inspector/elements/event-listeners-about-blank.html
2409
2410         * inspector/front-end/utilities.js:
2411         (String.prototype.asParsedURL):
2412
2413 2012-03-21  Dan Bernstein  <mitz@apple.com>
2414
2415         REGRESSION (r111635): Assertion failure in RenderFlexibleBox::layoutFlexItems() (!lineContexts.size()) in many flexbox tests
2416         https://bugs.webkit.org/show_bug.cgi?id=81870
2417
2418         Reverted r111635, the fix for bug 81843.
2419
2420         * rendering/RenderFlexibleBox.cpp:
2421         (WebCore::RenderFlexibleBox::WrapReverseContext::WrapReverseContext):
2422         (WebCore::RenderFlexibleBox::WrapReverseContext::addCrossAxisOffset):
2423         (RenderFlexibleBox::WrapReverseContext):
2424         (WebCore::RenderFlexibleBox::WrapReverseContext::addNumberOfChildrenOnLine):
2425         (WebCore::RenderFlexibleBox::WrapReverseContext::lineCrossAxisDelta):
2426         (WebCore::RenderFlexibleBox::layoutFlexItems):
2427         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
2428         (WebCore::RenderFlexibleBox::alignChildren):
2429         (WebCore::RenderFlexibleBox::flipForWrapReverse):
2430         * rendering/RenderFlexibleBox.h:
2431
2432 2012-03-21  Emil A Eklund  <eae@chromium.org>
2433
2434         Unreviewed change touching CustomFilterProgram.h to try
2435         to force the chromium-win bots to rebuilt it and pick up
2436         on the fact that CSS_SHADERS is not set (since r111610). 
2437
2438         * platform/graphics/filters/CustomFilterProgram.h:
2439
2440 2012-03-21  Vangelis Kokkevis  <vangelis@chromium.org>
2441
2442         [chromium] FPS counter causes garbage to be displayed at top left corner
2443         https://bugs.webkit.org/show_bug.cgi?id=81851
2444
2445         The HUD expects the PlatformCanvas it paints on to be cleared on creation which is
2446         no longer true after http://src.chromium.org/viewvc/chrome?view=rev&revision=127196 .
2447         This patch does an explicit clearRect before the HUD contents are painted.
2448
2449         Reviewed by Adrienne Walker.
2450
2451         TEST=Manually verified that --show-fps-counter and --show-composited-layer-tree work correctly.
2452
2453         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2454         (WebCore::CCHeadsUpDisplay::draw):
2455
2456 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
2457
2458         Touch a file to make Chromium Windows bots happy.
2459
2460         * css/CSSValueKeywords.in:
2461
2462 2012-03-19  Igor Oliveira  <igor.o@sisa.samsung.com>
2463
2464         Every call to RenderObject::setAnimatableStyle() iterates through all m_compositeAnimations: potentially O(N^2)
2465         https://bugs.webkit.org/show_bug.cgi?id=38025
2466
2467         Implement updateAnimationTimerForRender. This reduces unnecessary animation
2468         steps on the current RenderObject by checking the value of timeToNextService
2469         before starting a new timer.
2470
2471         Reviewed by Dean Jackson.
2472
2473         Test: animations/animation-welcome-safari.html
2474
2475         * page/animation/AnimationController.cpp:
2476         (WebCore::AnimationControllerPrivate::updateAnimationTimerForRenderer):
2477         (WebCore):
2478         (WebCore::AnimationController::updateAnimations):
2479         * page/animation/AnimationControllerPrivate.h:
2480         (AnimationControllerPrivate):
2481
2482 2012-03-21  Sheriff Bot  <webkit.review.bot@gmail.com>
2483
2484         Unreviewed, rolling out r111616.
2485         http://trac.webkit.org/changeset/111616
2486         https://bugs.webkit.org/show_bug.cgi?id=81862
2487
2488         broke chromium mac (Requested by eae on #webkit).
2489
2490         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2491         (WebCore::CCLayerImpl::appendQuads):
2492         * platform/graphics/chromium/cc/CCLayerImpl.h:
2493         (CCLayerImpl):
2494         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2495         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2496         (WebCore::CCLayerTreeHostImpl::drawLayers):
2497         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2498         (CCLayerTreeHostImpl):
2499         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2500         (WebCore::CCQuadCuller::append):
2501         * platform/graphics/chromium/cc/CCQuadCuller.h:
2502         (CCQuadCuller):
2503         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2504         (WebCore::CCRenderPass::appendQuadsForLayer):
2505         * platform/graphics/chromium/cc/CCRenderPass.h:
2506         (CCRenderPass):
2507         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2508         (WebCore::CCScrollbarLayerImpl::appendQuads):
2509         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2510         (CCScrollbarLayerImpl):
2511         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2512         (WebCore::CCSingleThreadProxy::doComposite):
2513         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2514         (WebCore::CCSolidColorLayerImpl::appendQuads):
2515         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2516         (CCSolidColorLayerImpl):
2517         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2518         (WebCore::CCTextureLayerImpl::appendQuads):
2519         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2520         (CCTextureLayerImpl):
2521         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2522         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2523         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2524         (WebCore::CCTiledLayerImpl::appendQuads):
2525         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2526         (CCTiledLayerImpl):
2527         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2528         (WebCore::CCVideoLayerImpl::appendQuads):
2529         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2530         (CCVideoLayerImpl):
2531
2532 2012-03-21  Beth Dakin  <bdakin@apple.com>
2533
2534         https://bugs.webkit.org/show_bug.cgi?id=80322
2535         Implement image-set
2536
2537         Reviewed by Dean Jackson.
2538
2539         This initial implementation of -webkit-image-set. 
2540         http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html
2541         The idea behind the feature is to allow authors to provide multiple variants 
2542         of the same image at differing resolutions, and to allow the User Agent to 
2543         choose the resource that is most appropriate at the time. This patch will 
2544         choose the most appropriate image based on device scale factor.
2545
2546         CSSImageSetValue inherits from CSSValueList and behaves a lot like 
2547         CSSImageValue.
2548         * WebCore.xcodeproj/project.pbxproj:
2549         * css/CSSImageSetValue.h: Added.
2550         (WebCore):
2551         (CSSImageSetValue):
2552         (WebCore::CSSImageSetValue::create):
2553         (WebCore::CSSImageSetValue::isPending):
2554         (ImageWithScale):
2555         (WebCore::CSSImageSetValue::compareByScaleFactor):
2556         * css/CSSImageSetValue.cpp: Added.
2557         (WebCore):
2558         (WebCore::CSSImageSetValue::CSSImageSetValue):
2559         (WebCore::CSSImageSetValue::~CSSImageSetValue):
2560         (WebCore::CSSImageSetValue::cachedOrPendingImageSet):
2561         (WebCore::CSSImageSetValue::customCssText):
2562
2563         fillImageSet() iterates through the value list and turns the information into 
2564         a sorted Vector of ImageWithScales (which is a struct containing image URLs 
2565         and scale factors).
2566         (WebCore::CSSImageSetValue::fillImageSet):
2567
2568         cachedImageSet() finds which image is most appropriate based on the device 
2569         scale factor, and it loads only that image. In the future, additional scale 
2570         factors will be taken into account.
2571         (WebCore::CSSImageSetValue::bestImageForScaleFactor):
2572         (WebCore::CSSImageSetValue::cachedImageSet):
2573
2574         parseImageSet() is called everywhere in the CSSParser that a regular image or 
2575         generated image can be found.
2576         * css/CSSParser.cpp:
2577         (WebCore::CSSParser::parseValue):
2578         (WebCore::CSSParser::parseContent):
2579         (WebCore::CSSParser::parseFillImage):
2580         (WebCore::CSSParser::parseBorderImage):
2581         (WebCore):
2582         (WebCore::CSSParser::parseImageSet):
2583         * css/CSSParser.h:
2584
2585         Since CSSImageSetValue is implemented as a value list, 
2586         ApplyPropertyFillLayer::applyValue() needs to be more specific when it's 
2587         looking for a list of multiple URLs.
2588         * css/CSSStyleApplyProperty.cpp:
2589         (WebCore::ApplyPropertyFillLayer::applyValue):
2590
2591         Handle image-set as a valid image value.
2592         * css/CSSStyleSelector.cpp:
2593         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2594         * css/CSSStyleSelector.h:
2595         (CSSStyleSelector):
2596         * css/CSSValue.cpp:
2597         (WebCore::CSSValue::cssText):
2598         (WebCore::CSSValue::destroy):
2599         * css/CSSValue.h:
2600         (CSSValue):
2601         (WebCore::CSSValue::isImageSetValue):
2602
2603         computeIntrinsicDimensions() now takes an optional scaleFactor parameter that represents the author-enforced "intrinsic" scale factor of the image.
2604         * loader/cache/CachedImage.cpp:
2605         (WebCore::CachedImage::computeIntrinsicDimensions):
2606         * loader/cache/CachedImage.h:
2607         (CachedImage):
2608         * platform/graphics/GeneratedImage.h:
2609         (GeneratedImage):
2610         * platform/graphics/GeneratorGeneratedImage.cpp:
2611         (WebCore::GeneratedImage::computeIntrinsicDimensions):
2612         * platform/graphics/Image.cpp:
2613         (WebCore::Image::computeIntrinsicDimensions):
2614         * platform/graphics/Image.h:
2615         (Image):
2616         * platform/graphics/cg/PDFDocumentImage.cpp:
2617         (WebCore::PDFDocumentImage::computeIntrinsicDimensions):
2618         * platform/graphics/cg/PDFDocumentImage.h:
2619         (PDFDocumentImage):
2620         * svg/graphics/SVGImage.cpp:
2621         (WebCore::SVGImage::computeIntrinsicDimensions):
2622         * svg/graphics/SVGImage.h:
2623         (SVGImage):
2624
2625         Inherits from StyleImage and returns a scaled size for imageSize() and 
2626         computeIntrinsicDimensions().
2627         * rendering/style/StyleCachedImageSet.cpp: Added.
2628         (WebCore):
2629         (WebCore::StyleCachedImageSet::StyleCachedImageSet):
2630         (WebCore::StyleCachedImageSet::cssValue):
2631         (WebCore::StyleCachedImageSet::canRender):
2632         (WebCore::StyleCachedImageSet::isLoaded):
2633         (WebCore::StyleCachedImageSet::errorOccurred):
2634         (WebCore::StyleCachedImageSet::imageSize):
2635         (WebCore::StyleCachedImageSet::imageHasRelativeWidth):
2636         (WebCore::StyleCachedImageSet::imageHasRelativeHeight):
2637         (WebCore::StyleCachedImageSet::computeIntrinsicDimensions):
2638         (WebCore::StyleCachedImageSet::usesImageContainerSize):
2639         (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
2640         (WebCore::StyleCachedImageSet::addClient):
2641         (WebCore::StyleCachedImageSet::removeClient):
2642         (WebCore::StyleCachedImageSet::image):
2643         * rendering/style/StyleCachedImageSet.h: Added.
2644         (WebCore):
2645         (StyleCachedImageSet):
2646         (WebCore::StyleCachedImageSet::create):
2647         (WebCore::StyleCachedImageSet::data):
2648         (WebCore::StyleCachedImageSet::cachedImage):
2649
2650         Handle image-set.
2651         * rendering/style/StyleImage.h:
2652         (WebCore::StyleImage::isCachedImageSet):
2653         (WebCore::StyleImage::StyleImage):
2654         (StyleImage):
2655         * rendering/style/StylePendingImage.h:
2656         (StylePendingImage):
2657         (WebCore::StylePendingImage::cssImageSetValue):
2658
2659 2012-03-21  David Barton  <dbarton@mathscribe.com>
2660
2661         MathML internals - improve naming in RenderMathMLSquareRoot.cpp and RenderMathMLRoot.cpp
2662         https://bugs.webkit.org/show_bug.cgi?id=81850
2663
2664         Reviewed by Eric Seidel.
2665
2666         This prepares these files for bug fixes, and eventually combining their common code. To
2667         understand this patch, I suggest you start with RenderMathMLSquareRoot.cpp, as it's
2668         simpler than RenderMathMLRoot.cpp.
2669
2670         No new tests. LayoutTests/mathml/presentation/roots.xhtml is thorough enough for this.
2671
2672         * rendering/mathml/RenderMathMLRoot.cpp:
2673         (WebCore):
2674         (WebCore::RenderMathMLRoot::addChild):
2675         (WebCore::RenderMathMLRoot::paint):
2676         (WebCore::RenderMathMLRoot::layout):
2677         * rendering/mathml/RenderMathMLRoot.h:
2678         (WebCore):
2679         (RenderMathMLRoot):
2680         * rendering/mathml/RenderMathMLSquareRoot.cpp:
2681         (WebCore):
2682         (WebCore::RenderMathMLSquareRoot::paint):
2683         (WebCore::RenderMathMLSquareRoot::layout):
2684         * rendering/mathml/RenderMathMLSquareRoot.h:
2685         (WebCore):
2686         (RenderMathMLSquareRoot):
2687         * rendering/mathml/RenderMathMLSubSup.h:
2688         (WebCore):
2689
2690 2012-03-21  Tony Chang  <tony@chromium.org>
2691
2692         refactor flexbox in preparation for flex-line-pack
2693         https://bugs.webkit.org/show_bug.cgi?id=81843
2694
2695         Reviewed by Ojan Vafai.
2696
2697         Replace WrapReverseContext with a vector of LineContexts that contain
2698         the same information, plus values needed for flex-align.
2699
2700         alignChildren has been moved to after all the lines have been
2701         positioned. We want to align children after flex-line-pack has changed
2702         the size of each line to avoid unnecessary layouts.
2703
2704         No new tests, just refactoring.
2705
2706         * rendering/RenderFlexibleBox.cpp:
2707         (WebCore::RenderFlexibleBox::LineContext::LineContext): New struct,
2708         holds information needed for wrap-reverse and aligning children.
2709         (RenderFlexibleBox::LineContext):
2710         (WebCore::RenderFlexibleBox::layoutFlexItems): alignChildren after layout out all the lines rather than after each line.
2711         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren): don't alignChildren
2712         (WebCore::RenderFlexibleBox::alignChildren): align all flex items, not just a line at a time.
2713         (WebCore::RenderFlexibleBox::flipForWrapReverse): Update to use LineContext
2714         * rendering/RenderFlexibleBox.h:
2715
2716 2012-03-21  Ryosuke Niwa  <rniwa@webkit.org>
2717
2718         BDI element should have dir=auto by default
2719         https://bugs.webkit.org/show_bug.cgi?id=68773
2720
2721         Reviewed by Daniel Bates.
2722
2723         Treat bdi elements without dir content attribute as if they have dir=auto per spec:
2724         http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-bdi-element
2725
2726         The patch tries to encapsulate the logic to look for dir content attribute and dir=auto.
2727
2728         It also adds HTMLBDIElement interface (binding remains to use HTMLElement) to set
2729         selfOrAncestorHasDirAutoAttribute flag true by default, which is used by functions like
2730         directionalityIfhasDirAutoAttribute to look for elements with dir=auto. Since dir=auto-ness of bdi
2731         elements can be overridden by dir content attribute, we must change and only change the default value.
2732
2733         Tests: fast/text/international/bdi-dir-default-to-auto-expected.html
2734                fast/text/international/bdi-dir-default-to-auto.html
2735
2736         * GNUmakefile.list.am:
2737         * Target.pri:
2738         * WebCore.gypi:
2739         * WebCore.vcproj/WebCore.vcproj:
2740         * WebCore.xcodeproj/project.pbxproj:
2741         * css/CSSStyleSelector.cpp:
2742         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2743         * html/HTMLBDIElement.h: Added.
2744         (WebCore):
2745         (HTMLBDIElement):
2746         (WebCore::HTMLBDIElement::create):
2747         (WebCore::HTMLBDIElement::HTMLBDIElement): Sets selfOrAncestorHasDirAutoAttribute to true because
2748         bdi elements are treated as if it has dir=auto by default.
2749         * html/HTMLElement.cpp:
2750         (WebCore::elementAffectsDirectionality): Added. Checks if the specified element is bdi or
2751         has dir content attribute.
2752         (WebCore):
2753         (WebCore::setHasDirAutoFlagRecursively):
2754         (WebCore::HTMLElement::hasDirectionAuto): Added. Checks if the specified element should be treated
2755         as if it has dir=auto (bdi or element with dir=auto).
2756         (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
2757         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
2758         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
2759         * html/HTMLElement.h:
2760         (HTMLElement):
2761         * html/HTMLTagNames.in: Use HTMLBDIElement instead of HTMLElement for constructing bdi element
2762         to set selfOrAncestorHasDirAutoAttribute true but still use HTMLElement for binding.
2763
2764 2012-03-21  Luke Macpherson  <macpherson@chromium.org>
2765
2766         Use CSSPrimitiveValue::convertToLength() in a few places.
2767         https://bugs.webkit.org/show_bug.cgi?id=81492
2768
2769         Reviewed by Eric Seidel.
2770
2771         No new tests - refactoring only.
2772
2773         CSSPrimitiveValue::convertToLength() provides the same functionality that is duplicated
2774         in many places in CSSStyleSelector. This patch removes some of that code duplication.
2775
2776         * css/CSSStyleApplyProperty.cpp:
2777         (WebCore::ApplyPropertyVerticalAlign::applyValue):
2778         * css/CSSStyleSelector.cpp:
2779         (WebCore::CSSStyleSelector::collectMatchingRulesForList):
2780
2781 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
2782
2783         Build fix for ENABLE(SVG) && !ENABLE(FILTERS) after r111601.
2784
2785         * rendering/svg/RenderSVGRoot.cpp:
2786
2787 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
2788
2789         Build fix for !ENABLE(INSPECTOR) after r104831.
2790
2791         * bindings/js/ScriptDebugServer.cpp:
2792         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2793
2794 2012-03-21  Xiaomei Ji  <xji@chromium.org>
2795
2796         visual word movement: using cache to decrease the number of collectLeafBoxesInLogicalOrder on RootInlineBox
2797         https://bugs.webkit.org/show_bug.cgi?id=81408
2798
2799         Reviewed by Ryosuke Niwa.
2800
2801         Cache logically ordered leaf boxes under a particular root box.
2802         Also, move 'Vector<UChar, 1024> string' declared in visualWordPosition() to outside of loop (it is always
2803         clear-ed before use).
2804
2805         * editing/visible_units.cpp:
2806         (CachedLogicallyOrderedLeafBoxes): Add class to cache logically ordered leaf boxes under a particular root box.
2807         (WebCore::CachedLogicallyOrderedLeafBoxes::size):
2808         (WebCore::CachedLogicallyOrderedLeafBoxes::firstBox):
2809         (WebCore):
2810         (WebCore::CachedLogicallyOrderedLeafBoxes::CachedLogicallyOrderedLeafBoxes):
2811         (WebCore::CachedLogicallyOrderedLeafBoxes::previousTextBox):
2812         (WebCore::CachedLogicallyOrderedLeafBoxes::nextTextBox):
2813         (WebCore::CachedLogicallyOrderedLeafBoxes::collectBoxes):
2814         (WebCore::CachedLogicallyOrderedLeafBoxes::boxIndexInLeaves):
2815         (WebCore::logicallyPreviousBox): Pass CachedLogicallyOrderedLeafBoxes object around.
2816         (WebCore::logicallyNextBox):
2817         (WebCore::wordBreakIteratorForMinOffsetBoundary):
2818         (WebCore::wordBreakIteratorForMaxOffsetBoundary):
2819         (WebCore::visualWordPosition):
2820
2821 2012-03-21  Dana Jansens  <danakj@chromium.org>
2822
2823         [chromium] Early out in a new prepareToDraw() step if checkerboarding an accelerated animation in order to skip the frame
2824         https://bugs.webkit.org/show_bug.cgi?id=81437
2825
2826         Reviewed by Adrienne Walker.
2827
2828         Split CCLayerTreeHostImpl::drawLayers() into two phases:
2829         prepareToDraw() and drawLayers().
2830
2831         When calculating a RenderPass, and we checkerboard a quad on a
2832         layer, bubble this info back up to CCLayerTreeHostImpl. If the
2833         layer is transforming in an animation, then abort the prepareToDraw()
2834         phase and cause it to return false back to the thread proxy.
2835
2836         Unit test: CCLayerTreeHostImplTest.prepareToDrawFailsWhenAnimationUsesCheckerboard
2837
2838         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2839         (WebCore::CCLayerImpl::appendQuads):
2840         * platform/graphics/chromium/cc/CCLayerImpl.h:
2841         (CCLayerImpl):
2842         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2843         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
2844         (WebCore::CCLayerTreeHostImpl::prepareToDraw):
2845         (WebCore):
2846         (WebCore::CCLayerTreeHostImpl::drawLayers):
2847         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2848         (CCLayerTreeHostImpl):
2849         (FrameData):
2850         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
2851         (WebCore::CCQuadCuller::append):
2852         * platform/graphics/chromium/cc/CCQuadCuller.h:
2853         (CCQuadCuller):
2854         * platform/graphics/chromium/cc/CCRenderPass.cpp:
2855         (WebCore::CCRenderPass::appendQuadsForLayer):
2856         * platform/graphics/chromium/cc/CCRenderPass.h:
2857         (CCRenderPass):
2858         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
2859         (WebCore::CCScrollbarLayerImpl::appendQuads):
2860         * platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
2861         (CCScrollbarLayerImpl):
2862         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2863         (WebCore::CCSingleThreadProxy::doComposite):
2864         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
2865         (WebCore::CCSolidColorLayerImpl::appendQuads):
2866         * platform/graphics/chromium/cc/CCSolidColorLayerImpl.h:
2867         (CCSolidColorLayerImpl):
2868         * platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
2869         (WebCore::CCTextureLayerImpl::appendQuads):
2870         * platform/graphics/chromium/cc/CCTextureLayerImpl.h:
2871         (CCTextureLayerImpl):
2872         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2873         (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
2874         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
2875         (WebCore::CCTiledLayerImpl::appendQuads):
2876         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
2877         (CCTiledLayerImpl):
2878         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2879         (WebCore::CCVideoLayerImpl::appendQuads):
2880         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2881         (CCVideoLayerImpl):
2882
2883 2012-03-21  Enrica Casucci  <enrica@apple.com>
2884
2885         WebKitURLWithTitles pasteboard format should support URLs containing Emoji characters.
2886         https://bugs.webkit.org/show_bug.cgi?id=81835
2887         <rdar://problem/11082749>
2888
2889         Reviewed by Brady Eidson.
2890
2891         When writing the URL in the pasteboard for the WebURLWithTitles format,
2892         we use the user visible string instead of the original URL.
2893         In case of URL with Unicode characters, we lose the encoding.
2894         
2895         Added TestWebKitAPI test.
2896
2897         * platform/mac/PasteboardMac.mm:
2898         (WebCore::writeURLForTypes): Writes to the pasteboard the original URL.
2899
2900 2012-03-21  Levi Weintraub  <leviw@chromium.org>
2901
2902         Correct LayoutUnit usage in VisiblePosition.cpp
2903         https://bugs.webkit.org/show_bug.cgi?id=81775
2904
2905         Reviewed by Eric Seidel.
2906
2907         Correcting a mismatch between the .h and .cpp for the definition of localCaretRect,
2908         and properly using LayoutUnits for local coordinates.
2909
2910         No new tests. No change in behavior.
2911
2912         * editing/VisiblePosition.cpp:
2913         (WebCore::VisiblePosition::localCaretRect): Switching to return a LayoutRect, as in the
2914         header. Local coordinates are in LayoutUnits.
2915         (WebCore::VisiblePosition::absoluteCaretBounds): Using LayoutRect for the localCaretRect.
2916         (WebCore::VisiblePosition::lineDirectionPointForBlockDirectionNavigation): Ditto.
2917
2918 2012-03-21  Adam Klein  <adamk@chromium.org>
2919
2920         "this" argument for MutationCallbacks should be the MutationObserver
2921         https://bugs.webkit.org/show_bug.cgi?id=81712
2922
2923         Reviewed by Adam Barth.
2924
2925         Test: fast/mutation/callback-arguments.html
2926
2927         * bindings/js/JSCallbackData.cpp:
2928         (WebCore::JSCallbackData::invokeCallback): Add an overload that takes
2929         an explicit this argument and have the old method call the new one.
2930         * bindings/js/JSCallbackData.h:
2931         (JSCallbackData):
2932         * bindings/js/JSMutationCallbackCustom.cpp:
2933         (WebCore::JSMutationCallback::handleEvent): Call the new overload.
2934         * bindings/v8/custom/V8CustomVoidCallback.cpp:
2935         (WebCore::invokeCallback): Add an overload that takes an explicit this
2936         argument and have the old method call the new one.
2937         * bindings/v8/custom/V8CustomVoidCallback.h:
2938         (WebCore):
2939         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
2940         (WebCore::V8MutationCallback::handleEvent): Call the new overload.
2941
2942 2012-03-21  Alexandru Chiculita  <achicu@adobe.com>
2943
2944         [CSS Shaders] Make CSS Shaders compile on Chromium
2945         https://bugs.webkit.org/show_bug.cgi?id=81435
2946
2947         Reviewed by Stephen White.
2948
2949         This patch enables the CSS Shaders compile time flag, but keeps the runtime flag disabled.
2950         The only way to test the functionality now is to use the overridePreference from dump render tree.
2951
2952         Also part of this patch I fix a layering violation: I removed the "Document" reference from the FECustomFilter.cpp and passed the
2953         HostWindow directly. There should be no problem when the HostWindow changes, because the RenderLayer and the FECustomFilter
2954         get recreated anyway.
2955
2956         No new tests. I've updated the existing custom filter tests to run under Chromium and added the expected results.
2957         I've just added window.layoutTestController.overridePreference("WebKitCSSCustomFilterEnabled", "1") to force 
2958         enable the feature at runtime. 
2959
2960         * loader/cache/CachedResource.cpp: Made CachedResource::ShaderResource report as ResourceRequest::TargetIsSubresource for Chromium.
2961         (WebCore::cachedResourceTypeToTargetType):
2962
2963         * platform/graphics/filters/FECustomFilter.cpp:
2964         (WebCore::FECustomFilter::FECustomFilter): Removed Document and just used the HostWindow directly.
2965         (WebCore::FECustomFilter::create):
2966         (WebCore::FECustomFilter::initializeContext):
2967         (WebCore::FECustomFilter::bindVertexAttribute): There was a typo and instead of using the "size" parameter it always used 4 component attribute.
2968         Other drivers didn't complain about it, but it was clearly a bug.
2969         (WebCore::FECustomFilter::bindProgramAndBuffers): Reading the image back from GPU will flip vertically the framebuffer in Chromium. I've flipped the
2970         projection matrix only on Chromium, so that we get the correct result.
2971
2972         * rendering/FilterEffectRenderer.cpp:
2973         (WebCore::FilterEffectRenderer::build): Passing the HostWindow instead of the Document.
2974
2975 2012-03-21  Mark Pilgrim  <pilgrim@chromium.org>
2976
2977         Realphabetize about webaudio move
2978         https://bugs.webkit.org/show_bug.cgi?id=81825
2979
2980         Reviewed by Adam Barth.
2981
2982         No new tests, all existing tests pass.
2983
2984         * CMakeLists.txt:
2985
2986 2012-03-21  Anders Carlsson  <andersca@apple.com>
2987
2988         Evict tiles from pages in background tabs
2989         https://bugs.webkit.org/show_bug.cgi?id=81829
2990         <rdar://problem/10866152>
2991
2992         Reviewed by Andreas Kling.
2993
2994         When the tile cache for a page is no longer in a window (which happens when it's moved to 
2995         a background tab), schedule a tile revalidation after 4 seconds. This tile revalidation 
2996         will ensure that tiles outside of the visible rect will be dropped.
2997
2998         * platform/graphics/ca/mac/TileCache.h:
2999         (TileCache):
3000         * platform/graphics/ca/mac/TileCache.mm:
3001         (WebCore::TileCache::tileCacheLayerBoundsChanged):
3002         (WebCore::TileCache::setIsInWindow):
3003         (WebCore::TileCache::tileCoverageRect):
3004         (WebCore):
3005         (WebCore::TileCache::scheduleTileRevalidation):
3006         (WebCore::TileCache::revalidateTiles):
3007
3008 2012-03-21  Stephen Chenney  <schenney@chromium.org>
3009
3010         SVG layout leaves objects still needing layout
3011         https://bugs.webkit.org/show_bug.cgi?id=81006
3012
3013         Reviewed by Nikolas Zimmermann.
3014
3015         Change the layout of SVG objects such that resources that trigger
3016         layout of other objects are handled in a distinct pass, and then
3017         objects still requiring layout are laid out again.
3018
3019         Test: svg/custom/delete-text-innerText-crash.html
3020
3021         * rendering/svg/RenderSVGResourceContainer.cpp:
3022         (WebCore::RenderSVGResourceContainer::layout):
3023         * rendering/svg/RenderSVGResourceMarker.cpp:
3024         (WebCore::RenderSVGResourceMarker::layout):
3025         * rendering/svg/RenderSVGRoot.cpp:
3026         (WebCore::RenderSVGRoot::layout):
3027         (WebCore::RenderSVGRoot::addResourceForClientInvalidation):
3028         (WebCore):
3029         * rendering/svg/RenderSVGRoot.h:
3030         (RenderSVGRoot):
3031
3032 2012-03-21  Tim Horton  <timothy_horton@apple.com>
3033
3034         Make use of CG rounded-rect primitives
3035         https://bugs.webkit.org/show_bug.cgi?id=79932
3036         <rdar://problem/9274953>
3037
3038         Reviewed by Simon Fraser.
3039
3040         Portions of patch by Nikolas Zimmermann and Mustafizur Rahaman.
3041
3042         Dispatch to potentially platform-specific rounded rectangle path
3043         construction from addPathForRoundedRect. Make use of this to call
3044         wkCGPathAddRoundedRect on Lion and above, as long as the rounded
3045         corners are all equivalent.
3046
3047         The origin of the stroke dash differs between the bezier approach
3048         and the path added by wkCGPathAddRoundedRect, so Path::addRoundedRect()
3049         takes a new parameter allowing code which is sensitive to stroke dash
3050         origin (i.e. SVG) to fall back to the old behavior if need be.
3051
3052         Make use of the new Path::addRoundedRect() parameter to fall back to
3053         the old (bezier) rounded-rect behavior when constructing a dashed SVG path,
3054         in order to continue complying with the spec.
3055
3056         No new tests, as this is covered by many that use rounded corners,
3057         and is only a performance improvement.
3058
3059         * WebCore.exp.in:
3060         * platform/graphics/Path.cpp:
3061         (WebCore::Path::addRoundedRect):
3062         (WebCore):
3063         (WebCore::Path::addPathForRoundedRect):
3064         * platform/graphics/Path.h:
3065         (Path):
3066         * platform/graphics/cg/PathCG.cpp:
3067         (WebCore::Path::platformAddPathForRoundedRect):
3068         (WebCore):
3069         * platform/mac/WebCoreSystemInterface.h:
3070         * platform/mac/WebCoreSystemInterface.mm:
3071         * rendering/svg/SVGPathData.cpp:
3072         (WebCore::updatePathFromRectElement):
3073
3074 2012-03-21  David Reveman  <reveman@chromium.org>
3075
3076         [Chromium] GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query support.
3077         https://bugs.webkit.org/show_bug.cgi?id=80988
3078
3079         Reviewed by Adrienne Walker.
3080
3081         Expose EXT_occlusion_query API to WebKit compositor. Add
3082         GL_EXT_occlusion_query_boolean and GL_CHROMIUM_command_buffer_query
3083         enums.
3084
3085         * platform/graphics/chromium/Extensions3DChromium.h:
3086         (Extensions3DChromium):
3087
3088 2012-03-21  Tony Chang  <tony@chromium.org>
3089
3090         compute the sign of flexibility for new flexbox
3091         https://bugs.webkit.org/show_bug.cgi?id=81722
3092
3093         Reviewed by Ojan Vafai.
3094
3095         This implements the computation of the sign of flexibility used by the
3096         new flexing algorithm.
3097         http://dev.w3.org/csswg/css3-flexbox/#resolve-the-flexible-lengths
3098
3099         No new tests, we don't use the sign of flexibility yet.
3100
3101         * rendering/RenderFlexibleBox.cpp:
3102         (WebCore::RenderFlexibleBox::layoutFlexItems):
3103         (WebCore::RenderFlexibleBox::computeNextFlexLine): Compute the size
3104         adjusted for min/max as well as not adjusted.
3105         (WebCore::RenderFlexibleBox::resolveFlexibleLengths): Renamed to match
3106         spec text better.
3107         * rendering/RenderFlexibleBox.h: Added enum for flex sign.
3108
3109 2012-03-21  Vsevolod Vlasov  <vsevik@chromium.org>
3110
3111         Web Inspector: Extract WebInspector.UIBreakpoint from WebInspector.Breakpoint.
3112         https://bugs.webkit.org/show_bug.cgi?id=81669
3113
3114         Reviewed by Pavel Feldman.
3115
3116         * inspector/front-end/BreakpointManager.js:
3117         (WebInspector.BreakpointManager.get for):
3118         (WebInspector.BreakpointManager):
3119         (WebInspector.BreakpointManager.prototype.uiSourceCodeAdded):
3120         (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
3121         (WebInspector.BreakpointManager.prototype.breakpointsForUISourceCode):
3122         (WebInspector.BreakpointManager.prototype.setBreakpoint):
3123         (WebInspector.BreakpointManager.prototype.removeBreakpoint):
3124         (WebInspector.BreakpointManager.prototype._innerRemoveBreakpoint):
3125         (WebInspector.BreakpointManager.prototype.removeAllBreakpoints):
3126         (WebInspector.BreakpointManager.prototype._moveBreakpointInUI):
3127         (WebInspector.BreakpointManager.prototype._uiBreakpoints.get this):
3128         (WebInspector.BreakpointManager.prototype._uiBreakpoints):
3129         (WebInspector.BreakpointManager.prototype.get _uiBreakpoint):
3130         (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
3131         (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
3132         (WebInspector.BreakpointManager.prototype._breakpoints):
3133         (WebInspector.BreakpointManager.prototype._breakpoint):
3134         (WebInspector.BreakpointManager.prototype._addBreakpointToModel):
3135         (WebInspector.BreakpointManager.prototype._removeBreakpointFromModel):
3136         (WebInspector.BreakpointManager.prototype._forEachBreakpoint):
3137         (WebInspector.BreakpointManager.prototype._setBreakpointInDebugger):
3138         (WebInspector.BreakpointManager.prototype._removeBreakpointFromDebugger):
3139         (WebInspector.BreakpointManager.prototype.debuggerReset):
3140         (WebInspector.Breakpoint.prototype.serialize):
3141         (WebInspector.Breakpoint.prototype.get uiBreakpoint):
3142         (WebInspector.Breakpoint.prototype.createUIBreakpoint):
3143         (WebInspector.Breakpoint.prototype.removeUIBreakpoint):
3144         (WebInspector.UIBreakpoint):
3145         * inspector/front-end/DebuggerPresentationModel.js:
3146         (WebInspector.DebuggerPresentationModel.prototype._handleUISourceCodeListChanged):
3147         (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
3148         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
3149         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
3150         * inspector/front-end/ScriptsPanel.js:
3151
3152 2012-03-21  Anders Carlsson  <andersca@apple.com>
3153
3154         TileCache needs to know if its containing page is in a window
3155         https://bugs.webkit.org/show_bug.cgi?id=81821
3156
3157         Reviewed by Andreas Kling.
3158
3159         This is in preparation for throwing away invisible tiles in background tabs to reduce memory usage.
3160
3161         * page/FrameView.cpp:
3162         (WebCore::FrameView::didMoveOnscreen):
3163         (WebCore::FrameView::willMoveOffscreen):
3164         * page/Page.cpp:
3165         (WebCore::Page::Page):
3166         (WebCore::Page::didMoveOnscreen):
3167         (WebCore::Page::willMoveOffscreen):
3168         * page/Page.h:
3169         (WebCore::Page::isOnscreen):
3170         (Page):
3171         * platform/graphics/TiledBacking.h:
3172         (TiledBacking):
3173         * platform/graphics/ca/mac/TileCache.h:
3174         (TileCache):
3175         * platform/graphics/ca/mac/TileCache.mm:
3176         (WebCore::TileCache::TileCache):
3177         (WebCore::TileCache::setIsInWindow):
3178         (WebCore):
3179         * rendering/RenderLayerBacking.cpp:
3180         (WebCore::RenderLayerBacking::RenderLayerBacking):
3181
3182 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
3183
3184         Web audio layout test failed in debug with an ASSERT error in ReverbConvolverStage.cpp
3185         https://bugs.webkit.org/show_bug.cgi?id=81744
3186
3187         Reviewed by Chris Rogers.
3188
3189         * platform/audio/ReverbConvolverStage.cpp:
3190         (WebCore::ReverbConvolverStage::ReverbConvolverStage):
3191
3192 2012-03-21  Xiaomei Ji  <xji@chromium.org>
3193
3194         [chromium] Font fallback in cr-win is wrong for string contains zero-width-space.
3195         https://bugs.webkit.org/show_bug.cgi?id=79961
3196
3197         Reviewed by Adam Barth.
3198
3199         Treat zero-width-space (\u200B) as true for treatAsZeroWidthSpaceInComplexScipt().
3200
3201         * platform/graphics/Font.h:
3202         (WebCore::Font::treatAsZeroWidthSpaceInComplexScript):
3203         * platform/graphics/mac/ComplexTextController.cpp:
3204         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
3205         * platform/graphics/win/UniscribeController.cpp:
3206         (WebCore::UniscribeController::shapeAndPlaceItem):
3207
3208 2012-03-21  Patrick Gansterer  <paroga@webkit.org>
3209
3210         Build fix for !ENABLE(INSPECTOR) after r111005.
3211
3212         * inspector/ContentSearchUtils.h:
3213
3214 2012-03-21  Ulan Degenbaev  <ulan@chromium.org>
3215
3216         [V8] V8GCForContextDispose should indicate whether a context is disposed for the main frame or not
3217         https://bugs.webkit.org/show_bug.cgi?id=81200
3218
3219         Reviewed by Adam Barth.
3220
3221         Pass a hint to V8::IdleNotification that requests more aggressive GC
3222         when a main frame context is disposed and requests incremental GC otherwise.
3223
3224         * bindings/v8/V8DOMWindowShell.cpp:
3225         (WebCore::V8DOMWindowShell::disposeContextHandles):
3226         * bindings/v8/V8GCForContextDispose.cpp:
3227         (WebCore::V8GCForContextDispose::V8GCForContextDispose):
3228         (WebCore::V8GCForContextDispose::notifyContextDisposed):
3229         (WebCore::V8GCForContextDispose::pseudoIdleTimerFired):
3230         * bindings/v8/V8GCForContextDispose.h:
3231         (V8GCForContextDispose):
3232
3233 2012-03-21  Nat Duca  <nduca@chromium.org>
3234
3235         [chromium] CCThreadProxy must initialize frameBeginTime to monotonicallyIncreasingTime rather than zero
3236         https://bugs.webkit.org/show_bug.cgi?id=81790
3237
3238         Reviewed by James Robinson.
3239
3240         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
3241         (WebCore::CCThreadProxy::scheduledActionBeginFrame):
3242
3243 2012-03-21  Xingnan Wang  <xingnan.wang@intel.com>
3244
3245         Add multichannel support in RealtimeAnalyser
3246         https://bugs.webkit.org/show_bug.cgi?id=81745
3247
3248         Reviewed by Chris Rogers.
3249
3250         * Modules/webaudio/RealtimeAnalyser.cpp:
3251         (WebCore::RealtimeAnalyser::writeInput):
3252         (WebCore):
3253
3254 2012-03-21  Eric Carlson  <eric.carlson@apple.com>
3255
3256         Removing HTMLTrackElement does not delete TextTrack
3257         https://bugs.webkit.org/show_bug.cgi?id=80873
3258
3259         Reviewed by Antti Koivisto.
3260
3261         No new tests, but media/track/track-language-preference.html has been updated
3262         to test this fix.
3263
3264         * html/HTMLMediaElement.cpp:
3265         (WebCore::HTMLMediaElement::didAddTrack): Renamed from trackWasAdded.
3266         (WebCore::HTMLMediaElement::willRemoveTrack): Renamed from trackWasRemoved because it is
3267         called before the track is removed, to allow the TextTrack to be removed.
3268         * html/HTMLMediaElement.h:
3269
3270         * html/HTMLTrackElement.cpp:
3271         (WebCore::HTMLTrackElement::insertedIntoTree): Renamed from insertedIntoDocument
3272         (WebCore::HTMLTrackElement::willRemove): Renamed from removedFromDocument.
3273         * html/HTMLTrackElement.h:
3274
3275         * html/track/LoadableTextTrack.cpp:
3276         (WebCore::LoadableTextTrack::trackElementIndex): Don't include tracks that are not in the
3277         document in the calcualtion.
3278
3279 2012-03-21  Zeno Albisser  <zeno@webkit.org>
3280
3281         [Qt][Mac] ranlib segfaults when creating symbol tables for libWebCore.a.
3282         https://bugs.webkit.org/show_bug.cgi?id=81750
3283
3284         Building WebCore on mac currently creates an archive that is bigger than
3285         4GB. But ranlib fails to create a symbol table for such a big archive,
3286         even on 64bit machines.
3287         Therefore we start using SVGAllInOne.cpp when building debug
3288         on mac. This reduces the size of the archive by about 300MB.
3289
3290         Reviewed by Tor Arne Vestbø.
3291
3292         * Target.pri:
3293
3294 2012-03-21  Tommy Widenflycht  <tommyw@google.com>
3295
3296         [chromium] MediaStream API (JSEP): Introducing WebSessionDescription and WebIceCandidate
3297         https://bugs.webkit.org/show_bug.cgi?id=81339
3298
3299         Reviewed by Adam Barth.
3300
3301         Not possible to test until the entire JSEP feature is commited.
3302
3303         * Modules/mediastream/IceCandidate.cpp:
3304         (WebCore::IceCandidate::toSdp):
3305         * Modules/mediastream/SessionDescription.cpp:
3306         (WebCore::SessionDescription::toSdp):
3307         * platform/mediastream/IceCandidateDescriptor.cpp:
3308         (WebCore::IceCandidateDescriptor::toSDP):
3309         * platform/mediastream/IceCandidateDescriptor.h:
3310         (IceCandidateDescriptor):
3311         * platform/mediastream/MediaStreamCenter.cpp:
3312         (WebCore::MediaStreamCenter::constructSDP):
3313         * platform/mediastream/MediaStreamCenter.h:
3314         (MediaStreamCenter):
3315         * platform/mediastream/SessionDescriptionDescriptor.cpp:
3316         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
3317         (WebCore::SessionDescriptionDescriptor::toSDP):
3318         (WebCore::SessionDescriptionDescriptor::initialSDP):
3319         * platform/mediastream/SessionDescriptionDescriptor.h:
3320         (SessionDescriptionDescriptor):
3321
3322 2012-03-21  Yuta Kitamura  <yutak@chromium.org>
3323
3324         Use RFC version of WebSocket protocol by default
3325         https://bugs.webkit.org/show_bug.cgi?id=81718
3326
3327         Reviewed by Kent Tamura.
3328
3329         Flip the default value of Settings::m_useHixie76WebSocketProtocol so WebKit ports will use
3330         RFC version of WebSocket protocol by default.
3331
3332         All the existing ports already use the RFC protocol as of now, so this change will not make
3333         any impact (hopefully).
3334
3335         No new tests. No change in functionality.
3336
3337         * page/Settings.cpp:
3338         (WebCore::Settings::Settings):
3339
3340 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
3341
3342         Web Inspector: only show JS event listeners in Event Listeners tab of Elements panel
3343         https://bugs.webkit.org/show_bug.cgi?id=81798
3344
3345         Reviewed by Pavel Feldman.
3346
3347         * bindings/js/JSInjectedScriptHostCustom.cpp:
3348         (WebCore::getJSListenerFunctions):
3349         * bindings/js/ScriptEventListener.cpp:
3350         (WebCore::eventListenerHandlerBody):
3351         (WebCore::eventListenerHandlerLocation):
3352         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3353         (WebCore::getJSListenerFunctions):
3354         * inspector/InspectorDOMAgent.cpp:
3355         (WebCore::InspectorDOMAgent::getEventListeners):
3356
3357 2012-03-21  Andrey Kosyakov  <caseq@chromium.org>
3358
3359         EventListener::Type enum has unused member InspectorDOMAgentType
3360         https://bugs.webkit.org/show_bug.cgi?id=81794
3361
3362         Reviewed by Pavel Feldman.
3363
3364         * dom/EventListener.h:
3365
3366 2012-03-21  Tom Hudson  <tomhudson@google.com>
3367
3368         Incremental cleanup of BitmapImage: inlined virtual functions
3369         https://bugs.webkit.org/show_bug.cgi?id=81688
3370
3371         Reviewed by James Robinson.
3372
3373         No change in functionality, so no new tests.
3374
3375         Move virtual functions defined in headers into .cpp files.
3376
3377         * WebCore.gypi:
3378         * platform/graphics/BitmapImage.cpp:
3379         (WebCore::BitmapImage::isBitmapImage):
3380         (WebCore):
3381         (WebCore::BitmapImage::hasSingleSecurityOrigin):
3382         (WebCore::BitmapImage::nativeImageForCurrentFrame):
3383         (WebCore::BitmapImage::currentFrameHasAlpha):
3384         (WebCore::BitmapImage::notSolidColor):
3385         (WebCore::BitmapImage::decodedSize):
3386         (WebCore::BitmapImage::mayFillWithSolidColor):
3387         (WebCore::BitmapImage::solidColor):
3388         * platform/graphics/BitmapImage.h:
3389         (BitmapImage):
3390         * platform/graphics/skia/BitmapImageSingleFrameSkia.cpp: Added.
3391         (WebCore):
3392         (WebCore::BitmapImageSingleFrameSkia::isBitmapImage):
3393         (WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
3394         (WebCore::BitmapImageSingleFrameSkia::size):
3395         (WebCore::BitmapImageSingleFrameSkia::destroyDecodedData):
3396         (WebCore::BitmapImageSingleFrameSkia::decodedSize):
3397         (WebCore::BitmapImageSingleFrameSkia::nativeImageForCurrentFrame):
3398         (WebCore::BitmapImageSingleFrameSkia::notSolidColor):
3399         * platform/graphics/skia/BitmapImageSingleFrameSkia.h:
3400         (BitmapImageSingleFrameSkia):
3401
3402 2012-03-21  Alexey Proskuryakov  <ap@apple.com>
3403
3404         Remove obsolete File attributes
3405         https://bugs.webkit.org/show_bug.cgi?id=79383
3406
3407         Reviewed by Hajime Morita.
3408
3409         * bindings/objc/PublicDOMInterfaces.h:
3410         * fileapi/File.h:
3411         * fileapi/File.idl:
3412         Removed fileName and fileSize, they have different names now.
3413
3414         * html/FileInputType.cpp:
3415         (WebCore::FileInputType::appendFormData):
3416         (WebCore::FileInputType::getTypeSpecificValue):
3417         (WebCore::FileInputType::defaultToolTip):
3418         Updated to use new function names.
3419
3420 2012-03-21  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3421
3422         TiledBackingStore: Create the first round of tiles synchronously after setting the visible rect.
3423         https://bugs.webkit.org/show_bug.cgi?id=81762
3424
3425         Reviewed by Kenneth Rohde Christiansen.
3426
3427         The first round of tiles should cover completely the visible rect.
3428         Creating the tiles synchronously allows us to get the new tiles immediately
3429         and prevents an extra AC layers sync to be able to remove the old tiles.
3430
3431         At some point it might also make sense to remove the tile creation timer
3432         completely.
3433
3434         * platform/graphics/TiledBackingStore.cpp:
3435         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
3436
3437 2012-03-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3438
3439         TiledBackingStore: When checking if the visible area is covered, only convert to scaled coordinates once.
3440         https://bugs.webkit.org/show_bug.cgi?id=81519
3441
3442         Reviewed by Kenneth Rohde Christiansen.
3443
3444         Both visibleRect and coverageRatio call mapFromContents on the input rect,
3445         this woulc cause the coverageRatio to never reach 1.0 when the contents is
3446         scaled up.
3447
3448         * platform/graphics/TiledBackingStore.cpp:
3449         (WebCore::TiledBackingStore::visibleAreaIsCovered):
3450
3451 2012-03-21  Mao Yujie  <yujie.mao@intel.com>
3452
3453         MediaStream API: Need to support MediaStream constructor for JSC
3454         https://bugs.webkit.org/show_bug.cgi?id=78781
3455
3456         Reviewed by Adam Barth.
3457
3458         No new tests.
3459
3460         * Modules/mediastream/DOMWindowMediaStream.idl:
3461         * bindings/generic/RuntimeEnabledFeatures.h:
3462         (WebCore::RuntimeEnabledFeatures::webkitMediaStreamEnabled):
3463
3464 2012-03-21  Philip Rogers  <pdr@google.com>
3465
3466         Skip building resources if SVGTRef is not in a document
3467         https://bugs.webkit.org/show_bug.cgi?id=81473
3468
3469         Reviewed by Nikolas Zimmermann.
3470
3471         We can skip the building of pending resources in SVGTRef if we're not
3472         yet in a document. This mirrors the nearly identical logic in
3473         SVGUseElement::buildPendingResource() and
3474         SVGFEImageElement::buildPendingResource().
3475
3476         Test: http/tests/svg/tref-adoptNode-crash.html