[chromium] Add overdraw metrics for texture uploads
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-03-16  Dana Jansens  <danakj@chromium.org>
2
3         [chromium] Add overdraw metrics for texture uploads
4         https://bugs.webkit.org/show_bug.cgi?id=81175
5
6         Reviewed by Adrienne Walker.
7
8         Record texture upload metrics during paint. To properly record
9         the amount of pixels culled, we must compute the amount of pixels we
10         would have uploaded for a tile. This requires knowing the dirty rect of
11         the tile, but the dirty rect can be changed by WebKit during a paint, so
12         we always store the dirtyRect in the tile's updateRect. We add an
13         m_updateCulled bool to the UpdatableTile structure, to identify tiles
14         that were not updated, and know a tile was updated if updateRect is not
15         empty and updateCulled is false.
16
17         Tested by all TiledLayerChromiumTests that use occlusion tracker.
18
19         * platform/graphics/chromium/TiledLayerChromium.cpp:
20         (UpdatableTile):
21         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
22         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
23         (WebCore::CCLayerTreeHost::paintLayerContents):
24
25 2012-03-16  Jer Noble  <jer.noble@apple.com>
26
27         Allow AudioContext::create() to emit an ExceptionCode.
28         https://bugs.webkit.org/show_bug.cgi?id=81049
29
30         Reviewed by Kentaro Hara.
31
32         No new tests; no change in functionality.
33
34         Pass through an ExceptionCode parameter to AudioContext::create().  It is currently
35         never modified, but exceptions will be added in the future.
36
37         * bindings/js/JSAudioContextCustom.cpp:
38         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
39         * bindings/v8/custom/V8AudioContextCustom.cpp:
40         (WebCore::V8AudioContext::constructorCallback):
41         * webaudio/AudioContext.cpp:
42         (WebCore::AudioContext::create):
43         * webaudio/AudioContext.h:
44
45 2012-03-16  Dana Jansens  <danakj@chromium.org>
46
47         [chromium] Remove surface damage client from occlusion tracker
48         https://bugs.webkit.org/show_bug.cgi?id=81242
49
50         Reviewed by Adrienne Walker.
51
52         Code was not used yet, so no new tests. Removing tests instead!
53
54         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
55         (WebCore::::CCOcclusionTrackerBase):
56         (WebCore::::layerScissorRectInTargetSurface):
57         (WebCore):
58         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
59         (WebCore):
60         (CCOcclusionTrackerBase):
61
62 2012-03-16  Tommy Widenflycht  <tommyw@google.com>
63
64         MediaStream API (JSEP): Introducing PeerConnection00Handler
65         https://bugs.webkit.org/show_bug.cgi?id=81333
66
67         Reviewed by Adam Barth.
68
69         In preparation of the last WebCore patch that will introduce PeerConnection00 here's its platform representation.
70
71         Not possible to test until the entire JSEP feature is commited.
72
73         * GNUmakefile.list.am:
74         * WebCore.gypi:
75         * platform/mediastream/PeerConnection00Handler.cpp: Added.
76         (WebCore):
77         (WebCore::PeerConnection00Handler::create):
78         (WebCore::PeerConnection00Handler::PeerConnection00Handler):
79         (WebCore::PeerConnection00Handler::~PeerConnection00Handler):
80         (WebCore::PeerConnection00Handler::createOffer):
81         (WebCore::PeerConnection00Handler::createAnswer):
82         (WebCore::PeerConnection00Handler::setLocalDescription):
83         (WebCore::PeerConnection00Handler::setRemoteDescription):
84         (WebCore::PeerConnection00Handler::localDescription):
85         (WebCore::PeerConnection00Handler::remoteDescription):
86         (WebCore::PeerConnection00Handler::startIce):
87         (WebCore::PeerConnection00Handler::processIceMessage):
88         (WebCore::PeerConnection00Handler::addStream):
89         (WebCore::PeerConnection00Handler::removeStream):
90         (WebCore::PeerConnection00Handler::stop):
91         * platform/mediastream/PeerConnection00Handler.h: Added.
92         (WebCore):
93         (PeerConnection00Handler):
94         * platform/mediastream/PeerConnection00HandlerClient.h: Added.
95         (WebCore):
96         (PeerConnection00HandlerClient):
97         (WebCore::PeerConnection00HandlerClient::~PeerConnection00HandlerClient):
98
99 2012-03-16  Pavel Podivilov  <podivilov@chromium.org>
100
101         Web Inspector: fix exception when hovering over bound function in heap profiler.
102         https://bugs.webkit.org/show_bug.cgi?id=81362
103
104         Reviewed by Yury Semikhatsky.
105
106         * inspector/front-end/DebuggerPresentationModel.js:
107         (WebInspector.DebuggerPresentationModel.Linkifier.prototype.linkifyRawLocation):
108
109 2012-03-16  Yoshifumi Inoue  <yosin@chromium.org>
110
111         [Forms] The "progress" element should not be a form-associated element.
112         https://bugs.webkit.org/show_bug.cgi?id=80240
113
114         Reviewed by Kent Tamura.
115
116         This patch changes base class of HTMLProgressElement to LabelableElement from
117         HTMLFormControlElement for saving memory space and iteration time of
118         extra "progress" elements in HTMLFormElement::m_formAssociatedElements
119         and matching the HTML5 specification for ease of maintenance.
120
121         Changes of TextIterator is lead by usage of isFormControlElement. This
122         changes will be replaced with more meaningful predicate as part of
123         https://bugs.webkit.org/show_bug.cgi?id=80381
124
125         No new tests. Update existing tests to cover this change.
126
127         * css/CSSStyleSelector.cpp:
128         (WebCore::CSSStyleSelector::canShareStyleWithElement): Moved the "progress" element support code from canShareStyleWithControl.
129         (WebCore::CSSStyleSelector::canShareStyleWithControl):
130         * css/SelectorChecker.cpp:
131         (WebCore::SelectorChecker::checkOneSelector): Remove isFormControlElement check for PseudoIndeterminate.
132         * editing/TextIterator.cpp:
133         (WebCore::TextIterator::advance): Check HTMLProgressElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
134         * html/HTMLProgressElement.cpp: Remove unused include file.
135         (WebCore::HTMLProgressElement::HTMLProgressElement): Changed base class to LabelableElement.
136         (WebCore::HTMLProgressElement::create): Remove form paraprogress.
137         (WebCore::HTMLProgressElement::parseAttribute): Replace HTMLFormControlElement to LabelableElement.
138         (WebCore::HTMLProgressElement::attach): Replace HTMLFormControlElement to LabelableElement.
139         * html/HTMLProgressElement.h:
140         (HTMLProgressElement):
141         * html/HTMLProgressElement.idl: Remove the "form" attribute which isn't listed in the HTML5 specification.
142         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
143
144 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
145
146         Web Inspector: Heap Snapshot: Unreviewed single line fix for isWindow getter.
147
148         * inspector/front-end/HeapSnapshot.js:
149         (WebInspector.HeapSnapshotNode.prototype.get isWindow):
150
151 2012-03-16  Tommy Widenflycht  <tommyw@google.com>
152
153         MediaStream API (JSEP): Fixing a few nits
154         https://bugs.webkit.org/show_bug.cgi?id=81322
155
156         Reviewed by Adam Barth.
157
158         Addressing the nits from bugs 81206 and 81207.
159
160         Nothing to test.
161
162         * Modules/mediastream/SessionDescription.idl:
163         * platform/mediastream/IceOptions.h:
164         (WebCore::IceOptions::IceOptions):
165         * platform/mediastream/SessionDescriptionDescriptor.h:
166         (SessionDescriptionDescriptor):
167
168 2012-03-16  Peter Rybin  <peter.rybin@gmail.com>
169
170         Web Inspector: TypeBuilder: Introduce OptOutput class for optional output parameters
171         https://bugs.webkit.org/show_bug.cgi?id=80789
172
173         Reviewed by Yury Semikhatsky.
174
175         OptOutput class is added for optional return parameters.
176
177         Strict mode added to Generator that makes all parameter types strict
178         and drop pre-set default values for return parameters.
179
180         Debugger and Page domain is switched to strict mode.
181
182         * inspector/CodeGeneratorInspector.py:
183         (CommandReturnPassModel.OptOutput):
184         (CommandReturnPassModel.OptOutput.__init__):
185         (CommandReturnPassModel.OptOutput.get_return_var_type):
186         (CommandReturnPassModel.OptOutput.get_output_argument_prefix):
187         (CommandReturnPassModel.OptOutput.get_output_to_raw_expression):
188         (CommandReturnPassModel.OptOutput.get_output_parameter_type):
189         (CommandReturnPassModel):
190         (CommandReturnPassModel.OptOutput.get_set_return_condition):
191         (TypeModel.Enum.get_optional.EnumOptional.get_command_return_pass_model):
192         (TypeModel.ValueType.ValueOptional.get_command_return_pass_model):
193         (OptOutput):
194         (Generator.process_event):
195         (Generator.process_command):
196         * inspector/ContentSearchUtils.cpp:
197         (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
198         (WebCore::ContentSearchUtils::searchInTextByLines):
199         * inspector/ContentSearchUtils.h:
200         (ContentSearchUtils):
201         * inspector/InjectedScript.cpp:
202         (WebCore::InjectedScript::evaluate):
203         (WebCore::InjectedScript::callFunctionOn):
204         (WebCore::InjectedScript::evaluateOnCallFrame):
205         (WebCore::InjectedScript::makeEvalCall):
206         * inspector/InjectedScript.h:
207         (InjectedScript):
208         * inspector/InspectorDOMDebuggerAgent.cpp:
209         (WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
210         (WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
211         (WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
212         (WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
213         (WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
214         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
215         * inspector/InspectorDebuggerAgent.cpp:
216         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
217         (WebCore::InspectorDebuggerAgent::setBreakpoint):
218         (WebCore::InspectorDebuggerAgent::searchInContent):
219         (WebCore::InspectorDebuggerAgent::setScriptSource):
220         (WebCore::InspectorDebuggerAgent::getFunctionDetails):
221         (WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
222         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
223         (WebCore::InspectorDebuggerAgent::didPause):
224         (WebCore::InspectorDebuggerAgent::breakProgram):
225         (WebCore::InspectorDebuggerAgent::clearBreakDetails):
226         * inspector/InspectorDebuggerAgent.h:
227         (InspectorDebuggerAgent):
228         * inspector/InspectorPageAgent.cpp:
229         (WebCore::buildObjectForCookie):
230         (WebCore::buildArrayForCookies):
231         (WebCore::InspectorPageAgent::getCookies):
232         (WebCore::InspectorPageAgent::getResourceTree):
233         (WebCore::InspectorPageAgent::searchInResource):
234         (WebCore::InspectorPageAgent::searchInResources):
235         (WebCore::InspectorPageAgent::buildObjectForFrame):
236         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
237         * inspector/InspectorPageAgent.h:
238         * inspector/InspectorRuntimeAgent.cpp:
239         (WebCore::InspectorRuntimeAgent::evaluate):
240         (WebCore::InspectorRuntimeAgent::callFunctionOn):
241
242 2012-03-16  Kentaro Hara  <haraken@chromium.org>
243
244         The IDL parser should support sequence<T> type
245         https://bugs.webkit.org/show_bug.cgi?id=81345
246
247         Reviewed by Adam Barth.
248
249         This patch makes the IDL parser support sequence<T> type.
250         This patch just makes sequence<T> parseable, and the generated code
251         for sequence<T> is wrong. This issue will be soon fixed in bug 80696.
252         This is a preparing patch for bug 80696.
253
254         Test: bindings/scripts/test/TestObj.idl
255
256         * bindings/scripts/test/TestObj.idl: Added tests for sequence<T>.
257
258         * bindings/scripts/IDLStructure.pm: Updated the regular expressions to support sequence<T>.
259
260         * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated run-bindings-tests results.
261         (WebDOMTestObj::sequenceAttr):
262         (WebDOMTestObj::setSequenceAttr):
263         (WebDOMTestObj::methodWithSequenceArg):
264         (WebDOMTestObj::methodReturningSequence):
265         * bindings/scripts/test/CPP/WebDOMTestObj.h:
266         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
267         (webkit_dom_test_obj_method_with_sequence_arg):
268         (webkit_dom_test_obj_method_returning_sequence):
269         (webkit_dom_test_obj_get_sequence_attr):
270         (webkit_dom_test_obj_set_sequence_attr):
271         (webkit_dom_test_obj_get_property):
272         (webkit_dom_test_obj_class_init):
273         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
274         * bindings/scripts/test/JS/JSTestObj.cpp:
275         (WebCore):
276         (WebCore::jsTestObjSequenceAttr):
277         (WebCore::setJSTestObjSequenceAttr):
278         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
279         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
280         * bindings/scripts/test/JS/JSTestObj.h:
281         (WebCore):
282         * bindings/scripts/test/ObjC/DOMTestObj.h:
283         * bindings/scripts/test/ObjC/DOMTestObj.mm:
284         (-[DOMTestObj sequenceAttr]):
285         (-[DOMTestObj setSequenceAttr:]):
286         (-[DOMTestObj methodWithSequenceArg:]):
287         (-[DOMTestObj methodReturningSequence:]):
288         * bindings/scripts/test/V8/V8TestObj.cpp:
289         (WebCore::TestObjInternal::sequenceAttrAttrGetter):
290         (TestObjInternal):
291         (WebCore::TestObjInternal::sequenceAttrAttrSetter):
292         (WebCore::TestObjInternal::methodWithSequenceArgCallback):
293         (WebCore::TestObjInternal::methodReturningSequenceCallback):
294         (WebCore):
295         (WebCore::ConfigureV8TestObjTemplate):
296
297 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
298
299         Web Inspector: HeapSnapshot: merge two long operations into one.
300         https://bugs.webkit.org/show_bug.cgi?id=81347
301
302         Reviewed by Yury Semikhatsky.
303
304         * inspector/front-end/HeapSnapshot.js:
305         (WebInspector.HeapSnapshot.prototype.aggregates):
306         (WebInspector.HeapSnapshot.prototype._buildAggregates):
307         (WebInspector.HeapSnapshot.prototype._buildAggregates.forDominatedNodes):
308
309 2012-03-16  Gavin Peters  <gavinp@chromium.org>
310
311         Add asserts and improve logging in PageCache.
312         https://bugs.webkit.org/show_bug.cgi?id=81179
313
314         Reviewed by Brady Eidson.
315
316         The early exits from logCanCacheFrameDecision had the potential to skew histogram data.  Moving
317         the DocumentLoader check to the top, but eliminating the early exits is a compromise that keeps
318         the logged data mostly accurate.
319
320         * history/PageCache.cpp:
321         (WebCore::logCanCacheFrameDecision):
322
323 2012-03-16  Yoshifumi Inoue  <yosin@chromium.org>
324
325         [Forms] label.form attribute doesn't work
326         https://bugs.webkit.org/show_bug.cgi?id=80499
327
328         Reviewed by Kent Tamura.
329
330         This patch changes implementation of label.form of IDL attribute to
331         compute it to the form element specified by the "form" HTML attribute
332         or form ancestor when the "form" HTML attribute isn't in HTML.
333
334         This patch introduces new function FormAssociatedElement::findAssociatedForm
335         for sharing code among FormAssociateElement::insertedIntoTree, resetFormOwner
336         and HTMLLabelElement::form.
337
338         No new tests. Update existing tests.
339
340         * html/FormAssociatedElement.cpp:
341         (WebCore::FormAssociatedElement::findAssociatedForm): Added.
342         (WebCore):
343         (WebCore::FormAssociatedElement::insertedIntoTree):
344         (WebCore::FormAssociatedElement::resetFormOwner):
345         * html/FormAssociatedElement.h:
346         (FormAssociatedElement):
347         * html/HTMLLabelElement.cpp: Remove unused include files
348         (WebCore::HTMLLabelElement::form): Added.
349
350 2012-03-16  Kenneth Rohde Christiansen  <kenneth@webkit.org>
351
352         Use the normalize method of FloatPoint instead of normalizing manually
353         https://bugs.webkit.org/show_bug.cgi?id=81343
354
355         Reviewed by Simon Hausmann.
356
357         * platform/graphics/TiledBackingStore.cpp:
358         (WebCore::TiledBackingStore::coverWithTilesIfNeeded):
359         (WebCore::TiledBackingStore::computeCoverAndKeepRect):
360
361 2012-03-16  Kentaro Hara  <haraken@chromium.org>
362
363         Move Notifications APIs from DOMWindow.idl to DOMWindowNotifications.idl
364         https://bugs.webkit.org/show_bug.cgi?id=79636
365
366         Reviewed by Adam Barth.
367
368         For WebKit modularization, this patch moves Notifications-related APIs
369         from DOMWindow.idl to DOMWindowNotifications.idl.
370
371         Tests: fast/notifications/* (No change in test results)
372
373         * CMakeLists.txt: Added DOMWindowNotifications.{h,cpp,idl}.
374         * DerivedSources.make: Ditto.
375         * DerivedSources.pri: Ditto.
376         * GNUmakefile.list.am: Ditto.
377         * Target.pri: Ditto.
378         * WebCore.gypi: Ditto.
379         * WebCore.vcproj/WebCore.vcproj: Ditto.
380
381         * WebCore.exp.in: Added mangled signatures of webkitNotifications().
382
383         * notifications/DOMWindowNotifications.cpp: Added.
384         (WebCore):
385         (WebCore::DOMWindowNotifications::DOMWindowNotifications):
386         (WebCore::DOMWindowNotifications::~DOMWindowNotifications):
387         (WebCore::DOMWindowNotifications::from):
388         (WebCore::DOMWindowNotifications::webkitNotifications):
389         (WebCore::DOMWindowNotifications::ensureWebkitNotifications):
390         (WebCore::DOMWindowNotifications::disconnectFrame):
391         * notifications/DOMWindowNotifications.h: Added.
392         (WebCore):
393         (DOMWindowNotifications):
394         * notifications/DOMWindowNotifications.idl: Added.
395
396         * page/DOMWindow.cpp: Removed ENABLE(NOTIFICATIONS).
397         (WebCore::DOMWindow::~DOMWindow):
398         (WebCore::DOMWindow::willDetachPage):
399         (WebCore::DOMWindow::clear):
400         * page/DOMWindow.h: Ditto.
401         (WebCore):
402         (DOMWindow):
403         * page/DOMWindow.idl: Ditto.
404         * page/Frame.cpp: Ditto.
405         (WebCore::Frame::willDetachPage):
406         (WebCore::Frame::transferChildFrameToNewDocument):
407
408 2012-03-16  Kentaro Hara  <haraken@chromium.org>
409
410         [Performance] Optimize innerHTML and outerHTML
411         https://bugs.webkit.org/show_bug.cgi?id=81214
412
413         Reviewed by Adam Barth.
414
415         This patch makes innerHTML and outerHTML 2.4 times faster.
416
417         Performance test: https://bugs.webkit.org/attachment.cgi?id=132034
418         The performance test measures body.innerHTML for 3000 lines of HTML,
419         which is copied from the HTML spec.
420
421         - Chromium/Mac without the patch
422         div.innerHTML: 1658.6 ms
423         div.outerHTML: 4859.6 ms
424         body.innerHTML: 640.2 ms
425         body.outerHTML: 641.8 ms
426
427         - Chromium/Mac with the patch
428         div.innerHTML:  751.0 ms
429         div.outerHTML: 2096.0 ms
430         body.innerHTML: 271.2 ms
431         body.outerHTML: 271.2 ms
432
433         - Chromium/Linux without the patch
434         div.innerHTML:  950.4 ms
435         div.outerHTML: 2257.8 ms
436         body.innerHTML: 452.8 ms
437         body.outerHTML: 457.6 ms
438
439         - Chromium/Linux with the patch
440         div.innerHTML:  582.4 ms
441         div.outerHTML: 1283.0 ms
442         body.innerHTML: 233.0 ms
443         body.outerHTML: 233.4 ms
444
445         - AppleWebKit/Mac without the patch
446         div.innerHTML:  900.6 ms
447         div.outerHTML: 2245.2 ms
448         body.innerHTML: 462.6 ms
449         body.outerHTML: 468.0 ms
450
451         - AppleWebKit/Mac with the patch
452         div.innerHTML:  529.8  ms
453         div.outerHTML: 1090.2 ms
454         body.innerHTML: 239.2 ms
455         body.outerHTML: 239.2 ms
456
457         This patch applies the following two optimizations:
458
459         (a) Remove redundant copies between Vector<String> and StringBuilders
460         in MarkupAccumulator::serializeNodes(), MarkupAccumulator::appendStartTag(),
461         and MarkupAccumulator::appendEndTag().
462
463             (Previous behavior)
464             - Create a StringBuilder for each tag.
465             - Append a created string in each StringBuilder to Vector<String>,
466               parsing the DOM tree.
467             - After the parsing, allocate a StringBuilder whose size is the sum
468               of all Strings in Vector<String>.
469             - Append all Strings in Vector<String> to the StringBuilder.
470             (New behavior)
471             - Allocate a StringBuilder with a default buffer size.
472             - Append created strings to the StringBuilder, incrementally parsing
473               the DOM tree.
474
475         (b) Optimize stringBuilder.append().
476             (b-1) Replace stringBuilder.append("A") with stringBuilder.append('A').
477                   stringBuilder.append("A") requires to cast the characters to LChar*,
478                   and then call strlen("A"). stringBuilder.append('A') is faster.
479             (b-2) Replace stringBuilder.append("AB") with stringBuilder.append('A')
480                   and stringBuilder.append('B'). In my experiment, appending characters
481                   one by one is faster than appending the characters at a breath if the
482                   number of characters is less than 3.
483             (b-3) Hard-code a string length; i.e. replace stringBuilder.append("ABCDE")
484                   with stringBuilder.append("ABCDE", 5). While the former requires to call
485                   strlen("ABCDE"), the latter does not.
486
487         (a) improves performance by 170% ~ 200%. (b) improves performance by 30 ~ 40%.
488
489         Tests: fast/dom/Range/range-extract-contents.html
490                fast/dom/serialize-nodes.xhtml
491                fast/dom/XMLSerializer.html
492                and all other tests that use innerHTML or outerHTML.
493                No change in the test results.
494
495         * editing/MarkupAccumulator.cpp:
496         (WebCore::MarkupAccumulator::serializeNodes):
497         (WebCore::MarkupAccumulator::appendString):
498         (WebCore::MarkupAccumulator::appendStartTag):
499         (WebCore::MarkupAccumulator::appendEndTag):
500         (WebCore::MarkupAccumulator::concatenateMarkup):
501         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
502         (WebCore::MarkupAccumulator::appendComment):
503         (WebCore::MarkupAccumulator::appendDocumentType):
504         (WebCore::MarkupAccumulator::appendProcessingInstruction):
505         (WebCore::MarkupAccumulator::appendOpenTag):
506         (WebCore::MarkupAccumulator::appendAttribute):
507         (WebCore::MarkupAccumulator::appendCDATASection):
508         * editing/MarkupAccumulator.h:
509         (MarkupAccumulator):
510
511 2012-03-16  Kihong Kwon  <kihong.kwon@samsung.com>
512
513         Support for Battery Status API
514         https://bugs.webkit.org/show_bug.cgi?id=62698
515
516         Battery Status API is implemented under the Navigator class.
517         Battery Status API has four types of events, and all events are operated based on a callback mechanism.
518          : onchargingchange, onchargingtimechange, ondischargingtimechange, onlevelchange.
519         The battery status can be accessed using BatteryManager(navigator.webkitBattery), and battery status is controlled by BatteryController which manages instances of BatteryManager.
520         When battery status event is raised, BatteryController calls all registered BatteryManager's event dispatcher.
521         http://www.w3.org/TR/battery-status/
522
523         Reviewed by Adam Barth.
524
525         Tests: batterystatus/add-listener-from-callback.html
526                batterystatus/basic-all-types-of-events.html
527                batterystatus/basic-operation.html
528                batterystatus/event-after-navigation.html
529                batterystatus/multiple-frames.html
530                batterystatus/updates.html
531                batterystatus/window-property.html
532
533         * CMakeLists.txt:
534         * Modules/battery/BatteryClient.h: Added.
535         (WebCore):
536         (BatteryClient):
537         (WebCore::BatteryClient::~BatteryClient):
538         * Modules/battery/BatteryController.cpp: Added.
539         (WebCore):
540         (WebCore::BatteryController::BatteryController):
541         (WebCore::BatteryController::~BatteryController):
542         (WebCore::BatteryController::create):
543         (WebCore::BatteryController::addListener):
544         (WebCore::BatteryController::removeListener):
545         (WebCore::BatteryController::didChangeBatteryStatus):
546         (WebCore::BatteryController::supplementName):
547         (WebCore::BatteryController::isActive):
548         (WebCore::provideBatteryTo):
549         * Modules/battery/BatteryController.h: Added.
550         (WebCore):
551         (BatteryController):
552         (WebCore::BatteryController::client):
553         (WebCore::BatteryController::from):
554         * Modules/battery/BatteryManager.cpp: Added.
555         (WebCore):
556         (WebCore::BatteryManager::create):
557         (WebCore::BatteryManager::~BatteryManager):
558         (WebCore::BatteryManager::BatteryManager):
559         (WebCore::BatteryManager::charging):
560         (WebCore::BatteryManager::chargingTime):
561         (WebCore::BatteryManager::dischargingTime):
562         (WebCore::BatteryManager::level):
563         (WebCore::BatteryManager::didChangeBatteryStatus):
564         (WebCore::BatteryManager::suspend):
565         (WebCore::BatteryManager::resume):
566         (WebCore::BatteryManager::stop):
567         * Modules/battery/BatteryManager.h: Added.
568         (WebCore):
569         (BatteryManager):
570         (WebCore::BatteryManager::interfaceName):
571         (WebCore::BatteryManager::scriptExecutionContext):
572         (WebCore::BatteryManager::batteryControllerDestroyed):
573         (WebCore::BatteryManager::canSuspend):
574         (WebCore::BatteryManager::eventTargetData):
575         (WebCore::BatteryManager::ensureEventTargetData):
576         (WebCore::BatteryManager::refEventTarget):
577         (WebCore::BatteryManager::derefEventTarget):
578         * Modules/battery/BatteryManager.idl: Added.
579         * Modules/battery/BatteryStatus.cpp: Added.
580         (WebCore):
581         (WebCore::BatteryStatus::create):
582         (WebCore::BatteryStatus::BatteryStatus):
583         * Modules/battery/BatteryStatus.h: Added.
584         (WebCore):
585         (BatteryStatus):
586         (WebCore::BatteryStatus::charging):
587         (WebCore::BatteryStatus::chargingTime):
588         (WebCore::BatteryStatus::dischargingTime):
589         (WebCore::BatteryStatus::level):
590         * Modules/battery/NavigatorBattery.cpp: Added.
591         (WebCore):
592         (WebCore::NavigatorBattery::NavigatorBattery):
593         (WebCore::NavigatorBattery::~NavigatorBattery):
594         (WebCore::NavigatorBattery::webkitBattery):
595         (WebCore::NavigatorBattery::from):
596         (WebCore::NavigatorBattery::batteryManager):
597         * Modules/battery/NavigatorBattery.h: Added.
598         (WebCore):
599         (NavigatorBattery):
600         * Modules/battery/NavigatorBattery.idl: Added.
601         * dom/EventNames.h:
602         (WebCore):
603         * dom/EventTargetFactory.in:
604         * testing/Internals.cpp:
605         (WebCore::Internals::setBatteryStatus):
606         (WebCore):
607         * testing/Internals.h:
608         (Internals):
609         * testing/Internals.idl:
610
611 2012-03-16  Ilya Tikhonovsky  <loislo@chromium.org>
612
613         Web Inspector: HeapSnapshot: speedup buildReverseIndex.
614         https://bugs.webkit.org/show_bug.cgi?id=81327
615
616         Reviewed by Yury Semikhatsky.
617
618         * inspector/front-end/HeapSnapshot.js:
619         (WebInspector.HeapSnapshot.prototype.get maxNodeId):
620         (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
621         (WebInspector.HeapSnapshot.prototype._findNearestNodeIndex):
622         (WebInspector.HeapSnapshot.prototype._getRetainerIndex):
623         (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
624         (WebInspector.HeapSnapshot.prototype):
625
626 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
627
628         Unreviewed, rolling out r110976.
629         http://trac.webkit.org/changeset/110976
630         https://bugs.webkit.org/show_bug.cgi?id=81330
631
632         webkit_unit_tests crashes. (Requested by morrita on #webkit).
633
634         * loader/cache/CachedCSSStyleSheet.cpp:
635         (WebCore::CachedCSSStyleSheet::error):
636         (WebCore):
637         * loader/cache/CachedCSSStyleSheet.h:
638         (CachedCSSStyleSheet):
639         * loader/cache/CachedFont.cpp:
640         (WebCore):
641         (WebCore::CachedFont::error):
642         * loader/cache/CachedFont.h:
643         (CachedFont):
644         * loader/cache/CachedImage.cpp:
645         (WebCore::CachedImage::error):
646         * loader/cache/CachedResource.h:
647         (CachedResource):
648         * loader/cache/CachedScript.cpp:
649         (WebCore::CachedScript::error):
650         (WebCore):
651         * loader/cache/CachedScript.h:
652         (CachedScript):
653         * loader/cache/CachedXSLStyleSheet.cpp:
654         (WebCore::CachedXSLStyleSheet::error):
655         (WebCore):
656         * loader/cache/CachedXSLStyleSheet.h:
657         (CachedXSLStyleSheet):
658
659 2012-03-16  Luke Macpherson   <macpherson@chromium.org>
660
661         Implement cast between CSSPrimitiveValue and LineClampValue.
662         https://bugs.webkit.org/show_bug.cgi?id=76806
663
664         Reviewed by Andreas Kling.
665
666         Covered by many existing LayoutTests.
667
668         This simplifies code in CSSStyleSelector and future mapping to CSSStyleApplyProperty.
669
670         * css/CSSPrimitiveValueMappings.h:
671         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
672         (WebCore::CSSPrimitiveValue::operator LineClampValue):
673         * css/CSSStyleSelector.cpp:
674         (WebCore::CSSStyleSelector::applyProperty):
675
676 2012-03-16  Nat Duca  <nduca@chromium.org>
677
678         [chromium] Bump textureUpdatesPerFrame to 32 to favor updating the screen over jank prevention
679         https://bugs.webkit.org/show_bug.cgi?id=81298
680
681         Reviewed by James Robinson.
682
683         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
684         (WTF):
685
686 2012-03-16  Levi Weintraub  <leviw@chromium.org>
687
688         Update usage of LayoutUnits in RenderBlock*
689         https://bugs.webkit.org/show_bug.cgi?id=80437
690
691         Reviewed by Julien Chaffraix.
692
693         Updating LayoutUnit usage in RenderBlock and RenderBlockLineLayout. This better readies trunk for
694         the transition to subpixel layout.
695
696         See https://trac.webkit.org/wiki/LayoutUnit for more details.
697
698         No new tests. No changed behavior.
699
700         * rendering/InlineTextBox.cpp:
701         (WebCore::InlineTextBox::paint): Adding the paint offset rounding previously in RenderBlock::paint.
702         * rendering/LayoutTypes.h:
703         (WebCore::floorToInt): Will floor a LayoutUnit to an integer once we switch to
704         FractionalLayoutUnits.
705         (WebCore::boundedMultiply): Method that will return the multiplied result of two LayoutUnits
706         or the max/min LayoutUnit if the result overflows. Only does a regular multiply while
707         LayoutUnits are integers instead of FractionalLayoutUnits.
708         (WebCore):
709         * rendering/RenderBlock.cpp:
710         (WebCore::RenderBlock::paintContents): Rounding the paintOffset here didn't work for all
711         inline blocks. This rounding is actually only needed for InlineTextBoxes, so the logic has
712         been moved there.
713         (WebCore::RenderBlock::newLine): Use a LayoutUnit for the y position.
714         (WebCore::RenderBlock::isPointInOverflowControl): Points for hit testing need to be rounded.
715         (WebCore::RenderBlock::layoutColumns): Using boundedMultiply for a calculation prone to overflow.
716         (WebCore::updatePreferredWidth): Reverting back to using ceilf. ceiledLayoutUnit was to be ultimately
717         converted to just a straight LayoutUnit constructor to preserve precision. This precision doesn't work
718         for us here as we still paint Boxes/Blocks on pixel boundaries, so we need to expand to a pixel size
719         that encloses the contained text.
720         (WebCore::RenderBlock::setPageLogicalOffset): LogicalOffset should be a LayoutUnit.
721         (WebCore::RenderBlock::marginValuesForChild): Margins should have subpixel resolution.
722         (WebCore::RenderBlock::FloatingObjects::intervalForFloatingObject): Intervals for floating objects
723         need to use pixel snapped values to give the proper results.
724         * rendering/RenderBlock.h:
725         (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Only moved.
726         (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): While we can round the left offset,
727         columns add an extra offset at paint that can't currently be planned for at line-layout time. To
728         avoid laying out lines that run off the end of columns, we floor the right offset. The resulting
729         lines will be up to 1 pixel shorter than they potentially could be.
730         (RenderBlock):
731         (WebCore::RenderBlock::FloatingObject::pixelSnappedX): Using corresponding pixelSnappedX value from
732         LayoutRects.
733         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxX): Ditto.
734         (WebCore::RenderBlock::FloatingObject::pixelSnappedY): Ditto.
735         (WebCore::RenderBlock::FloatingObject::pixelSnappedMaxY): Ditto.
736         (WebCore::RenderBlock::FloatingObject::pixelSnappedWidth): Ditto.
737         (WebCore::RenderBlock::FloatingObject::pixelSnappedHeight): Ditto.
738         * rendering/RenderBlockLineLayout.cpp:
739         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): LogicalHeight is a LayoutUnit. Also
740         flooring textIndentOffset to an integer to match old behavior.
741         (WebCore::LineWidth::fitBelowFloats): Using LayoutUnits for float logical top and bottoms.
742         (WebCore::LineLayoutState::endLineLogicalTop): Changing to a LayoutUnit.
743         (WebCore::LineLayoutState::setEndLineLogicalTop): Ditto.
744         (LineLayoutState): Ditto.
745         (WebCore::RenderBlock::linkToEndLineIfNeeded): Calculating overflow with LayoutUnits.
746         (WebCore::RenderBlock::layoutInlineChildren): LowestAllowedPosition should be subpixel.
747         (WebCore::RenderBlock::checkLinesForTextOverflow): Reverting ellipsis width calculation to integers
748         as this value can be seen as representing pixels on screen.
749
750 2012-03-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
751
752         Follow up to: window.innerWidth/Height should not include page scale
753         https://bugs.webkit.org/show_bug.cgi?id=76555
754
755         Reviewed by Simon Hausmann.
756
757         Introduce mapping methods for converting between CSS and layout units.
758
759         * page/DOMWindow.cpp:
760         (WebCore::DOMWindow::innerHeight):
761         (WebCore::DOMWindow::innerWidth):
762         (WebCore::DOMWindow::scrollX):
763         (WebCore::DOMWindow::scrollY):
764         (WebCore::DOMWindow::scrollTo):
765         * page/FrameView.h:
766         (FrameView):
767         (WebCore::FrameView::mapFromLayoutToCSSUnits):
768         (WebCore):
769         (WebCore::FrameView::mapFromCSSToLayoutUnits):
770
771 2012-03-16  Ian Vollick  <vollick@chromium.org>
772
773         [chromium] Threaded opacity animation jump to opacity of 0
774         https://bugs.webkit.org/show_bug.cgi?id=80744
775
776         Reviewed by James Robinson.
777
778         Tested in CCLayerTreeHostTestDoNotSkipLayersWithAnimatedOpacity
779
780         * platform/graphics/chromium/LayerChromium.cpp:
781         (WebCore::LayerChromium::LayerChromium):
782         (WebCore::LayerChromium::opacityIsAnimating):
783         (WebCore):
784         (WebCore::LayerChromium::transformIsAnimating):
785         * platform/graphics/chromium/LayerChromium.h:
786         (LayerChromium):
787         (WebCore::LayerChromium::drawOpacityIsAnimating):
788         (WebCore::LayerChromium::setDrawOpacityIsAnimating):
789         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
790         (WebCore::RenderSurfaceChromium::RenderSurfaceChromium):
791         * platform/graphics/chromium/RenderSurfaceChromium.h:
792         (WebCore::RenderSurfaceChromium::drawOpacityIsAnimating):
793         (WebCore::RenderSurfaceChromium::setDrawOpacityIsAnimating):
794         (RenderSurfaceChromium):
795         * platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
796         (WebCore::CCLayerAnimationController::isAnimatingProperty):
797         (WebCore):
798         * platform/graphics/chromium/cc/CCLayerAnimationController.h:
799         (CCLayerAnimationController):
800         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.cpp:
801         (WebCore::CCLayerAnimationControllerImpl::isAnimatingProperty):
802         (WebCore):
803         * platform/graphics/chromium/cc/CCLayerAnimationControllerImpl.h:
804         (CCLayerAnimationControllerImpl):
805         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
806         (WebCore::CCLayerImpl::CCLayerImpl):
807         (WebCore::CCLayerImpl::opacityIsAnimating):
808         (WebCore):
809         (WebCore::CCLayerImpl::transformIsAnimating):
810         * platform/graphics/chromium/cc/CCLayerImpl.h:
811         (CCLayerImpl):
812         (WebCore::CCLayerImpl::drawOpacityIsAnimating):
813         (WebCore::CCLayerImpl::setDrawOpacityIsAnimating):
814         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
815         (WebCore::CCLayerTreeHost::paintLayerContents):
816         (WebCore::CCLayerTreeHost::updateCompositorResources):
817         * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
818         (WebCore::layerShouldBeSkipped):
819         (WebCore::subtreeShouldBeSkipped):
820         (WebCore):
821         (WebCore::LayerChromium):
822         (WebCore::calculateDrawTransformsAndVisibilityInternal):
823         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
824         (WebCore::CCRenderSurface::CCRenderSurface):
825         * platform/graphics/chromium/cc/CCRenderSurface.h:
826         (WebCore::CCRenderSurface::drawOpacityIsAnimating):
827         (WebCore::CCRenderSurface::setDrawOpacityIsAnimating):
828         (CCRenderSurface):
829
830 2012-03-15  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
831
832         [TexMap] Reuse textures following the same rules as they do internally.
833         https://bugs.webkit.org/show_bug.cgi?id=80843
834
835         Reviewed by Noam Rosenthal.
836
837         BitmapTextures were recently changed to be the same size as their contents.
838         This would obsolete the logic in acquireTextureFromPool which would
839         assume that a BitmapTexture has good chances of being reused if its
840         size is bigger or equal to the new size.
841
842         This asks the texture instead if it can be reused which now simply
843         check for an exact size match.
844
845         * platform/graphics/texmap/TextureMapper.cpp:
846         (WebCore::TextureMapper::acquireTextureFromPool):
847         * platform/graphics/texmap/TextureMapper.h:
848         (WebCore::BitmapTexture::canReuseWith):
849         (WebCore::BitmapTexture::reset):
850         (WebCore::BitmapTexture::didReset):
851         * platform/graphics/texmap/TextureMapperGL.cpp:
852         (WebCore::BitmapTextureGL::canReuseWith):
853         (WebCore):
854         * platform/graphics/texmap/TextureMapperGL.h:
855         (BitmapTextureGL):
856
857 2012-03-16  Robert Kroeger  <rjkroege@chromium.org>
858
859         Connect up fling event delivery to gesture curve animation framework
860         https://bugs.webkit.org/show_bug.cgi?id=80858
861
862         Reviewed by Adam Barth.
863
864         * platform/ScrollAnimatorNone.cpp:
865         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
866
867 2012-03-16  Nate Chapin  <japhet@chromium.org>
868
869         Remove duplicate error() impls in CachedResource subclasses
870         https://bugs.webkit.org/show_bug.cgi?id=81161
871
872         Reviewed by Alexey Proskuryakov.
873
874         No new tests, refactor only.
875
876         * loader/cache/CachedCSSStyleSheet.cpp:
877         * loader/cache/CachedCSSStyleSheet.h:
878         * loader/cache/CachedFont.cpp:
879         * loader/cache/CachedFont.h:
880         * loader/cache/CachedImage.cpp:
881         * loader/cache/CachedResource.h: Make checkNotify()
882              virtual, so the right checkNotify() gets called in error().
883         * loader/cache/CachedScript.cpp:
884         * loader/cache/CachedScript.h:
885         * loader/cache/CachedXSLStyleSheet.cpp:
886         * loader/cache/CachedXSLStyleSheet.h:
887
888 2012-03-16  Dana Jansens  <danakj@chromium.org>
889
890         [chromium] Changes to overdraw metrics to allow upload tracking
891         https://bugs.webkit.org/show_bug.cgi?id=81222
892
893         Reviewed by Adrienne Walker.
894
895         Stick CCOverdrawMetrics into CCOcclusionTracker, so that it is available
896         everywhere that culling/drawing/painting is going on. Then we can stop
897         plumbing a metrics object through CCQuadCuller.
898
899         Rename the CCOverdrawMetrics "painting" stuff to "uploading" as this will
900         measure texture uploads rather than pixels painted in main memory.
901
902         Covered by existing tests.
903
904         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
905         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
906         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
907         (WebCore::::CCOcclusionTrackerBase):
908         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
909         (CCOcclusionTrackerBase):
910         (WebCore::CCOcclusionTrackerBase::overdrawMetrics):
911         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp:
912         (WebCore::CCOverdrawMetrics::didCull):
913         (WebCore):
914         (WebCore::CCOverdrawMetrics::didDraw):
915         (WebCore::CCOverdrawMetrics::recordMetrics):
916         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
917         * platform/graphics/chromium/cc/CCOverdrawMetrics.h:
918         (WebCore):
919         (WebCore::CCOverdrawMetrics::create):
920         (CCOverdrawMetrics):
921         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
922         (WebCore::CCQuadCuller::CCQuadCuller):
923         (WebCore::CCQuadCuller::append):
924         * platform/graphics/chromium/cc/CCQuadCuller.h:
925         (CCQuadCuller):
926         * platform/graphics/chromium/cc/CCRenderPass.cpp:
927         (WebCore::CCRenderPass::appendQuadsForLayer):
928         * platform/graphics/chromium/cc/CCRenderPass.h:
929         (WebCore):
930         (CCRenderPass):
931
932 2012-03-16  Greg Billock  <gbillock@google.com>
933
934         Add TransferList IDL modifier, with support in V8 code gen.
935         https://bugs.webkit.org/show_bug.cgi?id=81127
936
937         Reviewed by Adam Barth.
938
939         * bindings/scripts/CodeGeneratorV8.pm:
940         (GenerateFunctionCallback):
941         (GetIndexOf):
942         (GenerateParametersCheck):
943         (GenerateConstructorCallback):
944         (GenerateNamedConstructorCallback):
945         (GenerateFunctionCallString):
946         * bindings/scripts/IDLAttributes.txt:
947         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.cpp:
948         (WebDOMTestSerializedScriptValueInterface::acceptTransferList):
949         * bindings/scripts/test/CPP/WebDOMTestSerializedScriptValueInterface.h:
950         (WebDOMTestSerializedScriptValueInterface):
951         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
952         (webkit_dom_test_serialized_script_value_interface_accept_transfer_list):
953         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
954         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
955         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
956         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
957         (WebCore):
958         (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertySlot):
959         (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertyDescriptor):
960         (WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
961         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
962         (JSTestSerializedScriptValueInterfacePrototype):
963         (WebCore):
964         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
965         * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
966         (-[DOMTestSerializedScriptValueInterface acceptTransferList:transferList:]):
967         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
968         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
969         (WebCore::TestSerializedScriptValueInterfaceInternal::acceptTransferListCallback):
970         (TestSerializedScriptValueInterfaceInternal):
971         (WebCore):
972         (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
973         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
974
975 2012-03-16  Dana Jansens  <danakj@chromium.org>
976
977         [chromium] Quads that become fully opaque after culling should not use blending
978         https://bugs.webkit.org/show_bug.cgi?id=81235
979
980         Reviewed by Adrienne Walker.
981
982         Unit test: CCLayerTreeHostImplTest.blendingOffWhenDrawingOpaqueLayers
983
984         * platform/graphics/chromium/cc/CCDrawQuad.h:
985         (WebCore::CCDrawQuad::needsBlending):
986
987 2012-03-16  Xiaomei Ji  <xji@chromium.org>
988
989         Using ICU break iterator to simplify visual word movement implementation.
990         https://bugs.webkit.org/show_bug.cgi?id=78856
991
992         Reviewed by Ryosuke Niwa.
993
994         This patch relies on ICU word break iterator and cursor visual movement by character to get the word break
995         position in visual order. It reduces the complexity of old implementation.
996
997         Test: editing/selection/move-by-word-visually-wrong-left-right.html
998
999         * editing/FrameSelection.cpp: Exclude WinCE from visual word movement since isWordTextBreak is not implemented.
1000         (WebCore::FrameSelection::modifyMovingRight):
1001         (WebCore::FrameSelection::modifyMovingLeft):
1002         * editing/visible_units.cpp:
1003         (WebCore):
1004         (WebCore::previousLeafWithSameEditability): Just moving to the top without functionality change.
1005         (WebCore::enclosingNodeWithNonInlineRenderer): ditto.
1006         (WebCore::nextLeafWithSameEditability): ditto.
1007         (WebCore::previousRootInlineBox): return previous RootInlineBox which is in different renderer.
1008         (WebCore::nextRootInlineBox): return next RootInlineBox which is in different renderer.
1009         (WebCore::boxIndexInVector):
1010         (WebCore::previousBoxInLine): returns logically previous box in one line.
1011         (WebCore::logicallyPreviousBox): returns logically previous box.
1012         (WebCore::nextBoxInLine): returns logically next box in one line.
1013         (WebCore::logicallyNextBox): returns logically next box.
1014         (WebCore::wordBreakIteratorForMinOffsetBoundary): create word break iterator for position that is a box's min offset.
1015         (WebCore::wordBreakIteratorForMaxOffsetBoundary): create word break iterator for position that is a box's max offset.
1016         (WebCore::isLogicalStartOfWord): return whether a position is logically start of word.
1017         (WebCore::islogicalEndOfWord): return whether a position is logically end of word.
1018         (WebCore::visualWordPosition): returns the visual left or right word position.
1019         (WebCore::leftWordPosition):
1020         (WebCore::rightWordPosition):
1021         * platform/text/TextBreakIterator.h: Add isWordTextBreak().
1022         (WebCore):
1023         * platform/text/TextBreakIteratorICU.cpp:
1024         (WebCore::isWordTextBreak):
1025         (WebCore):
1026         * platform/text/gtk/TextBreakIteratorGtk.cpp:
1027         (WebCore::isWordTextBreak):
1028         (WebCore):
1029         * platform/text/qt/TextBreakIteratorQt.cpp:
1030         (WebCore::isWordTextBreak):
1031         (WebCore):
1032         * platform/text/wince/TextBreakIteratorWinCE.cpp:
1033         (WebCore::isWordTextBreak):
1034         (WebCore):
1035
1036 2012-03-16  Dana Jansens  <danakj@chromium.org>
1037
1038         [chromium] Don't create a quad for video layers without a frame (avoid use of uninitialized m_format)
1039         https://bugs.webkit.org/show_bug.cgi?id=81250
1040
1041         Reviewed by James Robinson.
1042
1043         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
1044         (WebCore::CCVideoLayerImpl::appendQuads):
1045
1046 2012-03-16  Hajime Morrita  <morrita@chromium.org>
1047
1048         Unreviewed attempt to fix Chromium windows build.
1049
1050         * Modules/speech/SpeechRecognition.h:
1051         (SpeechRecognition):
1052
1053 2012-03-16  Mark Pilgrim  <pilgrim@chromium.org>
1054
1055         Move DOMWindowFileSystem to Modules/filesystem/
1056         https://bugs.webkit.org/show_bug.cgi?id=81030
1057
1058         Reviewed by Adam Barth.
1059
1060         No new tests, all existing tests pass.
1061
1062         * CMakeLists.txt:
1063         * DerivedSources.make:
1064         * DerivedSources.pri:
1065         * GNUmakefile.am:
1066         * GNUmakefile.list.am:
1067         * Modules/filesystem/DOMWindowFileSystem.cpp: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.cpp.
1068         * Modules/filesystem/DOMWindowFileSystem.h: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.h.
1069         * Modules/filesystem/DOMWindowFileSystem.idl: Copied from Source/WebCore/fileapi/DOMWindowFileSystem.idl.
1070         * Target.pri:
1071         * WebCore.gyp/WebCore.gyp:
1072         * WebCore.gypi:
1073         * WebCore.vcproj/WebCore.vcproj:
1074         * WebCore.vcproj/WebCoreCommon.vsprops:
1075         * WebCore.vcproj/copyForwardingHeaders.cmd:
1076         * fileapi/DOMWindowFileSystem.cpp: Removed.
1077         * fileapi/DOMWindowFileSystem.h: Removed.
1078         * fileapi/DOMWindowFileSystem.idl: Removed.
1079
1080 2012-03-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1081
1082         Unreviewed, rolling out r110951.
1083         http://trac.webkit.org/changeset/110951
1084         https://bugs.webkit.org/show_bug.cgi?id=81316
1085
1086         Does not build on apple-mac (Requested by abarth on #webkit).
1087
1088         * platform/audio/DynamicsCompressor.h:
1089         (DynamicsCompressor):
1090         * webaudio/DynamicsCompressorNode.cpp:
1091         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
1092         (WebCore::DynamicsCompressorNode::process):
1093         * webaudio/DynamicsCompressorNode.h:
1094         (DynamicsCompressorNode):
1095         * webaudio/DynamicsCompressorNode.idl:
1096
1097 2012-03-16  Seo Sanghyeon  <sh4.seo@samsung.com>
1098
1099         Cleanup empty attribute list in IDLs
1100         https://bugs.webkit.org/show_bug.cgi?id=81228
1101
1102         Reviewed by Adam Barth.
1103
1104         No tests. No change in behavior.
1105
1106         * css/WebKitCSSRegionRule.idl:
1107
1108 2012-03-16  Pratik Solanki  <psolanki@apple.com>
1109
1110         onorientationchange event should have JSWindowEventListener attribute
1111         https://bugs.webkit.org/show_bug.cgi?id=79513
1112
1113         Reviewed by Kentaro Hara.
1114
1115         * html/HTMLFrameSetElement.idl:
1116
1117 2012-03-15  Gao Chun  <chun.gao@intel.com>
1118
1119         Expose attack, release as DynamicsCompressorNode's attributes.
1120         https://bugs.webkit.org/show_bug.cgi?id=81221
1121
1122         Reviewed by Chris Rogers.
1123
1124         Test: webaudio/dynamicscompressor-basic.html
1125
1126         * platform/audio/DynamicsCompressor.h:
1127         (DynamicsCompressor):
1128         * webaudio/DynamicsCompressorNode.cpp:
1129         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
1130         (WebCore::DynamicsCompressorNode::process):
1131         * webaudio/DynamicsCompressorNode.h:
1132         (WebCore::DynamicsCompressorNode::attack):
1133         (WebCore::DynamicsCompressorNode::release):
1134         (DynamicsCompressorNode):
1135         * webaudio/DynamicsCompressorNode.idl:
1136
1137 2012-03-15  Hans Wennborg  <hans@chromium.org>
1138
1139         Speech JavaScript API: SpeechRecognition, Controller and Client
1140         https://bugs.webkit.org/show_bug.cgi?id=81096
1141
1142         Reviewed by Adam Barth.
1143
1144         Add implementation stub for SpeechRecognition. Add the
1145         SpeechRecognitionController class and SpeechRecognitionClient
1146         interface.
1147
1148         Test: fast/speech/scripted/basics.html
1149
1150         * Modules/speech/DOMWindowSpeech.idl:
1151         * Modules/speech/SpeechRecognition.cpp: Added.
1152         (WebCore):
1153         (WebCore::SpeechRecognition::create):
1154         (WebCore::SpeechRecognition::start):
1155         (WebCore::SpeechRecognition::stopFunction):
1156         (WebCore::SpeechRecognition::abort):
1157         (WebCore::SpeechRecognition::audioStartCallback):
1158         (WebCore::SpeechRecognition::soundStartCallback):
1159         (WebCore::SpeechRecognition::speechStartCallback):
1160         (WebCore::SpeechRecognition::speechEndCallback):
1161         (WebCore::SpeechRecognition::audioEndCallback):
1162         (WebCore::SpeechRecognition::resultCallback):
1163         (WebCore::SpeechRecognition::noMatchCallback):
1164         (WebCore::SpeechRecognition::resultDeletedCallback):
1165         (WebCore::SpeechRecognition::errorCallback):
1166         (WebCore::SpeechRecognition::startCallback):
1167         (WebCore::SpeechRecognition::endCallback):
1168         (WebCore::SpeechRecognition::interfaceName):
1169         (WebCore::SpeechRecognition::scriptExecutionContext):
1170         (WebCore::SpeechRecognition::SpeechRecognition):
1171         (WebCore::SpeechRecognition::~SpeechRecognition):
1172         * Modules/speech/SpeechRecognition.h: Added.
1173         (WebCore):
1174         (SpeechRecognition):
1175         (WebCore::SpeechRecognition::grammars):
1176         (WebCore::SpeechRecognition::setGrammars):
1177         (WebCore::SpeechRecognition::lang):
1178         (WebCore::SpeechRecognition::setLang):
1179         (WebCore::SpeechRecognition::continuous):
1180         (WebCore::SpeechRecognition::setContinuous):
1181         * Modules/speech/SpeechRecognition.idl:
1182         * Modules/speech/SpeechRecognitionClient.h:
1183         (WebCore):
1184         (SpeechRecognitionClient):
1185         (WebCore::SpeechRecognitionClient::~SpeechRecognitionClient):
1186         * Modules/speech/SpeechRecognitionController.cpp:
1187         (WebCore):
1188         (WebCore::SpeechRecognitionController::supplementName):
1189         (WebCore::SpeechRecognitionController::SpeechRecognitionController):
1190         (WebCore::SpeechRecognitionController::~SpeechRecognitionController):
1191         (WebCore::SpeechRecognitionController::create):
1192         (WebCore::provideSpeechRecognitionTo):
1193         * Modules/speech/SpeechRecognitionController.h: Added.
1194         (WebCore):
1195         (SpeechRecognitionController):
1196         (WebCore::SpeechRecognitionController::start):
1197         (WebCore::SpeechRecognitionController::stop):
1198         (WebCore::SpeechRecognitionController::abort):
1199         (WebCore::SpeechRecognitionController::visibilityHidden):
1200         (WebCore::SpeechRecognitionController::unregisterSpeechRecognition):
1201         (WebCore::SpeechRecognitionController::from):
1202         * WebCore.gypi:
1203         * dom/EventTargetFactory.in:
1204
1205 2012-03-15  Michal Ciepielski  <m.ciepielski@samsung.com>
1206
1207         [EFL] Sets alpha channel for new buffers.
1208         https://bugs.webkit.org/show_bug.cgi?id=77101
1209
1210         Reviewed by Hajime Morita.
1211
1212         No new tests.
1213
1214         By default EFL creates buffers without alpha channel.
1215         This causes improper rendering of HTML controls (i.e. radio buttons, checkboxes).
1216         This commits sets alpha channel for all newly created buffers by EFL.
1217
1218         * platform/efl/RenderThemeEfl.cpp:
1219         (WebCore::RenderThemeEfl::cacheThemePartNew):
1220
1221 2012-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1222
1223         Unreviewed, rolling out r110941.
1224         http://trac.webkit.org/changeset/110941
1225         https://bugs.webkit.org/show_bug.cgi?id=81307
1226
1227         the revert looks innocent. (Requested by morrita on #webkit).
1228
1229         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1230         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1231         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1232         (Canvas2DLayerChromium):
1233         * platform/graphics/chromium/ContentLayerChromium.cpp:
1234         (WebCore::ContentLayerChromium::paintContentsIfDirty):
1235         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
1236         * platform/graphics/chromium/ContentLayerChromium.h:
1237         (WebCore):
1238         (ContentLayerChromium):
1239         * platform/graphics/chromium/ImageLayerChromium.cpp:
1240         (WebCore::ImageLayerChromium::paintContentsIfDirty):
1241         * platform/graphics/chromium/ImageLayerChromium.h:
1242         (WebCore):
1243         (ImageLayerChromium):
1244         * platform/graphics/chromium/LayerChromium.h:
1245         (WebCore::LayerChromium::paintContentsIfDirty):
1246         (WebCore::LayerChromium::idlePaintContentsIfDirty):
1247         * platform/graphics/chromium/TiledLayerChromium.cpp:
1248         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1249         (WebCore::TiledLayerChromium::prepareToUpdate):
1250         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
1251         * platform/graphics/chromium/TiledLayerChromium.h:
1252         (TiledLayerChromium):
1253         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1254         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
1255         * platform/graphics/chromium/WebGLLayerChromium.h:
1256         (WebGLLayerChromium):
1257         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1258         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
1259         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1260         (WebCore::CCLayerTreeHost::paintLayerContents):
1261         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1262
1263 2012-03-15  Tommy Widenflycht  <tommyw@google.com>
1264
1265         MediaStream API (JSEP): Introducing SessionDescription
1266         https://bugs.webkit.org/show_bug.cgi?id=81206
1267
1268         Reviewed by Adam Barth.
1269
1270         Patch #3 in a series of patches to change the PeerConnection from ROAP to JSEP,
1271         see bug 80589 for more information.
1272         Adding the SessionDescription JS object and its platform counterpart SessionDescriptionDescriptor.
1273
1274         Not possible to test until the entire JSEP feature is commited.
1275
1276         * GNUmakefile.list.am:
1277         * Modules/mediastream/SessionDescription.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1278         (WebCore):
1279         (WebCore::SessionDescription::create):
1280         (WebCore::SessionDescription::SessionDescription):
1281         (WebCore::SessionDescription::~SessionDescription):
1282         (WebCore::SessionDescription::addCandidate):
1283         (WebCore::SessionDescription::toSdp):
1284         (WebCore::SessionDescription::descriptor):
1285         * Modules/mediastream/SessionDescription.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1286         (WebCore):
1287         (SessionDescription):
1288         * Modules/mediastream/SessionDescription.idl: Added.
1289         * WebCore.gypi:
1290         * platform/mediastream/MediaStreamCenter.cpp:
1291         (WebCore::MediaStreamCenter::constructSdp):
1292         (WebCore):
1293         * platform/mediastream/MediaStreamCenter.h:
1294         (WebCore):
1295         (MediaStreamCenter):
1296         * platform/mediastream/SessionDescriptionDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1297         (WebCore):
1298         (WebCore::SessionDescriptionDescriptor::create):
1299         (WebCore::SessionDescriptionDescriptor::SessionDescriptionDescriptor):
1300         (WebCore::SessionDescriptionDescriptor::~SessionDescriptionDescriptor):
1301         (WebCore::SessionDescriptionDescriptor::addCandidate):
1302         (WebCore::SessionDescriptionDescriptor::toSdp):
1303         (WebCore::SessionDescriptionDescriptor::numberOfAddedCandidates):
1304         (WebCore::SessionDescriptionDescriptor::candidate):
1305         (WebCore::SessionDescriptionDescriptor::initialSdp):
1306         * platform/mediastream/SessionDescriptionDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
1307         (WebCore):
1308         (SessionDescriptionDescriptor):
1309
1310 2012-03-15  Sheriff Bot  <webkit.review.bot@gmail.com>
1311
1312         Unreviewed, rolling out r110929.
1313         http://trac.webkit.org/changeset/110929
1314         https://bugs.webkit.org/show_bug.cgi?id=81306
1315
1316         breaking webkit_unit_tests (Requested by morrita on #webkit).
1317
1318         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1319         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1320         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1321         (Canvas2DLayerChromium):
1322         * platform/graphics/chromium/ContentLayerChromium.cpp:
1323         (WebCore::ContentLayerChromium::paintContentsIfDirty):
1324         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
1325         * platform/graphics/chromium/ContentLayerChromium.h:
1326         (WebCore):
1327         (ContentLayerChromium):
1328         * platform/graphics/chromium/ImageLayerChromium.cpp:
1329         (WebCore::ImageLayerChromium::paintContentsIfDirty):
1330         * platform/graphics/chromium/ImageLayerChromium.h:
1331         (WebCore):
1332         (ImageLayerChromium):
1333         * platform/graphics/chromium/LayerChromium.h:
1334         (WebCore::LayerChromium::paintContentsIfDirty):
1335         (WebCore::LayerChromium::idlePaintContentsIfDirty):
1336         * platform/graphics/chromium/TiledLayerChromium.cpp:
1337         (WebCore):
1338         (WebCore::contentToLayerTransform):
1339         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1340         (WebCore::TiledLayerChromium::prepareToUpdate):
1341         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
1342         * platform/graphics/chromium/TiledLayerChromium.h:
1343         (WebCore):
1344         (TiledLayerChromium):
1345         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1346         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
1347         * platform/graphics/chromium/WebGLLayerChromium.h:
1348         (WebGLLayerChromium):
1349         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1350         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
1351         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1352         (WebCore::CCLayerTreeHost::paintLayerContents):
1353         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1354
1355 2012-03-15  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1356
1357         REGRESSION(r106232): The resize handler is always called after loading.
1358         https://bugs.webkit.org/show_bug.cgi?id=80242
1359
1360         Reviewed by Kenneth Rohde Christiansen.
1361
1362         Ensure resize-events are not emitted when layout-size changes due to added
1363         scrollbars. For fixed layout, scrollbars are never subtracted or added, so
1364         we can compare fixedLayoutSize directly. For normal layout, use the full
1365         visible rect size which is the same as layout size plus scrollbars.
1366
1367         Test: fast/events/resize-events.html
1368
1369         * page/FrameView.cpp:
1370         (WebCore::FrameView::reset):
1371         (WebCore::FrameView::layout):
1372         (WebCore::FrameView::performPostLayoutTasks):
1373         * page/FrameView.h:
1374         (FrameView):
1375
1376 2012-03-15  Tommy Widenflycht  <tommyw@google.com>
1377
1378         MediaStream API (JSEP): Introducing MediaHints and IceOptions
1379         https://bugs.webkit.org/show_bug.cgi?id=81207
1380
1381         Reviewed by Adam Barth.
1382
1383         Patch #4 in a series of patches to change the PeerConnection from ROAP to JSEP,
1384         see bug 80589 for more information.
1385         Introducing the platform MediaHints and IceOptions helper classes.
1386
1387         Not possible to test until the entire JSEP feature is commited.
1388
1389         * GNUmakefile.list.am:
1390         * WebCore.gypi:
1391         * platform/mediastream/IceOptions.cpp: Added.
1392         (WebCore):
1393         (WebCore::IceOptions::create):
1394         * platform/mediastream/IceOptions.h: Added.
1395         (WebCore):
1396         (IceOptions):
1397         (WebCore::IceOptions::~IceOptions):
1398         (WebCore::IceOptions::useCandidates):
1399         (WebCore::IceOptions::IceOptions):
1400         * platform/mediastream/MediaHints.cpp: Added.
1401         (WebCore):
1402         (WebCore::MediaHints::create):
1403         (WebCore::MediaHints::audio):
1404         (WebCore::MediaHints::video):
1405         * platform/mediastream/MediaHints.h: Added.
1406         (WebCore):
1407         (MediaHints):
1408         (WebCore::MediaHints::~MediaHints):
1409         (WebCore::MediaHints::MediaHints):
1410
1411 2012-03-15  Shinya Kawanaka  <shinyak@chromium.org>
1412
1413         [Crash] Adding <content> into a ShadowRoot causes crash.
1414         https://bugs.webkit.org/show_bug.cgi?id=80020
1415
1416         Reviewed by Hajime Morita.
1417
1418         The problem is <content> tries to select host children though it is not prepared.
1419         Since populating host children for insertion points is performed just before
1420         attaching a shadow tree, we should recalculate whole shadow tree if <content> is
1421         appended as a child.
1422
1423         However, element->appendChild() does not know the element is in a shadow tree or not.
1424         We have to ensure reattaching whole shadow tree here.
1425
1426         So this patch adds some phases to HTMLContentSelector so that we can check node
1427         distribution algorihm is begin processed or not. If not we cannot select anything,
1428         but we have to enable a flag to reattach whole shadow tree.
1429
1430         Tests: fast/dom/shadow/shadow-content-crash-expected.html
1431                fast/dom/shadow/shadow-content-crash.html
1432
1433         * dom/ShadowTree.cpp:
1434         (WebCore::ShadowTree::attach):
1435         (WebCore::ShadowTree::insertionPointFor):
1436         * dom/ShadowTree.h:
1437         (WebCore):
1438         (ShadowTree):
1439         (WebCore::ShadowTree::selector):
1440         * html/shadow/HTMLContentSelector.cpp:
1441         (WebCore::HTMLContentSelector::HTMLContentSelector):
1442         (WebCore::HTMLContentSelector::select):
1443         (WebCore::HTMLContentSelector::willSelect):
1444         (WebCore):
1445         (WebCore::HTMLContentSelector::didSelect):
1446         (WebCore::HTMLContentSelector::populateIfNecessary):
1447         * html/shadow/HTMLContentSelector.h:
1448         (HTMLContentSelector):
1449         (WebCore::HTMLContentSelector::isSelecting):
1450         (WebCore):
1451         (WebCore::HTMLContentSelector::hasPopulated):
1452         * html/shadow/InsertionPoint.cpp:
1453         (WebCore::InsertionPoint::distributeHostChildren):
1454         (WebCore::InsertionPoint::clearDistribution):
1455
1456 2012-03-15  Mike Lawther  <mikelawther@chromium.org>
1457
1458         CSS3 calc: mixed percent/absolute expressions for gradients
1459         https://bugs.webkit.org/show_bug.cgi?id=81182
1460
1461         Reviewed by Ojan Vafai.
1462
1463         * css/CSSGradientValue.cpp:
1464         (WebCore::CSSGradientValue::addStops):
1465         (WebCore::positionFromValue):
1466
1467 2012-03-15  Leo Yang  <leo.yang@torchmobile.com.cn>
1468
1469         [BlackBerry] Sync up MIMETypeRegistry.cpp
1470         https://bugs.webkit.org/show_bug.cgi?id=81191
1471
1472         Reviewed by Rob Buis.
1473
1474         Add png and jpeg to supportedImageMIMETypesForEncoding for BlackBerry.
1475
1476         * platform/MIMETypeRegistry.cpp:
1477         (WebCore::initializeSupportedImageMIMETypesForEncoding):
1478
1479 2012-03-15  Dana Jansens  <danakj@chromium.org>
1480
1481         [chromium] Decide occlusion in paint culling with CCOcclusionTracker
1482         https://bugs.webkit.org/show_bug.cgi?id=81181
1483
1484         Reviewed by Adrienne Walker.
1485
1486         Plumb a CCOcclusionTracker* around instead of a bare Region, so that it
1487         can make a more informed decision if a tile is occluded or not during
1488         paint.
1489
1490         Covered by existing tests.
1491
1492         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1493         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
1494         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1495         (Canvas2DLayerChromium):
1496         * platform/graphics/chromium/ContentLayerChromium.cpp:
1497         (WebCore::ContentLayerChromium::paintContentsIfDirty):
1498         (WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
1499         * platform/graphics/chromium/ContentLayerChromium.h:
1500         (WebCore):
1501         (ContentLayerChromium):
1502         * platform/graphics/chromium/ImageLayerChromium.cpp:
1503         (WebCore::ImageLayerChromium::paintContentsIfDirty):
1504         * platform/graphics/chromium/ImageLayerChromium.h:
1505         (WebCore):
1506         (ImageLayerChromium):
1507         * platform/graphics/chromium/LayerChromium.h:
1508         (WebCore::LayerChromium::paintContentsIfDirty):
1509         (WebCore::LayerChromium::idlePaintContentsIfDirty):
1510         * platform/graphics/chromium/TiledLayerChromium.cpp:
1511         (WebCore::TiledLayerChromium::prepareToUpdateTiles):
1512         (WebCore::TiledLayerChromium::prepareToUpdate):
1513         (WebCore::TiledLayerChromium::prepareToUpdateIdle):
1514         * platform/graphics/chromium/TiledLayerChromium.h:
1515         (TiledLayerChromium):
1516         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1517         (WebCore::WebGLLayerChromium::paintContentsIfDirty):
1518         * platform/graphics/chromium/WebGLLayerChromium.h:
1519         (WebGLLayerChromium):
1520         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1521         (WebCore::CCLayerTreeHost::paintContentsIfDirty):
1522         (WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
1523         (WebCore::CCLayerTreeHost::paintLayerContents):
1524         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1525
1526 2012-03-15  Yoshifumi Inoue  <yosin@chromium.org>
1527
1528         [Forms] The "meter" element should not be a form-associated element.
1529         https://bugs.webkit.org/show_bug.cgi?id=80380
1530
1531         Reviewed by Kent Tamura.
1532
1533         This patch changes base class of HTMLMeterElement to LabelableElement from
1534         HTMLFormControlElement for saving memory space and iteration time of
1535         extra "meter" elements in HTMLFormElement::m_formAssociatedElements
1536         and matching the HTML5 specification for ease of maintenance.
1537
1538         This patch renames isLabelable method to supportLabels and makes isLabelable
1539         as predicate of an instance of LabelableElement or not.
1540
1541         Changes of TextIterator is lead by usage of isFormControlElement. This
1542         changes will be replaced with more meaningful predicate as part of
1543         https://bugs.webkit.org/show_bug.cgi?id=80381
1544
1545         No new tests. Update existing tests to cover this change.
1546
1547         * editing/TextIterator.cpp:
1548         (WebCore::TextIterator::advance): Check HTMLMeterElement in addition to isFormControlElement. This change is for text dump in LayoutTests implemented by document.innerText attribute.
1549         * html/HTMLButton.h:
1550         (WebCore::HTMLButtonElement::supportLabels): Renamed from isLabelable
1551         * html/HTMLElement.h:
1552         (WebCore::HTMLElement::isLabelable): Added. A predicate for an instance of LabelableElement.
1553         * html/HTMLInputElement.h:
1554         (WebCore::HTMLInputElement::supportLabels): Renamed from isLabelable
1555         * html/HTMLKeygenElement.h:
1556         (WebCore::HTMLKeygenElement::supportLabels): Renamed from isLabelable
1557          * html/HTMLLabelElement.cpp:
1558         (WebCore::nodeAsLabelableElement): Changed to return LabelableElement instead of HTMLFormControlElement.
1559         (WebCore::HTMLLabelElement::control): Changed to return LabelableElement instead of HTMLFormControlElement.
1560         * html/HTMLLabelElement.h:
1561         (HTMLLabelElement):
1562         * html/HTMLMeterElement.cpp:
1563         (WebCore::HTMLMeterElement::HTMLMeterElement): Changed base class to LabelableElement.
1564         (WebCore::HTMLMeterElement::create): Remove form parameter.
1565         (WebCore::HTMLMeterElement::formControlType): Remove implementation of virtual method declared in HTMLFormControlElement.
1566         (WebCore::HTMLMeterElement::parseAttribute): Replace HTMLFormControlElement to LabelableElement
1567         (WebCore::HTMLMeterElement::attach): Replace HTMLFormControlElement to LabelableElement
1568         * html/HTMLMeterElement.idl: Remove the "form" attribute which isn't listed in the HTML5 specification.
1569         * html/HTMLMeterElement.h:
1570         (HTMLMeterElement):
1571         (WebCore::HTMLMeterElement::supportLabels): Renamed from isLabelable
1572         * html/HTMLOutputElement.h:
1573         (WebCore::HTMLOutputElement::supportLabels): Renamed from isLabelable
1574         * html/HTMLProgressElement.h:
1575         (WebCore::HTMLProgressElement::supportLabels): Renamed from isLabelable
1576          * html/HTMLSelectElement.h:
1577         (WebCore::HTMLSelectElement::supportLabels): Renamed from isLabelable
1578         * html/HTMLTextAreaElement.h:
1579         (WebCore::HTMLTextAreaElement::supportLabels): Renamed from isLabelable
1580         * html/HiddenInputType.h:
1581         (WebCore::HiddenInputType::supportLabels): Renamed from isLabelable
1582         * html/InputType.h:
1583         (WebCore::InputType::supportLabels): Renamed from isLabelable
1584         * html/HTMLTagNames.in: Remove "constructorNeedsFormElement" for not passing "form" parameter in HTMLElementFactory.
1585         * html/LabelableElement.cpp:
1586         (WebCore::LabelableElement::labels): Replace isLabelable to supportLabels
1587         * html/LabelableElement.h:
1588         (LabelableElement):
1589
1590 2012-03-15  Adam Klein  <adamk@chromium.org>
1591
1592         REGRESSION(r103452): 100% CPU usage and 5s pause after clicking on a link in Yahoo Mail
1593         https://bugs.webkit.org/show_bug.cgi?id=81141
1594
1595         Reviewed by Ojan Vafai.
1596
1597         Revert the behavior change from r103452: don't fire DOMSubtreeModified
1598         events when an attribute value merely changes. Still fire that event
1599         when an attribute is added or removed from an element.
1600
1601         Though this contradicts the DOM3 spec, it matches legacy WebKit behavior,
1602         and given that Mutation Events are deprecated, it seems unwise to make
1603         any additions to WebKit's implementation of them.
1604
1605         Test: fast/dom/subtree-modified-attributes.html
1606
1607         * dom/Element.cpp:
1608         (WebCore::Element::didAddAttribute): Renamed from didModifyAttribute.
1609         (WebCore::Element::didModifyAttribute): Remove the call to dispatchSubtreeModifiedEvent.
1610         (WebCore):
1611         * dom/Element.h:
1612         (Element):
1613         * dom/ElementAttributeData.cpp:
1614         (WebCore::ElementAttributeData::addAttribute): Call didAddAttribute instead of didModifyAttribute.
1615
1616 2012-03-15  Dana Jansens  <danakj@chromium.org>
1617
1618         [chromium] Move overdraw metrics into a templated class for both paint and draw metrics.
1619         https://bugs.webkit.org/show_bug.cgi?id=81156
1620
1621         Reviewed by Adrienne Walker.
1622
1623         Creates CCOverdrawMetrics which can be called to inform it about
1624         draws/paints. At the end of the frame, the CCOverdrawMetrics
1625         recordMetrics() method will put its data into histograms, a
1626         TRACE_COUNTER for culling information, and a TRACE_EVENT for details
1627         about the number of opaque/translucent pixels.
1628
1629         Covered by existing tests.
1630
1631         * WebCore.gypi:
1632         * platform/chromium/TraceEvent.h:
1633         (TraceEvent):
1634         (WebCore::TraceEvent::addTraceEvent):
1635         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1636         (WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
1637         * platform/graphics/chromium/cc/CCOverdrawMetrics.cpp: Added.
1638         (WebCore):
1639         (WebCore::CCOverdrawMetrics::CCOverdrawMetrics):
1640         (WebCore::wedgeProduct):
1641         (WebCore::quadArea):
1642         (WebCore::CCOverdrawMetrics::didDraw):
1643         (WebCore::CCOverdrawMetrics::recordMetrics):
1644         (WebCore::CCOverdrawMetrics::recordMetricsInternal):
1645         * platform/graphics/chromium/cc/CCOverdrawMetrics.h: Added.
1646         (WebCore):
1647         (CCOverdrawMetrics):
1648         (WebCore::CCOverdrawMetrics::pixelsDrawnOpaque):
1649         (WebCore::CCOverdrawMetrics::pixelsDrawnTranslucent):
1650         (WebCore::CCOverdrawMetrics::pixelsCulled):
1651         * platform/graphics/chromium/cc/CCQuadCuller.cpp:
1652         (WebCore::CCQuadCuller::CCQuadCuller):
1653         (WebCore::CCQuadCuller::append):
1654         * platform/graphics/chromium/cc/CCQuadCuller.h:
1655         (WebCore):
1656         (CCQuadCuller):
1657         * platform/graphics/chromium/cc/CCRenderPass.cpp:
1658         (WebCore::CCRenderPass::appendQuadsForLayer):
1659         * platform/graphics/chromium/cc/CCRenderPass.h:
1660         (WebCore):
1661         (CCRenderPass):
1662
1663 2012-03-15  James Robinson  <jamesr@chromium.org>
1664
1665         [chromium] RateLimiter should hold a reference to its context
1666         https://bugs.webkit.org/show_bug.cgi?id=80761
1667
1668         Reviewed by Stephen White.
1669
1670         * platform/graphics/chromium/RateLimiter.h:
1671         (RateLimiter):
1672
1673 2012-03-15  Adam Klein  <adamk@chromium.org>
1674
1675         Share code in FormAssociatedElement by resetting the form owner whenever insertedIntoTree is called
1676         https://bugs.webkit.org/show_bug.cgi?id=81160
1677
1678         Reviewed by Kent Tamura.
1679
1680         The only difference between the previous insertedIntoTree method and
1681         resetFormOwner was a missing element->inDocument() check in the
1682         former. But that check is actually important, as seen by the included test case.
1683
1684         Test: fast/forms/form-attribute-not-in-document.html
1685
1686         * html/FormAssociatedElement.cpp:
1687         (WebCore::FormAssociatedElement::insertedIntoTree):
1688
1689 2012-03-15  Kentaro Hara  <haraken@chromium.org>
1690
1691         [Refactoring] Rename StringBuilder variables in MarkupAccumulator.{h,cpp}
1692         https://bugs.webkit.org/show_bug.cgi?id=81288
1693
1694         Reviewed by Adam Barth.
1695
1696         This is a refactoring for fixing bug 81214. Currently MarkupAccumulator mixes
1697         'out' and 'result' for variable names of StringBuilder. This patch unifies them
1698         to 'result'.
1699
1700         No tests. No change in behavior.
1701
1702         * editing/MarkupAccumulator.cpp: Renamed 'out' to 'result'.
1703         (WebCore::appendCharactersReplacingEntities):
1704         (WebCore::MarkupAccumulator::serializeNodes): Renamed 'node' to 'targetNode' for clarification
1705         (and for avoiding style check error in MarkupAccumulator.h).
1706         (WebCore::MarkupAccumulator::concatenateMarkup):
1707         (WebCore::MarkupAccumulator::appendNodeValue):
1708         (WebCore::MarkupAccumulator::shouldAddNamespaceAttribute):
1709         (WebCore::MarkupAccumulator::appendNamespace):
1710         (WebCore::MarkupAccumulator::entityMaskForText):
1711         (WebCore::MarkupAccumulator::appendText):
1712         (WebCore::MarkupAccumulator::appendComment):
1713         (WebCore::MarkupAccumulator::appendProcessingInstruction):
1714         (WebCore::MarkupAccumulator::appendElement):
1715         (WebCore::MarkupAccumulator::appendOpenTag):
1716         (WebCore::MarkupAccumulator::appendCloseTag):
1717         (WebCore::MarkupAccumulator::appendAttribute):
1718         (WebCore::MarkupAccumulator::appendCDATASection):
1719         (WebCore::MarkupAccumulator::elementCannotHaveEndTag):
1720         * editing/MarkupAccumulator.h: Removed redundant variable names.
1721         (MarkupAccumulator):
1722         (WebCore):
1723
1724 2012-03-15  Brent Fulgham  <bfulgham@webkit.org>
1725
1726         [WinCairo] Correct <wtf/*.h> include paths.
1727         https://bugs.webkit.org/show_bug.cgi?id=81278
1728
1729         Reviewed by Eric Seidel.
1730
1731         Modify the #include declarations for several Cairo-related files
1732         so that the wtf types are included using the full path.
1733
1734         * platform/graphics/FontPlatformData.h:
1735         * platform/graphics/cairo/OwnPtrCairo.h:
1736         * platform/graphics/cairo/RefPtrCairo.h:
1737
1738 2012-03-15  Anders Carlsson  <andersca@apple.com>
1739
1740         only some tiles rendered when zoomed in
1741         https://bugs.webkit.org/show_bug.cgi?id=81282
1742         <rdar://problem/11058898>
1743
1744         Reviewed by Andreas Kling.
1745
1746         * platform/graphics/ca/mac/TileCache.mm:
1747         (WebCore::TileCache::rectForTileIndex):
1748         Make sure that the tile cache bounds are scaled accordingly.
1749
1750 2012-03-15  Zeno Albisser  <zeno@webkit.org>
1751
1752         [Qt] RenderThemeQt::fileListNameForWidth should override function in base class RenderTheme. (r110560)
1753         https://bugs.webkit.org/show_bug.cgi?id=81107
1754
1755         Add "bool multipleFilesAllowed" to the parameter list of RenderThemeQt::fileListNameForWidth.
1756         This way the base class function is properly overridden.
1757         The need for this change became obvious after r110560 where the OVERRIDE keyword had been
1758         added to the function signature.
1759
1760         Reviewed by Simon Hausmann.
1761
1762         * platform/qt/RenderThemeQt.cpp:
1763         (WebCore::RenderThemeQt::fileListNameForWidth):
1764         * platform/qt/RenderThemeQt.h:
1765         (RenderThemeQt):
1766
1767 2012-03-07  Jon Lee  <jonlee@apple.com>
1768
1769         Move NotificationContents into Notification
1770         https://bugs.webkit.org/show_bug.cgi?id=80487
1771         <rdar://problem/10965519>
1772
1773         Reviewed by Jian Li.
1774
1775         * notifications/Notification.cpp: Alter signature of constructor to take the fields directly instead of
1776         a NotificationContents instance.
1777         (WebCore::Notification::Notification): Derive KURL from string representation of icon.
1778         (WebCore::Notification::create):
1779         * notifications/Notification.h:
1780         (Notification): Remove contents() accessor and replace with get for title and body. iconURL()
1781         already existed, but use local variable instead of going through NotificationContents.
1782         (WebCore::Notification::iconURL):
1783         (WebCore::Notification::title):
1784         (WebCore::Notification::body):
1785         * notifications/NotificationCenter.h:
1786         (WebCore::NotificationCenter::createNotification): Refactor to use new constructor.
1787         * notifications/NotificationContents.h: Removed.
1788
1789         Remove NotificationContents.h from project files
1790         * GNUmakefile.list.am:
1791         * Target.pri:
1792         * WebCore.gypi:
1793         * WebCore.vcproj/WebCore.vcproj:
1794         * WebCore.xcodeproj/project.pbxproj:
1795
1796 2012-03-13  Jon Lee  <jonlee@apple.com>
1797
1798         Deprecate ondisplay()
1799         https://bugs.webkit.org/show_bug.cgi?id=80483
1800         <rdar://problem/10912432>
1801
1802         Reviewed by Jian Li.
1803
1804         The appropriate event listener for notifications is onshow().
1805
1806         * notifications/Notification.h: Wrap ondisplay in ENABLE(LEGACY_NOTIFICATIONS).
1807         * notifications/Notification.idl: Wrap ondisplay in ENABLE_LEGACY_NOTIFICATIONS.
1808
1809 2012-03-14  W. James MacLean  <wjmaclean@chromium.org>
1810
1811         [chromium] Wire up PlatformGestureCurves for CC, ScrollAnimatorNone.
1812         https://bugs.webkit.org/show_bug.cgi?id=80607
1813
1814         Reviewed by James Robinson.
1815
1816         Unit tests added. Layout tests to follow.
1817
1818         Provides implementation of PlatformGestureCurves in Chrome Compositor, and basic
1819         support in ScrollAnimatorNone, for fling gestures.
1820
1821         * GNUmakefile.list.am:
1822         * platform/ActivePlatformGestureAnimation.cpp:
1823         (WebCore::ActivePlatformGestureAnimation::create):
1824         (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
1825         (WebCore::ActivePlatformGestureAnimation::animate):
1826         * platform/ActivePlatformGestureAnimation.h:
1827         (ActivePlatformGestureAnimation):
1828         * platform/PlatformGestureCurveTarget.h:
1829         (PlatformGestureCurveTarget):
1830         * platform/ScrollAnimatorNone.cpp:
1831         (WebCore::ScrollAnimatorNone::cancelAnimations):
1832         (WebCore::ScrollAnimatorNone::animationTimerFired):
1833         (WebCore::ScrollAnimatorNone::scrollBy):
1834         (WebCore):
1835         * platform/ScrollAnimatorNone.h:
1836         (WebCore):
1837         (ScrollAnimatorNone):
1838         * platform/TouchFlingPlatformGestureCurve.cpp:
1839         (WebCore::TouchFlingPlatformGestureCurve::apply):
1840         * platform/WheelFlingPlatformGestureCurve.cpp:
1841         (WebCore::WheelFlingPlatformGestureCurve::apply):
1842         * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
1843         (WebCore::CCActiveGestureAnimation::create):
1844         (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
1845         (WebCore::CCActiveGestureAnimation::animate):
1846         * platform/graphics/chromium/cc/CCActiveGestureAnimation.h:
1847         (CCActiveGestureAnimation):
1848         * platform/graphics/chromium/cc/CCGestureCurve.h:
1849         (CCGestureCurveTarget):
1850         * platform/graphics/chromium/cc/CCInputHandler.h:
1851         (WebCore):
1852         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1853         (WebCore::CCLayerTreeHostImpl::animate):
1854         (WebCore::CCLayerTreeHostImpl::setActiveGestureAnimation):
1855         (WebCore):
1856         (WebCore::CCLayerTreeHostImpl::animateGestures):
1857         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1858         (WebCore):
1859         (WebCore::CCLayerTreeHostImpl::activeGestureAnimation):
1860         (CCLayerTreeHostImpl):
1861
1862 2012-03-15  Patrick Gansterer  <paroga@webkit.org>
1863
1864         [EFL] Make zlib a general build requirement
1865         https://bugs.webkit.org/show_bug.cgi?id=80153
1866
1867         Reviewed by Hajime Morita.
1868
1869         After r109538 WebSocket module needs zlib to support deflate-frame extension.
1870
1871         * PlatformEfl.cmake:
1872
1873 2012-03-15  Robert Kroeger  <rjkroege@chromium.org>
1874
1875         REGRESSION (r110371): broke platform/gtk/scrollbars/overflow-scrollbar-horizontal-wheel-scroll.html
1876         https://bugs.webkit.org/show_bug.cgi?id=80825
1877
1878         Reviewed by James Robinson.
1879
1880         * page/EventHandler.cpp:
1881         (WebCore::EventHandler::handleWheelEvent): Corrected a typo.
1882
1883 2012-03-15  Scott Byer  <scottbyer@chromium.org>
1884
1885         Fix crbug 117957 - get settings scrolling with the wheel again.
1886         https://bugs.webkit.org/show_bug.cgi?id=81247
1887
1888         Reviewed by James Robinson.
1889
1890         Tests to follow.
1891
1892         * page/FrameView.cpp:
1893         (WebCore::FrameView::serviceScriptedAnimations):
1894
1895 2012-03-15  David Hyatt  <hyatt@apple.com>
1896
1897         https://bugs.webkit.org/show_bug.cgi?id=81258
1898
1899         Add a preference for enabling the new multi-column layout code that will be based on regions.
1900
1901         Reviewed by Beth Dakin.
1902
1903         * page/Settings.cpp:
1904         (WebCore::Settings::Settings):
1905         * page/Settings.h:
1906         (WebCore::Settings::setRegionBasedColumnsEnabled):
1907         (WebCore::Settings::regionBasedColumnsEnabled):
1908         (Settings):
1909
1910 2012-03-15  Andreas Kling  <kling@webkit.org>
1911
1912         RenderStyle: Return Color objects by value instead of as const references.
1913         <http://webkit.org/b/81180>
1914
1915         Reviewed by Antti Koivisto.
1916
1917         Make RenderStyle getters return "Color" rather than "const Color&". This is preparation
1918         for storing some color values in a more space-efficient fashion.
1919
1920         * css/CSSStyleApplyProperty.cpp:
1921         (WebCore::ApplyPropertyColor::applyInheritValue):
1922         * page/animation/AnimationBase.cpp:
1923         (PropertyWrapperColor):
1924         (WebCore::PropertyWrapperColor::PropertyWrapperColor):
1925         (WebCore::PropertyWrapperColor::blend):
1926         (WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
1927         (PropertyWrapperMaybeInvalidColor):
1928         (WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
1929         (WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
1930         (PropertyWrapperSVGPaint):
1931         * platform/graphics/Color.h:
1932         (WebCore::Color::Color):
1933         * rendering/style/RenderStyle.h:
1934
1935 2012-03-15  Jessie Berlin  <jberlin@apple.com>
1936
1937         Assertion failures in WebCore::Page::goBackOrForward causing multiple "crashes" on Lion Intel
1938         Debug WebKit2 testers
1939         https://bugs.webkit.org/show_bug.cgi?id=81159
1940
1941         Rubber-stamped by Brady Eidson.
1942
1943         It is plausible that history could change in between the time a navigation request is
1944         scheduled and the timer is fired, so the request index could be out of the b/f list range.
1945         Hence, the assertion is invalid and should be removed.
1946
1947         * page/Page.cpp:
1948         (WebCore::Page::goBackOrForward):
1949
1950 2012-03-15  Alexey Proskuryakov  <ap@apple.com>
1951
1952         Assertion failures in checkEncodedString when running WebKit2 tests
1953         https://bugs.webkit.org/show_bug.cgi?id=67425
1954         <rdar://problem/11043492>
1955
1956         Reviewed by Anders Carlsson.
1957
1958         * platform/network/cf/ResourceErrorCF.cpp: (WebCore::ResourceError::cfError):
1959         * platform/network/mac/ResourceErrorMac.mm: (WebCore::ResourceError::nsError):
1960         The failing URL is certainly not guaranteed to be valid, so it's not correct to put it back
1961         into a URL as if it's been normalized by KURL.
1962
1963 2012-03-15  Brady Eidson  <beidson@apple.com>
1964
1965         <rdar://problem/11036900> and https://bugs.webkit.org/show_bug.cgi?id=81079
1966         REGRESSION(r107844): Clipboard API only remembers most recent data set on clipboard
1967
1968         Reviewed by Sam Weinig.
1969
1970         Test: editing/pasteboard/copy-two-pasteboard-types-both-work.html
1971
1972         Add the non-destructive "addTypes" to supplement the destructive "setTypes"
1973         * platform/PasteboardStrategy.h:
1974         (PasteboardStrategy):
1975         * platform/PlatformPasteboard.h:
1976         (PlatformPasteboard):
1977         * platform/mac/PlatformPasteboardMac.mm:
1978         (WebCore::PlatformPasteboard::addTypes):
1979         * WebCore.exp.in:
1980
1981         * platform/mac/ClipboardMac.mm:
1982         (WebCore::ClipboardMac::setData): Call the non-destructive "addTypes" instead of
1983           the destructive "setTypes"
1984
1985 2012-03-15  Dana Jansens  <danakj@chromium.org>
1986
1987         [Chromium] REGRESSION(r110596) CCQuadCullerTest.verifyCullChildLinesUpTopLeft fails on Windows
1988         https://bugs.webkit.org/show_bug.cgi?id=81083
1989
1990         Reviewed by Adrienne Walker.
1991
1992         The surface pointer on the occlusion tracker stack is uninitialized, and
1993         can be non-null, but the layer's target surface is null, causing asserts
1994         to fail. Fixes the TestCCOcclusionTrackerImpl to initialize the stack's
1995         surface to be null.
1996
1997         * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
1998         (WebCore::::enterTargetRenderSurface):
1999         (WebCore::::unoccludedContentRect):
2000         * platform/graphics/chromium/cc/CCOcclusionTracker.h:
2001         (WebCore::CCOcclusionTrackerBase::StackObject::StackObject):
2002
2003 2012-03-15  David Levin  <levin@chromium.org>
2004
2005         Various autoresize fixes.
2006         https://bugs.webkit.org/show_bug.cgi?id=81199
2007
2008         Reviewed by Darin Fisher.
2009
2010         Tested by WebViewTest additions.
2011
2012         * page/FrameView.cpp:
2013         (WebCore::FrameView::autoSizeIfEnabled): Fixed a bug that caused a horizontal
2014         scrollbar to appear when the size was width was fixed and height overflowed which
2015         is one of the tests that was added.
2016
2017 2012-03-15  Andrey Kosyakov  <caseq@chromium.org>
2018
2019         Web Inspector: normalize vertical overview bars by longest bar, not by longest frame
2020         https://bugs.webkit.org/show_bug.cgi?id=81231
2021
2022         Reviewed by Vsevolod Vlasov.
2023
2024         * inspector/front-end/TimelineOverviewPane.js:
2025         (WebInspector.TimelineOverviewPane):
2026         (WebInspector.TimelineOverviewPane.prototype.reset):
2027         (WebInspector.TimelineOverviewPane.prototype.accept):
2028         (WebInspector.TimelineOverviewPane.prototype.windowEndTime):
2029         (WebInspector.TimelineVerticalOverview.prototype.reset):
2030         (WebInspector.TimelineVerticalOverview.prototype.update):
2031         (WebInspector.TimelineVerticalOverview.prototype._aggregateFrames):
2032         (WebInspector.TimelineVerticalOverview.prototype._aggregateRecords):
2033         (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
2034
2035 2012-03-15  Andrey Kosyakov  <caseq@chromium.org>
2036
2037         Web Inspector: crash in InspectorTimelineAgent when trying to add children to cancelable records
2038         https://bugs.webkit.org/show_bug.cgi?id=81245
2039
2040         Reviewed by Vsevolod Vlasov.
2041
2042         * inspector/InspectorTimelineAgent.cpp:
2043         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
2044         (WebCore):
2045         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2046         (WebCore::InspectorTimelineAgent::appendRecord):
2047         (WebCore::InspectorTimelineAgent::commitCancelableRecords):
2048         * inspector/InspectorTimelineAgent.h:
2049         (InspectorTimelineAgent):
2050
2051 2012-03-15  Pavel Podivilov  <podivilov@chromium.org>
2052
2053         Web Inspector: live locations could be disposed twice.
2054         https://bugs.webkit.org/show_bug.cgi?id=81249
2055
2056         Reviewed by Vsevolod Vlasov.
2057
2058         * inspector/front-end/ScriptMapping.js:
2059         (WebInspector.MainScriptMapping.prototype._unregisterLiveLocation):
2060
2061 2012-03-15  Carlos Garcia Campos  <cgarcia@igalia.com>
2062
2063         [GTK] Implement unicode submenu items
2064         https://bugs.webkit.org/show_bug.cgi?id=81117
2065
2066         Reviewed by Martin Robinson.
2067
2068         * loader/EmptyClients.h:
2069         (WebCore::EmptyEditorClient::shouldShowUnicodeMenu): Just return
2070         false.
2071         * page/ContextMenuController.cpp:
2072         (WebCore::insertUnicodeCharacter): Helper function to insert a
2073         unicode character.
2074         (WebCore::ContextMenuController::contextMenuItemSelected):
2075         Implement unicode menu items using insertUnicodeCharacter() to
2076         insert the apropriate unicode character.
2077         (WebCore::ContextMenuController::createAndAppendUnicodeSubMenu):
2078         Create the unicode submenu.
2079         (WebCore::ContextMenuController::populate): Add unicode submenu
2080         item for editable content.
2081         (WebCore::ContextMenuController::checkOrEnableIfNeeded): Add
2082         unicode submenu items to the switch.
2083         * page/ContextMenuController.h:
2084         * page/EditorClient.h:
2085         (EditorClient): Add shouldShowUnicodeMenu() for GTK platform.
2086         * platform/ContextMenuItem.h:
2087         * platform/LocalizedStrings.h:
2088         * platform/gtk/LocalizedStringsGtk.cpp:
2089         (WebCore::contextMenuItemTagUnicodeInsertLRMMark): Add localized
2090         string for the unicode menu item.
2091         (WebCore::contextMenuItemTagUnicodeInsertRLMMark): Ditto.
2092         (WebCore::contextMenuItemTagUnicodeInsertLREMark): Ditto.
2093         (WebCore::contextMenuItemTagUnicodeInsertRLEMark): Ditto.
2094         (WebCore::contextMenuItemTagUnicodeInsertLROMark): Ditto.
2095         (WebCore::contextMenuItemTagUnicodeInsertRLOMark): Ditto.
2096         (WebCore::contextMenuItemTagUnicodeInsertPDFMark): Ditto.
2097         (WebCore::contextMenuItemTagUnicodeInsertZWSMark): Ditto.
2098         (WebCore::contextMenuItemTagUnicodeInsertZWJMark): Ditto.
2099         (WebCore::contextMenuItemTagUnicodeInsertZWNJMark): Ditto.
2100
2101 2012-03-15  Vsevolod Vlasov  <vsevik@chromium.org>
2102
2103         Web Inspector: MainScriptMapping should detect snippet scripts by means of sourceURL set before evaluation.
2104         https://bugs.webkit.org/show_bug.cgi?id=81031
2105
2106         Reviewed by Pavel Feldman.
2107
2108         * inspector/front-end/SnippetsModel.js:
2109         (WebInspector.SnippetsModel):
2110         (WebInspector.SnippetsModel.prototype._saveSettings):
2111         (WebInspector.SnippetsModel.prototype.deleteSnippet):
2112         (WebInspector.SnippetsModel.prototype._snippetAdded):
2113         (WebInspector.SnippetsModel.prototype._sourceURLForSnippet):
2114         (WebInspector.SnippetsModel.prototype.snippetIdForSourceURL):
2115         (WebInspector.SnippetsModel.prototype.snippetForSourceURL):
2116         (WebInspector.Snippet.prototype.evaluate):
2117         (WebInspector.SnippetsScriptMapping):
2118         (WebInspector.SnippetsScriptMapping.prototype.uiLocationToRawLocation.get if):
2119         (WebInspector.SnippetsScriptMapping.prototype.uiLocationToRawLocation):
2120         (WebInspector.SnippetsScriptMapping.prototype._releasedUISourceCodes):
2121         (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
2122         (WebInspector.SnippetsScriptMapping.prototype._snippetWillBeEvaluated):
2123         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved.get this):
2124         (WebInspector.SnippetsScriptMapping.prototype._snippetRemoved):
2125
2126 2012-03-15  Kevin Ollivier  <kevino@theolliviers.com>
2127
2128         [wx] Unreviewed. Build fixes for Mac and DOM bindings.
2129
2130         * bindings/cpp/WebDOMEventTarget.cpp:
2131         (toWebKit):
2132         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
2133         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
2134
2135 2012-03-14  Pavel Podivilov  <podivilov@chromium.org>
2136
2137         Web Inspector: extract CompilerScriptMapping from RawSourceCode.
2138         https://bugs.webkit.org/show_bug.cgi?id=81088
2139
2140         Reviewed by Vsevolod Vlasov.
2141
2142         * WebCore.gypi:
2143         * WebCore.vcproj/WebCore.vcproj:
2144         * inspector/compile-front-end.py:
2145         * inspector/front-end/CompilerScriptMapping.js: Added.
2146         (WebInspector.CompilerScriptMapping):
2147         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
2148         (WebInspector.CompilerScriptMapping.prototype.get uiSourceCodeList):
2149         (WebInspector.CompilerScriptMapping.prototype.addScript.get this):
2150         (WebInspector.CompilerScriptMapping.prototype.addScript):
2151         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
2152         (WebInspector.CompilerScriptMapping.prototype.reset):
2153         * inspector/front-end/RawSourceCode.js:
2154         (WebInspector.RawSourceCode):
2155         (WebInspector.RawSourceCode.prototype.setFormatted):
2156         (WebInspector.RawSourceCode.prototype._resourceFinished):
2157         (WebInspector.RawSourceCode.prototype._createUISourceCode):
2158         (WebInspector.RawSourceCode.FormattedSourceMapping.prototype.rawLocationToUILocation):
2159         * inspector/front-end/ResourceScriptMapping.js:
2160         (WebInspector.ResourceScriptMapping.prototype.addScript):
2161         * inspector/front-end/ScriptMapping.js:
2162         (WebInspector.MainScriptMapping):
2163         * inspector/front-end/WebKit.qrc:
2164         * inspector/front-end/inspector.html:
2165
2166 2012-03-15  Peter Rybin  <peter.rybin@gmail.com>
2167
2168         Web Inspector: Move all includes behind ENABLE(INSPECTOR) guards
2169         https://bugs.webkit.org/show_bug.cgi?id=81132
2170
2171         Reviewed by Yury Semikhatsky.
2172
2173         Include directives are moved several lines down in .cpp files and in
2174         generator templates.
2175
2176         * inspector/CodeGeneratorInspector.py:
2177         * inspector/ContentSearchUtils.cpp:
2178         * inspector/DOMEditor.cpp:
2179         * inspector/DOMNodeHighlighter.cpp:
2180         * inspector/DOMPatchSupport.cpp:
2181         * inspector/IdentifiersFactory.cpp:
2182         * inspector/InjectedScript.cpp:
2183         * inspector/InjectedScriptHost.cpp:
2184         * inspector/InjectedScriptManager.cpp:
2185         * inspector/InspectorAgent.cpp:
2186         * inspector/InspectorApplicationCacheAgent.cpp:
2187         * inspector/InspectorBaseAgent.cpp:
2188         * inspector/InspectorCSSAgent.cpp:
2189         * inspector/InspectorClient.cpp:
2190         * inspector/InspectorConsoleAgent.cpp:
2191         * inspector/InspectorController.cpp:
2192         * inspector/InspectorCounters.cpp:
2193         * inspector/InspectorDOMAgent.cpp:
2194         * inspector/InspectorDOMDebuggerAgent.cpp:
2195         * inspector/InspectorDOMStorageAgent.cpp:
2196         * inspector/InspectorDatabaseAgent.cpp:
2197         * inspector/InspectorDatabaseResource.cpp:
2198         * inspector/InspectorDebuggerAgent.cpp:
2199         * inspector/InspectorFileSystemAgent.cpp:
2200         * inspector/InspectorFrontendClientLocal.cpp:
2201         * inspector/InspectorFrontendHost.cpp:
2202         * inspector/InspectorHistory.cpp:
2203         * inspector/InspectorIndexedDBAgent.cpp:
2204         * inspector/InspectorInstrumentation.cpp:
2205         * inspector/InspectorMemoryAgent.cpp:
2206         * inspector/InspectorPageAgent.cpp:
2207         * inspector/InspectorProfilerAgent.cpp:
2208         * inspector/InspectorResourceAgent.cpp:
2209         * inspector/InspectorRuntimeAgent.cpp:
2210         * inspector/InspectorState.cpp:
2211         * inspector/InspectorStyleSheet.cpp:
2212         * inspector/InspectorStyleTextEditor.cpp:
2213         * inspector/InspectorTimelineAgent.cpp:
2214         * inspector/InspectorValues.cpp:
2215         * inspector/InstrumentingAgents.cpp:
2216         * inspector/NetworkResourcesData.cpp:
2217         * inspector/PageConsoleAgent.cpp:
2218         * inspector/PageDebuggerAgent.cpp:
2219         * inspector/PageRuntimeAgent.cpp:
2220         * inspector/TimelineRecordFactory.cpp:
2221         * inspector/WorkerConsoleAgent.cpp:
2222         * inspector/WorkerDebuggerAgent.cpp:
2223         * inspector/WorkerRuntimeAgent.cpp:
2224
2225 2012-03-15  Yury Semikhatsky  <yurys@chromium.org>
2226
2227         Web Inspector: improve HeapSnapshot._buildReversIndex performance
2228         https://bugs.webkit.org/show_bug.cgi?id=81224
2229
2230         Caching node indexes and node count in local variables instead of
2231         calling getters each time reduces the method run time by
2232         factor of 1.5
2233
2234         Reviewed by Pavel Feldman.
2235
2236         * inspector/front-end/HeapSnapshot.js:
2237         (WebInspector.HeapSnapshot.prototype._buildReverseIndex):
2238
2239 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
2240
2241         SVG Animations update baseVal instead of animVal
2242         https://bugs.webkit.org/show_bug.cgi?id=12437
2243
2244         Rubber-stamped by Rob Buis.
2245
2246         Rename constructFromCopy to constructFromVariant, and currentBaseValue to currentBaseValueVariant, to clarify what it actually does.
2247
2248         * svg/SVGAnimateElement.cpp:
2249         (WebCore::SVGAnimateElement::resetToBaseValue):
2250         * svg/SVGAnimatedLength.cpp:
2251         (WebCore::SVGAnimatedLengthAnimator::constructFromVariant):
2252         * svg/SVGAnimatedLength.h:
2253         (SVGAnimatedLengthAnimator):
2254         * svg/SVGAnimatedLengthList.cpp:
2255         (WebCore::SVGAnimatedLengthListAnimator::constructFromVariant):
2256         * svg/SVGAnimatedLengthList.h:
2257         (SVGAnimatedLengthListAnimator):
2258         * svg/SVGAnimatedNumber.cpp:
2259         (WebCore::SVGAnimatedNumberAnimator::constructFromVariant):
2260         * svg/SVGAnimatedNumber.h:
2261         (SVGAnimatedNumberAnimator):
2262         * svg/SVGAnimatedNumberList.cpp:
2263         (WebCore::SVGAnimatedNumberListAnimator::constructFromVariant):
2264         * svg/SVGAnimatedNumberList.h:
2265         (SVGAnimatedNumberListAnimator):
2266         * svg/SVGAnimatedTransformList.cpp:
2267         (WebCore::SVGAnimatedTransformListAnimator::constructFromVariant):
2268         * svg/SVGAnimatedTransformList.h:
2269         (SVGAnimatedTransformListAnimator):
2270         * svg/SVGAnimatedTypeAnimator.h:
2271         (WebCore::SVGAnimatedTypeAnimator::constructFromVariant):
2272         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2273         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValueVariant):
2274         * svg/properties/SVGAnimatedProperty.h:
2275         (SVGAnimatedProperty):
2276         * svg/properties/SVGAnimatedPropertyTearOff.h:
2277         (WebCore::SVGAnimatedPropertyTearOff::currentBaseValueVariant):
2278         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
2279         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValueVariant):
2280
2281 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
2282
2283         Enable animVal support for SVGNumberList
2284         https://bugs.webkit.org/show_bug.cgi?id=81219
2285
2286         Reviewed by Rob Buis.
2287
2288         Enable animVal support for SVGNumberList. Easy patch, we just need to add the missing
2289         constructFromCopy() method to SVGAnumatedNumberListAnimator and report AnimatedNumberList
2290         as supporting animVal.
2291
2292         Covered by existing tests.
2293
2294         * svg/SVGAnimatedNumberList.cpp:
2295         (WebCore::SVGAnimatedNumberListAnimator::constructFromCopy):
2296         (WebCore):
2297         * svg/SVGAnimatedNumberList.h:
2298         (WebCore):
2299         (SVGAnimatedNumberListAnimator):
2300         * svg/SVGAnimatedType.cpp:
2301         (WebCore::SVGAnimatedType::supportsAnimVal):
2302         (WebCore::SVGAnimatedType::setVariantValue):
2303
2304 2012-03-15  Rob Buis  <rbuis@rim.com>
2305
2306         Fix cast-align GCC warnings
2307         https://bugs.webkit.org/show_bug.cgi?id=80790
2308
2309         Reviewed by Nikolas Zimmermann.
2310
2311         * platform/graphics/WOFFFileFormat.cpp:
2312         (WebCore::writeUInt32):
2313         (WebCore::writeUInt16):
2314         (WebCore::convertWOFFToSfnt):
2315
2316 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
2317
2318         Not reviewed. Forgot to preserve copyrights, per reviewer comment.
2319
2320         * svg/SVGAnimatedTransformList.cpp:
2321
2322 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
2323
2324         Enable animVal support for SVGNumber
2325         https://bugs.webkit.org/show_bug.cgi?id=81212
2326
2327         Reviewed by Rob Buis.
2328
2329         Enable animVal support for SVGNumber. This aligns SVGAnimatedStaticPropertyTearOff,
2330         with the other SVGListPropertyTearOff & SVGPropertyTearOff, as all support animVal now.
2331         Converting the rest of the types can be done in small patches now.
2332
2333         Test: svg/animations/svgnumber-animation-4.html
2334
2335         * svg/SVGAnimatedNumber.cpp:
2336         (WebCore::SVGAnimatedNumberAnimator::constructFromCopy):
2337         (WebCore):
2338         * svg/SVGAnimatedNumber.h:
2339         (WebCore):
2340         (SVGAnimatedNumberAnimator):
2341         * svg/SVGAnimatedType.cpp:
2342         (WebCore::SVGAnimatedType::supportsAnimVal):
2343         (WebCore::SVGAnimatedType::setVariantValue):
2344         * svg/properties/SVGAnimatedProperty.h:
2345         (SVGAnimatedProperty):
2346         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
2347         (WebCore::SVGAnimatedStaticPropertyTearOff::animVal):
2348         (WebCore::SVGAnimatedStaticPropertyTearOff::currentAnimatedValue):
2349         (SVGAnimatedStaticPropertyTearOff):
2350         (WebCore::SVGAnimatedStaticPropertyTearOff::currentBaseValue):
2351         (WebCore::SVGAnimatedStaticPropertyTearOff::animationStarted):
2352         (WebCore::SVGAnimatedStaticPropertyTearOff::animationEnded):
2353         (WebCore::SVGAnimatedStaticPropertyTearOff::animationValueWillChange):
2354         (WebCore::SVGAnimatedStaticPropertyTearOff::animationValueDidChange):
2355         (WebCore::SVGAnimatedStaticPropertyTearOff::SVGAnimatedStaticPropertyTearOff):
2356
2357 2012-03-15  Nikolas Zimmermann  <nzimmermann@rim.com>
2358
2359         Enable animVal support for SVGTransformList
2360         https://bugs.webkit.org/show_bug.cgi?id=80758
2361
2362         Reviewed by Antti Koivisto.
2363
2364         Enable animVal support for SVGTransformList. SVGTransformLists are only animatable
2365         via <animateTransform>, not via <animate> directly. Still we can handle it in the
2366         same framework as all other types used for <animate>, as we also need proper animVal
2367         support for <animateTransform>.
2368
2369         This patch removes the special <animateTransform> implementation, and lets
2370         SVGAnimateTransformElement inherit from SVGAnimateElement, just like its done
2371         for SVGAnimateColorElement & SVGSetElement.
2372
2373         All existing code (calculateFromAndToValues/FromAndByValues/etc..) are moved from
2374         SVGAnimateTransform right into the SVGAnimatedTransformListAnimator.
2375
2376         This doesn't change <animateTransform> behavior, it just simplies the code
2377         and enables animVal support for SVGTransformLists - all covered by existing tests.
2378
2379         * CMakeLists.txt:
2380         * GNUmakefile.list.am:
2381         * Target.pri:
2382         * WebCore.gypi:
2383         * WebCore.xcodeproj/project.pbxproj:
2384         * svg/SVGAllInOne.cpp:
2385         * svg/SVGAnimateElement.cpp:
2386         (WebCore::SVGAnimateElement::SVGAnimateElement):
2387         (WebCore::SVGAnimateElement::determineAnimatedPropertyType):
2388         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2389         (WebCore::SVGAnimateElement::applyResultsToTarget):
2390         * svg/SVGAnimateTransformElement.cpp:
2391         (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
2392         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
2393         (WebCore::SVGAnimateTransformElement::parseAttribute):
2394         * svg/SVGAnimateTransformElement.h:
2395         (WebCore::SVGAnimateTransformElement::transformType):
2396         (SVGAnimateTransformElement):
2397         * svg/SVGAnimatedTransformList.cpp: Added.
2398         (WebCore):
2399         (WebCore::SVGAnimatedTransformListAnimator::SVGAnimatedTransformListAnimator):
2400         (WebCore::SVGAnimatedTransformListAnimator::constructFromString):
2401         (WebCore::SVGAnimatedTransformListAnimator::constructFromCopy):
2402         (WebCore::SVGAnimatedTransformListAnimator::calculateFromAndToValues):
2403         (WebCore::SVGAnimatedTransformListAnimator::calculateFromAndByValues):
2404         (WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
2405         (WebCore::SVGAnimatedTransformListAnimator::calculateDistance):
2406         * svg/SVGAnimatedTransformList.h:
2407         (WebCore):
2408         (SVGAnimatedTransformListAnimator):
2409         (WebCore::SVGAnimatedTransformListAnimator::~SVGAnimatedTransformListAnimator):
2410         * svg/SVGAnimatedType.cpp:
2411         (WebCore::SVGAnimatedType::~SVGAnimatedType):
2412         (WebCore::SVGAnimatedType::createTransformList):
2413         (WebCore):
2414         (WebCore::SVGAnimatedType::transformList):
2415         (WebCore::SVGAnimatedType::valueAsString):
2416         (WebCore::SVGAnimatedType::setValueAsString):
2417         (WebCore::SVGAnimatedType::supportsAnimVal):
2418         (WebCore::SVGAnimatedType::setVariantValue):
2419         * svg/SVGAnimatedType.h:
2420         (WebCore):
2421         (SVGAnimatedType):
2422         * svg/SVGAnimatorFactory.h:
2423         (WebCore::SVGAnimatorFactory::create):
2424         * svg/SVGGradientElement.cpp:
2425         (WebCore::SVGGradientElement::parseAttribute):
2426         * svg/SVGPatternElement.cpp:
2427         (WebCore::SVGPatternElement::parseAttribute):
2428         * svg/SVGStyledTransformableElement.cpp:
2429         (WebCore::SVGStyledTransformableElement::parseAttribute):
2430         * svg/SVGTextElement.cpp:
2431         (WebCore::SVGTextElement::parseAttribute):
2432         * svg/SVGTransform.cpp:
2433         (WebCore::SVGTransform::transformTypePrefixForParsing):
2434         (WebCore):
2435         (WebCore::SVGTransform::valueAsString):
2436         * svg/SVGTransform.h:
2437         (SVGTransform):
2438         * svg/SVGTransformList.cpp:
2439         (WebCore::SVGTransformList::parse):
2440         (WebCore):
2441         * svg/SVGTransformList.h:
2442         (SVGTransformList):
2443         * svg/SVGTransformable.cpp:
2444         (WebCore::SVGTransformable::parseTransformType):
2445         * svg/SVGTransformable.h:
2446         (WebCore):
2447         * svg/SVGViewSpec.cpp:
2448         (WebCore::SVGViewSpec::setTransform):
2449
2450 2012-03-13  Nikolas Zimmermann  <nzimmermann@rim.com>
2451
2452         Enable animVal support for SVGLengthList
2453         https://bugs.webkit.org/show_bug.cgi?id=80750
2454
2455         Reviewed by Zoltan Herczeg.
2456
2457         Introduce animVal support for generic SVGList types. This aligns SVGListProperty with SVGProperty
2458         in terms of animVal/baseVal support. Use this to turn on animVal support for SVGLengthList.
2459
2460         Extend all existing SVGLengthList tests to correctly differentiate between baseVal/animVal.
2461
2462         * svg/SVGAnimateElement.cpp:
2463         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2464         * svg/SVGAnimateTransformElement.cpp:
2465         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
2466         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
2467         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
2468         * svg/SVGAnimatedLengthList.cpp:
2469         (WebCore::SVGAnimatedLengthListAnimator::constructFromCopy):
2470         (WebCore):
2471         * svg/SVGAnimatedLengthList.h:
2472         (WebCore):
2473         (SVGAnimatedLengthListAnimator):
2474         * svg/SVGAnimatedType.cpp:
2475         (WebCore::SVGAnimatedType::supportsAnimVal):
2476         (WebCore::SVGAnimatedType::setVariantValue):
2477         * svg/SVGAnimatedType.h:
2478         * svg/SVGAnimationElement.cpp:
2479         (WebCore::SVGAnimationElement::applyAnimatedValue):
2480         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2481         (SVGAnimatedListPropertyTearOff):
2482         (WebCore::SVGAnimatedListPropertyTearOff::baseVal):
2483         (WebCore::SVGAnimatedListPropertyTearOff::animVal):
2484         (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
2485         (WebCore::SVGAnimatedListPropertyTearOff::detachListWrappers):
2486         (WebCore::SVGAnimatedListPropertyTearOff::currentAnimatedValue):
2487         (WebCore::SVGAnimatedListPropertyTearOff::currentBaseValue):
2488         (WebCore::SVGAnimatedListPropertyTearOff::animationStarted):
2489         (WebCore::SVGAnimatedListPropertyTearOff::animationEnded):
2490         (WebCore::SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded):
2491         (WebCore::SVGAnimatedListPropertyTearOff::animationValueWillChange):
2492         (WebCore::SVGAnimatedListPropertyTearOff::animationValueDidChange):
2493         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
2494         (WebCore::SVGAnimatedPathSegListPropertyTearOff::baseVal):
2495         (WebCore::SVGAnimatedPathSegListPropertyTearOff::animVal):
2496         * svg/properties/SVGAnimatedProperty.h:
2497         (WebCore::SVGAnimatedProperty::isAnimating):
2498         (SVGAnimatedProperty):
2499         (WebCore::SVGAnimatedProperty::animationValueWillChange):
2500         (WebCore::SVGAnimatedProperty::animationValueDidChange):
2501         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
2502         (WebCore::SVGAnimatedProperty::SVGAnimatedProperty):
2503         * svg/properties/SVGAnimatedPropertyTearOff.h:
2504         (SVGAnimatedPropertyTearOff):
2505         (WebCore::SVGAnimatedPropertyTearOff::baseVal):
2506         (WebCore::SVGAnimatedPropertyTearOff::animVal):
2507         (WebCore::SVGAnimatedPropertyTearOff::currentAnimatedValue):
2508         (WebCore::SVGAnimatedPropertyTearOff::animationStarted):
2509         (WebCore::SVGAnimatedPropertyTearOff::animationEnded):
2510         (WebCore::SVGAnimatedPropertyTearOff::animationValueWillChange):
2511         (WebCore::SVGAnimatedPropertyTearOff::animationValueDidChange):
2512         (WebCore::SVGAnimatedPropertyTearOff::SVGAnimatedPropertyTearOff):
2513         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
2514         (WebCore::SVGAnimatedTransformListPropertyTearOff::baseVal):
2515         (WebCore::SVGAnimatedTransformListPropertyTearOff::animVal):
2516         * svg/properties/SVGListProperty.h:
2517         (WebCore::SVGListProperty::detachListWrappers):
2518         (SVGListProperty):
2519         (WebCore::SVGListProperty::setValuesAndWrappers):
2520         (WebCore::SVGListProperty::clearValues):
2521         (WebCore::SVGListProperty::clearValuesAndWrappers):
2522         (WebCore::SVGListProperty::numberOfItems):
2523         (WebCore::SVGListProperty::initializeValues):
2524         (WebCore::SVGListProperty::initializeValuesAndWrappers):
2525         (WebCore::SVGListProperty::canGetItem):
2526         (WebCore::SVGListProperty::getItemValues):
2527         (WebCore::SVGListProperty::getItemValuesAndWrappers):
2528         (WebCore::SVGListProperty::insertItemBeforeValues):
2529         (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
2530         (WebCore::SVGListProperty::canReplaceItem):
2531         (WebCore::SVGListProperty::replaceItemValues):
2532         (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
2533         (WebCore::SVGListProperty::canRemoveItem):
2534         (WebCore::SVGListProperty::removeItemValues):
2535         (WebCore::SVGListProperty::removeItemValuesAndWrappers):
2536         (WebCore::SVGListProperty::appendItemValues):
2537         (WebCore::SVGListProperty::appendItemValuesAndWrappers):
2538         (WebCore::SVGListProperty::values):
2539         (WebCore::SVGListProperty::wrappers):
2540         (WebCore::SVGListProperty::SVGListProperty):
2541         * svg/properties/SVGListPropertyTearOff.h:
2542         (SVGListPropertyTearOff):
2543         (WebCore::SVGListPropertyTearOff::create):
2544         (WebCore::SVGListPropertyTearOff::removeItemFromList):
2545         (WebCore::SVGListPropertyTearOff::clear):
2546         (WebCore::SVGListPropertyTearOff::initialize):
2547         (WebCore::SVGListPropertyTearOff::insertItemBefore):
2548         (WebCore::SVGListPropertyTearOff::replaceItem):
2549         (WebCore::SVGListPropertyTearOff::appendItem):
2550         (WebCore::SVGListPropertyTearOff::SVGListPropertyTearOff):
2551         (WebCore::SVGListPropertyTearOff::commitChange):
2552         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
2553         (WebCore::SVGPathSegListPropertyTearOff::clear):
2554         (WebCore::SVGPathSegListPropertyTearOff::getItem):
2555         (WebCore::SVGPathSegListPropertyTearOff::removeItem):
2556         * svg/properties/SVGPathSegListPropertyTearOff.h:
2557         (WebCore::SVGPathSegListPropertyTearOff::create):
2558         (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
2559         (SVGPathSegListPropertyTearOff):
2560         (WebCore::SVGPathSegListPropertyTearOff::initialize):
2561         (WebCore::SVGPathSegListPropertyTearOff::insertItemBefore):
2562         (WebCore::SVGPathSegListPropertyTearOff::replaceItem):
2563         (WebCore::SVGPathSegListPropertyTearOff::appendItem):
2564         (WebCore::SVGPathSegListPropertyTearOff::SVGPathSegListPropertyTearOff):
2565         (WebCore::SVGPathSegListPropertyTearOff::commitChange):
2566         * svg/properties/SVGPropertyInfo.h:
2567         * svg/properties/SVGStaticListPropertyTearOff.h:
2568         (SVGStaticListPropertyTearOff):
2569         (WebCore::SVGStaticListPropertyTearOff::clear):
2570         (WebCore::SVGStaticListPropertyTearOff::initialize):
2571         (WebCore::SVGStaticListPropertyTearOff::getItem):
2572         (WebCore::SVGStaticListPropertyTearOff::insertItemBefore):
2573         (WebCore::SVGStaticListPropertyTearOff::replaceItem):
2574         (WebCore::SVGStaticListPropertyTearOff::removeItem):
2575         (WebCore::SVGStaticListPropertyTearOff::appendItem):
2576         (WebCore::SVGStaticListPropertyTearOff::SVGStaticListPropertyTearOff):
2577         (WebCore::SVGStaticListPropertyTearOff::commitChange):
2578         * svg/properties/SVGTransformListPropertyTearOff.h:
2579         (WebCore::SVGTransformListPropertyTearOff::create):
2580         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
2581         (WebCore::SVGTransformListPropertyTearOff::consolidate):
2582         (WebCore::SVGTransformListPropertyTearOff::SVGTransformListPropertyTearOff):
2583
2584 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
2585
2586         AXDescription for HTML5 footer
2587         https://bugs.webkit.org/show_bug.cgi?id=78967
2588
2589         Return a unique role description for the footer element.
2590
2591         Reviewed by Beth Dakin.
2592
2593         Test: platform/mac/accessibility/footer-roledescription.html
2594
2595         * English.lproj/Localizable.strings:+
2596         * accessibility/AccessibilityObject.h:
2597         * accessibility/AccessibilityRenderObject.cpp:
2598         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2599         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
2600         (createAccessibilityRoleMap):
2601         (-[WebAccessibilityObjectWrapper subrole]):
2602         (-[WebAccessibilityObjectWrapper roleDescription]):
2603         * platform/LocalizedStrings.cpp:
2604         (WebCore::AXFooterRoleDescriptionText):
2605         (WebCore):
2606         * platform/LocalizedStrings.h:
2607         (WebCore):
2608         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
2609         (WebCore::AXFooterRoleDescriptionText):
2610         (WebCore):
2611         * platform/efl/LocalizedStringsEfl.cpp:
2612         (WebCore::AXFooterRoleDescriptionText):
2613         (WebCore):
2614         * platform/gtk/LocalizedStringsGtk.cpp:
2615         (WebCore::AXFooterRoleDescriptionText):
2616         (WebCore):
2617
2618 2012-03-14  Mark Rowe  <mrowe@apple.com>
2619
2620         <http://webkit.org/b/81193> Ensure libWebCoreTestSupport.dylib's library identifier is set appropriately for all configurations.
2621
2622         Reviewed by Dan Bernstein.
2623
2624         * Configurations/WebCoreTestSupport.xcconfig: Switch to setting DYLIB_INSTALL_NAME_BASE
2625         rather than LD_DYLIB_INSTALL_NAME. The latter is derived from the former. Ensure that
2626         DYLIB_INSTALL_NAME_BASE is also set for the Production configuration.
2627
2628 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
2629
2630         AXDescription for ARIA role contentinfo incorrect
2631         https://bugs.webkit.org/show_bug.cgi?id=78967
2632
2633         Reviewed by Beth Dakin.
2634
2635         Test: platform/mac/accessibility/aria-grouping-roles.html
2636
2637         * English.lproj/Localizable.strings:
2638         * platform/LocalizedStrings.cpp:
2639         (WebCore::AXARIAContentGroupText):
2640
2641 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
2642
2643         AX: ARIA tables need to support selected rows attribute/select rows changed notification
2644         https://bugs.webkit.org/show_bug.cgi?id=79821
2645
2646         Reviewed by Beth Dakin.
2647
2648         Test: platform/mac/accessibility/selected-rows-table.html
2649
2650         * accessibility/AccessibilityARIAGrid.h:
2651         (WebCore::AccessibilityARIAGrid::isMultiSelectable):
2652         (AccessibilityARIAGrid):
2653         * accessibility/AccessibilityRenderObject.cpp:
2654         (WebCore::AccessibilityRenderObject::ariaSelectedRows):
2655         * accessibility/AccessibilityTableRow.cpp:
2656         (WebCore::AccessibilityTableRow::observableObject):
2657         (WebCore):
2658         * accessibility/AccessibilityTableRow.h:
2659         (AccessibilityTableRow):
2660         * accessibility/mac/AXObjectCacheMac.mm:
2661         (WebCore::AXObjectCache::postPlatformNotification):
2662
2663 2012-03-14  James Robinson  <jamesr@chromium.org>
2664
2665         Platforms without USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR) don't need to query the page's displayID
2666         https://bugs.webkit.org/show_bug.cgi?id=81187
2667
2668         Reviewed by Simon Fraser.
2669
2670         * dom/Document.cpp:
2671         (WebCore::Document::webkitRequestAnimationFrame):
2672
2673 2012-03-14  Chris Fleizach  <cfleizach@apple.com>
2674
2675         AX: embedded attachments do not report their parents correctly
2676         https://bugs.webkit.org/show_bug.cgi?id=80132
2677
2678         When a WebHTMLView has embedded attachments in it, the AXParent of those attachments is wrong.
2679         It usually points to the AXScrollView of the web area. That's because there has been no way for WebCore to
2680         communicate that this attachment view should actually make believe that it's parent is within the WebCore AX tree.
2681
2682         We can fix that by overriding the AXParent in overriden attributes for items that are attachments.
2683
2684         Reviewed by Beth Dakin.
2685
2686         Not able to construct a layout test because the problem only manifests itself when an AX client connects to WebKit
2687         through the IPC mechanism.
2688
2689         * accessibility/AccessibilityObject.cpp:
2690         (WebCore::AccessibilityObject::detachFromParent):
2691         * accessibility/AccessibilityObject.h:
2692         (AccessibilityObject):
2693         (WebCore::AccessibilityObject::overrideAttachmentParent):
2694         * accessibility/AccessibilityRenderObject.cpp:
2695         (WebCore::AccessibilityRenderObject::updateAttachmentViewParents):
2696         (WebCore::AccessibilityRenderObject::addChildren):
2697         * accessibility/AccessibilityRenderObject.h:
2698         (AccessibilityRenderObject):
2699         * accessibility/mac/AccessibilityObjectMac.mm:
2700         (WebCore::AccessibilityObject::overrideAttachmentParent):
2701
2702 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
2703
2704         Improve ContainerNode's collectNodes() performance
2705         https://bugs.webkit.org/show_bug.cgi?id=80706
2706
2707         Reviewed by Antti Koivisto.
2708
2709         Bump up the size of stack allocated buffer from 1 to 11. According to the rough study I conducted,
2710         this would cover 99.5% of all node collection.
2711
2712         Note: the actual code change was made in r110797 but I somehow mangled my patches.
2713
2714         * dom/ContainerNode.cpp:
2715         (WebCore):
2716
2717 2012-03-14  Seo Sanghyeon  <sh4.seo@samsung.com>
2718
2719         Cleanup semicolons in IDLs
2720         https://bugs.webkit.org/show_bug.cgi?id=81129
2721
2722         Reviewed by Kentaro Hara.
2723
2724         No tests. No change in behavior.
2725
2726         * svg/SVGAnimateColorElement.idl:
2727         * svg/SVGAnimateElement.idl:
2728         * svg/SVGAnimateTransformElement.idl:
2729         * svg/SVGAnimatedRect.idl:
2730
2731 2012-03-14  Hayato Ito  <hayato@chromium.org>
2732
2733         Make ShadowRoot.activeElement return null if it does not contain a focused element.
2734         https://bugs.webkit.org/show_bug.cgi?id=81097
2735
2736         Reviewed by Dimitri Glazkov.
2737
2738         * dom/TreeScope.cpp:
2739         (WebCore::TreeScope::activeElement):
2740
2741 2012-03-14  Matt Falkenhagen  <falken@chromium.org>
2742
2743         Allow per-script font settings to be specified in layout tests
2744         https://bugs.webkit.org/show_bug.cgi?id=78184
2745
2746         Reviewed by Hajime Morita.
2747
2748         This adds per-script font settings to InternalSettings, so it can be used in layout tests instead of
2749         the per-script font settings support in DumpRenderTree overridePreference, which has only been implemented
2750         for Chromium so far.
2751
2752         Test: changed fast/text/international/locale-sensitive-fonts.html to use InternalSettings
2753         instead of overridePreference.
2754
2755         * WebCore.exp.in: Added symbols.
2756         * platform/text/LocaleToScriptMapping.h: Added scriptNameToCode used by InternalSettings.
2757         (WebCore):
2758         * platform/text/LocaleToScriptMappingDefault.cpp:
2759         (WebCore::scriptNameToCode):
2760         (WebCore::localeToScriptCodeForFontSelection):
2761         * platform/text/LocaleToScriptMappingICU.cpp:
2762         (WebCore::scriptNameToCode):
2763         (WebCore):
2764         * testing/InternalSettings.cpp: Added per-script font settings.
2765         (WebCore):
2766         (WebCore::setFontFamily):
2767         (WebCore::InternalSettings::setStandardFontFamily):
2768         (WebCore::InternalSettings::setSerifFontFamily):
2769         (WebCore::InternalSettings::setSansSerifFontFamily):
2770         (WebCore::InternalSettings::setFixedFontFamily):
2771         (WebCore::InternalSettings::setCursiveFontFamily):
2772         (WebCore::InternalSettings::setFantasyFontFamily):
2773         (WebCore::InternalSettings::setPictographFontFamily):
2774         * testing/InternalSettings.h:
2775         (InternalSettings):
2776         * testing/InternalSettings.idl:
2777
2778 2012-03-14  Kwonjin Jeong  <gram@company100.net>
2779
2780         Remove obsolete constructors of CSSPrimitiveValue class.
2781         https://bugs.webkit.org/show_bug.cgi?id=80971
2782
2783         Remove constructors of CSSPrimitiveValue that can't be
2784         reached.
2785
2786         Reviewed by Andreas Kling.
2787
2788         * css/CSSPrimitiveValueMappings.h:
2789
2790 2012-03-14  Igor Oliveira  <igor.o@sisa.samsung.com>
2791
2792         Split the extra logic out of RenderBlock::updateFirstLetter
2793         https://bugs.webkit.org/show_bug.cgi?id=80772
2794
2795         Reviewed by Julien Chaffraix.
2796
2797         No change in behavior expected.
2798
2799         * rendering/RenderBlock.cpp:
2800         (WebCore::RenderBlock::updateFirstLetterStyle):
2801         (WebCore::RenderBlock::createFirstLetterRenderer):
2802         (WebCore::RenderBlock::updateFirstLetter):
2803         (WebCore):
2804         * rendering/RenderBlock.h:
2805         (RenderBlock):
2806
2807 2012-03-14  Anders Carlsson  <andersca@apple.com>
2808
2809         Fix build.
2810
2811         * html/track/TextTrackList.cpp:
2812
2813 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
2814
2815         Build fix.
2816
2817         * dom/DynamicNodeList.h:
2818         (DynamicSubtreeNodeList):
2819
2820 2012-03-14  Ryosuke Niwa  <rniwa@webkit.org>
2821
2822         (register|unregister)DynamicSubtreeNodeList should be called only for labels and regions node lists
2823         https://bugs.webkit.org/show_bug.cgi?id=80900
2824
2825         Reviewed by Andreas Kling.
2826
2827         Cleaned up invalidation code for dynamic node lists. It seems like the existing code was utterly confused
2828         about the lifetime of node lists and caches within them. First, register/unregsiterDynamicSubtreeNodeList
2829         are called for all dynamic node lists even though it's only useful for labels and region node lists since
2830         it's a mechanism to allow node lists to be invalidated at a node to which the node list doesn't belong.
2831
2832         Second, some node lists had dedicated member functions on Node to explicitly invalidate caches in
2833         parsedAttribute. However, this is redundant because invalidateNodeListsCacheAfterAttributeChanged should be
2834         able to invalidate caches when the attribute value changes. This patch gets rid of the last instance of such
2835         function in HTMLLabelElement.
2836
2837         And finally, this patch restricts the callers of DynamicSubtreeNodeList::invalidateCache to be member
2838         functions of NodeListsNodeData (now friends of DynamicSubtreeNodeList) to allow futher refactoring.
2839
2840         * dom/DynamicNodeList.cpp:
2841         (WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Don't register the node list since it's only
2842         useful for labels and region node lists.
2843         (WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Ditto.
2844         * dom/DynamicNodeList.h:
2845         (DynamicSubtreeNodeList):
2846         * dom/Node.cpp:
2847         (WebCore):
2848         (WebCore::Node::registerDynamicSubtreeNodeList): The comment about now we have to invalidate caches
2849         when there had no caches is incorrect because registerDynamicSubtreeNodeList is called when a node list
2850         is initially created. Also, if the tree scope didn't have any caches, then this is the first node list
2851         to be added to the list, so there's no point in calling InvalidateCaches (no-op).
2852         (WebCore::Node::unregisterDynamicSubtreeNodeList):
2853         (WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): Take care of "for" content attribute.
2854         Also remove the redundant call to removeNodeListCacheIfPossible since we only invalidates node lists
2855         and never remove entries from NodeListsNodeData in this function.
2856         (WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): The call to removeNodeListCacheIfPossible
2857         is also redundant here. Also removed the invalidation of m_listsWithCaches since it's already done in
2858         invalidateCaches via invalidateCachesThatDependOnAttributes.
2859         (WebCore::NodeListsNodeData::invalidateCaches): Removed the invalidation of m_labelsNodeListCache. It's
2860         done in invalidateCachesThatDependOnAttributes.
2861         (WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): Invalidate
2862         m_listsInvalidatedAtDocument, which is renamed from m_listsWithCaches.
2863         (WebCore::NodeListsNodeData::isEmpty):
2864         * dom/Node.h:
2865         (Node):
2866         * dom/NodeRareData.h:
2867         (NodeListsNodeData):
2868         * html/HTMLLabelElement.cpp:
2869         (WebCore): Removed parseAttribute since the invalidation labels node list is now done by
2870         invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged.
2871         * html/HTMLLabelElement.h:
2872         (HTMLLabelElement):
2873         * html/LabelsNodeList.cpp:
2874         (WebCore::LabelsNodeList::LabelsNodeList):
2875         (WebCore::LabelsNodeList::~LabelsNodeList):
2876
2877 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
2878
2879         Unreviewed, rolling out r110565.
2880         http://trac.webkit.org/changeset/110565
2881         https://bugs.webkit.org/show_bug.cgi?id=81173
2882
2883         chromium deps are now far enough along that the original cl
2884         should work (Requested by thakis on #webkit).
2885
2886         * WebCore.gyp/mac/adjust_visibility.sh:
2887
2888 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
2889
2890         Unreviewed, rolling out r110641.
2891         http://trac.webkit.org/changeset/110641
2892         https://bugs.webkit.org/show_bug.cgi?id=81170
2893
2894         Causes an ASAN failure (Requested by abarth on #webkit).
2895
2896         * Target.pri:
2897         * UseV8.cmake:
2898         * WebCore.gypi:
2899         * bindings/scripts/CodeGeneratorJS.pm:
2900         (GenerateHeader):
2901         (GenerateImplementation):
2902         * bindings/scripts/CodeGeneratorV8.pm:
2903         (GenerateHeader):
2904         (GenerateNamedConstructorCallback):
2905         (GenerateImplementation):
2906         * bindings/scripts/IDLAttributes.txt:
2907         * bindings/scripts/test/V8/V8Float64Array.cpp:
2908         (WebCore):
2909         * bindings/scripts/test/V8/V8Float64Array.h:
2910         (V8Float64Array):
2911         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2912         (WebCore):
2913         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2914         (V8TestActiveDOMObject):
2915         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2916         (WebCore):
2917         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2918         (V8TestCustomNamedGetter):
2919         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2920         (WebCore):
2921         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2922         (V8TestEventConstructor):
2923         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2924         (WebCore):
2925         * bindings/scripts/test/V8/V8TestEventTarget.h:
2926         (V8TestEventTarget):
2927         * bindings/scripts/test/V8/V8TestInterface.cpp:
2928         (WebCore):
2929         * bindings/scripts/test/V8/V8TestInterface.h:
2930         (V8TestInterface):
2931         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2932         (WebCore):
2933         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2934         (V8TestMediaQueryListListener):
2935         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2936         (WebCore):
2937         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2938         (V8TestNamedConstructor):
2939         * bindings/scripts/test/V8/V8TestObj.cpp:
2940         (WebCore):
2941         * bindings/scripts/test/V8/V8TestObj.h:
2942         (V8TestObj):
2943         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2944         (WebCore):
2945         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2946         (V8TestSerializedScriptValueInterface):
2947         * bindings/v8/NPV8Object.cpp:
2948         (WebCore::npObjectTypeInfo):
2949         * bindings/v8/V8GCController.cpp:
2950         (WebCore::GrouperVisitor::visitDOMWrapper):
2951         * bindings/v8/WrapperTypeInfo.h:
2952         (WebCore):
2953         (WrapperTypeInfo):
2954         * bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2955         (WebCore):
2956         (WebCore::toV8):
2957         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
2958         (WebCore::toV8):
2959         (WebCore):
2960         * bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.
2961         (WebCore):
2962         (WebCore::toV8):
2963         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
2964         (WebCore):
2965         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
2966         (WebCore::toV8):
2967         (WebCore):
2968         * bindings/v8/custom/V8StyleSheetCustom.cpp:
2969         (WebCore::toV8):
2970         * css/CSSStyleSheet.idl:
2971         * css/StyleSheet.idl:
2972         * dom/DOMStringMap.idl:
2973         * dom/NamedNodeMap.idl:
2974         * html/DOMTokenList.idl:
2975         * html/track/TextTrackList.cpp:
2976         * html/track/TextTrackList.idl:
2977
2978 2012-03-13  Jon Lee  <jonlee@apple.com>
2979
2980         Separate NOTIFICATIONS and LEGACY_NOTIFICATIONS
2981         https://bugs.webkit.org/show_bug.cgi?id=80922
2982         <rdar://problem/11035082>
2983
2984         Reviewed by Jian Li.
2985
2986         You can include either NOTIFICATIONS or LEGACY_NOTIFICATIONS and have a complete API.
2987         LEGACY_NOTIFICATIONS should cover all of the previous functionality, and NOTIFICATIONS will cover the
2988         new API. Therefore, APIs that are common between the two will have:
2989         #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
2990
2991         This patch initially sets both to be exactly the same. As other bugs with patches begin to migrate to
2992         the new API, the defines will begin to split. This allows ports to decide which set of APIs to include.
2993
2994         * bindings/scripts/InFilesCompiler.pm: Update the script to handle the "|" flag in a conditional.
2995         (preferredConditional):
2996         (conditionalStringFromAttributeValue):
2997         (generateInterfacesHeader):
2998         (generateHeadersHeader):
2999
3000         Update everything to be #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
3001         * WebCore.exp.in:
3002         * bindings/cpp/WebDOMEventTarget.cpp:
3003         (toWebKit):
3004         * bindings/js/JSDesktopNotificationsCustom.cpp:
3005         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
3006         * dom/EventTargetFactory.in:
3007         * notifications/Notification.cpp:
3008         * notifications/Notification.h:
3009         * notifications/Notification.idl:
3010         * notifications/NotificationCenter.cpp:
3011         * notifications/NotificationCenter.h:
3012         * notifications/NotificationCenter.idl:
3013         * notifications/NotificationContents.h:
3014         * notifications/NotificationController.cpp:
3015         * notifications/NotificationController.h:
3016         * page/DOMWindow.cpp:
3017         (WebCore::DOMWindow::~DOMWindow):
3018         (WebCore::DOMWindow::willDetachPage):
3019         (WebCore::DOMWindow::disconnectDOMWindowProperties):
3020         (WebCore::DOMWindow::clearDOMWindowProperties):
3021         (WebCore):
3022         * page/DOMWindow.h:
3023         (DOMWindow):
3024         * page/DOMWindow.idl:
3025         * page/Frame.cpp:
3026         (WebCore::Frame::willDetachPage):
3027         (WebCore::Frame::transferChildFrameToNewDocument):
3028         * workers/WorkerContext.cpp:
3029         (WebCore::WorkerContext::~WorkerContext):
3030         (WebCore):
3031         * workers/WorkerContext.h:
3032         (WorkerContext):
3033         * workers/WorkerContext.idl:
3034         * workers/WorkerThread.cpp:
3035         (WebCore::WorkerThread::WorkerThread):
3036         * workers/WorkerThread.h:
3037         (WorkerThread):
3038
3039 2012-03-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3040
3041         Unreviewed, rolling out r110744.
3042         http://trac.webkit.org/changeset/110744
3043         https://bugs.webkit.org/show_bug.cgi?id=81168
3044
3045         Causes many WebAudio tests to crash in debug (Requested by
3046         abarth on #webkit).
3047
3048         * platform/audio/Biquad.cpp:
3049         (WebCore::Biquad::process):
3050
3051 2012-03-14  Brady Eidson  <beidson@apple.com>
3052
3053         <rdar://problem/11045584> and https://bugs.webkit.org/show_bug.cgi?id=81166
3054         Repro crash in compositing/iframes/page-cache-layer-tree.html
3055
3056         Reviewed by Sam Weinig.
3057
3058         No new tests. (Discovered from and covered by existing test)
3059
3060         ScriptCachedFrameData doesn't need to keep a DOMWindow:
3061         * bindings/js/ScriptCachedFrameData.cpp:
3062         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
3063         * bindings/js/ScriptCachedFrameData.h:
3064         (ScriptCachedFrameData):
3065
3066         CachedFrame should grab it off the Frame directly and store it locally:
3067         * history/CachedFrame.cpp:
3068         (WebCore::CachedFrame::CachedFrame):
3069         * history/CachedFrame.h:
3070         (WebCore::CachedFrameBase::domWindow):
3071         (CachedFrameBase):
3072
3073 2012-03-14  Tony Chang  <tony@chromium.org>
3074
3075         fix negative flexing in auto sized columns
3076         https://bugs.webkit.org/show_bug.cgi?id=80069
3077
3078         Reviewed by Ojan Vafai.
3079
3080         New test cases in css3/flexbox/columns-auto-size.html.
3081
3082         * rendering/RenderFlexibleBox.cpp:
3083         (WebCore):
3084         (WebCore::RenderFlexibleBox::computeAvailableFreeSpace): Properly compute this for auto sizing columns. Previously, we would always return 0.
3085         (WebCore::RenderFlexibleBox::layoutFlexItems):
3086         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithm): Drop an unnecessary check against undefined. isSpecified covers this for us.
3087         * rendering/RenderFlexibleBox.h:
3088         (RenderFlexibleBox):
3089
3090 2012-03-14  Grace Ku  <gracek@codeaurora.org>
3091
3092         Incorrect handling of sizes in "em" when first-line changes font size
3093         https://bugs.webkit.org/show_bug.cgi?id=79526
3094
3095         Reviewed by Eric Seidel.
3096
3097         When a first-line pseudo class changes the font size, the "em" unit is handled incorrectly.
3098         It uses the paragraph's original font size (the size of the rest of the paragraph) rather than
3099         the font-size of the first-line of the paragraph.
3100
3101         This was corrected by checking if the InlineFlowBox was the first line using the existing
3102         InlineFlowBox::isFirstLineStyle() function. The corrected behaviour matches Gecko and Presto.
3103         Trident seems to get it half-wrong in the use case we are testing, painting the correct width for
3104         the border but leaving the wrong amount of space.
3105
3106         The CSS specification doc at the time of this patch specifies that ':first-line' should only support
3107         certain properties, though UAs may choose to apply more properties. Furthermore, the spec does not
3108         define the exact rendering of all cases of ':first-line'. It notes that a more precise definition
3109         may appear in future revisions.
3110
3111         Test: fast/css/pseudo-first-line-border-width.html
3112
3113         * rendering/InlineFlowBox.cpp:
3114         (WebCore::InlineFlowBox::paintBoxDecorations):
3115         * rendering/InlineFlowBox.h:
3116         (WebCore::InlineFlowBox::borderLogicalLeft):
3117         (WebCore::InlineFlowBox::borderLogicalRight):
3118         * rendering/RenderBoxModelObject.cpp:
3119         (WebCore::RenderBoxModelObject::paintBorder):
3120         (WebCore::RenderBoxModelObject::getBorderEdgeInfo):
3121         (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
3122         (WebCore::RenderBoxModelObject::borderObscuresBackground):
3123         * rendering/RenderBoxModelObject.h:
3124         (RenderBoxModelObject):
3125
3126 2012-03-14  Martin Robinson  <mrobinson@igalia.com>
3127
3128         Fix the TextureMapper build for GTK+.
3129
3130         No new tests. This is just a build fix.
3131
3132         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
3133         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
3134         * platform/graphics/texmap/TextureMapper.h:
3135
3136 2012-03-12  Martin Robinson  <mrobinson@igalia.com>
3137
3138         [GTK] Menulist buttons have separators even when the theme turns them off
3139         https://bugs.webkit.org/show_bug.cgi?id=80668
3140
3141         Reviewed by Daniel Bates.
3142
3143         No new tests. GTK+ theme differences are notoriously difficult
3144         to test, because consistent results depend on having certain themes
3145         and certain versions of themes installed.
3146
3147         Instead of using the GTK_TYPE_BUTTON and GTK_TYPE_SEPARATOR tags to get the
3148         style context, use GTK_TYPE_COMBO_BOX which should provide more accurate theme settings.
3149
3150         * platform/gtk/RenderThemeGtk3.cpp:
3151         (WebCore::getComboBoxMetrics): Get metrics from a GTK_TYPE_COMBO_BOX style context.
3152         (WebCore::RenderThemeGtk::paintMenuList): Get separator settings from the GTK_TYPE_COMBO_BOX style context.
3153
3154 2012-03-14  Levi Weintraub  <leviw@chromium.org>
3155
3156         Implement proper sub-pixel support in RenderFileUploadControl
3157         https://bugs.webkit.org/show_bug.cgi?id=80881
3158
3159         Reviewed by Dimitri Glazkov.
3160
3161         Correcting improper usage of LayoutUnits when interacting with the graphics context
3162         and platform code. Specifically:
3163         - pixel snapping the clip rect and paint offsets before sending values to the
3164           graphics context in paintObject.
3165         - using on-screen (pixel snapped) values to pass off to platform code to determine
3166           the max length of the filename to be drawn.
3167
3168         No new tests. No change in behavior.
3169
3170         * rendering/RenderFileUploadControl.cpp:
3171         (WebCore::nodeWidth):
3172         (WebCore::RenderFileUploadControl::maxFilenameWidth):
3173         (WebCore::RenderFileUploadControl::paintObject):
3174
3175 2012-03-14  Joseph Pecoraro  <pecoraro@apple.com>
3176
3177         [JSC] Web Inspector: CRASH running $0, $1, etc before they are set
3178         https://bugs.webkit.org/show_bug.cgi?id=81082
3179
3180         Don't return an invalid JSValue. Check if the ScriptValue
3181         has no value and return undefined in that case.
3182
3183         Reviewed by Pavel Feldman.
3184
3185         Updated test: inspector/console/command-line-api.html
3186
3187         * bindings/js/JSInjectedScriptHostCustom.cpp:
3188         (WebCore::JSInjectedScriptHost::inspectedObject):
3189
3190 2012-03-14  James Robinson  <jamesr@chromium.org>
3191
3192         [chromium] Remove canRecoverFromContextLoss attribute, it's unused
3193         https://bugs.webkit.org/show_bug.cgi?id=81158
3194
3195         Reviewed by Stephen White.
3196
3197         Canvas accelerated no longer depends on the canRecoverFromContextLoss attribute after r110716.
3198
3199         * platform/graphics/GraphicsContext3D.h:
3200         (WebCore::GraphicsContext3D::Attributes::Attributes):
3201         (Attributes):
3202         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
3203         (WebCore::SharedGraphicsContext3DImpl::get):
3204
3205 2012-03-14  Jer Noble  <jer.noble@apple.com>
3206
3207         Opening a URL in a MediaDocument does not propagate MIME type info to media element
3208         https://bugs.webkit.org/show_bug.cgi?id=81148
3209
3210         Reviewed by Eric Carlson.
3211
3212         Test: http/tests/media/media-document.html
3213
3214         Pass through the mime type from the DocumentLoader into the <source type=""> attribute of the
3215         generated video element. 
3216
3217         * html/MediaDocument.cpp:
3218         (WebCore::MediaDocumentParser::createDocumentStructure):
3219
3220 2012-03-14  Stephen White  <senorblanco@chromium.org>
3221
3222         [chromium] Fix accelerated Canvas2D with threaded compositing.
3223         https://bugs.webkit.org/show_bug.cgi?id=80998
3224
3225         Reviewed by James Robinson.
3226
3227         Covered by unit tests Canvas2DLayerChromiumTest and
3228         TreeSynchronizerTest.
3229
3230         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
3231         (WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
3232         (WebCore):
3233         Delay creation of the front texture for double-buffering until the
3234         first call to paintContentsIfDirty().
3235         * platform/graphics/chromium/Canvas2DLayerChromium.h:
3236         (Canvas2DLayerChromium):
3237         Remove setTextureManager() and setLayerTreeHost(), since their job
3238         has been subsumed by paintContentsIfDirty().
3239         * platform/graphics/chromium/TreeSynchronizer.cpp:
3240         (WebCore::TreeSynchronizer::updateScrollbarLayerPointersRecursive):
3241         Perform an early-out if the passed-in layer is NULL.
3242
3243 2012-03-14  Mark Pilgrim  <pilgrim@chromium.org>
3244
3245         Move EntriesCallback to Modules/filesystem/
3246         https://bugs.webkit.org/show_bug.cgi?id=81032
3247
3248         Reviewed by Adam Barth.
3249
3250         No new tests, all existing tests pass.
3251
3252         * CMakeLists.txt:
3253         * DerivedSources.make:
3254         * DerivedSources.pri:
3255         * GNUmakefile.list.am:
3256         * Modules/filesystem/EntriesCallback.h: Copied from Source/WebCore/fileapi/EntriesCallback.h.
3257         * Modules/filesystem/EntriesCallback.idl: Copied from Source/WebCore/fileapi/EntriesCallback.idl.
3258         * Target.pri:
3259         * WebCore.gypi:
3260         * WebCore.vcproj/WebCore.vcproj:
3261         * WebCore.xcodeproj/project.pbxproj:
3262         * fileapi/EntriesCallback.h: Removed.
3263         * fileapi/EntriesCallback.idl: Removed.
3264
3265 2012-03-14  Tony Chang  <tony@chromium.org>
3266
3267         multiline column flexbox with auto height wrap too much
3268         https://bugs.webkit.org/show_bug.cgi?id=80929
3269
3270         Reviewed by David Hyatt.
3271
3272         Test: css3/flexbox/multiline-column-auto.html
3273
3274         * rendering/RenderBox.cpp:
3275         (WebCore::RenderBox::computeLogicalHeightUsing):
3276         (WebCore):
3277         (WebCore::RenderBox::computeContentLogicalHeightUsing): Pull out into a separate method.
3278         * rendering/RenderBox.h:
3279         (RenderBox):
3280         * rendering/RenderFlexibleBox.cpp:
3281         (WebCore::RenderFlexibleBox::lineBreakLength): Compute the value based on height & max-height for column layout.
3282         (WebCore):
3283         (WebCore::RenderFlexibleBox::computeNextFlexLine):
3284         * rendering/RenderFlexibleBox.h:
3285         (RenderFlexibleBox):
3286
3287 2012-03-14  Xingnan Wang  <xingnan.wang@intel.com>
3288
3289         Optimize the multiply-add in Biquad.cpp::process
3290         https://bugs.webkit.org/show_bug.cgi?id=75528
3291
3292         Reviewed by Chris Rogers.
3293
3294         Pipeline the multiply-add with SSE2 instructions and get about 20% improvement for the function.
3295
3296         * platform/audio/Biquad.cpp:
3297         (WebCore::Biquad::process):
3298
3299 2012-03-14  James Robinson  <jamesr@chromium.org>
3300
3301         [Chromium] Layout Test compositing/repaint/opacity-between-absolute.html is flaky
3302         https://bugs.webkit.org/show_bug.cgi?id=79823
3303
3304         Reviewed by Adrienne Walker.
3305
3306         LayerRendererChromium was storing a weak pointer to the current render surface in m_currentRenderSurface and
3307         using this in useRenderSurface() to avoid rebinding if we called useRenderSurface() multiple times in a row on
3308         the same surface. This pointer was never cleared, so if any subsequent surface landed at the same address this
3309         caching would misbehave and we'd fail to correctly initialize the new render surface. The caching wasn't
3310         actually buying us anything anyway since we only call useRenderSurface() once per surface per frame and we
3311         always set the viewport for the default render surface.
3312
3313         * platform/graphics/chromium/LayerRendererChromium.cpp:
3314         (WebCore::LayerRendererChromium::beginDrawingFrame):
3315         (WebCore::LayerRendererChromium::useRenderSurface):
3316
3317 2012-03-14  Zalan Bujtas  <zbujtas@gmail.com>
3318
3319         Frame flattening ASSERT(!needsLayout()) in FrameView::paintContents()
3320         https://bugs.webkit.org/show_bug.cgi?id=80155
3321
3322         Reviewed by Antti Koivisto.
3323
3324         This patch ensures that an iframe only schedules and calls parent's layout,
3325         when it is going to be flattened. Non-flattened iframe does not affect
3326         parent's layout, so normal layout flow applies. isInSubframeLayoutWithFrameFlattening()
3327         function has been added to test whether a particular child frame is changing
3328         parent's layout. This function also ensures that scheduleRelayout() and layout()
3329         are in sync of checking againts frame flattening.
3330
3331         Test: fast/frames/flattening/iframe-flattening-fixed-width-and-height-no-scrolling-with-js-forced-layout.html
3332
3333         * page/FrameView.cpp:
3334         (WebCore::FrameView::avoidScrollbarCreation):
3335         (WebCore::FrameView::layout):
3336         (WebCore::FrameView::scheduleRelayout):
3337         (WebCore::FrameView::isInChildFrameWithFrameFlattening):
3338         (WebCore):
3339         (WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
3340         * page/FrameView.h:
3341         (FrameView):
3342         * rendering/RenderIFrame.h:
3343         (RenderIFrame):
3344         (WebCore::RenderIFrame::renderName):
3345
3346 2012-03-14  Anders Carlsson  <andersca@apple.com>
3347
3348         Don't cap the scroll position if layout happens when a FrameView's overhangAmount is non-zero
3349         https://bugs.webkit.org/show_bug.cgi?id=81146
3350         <rdar://problem/10850075>
3351
3352         Reviewed by Beth Dakin.
3353
3354         If layout happens when a page has a non-zero overhang amount, we shouldn't cap the scroll position
3355         to be inside of the valid maximum/minimum scroll offsets because that will cause the page to jump back, which
3356         can look really bad if layout happens in response to the page being scrolled.
3357
3358         * platform/ScrollView.cpp:
3359         (WebCore::ScrollView::updateScrollbars):
3360
3361 2012-03-14  Tommy Widenflycht  <tommyw@google.com>
3362
3363         MediaStream API (JSEP): Introducing IceCandidate
3364         https://bugs.webkit.org/show_bug.cgi?id=80699
3365
3366         Reviewed by Adam Barth.
3367
3368         Patch #2 in a series of patches to change the PeerConnection from ROAP to JSEP,
3369         see bug 80589 for more information.
3370         Adding the JS object IceCandidate and its WebCore/platform sibling IceCandidateDescriptor.
3371         This object will be created both from JS and the embedder.
3372
3373         Not possible to test until the entire JSEP feature is commited.
3374
3375         * GNUmakefile.list.am:
3376         * Modules/mediastream/IceCandidate.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3377         (WebCore):
3378         (WebCore::IceCandidate::create):
3379         (WebCore::IceCandidate::IceCandidate):
3380         (WebCore::IceCandidate::~IceCandidate):
3381         (WebCore::IceCandidate::label):
3382         (WebCore::IceCandidate::candidateLine):
3383         (WebCore::IceCandidate::toSdp):
3384         (WebCore::IceCandidate::descriptor):
3385         * Modules/mediastream/IceCandidate.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3386         (WebCore):
3387         (IceCandidate):
3388         * Modules/mediastream/IceCandidate.idl: Added.
3389         * WebCore.gypi:
3390         * platform/mediastream/IceCandidateDescriptor.cpp: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3391         (WebCore):
3392         (WebCore::IceCandidateDescriptor::create):
3393         (WebCore::IceCandidateDescriptor::IceCandidateDescriptor):
3394         (WebCore::IceCandidateDescriptor::~IceCandidateDescriptor):
3395         (WebCore::IceCandidateDescriptor::toSdp):
3396         * platform/mediastream/IceCandidateDescriptor.h: Copied from Source/WebCore/platform/mediastream/MediaStreamCenter.cpp.
3397         (WebCore):
3398         (IceCandidateDescriptor):
3399         (WebCore::IceCandidateDescriptor::label):
3400         (WebCore::IceCandidateDescriptor::candidateLine):
3401         * platform/mediastream/MediaStreamCenter.cpp:
3402         (WebCore::MediaStreamCenter::constructSdp):
3403         (WebCore):
3404         * platform/mediastream/MediaStreamCenter.h:
3405         (WebCore):
3406         (MediaStreamCenter):
3407
3408 2012-03-14  Simon Fraser  <simon.fraser@apple.com>
3409
3410         background-visibility:hidden should create a RenderLayer
3411         https://bugs.webkit.org/show_bug.cgi?id=81134
3412
3413         Reviewed by Dean Jackson.
3414         
3415         Background-visibility:hidden has to create RenderLayers, because it's implemented
3416         via compositing and/or paint short-circuiting in RenderLayer code.
3417
3418         Test: transforms/3d/general/background-visibility-layers.html
3419
3420         * rendering/RenderBox.h:
3421         * rendering/RenderBoxModelObject.h:
3422         (WebCore::RenderBoxModelObject::requiresLayer):
3423         * rendering/RenderObject.h:
3424         (WebCore::RenderObject::hasHiddenBackface):
3425         * rendering/RenderTableRow.h:
3426
3427 2012-03-14  Raul Hudea  <rhudea@adobe.com>
3428
3429         [CSSRegions][CSSOM] Implement regionLayoutEvent
3430         https://bugs.webkit.org/show_bug.cgi?id=78882
3431
3432         Reviewed by David Hyatt.
3433
3434         Adding the regionLayoutEvent that is dispatch for all regions after each flow-thread layout.
3435
3436         Tests: fast/regions/region-event-add-to-flow.html
3437                fast/regions/region-event-remove-from-dom.html
3438                fast/regions/region-event-remove-from-flow.html
3439                fast/regions/region-event.html
3440
3441         * dom/Document.cpp:
3442         (WebCore::Document::addListenerTypeIfNeeded): Added check for regionLayoutUpdate listeners
3443         * dom/Document.h:
3444         * dom/EventNames.h:
3445         (WebCore):
3446         * dom/Node.cpp:
3447         (WebCore::Node::dispatchRegionLayoutUpdateEvent):
3448         (WebCore):
3449         * dom/Node.h:
3450         (Node):
3451         * rendering/RenderFlowThread.cpp:
3452         (WebCore::RenderFlowThread::RenderFlowThread):
3453         (WebCore::RenderFlowThread::layout): Start the event dispatch timer but only if there are regionLayoutUpdate listeners and there is at least one region that had its layout updated.
3454         (WebCore::RenderFlowThread::computeOverflowStateForRegions): Mark regions that might had a layout update
3455         (WebCore::RenderFlowThread::regionLayoutUpdateEventTimerFired):
3456         (WebCore):
3457         * rendering/RenderFlowThread.h:
3458         * rendering/RenderRegion.cpp:
3459         (WebCore::RenderRegion::RenderRegion):
3460         * rendering/RenderRegion.h:
3461         (WebCore::RenderRegion::setDispatchRegionLayoutUpdateEvent):
3462         (WebCore::RenderRegion::shouldDispatchRegionLayoutUpdateEvent):
3463         (RenderRegion):
3464
3465 2012-03-14  Pierre Rossi  <pierre.rossi@gmail.com>
3466
3467         [Qt] Add support for vertical sliders in mobile theme
3468         https://bugs.webkit.org/show_bug.cgi?id=80179
3469
3470         This makes sliders using the "slider-vertical" appearance more sensible.
3471
3472         Reviewed by Simon Hausmann.
3473
3474         No new tests, since the&nb