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