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