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