[GTK] Missing call to g_object_ref while retrieving accessible table cells
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-02-14  Mario Sanchez Prada  <mario.prada@samsung.com>
2
3         [GTK] Missing call to g_object_ref while retrieving accessible table cells
4         https://bugs.webkit.org/show_bug.cgi?id=106903
5
6         Reviewed by Martin Robinson.
7
8         Add missing extra ref to implementation of atk_table_ref_at().
9
10         Test: accessibility/table-cell-for-column-and-row-crash.html
11
12         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
13         (webkitAccessibleTableRefAt): This method transfers full ownership
14         over the returned AtkObject, so an extra reference is needed here.
15
16 2013-02-14  Mike Fenton  <mifenton@rim.com>
17
18         [BlackBerry] Update keyboard event details to match platform details.
19         https://bugs.webkit.org/show_bug.cgi?id=109693
20
21         Reviewed by Yong Li.
22
23         PR 220170.
24
25         Update the keyboard event details to match the
26         platform details available.
27
28         Rename helper function to better describe the conversion.
29
30         Reviewed Internally by Nima Ghanavatian and Gen Mak.
31
32         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
33         (WebCore::windowsKeyCodeForBlackBerryKeycode):
34         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
35
36 2013-02-08  Andrey Kosyakov  <caseq@chromium.org>
37
38         Web Inspector: expose did{Begin,Cancel}Frame() and {will,did}Composite() on WebDebToolsAgent
39         https://bugs.webkit.org/show_bug.cgi?id=109192
40
41         Reviewed by Pavel Feldman.
42
43         - remove frame and compositing instrumentation methods from InspectorInstrumentation;
44         - expose those methods on InspectorController instead.
45
46         * WebCore.exp.in:
47         * inspector/InspectorController.cpp:
48         (WebCore::InspectorController::didBeginFrame):
49         (WebCore):
50         (WebCore::InspectorController::didCancelFrame):
51         (WebCore::InspectorController::willComposite):
52         (WebCore::InspectorController::didComposite):
53         * inspector/InspectorController.h:
54         (InspectorController):
55         * inspector/InspectorInstrumentation.cpp:
56         (WebCore):
57         * inspector/InspectorInstrumentation.h:
58         (InspectorInstrumentation):
59         * testing/Internals.cpp:
60         (WebCore::Internals::emitInspectorDidBeginFrame):
61         (WebCore::Internals::emitInspectorDidCancelFrame):
62
63 2013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
64
65         Web Inspector: Fixed a layout regression in CanvasProfileView.
66         https://bugs.webkit.org/show_bug.cgi?id=109835
67
68         Reviewed by Pavel Feldman.
69
70         Changed splitView.css to supported nested SplitView instances.
71
72         * inspector/front-end/splitView.css:
73         (.split-view-vertical > .split-view-contents):
74         (.split-view-vertical > .split-view-contents-first):
75         (.split-view-vertical > .split-view-contents-first.maximized):
76         (.split-view-vertical > .split-view-contents-second):
77         (.split-view-vertical > .split-view-contents-second.maximized):
78         (.split-view-horizontal > .split-view-contents):
79         (.split-view-horizontal > .split-view-contents-first):
80         (.split-view-horizontal > .split-view-contents-first.maximized):
81         (.split-view-horizontal > .split-view-contents-second):
82         (.split-view-horizontal > .split-view-contents-second.maximized):
83         (.split-view-vertical > .split-view-sidebar.split-view-contents-first:not(.maximized)):
84         (.split-view-vertical > .split-view-sidebar.split-view-contents-second:not(.maximized)):
85         (.split-view-horizontal > .split-view-sidebar.split-view-contents-first:not(.maximized)):
86         (.split-view-horizontal > .split-view-sidebar.split-view-contents-second:not(.maximized)):
87         (.split-view-vertical > .split-view-resizer):
88         (.split-view-horizontal > .split-view-resizer):
89
90 2013-02-14  Vladislav Kaznacheev  <kaznacheev@chromium.org>
91
92         Web Inspector: Color picker should not be available in Computed Styles pane.
93         https://bugs.webkit.org/show_bug.cgi?id=109697
94
95         Reviewed by Alexander Pavlov.
96
97         Changed the parentPane parameter of WebInspector.ComputedStylePropertiesSection to the correct value
98         (the ComputedStyleSidebarPane instance).
99
100         * inspector/front-end/StylesSidebarPane.js:
101         (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
102
103 2013-02-14  Yury Semikhatsky  <yurys@chromium.org>
104
105         Web Inspector: don't create static local string for program literal in InspectorTimelineAgent
106         https://bugs.webkit.org/show_bug.cgi?id=109811
107
108         Reviewed by Pavel Feldman.
109
110         Use const char* constant value instead of creating String from it in thread-unsafe
111         static local variable.
112
113         * inspector/InspectorTimelineAgent.cpp:
114         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
115
116 2013-02-14  Pan Deng  <pan.deng@intel.com>
117
118         [Web Inspector] Fix initiator name issue in reload scenario for Network Panel.
119         https://bugs.webkit.org/show_bug.cgi?id=108746.
120
121         Reviewed by Vsevolod Vlasov.
122
123         WebInspector.displayNameForURL() does not work as expected in the reload scenario,
124         for example, "http://www.yahoo.com/" was trimed to "/" at one time, but at another,
125         the full host name will be displayed.
126         This fix return host + "/" in the issue scenario, and keep with get displayName() in ParsedURL.
127
128         No new tests.
129
130         * inspector/front-end/ParsedURL.js:
131         (WebInspector.ParsedURL.prototype.get displayName): append "/" in the display host scenario.
132         * inspector/front-end/ResourceUtils.js:
133         (WebInspector.displayNameForURL): add host in the head if url trimed as a "/".
134
135 2013-02-14  Alexei Filippov  <alph@chromium.org>
136
137         Web Inspector: fix to record button remaining red after heap snapshot is taken
138         https://bugs.webkit.org/show_bug.cgi?id=109804
139
140         Reviewed by Yury Semikhatsky.
141
142         Revert part of r142243 fix. Namely heap snapshot taking button made
143         stateless as it was before.
144
145         * inspector/front-end/HeapSnapshotView.js:
146         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
147         * inspector/front-end/ProfilesPanel.js:
148         (WebInspector.ProfilesPanel.prototype.toggleRecordButton):
149
150 2013-02-14  Alexander Pavlov  <apavlov@chromium.org>
151
152         Web Inspector: Consistently use SecurityOrigin::toRawString() for serialization across the backend code
153         https://bugs.webkit.org/show_bug.cgi?id=109801
154
155         Reviewed by Yury Semikhatsky.
156
157         No new tests, as existing tests cover the change.
158
159         * inspector/InspectorAgent.cpp:
160         (WebCore::InspectorAgent::didClearWindowObjectInWorld):
161         * inspector/InspectorIndexedDBAgent.cpp:
162         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
163         * inspector/InspectorPageAgent.cpp:
164         (WebCore::InspectorPageAgent::buildObjectForFrame):
165         * inspector/PageRuntimeAgent.cpp:
166         (WebCore::PageRuntimeAgent::notifyContextCreated):
167
168 2013-02-14  Sergio Villar Senin  <svillar@igalia.com>
169
170         Add logging support to IndexedDB for non-Chromium platforms
171         https://bugs.webkit.org/show_bug.cgi?id=109809
172
173         Reviewed by Kentaro Hara.
174
175         Enable logging of IndexedDB through the StorageAPI log channel for
176         non-Chromium architectures.
177
178         No new tests required, we're just enabling logging for IndexedDB
179         using the currently available logging framework.
180
181         * Modules/indexeddb/IDBTracing.h:
182
183 2013-02-14  Vsevolod Vlasov  <vsevik@chromium.org>
184
185         Web Inspector: Remove uriForFile and fileForURI methods from FileSystemMapping.
186         https://bugs.webkit.org/show_bug.cgi?id=109704
187
188         Reviewed by Alexander Pavlov.
189
190         Replaced this methods with one line implementation on the only call site.
191
192         * inspector/front-end/FileSystemMapping.js:
193         * inspector/front-end/FileSystemProjectDelegate.js:
194         (WebInspector.FileSystemProjectDelegate.prototype._filePathForURI):
195         (WebInspector.FileSystemProjectDelegate.prototype.setFileContent):
196         (WebInspector.FileSystemProjectDelegate.prototype._populate.filesLoaded):
197         (WebInspector.FileSystemProjectDelegate.prototype._populate):
198
199 2013-02-14  Anton Vayvod  <avayvod@chromium.org>
200
201         [Text Autosizing] Process narrow descendants with the same multiplier for the font size.
202         https://bugs.webkit.org/show_bug.cgi?id=109573
203
204         Reviewed by Julien Chaffraix.
205
206         Combine narrow descendants of the same autosizing cluster into a group that is autosized
207         with the same multiplier.
208
209         For example, on sites with a sidebar, sometimes the paragraphs next to the sidebar will have
210         a large margin individually applied (via a CSS selector), causing them all to individually
211         appear narrower than their enclosing blockContainingAllText. Rather than making each of
212         these paragraphs into a separate cluster, we want them all to share the same multiplier, as
213         if they were a single cluster.
214
215         Test: fast/text-autosizing/narrow-descendants-combined.html
216
217         * rendering/TextAutosizer.cpp:
218         (WebCore::TextAutosizer::processClusterInternal):
219
220             Common implementation for processCluster() and processCompositeCluster that accepts the
221             text width and whether the cluster should be autosized as parameters instead of
222             calculating it inline.
223
224         (WebCore::TextAutosizer::processCluster):
225
226             Calculates the text width for a single cluster and whether it should be autosized, then
227             calls processClusterInternal() to apply the multiplier and process the cluster's
228             descendants.
229
230         (WebCore::TextAutosizer::processCompositeCluster):
231
232             Calculates the text width for a group of renderers and if the group should be autosized,
233             then calls processClusterInternal() repeatedly with the same multiplier to apply it and
234             process all the descendants of the group.
235
236         (WebCore::TextAutosizer::clusterShouldBeAutosized):
237
238             Calls the multiple renderers version to avoid code duplication.
239
240         (WebCore::TextAutosizer::compositeClusterShouldBeAutosized):
241
242             The multiple renderers version of clusterShouldBeAutosized.
243
244         * rendering/TextAutosizer.h:
245
246             Updated method declarations.
247
248 2013-02-14  Andrey Adaikin  <aandrey@chromium.org>
249
250         Look into possibilities of typedef in webkit idl files
251         https://bugs.webkit.org/show_bug.cgi?id=52340
252
253         Reviewed by Kentaro Hara.
254
255         Add typedef support for WebKit IDL parser.
256         Drive by: fixed a bug of generating "unrestrictedfloat" without a space.
257
258         Added a new IDL test TestTypedefs.idl. The results were generated without typedefs.
259
260         * bindings/scripts/IDLParser.pm:
261         (assertNoExtendedAttributesInTypedef):
262         (parseDefinitions):
263         (applyTypedefs):
264         (applyTypedefsForSignature):
265         (parseTypedef):
266         (parseUnrestrictedFloatType):
267         * bindings/scripts/test/CPP/WebDOMTestTypedefs.cpp: Added.
268         (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate::WebDOMTestTypedefsPrivate):
269         (WebDOMTestTypedefs::WebDOMTestTypedefsPrivate):
270         (WebDOMTestTypedefs::WebDOMTestTypedefs):
271         (WebDOMTestTypedefs::operator=):
272         (WebDOMTestTypedefs::impl):
273         (WebDOMTestTypedefs::~WebDOMTestTypedefs):
274         (WebDOMTestTypedefs::unsignedLongLongAttr):
275         (WebDOMTestTypedefs::setUnsignedLongLongAttr):
276         (WebDOMTestTypedefs::immutableSerializedScriptValue):
277         (WebDOMTestTypedefs::setImmutableSerializedScriptValue):
278         (WebDOMTestTypedefs::func):
279         (WebDOMTestTypedefs::multiTransferList):
280         (WebDOMTestTypedefs::setShadow):
281         (WebDOMTestTypedefs::nullableArrayArg):
282         (WebDOMTestTypedefs::immutablePointFunction):
283         (toWebCore):
284         (toWebKit):
285         * bindings/scripts/test/CPP/WebDOMTestTypedefs.h: Added.
286         (WebCore):
287         (WebDOMTestTypedefs):
288         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp: Added.
289         (_WebKitDOMTestTypedefsPrivate):
290         (WebKit):
291         (WebKit::kit):
292         (WebKit::core):
293         (WebKit::wrapTestTypedefs):
294         (webkit_dom_test_typedefs_finalize):
295         (webkit_dom_test_typedefs_set_property):
296         (webkit_dom_test_typedefs_get_property):
297         (webkit_dom_test_typedefs_constructor):
298         (webkit_dom_test_typedefs_class_init):
299         (webkit_dom_test_typedefs_init):
300         (webkit_dom_test_typedefs_func):
301         (webkit_dom_test_typedefs_multi_transfer_list):
302         (webkit_dom_test_typedefs_set_shadow):
303         (webkit_dom_test_typedefs_nullable_array_arg):
304         (webkit_dom_test_typedefs_immutable_point_function):
305         (webkit_dom_test_typedefs_string_array_function):
306         (webkit_dom_test_typedefs_get_unsigned_long_long_attr):
307         (webkit_dom_test_typedefs_set_unsigned_long_long_attr):
308         (webkit_dom_test_typedefs_get_immutable_serialized_script_value):
309         (webkit_dom_test_typedefs_set_immutable_serialized_script_value):
310         * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h: Added.
311         (_WebKitDOMTestTypedefs):
312         (_WebKitDOMTestTypedefsClass):
313         * bindings/scripts/test/GObject/WebKitDOMTestTypedefsPrivate.h: Added.
314         (WebKit):
315         * bindings/scripts/test/JS/JSTestTypedefs.cpp: Added.
316         (WebCore):
317         (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
318         (WebCore::JSTestTypedefsConstructor::JSTestTypedefsConstructor):
319         (WebCore::JSTestTypedefsConstructor::finishCreation):
320         (WebCore::JSTestTypedefsConstructor::getOwnPropertySlot):
321         (WebCore::JSTestTypedefsConstructor::getOwnPropertyDescriptor):
322         (WebCore::JSTestTypedefsConstructor::getConstructData):
323         (WebCore::JSTestTypedefsPrototype::self):
324         (WebCore::JSTestTypedefsPrototype::getOwnPropertySlot):
325         (WebCore::JSTestTypedefsPrototype::getOwnPropertyDescriptor):
326         (WebCore::JSTestTypedefs::JSTestTypedefs):
327         (WebCore::JSTestTypedefs::finishCreation):
328         (WebCore::JSTestTypedefs::createPrototype):
329         (WebCore::JSTestTypedefs::destroy):
330         (WebCore::JSTestTypedefs::~JSTestTypedefs):
331         (WebCore::JSTestTypedefs::getOwnPropertySlot):
332         (WebCore::JSTestTypedefs::getOwnPropertyDescriptor):
333         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
334         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
335         (WebCore::jsTestTypedefsConstructorTestSubObj):
336         (WebCore::jsTestTypedefsConstructor):
337         (WebCore::JSTestTypedefs::put):
338         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
339         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
340         (WebCore::JSTestTypedefs::getConstructor):
341         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
342         (WebCore::jsTestTypedefsPrototypeFunctionMultiTransferList):
343         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
344         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
345         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
346         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
347         (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
348         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
349         (WebCore::isObservable):
350         (WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
351         (WebCore::JSTestTypedefsOwner::finalize):
352         (WebCore::toJS):
353         (WebCore::toTestTypedefs):
354         * bindings/scripts/test/JS/JSTestTypedefs.h: Added.
355         (WebCore):
356         (JSTestTypedefs):
357         (WebCore::JSTestTypedefs::create):
358         (WebCore::JSTestTypedefs::createStructure):
359         (WebCore::JSTestTypedefs::impl):
360         (WebCore::JSTestTypedefs::releaseImpl):
361         (WebCore::JSTestTypedefs::releaseImplIfNotNull):
362         (JSTestTypedefsOwner):
363         (WebCore::wrapperOwner):
364         (WebCore::wrapperContext):
365         (JSTestTypedefsPrototype):
366         (WebCore::JSTestTypedefsPrototype::create):
367         (WebCore::JSTestTypedefsPrototype::createStructure):
368         (WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
369         (JSTestTypedefsConstructor):
370         (WebCore::JSTestTypedefsConstructor::create):
371         (WebCore::JSTestTypedefsConstructor::createStructure):
372         * bindings/scripts/test/ObjC/DOMTestTypedefs.h: Added.
373         * bindings/scripts/test/ObjC/DOMTestTypedefs.mm: Added.
374         (-[DOMTestTypedefs dealloc]):
375         (-[DOMTestTypedefs finalize]):
376         (-[DOMTestTypedefs unsignedLongLongAttr]):
377         (-[DOMTestTypedefs setUnsignedLongLongAttr:]):
378         (-[DOMTestTypedefs immutableSerializedScriptValue]):
379         (-[DOMTestTypedefs setImmutableSerializedScriptValue:]):
380         (-[DOMTestTypedefs multiTransferList:tx:second:txx:]):
381         (-[DOMTestTypedefs setShadow:height:blur:color:alpha:]):
382         (-[DOMTestTypedefs immutablePointFunction]):
383         (core):
384         (kit):
385         * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h: Added.
386         (WebCore):
387         * bindings/scripts/test/TestTypedefs.idl: Added.
388         * bindings/scripts/test/V8/V8TestTypedefs.cpp: Added.
389         (WebCore):
390         (WebCore::checkTypeOrDieTrying):
391         (TestTypedefsV8Internal):
392         (WebCore::TestTypedefsV8Internal::V8_USE):
393         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrGetter):
394         (WebCore::TestTypedefsV8Internal::unsignedLongLongAttrAttrSetter):
395         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrGetter):
396         (WebCore::TestTypedefsV8Internal::immutableSerializedScriptValueAttrSetter):
397         (WebCore::TestTypedefsV8Internal::TestTypedefsConstructorGetter):
398         (WebCore::TestTypedefsV8Internal::TestTypedefsReplaceableAttrSetter):
399         (WebCore::TestTypedefsV8Internal::funcCallback):
400         (WebCore::TestTypedefsV8Internal::multiTransferListCallback):
401         (WebCore::TestTypedefsV8Internal::setShadowCallback):
402         (WebCore::TestTypedefsV8Internal::methodWithSequenceArgCallback):
403         (WebCore::TestTypedefsV8Internal::nullableArrayArgCallback):
404         (WebCore::TestTypedefsV8Internal::funcWithClampCallback):
405         (WebCore::TestTypedefsV8Internal::immutablePointFunctionCallback):
406         (WebCore::TestTypedefsV8Internal::stringArrayFunctionCallback):
407         (WebCore::V8TestTypedefs::constructorCallback):
408         (WebCore::ConfigureV8TestTypedefsTemplate):
409         (WebCore::V8TestTypedefs::GetRawTemplate):
410         (WebCore::V8TestTypedefs::GetTemplate):
411         (WebCore::V8TestTypedefs::HasInstance):
412         (WebCore::V8TestTypedefs::createWrapper):
413         (WebCore::V8TestTypedefs::derefObject):
414         * bindings/scripts/test/V8/V8TestTypedefs.h: Added.
415         (WebCore):
416         (V8TestTypedefs):
417         (WebCore::V8TestTypedefs::toNative):
418         (WebCore::V8TestTypedefs::installPerContextProperties):
419         (WebCore::V8TestTypedefs::installPerContextPrototypeProperties):
420         (WebCore::wrap):
421         (WebCore::toV8):
422         (WebCore::toV8Fast):
423
424 2013-02-13  Kentaro Hara  <haraken@chromium.org>
425
426         [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
427         and XXXAccessorSetter() to XXXAttrSetterCustom()
428         https://bugs.webkit.org/show_bug.cgi?id=109679
429
430         Reviewed by Adam Barth.
431
432         For naming consistency and clarification.
433
434         No tests. No change in behavior.
435
436         * bindings/scripts/CodeGeneratorV8.pm:
437         (GenerateHeader):
438         (GenerateHeaderCustomCall):
439         (GenerateNormalAttrGetter):
440         (GenerateNormalAttrSetter):
441         (GenerateImplementation):
442         * bindings/scripts/test/V8/V8TestInterface.cpp:
443         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
444         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
445         * bindings/scripts/test/V8/V8TestObj.cpp:
446         (WebCore::TestObjV8Internal::customAttrAttrGetter):
447         (WebCore::TestObjV8Internal::customAttrAttrSetter):
448         * bindings/scripts/test/V8/V8TestObj.h:
449         (V8TestObj):
450         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
451         (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
452         * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
453         (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
454         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
455         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
456         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
457         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
458         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
459         * bindings/v8/custom/V8ClipboardCustom.cpp:
460         (WebCore::V8Clipboard::typesAttrGetterCustom):
461         * bindings/v8/custom/V8CoordinatesCustom.cpp:
462         (WebCore::V8Coordinates::altitudeAttrGetterCustom):
463         (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
464         (WebCore::V8Coordinates::headingAttrGetterCustom):
465         (WebCore::V8Coordinates::speedAttrGetterCustom):
466         * bindings/v8/custom/V8CustomEventCustom.cpp:
467         (WebCore::V8CustomEvent::detailAttrGetterCustom):
468         * bindings/v8/custom/V8DOMWindowCustom.cpp:
469         (WebCore::V8DOMWindow::eventAttrGetterCustom):
470         (WebCore::V8DOMWindow::eventAttrSetterCustom):
471         (WebCore::V8DOMWindow::locationAttrSetterCustom):
472         (WebCore::V8DOMWindow::openerAttrSetterCustom):
473         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
474         (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
475         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
476         (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
477         (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
478         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
479         (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
480         (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
481         (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
482         (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
483         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
484         (WebCore::V8Document::locationAttrGetterCustom):
485         (WebCore::V8Document::locationAttrSetterCustom):
486         * bindings/v8/custom/V8EventCustom.cpp:
487         (WebCore::V8Event::dataTransferAttrGetterCustom):
488         (WebCore::V8Event::clipboardDataAttrGetterCustom):
489         * bindings/v8/custom/V8FileReaderCustom.cpp:
490         (WebCore::V8FileReader::resultAttrGetterCustom):
491         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
492         (WebCore::V8HTMLDocument::allAttrSetterCustom):
493         * bindings/v8/custom/V8HTMLElementCustom.cpp:
494         (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
495         (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
496         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
497         (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
498         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
499         (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
500         (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
501         (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
502         (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
503         (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
504         (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
505         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
506         (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
507         (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
508         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
509         (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
510         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
511         (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
512         * bindings/v8/custom/V8HistoryCustom.cpp:
513         (WebCore::V8History::stateAttrGetterCustom):
514         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
515         (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
516         (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
517         (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
518         * bindings/v8/custom/V8LocationCustom.cpp:
519         (WebCore::V8Location::hashAttrSetterCustom):
520         (WebCore::V8Location::hostAttrSetterCustom):
521         (WebCore::V8Location::hostnameAttrSetterCustom):
522         (WebCore::V8Location::hrefAttrSetterCustom):
523         (WebCore::V8Location::pathnameAttrSetterCustom):
524         (WebCore::V8Location::portAttrSetterCustom):
525         (WebCore::V8Location::protocolAttrSetterCustom):
526         (WebCore::V8Location::searchAttrSetterCustom):
527         (WebCore::V8Location::reloadAttrGetterCustom):
528         (WebCore::V8Location::replaceAttrGetterCustom):
529         (WebCore::V8Location::assignAttrGetterCustom):
530         * bindings/v8/custom/V8MessageEventCustom.cpp:
531         (WebCore::V8MessageEvent::dataAttrGetterCustom):
532         (WebCore::V8MessageEvent::portsAttrGetterCustom):
533         * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
534         (WebCore::V8OscillatorNode::typeAttrSetterCustom):
535         * bindings/v8/custom/V8PannerNodeCustom.cpp:
536         (WebCore::V8PannerNode::panningModelAttrSetterCustom):
537         (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
538         * bindings/v8/custom/V8PopStateEventCustom.cpp:
539         (WebCore::V8PopStateEvent::stateAttrGetterCustom):
540         * bindings/v8/custom/V8SVGLengthCustom.cpp:
541         (WebCore::V8SVGLength::valueAttrGetterCustom):
542         (WebCore::V8SVGLength::valueAttrSetterCustom):
543         * bindings/v8/custom/V8TrackEventCustom.cpp:
544         (WebCore::V8TrackEvent::trackAttrGetterCustom):
545         * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
546         (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
547         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
548         (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
549         (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
550
551 2013-02-14  Yury Semikhatsky  <yurys@chromium.org>
552
553         Web Inspector: extract DOM counters graph implementation into its own class
554         https://bugs.webkit.org/show_bug.cgi?id=109796
555
556         Reviewed by Alexander Pavlov.
557
558         Extracted DOM counters graph implementation into DOMCountersGraph.js leaving
559         in MemoryStatistics.js only common parts shared with NativeMemoryGraph.js
560         Added some closure annotations and converted object literals into classes
561         with named constructors.
562
563         * WebCore.gypi:
564         * WebCore.vcproj/WebCore.vcproj:
565         * inspector/compile-front-end.py:
566         * inspector/front-end/DOMCountersGraph.js: Added.
567         (WebInspector.DOMCountersGraph):
568         (WebInspector.DOMCounterUI):
569         (WebInspector.DOMCountersGraph.Counter):
570         (WebInspector.DOMCounterUI.prototype.setRange):
571         (WebInspector.DOMCounterUI.prototype.updateCurrentValue):
572         (WebInspector.DOMCounterUI.prototype.clearCurrentValueAndMarker):
573         (WebInspector.DOMCounterUI.prototype.saveImageUnderMarker):
574         (WebInspector.DOMCounterUI.prototype.restoreImageUnderMarker):
575         (WebInspector.DOMCounterUI.prototype.discardImageUnderMarker):
576         (WebInspector.DOMCountersGraph.prototype._createCurrentValuesBar):
577         (WebInspector.DOMCountersGraph.prototype._createCounterUIList):
578         (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getNodeCount):
579         (WebInspector.DOMCountersGraph.prototype._createCounterUIList.getListenerCount):
580         (WebInspector.DOMCountersGraph.prototype._canvasHeight):
581         (WebInspector.DOMCountersGraph.prototype._onRecordAdded):
582         (WebInspector.DOMCountersGraph.prototype._draw):
583         (WebInspector.DOMCountersGraph.prototype._restoreImageUnderMarker):
584         (WebInspector.DOMCountersGraph.prototype._saveImageUnderMarker):
585         (WebInspector.DOMCountersGraph.prototype._drawMarker):
586         (WebInspector.DOMCountersGraph.prototype._drawGraph):
587         (WebInspector.DOMCountersGraph.prototype._discardImageUnderMarker):
588         * inspector/front-end/MemoryStatistics.js:
589         (WebInspector.MemoryStatistics):
590         (WebInspector.MemoryStatistics.Counter):
591         (WebInspector.MemoryStatistics.prototype._createCurrentValuesBar):
592         (WebInspector.MemoryStatistics.prototype._createCounterUIList):
593         (WebInspector.MemoryStatistics.prototype.setTopPosition):
594         (WebInspector.MemoryStatistics.prototype._canvasHeight):
595         (WebInspector.MemoryStatistics.prototype._onRecordAdded):
596         (WebInspector.MemoryStatistics.prototype._draw):
597         (WebInspector.MemoryStatistics.prototype._onClick):
598         (WebInspector.MemoryStatistics.prototype._onMouseOut):
599         (WebInspector.MemoryStatistics.prototype._onMouseOver):
600         (WebInspector.MemoryStatistics.prototype._onMouseMove):
601         (WebInspector.MemoryStatistics.prototype._restoreImageUnderMarker):
602         (WebInspector.MemoryStatistics.prototype._drawMarker):
603         (WebInspector.MemoryStatistics.prototype._discardImageUnderMarker):
604         * inspector/front-end/NativeMemoryGraph.js:
605         (WebInspector.NativeMemoryGraph.Counter):
606         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
607         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
608         (WebInspector.NativeMemoryGraph.prototype._draw):
609         * inspector/front-end/TimelinePanel.js:
610         * inspector/front-end/WebKit.qrc:
611
612 2013-02-14  Aivo Paas  <aivopaas@gmail.com>
613
614         Updating mouse cursor on style changes without emitting fake mousemove event
615         https://bugs.webkit.org/show_bug.cgi?id=101857
616
617         Reviewed by Allan Sandfeld Jensen.
618
619         Mouse cursor changes in styles used to be reflected in UI through dispatching a fake
620         mousemove event. The old approach has some flaws: it emits a mousemove event in
621         javascript when there is no mouse movement involved (bug 85343); the fake mousemove
622         event is cancelled while there is a mouse button held down - cursor won't change
623         until mouse is moved or the button released (bug 53341); it has extra overhead of
624         using a timer which was introduced to make scrolling smoother.
625
626         The new approach does not use the fake mousemove event. Instead, it uses only the logic
627         needed for the actual cursor change to happen. This bypasses all the mousemove event related
628         overhead. The remaining code is a stripped version of what was run through the mousemove
629         event path. Everything that was not needed for changing a cursor is stripped off, everything
630         that is needed, remains the same.
631
632         The call to update cursor was moved up in the call tree from RenderObject::StyleDidChange
633         to RenderObject::SetStyle right after the StyleDidChange call. This allows to any updates
634         and style propagations in StyleDidChange to happen and makes sure that a cursor change is
635         not missed. Previous place was at the end of RenderObject::StyleDidChange, where it could
636         have been missed because of an early exit. For example, cursor change on mousedown/up on
637         a text node missed the correct cursor in the first pass.
638
639         Refactored EventHandler::selectCursor to not take a whole mouse event but instead work with
640         HitTestResult so that EventHandler::updateCursor must not create a useless PlatformEvent.
641
642         Fixes: https://bugs.webkit.org/show_bug.cgi?id=85343 (mousemove event on cursor change)
643                https://bugs.webkit.org/show_bug.cgi?id=53341 (no cursor change when mouse button down)
644
645         Tests: fast/events/mouse-cursor-change.html
646                fast/events/mouse-cursor-no-mousemove.html
647
648         * page/EventHandler.cpp:
649         (WebCore::EventHandler::updateCursor): Newly added method for updating mouse cursor
650         (WebCore):
651         (WebCore::EventHandler::selectCursor):
652         (WebCore::EventHandler::handleMouseMoveEvent):
653         * page/EventHandler.h:
654         (EventHandler):
655         * rendering/RenderObject.cpp:
656         (WebCore::areNonIdenticalCursorListsEqual):
657         (WebCore):
658         (WebCore::areCursorsEqual):
659         (WebCore::RenderObject::setStyle):
660         (WebCore::RenderObject::styleDidChange):
661
662 2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
663
664         Web Inspector: Native Memory Instrumentation: Report child nodes as direct members of a container node to make them look like a tree in the snapshot.
665         https://bugs.webkit.org/show_bug.cgi?id=109703
666
667         Also we need to traverse the tree from the top root element down to the leaves.
668
669         Reviewed by Yury Semikhatsky.
670
671         * dom/ContainerNode.cpp:
672         (WebCore::ContainerNode::reportMemoryUsage):
673         * dom/Node.cpp:
674         (WebCore::Node::reportMemoryUsage):
675         * inspector/InspectorMemoryAgent.cpp:
676         (WebCore):
677
678 2013-02-13  Hayato Ito  <hayato@chromium.org>
679
680         [Shadow DOM] Implements a '::distributed()' pseudo element.
681         https://bugs.webkit.org/show_bug.cgi?id=82169
682
683         Reviewed by Dimitri Glazkov.
684
685         Implements a '::distributed()' pseudo element.
686         See the Shadow DOM specification and the filed bug for the detail.
687
688         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#selecting-nodes-distributed-to-insertion-points
689         - https://www.w3.org/Bugs/Public/show_bug.cgi?id=19684
690
691         For example, suppose we are given the following DOM tree and shadow tree:
692
693         - <A>
694           - <B>
695             - <C>
696
697         [A's ShadowRoot]
698           <D>
699           - <style>
700               E content::distributed(B C) { color: green; }
701           - <E>
702             - <content>  (Node B is distributed to this insertion point.)
703
704         In this case, the style rule defined in the shadow tree matches node 'C'.
705
706         A '::distributed()' pseudo element can not be a pseudo class since
707         an intersection between matched_elements(some_selector) and
708         matched_elements(some_selector::distributed(...)) is always an
709         empty set. A '::distributed()' pseudo element is the first-ever
710         *functional* pseudo element which takes a parameter, which can be
711         a selector.
712
713         This rule crosses the shadow boundary from a shadow tree to the
714         tree of its shadow host. That means a rule which includes
715         '::distributed()' pseudo element is defined in shadow tree, but
716         the node which is matched in the rule, the subject of the
717         selector, is outside of the shadow tree. Therefore, we cannot
718         predict where the subject of the selector will be beforehand.
719         Current CSS implementation assumes the subject of the selector
720         must exist in the current scope.
721
722         To overcome this issue, DocumentRuleSets now has a instance of
723         ShadowDistributedRules class.  A style rule will be stored in this
724         instance if the rule includes a '::distributed()' pseudo element.
725         This class also keeps track of each RuleSet by mapping it with a
726         scope where the rule was originally defined. In the example, the
727         scope is A's ShadowRoot.  The scope is used to check whether the
728         left-most matched element (in the example, it's a node 'E') exists
729         in the scope.
730
731         Internally, a '::distributed' pseudo element is represented by a
732         newly introduced 'ShadowDistributed' relation.  That makes an
733         implementation of SelectorChecker::checkSelector() much simpler.
734         A transformation from a distributed pseudo element to a
735         ShadowDistributed is done in parsing stage of CSS.
736
737         Since '::distributed()' is an experimental feature, it's actually
738         prefixed with '-webkit-' and guarded by SHADOW_DOM flag.
739
740         Tests: fast/dom/shadow/distributed-pseudo-element-for-shadow-element.html
741                fast/dom/shadow/distributed-pseudo-element-match-all.html
742                fast/dom/shadow/distributed-pseudo-element-match-descendant.html
743                fast/dom/shadow/distributed-pseudo-element-nested.html
744                fast/dom/shadow/distributed-pseudo-element-no-match.html
745                fast/dom/shadow/distributed-pseudo-element-reprojection.html
746                fast/dom/shadow/distributed-pseudo-element-scoped.html
747                fast/dom/shadow/distributed-pseudo-element-support-selector.html
748                fast/dom/shadow/distributed-pseudo-element-used-in-selector-list.html
749                fast/dom/shadow/distributed-pseudo-element-with-any.html
750                fast/dom/shadow/distributed-pseudo-element.html
751
752         * css/CSSGrammar.y.in:
753         CSS Grammar was updated to support '::distrbuted(selector)'.
754         This pseudo element is the first pseudo element which can take a selector as a parameter.
755         * css/CSSParser.cpp:
756         (WebCore::CSSParser::detectDashToken):
757         (WebCore::CSSParser::rewriteSpecifiersWithNamespaceIfNeeded):
758         (WebCore::CSSParser::rewriteSpecifiersWithElementName):
759         Here we are converting a '::distributed' pseudo element into a
760         ShadowDistributed relation internally.  To support the conversion,
761         these rewriteSpecifiersXXX functions (formally called
762         updateSpecifiersXXX) now return the specifiers which may be
763         converted.
764         (WebCore::CSSParser::rewriteSpecifiers):
765         * css/CSSParser.h:
766         * css/CSSParserValues.cpp:
767         (WebCore::CSSParserSelector::CSSParserSelector):
768         * css/CSSParserValues.h:
769         (CSSParserSelector):
770         (WebCore::CSSParserSelector::functionArgumentSelector):
771         To hold an intermediate selector which appears at the position of an argument in
772         functional pseudo element when parsing CSS.
773         (WebCore::CSSParserSelector::setFunctionArgumentSelector):
774         (WebCore::CSSParserSelector::isDistributedPseudoElement):
775         * css/CSSSelector.cpp:
776         Add new pseudo element, PseudoDistributed, and its internal representation, ShadowDistributed relation.
777         (WebCore::CSSSelector::pseudoId):
778         (WebCore::nameToPseudoTypeMap):
779         (WebCore::CSSSelector::extractPseudoType):
780         (WebCore::CSSSelector::selectorText):
781         * css/CSSSelector.h:
782         (CSSSelector):
783         (WebCore):
784         (WebCore::CSSSelector::isDistributedPseudoElement):
785         (WebCore::CSSSelector::isShadowDistributed):
786         * css/CSSSelectorList.cpp:
787         (WebCore):
788         (SelectorHasShadowDistributed):
789         (WebCore::SelectorHasShadowDistributed::operator()):
790         (WebCore::CSSSelectorList::hasShadowDistributedAt):
791         * css/CSSSelectorList.h:
792         (CSSSelectorList):
793         * css/DocumentRuleSets.cpp:
794         (WebCore):
795         (WebCore::ShadowDistributedRules::addRule):
796         Every CSS rule which includes '::distributed(...)' should be managed by calling this function.
797         (WebCore::ShadowDistributedRules::collectMatchRequests):
798         (WebCore::DocumentRuleSets::resetAuthorStyle):
799         * css/DocumentRuleSets.h:
800         (WebCore):
801         (ShadowDistributedRules):
802         (WebCore::ShadowDistributedRules::clear):
803         (DocumentRuleSets):
804         (WebCore::DocumentRuleSets::shadowDistributedRules)
805         DocumentRuleSets owns an instance of ShadowDistributedRules.
806         * css/RuleSet.cpp:
807         (WebCore::RuleSet::addChildRules):
808         Updated to check whether the rule contains '::distributed()' or not.
809         * css/SelectorChecker.cpp:
810         (WebCore::SelectorChecker::match):
811         Support ShadowDistributed relation. Check all possible insertion points where a node is distributed.
812         * css/SelectorChecker.h:
813         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
814         Adds enum of BehaviorAtBoundary. '::distributed()' is the only
815         rule which uses 'CrossedBoundary' since it is the only rule which
816         crosses shadow boundaries.
817         (SelectorCheckingContext):
818         * css/SelectorFilter.cpp:
819         (WebCore::SelectorFilter::collectIdentifierHashes):
820         * css/StyleResolver.cpp:
821         (WebCore::StyleResolver::collectMatchingRules):
822         (WebCore::StyleResolver::matchAuthorRules):
823         (WebCore::StyleResolver::collectMatchingRulesForList):
824         (WebCore::StyleResolver::ruleMatches):
825         * css/StyleResolver.h:
826         (MatchRequest):
827         (WebCore::MatchRequest::MatchRequest): Add behaviorAtBoundary field.
828         (WebCore):
829         (StyleResolver):
830         * html/shadow/InsertionPoint.cpp:
831         (WebCore::collectInsertionPointsWhereNodeIsDistributed):
832         (WebCore):
833         * html/shadow/InsertionPoint.h:
834         (WebCore):
835
836 2013-02-13  Kentaro Hara  <haraken@chromium.org>
837
838         [V8] Generate wrapper methods for custom methods
839         https://bugs.webkit.org/show_bug.cgi?id=109678
840
841         Reviewed by Adam Barth.
842
843         Currently V8 directly calls back custom methods written
844         in custom binding files. This makes it impossible for code
845         generators to hook custom methods (e.g. Code generators cannot
846         insert a code for FeatureObservation into custom methods).
847         To solve the problem, we should generate wrapper methods for
848         custom methods.
849
850         No tests. No change in behavior.
851
852         * page/DOMWindow.idl: Removed overloaded methods. The fact that methods in an IDL
853         file are overloaded but they are not overloaded in custom bindings confuses code
854         generators. (For some reason, this problem hasn't appeared before this change.)
855         * xml/XMLHttpRequest.idl: Ditto.
856
857         * bindings/scripts/CodeGeneratorV8.pm:
858         (GenerateHeader):
859         (GenerateDomainSafeFunctionGetter):
860         (GenerateEventListenerCallback):
861         (GenerateFunctionCallback):
862         (GenerateNonStandardFunction):
863         (GenerateImplementation):
864         * bindings/scripts/test/V8/V8TestInterface.cpp:
865         (WebCore::TestInterfaceV8Internal::supplementalMethod3Callback):
866         (TestInterfaceV8Internal):
867         (WebCore):
868         * bindings/scripts/test/V8/V8TestObj.cpp:
869         (WebCore::TestObjV8Internal::customMethodCallback):
870         (TestObjV8Internal):
871         (WebCore::TestObjV8Internal::customMethodWithArgsCallback):
872         (WebCore::TestObjV8Internal::classMethod2Callback):
873         (WebCore):
874         (WebCore::ConfigureV8TestObjTemplate):
875         * bindings/scripts/test/V8/V8TestObj.h:
876         (V8TestObj):
877         * bindings/v8/custom/V8ClipboardCustom.cpp:
878         (WebCore::V8Clipboard::clearDataCallbackCustom):
879         (WebCore::V8Clipboard::setDragImageCallbackCustom):
880         * bindings/v8/custom/V8ConsoleCustom.cpp:
881         (WebCore::V8Console::traceCallbackCustom):
882         (WebCore::V8Console::assertCallbackCustom):
883         (WebCore::V8Console::profileCallbackCustom):
884         (WebCore::V8Console::profileEndCallbackCustom):
885         * bindings/v8/custom/V8CryptoCustom.cpp:
886         (WebCore::V8Crypto::getRandomValuesCallbackCustom):
887         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
888         (WebCore::V8DOMFormData::appendCallbackCustom):
889         * bindings/v8/custom/V8DOMWindowCustom.cpp:
890         (WebCore::V8DOMWindow::addEventListenerCallbackCustom):
891         (WebCore::V8DOMWindow::removeEventListenerCallbackCustom):
892         (WebCore::V8DOMWindow::postMessageCallbackCustom):
893         (WebCore::V8DOMWindow::toStringCallbackCustom):
894         (WebCore::V8DOMWindow::releaseEventsCallbackCustom):
895         (WebCore::V8DOMWindow::captureEventsCallbackCustom):
896         (WebCore::V8DOMWindow::showModalDialogCallbackCustom):
897         (WebCore::V8DOMWindow::openCallbackCustom):
898         (WebCore::V8DOMWindow::setTimeoutCallbackCustom):
899         (WebCore::V8DOMWindow::setIntervalCallbackCustom):
900         * bindings/v8/custom/V8DataViewCustom.cpp:
901         (WebCore::V8DataView::getInt8CallbackCustom):
902         (WebCore::V8DataView::getUint8CallbackCustom):
903         (WebCore::V8DataView::setInt8CallbackCustom):
904         (WebCore::V8DataView::setUint8CallbackCustom):
905         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
906         (WebCore::V8DedicatedWorkerContext::postMessageCallbackCustom):
907         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
908         (WebCore::V8DeviceMotionEvent::initDeviceMotionEventCallbackCustom):
909         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
910         (WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallbackCustom):
911         * bindings/v8/custom/V8DocumentCustom.cpp:
912         (WebCore::V8Document::evaluateCallbackCustom):
913         (WebCore::V8Document::createTouchListCallbackCustom):
914         * bindings/v8/custom/V8GeolocationCustom.cpp:
915         (WebCore::V8Geolocation::getCurrentPositionCallbackCustom):
916         (WebCore::V8Geolocation::watchPositionCallbackCustom):
917         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
918         (WebCore::V8HTMLAllCollection::itemCallbackCustom):
919         (WebCore::V8HTMLAllCollection::namedItemCallbackCustom):
920         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
921         (WebCore::V8HTMLCanvasElement::getContextCallbackCustom):
922         (WebCore::V8HTMLCanvasElement::toDataURLCallbackCustom):
923         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
924         (WebCore::V8HTMLDocument::writeCallbackCustom):
925         (WebCore::V8HTMLDocument::writelnCallbackCustom):
926         (WebCore::V8HTMLDocument::openCallbackCustom):
927         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
928         (WebCore::V8HTMLFormControlsCollection::namedItemCallbackCustom):
929         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
930         (WebCore::v8HTMLImageElementConstructorCallbackCustom):
931         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
932         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
933         (WebCore::V8HTMLInputElement::setSelectionRangeCallbackCustom):
934         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
935         (WebCore::V8HTMLOptionsCollection::namedItemCallbackCustom):
936         (WebCore::V8HTMLOptionsCollection::removeCallbackCustom):
937         (WebCore::V8HTMLOptionsCollection::addCallbackCustom):
938         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
939         (WebCore::V8HTMLSelectElement::removeCallbackCustom):
940         * bindings/v8/custom/V8HistoryCustom.cpp:
941         (WebCore::V8History::pushStateCallbackCustom):
942         (WebCore::V8History::replaceStateCallbackCustom):
943         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
944         (WebCore::V8InjectedScriptHost::inspectedObjectCallbackCustom):
945         (WebCore::V8InjectedScriptHost::internalConstructorNameCallbackCustom):
946         (WebCore::V8InjectedScriptHost::isHTMLAllCollectionCallbackCustom):
947         (WebCore::V8InjectedScriptHost::typeCallbackCustom):
948         (WebCore::V8InjectedScriptHost::functionDetailsCallbackCustom):
949         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallbackCustom):
950         (WebCore::V8InjectedScriptHost::getEventListenersCallbackCustom):
951         (WebCore::V8InjectedScriptHost::inspectCallbackCustom):
952         (WebCore::V8InjectedScriptHost::databaseIdCallbackCustom):
953         (WebCore::V8InjectedScriptHost::storageIdCallbackCustom):
954         (WebCore::V8InjectedScriptHost::evaluateCallbackCustom):
955         (WebCore::V8InjectedScriptHost::setFunctionVariableValueCallbackCustom):
956         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
957         (WebCore::V8InspectorFrontendHost::platformCallbackCustom):
958         (WebCore::V8InspectorFrontendHost::portCallbackCustom):
959         (WebCore::V8InspectorFrontendHost::showContextMenuCallbackCustom):
960         (WebCore::V8InspectorFrontendHost::recordActionTakenCallbackCustom):
961         (WebCore::V8InspectorFrontendHost::recordPanelShownCallbackCustom):
962         (WebCore::V8InspectorFrontendHost::recordSettingChangedCallbackCustom):
963         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
964         (WebCore::V8JavaScriptCallFrame::evaluateCallbackCustom):
965         (WebCore::V8JavaScriptCallFrame::restartCallbackCustom):
966         (WebCore::V8JavaScriptCallFrame::setVariableValueCallbackCustom):
967         (WebCore::V8JavaScriptCallFrame::scopeTypeCallbackCustom):
968         * bindings/v8/custom/V8LocationCustom.cpp:
969         (WebCore::V8Location::reloadAccessorGetter):
970         (WebCore::V8Location::replaceAccessorGetter):
971         (WebCore::V8Location::assignAccessorGetter):
972         (WebCore::V8Location::reloadCallbackCustom):
973         (WebCore::V8Location::replaceCallbackCustom):
974         (WebCore::V8Location::assignCallbackCustom):
975         (WebCore::V8Location::valueOfCallbackCustom):
976         (WebCore::V8Location::toStringCallbackCustom):
977         * bindings/v8/custom/V8MessageEventCustom.cpp:
978         (WebCore::V8MessageEvent::initMessageEventCallbackCustom):
979         (WebCore::V8MessageEvent::webkitInitMessageEventCallbackCustom):
980         * bindings/v8/custom/V8MessagePortCustom.cpp:
981         (WebCore::V8MessagePort::postMessageCallbackCustom):
982         * bindings/v8/custom/V8NodeCustom.cpp:
983         (WebCore::V8Node::insertBeforeCallbackCustom):
984         (WebCore::V8Node::replaceChildCallbackCustom):
985         (WebCore::V8Node::removeChildCallbackCustom):
986         (WebCore::V8Node::appendChildCallbackCustom):
987         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
988         (WebCore::V8NotificationCenter::requestPermissionCallbackCustom):
989         * bindings/v8/custom/V8NotificationCustom.cpp:
990         (WebCore::V8Notification::requestPermissionCallbackCustom):
991         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
992         (WebCore::V8SQLResultSetRowList::itemCallbackCustom):
993         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
994         (WebCore::V8SQLTransaction::executeSqlCallbackCustom):
995         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
996         (WebCore::V8SQLTransactionSync::executeSqlCallbackCustom):
997         * bindings/v8/custom/V8SVGLengthCustom.cpp:
998         (WebCore::V8SVGLength::convertToSpecifiedUnitsCallbackCustom):
999         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1000         (WebCore::V8WebGLRenderingContext::getAttachedShadersCallbackCustom):
1001         (WebCore::V8WebGLRenderingContext::getBufferParameterCallbackCustom):
1002         (WebCore::V8WebGLRenderingContext::getExtensionCallbackCustom):
1003         (WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallbackCustom):
1004         (WebCore::V8WebGLRenderingContext::getParameterCallbackCustom):
1005         (WebCore::V8WebGLRenderingContext::getProgramParameterCallbackCustom):
1006         (WebCore::V8WebGLRenderingContext::getRenderbufferParameterCallbackCustom):
1007         (WebCore::V8WebGLRenderingContext::getShaderParameterCallbackCustom):
1008         (WebCore::V8WebGLRenderingContext::getSupportedExtensionsCallbackCustom):
1009         (WebCore::V8WebGLRenderingContext::getTexParameterCallbackCustom):
1010         (WebCore::V8WebGLRenderingContext::getUniformCallbackCustom):
1011         (WebCore::V8WebGLRenderingContext::getVertexAttribCallbackCustom):
1012         (WebCore::V8WebGLRenderingContext::uniform1fvCallbackCustom):
1013         (WebCore::V8WebGLRenderingContext::uniform1ivCallbackCustom):
1014         (WebCore::V8WebGLRenderingContext::uniform2fvCallbackCustom):
1015         (WebCore::V8WebGLRenderingContext::uniform2ivCallbackCustom):
1016         (WebCore::V8WebGLRenderingContext::uniform3fvCallbackCustom):
1017         (WebCore::V8WebGLRenderingContext::uniform3ivCallbackCustom):
1018         (WebCore::V8WebGLRenderingContext::uniform4fvCallbackCustom):
1019         (WebCore::V8WebGLRenderingContext::uniform4ivCallbackCustom):
1020         (WebCore::V8WebGLRenderingContext::uniformMatrix2fvCallbackCustom):
1021         (WebCore::V8WebGLRenderingContext::uniformMatrix3fvCallbackCustom):
1022         (WebCore::V8WebGLRenderingContext::uniformMatrix4fvCallbackCustom):
1023         (WebCore::V8WebGLRenderingContext::vertexAttrib1fvCallbackCustom):
1024         (WebCore::V8WebGLRenderingContext::vertexAttrib2fvCallbackCustom):
1025         (WebCore::V8WebGLRenderingContext::vertexAttrib3fvCallbackCustom):
1026         (WebCore::V8WebGLRenderingContext::vertexAttrib4fvCallbackCustom):
1027         * bindings/v8/custom/V8WorkerContextCustom.cpp:
1028         (WebCore::V8WorkerContext::importScriptsCallbackCustom):
1029         (WebCore::V8WorkerContext::setTimeoutCallbackCustom):
1030         (WebCore::V8WorkerContext::setIntervalCallbackCustom):
1031         * bindings/v8/custom/V8WorkerCustom.cpp:
1032         (WebCore::V8Worker::postMessageCallbackCustom):
1033         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1034         (WebCore::V8XMLHttpRequest::openCallbackCustom):
1035         (WebCore::V8XMLHttpRequest::sendCallbackCustom):
1036         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
1037         (WebCore::V8XSLTProcessor::setParameterCallbackCustom):
1038         (WebCore::V8XSLTProcessor::getParameterCallbackCustom):
1039         (WebCore::V8XSLTProcessor::removeParameterCallbackCustom):
1040
1041 2013-02-13  Praveen R Jadhav  <praveen.j@samsung.com>
1042
1043         JSObject for ChannelSplitterNode and ChannelMergerNode are not created.
1044         https://bugs.webkit.org/show_bug.cgi?id=109542
1045
1046         Reviewed by Kentaro Hara.
1047
1048         "JSGenerateToJSObject" should be included in IDL files
1049         of ChannelSplitterNode and ChannelMergerNode in WebAudio.
1050         This ensures html files to access corresponding objects.
1051
1052         * Modules/webaudio/ChannelMergerNode.idl:
1053         * Modules/webaudio/ChannelSplitterNode.idl:
1054
1055 2013-02-13   Vineet Chaudhary  <rgf748@motorola.com>
1056
1057         [Regression] After r142831  collection-null-like-arguments.html layout test failing
1058         https://bugs.webkit.org/show_bug.cgi?id=109780
1059
1060         Reviewed by Kentaro Hara.
1061
1062         No new tests. LayoutTests/fast/dom/collection-null-like-arguments.html
1063         Should pass now.
1064
1065         * bindings/js/JSHTMLAllCollectionCustom.cpp: Return null for namedItem() only.
1066         (WebCore::getNamedItems):
1067         (WebCore::JSHTMLAllCollection::namedItem):
1068         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
1069         (WebCore::getNamedItems):
1070         (WebCore::JSHTMLFormControlsCollection::namedItem):
1071         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
1072         (WebCore::getNamedItems):
1073         (WebCore::JSHTMLOptionsCollection::namedItem):
1074
1075 2013-02-13  Soo-Hyun Choi  <sh9.choi@samsung.com>
1076
1077         Fix indentation error in MediaPlayerPrivateGStreamer.h
1078         https://bugs.webkit.org/show_bug.cgi?id=109768
1079
1080         Reviewed by Kentaro Hara.
1081
1082         No new tests as this patch just changes indentation style.
1083
1084         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1085         (MediaPlayerPrivateGStreamer):
1086         (WebCore::MediaPlayerPrivateGStreamer::hasVideo):
1087         (WebCore::MediaPlayerPrivateGStreamer::hasAudio):
1088         (WebCore::MediaPlayerPrivateGStreamer::engineDescription):
1089         (WebCore::MediaPlayerPrivateGStreamer::isLiveStream):
1090
1091 2013-02-13  Adam Barth  <abarth@webkit.org>
1092
1093         TokenPreloadScanner should be (mostly!) thread-safe
1094         https://bugs.webkit.org/show_bug.cgi?id=109760
1095
1096         Reviewed by Eric Seidel.
1097
1098         This patch makes the bulk of TokenPreloadScanner thread-safe.  The one
1099         remaining wart is processPossibleBaseTag because it wants to grub
1100         around in the base tag's attributes. I have a plan for that, but it's
1101         going to need to wait for the next patch.
1102
1103         * html/parser/HTMLPreloadScanner.cpp:
1104         (WebCore::isStartTag):
1105         (WebCore::isStartOrEndTag):
1106         (WebCore::TokenPreloadScanner::identifierFor):
1107         (WebCore::TokenPreloadScanner::inititatorFor):
1108         (WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
1109         (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
1110         (TokenPreloadScanner::StartTagScanner):
1111         (WebCore::TokenPreloadScanner::processPossibleTemplateTag):
1112         (WebCore::TokenPreloadScanner::processPossibleStyleTag):
1113         (WebCore::TokenPreloadScanner::processPossibleBaseTag):
1114         (WebCore::TokenPreloadScanner::scan):
1115         (WebCore::HTMLPreloadScanner::scan):
1116         * html/parser/HTMLPreloadScanner.h:
1117         (WebCore):
1118
1119 2013-02-13  Adam Barth  <abarth@webkit.org>
1120
1121         StartTagScanner should be thread-safe
1122         https://bugs.webkit.org/show_bug.cgi?id=109750
1123
1124         Reviewed by Eric Seidel.
1125
1126         This patch weens the StartTagScanner off AtomicString using two
1127         techniques:
1128
1129         1) This patch creates an enum to represent the four tag names that the
1130            StartTagScanner needs to understand. Using an enum is better than
1131            using an AtomicString because we can use the enum on both the main
1132            thread and on the background thread.
1133
1134         2) For attributes, this patch uses threadSafeMatch. We're not able to
1135            use threadSafeMatch everywhere due to performance, but using it for
1136            attributes appears to be ok becaues we only call threadSafeMatch on
1137            the attributes of "interesting" tags.
1138
1139         I tested the performance of this patch using
1140         PerformanceTests/Parser/html-parser.html and did not see any slowdown.
1141         (There actually appeared to be a <1% speedup, but I'm attributing that
1142         to noise.)
1143
1144         * html/parser/HTMLPreloadScanner.cpp:
1145         (WebCore::identifierFor):
1146         (WebCore):
1147         (WebCore::inititatorFor):
1148         (WebCore::StartTagScanner::StartTagScanner):
1149         (WebCore::StartTagScanner::processAttributes):
1150         (StartTagScanner):
1151         (WebCore::StartTagScanner::createPreloadRequest):
1152         (WebCore::StartTagScanner::processAttribute):
1153         (WebCore::StartTagScanner::charset):
1154         (WebCore::StartTagScanner::resourceType):
1155         (WebCore::StartTagScanner::shouldPreload):
1156         (WebCore::HTMLPreloadScanner::processToken):
1157
1158 2013-02-13  Huang Dongsung  <luxtella@company100.net>
1159
1160         Coordinated Graphics: a long page is scaled vertically while loading.
1161         https://bugs.webkit.org/show_bug.cgi?id=109645
1162
1163         Reviewed by Noam Rosenthal.
1164
1165         When loading http://www.w3.org/TR/xpath-datamodel/, Coordinated Graphics draws
1166         vertically scaled contents. It is because there is the difference between the
1167         size of a layer and the size of CoordinatedBackingStore.
1168
1169         Currently, CoordinatedGraphicsScene notifies the size to CoordinatedBackingStore
1170         at the moment of creating, updating and removing a tile. However, it is not
1171         necessary to send tile-related messages when the size of layer is changed.
1172         So this patch resets the size of CoordinatedBackingStore when receiving the
1173         message that is created when the size is changed: SyncLayerState.
1174
1175         There is no current way to reliably test flicker issues.
1176
1177         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
1178           Add m_pendingSize to set m_size at the moment of flushing.
1179           After http://webkit.org/b/108294, m_pendingSize will be removed
1180           because the bug makes CoordinatedGraphicsScene execute all messages at
1181           the moment of flushing.
1182         (WebCore::CoordinatedBackingStore::setSize):
1183         (WebCore::CoordinatedBackingStore::commitTileOperations):
1184         * platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
1185         (CoordinatedBackingStore):
1186         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
1187         (WebCore::CoordinatedGraphicsScene::prepareContentBackingStore):
1188         (WebCore::CoordinatedGraphicsScene::createBackingStoreIfNeeded):
1189         (WebCore::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
1190         (WebCore::CoordinatedGraphicsScene::createTile):
1191         (WebCore::CoordinatedGraphicsScene::removeTile):
1192         (WebCore::CoordinatedGraphicsScene::updateTile):
1193
1194 2013-02-13  Kentaro Hara  <haraken@chromium.org>
1195
1196         [V8] Rename XXXAccessorGetter() to XXXAttrGetterCustom(),
1197         and XXXAccessorSetter() to XXXAttrSetterCustom()
1198         https://bugs.webkit.org/show_bug.cgi?id=109679
1199
1200         Reviewed by Adam Barth.
1201
1202         For naming consistency and clarification.
1203
1204         No tests. No change in behavior.
1205
1206         * bindings/scripts/CodeGeneratorV8.pm:
1207         (GenerateHeader):
1208         (GenerateHeaderCustomCall):
1209         (GenerateNormalAttrGetter):
1210         (GenerateNormalAttrSetter):
1211         (GenerateImplementation):
1212         * bindings/scripts/test/V8/V8TestInterface.cpp:
1213         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
1214         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
1215         * bindings/scripts/test/V8/V8TestObj.cpp:
1216         (WebCore::TestObjV8Internal::customAttrAttrGetter):
1217         (WebCore::TestObjV8Internal::customAttrAttrSetter):
1218         * bindings/scripts/test/V8/V8TestObj.h:
1219         (V8TestObj):
1220         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
1221         (WebCore::V8AudioBufferSourceNode::bufferAttrSetterCustom):
1222         * bindings/v8/custom/V8BiquadFilterNodeCustom.cpp:
1223         (WebCore::V8BiquadFilterNode::typeAttrSetterCustom):
1224         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
1225         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrGetterCustom):
1226         (WebCore::V8CanvasRenderingContext2D::strokeStyleAttrSetterCustom):
1227         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrGetterCustom):
1228         (WebCore::V8CanvasRenderingContext2D::fillStyleAttrSetterCustom):
1229         * bindings/v8/custom/V8ClipboardCustom.cpp:
1230         (WebCore::V8Clipboard::typesAttrGetterCustom):
1231         * bindings/v8/custom/V8CoordinatesCustom.cpp:
1232         (WebCore::V8Coordinates::altitudeAttrGetterCustom):
1233         (WebCore::V8Coordinates::altitudeAccuracyAttrGetterCustom):
1234         (WebCore::V8Coordinates::headingAttrGetterCustom):
1235         (WebCore::V8Coordinates::speedAttrGetterCustom):
1236         * bindings/v8/custom/V8CustomEventCustom.cpp:
1237         (WebCore::V8CustomEvent::detailAttrGetterCustom):
1238         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1239         (WebCore::V8DOMWindow::eventAttrGetterCustom):
1240         (WebCore::V8DOMWindow::eventAttrSetterCustom):
1241         (WebCore::V8DOMWindow::locationAttrSetterCustom):
1242         (WebCore::V8DOMWindow::openerAttrSetterCustom):
1243         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
1244         (WebCore::V8DeviceMotionEvent::accelerationAttrGetterCustom):
1245         (WebCore::V8DeviceMotionEvent::accelerationIncludingGravityAttrGetterCustom):
1246         (WebCore::V8DeviceMotionEvent::rotationRateAttrGetterCustom):
1247         (WebCore::V8DeviceMotionEvent::intervalAttrGetterCustom):
1248         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
1249         (WebCore::V8DeviceOrientationEvent::alphaAttrGetterCustom):
1250         (WebCore::V8DeviceOrientationEvent::betaAttrGetterCustom):
1251         (WebCore::V8DeviceOrientationEvent::gammaAttrGetterCustom):
1252         (WebCore::V8DeviceOrientationEvent::absoluteAttrGetterCustom):
1253         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
1254         (WebCore::V8Document::locationAttrGetterCustom):
1255         (WebCore::V8Document::locationAttrSetterCustom):
1256         * bindings/v8/custom/V8EventCustom.cpp:
1257         (WebCore::V8Event::dataTransferAttrGetterCustom):
1258         (WebCore::V8Event::clipboardDataAttrGetterCustom):
1259         * bindings/v8/custom/V8FileReaderCustom.cpp:
1260         (WebCore::V8FileReader::resultAttrGetterCustom):
1261         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1262         (WebCore::V8HTMLDocument::allAttrSetterCustom):
1263         * bindings/v8/custom/V8HTMLElementCustom.cpp:
1264         (WebCore::V8HTMLElement::itemValueAttrGetterCustom):
1265         (WebCore::V8HTMLElement::itemValueAttrSetterCustom):
1266         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
1267         (WebCore::V8HTMLFrameElement::locationAttrSetterCustom):
1268         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
1269         (WebCore::V8HTMLInputElement::selectionStartAttrGetterCustom):
1270         (WebCore::V8HTMLInputElement::selectionStartAttrSetterCustom):
1271         (WebCore::V8HTMLInputElement::selectionEndAttrGetterCustom):
1272         (WebCore::V8HTMLInputElement::selectionEndAttrSetterCustom):
1273         (WebCore::V8HTMLInputElement::selectionDirectionAttrGetterCustom):
1274         (WebCore::V8HTMLInputElement::selectionDirectionAttrSetterCustom):
1275         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
1276         (WebCore::V8HTMLLinkElement::sizesAttrGetterCustom):
1277         (WebCore::V8HTMLLinkElement::sizesAttrSetterCustom):
1278         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
1279         (WebCore::V8HTMLMediaElement::controllerAttrSetterCustom):
1280         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1281         (WebCore::V8HTMLOptionsCollection::lengthAttrSetterCustom):
1282         * bindings/v8/custom/V8HistoryCustom.cpp:
1283         (WebCore::V8History::stateAttrGetterCustom):
1284         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
1285         (WebCore::V8JavaScriptCallFrame::scopeChainAttrGetterCustom):
1286         (WebCore::V8JavaScriptCallFrame::thisObjectAttrGetterCustom):
1287         (WebCore::V8JavaScriptCallFrame::typeAttrGetterCustom):
1288         * bindings/v8/custom/V8LocationCustom.cpp:
1289         (WebCore::V8Location::hashAttrSetterCustom):
1290         (WebCore::V8Location::hostAttrSetterCustom):
1291         (WebCore::V8Location::hostnameAttrSetterCustom):
1292         (WebCore::V8Location::hrefAttrSetterCustom):
1293         (WebCore::V8Location::pathnameAttrSetterCustom):
1294         (WebCore::V8Location::portAttrSetterCustom):
1295         (WebCore::V8Location::protocolAttrSetterCustom):
1296         (WebCore::V8Location::searchAttrSetterCustom):
1297         (WebCore::V8Location::reloadAttrGetterCustom):
1298         (WebCore::V8Location::replaceAttrGetterCustom):
1299         (WebCore::V8Location::assignAttrGetterCustom):
1300         * bindings/v8/custom/V8MessageEventCustom.cpp:
1301         (WebCore::V8MessageEvent::dataAttrGetterCustom):
1302         (WebCore::V8MessageEvent::portsAttrGetterCustom):
1303         * bindings/v8/custom/V8OscillatorNodeCustom.cpp:
1304         (WebCore::V8OscillatorNode::typeAttrSetterCustom):
1305         * bindings/v8/custom/V8PannerNodeCustom.cpp:
1306         (WebCore::V8PannerNode::panningModelAttrSetterCustom):
1307         (WebCore::V8PannerNode::distanceModelAttrSetterCustom):
1308         * bindings/v8/custom/V8PopStateEventCustom.cpp:
1309         (WebCore::V8PopStateEvent::stateAttrGetterCustom):
1310         * bindings/v8/custom/V8SVGLengthCustom.cpp:
1311         (WebCore::V8SVGLength::valueAttrGetterCustom):
1312         (WebCore::V8SVGLength::valueAttrSetterCustom):
1313         * bindings/v8/custom/V8TrackEventCustom.cpp:
1314         (WebCore::V8TrackEvent::trackAttrGetterCustom):
1315         * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
1316         (WebCore::V8WebKitAnimation::iterationCountAttrGetterCustom):
1317         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
1318         (WebCore::V8XMLHttpRequest::responseTextAttrGetterCustom):
1319         (WebCore::V8XMLHttpRequest::responseAttrGetterCustom):
1320
1321 2013-02-12  Kentaro Hara  <haraken@chromium.org>
1322
1323         [V8] Generate wrapper methods for custom getters/setters
1324         https://bugs.webkit.org/show_bug.cgi?id=109666
1325
1326         Reviewed by Adam Barth.
1327
1328         Currently V8 directly calls back custom getters/setters written
1329         in custom binding files. This makes it impossible for code generators
1330         to hook custom getters/setters (e.g. Code generators cannot insert a code
1331         for FeatureObservation into custom getters/setters). To solve the problem,
1332         we should generate wrapper methods for custom getters/setters.
1333
1334         No tests. No change in behavior.
1335
1336         * bindings/scripts/CodeGeneratorV8.pm:
1337         (GenerateNormalAttrGetter):
1338         (GenerateNormalAttrSetter):
1339         (GenerateSingleBatchedAttribute):
1340         (GenerateImplementation):
1341         * bindings/scripts/test/V8/V8TestInterface.cpp:
1342         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
1343         (TestInterfaceV8Internal):
1344         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
1345         (WebCore):
1346         * bindings/scripts/test/V8/V8TestObj.cpp:
1347         (WebCore::TestObjV8Internal::customAttrAttrGetter):
1348         (TestObjV8Internal):
1349         (WebCore::TestObjV8Internal::customAttrAttrSetter):
1350         (WebCore):
1351
1352 2013-02-13   Vineet Chaudhary  <rgf748@motorola.com>
1353
1354         HTMLCollections namedItem() methods should return null than undefined for empty collections.
1355         https://bugs.webkit.org/show_bug.cgi?id=104096
1356
1357         Reviewed by Kentaro Hara.
1358
1359         As per specification namedItem() should return null if collection is empty.
1360         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection
1361
1362         Test: fast/dom/htmlcollection-namedItem.html
1363
1364         * bindings/js/JSHTMLAllCollectionCustom.cpp: Returning null.
1365         (WebCore::getNamedItems):
1366         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Ditto.
1367         (WebCore::getNamedItems):
1368         * bindings/js/JSHTMLOptionsCollectionCustom.cpp: Ditto.
1369         (WebCore::getNamedItems):
1370         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Ditto.
1371         (WebCore::V8HTMLAllCollection::namedItemCallback):
1372         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Ditto.
1373         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
1374         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp: Ditto.
1375         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
1376
1377 2013-02-13  Tony Gentilcore  <tonyg@chromium.org>
1378
1379         Fix svg/in-html/script-write.html with threaded HTML parser
1380         https://bugs.webkit.org/show_bug.cgi?id=109495
1381
1382         Reviewed by Eric Seidel.
1383
1384         This patch makes the background parser's simulateTreeBuilder() more realistic.
1385         1. The HTMLTreeBuilder does not call the updateStateFor() setState()s when in foreign content mode so we shouldn't do it when simulating the tree builder.
1386         2. HTMLTreeBuilder::processTokenInForeignContent has a list of tags which exit foreign content mode. We need to respect those.
1387         3. Support the <foreignObject> tag which enters and leaves foreign content mode.
1388         4. The tree builder sets state to DataState upon a </script> tag when not in foreign content mode. We need to do the same.
1389
1390         This involved creating a namespace stack where we push upon entering each namespace and pop upon leaving.
1391         We are in foreign content if the topmost namespace is SVG or MathML.
1392
1393         This fixes svg/in-html/script-write.html and likely others.
1394
1395         * html/parser/BackgroundHTMLParser.cpp:
1396         (WebCore::BackgroundHTMLParser::simulateTreeBuilder):
1397         * html/parser/BackgroundHTMLParser.h:
1398         (BackgroundHTMLParser):
1399         * html/parser/CompactHTMLToken.cpp:
1400         (WebCore::CompactHTMLToken::getAttributeItem): Returns the attribute of the given name. Necessary to test for <font> attributes in simulateTreeBuilder.
1401         (WebCore):
1402         * html/parser/CompactHTMLToken.h:
1403         (WebCore):
1404         (CompactHTMLToken):
1405
1406 2013-02-13  Andreas Kling  <akling@apple.com>
1407
1408         Remove Element::getAttributeItem() overload that returned a mutable Attribute*.
1409         <http://webkit.org/b/109756>
1410
1411         Reviewed by Antti Koivisto.
1412
1413         Remove this to prevent callers from accidentally causing elements to convert to UniqueElementData.
1414         There are two call sites (Attr and HTMLSelectElement) that legitimately need to mutate Attribute
1415         objects in-place, they now use Element::ensureUniqueElementData()->getAttributeItem() directly instead.
1416
1417         Small progression on Membuster3, mostly for peace of mind.
1418
1419         * dom/Attr.cpp:
1420         (WebCore::Attr::elementAttribute):
1421         * dom/Element.h:
1422         (Element):
1423         * html/HTMLInputElement.cpp:
1424         (WebCore::HTMLInputElement::updateType):
1425         * html/HTMLSelectElement.cpp:
1426         (WebCore::HTMLSelectElement::parseAttribute):
1427         * svg/SVGStyledElement.cpp:
1428         (WebCore::SVGStyledElement::getPresentationAttribute):
1429
1430 2013-02-13  Andreas Kling  <akling@apple.com>
1431
1432         Stronger ElementData pointer typing.
1433         <http://webkit.org/b/109752>
1434
1435         Reviewed by Antti Koivisto.
1436
1437         Use ShareableElementData/UniqueElementData pointers instead of generic ElementData pointers
1438         where possible. Moved some methods from base class into leaf classes that don't make sense
1439         for both classes.
1440
1441         * dom/DocumentSharedObjectPool.cpp:
1442         (WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
1443         (ShareableElementDataCacheEntry):
1444         (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
1445         * dom/DocumentSharedObjectPool.h:
1446         (DocumentSharedObjectPool):
1447         * dom/Element.cpp:
1448         (WebCore::Element::parserSetAttributes):
1449         (WebCore::Element::setAttributeNode):
1450         (WebCore::Element::removeAttributeInternal):
1451         (WebCore::Element::cloneAttributesFromElement):
1452         (WebCore::Element::createUniqueElementData):
1453         (WebCore::ShareableElementData::createWithAttributes):
1454         (WebCore::UniqueElementData::create):
1455         (WebCore::ElementData::makeUniqueCopy):
1456         (WebCore::UniqueElementData::makeShareableCopy):
1457         * dom/Element.h:
1458         (ElementData):
1459         (ShareableElementData):
1460         (UniqueElementData):
1461         (Element):
1462         (WebCore::Element::ensureUniqueElementData):
1463         * dom/StyledElement.cpp:
1464         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
1465
1466 2013-02-13  Antti Koivisto  <antti@apple.com>
1467
1468         Reschedule shared CFRunLoopTimer instead of reconstructing it
1469         https://bugs.webkit.org/show_bug.cgi?id=109765
1470
1471         Reviewed by Andreas Kling and Anders Carlsson.
1472
1473         Using CFRunLoopTimerSetNextFireDate is over 2x faster than deleting and reconstructing timers.
1474
1475         * platform/mac/SharedTimerMac.mm:
1476         (WebCore):
1477         (WebCore::PowerObserver::restartSharedTimer):
1478         (WebCore::sharedTimer):
1479         (WebCore::setSharedTimerFireInterval):
1480         (WebCore::stopSharedTimer):
1481
1482 2013-02-13  Emil A Eklund  <eae@chromium.org>
1483
1484         getComputedStyle returns truncated value for margin-right
1485         https://bugs.webkit.org/show_bug.cgi?id=109759
1486
1487         Reviewed by Tony Chang.
1488         
1489         Due to an unfortunate cast in CSSComputedStyleDeclaration::
1490         getPropertyCSSValue getComputedStyle returns truncated styles
1491         for margin-right in cases where it isn't set to a specific pixel
1492         value.
1493
1494         Test: fast/sub-pixel/computedstylemargin.html
1495
1496         * css/CSSComputedStyleDeclaration.cpp:
1497         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1498         Change type of temporary value variable to float to prevent loss of precision.
1499
1500 2013-02-13  Max Vujovic  <mvujovic@adobe.com>
1501
1502         [CSS Filters] Refactor filter outsets into a class
1503         https://bugs.webkit.org/show_bug.cgi?id=109330
1504
1505         Reviewed by Dean Jackson.
1506
1507         In filters related code, we're often operating on 4 ints representing the top, right,
1508         bottom, and left filter outsets. These outsets come from a filter like blur or drop-shadow.
1509         This patch packages those ints and their related operations into a class called
1510         IntRectExtent.
1511
1512         Here are some signs that we should make a class to hold those 4 ints:
1513         1) In RenderLayer.cpp, we have a expandRectForFilterOutsets function, which looks like
1514            feature envy.
1515         2) RenderStyle and other classes have methods like getFilterOutsets which set the 4 ints by
1516            reference. The calling code has to define 4 ints, which looks bloated.
1517         3) To fix bug 109098, we will need to check if filter outsets changed, which sounds like a
1518            nice job for an inequality operator. (https://bugs.webkit.org/show_bug.cgi?id=109098)
1519
1520         No new tests. No change in behavior. Just refactoring.
1521
1522         * GNUmakefile.list.am:
1523         * Target.pri:
1524         * WebCore.gypi:
1525         * WebCore.xcodeproj/project.pbxproj:
1526         * platform/graphics/IntRectExtent.h: Added.
1527         (WebCore):
1528         (IntRectExtent):
1529         (WebCore::IntRectExtent::IntRectExtent):
1530         (WebCore::IntRectExtent::top):
1531         (WebCore::IntRectExtent::setTop):
1532         (WebCore::IntRectExtent::right):
1533         (WebCore::IntRectExtent::setRight):
1534         (WebCore::IntRectExtent::bottom):
1535         (WebCore::IntRectExtent::setBottom):
1536         (WebCore::IntRectExtent::left):
1537         (WebCore::IntRectExtent::setLeft):
1538         (WebCore::IntRectExtent::expandRect):
1539         (WebCore::IntRectExtent::isZero):
1540         (WebCore::operator==):
1541         (WebCore::operator!=):
1542         (WebCore::operator+=):
1543         * platform/graphics/filters/FilterOperations.cpp:
1544         (WebCore::FilterOperations::outsets):
1545         * platform/graphics/filters/FilterOperations.h:
1546         (FilterOperations):
1547         * platform/graphics/texmap/TextureMapperLayer.cpp:
1548         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
1549         * rendering/FilterEffectRenderer.cpp:
1550         (WebCore::FilterEffectRenderer::FilterEffectRenderer):
1551         (WebCore::FilterEffectRenderer::build):
1552         (WebCore::FilterEffectRenderer::computeSourceImageRectForDirtyRect):
1553         * rendering/FilterEffectRenderer.h:
1554         (FilterEffectRenderer):
1555         * rendering/RenderLayer.cpp:
1556         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
1557         (WebCore::transparencyClipBox):
1558         (WebCore::RenderLayer::calculateLayerBounds):
1559         * rendering/style/RenderStyle.h:
1560
1561 2013-02-13  Adam Barth  <abarth@webkit.org>
1562
1563         Factor HTMLTokenScanner out of HTMLPreloadScanner
1564         https://bugs.webkit.org/show_bug.cgi?id=109754
1565
1566         Reviewed by Eric Seidel.
1567
1568         This patch is just a mechanical separation of the per-token "scanning"
1569         logic from HTMLPreloadScanner into a separate class.
1570         HTMLPreloadScanner's job is now to keep track of the input stream and
1571         to pump the tokenizer.
1572
1573         This factorization class will let us use HTMLTokenScanner on the
1574         background thread (once we finish making it thread-safe). In a follow
1575         up patch, I'll move HTMLTokenScanner to its own file.
1576
1577         * html/parser/HTMLPreloadScanner.cpp:
1578         (WebCore::HTMLTokenScanner::HTMLTokenScanner):
1579         (WebCore::HTMLTokenScanner::~HTMLTokenScanner):
1580         (WebCore::HTMLTokenScanner::processPossibleTemplateTag):
1581         (WebCore::HTMLTokenScanner::processPossibleStyleTag):
1582         (WebCore::HTMLTokenScanner::processPossibleBaseTag):
1583         (WebCore::HTMLTokenScanner::scan):
1584         (WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
1585         (WebCore):
1586         (WebCore::HTMLPreloadScanner::~HTMLPreloadScanner):
1587         (WebCore::HTMLPreloadScanner::appendToEnd):
1588         (WebCore::HTMLPreloadScanner::scan):
1589         * html/parser/HTMLPreloadScanner.h:
1590         (HTMLTokenScanner):
1591         (WebCore::HTMLTokenScanner::setPredictedBaseElementURL):
1592         (HTMLPreloadScanner):
1593         (WebCore):
1594
1595 2013-02-13  Elliott Sprehn  <esprehn@chromium.org>
1596
1597         ASSERT(!renderer()->needsLayout()) when calling Element::focus() with generated content
1598         https://bugs.webkit.org/show_bug.cgi?id=109616
1599
1600         Reviewed by Julien Chaffraix.
1601
1602         Test: fast/css-generated-content/quote-layout-focus-crash.html
1603
1604         In some cases RenderQuote may mark itself and containing blocks as needing layout
1605         during a layout, but then one of it's containing blocks will mark itself as having
1606         finished layout so the RenderQuote and potentially some of it's ancestor renderers
1607         needLayout(), but the ancestors above those do not.
1608
1609         Until we have proper pre-layout tasks we should just walk the list of quotes
1610         right before layout and mark all their ancestors as needing layout if the quote
1611         needs layout.
1612
1613         * dom/Document.cpp:
1614         (WebCore::Document::updateLayout): Call markQuoteContainingBlocksForLayoutIfNeeded.
1615         (WebCore::Document::implicitClose): Call markQuoteContainingBlocksForLayoutIfNeeded.
1616         * rendering/RenderQuote.h:
1617         (WebCore::RenderQuote::next): Added.
1618         * rendering/RenderView.cpp:
1619         (WebCore::RenderView::markQuoteContainingBlocksForLayoutIfNeeded): Added.
1620         * rendering/RenderView.h:
1621         (RenderView):
1622
1623 2013-02-13  Jer Noble  <jer.noble@apple.com>
1624
1625         EME: MediaPlayer::keyNeede() should return a bool indicating whether an event listener was triggered.
1626         https://bugs.webkit.org/show_bug.cgi?id=109701
1627
1628         Reviewed by Eric Carlson.
1629
1630         Clients of MediaPlayer may need to do cleanup if calling keyNeeded()
1631         results in no event listener being triggered. Return a bool (like the
1632         v1 equivalent keyNeeded method) to indicate this.
1633
1634         * html/HTMLMediaElement.cpp:
1635         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
1636         * html/HTMLMediaElement.h:
1637         * platform/graphics/MediaPlayer.cpp:
1638         (WebCore::MediaPlayer::keyNeeded):
1639         * platform/graphics/MediaPlayer.h:
1640         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded):
1641
1642 2013-02-13  Abhishek Arya  <inferno@chromium.org>
1643
1644         ASSERTION FAILED: !object || object->isBox(), Bad cast in RenderBox::computeLogicalHeight
1645         https://bugs.webkit.org/show_bug.cgi?id=107748
1646
1647         Reviewed by Levi Weintraub.
1648
1649         Make sure that body renderer is not an inline-block display
1650         when determining that it stretches to viewport or when paginated
1651         content needs base height.
1652
1653         Test: fast/block/body-inline-block-crash.html
1654
1655         * rendering/RenderBox.cpp:
1656         (WebCore::RenderBox::computeLogicalHeight):
1657         * rendering/RenderBox.h:
1658         (WebCore::RenderBox::stretchesToViewport):
1659
1660 2013-02-13  Shawn Singh  <shawnsingh@chromium.org>
1661
1662         Fix debug assertion being triggered because we may access dirty normalFlowList.
1663         https://bugs.webkit.org/show_bug.cgi?id=109740
1664
1665         A debug assertion in RenderLayer.h is being hit when trying to
1666         access the normalFlowList when it is dirty.  This is caused by a
1667         new recursion that I added in RenderLayerBacking::hasVisibleNonCompositingDescendant(),
1668         but I overlooked the need to call updateLayerListsIfNeeded()
1669         recursively as well.
1670
1671         Reviewed by Simon Fraser.
1672
1673         No test, because there's no reliable way to test this (same as bug 85512).
1674
1675         * rendering/RenderLayerBacking.cpp:
1676         (WebCore::hasVisibleNonCompositingDescendant):
1677         (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers):
1678
1679 2013-02-13  Antti Koivisto  <antti@apple.com>
1680
1681         Don't restart shared timer if both the current and the new fire time are in the past
1682         https://bugs.webkit.org/show_bug.cgi?id=109731
1683
1684         Reviewed by Andreas Kling.
1685
1686         In 40-50% of cases we reschedule the shared timer both the old and the new fire time have already passed. This can happen at least when rescheduling 
1687         a zero duration timer and when stopping a timer that was ready to fire.
1688
1689         We can skip rescheduling in this case, the shared timer will fire immediately anyway.
1690         
1691         Scheduling timers calls into platform layer and can be slow. This about halves the time under setSharedTimerFireInterval in PLT3
1692         for ~0.1% total CPU time reduction.
1693
1694         * platform/ThreadTimers.cpp:
1695         (WebCore::ThreadTimers::ThreadTimers):
1696         (WebCore::ThreadTimers::setSharedTimer):
1697         (WebCore::ThreadTimers::updateSharedTimer):
1698         (WebCore::ThreadTimers::sharedTimerFiredInternal):
1699         * platform/ThreadTimers.h:
1700         (ThreadTimers):
1701
1702 2013-02-13  Zan Dobersek  <zdobersek@igalia.com>
1703
1704         The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
1705         https://bugs.webkit.org/show_bug.cgi?id=109325
1706
1707         Reviewed by Anders Carlsson.
1708
1709         Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
1710         two methods as they're provided by the C++ standard library being used.
1711
1712         No new tests as there's no change in functionality.
1713
1714         * Modules/mediasource/MediaSource.cpp:
1715         (WebCore::MediaSource::setDuration):
1716         * Modules/webaudio/AudioBufferSourceNode.cpp:
1717         (WebCore::AudioBufferSourceNode::totalPitchRate):
1718         * Modules/webaudio/AudioParam.cpp:
1719         (WebCore::AudioParam::setValue):
1720         * Modules/webaudio/AudioParamTimeline.cpp:
1721         (WebCore::isValidNumber):
1722         * Modules/webaudio/PannerNode.cpp:
1723         (WebCore::fixNANs):
1724         * bindings/js/IDBBindingUtilities.cpp:
1725         (WebCore::createIDBKeyFromValue):
1726         * bindings/js/JSDataViewCustom.cpp:
1727         (WebCore::getDataViewMember):
1728         * bindings/js/JSGeolocationCustom.cpp:
1729         (WebCore::setTimeout):
1730         (WebCore::setMaximumAge):
1731         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
1732         (WebCore::JSHTMLOptionsCollection::setLength):
1733         * bindings/js/JSWebKitPointCustom.cpp:
1734         (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
1735         * bindings/scripts/CodeGeneratorJS.pm:
1736         (GenerateImplementation):
1737         (GenerateParametersCheck):
1738         * bindings/scripts/CodeGeneratorV8.pm:
1739         (GenerateParametersCheck):
1740         * bindings/scripts/test/JS/JSFloat64Array.cpp:
1741         (WebCore::JSFloat64Array::getByIndex):
1742         * bindings/scripts/test/JS/JSTestObj.cpp:
1743         (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
1744         * bindings/scripts/test/V8/V8TestObj.cpp:
1745         (WebCore::TestObjV8Internal::classMethodWithClampCallback):
1746         * bindings/v8/IDBBindingUtilities.cpp:
1747         (WebCore::createIDBKeyFromValue):
1748         * bindings/v8/V8Binding.cpp:
1749         (WebCore::toInt32):
1750         (WebCore::toUInt32):
1751         * bindings/v8/custom/V8GeolocationCustom.cpp:
1752         (WebCore::createPositionOptions):
1753         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
1754         (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
1755         * bindings/v8/custom/V8WebKitPointCustom.cpp:
1756         (WebCore::V8WebKitPoint::constructorCallbackCustom):
1757         * bridge/qt/qt_runtime.cpp:
1758         (JSC::Bindings::convertValueToQVariant):
1759         * css/WebKitCSSMatrix.cpp:
1760         (WebCore::WebKitCSSMatrix::translate):
1761         (WebCore::WebKitCSSMatrix::scale):
1762         (WebCore::WebKitCSSMatrix::rotate):
1763         (WebCore::WebKitCSSMatrix::rotateAxisAngle):
1764         (WebCore::WebKitCSSMatrix::skewX):
1765         (WebCore::WebKitCSSMatrix::skewY):
1766         * html/HTMLMediaElement.cpp:
1767         (WebCore::HTMLMediaElement::percentLoaded):
1768         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
1769         (WebCore::HTMLMediaElement::endedPlayback):
1770         * html/MediaController.cpp:
1771         (MediaController::duration):
1772         * html/canvas/WebGLRenderingContext.cpp:
1773         (WebCore):
1774         (WebCore::WebGLRenderingContext::clearColor):
1775         * html/track/TextTrack.cpp:
1776         (WebCore::TextTrack::addCue):
1777         * html/track/TextTrackCue.cpp:
1778         (WebCore::TextTrackCue::setStartTime):
1779         (WebCore::TextTrackCue::setEndTime):
1780         * page/DOMWindow.cpp:
1781         (WebCore::DOMWindow::adjustWindowRect):
1782         * page/WindowFeatures.cpp:
1783         (WebCore::WindowFeatures::floatFeature): Also include an opportunistic style fix.
1784         * platform/CalculationValue.cpp:
1785         (WebCore::CalculationValue::evaluate):
1786         * platform/Decimal.cpp:
1787         (WebCore::Decimal::fromDouble):
1788         * platform/Length.cpp:
1789         (WebCore::Length::nonNanCalculatedValue):
1790         * platform/audio/AudioResampler.cpp:
1791         (WebCore::AudioResampler::setRate):
1792         * platform/audio/DynamicsCompressorKernel.cpp:
1793         (WebCore::DynamicsCompressorKernel::process):
1794         * platform/audio/Reverb.cpp:
1795         (WebCore::calculateNormalizationScale):
1796         * platform/graphics/Font.cpp:
1797         (WebCore::Font::width):
1798         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1799         (WebCore::MediaPlayerPrivateAVFoundation::isLiveStream):
1800         * platform/graphics/gpu/LoopBlinnMathUtils.cpp:
1801         (LoopBlinnMathUtils):
1802         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1803         (WebCore::MediaPlayerPrivateGStreamer::buffered):
1804         (WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
1805         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1806         (WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable):
1807         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
1808         (WebCore::OpenTypeVerticalData::getVerticalTranslationsForGlyphs):
1809         * platform/graphics/transforms/TransformationMatrix.cpp:
1810         (WebCore::clampEdgeValue):
1811         (WebCore::TransformationMatrix::clampedBoundsOfProjectedQuad):
1812         * platform/network/ResourceResponseBase.cpp:
1813         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
1814         * rendering/RenderMediaControlsChromium.cpp:
1815         (WebCore::paintMediaSlider):
1816         (WebCore::paintMediaVolumeSlider):
1817         * rendering/RenderThemeMac.mm:
1818         (WebCore::RenderThemeMac::paintMediaSliderTrack):
1819         * svg/SVGAnimationElement.cpp:
1820         (WebCore::SVGAnimationElement::beginElementAt):
1821         (WebCore::SVGAnimationElement::endElementAt):
1822         * svg/SVGSVGElement.cpp:
1823         (WebCore::SVGSVGElement::setCurrentTime):
1824         * svg/animation/SMILTime.h:
1825         (WebCore::SMILTime::SMILTime):
1826         * svg/animation/SVGSMILElement.cpp:
1827         (WebCore::SVGSMILElement::addBeginTime):
1828         (WebCore::SVGSMILElement::addEndTime):
1829         * xml/XPathFunctions.cpp:
1830         (WebCore::XPath::FunSubstring::evaluate):
1831         (WebCore::XPath::FunRound::round):
1832         * xml/XPathValue.cpp:
1833         (WebCore::XPath::Value::toBoolean): Also include an opportunistic style fix.
1834         (WebCore::XPath::Value::toString):
1835
1836 2013-02-13  Eric Carlson  <eric.carlson@apple.com>
1837
1838         [Mac] Caption menu should have only one item selected
1839         https://bugs.webkit.org/show_bug.cgi?id=109730
1840
1841         Reviewed by Dean Jackson.
1842
1843         No new tests, media/track/track-user-preferences.html was modified to test the changes.
1844
1845         * CMakeLists.txt: Add CaptionUserPreferences.cpp.
1846         * GNUmakefile.list.am: Ditto.
1847         * Target.pri: Ditto.
1848         * WebCore.gypi: Ditto.
1849         * WebCore.vcproj/WebCore.vcproj: Ditto.
1850         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
1851         * WebCore.xcodeproj/project.pbxproj: Ditto.
1852
1853         * html/HTMLMediaElement.cpp:
1854         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_processingPreferenceChange.
1855         (WebCore::HTMLMediaElement::configureTextTrackGroup): Only end up with one selected track when
1856             called because of a preferences change.
1857         (WebCore::HTMLMediaElement::captionPreferencesChanged): Call setClosedCaptionsVisible instead
1858             of calling markCaptionAndSubtitleTracksAsUnconfigured directly.
1859         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Process all tracks, 
1860             not just track elements.
1861         * html/HTMLMediaElement.h:
1862
1863         * page/CaptionUserPreferences.cpp: Added so the functionality can be tested in DRT.
1864         (WebCore::CaptionUserPreferences::registerForPreferencesChangedCallbacks):
1865         (WebCore::CaptionUserPreferences::unregisterForPreferencesChangedCallbacks):
1866         (WebCore::CaptionUserPreferences::setUserPrefersCaptions):
1867         (WebCore::CaptionUserPreferences::captionPreferencesChanged):
1868         (WebCore::CaptionUserPreferences::preferredLanguages):
1869         (WebCore::CaptionUserPreferences::setPreferredLanguage):
1870         (WebCore::CaptionUserPreferences::displayNameForTrack):
1871         * page/CaptionUserPreferences.h:
1872
1873         * page/CaptionUserPreferencesMac.h:
1874         * page/CaptionUserPreferencesMac.mm:
1875         (WebCore::CaptionUserPreferencesMac::registerForPreferencesChangedCallbacks): Moved some logic
1876             to base class.
1877         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Ditto.
1878
1879 2013-02-13  Hans Muller  <hmuller@adobe.com>
1880
1881         [CSS Exclusions] ExclusionPolygon reflex vertices should constrain the first fit location.
1882         https://bugs.webkit.org/show_bug.cgi?id=107568
1883
1884         Reviewed by Dirk Schulze.
1885
1886         The ExclusionPolygon::firstIncludedIntervalLogicalTop() method now includes offset edges
1887         for each of the polygon's reflex vertices. The motivation for this change is explained
1888         here: http://hansmuller-webkit.blogspot.com/2013/01/getting-to-point-reflex-vertices.html.
1889
1890         Test: fast/exclusions/shape-inside/shape-inside-first-fit-reflex.html
1891
1892         * rendering/ExclusionPolygon.cpp:
1893         (WebCore::isReflexVertex): Given three vertices that represent a pair of connected polygon edges, return true if the second vertex is a reflex vertex.
1894         (WebCore::ExclusionPolygon::firstIncludedIntervalLogicalTop): This method now includes offset edges for reflex vertices.
1895         * rendering/ExclusionPolygon.h:
1896         (WebCore::OffsetPolygonEdge::OffsetPolygonEdge): Added a constructor for creating an OffsetPolygonEdge given a reflex vertex.
1897         (WebCore::OffsetPolygonEdge::edgeIndex): Changed this property from unsigned to int. Now using -1 to indicate that the offset edge doesn't correspond to a single polygon edge.
1898
1899 2013-02-13  Adam Barth  <abarth@webkit.org>
1900
1901         CSSPreloadScanner should not depend on HTMLToken
1902         https://bugs.webkit.org/show_bug.cgi?id=109742
1903
1904         Reviewed by Eric Seidel.
1905
1906         There's no need for the CSSPreloadScanner to depend on HTMLToken. On
1907         the background thread, we'll likely want to use a CompactHTMLToken for
1908         preload scanning, so this dependency is problematic. This patch also
1909         teaches the CSSPreloadScanner how to scan LChars.
1910
1911         * html/parser/CSSPreloadScanner.cpp:
1912         (WebCore::CSSPreloadScanner::~CSSPreloadScanner):
1913         (WebCore):
1914         (WebCore::CSSPreloadScanner::scan):
1915         * html/parser/CSSPreloadScanner.h:
1916         (CSSPreloadScanner):
1917         * html/parser/HTMLPreloadScanner.cpp:
1918         (WebCore::HTMLPreloadScanner::processToken):
1919
1920 2013-02-13  Julien Chaffraix  <jchaffraix@webkit.org>
1921
1922         [CSS Grid Layout] Adding or removing grid items doesn't properly recompute the track sizes
1923         https://bugs.webkit.org/show_bug.cgi?id=109100
1924
1925         Reviewed by Ojan Vafai.
1926
1927         Test: fast/css-grid-layout/grid-item-removal-track-breadth-update.html
1928
1929         The test uncovered several bugs in our implementation that is fixed as part
1930         of this change. They will be detailed below.
1931
1932         * rendering/RenderGrid.cpp:
1933         (WebCore::RenderGrid::logicalContentHeightForChild):
1934         Added this function to share the code between minContentForChild and maxContentForChild.
1935         Also forced a relayout in this case to avoid getting a wrong answer (e.g. the logical height
1936         constrained by the previous layout's grid breadth).
1937
1938         (WebCore::RenderGrid::minContentForChild):
1939         (WebCore::RenderGrid::maxContentForChild):
1940         Updated to use logicalContentHeightForChild.
1941
1942         (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
1943         Updated to match the specification and set max breadth to current breadth per the specification.
1944         This made us over-grow some cases in the test.
1945
1946         (WebCore::RenderGrid::distributeSpaceToTracks):
1947         Updated to match the specification and use an extra variable to do the intermediate spreading. Also removed
1948         a now unneeded max. This fixes the case of multiple grid items in the same grid area that was completely broken.
1949
1950         (WebCore::RenderGrid::layoutGridItems):
1951         Added a FIXME about always relaying out content sized tracks' children.
1952
1953         * rendering/RenderGrid.h:
1954         Added logicalContentHeightForChild.
1955
1956 2013-02-13  Adam Barth  <abarth@webkit.org>
1957
1958         Clean up some style nits in HTMLPreloadScanner
1959         https://bugs.webkit.org/show_bug.cgi?id=109738
1960
1961         Reviewed by Tony Gentilcore.
1962
1963         This patch just fixes a few style nits I noticed when reading through
1964         the code.
1965
1966         * html/parser/HTMLPreloadScanner.cpp:
1967         (WebCore::StartTagScanner::StartTagScanner):
1968         (WebCore::HTMLPreloadScanner::processPossibleStyleTag):
1969         (WebCore::HTMLPreloadScanner::processPossibleBaseTag):
1970         * html/parser/HTMLResourcePreloader.cpp:
1971         (WebCore::PreloadRequest::isSafeToSendToAnotherThread):
1972         * html/parser/HTMLResourcePreloader.h:
1973         (PreloadRequest):
1974         (WebCore::PreloadRequest::PreloadRequest):
1975         (WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
1976
1977 2013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>
1978
1979         Unreviewed, rolling out r142747.
1980         http://trac.webkit.org/changeset/142747
1981         https://bugs.webkit.org/show_bug.cgi?id=109746
1982
1983         broke component build (Requested by alecf_gardening on
1984         #webkit).
1985
1986         * inspector/HeapGraphSerializer.cpp:
1987         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
1988         (WebCore::HeapGraphSerializer::pushUpdate):
1989         (WebCore::HeapGraphSerializer::reportNode):
1990         (WebCore::HeapGraphSerializer::toNodeId):
1991         (WebCore::HeapGraphSerializer::addRootNode):
1992         * inspector/HeapGraphSerializer.h:
1993         (WebCore):
1994         (HeapGraphSerializer):
1995         * inspector/InspectorMemoryAgent.cpp:
1996         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
1997
1998 2013-02-13  Levi Weintraub  <leviw@chromium.org>
1999
2000         Bidi-Isolated inlines can cause subsequent content to not be rendered
2001         https://bugs.webkit.org/show_bug.cgi?id=108137
2002
2003         Reviewed by Eric Seidel.
2004
2005         First step in fixing how inline isolates behave with collapsed spaces.
2006         webkit.org/b/109624 tracks the overarching issue.
2007
2008         Test: fast/text/content-following-inline-isolate-with-collapsed-whitespace.html
2009
2010         * rendering/InlineIterator.h:
2011         (WebCore::IsolateTracker::addFakeRunIfNecessary): If we enter an isolate while
2012         ignoring spaces, ensure we leave it considering them again. This can result in
2013         including spaces that should be ignored following the isolate on the line, but
2014         failing to do so results in those contents not being rendered at all.
2015
2016 2013-02-13  Andreas Kling  <akling@apple.com>
2017
2018         Better names for ElementAttributeData & subclasses.
2019         <http://webkit.org/b/109529>
2020
2021         Reviewed by Antti Koivisto.
2022
2023         - ElementAttributeData => ElementData
2024
2025             Because ElementAttributeData won't be a good name once we move some non-attribute related
2026             things to this structure.
2027
2028         - ImmutableElementAttributeData => ShareableElementData
2029
2030             These objects can be shared with other Elements that have the same attribute name/value pairs.
2031
2032         - MutableElementAttributeData => UniqueElementData
2033
2034             These objects contain data that is unique to a specific Element, and cannot be shared with
2035             other Elements. This is what's important about it, not that its underlying storage is mutable.
2036
2037         - attributeData() -> elementData()
2038         - updatedAttributeData() -> elementDataWithSynchronizedAttributes()
2039         - ensureUpdatedAttributeData() -> ensureElementDataWithSynchronizedAttributes()
2040         - mutableAttributeData() -> ensureUniqueElementData()
2041
2042             Ride-along renames. Much less vague than previous names IMO.
2043
2044         * css/StyleResolver.cpp:
2045         (WebCore::StyleResolver::canShareStyleWithControl):
2046         (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
2047         * dom/Attr.cpp:
2048         (WebCore::Attr::elementAttribute):
2049         * dom/DocumentSharedObjectPool.cpp:
2050         (WebCore::ShareableElementDataCacheKey::ShareableElementDataCacheKey):
2051         (WebCore::ShareableElementDataCacheKey::operator!=):
2052         (WebCore::ShareableElementDataCacheEntry::ShareableElementDataCacheEntry):
2053         (ShareableElementDataCacheEntry):
2054         (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
2055         * dom/DocumentSharedObjectPool.h:
2056         (DocumentSharedObjectPool):
2057         * dom/Element.cpp:
2058         (WebCore::Element::detachAttribute):
2059         (WebCore::Element::removeAttribute):
2060         (WebCore::Element::attributes):
2061         (WebCore::Element::getAttribute):
2062         (WebCore::Element::setAttribute):
2063         (WebCore::Element::setSynchronizedLazyAttribute):
2064         (WebCore::Element::setAttributeInternal):
2065         (WebCore::Element::attributeChanged):
2066         (WebCore::Element::classAttributeChanged):
2067         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
2068         (WebCore::Element::parserSetAttributes):
2069         (WebCore::Element::hasAttributes):
2070         (WebCore::Element::hasEquivalentAttributes):
2071         (WebCore::Element::setAttributeNode):
2072         (WebCore::Element::removeAttributeNode):
2073         (WebCore::Element::removeAttributeInternal):
2074         (WebCore::Element::addAttributeInternal):
2075         (WebCore::Element::getAttributeNode):
2076         (WebCore::Element::getAttributeNodeNS):
2077         (WebCore::Element::hasAttribute):
2078         (WebCore::Element::hasAttributeNS):
2079         (WebCore::Element::computeInheritedLanguage):
2080         (WebCore::Element::getURLAttribute):
2081         (WebCore::Element::getNonEmptyURLAttribute):
2082         (WebCore::Element::cloneAttributesFromElement):
2083         (WebCore::Element::createUniqueElementData):
2084         (WebCore::Element::reportMemoryUsage):
2085         (WebCore::ElementData::deref):
2086         (WebCore::ElementData::ElementData):
2087         (WebCore::sizeForShareableElementDataWithAttributeCount):
2088         (WebCore::ElementData::createShareableWithAttributes):
2089         (WebCore::ElementData::createUnique):
2090         (WebCore::ShareableElementData::ShareableElementData):
2091         (WebCore::ShareableElementData::~ShareableElementData):
2092         (WebCore::UniqueElementData::UniqueElementData):
2093         (WebCore::ElementData::makeMutableCopy):
2094         (WebCore::ElementData::makeImmutableCopy):
2095         (WebCore::ElementData::setPresentationAttributeStyle):
2096         (WebCore::ElementData::addAttribute):
2097         (WebCore::ElementData::removeAttribute):
2098         (WebCore::ElementData::isEquivalent):
2099         (WebCore::ElementData::reportMemoryUsage):
2100         (WebCore::ElementData::getAttributeItemIndexSlowCase):
2101         * dom/Element.h:
2102         (ElementData):
2103         (WebCore::ElementData::isUnique):
2104         (ShareableElementData):
2105         (UniqueElementData):
2106         (WebCore::Element::getAttributeItemIndex):
2107         (WebCore::Element::elementData):
2108         (Element):
2109         (WebCore::Element::elementDataWithSynchronizedAttributes):
2110         (WebCore::Element::ensureElementDataWithSynchronizedAttributes):
2111         (WebCore::Element::fastHasAttribute):
2112         (WebCore::Element::fastGetAttribute):
2113         (WebCore::Element::hasAttributesWithoutUpdate):
2114         (WebCore::Element::idForStyleResolution):
2115         (WebCore::Element::classNames):
2116         (WebCore::Element::attributeCount):
2117         (WebCore::Element::attributeItem):
2118         (WebCore::Element::getAttributeItem):
2119         (WebCore::Element::updateInvalidAttributes):
2120         (WebCore::Element::hasID):
2121         (WebCore::Element::hasClass):
2122         (WebCore::Element::ensureUniqueElementData):
2123         (WebCore::ElementData::mutableAttributeVector):
2124         (WebCore::ElementData::immutableAttributeArray):
2125         (WebCore::ElementData::length):
2126         (WebCore::ElementData::presentationAttributeStyle):
2127         (WebCore::ElementData::getAttributeItem):
2128         (WebCore::ElementData::getAttributeItemIndex):
2129         (WebCore::ElementData::attributeItem):
2130         * dom/Node.cpp:
2131         (WebCore::Node::dumpStatistics):
2132         (WebCore::Node::compareDocumentPosition):
2133         * dom/StyledElement.cpp:
2134         (WebCore::StyledElement::updateStyleAttribute):
2135         (WebCore::StyledElement::ensureMutableInlineStyle):
2136         (WebCore::StyledElement::attributeChanged):
2137         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
2138         (WebCore::StyledElement::setInlineStyleFromString):
2139         (WebCore::StyledElement::styleAttributeChanged):
2140         (WebCore::StyledElement::inlineStyleChanged):
2141         (WebCore::StyledElement::addSubresourceAttributeURLs):
2142         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
2143         * dom/StyledElement.h:
2144         (WebCore::StyledElement::inlineStyle):
2145         (WebCore::StyledElement::invalidateStyleAttribute):
2146         (WebCore::StyledElement::presentationAttributeStyle):
2147         * html/ClassList.cpp:
2148         (WebCore::ClassList::classNames):
2149         * html/HTMLInputElement.cpp:
2150         (WebCore::HTMLInputElement::updateType):
2151         * html/parser/HTMLConstructionSite.cpp:
2152         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
2153         * svg/SVGElement.cpp:
2154         (WebCore::SVGElement::updateAnimatedSVGAttribute):
2155         * svg/SVGElement.h:
2156         (WebCore::SVGElement::invalidateSVGAttributes):
2157         * xml/parser/XMLDocumentParserQt.cpp:
2158         (WebCore::XMLDocumentParser::XMLDocumentParser):
2159
2160 2013-02-13  Christian Biesinger  <cbiesinger@chromium.org>
2161
2162         Crash when encountering <object style="resize:both;">
2163         https://bugs.webkit.org/show_bug.cgi?id=109728
2164
2165         See also https://code.google.com/p/chromium/issues/detail?id=175535
2166         This bug can be reproduced on
2167         http://dramalink.net/tudou.y/?xink=162601060
2168
2169         Reviewed by Eric Seidel.
2170
2171         Test: fast/css/resize-object-crash.html
2172
2173         * rendering/RenderWidget.cpp:
2174         (WebCore::RenderWidget::paint):
2175         Only call paintResizer() if we have a layer and canResize() is true
2176
2177 2013-02-13  Arko Saha  <arko@motorola.com>
2178
2179         [Microdata] HTMLPropertiesCollection code cleanup
2180         https://bugs.webkit.org/show_bug.cgi?id=109721
2181
2182         Reviewed by Ryosuke Niwa.
2183
2184         Removed forward declaration of DOMStringList class.
2185         Removed unused findRefElements() method declaration.
2186         Also Removed unused parameter Element* from updatePropertyCache() method.
2187
2188         No new test since no change in behavior.
2189
2190         * html/HTMLPropertiesCollection.cpp:
2191         (WebCore::HTMLPropertiesCollection::updateNameCache):
2192         * html/HTMLPropertiesCollection.h:
2193         (WebCore):
2194         (HTMLPropertiesCollection):
2195         (WebCore::HTMLPropertiesCollection::updatePropertyCache):
2196
2197 2013-02-13  Kondapally Kalyan  <kalyan.kondapally@intel.com>
2198
2199         [WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object.
2200         https://bugs.webkit.org/show_bug.cgi?id=109382
2201
2202         Reviewed by Kenneth Russell.
2203
2204         Covered by fast/canvas/webgl/oes-vertex-array-object.html
2205
2206         This patch adds support for using Vertex Array Object with OpenGl.
2207         The patch adds support for loading necessary opengl functions
2208         and support for checking GL_ARB_vertex_array_object. The support
2209         for OES_vertex_array_object is advertised if GL_ARB_vertex_array_object is
2210         supported.
2211
2212         * platform/graphics/OpenGLShims.cpp:
2213         (WebCore::initializeOpenGLShims):
2214         * platform/graphics/OpenGLShims.h:
2215         (_OpenGLFunctionTable):
2216         Added support for loading the necessary functions.
2217
2218         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2219         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
2220         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
2221         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
2222         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
2223         (WebCore::Extensions3DOpenGL::supportsExtension):
2224
2225         (WebCore):
2226         (WebCore::Extensions3DOpenGL::isVertexArrayObjectSupported):
2227         * platform/graphics/opengl/Extensions3DOpenGL.h:
2228         (Extensions3DOpenGL):
2229
2230 2013-02-13  Eberhard Graether  <egraether@google.com>
2231
2232         chromium: remove CompositorHUDFontAtlas
2233         https://bugs.webkit.org/show_bug.cgi?id=109328
2234
2235         Reviewed by James Robinson.
2236
2237         After switching the HudLayer to use skia's font rendering the
2238         CompositorHUDFontAtlas has become obsolete. This change removes
2239         this class and the related WebLayerTreeView API.
2240
2241         No new tests.
2242
2243         * WebCore.gypi:
2244         * platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
2245         * platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.
2246
2247 2013-02-13  Dean Jackson  <dino@apple.com>
2248
2249         Small update to speech bubble for captions menu [Mac]
2250         https://bugs.webkit.org/show_bug.cgi?id=109641
2251
2252         Reviewed by Eric Carlson
2253
2254         Small adjustment to the embedded SVG that draws a speech bubble
2255         for the captions button. Remove a polygon that was so small
2256         it looked like a rendering error.
2257
2258         * css/mediaControlsQuickTime.css:
2259         (video::-webkit-media-controls-toggle-closed-captions-button):
2260
2261 2013-02-13  Dean Jackson  <dino@apple.com>
2262
2263         Clicking outside captions menu should dismiss it
2264         https://bugs.webkit.org/show_bug.cgi?id=109648
2265
2266         Reviewed by Eric Carlson.
2267
2268         Add a virtual override to the platform-specific
2269         defaultEventHandler to intercept any click in the controls,
2270         and hide the captions menu if it is showing.
2271
2272         Test: media/video-controls-captions-trackmenu-hide-on-click.html
2273
2274         * html/shadow/MediaControlsApple.cpp:
2275         (WebCore::MediaControlsApple::defaultEventHandler): Override from MediaControls. Hide
2276             captions menu if a click event comes in.
2277         * html/shadow/MediaControlsApple.h:
2278
2279 2013-02-13  Tommy Widenflycht  <tommyw@google.com>
2280
2281         MediaStream API: Use the source id when creating new tracks
2282         https://bugs.webkit.org/show_bug.cgi?id=109688
2283
2284         Reviewed by Adam Barth.
2285
2286         This patch reuses the ids from the source when creating tracks instead of creating a new one.
2287         This was requested by the chromium port to greatly simplify their implementation.
2288         In the longer run the API should be rewritten to only use tracks instead of sources.
2289
2290         Covered by existing tests.
2291
2292         * platform/chromium/support/WebMediaStream.cpp:
2293         (WebKit::WebMediaStream::audioTracks):
2294         (WebKit::WebMediaStream::videoTracks):
2295         (WebKit::WebMediaStream::initialize):
2296         (WebKit):
2297         * platform/chromium/support/WebMediaStreamTrack.cpp:
2298         (WebKit::WebMediaStreamTrack::initialize):
2299         (WebKit):
2300         * platform/mediastream/MediaStreamComponent.h:
2301         (WebCore::MediaStreamComponent::create):
2302         (MediaStreamComponent):
2303         (WebCore::MediaStreamComponent::MediaStreamComponent):
2304         (WebCore):
2305         * platform/mediastream/MediaStreamDescriptor.h:
2306         (WebCore::MediaStreamDescriptor::create):
2307         (MediaStreamDescriptor):
2308         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2309
2310 2013-02-13  Eric Seidel  <eric@webkit.org>
2311
2312         Use fancy new Vector-based String constructors in the WebVTT parser
2313         https://bugs.webkit.org/show_bug.cgi?id=109619
2314
2315         Reviewed by Benjamin Poulain.
2316
2317         No change in behavior. Added some FIXMEs for future perf optimization.
2318
2319         * html/track/WebVTTParser.cpp:
2320         (WebCore::WebVTTParser::constructTreeFromToken):
2321
2322 2013-02-13  Morten Stenshorne  <mstensho@opera.com>
2323
2324         WebKit ignores column-rules wider than column-gap
2325         https://bugs.webkit.org/show_bug.cgi?id=15553
2326
2327         Paint column rules even if they are wider than the gap.
2328         Rules wider than the gap should just overlap with column contents.
2329
2330         Reviewed by Eric Seidel.
2331
2332         Test: fast/multicol/rule-thicker-than-gap.html
2333
2334         * rendering/RenderBlock.cpp:
2335         (WebCore::RenderBlock::paintColumnRules):
2336
2337 2013-02-13  Philip Rogers  <pdr@google.com>
2338
2339         Replace SVG bitmap cache with directly-rendered SVG
2340         https://bugs.webkit.org/show_bug.cgi?id=106159
2341
2342         Reviewed by Tim Horton.
2343
2344         This patch removes the caching of SVG bitmaps so SVG images are rendered directly. This
2345         enables WebKit to pass the IE Chalkboard demo in 10s on a Z620:
2346         http://ie.microsoft.com/testdrive/Performance/Chalkboard/
2347
2348         On a simple scaled SVG benchmark similar to the IE10 Chalkboard demo
2349         (http://philbit.com/SvgImagePerformance/viewport.html):
2350             without patch: ~20FPS
2351             with patch: ~55FPS
2352
2353         The bitmap SVG image cache had several shortcomings:
2354             - The bitmap cache prevented viewport rendering. (WK104693)
2355             - Bitmap memory usage was high. (WK106484)
2356             - Caching animating images was expensive.
2357
2358         This change removes almost all of the SVGImageCache implementation, replacing it with
2359         directly-rendered SVG. Instead of caching bitmaps, an SVGImageForContainer is cached which
2360         is a thin wrapper around an SVG image with the associated container size and scale.
2361         When rendering patterns (e.g., tiled backgrounds), a temporary bitmap is used for
2362         performance. This change also removes the redraw timer of the old cache, instead relying
2363         on the SVG image to notify clients if the image changes (e.g., during animations).
2364
2365         This patch fixes two existing bugs (WK99481 and WK104189) that were due to caching bitmaps
2366         at a fixed size. A test has been added for each of these bugs.
2367
2368         Tests: svg/as-image/svg-image-scaled.html
2369                svg/as-image/svg-image-viewbox.html
2370
2371         * CMakeLists.txt:
2372         * GNUmakefile.list.am:
2373         * Target.pri:
2374         * WebCore.gypi:
2375         * WebCore.vcproj/WebCore.vcproj:
2376         * WebCore.xcodeproj/project.pbxproj:
2377         * loader/cache/CachedImage.cpp:
2378         (WebCore::CachedImage::lookupOrCreateImageForRenderer):
2379         (WebCore::CachedImage::setContainerSizeForRenderer):
2380         (WebCore::CachedImage::clear):
2381         (WebCore::CachedImage::changedInRect):
2382
2383             SVG images are no longer special-cased here. When the SVG image changes, users are
2384             notified through this function, and users can then request their content to be redrawn.
2385
2386         * svg/graphics/SVGImage.cpp:
2387         (WebCore::SVGImage::setContainerSize):
2388         (WebCore::SVGImage::drawForContainer):
2389
2390             drawForContainer lays out the SVG content for a specific container size and renders it.
2391             The logic is fairly straightforward but a note about the scales and zooms here:
2392                 the destination rect parameter is zoomed but not scaled
2393                 the source rect parameter is zoomed but not scaled
2394                 the context is scaled but not zoomed
2395             SVGImage::draw(...) only accepts a source and destination rect but does not consider
2396             scale or zoom. Therefore, drawForContainer removes the zoom component from the source
2397             so SVGImage::draw(...) will draw from the pre-zoom source to the post-zoom destination.
2398
2399         (WebCore::SVGImage::drawPatternForContainer):
2400
2401             For performance, drawPatternForContainer renders the SVG content onto a bitmap, then
2402             has the bitmap image draw the pattern. This is necessary because drawPattern is used
2403             for tiling.
2404
2405         (WebCore):
2406         (WebCore::SVGImage::startAnimation):
2407         (WebCore::SVGImage::stopAnimation):
2408         (WebCore::SVGImage::resetAnimation):
2409         (WebCore::SVGImage::reportMemoryUsage):
2410         * svg/graphics/SVGImage.h:
2411         (WebCore):
2412         (SVGImage):
2413         * svg/graphics/SVGImageCache.cpp:
2414
2415             Instead of storing a SizeAndScales values for each renderer, a SVGImageForContainer
2416             is stored which is just a thin wrapper around an SVG image that contains container
2417             sizing information. By combining the image and size information, the two maps of
2418             SVGImageCache have been merged into one.
2419
2420             To make this patch easier to review, SVGImageCache still exists and works similar to
2421             how it did before the patch. Now, SVGImageCache simply stores the SVGImageForContainers.
2422             In a followup patch it will be removed.
2423
2424             Note: the redraw timer of SVGImageCache has been removed because animation
2425             invalidation is now properly propagated back to the image clients.
2426
2427         (WebCore):
2428         (WebCore::SVGImageCache::SVGImageCache):
2429         (WebCore::SVGImageCache::~SVGImageCache):
2430         (WebCore::SVGImageCache::removeClientFromCache):
2431         (WebCore::SVGImageCache::setContainerSizeForRenderer):
2432         (WebCore::SVGImageCache::imageSizeForRenderer):
2433
2434             Previously, this function returned the scaled image size which was incorrect. The image
2435             size is used by clients such as GraphicsContext2D to determine the source size
2436             for drawing the image. draw() accepts zoomed but not scaled values, so this has been
2437             changed.
2438
2439         (WebCore::SVGImageCache::imageForRenderer):
2440
2441             A FIXME has been added here to not set the scale on every lookup. This can be improved
2442             by setting the page scale factor in setContainerSizeForRenderer() in a future patch.
2443
2444         * svg/graphics/SVGImageCache.h:
2445         (WebCore):
2446         (SVGImageCache):
2447         * svg/graphics/SVGImageForContainer.cpp: Added.
2448         (WebCore):
2449
2450             SVGImageForContainer is a thin wrapper around an SVG image. The lifetime of the
2451             SVGImage will be longer than the image cache.
2452
2453         (WebCore::SVGImageForContainer::size):
2454
2455             This is the only logic in SVGImageForContainer. The size returned needs to be zoomed
2456             but not scaled because it is used (e.g., by RenderImage) to pass back into draw() which
2457             takes zoomed but not scaled values.
2458
2459         (WebCore::SVGImageForContainer::draw):
2460         (WebCore::SVGImageForContainer::drawPattern):
2461         * svg/graphics/SVGImageForContainer.h: Added.
2462         (WebCore):
2463         (SVGImageForContainer):
2464
2465             In a future patch SVGImageForContainer can be made immutable but without a refactoring
2466             for not setting the page scale factor in SVGImageCache::lookupOrCreateImageForRenderer,
2467             setters are needed.
2468
2469         (WebCore::SVGImageForContainer::create):
2470         (WebCore::SVGImageForContainer::containerSize):
2471         (WebCore::SVGImageForContainer::pageScale):
2472         (WebCore::SVGImageForContainer::zoom):
2473         (WebCore::SVGImageForContainer::setSize):
2474         (WebCore::SVGImageForContainer::setZoom):
2475         (WebCore::SVGImageForContainer::setPageScale):
2476         (WebCore::SVGImageForContainer::SVGImageForContainer):
2477         (WebCore::SVGImageForContainer::destroyDecodedData):
2478         (WebCore::SVGImageForContainer::decodedSize):
2479
2480 2013-02-12  Antti Koivisto  <antti@apple.com>
2481
2482         Avoid updating timer heap when nothing changes
2483         https://bugs.webkit.org/show_bug.cgi?id=109630
2484
2485         Reviewed by Andreas Kling.
2486
2487         When the fire time of a Timer is changed we remove it from the timer heap and reinsert it. This is pretty slow. 
2488         Turns out that in ~80% of cases we are already in the heap and the insertion position is the same as the 
2489         original position. We can check if anything is actually going to change before doing this work.
2490         
2491         This makes starting a timer ~30% faster in average, ~0.1% progression in PLT3.
2492         
2493         * platform/Timer.cpp:
2494         (TimerHeapLessThanFunction):
2495         (WebCore::TimerHeapLessThanFunction::operator()):
2496         (WebCore::parentHeapPropertyHolds):
2497         (WebCore):
2498         (WebCore::childHeapPropertyHolds):
2499         (WebCore::TimerBase::hasValidHeapPosition):
2500         
2501             The code here assumes that STL heap is a normal binary heap. If there is a different implementation
2502             somewhere the assertions will catch it.
2503
2504         (WebCore::TimerBase::updateHeapIfNeeded):
2505         
2506             Skip updating the heap if it is already valid.
2507
2508         (WebCore::TimerBase::setNextFireTime):
2509         * platform/Timer.h:
2510         (TimerBase):
2511
2512 2013-02-13  Martin Robinson  <mrobinson@igalia.com>
2513
2514         [GTK] Remove remaining dead code from the GLib unicode backend
2515         https://bugs.webkit.org/show_bug.cgi?id=109707
2516
2517         Reviewed by Philippe Normand.
2518
2519         * platform/KURL.cpp:
2520         (WebCore::appendEncodedHostname):
2521         * platform/text/TextEncoding.cpp:
2522         (WebCore::TextEncoding::encode):
2523         * platform/text/TextEncodingRegistry.cpp:
2524         (WebCore::buildBaseTextCodecMaps):
2525         (WebCore::extendTextCodecMaps):
2526
2527 2013-02-13  Xianzhu Wang  <wangxianzhu@chromium.org>
2528
2529         Heap-use-after-free in WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects
2530         https://bugs.webkit.org/show_bug.cgi?id=108695
2531
2532         See comments of RenderLayerModelObject::willBeDestroyed() below for details.
2533
2534         Reviewed by Abhishek Arya.
2535
2536         Test: ManulTests/scrolling-coordinator-viewport-constrained-crash.html
2537         Unable to write a normal layout test because
2538         1) must waitUntilDone() to reproduce the crash but the redirected URL can't notifyDone();
2539         2) Can't use a frame to contain the test because ScrollingCoordinator handles only the main frame.
2540
2541         * rendering/RenderBoxModelObject.cpp:
2542         (WebCore::RenderBoxModelObject::willBeDestroyed): Moved removeViewportConstrainedObject() call into RenderLayerModelObject::willBeDestroyed() because only RenderLayerModelObjects can be added as viewportConstrainedObjects.
2543         * rendering/RenderLayerModelObject.cpp:
2544         (WebCore::RenderLayerModelObject::willBeDestroyed): Changed this->view() (then view->frameView()) to this->frame() (then frame->view()) because when willBeDestroyed() is called, the document has set its renderView to 0 thus this->view() will return 0, causing removeViewportConstrainedObject() not called and a deleted RenderLayerModelObject in FrameView's viewportConstrainedObjects.
2545
2546 2013-02-13  Florin Malita  <fmalita@chromium.org>
2547
2548         [SVG] OOB access in SVGListProperty::replaceItemValues()
2549         https://bugs.webkit.org/show_bug.cgi?id=109293
2550
2551         Replacing a list property item with itself should be a no-op. This patch updates the related
2552         APIs and logic to detect the self-replace case and prevent removal of the item from the list.
2553
2554         To avoid scanning the list multiple times, removeItemFromList() is updated to operate on
2555         indices and a findItem() method is added to resolve an item to an index.
2556
2557         Reviewed by Dirk Schulze.
2558
2559         No new tests: updated existing tests cover the change.
2560
2561         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2562         (WebCore::SVGAnimatedListPropertyTearOff::findItem):
2563         (SVGAnimatedListPropertyTearOff):
2564         (WebCore::SVGAnimatedListPropertyTearOff::removeItemFromList):
2565         * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
2566         (WebCore::SVGAnimatedPathSegListPropertyTearOff::findItem):
2567         (SVGAnimatedPathSegListPropertyTearOff):
2568         (WebCore::SVGAnimatedPathSegListPropertyTearOff::removeItemFromList):
2569         Add a findItem() delegating method, and update removeItemFromList() to use the new
2570         index-based API.
2571
2572         * svg/properties/SVGListProperty.h:
2573         (WebCore::SVGListProperty::insertItemBeforeValues):
2574         (WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
2575         (WebCore::SVGListProperty::replaceItemValues):
2576         (WebCore::SVGListProperty::replaceItemValuesAndWrappers):
2577         (SVGListProperty):
2578         Updated to handle the no-op case for insertItemBefore() & replaceItem().
2579
2580         * svg/properties/SVGListPropertyTearOff.h:
2581         (WebCore::SVGListPropertyTearOff::findItem):
2582         (WebCore::SVGListPropertyTearOff::removeItemFromList):
2583         Index-based API updates.
2584
2585         (WebCore::SVGListPropertyTearOff::processIncomingListItemValue):
2586         (WebCore::SVGListPropertyTearOff::processIncomingListItemWrapper):
2587         * svg/properties/SVGPathSegListPropertyTearOff.cpp:
2588         (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemValue):
2589         Detect the self-replace case and return without removing the item from the list.
2590
2591         * svg/properties/SVGPathSegListPropertyTearOff.h:
2592         (WebCore::SVGPathSegListPropertyTearOff::findItem):
2593         (WebCore::SVGPathSegListPropertyTearOff::removeItemFromList):
2594         (SVGPathSegListPropertyTearOff):
2595         (WebCore::SVGPathSegListPropertyTearOff::processIncomingListItemWrapper):
2596         * svg/properties/SVGStaticListPropertyTearOff.h:
2597         (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemValue):
2598         (WebCore::SVGStaticListPropertyTearOff::processIncomingListItemWrapper):
2599         Index-based API updates.
2600
2601 2013-02-13  Takashi Sakamoto  <tasak@google.com>
2602
2603         [Refactoring] StyleResolver::State should have methods to access its member variables.
2604         https://bugs.webkit.org/show_bug.cgi?id=108563
2605
2606         Reviewed by Antti Koivisto.
2607
2608         Made all member variables private and added methods to access the
2609         variables, because most of the member variables are read-only.
2610         We don't need to update those read-only variables while resolving
2611         styles.
2612
2613         No new tests, because just refactoring.
2614
2615         * css/SVGCSSStyleSelector.cpp:
2616         (WebCore::StyleResolver::applySVGProperty):
2617         * css/StyleResolver.cpp:
2618         (WebCore):
2619         (WebCore::StyleResolver::collectMatchingRules):
2620         (WebCore::StyleResolver::collectMatchingRulesForRegion):
2621         (WebCore::StyleResolver::sortAndTransferMatchedRules):
2622         (WebCore::StyleResolver::matchScopedAuthorRules):
2623         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
2624         (WebCore::StyleResolver::matchHostRules):
2625         (WebCore::StyleResolver::matchAuthorRules):
2626         (WebCore::StyleResolver::matchUserRules):
2627         (WebCore::StyleResolver::matchUARules):
2628         (WebCore::StyleResolver::collectMatchingRulesForList):
2629         (WebCore::StyleResolver::sortMatchedRules):
2630         (WebCore::StyleResolver::matchAllRules):
2631         (WebCore::StyleResolver::State::initElement):
2632         (WebCore::StyleResolver::initElement):
2633         Modified to invoke m_state.initElement if a given element is
2634         different from current m_state's element.
2635         (WebCore::StyleResolver::State::initForStyleResolve):
2636         Moved from StyleResolver.
2637         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
2638         (WebCore::StyleResolver::canShareStyleWithControl):
2639         (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
2640         (WebCore::StyleResolver::canShareStyleWithElement):
2641         (WebCore::StyleResolver::locateSharedStyle):
2642         (WebCore::StyleResolver::styleForElement):
2643         (WebCore::StyleResolver::styleForKeyframe):
2644         (WebCore::StyleResolver::keyframeStylesForAnimation):
2645         (WebCore::StyleResolver::pseudoStyleForElement):
2646         Changed ASSERT in the first line. ASSERT(m_state.parentStyle) would be
2647         wrong, because it depends on previous resolving. However,
2648         initForStyleResolve will also update m_state.parentStyle. No code in
2649         pseudoStyleForElement depends on previous resolving state.
2650         (WebCore::StyleResolver::styleForPage):
2651         (WebCore::StyleResolver::defaultStyleForElement):
2652         (WebCore::StyleResolver::adjustRenderStyle):
2653         (WebCore::StyleResolver::updateFont):
2654         (WebCore::StyleResolver::pseudoStyleRulesForElement):
2655         (WebCore::StyleResolver::ruleMatches):
2656         Added one more parameter, dynamicPseudo, because dynamicPseudo in
2657         State class is just used for returning matched pseudo style from
2658         this ruleMatches to collectMatchingRulesForList. No need to keep
2659         dynamicPseudo while resolving styles.
2660         (WebCore::StyleResolver::checkRegionSelector):
2661         Removed m_pseudoStyle = NOPSEUDO, because this method uses just
2662         SelectorChecker::matched. SelectorChecker doesn't see StyleResolver's
2663         m_pseudoStyle directly. Need to use SelectorCheckerContext. So no
2664         need to set m_pseudoStyle to be NOPSEUDO.
2665         (WebCore::StyleResolver::applyProperties):
2666         (WebCore::StyleResolver::applyMatchedProperties):
2667         (WebCore::StyleResolver::isLeftPage):
2668         (WebCore::StyleResolver::applyPropertyToStyle):
2669         (WebCore::StyleResolver::useSVGZoomRules):
2670         (WebCore::createGridTrackBreadth):
2671         (WebCore::StyleResolver::resolveVariables):
2672         (WebCore::StyleResolver::applyProperty):
2673         (WebCore::StyleResolver::cachedOrPendingFromValue):
2674         (WebCore::StyleResolver::generatedOrPendingFromValue):
2675         (WebCore::StyleResolver::setOrPendingFromValue):
2676         (WebCore::StyleResolver::cursorOrPendingFromValue):
2677         (WebCore::StyleResolver::checkForTextSizeAdjust):
2678         (WebCore::StyleResolver::initializeFontStyle):
2679         (WebCore::StyleResolver::setFontSize):
2680         (WebCore::StyleResolver::colorFromPrimitiveValue):
2681         (WebCore::StyleResolver::loadPendingSVGDocuments):
2682         (WebCore::StyleResolver::cachedOrPendingStyleShaderFromValue):
2683         (WebCore::StyleResolver::loadPendingShaders):
2684         (WebCore::StyleResolver::parseCustomFilterTransformParameter):
2685         (WebCore::StyleResolver::createFilterOperations):
2686         (WebCore::StyleResolver::loadPendingImage):
2687         (WebCore::StyleResolver::loadPendingImages):
2688         * css/StyleResolver.h:
2689         (WebCore::StyleResolver::style):
2690         (WebCore::StyleResolver::parentStyle):
2691         (WebCore::StyleResolver::rootElementStyle):
2692         (WebCore::StyleResolver::element):
2693         (WebCore::StyleResolver::hasParentNode):
2694         (StyleResolver):
2695         (WebCore::StyleResolver::State::State):
2696         (State):
2697         (WebCore::StyleResolver::State::clear):
2698         Modified to use clear at the end of styleForElement.
2699         (WebCore::StyleResolver::State::document):
2700         (WebCore::StyleResolver::State::element):
2701         (WebCore::StyleResolver::State::styledElement):
2702         (WebCore::StyleResolver::State::setStyle):
2703         (WebCore::StyleResolver::State::style):
2704         (WebCore::StyleResolver::State::takeStyle):
2705         (WebCore::StyleResolver::State::ensureRuleList):
2706         (WebCore::StyleResolver::State::takeRuleList):
2707         (WebCore::StyleResolver::State::parentNode):
2708         (WebCore::StyleResolver::State::setParentStyle):
2709         (WebCore::StyleResolver::State::parentStyle):
2710         (WebCore::StyleResolver::State::rootElementStyle):
2711         (WebCore::StyleResolver::State::regionForStyling):
2712         (WebCore::StyleResolver::State::setSameOriginOnly):
2713         (WebCore::StyleResolver::State::isSameOriginOnly):
2714         (WebCore::StyleResolver::State::pseudoStyle):
2715         (WebCore::StyleResolver::State::elementLinkState):
2716         (WebCore::StyleResolver::State::distributedToInsertionPoint):
2717         (WebCore::StyleResolver::State::setElementAffectedByClassRules):
2718         (WebCore::StyleResolver::State::elementAffectedByClassRules):
2719         (WebCore::StyleResolver::State::setApplyPropertyToRegularStyle):
2720         (WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
2721         (WebCore::StyleResolver::State::applyPropertyToRegularStyle):
2722         (WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
2723         (WebCore::StyleResolver::State::pendingImageProperties):
2724         (WebCore::StyleResolver::State::pendingSVGDocuments):
2725         (WebCore::StyleResolver::State::setHasPendingShaders):
2726         (WebCore::StyleResolver::State::hasPendingShaders):
2727         (WebCore::StyleResolver::State::setLineHeightValue):
2728         (WebCore::StyleResolver::State::lineHeightValue):
2729         (WebCore::StyleResolver::State::setFontDirty):
2730         (WebCore::StyleResolver::State::fontDirty):
2731         (WebCore::StyleResolver::State::cacheBorderAndBackground):
2732         (WebCore::StyleResolver::State::hasUAAppearance):
2733         (WebCore::StyleResolver::State::borderData):
2734         (WebCore::StyleResolver::State::backgroundData):
2735         (WebCore::StyleResolver::State::backgroundColor):
2736         (WebCore::StyleResolver::State::fontDescription):
2737         (WebCore::StyleResolver::State::parentFontDescription):
2738         (WebCore::StyleResolver::State::setFontDescription):
2739         (WebCore::StyleResolver::State::setZoom):
2740         (WebCore::StyleResolver::State::setEffectiveZoom):
2741         (WebCore::StyleResolver::State::setTextSizeAdjust):
2742         (WebCore::StyleResolver::State::setWritingMode):
2743         (WebCore::StyleResolver::State::setTextOrientation):
2744         fontDescription, ... and setTextOrientation were moved from
2745         StyleResolver.
2746         (WebCore::StyleResolver::State::matchedRules):
2747         (WebCore::StyleResolver::State::addMatchedRule):
2748         Moved from StyleResolver.
2749         (WebCore::StyleResolver::applyPropertyToRegularStyle):
2750         (WebCore::StyleResolver::applyPropertyToVisitedLinkStyle):
2751         (WebCore::StyleResolver::fontDescription):
2752         (WebCore::StyleResolver::parentFontDescription):
2753         (WebCore::StyleResolver::setFontDescription):
2754         (WebCore::StyleResolver::setZoom):
2755         (WebCore::StyleResolver::setEffectiveZoom):
2756         (WebCore::StyleResolver::setTextSizeAdjust):
2757         (WebCore::StyleResolver::setWritingMode):
2758         (WebCore::StyleResolver::setTextOrientation):
2759         These fontDescription, ..., setTextOrientation are wrappers to
2760         invoke State's methods. StyleBuilder still depends on StyleResolver
2761         and invokes these methods. So we need these wrappers.
2762
2763 2013-02-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2764
2765         [Qt] window.open passes height and width parameters even if not defined in a page
2766         https://bugs.webkit.org/show_bug.cgi?id=107705
2767
2768         Reviewed by Kenneth Rohde Christiansen.
2769
2770         Do not override width or height of 0, as that indicates default size, and not minimum size.
2771
2772         Tested by tst_qwebpage.
2773
2774         * page/DOMWindow.cpp:
2775         (WebCore::DOMWindow::adjustWindowRect):
2776
2777 2013-02-13  Rashmi Shyamasundar  <rashmi.s2@samsung.com>
2778
2779         The 2D Canvas functions fillText()/strokeText() should display nothing when maxWidth is less then or equal to zero
2780         https://bugs.webkit.org/show_bug.cgi?id=102656
2781
2782         Reviewed by Dirk Schulze.
2783
2784         The functions fillText()/strokeText() should not display anything when 
2785         maxWidth is less than or equal to zero, according to spec :
2786         http://www.w3.org/TR/2dcontext/#text-preparation-algorithm
2787
2788         Test: fast/canvas/canvas-fillText-maxWidth-zero.html
2789
2790         * html/canvas/CanvasRenderingContext2D.cpp:
2791         (WebCore::CanvasRenderingContext2D::drawTextInternal):
2792
2793 2013-02-13  ChangSeok Oh  <shivamidow@gmail.com>
2794
2795         [GTK][AC] Implement basic transform animations with clutter ac backend
2796         https://bugs.webkit.org/show_bug.cgi?id=109363
2797
2798         Reviewed by Gustavo Noronha Silva.
2799
2800         Implement basic transform animation with clutter ac backend.
2801         GraphicsLayerClutter is almost same with GraphicsLayerCA. And PlatformClutterAnimation
2802         interfaces are also similar with PlatformCAAnimation, but they are implemented
2803         with native clutter APIs. Clutter backend AC supports a basic single transform animation
2804         with this patch now, but additive animation combination and keyframe animation
2805         are not supported yet.
2806
2807         Covered by existing animation tests.
2808
2809         * platform/graphics/clutter/GraphicsLayerActor.cpp:
2810         (graphicsLayerActorSetTransform):
2811         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
2812         (WebCore::isTransformTypeTransformationMatrix):
2813         (WebCore):
2814         (WebCore::isTransformTypeFloatPoint3D):
2815         (WebCore::isTransformTypeNumber):
2816         (WebCore::getTransformFunctionValue):
2817         (WebCore::getValueFunctionNameForTransformOperation):
2818         (WebCore::GraphicsLayerClutter::setTransformAnimationEndpoints):
2819         (WebCore::GraphicsLayerClutter::appendToUncommittedAnimations):
2820         (WebCore::GraphicsLayerClutter::createTransformAnimationsFromKeyframes):
2821         * platform/graphics/clutter/GraphicsLayerClutter.h:
2822         (GraphicsLayerClutter):
2823         * platform/graphics/clutter/PlatformClutterAnimation.cpp:
2824         (WebCore::toClutterActorPropertyString):
2825         (WebCore):
2826         (WebCore::PlatformClutterAnimation::supportsValueFunction):
2827         (WebCore::PlatformClutterAnimation::duration):
2828         (WebCore::PlatformClutterAnimation::setDuration):
2829         (WebCore::PlatformClutterAnimation::setAdditive):
2830         (WebCore::PlatformClutterAnimation::valueFunction):
2831         (WebCore::PlatformClutterAnimation::setValueFunction):
2832         (WebCore::PlatformClutterAnimation::setFromValue):
2833         (WebCore::PlatformClutterAnimation::setToValue):
2834         (WebCore::PlatformClutterAnimation::timeline):
2835         (WebCore::PlatformClutterAnimation::addClutterTransitionForProperty):
2836         (WebCore::PlatformClutterAnimation::addOpacityTransition):
2837         (WebCore::PlatformClutterAnimation::addTransformTransition):
2838         (WebCore::PlatformClutterAnimation::addAnimationForKey):
2839         * platform/graphics/clutter/PlatformClutterAnimation.h:
2840         (PlatformClutterAnimation):
2841
2842 2013-02-13  Ilya Tikhonovsky  <loislo@chromium.org>
2843
2844         Web Inspector: Native Memory Instrumentation: reportLeaf method doesn't report the leaf node properly.
2845         https://bugs.webkit.org/show_bug.cgi?id=109554
2846
2847         In some cases leaves have no pointer so with the old schema we can't generate nodeId for them because we
2848         can't insert 0 into hashmap. It happens when we call addPrivateBuffer method.
2849
2850         Drive by fix: I introduced a client interface for the HeapGraphSerializer.
2851         It helps me to do the tests for the serializer.
2852
2853         Reviewed by Yury Semikhatsky.
2854
2855         It is covered by newly added tests in TestWebKitAPI.
2856
2857         * inspector/HeapGraphSerializer.cpp:
2858         (WebCore::HeapGraphSerializer::HeapGraphSerializer):
2859         (WebCore::HeapGraphSerializer::pushUpdate):
2860         (WebCore::HeapGraphSerializer::reportNode):
2861         (WebCore::HeapGraphSerializer::toNodeId):
2862         (WebCore::HeapGraphSerializer::addRootNode):
2863         * inspector/HeapGraphSerializer.h:
2864         (HeapGraphSerializer):
2865         (Client):
2866         (WebCore::HeapGraphSerializer::Client::~Client):
2867         * inspector/InspectorMemoryAgent.cpp:
2868         (WebCore):
2869         (WebCore::InspectorMemoryAgent::getProcessMemoryDistributionImpl):
2870
2871 2013-02-13  Yury Semikhatsky  <yurys@chromium.org>
2872
2873         Web Inspector: add experimental native heap graph to Timeline panel
2874         https://bugs.webkit.org/show_bug.cgi?id=109687
2875
2876         Reviewed by Alexander Pavlov.
2877
2878         Added experimentatl support for native heap graph on the Timeline panel.
2879         Native memory usage data is collected after each top level task and can
2880         be displayed instead of DOM counters graph on the Timeline panel if
2881         corresponding experiment is enabled in the inspector settings.
2882
2883         * inspector/Inspector.json:
2884         * inspector/InspectorController.cpp:
2885         (WebCore::InspectorController::InspectorController):
2886         * inspector/InspectorTimelineAgent.cpp:
2887         (TimelineAgentState):
2888         (WebCore::InspectorTimelineAgent::setIncludeDomCounters):
2889         (WebCore):
2890         (WebCore::InspectorTimelineAgent::setIncludeNativeMemoryStatistics):
2891         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
2892         (WebCore::InspectorTimelineAgent::setDOMCounters):
2893         (WebCore::InspectorTimelineAgent::setNativeHeapStatistics):
2894         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
2895         * inspector/InspectorTimelineAgent.h:
2896         (WebCore):
2897         (WebCore::InspectorTimelineAgent::create):
2898         (InspectorTimelineAgent):
2899         * inspector/WorkerInspectorController.cpp:
2900         (WebCore::WorkerInspectorController::WorkerInspectorController):
2901         * inspector/front-end/MemoryStatistics.js:
2902         (WebInspector.MemoryStatistics):
2903         * inspector/front-end/NativeMemoryGraph.js:
2904         (WebInspector.NativeMemoryGraph):
2905         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded.addStatistics):
2906         (WebInspector.NativeMemoryGraph.prototype._onRecordAdded):
2907         * inspector/front-end/Settings.js:
2908         (WebInspector.ExperimentsSettings):
2909         * inspector/front-end/TimelinePanel.js:
2910
2911 2013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>
2912
2913         Web Inspector: Fixed colorpicker editing and scrolling.
2914         https://bugs.webkit.org/show_bug.cgi?id=109434.
2915
2916         Reviewed by Alexander Pavlov.
2917
2918         The color picker scrolling logic relied on the fixed DOM structure which changed with the introduction of
2919         SidebarPaneStack (https://bugs.webkit.org/show_bug.cgi?id=108183).
2920         Added a special CSS class to mark the scroll target.
2921
2922         No new tests.
2923
2924         * inspector/front-end/SplitView.js:
2925         (WebInspector.SplitView):
2926         * inspector/front-end/StylesSidebarPane.js:
2927         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
2928         * inspector/front-end/TabbedPane.js:
2929         (WebInspector.TabbedPane):
2930  
2931 2013-02-13  Andrey Lushnikov  <lushnikov@chromium.org>
2932
2933         Web Inspector: fix js compilation warnings in TextPrompt
2934         https://bugs.webkit.org/show_bug.cgi?id=109685
2935
2936         Reviewed by Alexander Pavlov.
2937
2938         Mark last argument of _applySuggestion function as optional.
2939
2940         No new tests: no change in behaviour.
2941
2942         * inspector/front-end/TextPrompt.js:
2943
2944 2013-02-13  Pablo Flouret  <pablof@motorola.com>
2945
2946         Implement css-conditional's CSS.supports()
2947         https://bugs.webkit.org/show_bug.cgi?id=100324
2948
2949         Reviewed by Antti Koivisto.
2950
2951         http://dev.w3.org/csswg/css3-conditional/#the-css-interface
2952
2953         The supports() method provides the css @supports rule's corresponding
2954         dom api.
2955         The patch also adds the CSS interface on DOMWindow, which holds "useful
2956         CSS-related functions that do not belong elsewhere". This is where
2957         supports() lives.
2958
2959         Test: css3/supports-dom-api.html
2960
2961         * CMakeLists.txt:
2962         * DerivedSources.cpp:
2963         * DerivedSources.make:
2964         * DerivedSources.pri:
2965         * GNUmakefile.list.am:
2966         * Target.pri:
2967         * WebCore.exp.in:
2968         * WebCore.gypi:
2969         * WebCore.vcproj/WebCore.vcproj:
2970         * WebCore.xcodeproj/project.pbxproj:
2971         * bindings/gobject/GNUmakefile.am:
2972         * bindings/scripts/CodeGeneratorGObject.pm:
2973         (SkipFunction):
2974             Add DOMWindowCSS.* to the build systems.
2975
2976         * bindings/scripts/CodeGenerator.pm:
2977         (WK_lcfirst):
2978             Handle CSS prefixes correctly (s/cSS/css/).
2979
2980         * css/CSSGrammar.y.in:
2981         * css/CSSParser.cpp:
2982         (WebCore::CSSParser::CSSParser):
2983         (WebCore::CSSParser::parseSupportsCondition):
2984         (WebCore::CSSParser::detectAtToken):
2985         * css/CSSParser.h:
2986             webkit_supports_condition parses just the condition part of an
2987             @supports rule and evaluates it, outputting whether the condition
2988             is supported or not.
2989
2990         * css/CSSAllInOne.cpp:
2991         * css/DOMWindowCSS.cpp: Added.
2992         * css/DOMWindowCSS.h: Added.
2993         * css/DOMWindowCSS.idl: Added.
2994             The CSS interface object.
2995
2996         * page/DOMWindow.cpp:
2997         (WebCore::DOMWindow::css):
2998         * page/DOMWindow.h:
2999         * page/DOMWindow.idl:
3000             window.CSS
3001
3002 2013-02-13  Vladislav Kaznacheev  <kaznacheev@chromium.org>
3003
3004         Web Inspector: Simplify SplitView to rely more on CSS
3005         https://bugs.webkit.org/show_bug.cgi?id=109426
3006
3007         Reviewed by Vsevolod Vlasov.
3008
3009         Simplified Javascript code by moving large part of the layout logic into CSS rules. The patch is larger than it
3010         should be because one of the clients (TimelinePanel) is breaking SplitView incapsulation by reparenting its
3011         resizer.
3012
3013         No new tests.
3014
3015         * inspector/front-end/SidebarView.js:
3016         (WebInspector.SidebarView):
3017         * inspector/front-end/SplitView.js:
3018         (WebInspector.SplitView):
3019         (WebInspector.SplitView.prototype._innerSetVertical):
3020         (WebInspector.SplitView.prototype.setSecondIsSidebar):
3021         (WebInspector.SplitView.prototype._showOnly):
3022         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
3023         * inspector/front-end/TimelinePanel.js:
3024         * inspector/front-end/cssNamedFlows.css:
3025         (.css-named-flow-collections-view .split-view-sidebar):
3026         (.css-named-flow-collections-view .split-view-sidebar .sidebar-content):
3027         (.css-named-flow-collections-view .split-view-sidebar .selection):
3028         (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before, .css-named-flow-collections-view .region-empty:before, .css-named-flow-collections-view .region-fit::before, .css-named-flow-collections-view .region-overset::before):
3029         (.css-named-flow-collections-view .split-view-sidebar .named-flow-overflow::before):
3030         * inspector/front-end/splitView.css:
3031         (.split-view-contents.maximized):
3032         (.split-view-vertical .split-view-contents):
3033         (.split-view-vertical .split-view-contents-first):
3034         (.split-view-vertical .split-view-contents-first.maximized):
3035         (.split-view-vertical .split-view-contents-second):
3036         (.split-view-vertical .split-view-contents-second.maximized):
3037         (.split-view-horizontal .split-view-contents):
3038         (.split-view-horizontal .split-view-contents-first):
3039         (.split-view-horizontal .split-view-contents-first.maximized):
3040         (.split-view-horizontal .split-view-contents-second):
3041         (.split-view-horizontal .split-view-contents-second.maximized):
3042         (.split-view-vertical .split-view-sidebar.split-view-contents-first:not(.maximized)):
3043         (.split-view-vertical .split-view-sidebar.split-view-contents-second:not(.maximized)):
3044         (.split-view-horizontal .split-view-sidebar.split-view-contents-first:not(.maximized)):
3045         (.split-view-horizontal .split-view-sidebar.split-view-contents-second:not(.maximized)):
3046         (.split-view-vertical .split-view-resizer):
3047         (.split-view-horizontal .split-view-resizer):
3048         * inspector/front-end/timelinePanel.css:
3049         (.timeline.split-view-vertical .split-view-resizer):
3050         (#timeline-container .split-view-sidebar):
3051
3052 2013-02-13  Kentaro Hara  <haraken@chromium.org>
3053
3054         Unreviewed, rolling out r142730.
3055         http://trac.webkit.org/changeset/142730
3056         https://bugs.webkit.org/show_bug.cgi?id=109666
3057
3058         chromium browser tests are failing
3059
3060         * bindings/scripts/CodeGeneratorV8.pm:
3061         (GenerateNormalAttrGetter):
3062         (GenerateNormalAttrSetter):
3063         (GenerateSingleBatchedAttribute):
3064         (GenerateImplementation):
3065         * bindings/scripts/test/V8/V8TestInterface.cpp:
3066         (TestInterfaceV8Internal):
3067         (WebCore):
3068         * bindings/scripts/test/V8/V8TestObj.cpp:
3069         (WebCore):
3070
3071 2013-02-13  Tamas Czene  <tczene@inf.u-szeged.hu>
3072
3073         OpenCL implementation of Flood SVG filters.
3074         https://bugs.webkit.org/show_bug.cgi?id=109580
3075
3076         Reviewed by Zoltan Herczeg.
3077
3078         * Target.pri:
3079         * platform/graphics/filters/FEFlood.h:
3080         (FEFlood):
3081         * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp:
3082         (WebCore):
3083         (WebCore::PROGRAM_STR):
3084         (WebCore::FilterContextOpenCL::compileFill):
3085         (WebCore::FilterContextOpenCL::fill):
3086         * platform/graphics/gpu/opencl/FilterContextOpenCL.h:
3087         (WebCore::FilterContextOpenCL::FilterContextOpenCL):
3088         (FilterContextOpenCL):
3089         * platform/graphics/gpu/opencl/OpenCLFEFlood.cpp: Added.
3090         (WebCore):
3091         (WebCore::FEFlood::platformApplyOpenCL):
3092
3093 2013-02-13  Mike West  <mkwst@chromium.org>
3094
3095         location.href does not throw SECURITY_ERR when accessed across origins with JSC bindings
3096         https://bugs.webkit.org/show_bug.cgi?id=43891
3097
3098         Reviewed by Adam Barth.
3099
3100         Other browsers (IE, Firefox, and Opera) throw an exception when accessing
3101         properties of a Location object across origins, as the spec suggests[1].
3102         WebKit is currently the outlier.
3103
3104         This has a few negative effects: developers are forced to hack around
3105         access violations in two ways rather than having a single code path, and
3106         (more annoyingly) developers are unable to avoid generating the error
3107         message. See every ad on the internet for the effect on the console. :)
3108
3109         This patch adds a SECURITY_ERR exception to these access violations,
3110         which is the first step towards getting rid of the console spam. Getting
3111         rid of the message entirely will require a solution to
3112         http://wkbug.com/98050.
3113
3114         A fairly inconclusive thread[2] on webkit-dev popped up in 2010 and
3115         trailed off without reaching conclusion. A more recent thread reached
3116         agreement that this patch seems like a reasonable thing to do[3].
3117
3118         This is the JSC half of the patch. V8 is coming in http://wkbug.com/43892
3119
3120         [1]: http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#security-location
3121         [2]: https://lists.webkit.org/pipermail/webkit-dev/2010-August/013880.html
3122         [2]: https://lists.webkit.org/pipermail/webkit-dev/2012-February/023636.html
3123
3124         * bindings/js/JSLocationCustom.cpp:
3125         (WebCore::JSLocation::getOwnPropertySlotDelegate):
3126
3127 2013-02-13  Andrew Wilson  <atwilson@chromium.org>
3128
3129         Unreviewed Chromium gyp-file cleanup after glib backend removal.
3130         https://bugs.webkit.org/show_bug.cgi?id=109672
3131
3132         Removed references to GLib unicode backend:
3133
3134         * WebCore.gypi:
3135
3136 2013-02-12  Kentaro Hara  <haraken@chromium.org>
3137
3138         [V8] Generate wrapper methods for custom getters/setters
3139         https://bugs.webkit.org/show_bug.cgi?id=109666
3140
3141         Reviewed by Adam Barth.
3142
3143         Currently V8 directly calls back custom getters/setters written
3144         in custom binding files. This makes it impossible for code generators
3145         to hook custom getters/setters (e.g. Code generators cannot insert a code
3146         for FeatureObservation into custom getters/setters). We should generate
3147         wrapper methods for custom getters/setters.
3148
3149         In the future, I will insert TRACE_EVENT() macros into these wrapper methods
3150         to profile DOM getters/setters/methods.
3151
3152         * bindings/scripts/CodeGeneratorV8.pm:
3153         (GenerateNormalAttrGetter):
3154         (GenerateNormalAttrSetter):
3155         (GenerateSingleBatchedAttribute):
3156         (GenerateImplementation):
3157         * bindings/scripts/test/V8/V8TestInterface.cpp:
3158         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrGetter):
3159         (TestInterfaceV8Internal):
3160         (WebCore::TestInterfaceV8Internal::supplementalStr3AttrSetter):
3161         (WebCore):
3162         * bindings/scripts/test/V8/V8TestObj.cpp:
3163         (WebCore::TestObjV8Internal::customAttrAttrGetter):
3164         (TestObjV8Internal):
3165         (WebCore::TestObjV8Internal::customAttrAttrSetter):
3166         (WebCore):
3167
3168 2013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3169
3170         Unreviewed, rolling out r142611.
3171         http://trac.webkit.org/changeset/142611
3172         https://bugs.webkit.org/show_bug.cgi?id=109668
3173
3174         Suggest box is not shown anymore when user types "window." in
3175         inspector console. (Requested by vsevik on #webkit).
3176
3177         * inspector/front-end/TextPrompt.js:
3178         (WebInspector.TextPrompt.prototype.complete):
3179
3180 2013-02-13  Kentaro Hara  <haraken@chromium.org>
3181
3182         [V8] There is no XXXConstructor that requires a custom getter
3183         https://bugs.webkit.org/show_bug.cgi?id=109667
3184
3185         Reviewed by Adam Barth.
3186
3187         Currently '[Custom] attribute XXXConstructor xxx' generates
3188         XXXAttrGetter(). However, there is no XXXConstructor with [Custom].
3189         In addition, it does make no sense to generate XXXAttrGetter() for such cases.
3190         We can remove the logic from CodeGeneratorV8.pm.
3191
3192         * bindings/scripts/CodeGeneratorV8.pm:
3193         (GenerateSingleBatchedAttribute):
3194
3195 2013-02-12  Hajime Morrita  <morrita@google.com>
3196
3197         [Internals] setShadowDOMEnabled() shouldn't be used except a few tests.
3198         https://bugs.webkit.org/show_bug.cgi?id=109642
3199
3200         Reviewed by Kent Tamura.
3201
3202         InternalSettings.setShadowDOMEnabled() shouldn't be called after
3203         any relevant DOM bindings are touched. However for fuzzers, it
3204         isn't trivial to regulate its behavior.
3205
3206         This change whitelists the URL of running test for prevent
3207         unintended API calls. This doesn't hurt the Internals usability
3208         since the API is called from just a couple of tests and the number
3209         isn't expected to grow.
3210
3211         Test: fast/dom/shadow/shadow-dom-enabled-flag-whitelist.html
3212
3213         * testing/InternalSettings.cpp:
3214         (WebCore::urlIsWhitelisted):
3215         (WebCore):
3216         (WebCore::InternalSettings::setShadowDOMEnabled):
3217
3218 2013-02-12  Vsevolod Vlasov  <vsevik@chromium.org>
3219
3220         Web Inspector: Introduce version controller to migrate settings versions.
3221         https://bugs.webkit.org/show_bug.cgi?id=109553
3222
3223         Reviewed by Yury Semikhatsky.
3224
3225         This patch introduces version controller that could be used to migrate inspector settings.
3226
3227         Test: inspector/version-controller.html
3228
3229         * inspector/front-end/Settings.js:
3230         (WebInspector.Settings):
3231         (WebInspector.VersionController):
3232         (WebInspector.VersionController.prototype.set _methodsToRunToUpdateVersion):
3233         (WebInspector.VersionController.prototype._updateVersionFrom0To1):
3234         * inspector/front-end/inspector.js:
3235
3236 2013-02-12  Martin Robinson  <mrobinson@igalia.com>
3237
3238         [GTK] Remove the GLib unicode backend
3239         https://bugs.webkit.org/show_bug.cgi?id=109627
3240
3241         Reviewed by Benjamin Poulain.
3242
3243         Remove references to the GLib unicode backend from WebCore.
3244
3245         * GNUmakefile.list.am: Update the source list.
3246         * platform/text/gtk/TextBreakIteratorGtk.cpp: Removed.
3247         * platform/text/gtk/TextCodecGtk.cpp: Removed.
3248         * platform/text/gtk/TextCodecGtk.h: Removed.
3249
3250 2013-02-12  Chris Fleizach  <cfleizach@apple.com>
3251
3252          AX: crash when accessing AccessibilityScrollbar after page has been unloaded
3253          https://bugs.webkit.org/show_bug.cgi?id=109524
3254
3255          Reviewed by Ryosuke Niwa.
3256
3257          AX clients can hold onto AccesibilityScrollbar references that reference parent
3258          AccessibilityScrollViews that have already gone away.
3259
3260          AccessibilityScrollView is not calling detachFromParent after it is removed, which
3261          leads to a crash. The fix is to clearChildren() when an object is deallocated.
3262
3263          I could not create a test because the crash only manifests over multiple page loads.
3264
3265          * accessibility/AccessibilityObject.cpp:
3266          (WebCore::AccessibilityObject::detach):
3267
3268 2013-02-12  Hayato Ito  <hayato@chromium.org>
3269
3270         Use FocusEvent.relatedTarget in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
3271         https://bugs.webkit.org/show_bug.cgi?id=109650
3272
3273         Reviewed by Dimitri Glazkov.
3274
3275         Set FocusEvent.relatedTarget in its constructor so that each
3276         EventDispatchMediator can use FocusEvent.relatedTarget rather than
3277         its redundant m_{old,new}FocusedNode member variable.
3278
3279         I've also removed FIXME comments, mentioning bug 109261, since I
3280         can not reproduce the issue.
3281
3282         No new tests. No change in functionality.
3283
3284         * dom/FocusEvent.cpp:
3285         (WebCore::FocusEventDispatchMediator::create):
3286         (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
3287         (WebCore::FocusEventDispatchMediator::dispatchEvent):
3288         (WebCore::BlurEventDispatchMediator::create):
3289         (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
3290         (WebCore::BlurEventDispatchMediator::dispatchEvent):
3291         (WebCore::FocusInEventDispatchMediator::create):
3292         (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
3293         (WebCore::FocusInEventDispatchMediator::dispatchEvent):
3294         (WebCore::FocusOutEventDispatchMediator::create):
3295         (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
3296         (WebCore::FocusOutEventDispatchMediator::dispatchEvent):
3297         * dom/FocusEvent.h:
3298         (FocusEventDispatchMediator):
3299         (BlurEventDispatchMediator):
3300         (FocusInEventDispatchMediator):
3301         (FocusOutEventDispatchMediator):
3302         * dom/Node.cpp:
3303         (WebCore::Node::dispatchFocusInEvent):
3304         (WebCore::Node::dispatchFocusOutEvent):
3305         (WebCore::Node::dispatchFocusEvent):
3306         (WebCore::Node::dispatchBlurEvent):
3307
3308 2013-02-12  Takashi Sakamoto  <tasak@google.com>
3309
3310         [Refactoring] Make SelectorChecker::mode a constructor parameter.
3311         https://bugs.webkit.org/show_bug.cgi?id=109653
3312
3313         Reviewed by Dimitri Glazkov.
3314
3315         No new tests, because just refactoring.
3316
3317         * css/SelectorChecker.cpp:
3318         (WebCore::SelectorChecker::SelectorChecker):
3319         Made mode a constructor parameter.
3320         * css/SelectorChecker.h:
3321         Removed setMode.
3322         (SelectorChecker):
3323         * css/StyleResolver.cpp:
3324         (WebCore::StyleResolver::ruleMatches):
3325         (WebCore::StyleResolver::checkRegionSelector):
3326         * dom/SelectorQuery.cpp:
3327         (WebCore::SelectorQuery::matches):
3328         (WebCore::SelectorQuery::queryAll):
3329         (WebCore::SelectorQuery::queryFirst):
3330         * html/shadow/ContentSelectorQuery.cpp:
3331         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
3332
3333 2013-02-12  Andreas Kling  <akling@apple.com>
3334
3335         Remove Element::ensureAttributeData().
3336         <http://webkit.org/b/109643>
3337
3338         Reviewed by Anders Carlsson.
3339
3340         * dom/Element.h:
3341         * dom/Element.cpp:
3342         (WebCore::Element::classAttributeChanged):
3343         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
3344
3345             Use attributeData() instead of ensureAttributeData(), it's already guaranteed to exist in
3346             both these functions as they are called in response to attribute changes.
3347
3348         * svg/SVGElement.h:
3349         (WebCore::SVGElement::invalidateSVGAttributes):
3350
3351             Use mutableAttributeData() instead of ensureAttributeData() when invalidating animated
3352             SVG attributes. While I can't find any bugs caused by this, an element with property animations
3353             shouldn't share attribute data with other elements.
3354
3355 2013-02-12  Hayato Ito  <hayato@chromium.org>
3356
3357         Make {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator type safe.
3358         https://bugs.webkit.org/show_bug.cgi?id=109561
3359
3360         Reviewed by Dimitri Glazkov.
3361
3362         Use FocusEvent rather than Event in {FocusIn,FocusOut,Focus,Blur}EventDispatchMediator.
3363
3364         No new tests. No change in functionality.
3365
3366         * dom/FocusEvent.cpp:
3367         (WebCore::FocusEventDispatchMediator::create):
3368         (WebCore::FocusEventDispatchMediator::FocusEventDispatchMediator):
3369         (WebCore::BlurEventDispatchMediator::create):
3370         (WebCore::BlurEventDispatchMediator::BlurEventDispatchMediator):
3371         (WebCore::FocusInEventDispatchMediator::create):
3372         (WebCore::FocusInEventDispatchMediator::FocusInEventDispatchMediator):
3373         (WebCore::FocusOutEventDispatchMediator::create):
3374         (WebCore::FocusOutEventDispatchMediator::FocusOutEventDispatchMediator):
3375         * dom/FocusEvent.h:
3376         (FocusEventDispatchMediator):
3377         (WebCore::FocusEventDispatchMediator::event):
3378         (BlurEventDispatchMediator):
3379         (WebCore::BlurEventDispatchMediator::event):
3380         (FocusInEventDispatchMediator):
3381         (WebCore::FocusInEventDispatchMediator::event):
3382         (FocusOutEventDispatchMediator):
3383         (WebCore::FocusOutEventDispatchMediator::event):
3384
3385 2013-02-12  Eric Seidel  <eric@webkit.org>
3386
3387         Fix HTMLToken::Attribute member naming and update callsites to use Vector-based String functions
3388         https://bugs.webkit.org/show_bug.cgi?id=109638
3389
3390         Reviewed by Adam Barth.
3391
3392         Darin Adler noted in:
3393         https://bugs.webkit.org/show_bug.cgi?id=109408#c4
3394         that HTMLToken::Attribute (then MarkupTokenBase::Attribute)
3395         was a struct, yet incorrectly used m_ for its public members.
3396
3397         This patch fixes the members to not have the m_, and since I was
3398         touching all callers, I also updated all callers to use modern
3399         Vector-based String creation/append functions instead of manually
3400         calling UChar*, size_t versions.
3401
3402         There should be no behavior change to this patch.  Where I saw
3403         performance/memory bugs, I noted them with FIXMEs to keep
3404         this change simple.
3405
3406         * html/HTMLViewSourceDocument.cpp:
3407         (WebCore::HTMLViewSourceDocument::processTagToken):
3408         * html/parser/AtomicHTMLToken.h:
3409         (WebCore::AtomicHTMLToken::publicIdentifier):
3410         (WebCore::AtomicHTMLToken::systemIdentifier):
3411         (WebCore::AtomicHTMLToken::AtomicHTMLToken):
3412         (WebCore::AtomicHTMLToken::initializeAttributes):
3413         * html/parser/CompactHTMLToken.cpp:
3414         (WebCore::CompactHTMLToken::CompactHTMLToken):
3415         * html/parser/HTMLMetaCharsetParser.cpp:
3416         (WebCore::HTMLMetaCharsetParser::processMeta):