[iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2014-01-02  Daniel Bates  <dabates@apple.com>
2
3         [iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
4         (also crashes when scrolling certain sites)
5         https://bugs.webkit.org/show_bug.cgi?id=126401
6         <rdar://problem/15739334>
7
8         Reviewed by Tim Horton.
9
10         * page/ios/EventHandlerIOS.mm:
11         (WebCore::currentEventSlot): Make the shared variable have static-storage duration.
12
13 2014-01-02  Gavin Barraclough  <barraclough@apple.com>
14
15         Merge didMoveOnscreen / page visibility to isVisible
16         https://bugs.webkit.org/show_bug.cgi?id=126268
17
18         Reviewed by Tim Horton.
19
20         The onscreen state most closely tracks view visibility (though currently
21         also tracks a mix of in-window state). Make more consistent, simplify,
22         and move all animation suspension logic to Page, so it can be controlled
23         by the PageThrottler.
24
25         * WebCore.exp.in:
26         * page/EventHandler.cpp:
27         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
28         * page/FrameView.cpp:
29         (WebCore::FrameView::shouldSetCursor):
30         * page/Page.cpp:
31         (WebCore::Page::Page):
32             - initialize new variables.
33         (WebCore::Page::setIsVisible):
34             - merge setVisibilityState, didMoveOnscreen, willMoveOffscreen.
35         (WebCore::Page::setIsPrerender):
36             - switches visibility state from hidden to prerender.
37         (WebCore::Page::visibilityState):
38             - computed from m_isVisible, m_isPrerender.
39         (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
40             - m_visibilityState -> m_isVisible.
41         * page/Page.h:
42             - remove didMoveOnscreen/willMoveOffscreen
43               m_isOnscreen & m_visibilityState -> m_isVisible & m_isPrerender
44               setVisibilityState -> setIsVisible & setIsPrerender.
45         (WebCore::Page::isVisible):
46             - isOnscreen -> isVisible.
47
48 2014-01-02  Oliver Hunt  <oliver@apple.com>
49
50         Update bindings test results
51
52         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
53         (WebCore::jsTestActiveDOMObjectConstructor):
54         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
55         (WebCore::jsTestCustomNamedGetterConstructor):
56         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
57         (WebCore::jsTestEventConstructorConstructor):
58         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
59         (WebCore::jsTestEventTargetConstructor):
60         * bindings/scripts/test/JS/JSTestException.cpp:
61         (WebCore::jsTestExceptionConstructor):
62         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
63         (WebCore::jsTestGenerateIsReachableConstructor):
64         * bindings/scripts/test/JS/JSTestInterface.cpp:
65         (WebCore::jsTestInterfaceConstructor):
66         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
67         (WebCore::jsTestMediaQueryListListenerConstructor):
68         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
69         (WebCore::jsTestNamedConstructorConstructor):
70         * bindings/scripts/test/JS/JSTestNode.cpp:
71         (WebCore::jsTestNodeConstructor):
72         * bindings/scripts/test/JS/JSTestObj.cpp:
73         (WebCore::jsTestObjConstructor):
74         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
75         (WebCore::jsTestOverloadedConstructorsConstructor):
76         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
77         (WebCore::jsTestSerializedScriptValueInterfaceConstructor):
78         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
79         (WebCore::jsTestTypedefsConstructor):
80         * bindings/scripts/test/JS/JSattribute.cpp:
81         (WebCore::jsattributeConstructor):
82         * bindings/scripts/test/JS/JSreadonly.cpp:
83         (WebCore::jsreadonlyConstructor):
84
85 2013-12-23  Oliver Hunt  <oliver@apple.com>
86
87         Refactor PutPropertySlot to be aware of custom properties
88         https://bugs.webkit.org/show_bug.cgi?id=126187
89
90         Reviewed by Antti Koivisto.
91
92         Update the bindings code generation and custom objects
93         to the new function signatures
94
95         * bindings/js/JSDOMWindowCustom.cpp:
96         (WebCore::JSDOMWindow::put):
97         * bindings/objc/WebScriptObject.mm:
98         (-[WebScriptObject setValue:forKey:]):
99         * bindings/scripts/CodeGeneratorJS.pm:
100         (GenerateImplementation):
101         * bindings/scripts/test/JS/JSTestInterface.cpp:
102         (WebCore::JSTestInterface::putByIndex):
103         * bridge/NP_jsobject.cpp:
104         (_NPN_SetProperty):
105
106 2014-01-02  Simon Fraser  <simon.fraser@apple.com>
107
108         Add AsyncScrollingCoordinator, which is a base class for threaded and future remote ScrollingCoordinators
109         https://bugs.webkit.org/show_bug.cgi?id=126389
110
111         Reviewed by Tim Horton.
112
113         Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
114         and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.
115
116         * WebCore.xcodeproj/project.pbxproj: Added AsyncScrollingCoordinator.*
117         * page/scrolling/AsyncScrollingCoordinator.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm.
118         (WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
119         (WebCore::AsyncScrollingCoordinator::~AsyncScrollingCoordinator):
120         (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
121         (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
122         (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
123         (WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
124         (WebCore::AsyncScrollingCoordinator::attachToStateTree):
125         (WebCore::AsyncScrollingCoordinator::detachFromStateTree):
126         (WebCore::AsyncScrollingCoordinator::clearStateTree):
127         (WebCore::AsyncScrollingCoordinator::syncChildPositions):
128         (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
129         (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
130         (WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
131         (WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
132         (WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
133         (WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
134         (WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
135         (WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
136         (WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
137         (WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
138         (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
139         (WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
140         (WebCore::AsyncScrollingCoordinator::updateMainFrameScrollLayerPosition):
141         (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
142         (WebCore::AsyncScrollingCoordinator::isRubberBandInProgress):
143         (WebCore::AsyncScrollingCoordinator::setScrollPinningBehavior):
144         (WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
145         * page/scrolling/AsyncScrollingCoordinator.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
146         (WebCore::AsyncScrollingCoordinator::scrollingTree):
147         (WebCore::AsyncScrollingCoordinator::setScrollingTree):
148         (WebCore::AsyncScrollingCoordinator::scrollingStateTree):
149         (WebCore::AsyncScrollingCoordinator::releaseScrollingTree):
150         * page/scrolling/ScrollingCoordinator.h: Add casting support.
151         (WebCore::ScrollingCoordinator::isAsyncScrollingCoordinator):
152         * page/scrolling/ThreadedScrollingTree.h: commitNewTreeState() needs to be public.
153         * page/scrolling/mac/ScrollingCoordinatorMac.h:
154         * page/scrolling/mac/ScrollingCoordinatorMac.mm: Lots of code moved to AsyncScrollingCoordinator.
155         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
156         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
157         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
158         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
159         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
160         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
161         (WebCore::ScrollingCoordinatorMac::commitTreeState):
162         (WebCore::ScrollingCoordinatorMac::updateTiledScrollingIndicator):
163
164 2014-01-02  Andreas Kling  <akling@apple.com>
165
166         Simplify the insides of DocumentSharedObjectPool and reduce memory usage.
167
168         Merging Blink r164152 by Elliott Sprehn.
169
170         Instead of storing an OwnPtr to an object that has a pointer to the
171         ShareableElementData as well as a pointer into the ShareableElementData
172         and the length we can just store a RefPtr to the SharableElementData.
173
174         This also reduces the memory usage of the pool by 2 pointers per entry.
175
176         * dom/DocumentSharedObjectPool.h:
177         * dom/DocumentSharedObjectPool.cpp:
178         (WebCore::attributeHash):
179         (WebCore::hasSameAttributes):
180         (WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
181
182 2014-01-02  Dirk Schulze  <krit@webkit.org>
183
184         Support <box> values computed style for 'clip-path' property
185         https://bugs.webkit.org/show_bug.cgi?id=126148
186
187         Reviewed by Simon Fraser.
188
189         Calculate computed style for 'clip-path' property.
190
191         Updated tests to check for computed style.
192
193         * css/BasicShapeFunctions.cpp: Add box value bounding-box.
194         (WebCore::valueForBox):
195         (WebCore::boxForValue):
196         * css/CSSComputedStyleDeclaration.cpp: Return the computed style
197             for 'clip-path'.
198         (WebCore::ComputedStyleExtractor::propertyValue):
199         * css/DeprecatedStyleBuilder.cpp: Create CSSValueLists for 'clip-th'.
200         (WebCore::ApplyPropertyClipPath::applyValue):
201         * rendering/ClipPathOperation.h: Add bounding-box value.
202         (WebCore::ShapeClipPathOperation::pathForReferenceRect):
203         (WebCore::ShapeClipPathOperation::setReferenceBox):
204         (WebCore::ShapeClipPathOperation::referenceBox):
205         (WebCore::BoxClipPathOperation::create):
206         (WebCore::BoxClipPathOperation::pathForReferenceRect):
207         (WebCore::BoxClipPathOperation::referenceBox):
208         (WebCore::BoxClipPathOperation::BoxClipPathOperation):
209         * rendering/shapes/ShapeInfo.h: Add bounding-box value.
210         (WebCore::ShapeInfo::setShapeSize):
211         (WebCore::ShapeInfo::logicalTopOffset):
212         (WebCore::ShapeInfo::logicalLeftOffset):
213         * rendering/style/BasicShapes.cpp: Add bounding-box value.
214         (WebCore::BasicShape::referenceBoxSize):
215         * rendering/style/BasicShapes.h:
216
217 2014-01-02  Antti Koivisto  <antti@apple.com>
218
219         Always resolve style from root
220         https://bugs.webkit.org/show_bug.cgi?id=126380
221
222         Reviewed by Andreas Kling.
223         
224         Forced style resolve that does not start from the root is never really correct. 
225         Remove the few remaining instances.
226
227         * dom/ShadowRoot.cpp:
228         (WebCore::ShadowRoot::setResetStyleInheritance):
229         
230             Update style asynchronously.
231
232         * dom/ShadowRoot.h:
233         * dom/Text.h:
234         * html/HTMLPlugInImageElement.cpp:
235         (WebCore::HTMLPlugInImageElement::createElementRenderer):
236         (WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
237         (WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
238         
239             Delete the render tree synchronously on suspend and rebuild it asynchronously on resume.
240             No need for m_customStyleForPageCache hack.
241
242         * html/HTMLPlugInImageElement.h:
243         
244             Remove m_customStyleForPageCache.
245
246         * style/StyleResolveTree.cpp:
247         * style/StyleResolveTree.h:
248         
249             Remove Element version of resolveTree from the interface.
250
251         * svg/SVGUseElement.h:
252
253 2014-01-02  Antti Koivisto  <antti@apple.com>
254
255         Remove PlaceholderDocument
256         https://bugs.webkit.org/show_bug.cgi?id=126382
257
258         Reviewed by Andreas Kling.
259
260         Remove PlaceholderDocument class and replace it with a bit in Document.
261
262         * WebCore.xcodeproj/project.pbxproj:
263         * dom/Document.cpp:
264         (WebCore::Document::Document):
265         (WebCore::Document::createRenderTree):
266         * dom/Document.h:
267         
268             Also make Synthesized a construction flag instead of a boolean parameter.
269
270         (WebCore::Document::createNonRenderedPlaceholder):
271         * html/HTMLDocument.cpp:
272         (WebCore::HTMLDocument::HTMLDocument):
273         * html/HTMLDocument.h:
274         (WebCore::HTMLDocument::create):
275         (WebCore::HTMLDocument::createSynthesizedDocument):
276         * loader/DocumentWriter.cpp:
277         (WebCore::DocumentWriter::createDocument):
278         * loader/PlaceholderDocument.cpp: Removed.
279         * loader/PlaceholderDocument.h: Removed.
280         * pdf/ios/PDFDocument.h:
281         (WebCore::PDFDocument::PDFDocument):
282
283 2014-01-01  Antti Koivisto  <antti@apple.com>
284
285         Remove public attachRenderTree
286         https://bugs.webkit.org/show_bug.cgi?id=126368
287
288         Reviewed by Andreas Kling.
289
290         Remove the remaining explicit render tree construction.
291
292         * dom/Document.cpp:
293         (WebCore::Document::createRenderTree):
294         
295            Use recalcStyle() instead of calling attachRenderTree directly.
296
297         * html/HTMLViewSourceDocument.cpp:
298         (WebCore::HTMLViewSourceDocument::addText):
299         
300             Remove forgotten attachTextRenderer.
301
302         * html/shadow/InsertionPoint.cpp:
303         (WebCore::InsertionPoint::InsertionPoint):
304         
305             Remove willAttachRenderers/didAttachRenderers hack.
306
307         * html/shadow/InsertionPoint.h:
308         (WebCore::toInsertionPoint):
309         * loader/PlaceholderDocument.cpp:
310         (WebCore::PlaceholderDocument::createRenderTree):
311         
312             Seriously, nothing to do here.
313
314         * style/StyleResolveTree.cpp:
315         (WebCore::Style::attachDistributedChildren):
316         (WebCore::Style::attachChildren):
317         (WebCore::Style::detachDistributedChildren):
318         (WebCore::Style::detachChildren):
319         
320             Making attaching and detaching distributed insertion point children part of ResolveTree internals.
321
322         * style/StyleResolveTree.h:
323         
324             Remove interfaces with no clients.
325
326 2014-01-01  Seokju Kwon  <seokju@webkit.org>
327
328         Remove stale ScriptProfiler methods
329         https://bugs.webkit.org/show_bug.cgi?id=126373
330
331         Reviewed by Darin Adler.
332
333         No new tests, No change behavior. 
334
335         * bindings/js/ScriptProfiler.h: Remove dead code.
336
337 2014-01-01  Andreas Kling  <akling@apple.com>
338
339         Remove ChromeClient::fullScreenRendererChanged().
340         <https://webkit.org/b/126370>
341
342         This hook was added in r75277 to notify WebFullScreenController when
343         the full screen renderer changed. In r110216 the code was refactored,
344         making this notification unnecessary.
345
346         Reviewed by Antti Koivisto.
347
348 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
349
350         Fix the build by exposing some more scrolling state node headers
351         as Private in WebCore.framework.
352
353         * WebCore.xcodeproj/project.pbxproj:
354
355 2014-01-01  Ryuan Choi  <ryuan.choi@samsung.com>
356
357         [EFL] Unreviewed build fix after r160903 when ACCESSIBILITY is disabled
358
359         * accessibility/AccessibilityObject.h:
360         (WebCore::AccessibilityObject::children):
361
362 2014-01-01  Andreas Kling  <akling@apple.com>
363
364         RenderScrollbar: Map of scrollbar parts should use RenderPtr.
365         <https://webkit.org/b/126367>
366
367         Turn RenderScrollbar::m_parts into HashMap of RenderPtrs. This makes
368         renderer destruction automatic and lets us remove some code.
369
370         Reviewed by Antti Koivisto.
371
372         * rendering/RenderPtr.h:
373
374             Add HashTraits for RenderPtr so we can use them as values in
375             WTF hash tables.
376
377         * rendering/RenderScrollbar.h:
378         * rendering/RenderScrollbar.cpp:
379         (WebCore::RenderScrollbar::~RenderScrollbar):
380         (WebCore::RenderScrollbar::setParent):
381         (WebCore::RenderScrollbar::updateScrollbarParts):
382         (WebCore::RenderScrollbar::updateScrollbarPart):
383
384             Remove now-unneeded kludges of logic to manually delete scrollbar
385             part renderers in various scenarios.
386
387 2014-01-01  Antti Koivisto  <antti@apple.com>
388
389         Remove reattachRenderTree
390         https://bugs.webkit.org/show_bug.cgi?id=126366
391
392         Reviewed by Andreas Kling.
393
394         Remove the last remaining client.
395
396         * html/HTMLSelectElement.cpp:
397         (WebCore::HTMLSelectElement::parseAttribute):
398         
399             Reconstruct render tree asynchronously.
400
401         (WebCore::HTMLSelectElement::scrollToSelection):
402         (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
403         (WebCore::HTMLSelectElement::selectOption):
404         
405             It is not safe to cast the renderer based on usesMenuList test. Switch to RenderObject::isMenuList test.
406
407         (WebCore::HTMLSelectElement::parseMultipleAttribute):
408         
409             Reconstruct render tree asynchronously.
410
411         (WebCore::HTMLSelectElement::platformHandleKeydownEvent):
412         (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
413         (WebCore::HTMLSelectElement::defaultEventHandler):
414         * style/StyleResolveTree.cpp:
415         * style/StyleResolveTree.h:
416         
417             Remove the function.
418
419 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
420
421         Create a ThreadedScrollingTree subclass of ScrollingTree, and push all knowledge of the scrolling thread into it
422         https://bugs.webkit.org/show_bug.cgi?id=126362
423
424         Reviewed by Sam Weinig.
425
426         Eventually we'll have a ScrollingTree in situations where there is no scrolling
427         thread, so make the ScrollingTree base class thread-agnostic (but threadsafe),
428         and subclass it in ThreadedScrollingTree for scrolling-thread-specific functionality.
429         
430         The ScrollingTree base class also no longer needs to know about the
431         ScrollingCoordinator.
432
433         ScrollingCoordinatorMac creates a ThreadedScrollingTree.
434
435         * WebCore.exp.in:
436         * WebCore.xcodeproj/project.pbxproj: Add ThreadedScrollingTree.*
437         Make some headers Private that we'll need in WebKit2 soon.
438         * page/scrolling/ScrollingStateTree.h: Drive-by cleanup: clone() was unimplemented.
439         * page/scrolling/ScrollingTree.cpp:
440         (WebCore::ScrollingTree::ScrollingTree):
441         (WebCore::ScrollingTree::~ScrollingTree):
442         (WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Wrap up some logic that
443         involves taking the mutex, so ThreadedScrollingTree can conveniently call it.
444         (WebCore::ScrollingTree::handleWheelEvent):
445         (WebCore::ScrollingTree::commitNewTreeState):
446         (WebCore::ScrollingTree::setMainFrameScrollPosition):
447         (WebCore::ScrollingTree::isHandlingProgrammaticScroll):
448         * page/scrolling/ScrollingTree.h:
449         (WebCore::ScrollingTree::isThreadedScrollingTree):
450         (WebCore::ScrollingTree::invalidate):
451         * page/scrolling/ThreadedScrollingTree.cpp: Added.
452         (WebCore::ThreadedScrollingTree::create):
453         (WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
454         (WebCore::ThreadedScrollingTree::~ThreadedScrollingTree):
455         (WebCore::ThreadedScrollingTree::tryToHandleWheelEvent):
456         (WebCore::ThreadedScrollingTree::handleWheelEvent):
457         (WebCore::derefScrollingCoordinator):
458         (WebCore::ThreadedScrollingTree::invalidate):
459         (WebCore::ThreadedScrollingTree::commitNewTreeState):
460         (WebCore::ThreadedScrollingTree::updateMainFrameScrollPosition):
461         (WebCore::ThreadedScrollingTree::handleWheelEventPhase):
462         * page/scrolling/ThreadedScrollingTree.h: Added.
463         (WebCore::ThreadedScrollingTree::isThreadedScrollingTree):
464         * page/scrolling/mac/ScrollingCoordinatorMac.h:
465         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
466         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
467         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
468
469 2014-01-01  Andreas Kling  <akling@apple.com>
470
471         FrameView: Store scroll corner renderer in a RenderPtr.
472         <https://webkit.org/b/126364>
473
474         Make FrameView::m_scrollCorner a RenderPtr<RenderScrollbarPart> and
475         remove two manual destroy() calls.
476
477         Reviewed by Antti Koivisto.
478
479 2014-01-01  Antti Koivisto  <antti@apple.com>
480
481         Remove elementChildren/elementDescendants shorthands
482         https://bugs.webkit.org/show_bug.cgi?id=126363
483
484         Reviewed by Anders Carlsson.
485
486         Just use childrenOfType<Element>/descendantsOfType<Element> instead. They are not that much longer
487         and consistency is valuable.
488
489         * accessibility/AccessibilityNodeObject.cpp:
490         (WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
491         (WebCore::siblingWithAriaRole):
492         * accessibility/AccessibilityTable.cpp:
493         (WebCore::AccessibilityTable::isDataTable):
494         * css/StyleInvalidationAnalysis.cpp:
495         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
496         * dom/ChildNodeList.cpp:
497         (WebCore::ChildNodeList::namedItem):
498         * dom/Document.cpp:
499         (WebCore::Document::buildAccessKeyMap):
500         (WebCore::Document::childrenChanged):
501         * dom/Element.cpp:
502         (WebCore::Element::resetComputedStyle):
503         * dom/ElementChildIterator.h:
504         * dom/ElementDescendantIterator.h:
505         * dom/SelectorQuery.cpp:
506         (WebCore::elementsForLocalName):
507         (WebCore::anyElement):
508         (WebCore::SelectorDataList::executeSingleTagNameSelectorData):
509         (WebCore::SelectorDataList::executeSingleClassNameSelectorData):
510         (WebCore::SelectorDataList::executeSingleSelectorData):
511         (WebCore::SelectorDataList::executeSingleMultiSelectorData):
512         * editing/ApplyStyleCommand.cpp:
513         (WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
514         * editing/ReplaceSelectionCommand.cpp:
515         (WebCore::removeHeadContents):
516         * editing/markup.cpp:
517         (WebCore::completeURLs):
518         * html/HTMLFieldSetElement.cpp:
519         (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
520         * html/HTMLObjectElement.cpp:
521         (WebCore::HTMLObjectElement::containsJavaApplet):
522         * loader/PlaceholderDocument.cpp:
523         (WebCore::PlaceholderDocument::createRenderTree):
524         * rendering/RenderChildIterator.h:
525         * svg/SVGSVGElement.cpp:
526         (WebCore::SVGSVGElement::getElementById):
527         * svg/SVGUseElement.cpp:
528         (WebCore::subtreeContainsDisallowedElement):
529         (WebCore::removeDisallowedElementsFromSubtree):
530
531 2014-01-01  Antti Koivisto  <antti@apple.com>
532
533         Do less synchronous render tree construction
534         https://bugs.webkit.org/show_bug.cgi?id=126359
535
536         Reviewed by Anders Carlsson.
537
538         Remove some now-unnecessary attachRenderTree calls.
539
540         * html/HTMLDetailsElement.cpp:
541         (WebCore::HTMLDetailsElement::parseAttribute):
542         * html/HTMLInputElement.cpp:
543         (WebCore::HTMLInputElement::parseAttribute):
544         * html/HTMLObjectElement.cpp:
545         (WebCore::HTMLObjectElement::renderFallbackContent):
546         * html/HTMLPlugInElement.cpp:
547         (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
548         * html/HTMLPlugInImageElement.cpp:
549         (WebCore::HTMLPlugInImageElement::willRecalcStyle):
550         (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
551         (WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
552         * html/HTMLViewSourceDocument.cpp:
553         (WebCore::HTMLViewSourceDocument::createContainingTable):
554         (WebCore::HTMLViewSourceDocument::addSpanWithClassName):
555         (WebCore::HTMLViewSourceDocument::addLine):
556         (WebCore::HTMLViewSourceDocument::finishLine):
557         (WebCore::HTMLViewSourceDocument::addBase):
558         (WebCore::HTMLViewSourceDocument::addLink):
559         * xml/XMLErrors.cpp:
560         (WebCore::XMLErrors::insertErrorMessageBlock):
561
562 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
563
564         Updating the scrolling tree should use references to state nodes
565         https://bugs.webkit.org/show_bug.cgi?id=126360
566
567         Reviewed by Anders Carlsson.
568
569         Change functions related to ScrollingTreeNode updating to take
570         const references to state nodes rather than pointers.
571
572         * page/scrolling/ScrollingStateNode.h:
573         (WebCore::ScrollingStateNode::hasChangedProperty):
574         * page/scrolling/ScrollingTree.cpp:
575         (WebCore::ScrollingTree::commitNewTreeState):
576         (WebCore::ScrollingTree::updateTreeFromStateNode): The node can be nil so
577         this continues to take a pointer.
578         (WebCore::ScrollingTree::removeDestroyedNodes):
579         * page/scrolling/ScrollingTree.h:
580         * page/scrolling/ScrollingTreeNode.h:
581         (WebCore::ScrollingTreeNode::updateAfterChildren):
582         * page/scrolling/ScrollingTreeScrollingNode.cpp:
583         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
584         * page/scrolling/ScrollingTreeScrollingNode.h:
585         * page/scrolling/mac/ScrollingTreeFixedNode.h:
586         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
587         (WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
588         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
589         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
590         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
591         (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
592         * page/scrolling/mac/ScrollingTreeStickyNode.h:
593         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
594         (WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
595
596 2014-01-01  Simon Fraser  <simon.fraser@apple.com>
597
598         Add a typedef for PlatformLayerID on GraphicsLayer, and migrate RemoteLayerTreeTransaction to use it
599         https://bugs.webkit.org/show_bug.cgi?id=126346
600
601         Reviewed by Tim Horton.
602
603         Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
604         so it makes more sense to put this layerID type on GraphicsLayer as
605         GraphicsLayer::PlatformLayerID.
606         
607         Also add some type cast macros for PlatformCALayer and subclasses, and use them
608         where appropriate.
609
610         * platform/graphics/GraphicsLayer.h:
611         * platform/graphics/ca/GraphicsLayerCA.cpp:
612         (WebCore::GraphicsLayerCA::setName):
613         * platform/graphics/ca/PlatformCALayer.h:
614         (WebCore::PlatformCALayer::isPlatformCALayerMac):
615         (WebCore::PlatformCALayer::isPlatformCALayerRemote):
616         (WebCore::PlatformCALayer::PlatformCALayer):
617         * platform/graphics/ca/mac/PlatformCALayerMac.h:
618
619 2013-12-31  Simon Fraser  <simon.fraser@apple.com>
620
621         ScrollingStateNodes should have a reference to the ScrollingStateTree
622         https://bugs.webkit.org/show_bug.cgi?id=126348
623
624         Reviewed by Sam Weinig.
625
626         Make ScrollingStateNodes always belong to a ScrollingStateTree, and thus
627         have a reference to the tree rather than a pointer. When cloning nodes,
628         they are adopted by a new ScrollingStateTree, which adds them to its
629         node map (which didn't happen before).
630         
631         In subclasses access the ScrollingStateTree through a member function.
632
633         * page/scrolling/ScrollingStateFixedNode.cpp:
634         (WebCore::ScrollingStateFixedNode::create):
635         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
636         (WebCore::ScrollingStateFixedNode::clone):
637         (WebCore::ScrollingStateFixedNode::updateConstraints):
638         * page/scrolling/ScrollingStateFixedNode.h:
639         * page/scrolling/ScrollingStateNode.cpp:
640         (WebCore::ScrollingStateNode::ScrollingStateNode):
641         (WebCore::ScrollingStateNode::cloneAndReset):
642         (WebCore::ScrollingStateNode::cloneAndResetChildren):
643         (WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
644         * page/scrolling/ScrollingStateNode.h:
645         (WebCore::ScrollingStateNode::scrollingStateTree):
646         * page/scrolling/ScrollingStateScrollingNode.cpp:
647         (WebCore::ScrollingStateScrollingNode::create):
648         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
649         (WebCore::ScrollingStateScrollingNode::clone):
650         (WebCore::ScrollingStateScrollingNode::setViewportRect):
651         (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
652         (WebCore::ScrollingStateScrollingNode::setScrollOrigin):
653         (WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
654         (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
655         (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
656         (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
657         (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
658         (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
659         (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
660         (WebCore::ScrollingStateScrollingNode::setHeaderHeight):
661         (WebCore::ScrollingStateScrollingNode::setFooterHeight):
662         * page/scrolling/ScrollingStateScrollingNode.h:
663         * page/scrolling/ScrollingStateStickyNode.cpp:
664         (WebCore::ScrollingStateStickyNode::create):
665         (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
666         (WebCore::ScrollingStateStickyNode::clone):
667         (WebCore::ScrollingStateStickyNode::updateConstraints):
668         * page/scrolling/ScrollingStateStickyNode.h:
669         * page/scrolling/ScrollingStateTree.cpp:
670         (WebCore::ScrollingStateTree::attachNode):
671         (WebCore::ScrollingStateTree::commit):
672         (WebCore::ScrollingStateTree::addNode):
673         * page/scrolling/ScrollingStateTree.h:
674         * page/scrolling/mac/ScrollingStateNodeMac.mm:
675         (WebCore::ScrollingStateNode::setScrollLayer):
676         * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
677         (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
678         (WebCore::ScrollingStateScrollingNode::setHeaderLayer):
679         (WebCore::ScrollingStateScrollingNode::setFooterLayer):
680         (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
681
682 2013-12-31  Simon Fraser  <simon.fraser@apple.com>
683
684         Give ScrollingStateNodes a nodeType()
685         https://bugs.webkit.org/show_bug.cgi?id=126347
686
687         Reviewed by Tim Horton.
688
689         When we start serializing ScrollingStateNodes to send to the UI process,
690         it's more convenient if they have a nodeType member rather than virtual functions,
691         so give them one, and fix the casting macros to use it. This allows us to use
692         a switch() on node creation, so the compiler will tell us if we forgot to create
693         a node type.
694
695         * page/scrolling/ScrollingStateFixedNode.cpp:
696         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
697         * page/scrolling/ScrollingStateFixedNode.h:
698         * page/scrolling/ScrollingStateNode.cpp:
699         (WebCore::ScrollingStateNode::ScrollingStateNode):
700         * page/scrolling/ScrollingStateNode.h: const ScrollingNodeType field
701         (can't be modified after construction), and move the m_scrollingStateTree
702         member after it (the awkward protected:/private: will be cleaned up in a later patch).
703         (WebCore::ScrollingStateNode::nodeType):
704         * page/scrolling/ScrollingStateScrollingNode.cpp:
705         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
706         * page/scrolling/ScrollingStateScrollingNode.h:
707         * page/scrolling/ScrollingStateStickyNode.cpp:
708         (WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
709         * page/scrolling/ScrollingStateStickyNode.h:
710         * page/scrolling/ScrollingTree.cpp:
711         (WebCore::ScrollingTree::updateTreeFromStateNode):
712
713 2013-12-31  Andreas Kling  <akling@apple.com>
714
715         Out-of-line RenderStyle substructure copying helpers.
716         <https://webkit.org/b/126340>
717
718         This shrinks the .access() calls by moving memory allocation logic
719         out-of-line, though I'm really doing this to make Instruments.app
720         allocations output more readable.
721
722         Writes to e.g 'font' or 'color' will now be grouped under a single
723         StyleInheritedData::copy() call instead of being spread out over
724         setFontDescription(), setLineHeight(), setColor(), etc.
725
726         Reviewed by Anders Carlsson.
727
728 2013-12-31  Andreas Kling  <akling@apple.com>
729
730         RenderListItem should store its marker in a RenderPtr.
731         <https://webkit.org/b/126298>
732
733         Make RenderListItem::m_marker a RenderPtr<RenderListMarker> and
734         remove two manual destroy() calls. Tweaked code to reduce nesting.
735
736         Reviewed by Anders Carlsson.
737
738 2013-12-31  Andreas Kling  <akling@apple.com>
739
740         Element's renderer factory should return RenderPtrs.
741         <https://webkit.org/b/126318>
742
743         Rename Element::createRenderer() to createElementRenderer() and have
744         it return RenderPtr<RenderElement>. Propagate signature until it
745         builds again.
746
747         We leakPtr() the renderer at two call sites when handing things over
748         to raw pointer API. This'll get tidied up in subsequent patches.
749
750         Reviewed by Sam Weinig.
751
752 2013-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>
753
754         [SOUP] Return early in ResourceHandle::receivedCancellation if the load has already cancelled
755         https://bugs.webkit.org/show_bug.cgi?id=126287
756
757         Reviewed by Martin Robinson.
758
759         This situation can happen when using the network process, because
760         the ReceivedCancellation message can be received when the resource
761         loader has already been removed, but the authentication challenge
762         still has a reference to the ResourceHandleClient.
763
764         * platform/network/soup/ResourceHandleSoup.cpp:
765         (WebCore::ResourceHandle::receivedCancellation):
766
767 2013-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>
768
769         [SOUP] The initiating page is lost after a redirection
770         https://bugs.webkit.org/show_bug.cgi?id=126293
771
772         Reviewed by Martin Robinson.
773
774         The initiating page id is attached to the initial soup request
775         object, but not to the one created after a redirection.
776
777         * platform/network/soup/ResourceHandleSoup.cpp:
778         (WebCore::createSoupRequestAndMessageForHandle): Call
779         setSoupRequestInitiatingPageIDFromNetworkingContext() here if the
780         soup request is created successfully.
781         (WebCore::ResourceHandle::start): Remove the call to
782         setSoupRequestInitiatingPageIDFromNetworkingContext().
783
784 2013-12-31  Carlos Garcia Campos  <cgarcia@igalia.com>
785
786         [SOUP] Implement ResourceHandle::continueWillSendRequest()
787         https://bugs.webkit.org/show_bug.cgi?id=126291
788
789         Reviewed by Martin Robinson.
790
791         * platform/network/soup/ResourceHandleSoup.cpp:
792         (WebCore::continueAfterWillSendRequest): Helper function that
793         continues with the load after willSendRequest has been called.
794         (WebCore::doRedirect): Call continueAfterWillSendRequest() when
795         client doesn't use async callbacks.
796         (WebCore::ResourceHandle::continueWillSendRequest): Call
797         continueAfterWillSendRequest().
798
799 2013-12-30  Carlos Garcia Campos  <cgarcia@igalia.com>
800
801         [SOUP] willSendRequest doesn't work after a redirect
802         https://bugs.webkit.org/show_bug.cgi?id=126290
803
804         Reviewed by Martin Robinson.
805
806         The problem is that we are creating the new soup request for the
807         redirect before calling ResourceHandleClient::willSendRequest() so
808         that any change made to the request by the client is ignored.
809
810         * platform/network/soup/ResourceHandleSoup.cpp:
811         (WebCore::doRedirect): Create the new soup request and soup
812         message for the redirect after calling willSendRequest() on the
813         client.
814
815 2013-12-30  Andreas Kling  <akling@apple.com>
816
817         InputType should return input renderers wrapped in RenderPtr.
818         <https://webkit.org/b/126307>
819
820         Rename InputType::createRenderer() to createInputRenderer() and
821         make it return RenderPtr<RenderElement>. Also made it non-const.
822
823         Reviewed by Anders Carlsson.
824
825 2013-12-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
826
827         Cleanup static_cast<HTMLFormElement*> by using toHTMLFormElement()
828         https://bugs.webkit.org/show_bug.cgi?id=126309
829
830         Reviewed by Andreas Kling.
831
832         To detect bad type casts, it would be good to use toHTMLFormElement() instead of
833         using manual type cast. Additionally FORM_ASSOCIATED_ELEMENT_TYPE_CASTS is introduced newly
834         to do it.
835
836         No new tests, no behavior changes.
837
838         * html/FormAssociatedElement.h:
839         * html/HTMLFormControlElement.h:
840         * html/HTMLFormElement.cpp:
841         (WebCore::HTMLFormElement::submitImplicitly):
842         (WebCore::HTMLFormElement::validateInteractively):
843         (WebCore::HTMLFormElement::submit):
844         (WebCore::HTMLFormElement::reset):
845         (WebCore::HTMLFormElement::defaultButton):
846         (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
847         (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
848         * loader/FormSubmission.cpp:
849         (WebCore::FormSubmission::create):
850
851 2013-12-30  Anders Carlsson  <andersca@apple.com>
852
853         Replace yield() and pauseBriefly() with std::this_thread::yield()
854         https://bugs.webkit.org/show_bug.cgi?id=126105
855
856         Reviewed by Sam Weinig.
857
858         * platform/sql/SQLiteDatabase.cpp:
859         (WebCore::SQLiteDatabase::interrupt):
860
861 2013-12-30  Andreas Kling  <akling@apple.com>
862
863         Rename createRenderObject() to createRenderer().
864
865         Somewhat rubber-stamped by Antti Koivisto.
866
867 2013-12-30  Andreas Kling  <akling@apple.com>
868
869         Document should store its RenderView in a RenderPtr.
870         <https://webkit.org/b/126299>
871
872         Make Document::m_renderView a RenderPtr<RenderView> and remove one
873         manual destroy() call. Also removed the setRenderView() helper and
874         inlined it at the two call sites.
875
876         Reviewed by Antti Koivisto.
877
878 2013-12-30  Martin Robinson  <mrobinson@igalia.com>
879
880         [CMake] [GTK] Add support for GObject introspection
881         https://bugs.webkit.org/show_bug.cgi?id=126162
882
883         Reviewed by Daniel Bates.
884
885         * PlatformGTK.cmake: Build a list of WebKitDOM headers and expose it to the
886         parent scope of the build.
887
888 2013-12-30  Andreas Kling  <akling@apple.com>
889
890         Text::createTextRenderer() should return a RenderPtr.
891         <https://webkit.org/b/126292>
892
893         Make createTextRenderer() return a RenderPtr and remove one manual
894         destroy() call. Also, since it should always return a valid object,
895         I turned a null check into an assertion instead.
896
897         Reviewed by Antti Koivisto.
898
899 2013-12-30  Antti Koivisto  <antti@apple.com>
900
901         Remove attachChild
902         https://bugs.webkit.org/show_bug.cgi?id=126288
903
904         Reviewed by Andreas Kling.
905
906         * dom/ContainerNode.cpp:
907         (WebCore::destroyRenderTreeIfNeeded):
908         
909             Rename detachChild and move the tests here.
910
911         (WebCore::ContainerNode::takeAllChildrenFrom):
912         
913             No need to call attachRenderTree explicitly anymore.
914
915         (WebCore::ContainerNode::removeBetween):
916
917 2013-12-29  Andreas Kling  <akling@apple.com>
918
919         RenderLayer: Store corner and resizer renderers in RenderPtrs.
920         <https://webkit.org/b/126274>
921
922         Turn RenderLayer::m_scrollCorner and m_resizer into RenderPtrs.
923         Removed manual destroy() calls as appropriate. Also tweaked some
924         code to reduce nesting.
925
926         Reviewed by Anders Carlsson.
927
928 2013-12-30  Antti Koivisto  <antti@apple.com>
929
930         XML document builder should create render tree asynchronously
931         https://bugs.webkit.org/show_bug.cgi?id=126285
932
933         Reviewed by Andreas Kling.
934         
935         Stop creating renderers explicitly. 
936         Fix SVG <use> element to not rely on parse time render tree construction.
937
938         * svg/SVGUseElement.cpp:
939         (WebCore::SVGUseElement::svgAttributeChanged):
940         
941             Remove renderer check, we may not have created the render tree yet.
942
943         (WebCore::SVGUseElement::willAttachRenderers):
944         
945             Switch to willAttachRenderers from willRecalcStyle. The latter is only called as long as style
946             recalc doesn't start creating new renderers.
947
948         (WebCore::SVGUseElement::invalidateShadowTree):
949         
950             Remove renderer check, we may not have created the render tree yet. 
951             Invalidate with ReconstructRenderTree so willAttachRenderers will always get called.
952
953         * svg/SVGUseElement.h:
954         * xml/parser/XMLDocumentParser.cpp:
955         (WebCore::XMLDocumentParser::exitText):
956         * xml/parser/XMLDocumentParserLibxml2.cpp:
957         (WebCore::XMLDocumentParser::startElementNs):
958         (WebCore::XMLDocumentParser::cdataBlock):
959         
960             Remove explicit call to attachRenderTree. The render tree will be created lazily.
961
962 2013-12-29  Joone Hur  <joone.hur@intel.com>
963
964         Reverted r156742. The same fix was reverted from Blink due to heap-use-after-free on ClusterFuzz.
965         https://bugs.webkit.org/show_bug.cgi?id=126275
966
967         https://codereview.chromium.org/102993011
968
969         Reviewed by Darin Adler.
970
971         * rendering/RenderBlock.cpp:
972         (WebCore::RenderBlock::updateFirstLetter):
973
974 2013-12-29  ChangSeok Oh  <changseok.oh@collabora.com>
975
976         Remove unused functions in GraphicsContext3D.cpp
977         https://bugs.webkit.org/show_bug.cgi?id=126265
978
979         Reviewed by Andreas Kling.
980
981         platformGraphicsContext3D, platformTexture and platformLayer in GC3D.cpp
982         seem not used by any ports.
983
984         No new tests, no functionality changed.
985
986         * platform/graphics/GraphicsContext3D.cpp:
987
988 2013-12-29  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
989
990         Fix build error on 64bit debug build.
991         https://bugs.webkit.org/show_bug.cgi?id=126248
992
993         r161076 used ‘%lli’(for long long int) for int64_t(aka long int).
994         However, in a 64bit compile, int64_t is 'long int', not a 'long long int'.
995         To support 32bit and 64bit, we use static_cast<long long>.
996
997         * Modules/indexeddb/IDBTransactionBackend.cpp:
998         (WebCore::IDBTransactionBackend::commit):
999
1000 2013-12-29  Antti Koivisto  <antti@apple.com>
1001
1002         Remove some accidental commented out code.
1003
1004         * testing/Internals.cpp:
1005         (WebCore::Internals::mallocStatistics):
1006
1007 2013-12-29  Antti Koivisto  <antti@apple.com>
1008
1009         Fix build.
1010
1011         * xml/parser/XMLDocumentParser.cpp:
1012
1013 2013-12-29  Antti Koivisto  <antti@apple.com>
1014
1015         Remove Node::attached()
1016         https://bugs.webkit.org/show_bug.cgi?id=126276
1017
1018         Reviewed by Sam Weinig.
1019
1020         Node::attached() is poorly defined. Replace it with renderer() and inRenderedDocument() tests as appropriate.
1021         
1022         Also remove some unnecessary explicit attachRenderTree/detachRenderTree calls from the tree builders.
1023
1024 2013-12-29  Andreas Kling  <akling@apple.com>
1025
1026         RenderLayer: Store reflection renderer in a RenderPtr.
1027         <https://webkit.org/b/126273>
1028
1029         Reviewed by Anders Carlsson.
1030
1031         * rendering/RenderLayer.h:
1032         * rendering/RenderLayer.cpp:
1033         (WebCore::RenderLayer::RenderLayer):
1034         (WebCore::RenderLayer::calculateClipRects):
1035
1036             Turn RenderLayer::m_reflection into a RenderPtr<RenderReplica>
1037             instead of a raw pointer.
1038
1039         * WebCore.xcodeproj/project.pbxproj:
1040
1041             Add RenderPtr.h to private headers.
1042
1043 2013-12-28  Andreas Kling  <akling@apple.com>
1044
1045         Add an owning smart pointer for RenderObjects and start using it.
1046         <https://webkit.org/b/126251>
1047
1048         This patch adds a RenderPtr pointer, essentially an OwnPtr for
1049         RenderObjects. The difference is that RenderPtr destroys the object
1050         by calling destroy() on it.
1051
1052         This is necessary to implement the willBeDestroyed() mechanism in
1053         RenderObject that notifies renderers just before they are about to
1054         be deleted, while they can still do tree traversal, etc.
1055
1056         I also added a make_unique-alike helper so you can write:
1057
1058             auto renderer = createRenderObject<RenderImage>(...);
1059
1060         Put it all to use by making ContentData::createRenderer() return
1061         RenderPtr<RenderObject> instead of raw RenderObject*.
1062
1063         Reviewed by Antti Koivisto.
1064
1065 2013-12-28  Benjamin Poulain  <benjamin@webkit.org>
1066
1067         Add a missing include path for GTK
1068         https://bugs.webkit.org/show_bug.cgi?id=126257
1069
1070         Reviewed by Philippe Normand.
1071
1072         * GNUmakefile.am:
1073
1074 2013-12-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1075
1076         Unreviewed. Update GObject DOM symbols file after r160733.
1077
1078         * bindings/gobject/webkitdom.symbols:
1079
1080 2013-12-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1081
1082         [GTK] Downloads are broken with the network process enabled
1083         https://bugs.webkit.org/show_bug.cgi?id=126131
1084
1085         Reviewed by Martin Robinson.
1086
1087         The problem is that the network process crashes when trying to
1088         convert the handle to a download, because at that point the
1089         download has finished and the handle is NULL. This happens because
1090         we are not implementing ResourceHandle::continueDidReceiveResponse().
1091
1092         * platform/network/soup/ResourceHandleSoup.cpp:
1093         (WebCore::nextMultipartResponsePartCallback): Call
1094         continueAfterDidReceiveResponse() when not using async callbacks.
1095         (WebCore::sendRequestCallback): Ditto.
1096         (WebCore::continueAfterDidReceiveResponse): Helper function that
1097         continues the load after didReceiveResponse.
1098         (WebCore::ResourceHandle::continueDidReceiveResponse): Call
1099         continueAfterDidReceiveResponse().
1100
1101 2013-12-27  Daniel Bates  <dabates@apple.com>
1102
1103         Another attempt to fix the Windows build after <http://trac.webkit.org/changeset/161106>
1104         (https://bugs.webkit.org/show_bug.cgi?id=126180)
1105
1106         * WebCore.vcxproj/WebCore.vcxproj.filters: Add files platform/audio/{AudioSession, AudioSessionListener}.h
1107         * WebCore.vcxproj/WebCoreCommon.props: Add directory WebCore/platform/audio to the list of
1108         include directories.
1109
1110 2013-12-27  Daniel Bates  <dabates@apple.com>
1111
1112         Attempt to fix the Windows build after <http://trac.webkit.org/changeset/161106>
1113         (https://bugs.webkit.org/show_bug.cgi?id=126180)
1114
1115         Add files platform/audio/AudioSession.{cpp, h} and platform/audio/AudioSessionListener.h
1116         to the Visual Studio project. Note, the contents of these files are guarded by USE(AUDIO_SESSION),
1117         which is only enabled on Mac and iOS at the time of writing.
1118
1119         I thought to try this approach to fix the build so as to avoid adding an extraneous
1120         USE(AUDIO_SESSION)-guard around the #include "AudioSession.h" in Settings.cpp since
1121         the contents of the file AudioSession.h is guarded by USE(AUDIO_SESSION).
1122
1123         * WebCore.vcxproj/WebCore.vcxproj:
1124
1125 2013-12-27  Daniel Bates  <dabates@apple.com>
1126
1127         [iOS] Upstream WebCore/page changes
1128         https://bugs.webkit.org/show_bug.cgi?id=126180
1129
1130         Reviewed by Darin Adler.
1131
1132         * WebCore.xcodeproj/project.pbxproj:
1133         * dom/EventNames.h:
1134         (WebCore::EventNames::isGestureEventType): Added.
1135         * page/AlternativeTextClient.h: Do not define WTF_USE_DICTATION_ALTERNATIVES when building for iOS.
1136         * page/Chrome.cpp:
1137         (WebCore::Chrome::Chrome):
1138         (WebCore::Chrome::dispatchViewportPropertiesDidChange): Added; guarded by PLATFORM(IOS).
1139         (WebCore::Chrome::setCursor): Make this an empty function when building for iOS.
1140         (WebCore::Chrome::setCursorHiddenUntilMouseMoves): Ditto.
1141         (WebCore::Chrome::didReceiveDocType): Added; iOS-specific.
1142         * page/Chrome.h:
1143         (WebCore::Chrome::setDispatchViewportDataDidChangeSuppressed): Added; guarded by PLATFORM(IOS).
1144         * page/ChromeClient.h:
1145         (WebCore::ChromeClient::didFlushCompositingLayers): Added; guarded by PLATFORM(IOS).
1146         (WebCore::ChromeClient::fetchCustomFixedPositionLayoutRect): Added; guarded by PLATFORM(IOS).
1147         (WebCore::ChromeClient::updateViewportConstrainedLayers): Added; guarded by PLATFORM(IOS).
1148         * page/DOMTimer.cpp:
1149         (WebCore::DOMTimer::install): Added iOS-specific code.
1150         (WebCore::DOMTimer::fired): Ditto.
1151         * page/DOMWindow.cpp:
1152         (WebCore::DOMWindow::DOMWindow): Ditto.
1153         (WebCore::DOMWindow::innerHeight): Ditto.
1154         (WebCore::DOMWindow::innerWidth): Ditto.
1155         (WebCore::DOMWindow::scrollX): Ditto.
1156         (WebCore::DOMWindow::scrollY): Ditto.
1157         (WebCore::DOMWindow::scrollBy): Ditto.
1158         (WebCore::DOMWindow::scrollTo): Ditto.
1159         (WebCore::DOMWindow::clearTimeout): Ditto.
1160         (WebCore::DOMWindow::addEventListener): Ditto.
1161         (WebCore::DOMWindow::incrementScrollEventListenersCount): Added; guarded by PLATFORM(IOS).
1162         (WebCore::DOMWindow::decrementScrollEventListenersCount): Added; guarded by PLATFORM(IOS).
1163         (WebCore::DOMWindow::resetAllGeolocationPermission): Added; Also added FIXME comment.
1164         (WebCore::DOMWindow::removeEventListener): Added iOS-specific code.
1165         (WebCore::DOMWindow::dispatchEvent): Modified to prevent dispatching duplicate pageshow and pagehide
1166         events per <http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-pageshow>.
1167         (WebCore::DOMWindow::removeAllEventListeners): Added iOS-specific code.
1168         * page/DOMWindow.h:
1169         * page/DOMWindow.idl: Added IOS_GESTURE_EVENTS-guarded attributes: ongesture{change, end, start}. Also
1170         added IOS_TOUCH_EVENTS-guarded attributes: {Touch, TouchList}Constructor.
1171         * page/EditorClient.h:
1172         * page/EventHandler.cpp:
1173         (WebCore::EventHandler::EventHandler): Added iOS-specific code.
1174         (WebCore::EventHandler::clear): Ditto.
1175         (WebCore::EventHandler::startPanScrolling): Make this an empty function when building for iOS.
1176         (WebCore::EventHandler::handleMousePressEvent): Modified to invalidate a click when the clicked node is
1177         null. Also, opt out of code for updating the scrollbars as UIKit manages scrollbars on iOS.
1178         (WebCore::EventHandler::handleMouseMoveEvent): Opt of code for updating the scrollbars and cursor when building on iOS.
1179         (WebCore::hitTestResultInFrame): Made this a file-local static function since it's only used in EventHandler.cpp.
1180         (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled): Added iOS-specific code.
1181         * page/EventHandler.h:
1182         * page/FocusController.h:
1183         * page/Frame.cpp:
1184         (WebCore::Frame::Frame): Added iOS-specific code.
1185         (WebCore::Frame::scrollOverflowLayer): Added; iOS-specific.
1186         (WebCore::Frame::overflowAutoScrollTimerFired): Added; iOS-specific.
1187         (WebCore::Frame::startOverflowAutoScroll): Added; iOS-specific.
1188         (WebCore::Frame::checkOverflowScroll): Added; iOS-specific.
1189         (WebCore::Frame::willDetachPage): Added iOS-specific code.
1190         (WebCore::Frame::createView): Ditto.
1191         (WebCore::Frame::setSelectionChangeCallbacksDisabled): Added; iOS-specific.
1192         (WebCore::Frame::selectionChangeCallbacksDisabled): Added; iOS-specific.
1193         * page/Frame.h:
1194         (WebCore::Frame::timersPaused): Added; guarded by PLATFORM(IOS).
1195         * page/FrameView.cpp:
1196         (WebCore::FrameView::FrameView): Added iOS-specific code.
1197         (WebCore::FrameView::clear): Ditto.
1198         (WebCore::FrameView::flushCompositingStateForThisFrame): Ditto.
1199         (WebCore::FrameView::graphicsLayerForPlatformWidget): Added.
1200         (WebCore::FrameView::scheduleLayerFlushAllowingThrottling): Added.
1201         (WebCore::FrameView::layout): Added iOS-specific code.
1202         (WebCore::countRenderedCharactersInRenderObjectWithThreshold): Added; helper function used by FrameView::renderedCharactersExceed().
1203         Also added FIXME comment.
1204         (WebCore::FrameView::renderedCharactersExceed): Added.
1205         (WebCore::FrameView::visibleContentsResized): Added iOS-specific code.
1206         (WebCore::FrameView::adjustTiledBackingCoverage): Ditto.
1207         (WebCore::FrameView::performPostLayoutTasks): Ditto.
1208         (WebCore::FrameView::sendResizeEventIfNeeded): Ditto.
1209         (WebCore::FrameView::paintContents): Added iOS-specific code. Also added FIXME comments.
1210         (WebCore::FrameView::setUseCustomFixedPositionLayoutRect): Added; iOS-specific.
1211         (WebCore::FrameView::setCustomFixedPositionLayoutRect): Added; iOS-specific.
1212         (WebCore::FrameView::updateFixedPositionLayoutRect): Added; iOS-specific.
1213         * page/FrameView.h:
1214         * page/Navigator.cpp:
1215         (WebCore::Navigator::standalone): Added; iOS-specific.
1216         * page/Navigator.h:
1217         * page/Navigator.idl: Added WTF_PLATFORM_IOS-guarded attribute: standalone. Also added FIXME comment.
1218         * page/NavigatorBase.cpp:
1219         (WebCore::NavigatorBase::platform): Added iOS-specific code.
1220         * page/Page.h:
1221         (WebCore::Page::hasCustomHTMLTokenizerTimeDelay): Added; guarded by PLATFORM(IOS). Also added FIXME comment
1222         to remove this method.
1223         (WebCore::Page::customHTMLTokenizerTimeDelay): Added; guarded by PLATFORM(IOS). Also added FIXME comment
1224         to remove this method.
1225         * page/PageGroup.cpp:
1226         (WebCore::PageGroup::removeVisitedLink): Added.
1227         * page/PageGroup.h:
1228         * page/Settings.cpp:
1229         (WebCore::Settings::Settings):
1230         (WebCore::Settings::setScriptEnabled): Added; guarded by PLATFORM(IOS).
1231         (WebCore::Settings::setStandalone): Added; guarded by PLATFORM(IOS).
1232         (WebCore::Settings::setAudioSessionCategoryOverride): Added; guarded by PLATFORM(IOS).
1233         (WebCore::Settings::audioSessionCategoryOverride): Added; guarded by PLATFORM(IOS).
1234         (WebCore::Settings::setNetworkDataUsageTrackingEnabled): Added; guarded by PLATFORM(IOS).
1235         (WebCore::Settings::networkDataUsageTrackingEnabled): Added; guarded by PLATFORM(IOS).
1236         (WebCore::sharedNetworkInterfaceNameGlobal): Added; guarded by PLATFORM(IOS).
1237         (WebCore::Settings::setNetworkInterfaceName): Added; guarded by PLATFORM(IOS).
1238         (WebCore::Settings::networkInterfaceName): Added; guarded by PLATFORM(IOS).
1239         * page/Settings.h:
1240         (WebCore::Settings::setMaxParseDuration): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
1241         (WebCore::Settings::maxParseDuration): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
1242         (WebCore::Settings::standalone): Added; guarded by PLATFORM(IOS).
1243         (WebCore::Settings::setTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
1244         (WebCore::Settings::telephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
1245         (WebCore::Settings::setMediaDataLoadsAutomatically): Added; guarded by PLATFORM(IOS).
1246         (WebCore::Settings::mediaDataLoadsAutomatically): Added; guarded by PLATFORM(IOS).
1247         (WebCore::Settings::setShouldTransformsAffectOverflow): Added; guarded by PLATFORM(IOS).
1248         (WebCore::Settings::shouldTransformsAffectOverflow): Added; guarded by PLATFORM(IOS).
1249         (WebCore::Settings::setShouldDispatchJavaScriptWindowOnErrorEvents): Added; guarded by PLATFORM(IOS).
1250         (WebCore::Settings::shouldDispatchJavaScriptWindowOnErrorEvents): Added; guarded by PLATFORM(IOS).
1251         (WebCore::Settings::setAlwaysUseBaselineOfPrimaryFont): Added; guarded by PLATFORM(IOS).
1252         (WebCore::Settings::alwaysUseBaselineOfPrimaryFont): Added; guarded by PLATFORM(IOS).
1253         (WebCore::Settings::setAlwaysUseAcceleratedOverflowScroll): Added; guarded by PLATFORM(IOS).
1254         (WebCore::Settings::alwaysUseAcceleratedOverflowScroll): Added; guarded by PLATFORM(IOS).
1255         * page/Settings.in: Added IOS_AIRPLAY-guarded setting: mediaPlaybackAllowsAirPlay.
1256         * page/animation/CSSPropertyAnimation.cpp:
1257         (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Added iOS-specific code and FIXME comment.
1258         * page/ios/EventHandlerIOS.mm: Added.
1259         * page/ios/FrameIOS.mm: Added.
1260         * page/mac/ChromeMac.mm:
1261         * page/mac/PageMac.cpp:
1262         (WebCore::Page::addSchedulePair): Opt out of code when building for iOS.
1263         (WebCore::Page::removeSchedulePair): Ditto.
1264         * page/mac/SettingsMac.mm:
1265         (WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault): Added iOS-specific code.
1266         * page/mac/WebCoreFrameView.h:
1267
1268 2013-12-27  Gavin Barraclough  <barraclough@apple.com>
1269
1270         Merge PageVisibilityState & ViewState::IsVisible in WebKit2
1271         https://bugs.webkit.org/show_bug.cgi?id=126214
1272
1273         Reviewed by Alexey Proskuryakov.
1274
1275         WebKit2 redundantly tracks the visibility of the view through two mechanisms - the visibility
1276         state, and the view state. Remove visibility state from the WebKit2 layer. The visibility
1277         state also tracks the prerender state - so split this out and handle it separately (a change
1278         we should make in WebCore, too).
1279
1280         WebCore - changes the API tests exposed a bug, a view should only ever come out of the
1281         prerender state when it becomes visible - redundant notifications that the view is still
1282         hidden should be ignored.
1283
1284         * page/Page.cpp:
1285         (WebCore::Page::setVisibilityState):
1286             - ignore visibility state change to hidden, if the current state is prerender.
1287
1288 2013-12-27  Joseph Pecoraro  <pecoraro@apple.com>
1289
1290         Unreviewed Windows build fix for r160946.
1291
1292         Add another file to the Windows InspectorAllInOne.cpp.
1293
1294         * inspector/InspectorAllInOne.cpp:
1295
1296 2013-12-27  Commit Queue  <commit-queue@webkit.org>
1297
1298         Unreviewed, rolling out r161096.
1299         http://trac.webkit.org/changeset/161096
1300         https://bugs.webkit.org/show_bug.cgi?id=126256
1301
1302         Made lots of tests crash (Requested by ap on #webkit).
1303
1304         * dom/ContainerNode.cpp:
1305         (WebCore::ContainerNode::insertBefore):
1306         (WebCore::ContainerNode::replaceChild):
1307         (WebCore::willRemoveChildren):
1308         (WebCore::ContainerNode::appendChild):
1309         * dom/Document.cpp:
1310         (WebCore::Document::visibilityStateChanged):
1311         (WebCore::Document::moveNodeIteratorsToNewDocument):
1312         (WebCore::Document::updateRangesAfterChildrenChanged):
1313         (WebCore::Document::nodeChildrenWillBeRemoved):
1314         (WebCore::Document::nodeWillBeRemoved):
1315         (WebCore::Document::textInserted):
1316         (WebCore::Document::textRemoved):
1317         (WebCore::Document::textNodesMerged):
1318         (WebCore::Document::textNodeSplit):
1319         (WebCore::Document::documentWillSuspendForPageCache):
1320         (WebCore::Document::documentDidResumeFromPageCache):
1321         (WebCore::Document::mediaVolumeDidChange):
1322         (WebCore::Document::privateBrowsingStateDidChange):
1323         (WebCore::Document::captionPreferencesChanged):
1324         (WebCore::Document::validateAutoSizingNodes):
1325         (WebCore::Document::resetAutoSizingNodes):
1326         (WebCore::Document::webkitExitFullscreen):
1327         * dom/MutationObserver.cpp:
1328         (WebCore::MutationObserver::disconnect):
1329         (WebCore::MutationObserver::getObservedNodes):
1330         (WebCore::MutationObserver::deliver):
1331         * dom/MutationObserverInterestGroup.cpp:
1332         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
1333         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
1334         * dom/MutationObserverRegistration.cpp:
1335         (WebCore::MutationObserverRegistration::clearTransientRegistrations):
1336         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
1337         * dom/Node.cpp:
1338         (WebCore::Node::dumpStatistics):
1339         (WebCore::Document::invalidateNodeListAndCollectionCaches):
1340         (WebCore::NodeListsNodeData::invalidateCaches):
1341         (WebCore::Node::didMoveToNewDocument):
1342         (WebCore::collectMatchingObserversForMutation):
1343         (WebCore::Node::notifyMutationObserversNodeWillDetach):
1344         * dom/NodeRareData.h:
1345         (WebCore::NodeListsNodeData::adoptDocument):
1346         * dom/ScriptExecutionContext.cpp:
1347         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
1348         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
1349         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
1350         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
1351         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
1352         (WebCore::ScriptExecutionContext::closeMessagePorts):
1353         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
1354         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
1355         * dom/WebKitNamedFlow.cpp:
1356         (WebCore::WebKitNamedFlow::getRegionsByContent):
1357         (WebCore::WebKitNamedFlow::getRegions):
1358         (WebCore::WebKitNamedFlow::getContent):
1359
1360 2013-12-26  Sam Weinig  <sam@webkit.org>
1361
1362         Convert some of WebCore/dom over to range-for loops
1363         https://bugs.webkit.org/show_bug.cgi?id=126250
1364
1365         Reviewed by Andreas Kling.
1366
1367         * dom/ContainerNode.cpp:
1368         * dom/Document.cpp:
1369         * dom/MutationObserver.cpp:
1370         * dom/MutationObserverInterestGroup.cpp:
1371         * dom/MutationObserverRegistration.cpp:
1372         * dom/Node.cpp:
1373         * dom/NodeRareData.h:
1374         * dom/ScriptExecutionContext.cpp:
1375         * dom/WebKitNamedFlow.cpp:
1376
1377 2013-12-26  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1378
1379         [Nix] Cleanup Source/WebCore/PlatformNix.cmake
1380         https://bugs.webkit.org/show_bug.cgi?id=126226
1381
1382         Reviewed by Csaba Osztrogonác.
1383
1384         No new tests needed.
1385
1386         * PlatformNix.cmake:
1387
1388 2013-12-26  Joseph Pecoraro  <pecoraro@apple.com>
1389
1390         Unreviewed attempt at Windows build fix.
1391
1392         I think Window's "AllInOne.cpp" is causing a using namespace JSC
1393         to cause naming conflicts between Inspector::TypeBuilder::Debugger::types
1394         and JSC::types. So removing the ambiguity.
1395
1396         * inspector/InjectedScript.cpp:
1397         (WebCore::InjectedScript::getProperties):
1398         (WebCore::InjectedScript::wrapCallFrames):
1399
1400 2013-12-22  Andreas Kling  <akling@apple.com>
1401
1402         Make Text::createTextRenderer() take a const RenderStyle&.
1403         <https://webkit.org/b/126136>
1404
1405         Nuke a FIXME about constifying a RenderStyle& local.
1406
1407         Reviewed by Anders Carlsson.
1408
1409 2013-12-22  Andreas Kling  <akling@apple.com>
1410
1411         Move more inlines from RenderObject to RenderElement.
1412         <https://webkit.org/b/126134>
1413
1414         Lift some inline functions that use style() from RenderObject over
1415         to RenderElement, making them branchless.
1416
1417         Reviewed by Anders Carlsson.
1418
1419 2013-12-26  ChangSeok Oh  <changseok.oh@collabora.com>
1420
1421         Unreviewed build fix after r159526.
1422         isBoxValue is used at out of ENABLE_CSS_SHAPES gaurd. It causes a compile failure.
1423         So I moved isBoxValue to out side of ENABLE_CSS_SHAPES.
1424
1425         * css/CSSParser.cpp:
1426
1427 2013-12-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1428
1429         Set m_pos as private in InlineIterator, and use getter and setter functions.
1430         https://bugs.webkit.org/show_bug.cgi?id=125614
1431
1432         Reviewed by Alexey Proskuryakov.
1433
1434         InlineIterator has been exported m_pos as public directly though it is member variable.
1435         This patch set it as private, and add getter/setter functions for it.
1436
1437         No new tests, no behavior changes.
1438
1439         * rendering/InlineIterator.h:
1440         (WebCore::InlineIterator::setOffset):
1441         (WebCore::operator==):
1442         (WebCore::operator!=):
1443         (WebCore::InlineBidiResolver::appendRun):
1444         * rendering/RenderBlockLineLayout.cpp:
1445         (WebCore::RenderBlockFlow::appendRunsForObject):
1446         (WebCore::constructBidiRunsForLine):
1447         (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
1448         (WebCore::RenderBlockFlow::matchedEndLine):
1449         (WebCore::LineBreaker::nextSegmentBreak):
1450         * rendering/line/BreakingContextInlineHeaders.h:
1451         (WebCore::BreakingContext::handleBR):
1452         (WebCore::BreakingContext::handleFloat):
1453         (WebCore::iteratorIsBeyondEndOfRenderCombineText):
1454         (WebCore::ensureCharacterGetsLineBox):
1455         (WebCore::BreakingContext::handleText):
1456         (WebCore::checkMidpoints):
1457         (WebCore::BreakingContext::handleEndOfLine):
1458         * rendering/line/TrailingObjects.cpp:
1459         (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
1460
1461 2013-12-25  Kim Byung Jun  <bj1987.kim@samsung.com>
1462
1463         [EFL] Delete file.edc and file_*.png.
1464         https://bugs.webkit.org/show_bug.cgi?id=125134
1465
1466         Reviewed by Gyuyoung Kim.
1467
1468         File_theme uses button form.
1469
1470         * platform/efl/DefaultTheme/CMakeLists.txt:
1471         * platform/efl/DefaultTheme/default.edc:
1472         * platform/efl/DefaultTheme/widget/file/file.edc: Removed.
1473         * platform/efl/DefaultTheme/widget/file/file_focus.png: Removed.
1474         * platform/efl/DefaultTheme/widget/file/file_hover.png: Removed.
1475         * platform/efl/DefaultTheme/widget/file/file_normal.png: Removed.
1476         * platform/efl/DefaultTheme/widget/file/file_press.png: Removed.
1477
1478 2013-12-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1479
1480         [Nix] Adding createDragImageIconForCachedImageFilename method to DragImageNix
1481         https://bugs.webkit.org/show_bug.cgi?id=126230
1482
1483         Reviewed by Daniel Bates.
1484
1485         Also returning nullptr in other functions that were returning 0 as a pointer.
1486
1487         * platform/nix/DragImageNix.cpp:
1488         (WebCore::createDragImageFromImage):
1489         (WebCore::createDragImageIconForCachedImage):
1490         (WebCore::createDragImageIconForCachedImageFilename):
1491
1492 2013-12-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1493
1494         [Nix] Fixing DragData::asFragment signature in DragDataNix.cpp
1495         https://bugs.webkit.org/show_bug.cgi?id=126229
1496
1497         Reviewed by Daniel Bates.
1498
1499         * platform/nix/DragDataNix.cpp:
1500         (WebCore::DragData::asFragment):
1501
1502 2013-12-25  Commit Queue  <commit-queue@webkit.org>
1503
1504         Unreviewed, rolling out r161033 and r161074.
1505         http://trac.webkit.org/changeset/161033
1506         http://trac.webkit.org/changeset/161074
1507         https://bugs.webkit.org/show_bug.cgi?id=126240
1508
1509         Oliver says that a rollout would be better (Requested by ap on
1510         #webkit).
1511
1512         * bindings/js/JSDOMWindowCustom.cpp:
1513         (WebCore::JSDOMWindow::put):
1514         * bindings/objc/WebScriptObject.mm:
1515         (-[WebScriptObject setValue:forKey:]):
1516         * bindings/scripts/CodeGeneratorJS.pm:
1517         (GenerateImplementation):
1518         * bindings/scripts/test/JS/JSTestInterface.cpp:
1519         (WebCore::JSTestInterface::putByIndex):
1520         * bridge/NP_jsobject.cpp:
1521         (_NPN_SetProperty):
1522
1523 2013-12-25  Brady Eidson  <beidson@apple.com>
1524
1525         DatabaseProcess: Implement version changing
1526         https://bugs.webkit.org/show_bug.cgi?id=126099
1527
1528         Reviewed by Sam Weinig.
1529
1530         No new tests (No change in WebCore behavior).
1531
1532         * Modules/indexeddb/IDBTransactionBackend.cpp:
1533         (WebCore::IDBTransactionBackend::commit): Update some logging.
1534
1535         * Modules/indexeddb/IDBTransactionBackendOperations.cpp:
1536         (WebCore::IDBDatabaseBackend::VersionChangeOperation::perform): Move some things that used to be in
1537           IDBServerConnectionLevelDB::changeDatabaseVersion to this cross-platform location.
1538         * Modules/indexeddb/IDBTransactionBackendOperations.h:
1539         (WebCore::IDBDatabaseBackend::VersionChangeOperation::transaction):
1540
1541         * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
1542         (WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion): Move the actual updating of the database backend
1543           metadata to the VersionChangeOperation.
1544
1545 2013-12-25  Martin Robinson  <mrobinson@igalia.com>
1546
1547         [GTK] [CMake] Clean up generated sources directories
1548         https://bugs.webkit.org/show_bug.cgi?id=126216
1549
1550         Reviewed by Gustavo Noronha Silva.
1551
1552         * PlatformGTK.cmake: Use the new directory variables.
1553
1554 2013-12-25  Dirk Schulze  <krit@webkit.org>
1555
1556         Support <box> values parsing on 'clip-path' property
1557         https://bugs.webkit.org/show_bug.cgi?id=126147
1558
1559         Reviewed by Ryosuke Niwa.
1560
1561         Support parsing of the background reference boxes, margin-box and bounding-box.
1562         A box will be a reference box and define the origin for a basic shape.
1563         If no basic shape is specified, the box defines the clipping path itself.
1564         The specification text follows the changes to CSS Shapes now.
1565
1566         https://dvcs.w3.org/hg/FXTF/raw-file/3f213145303e/css-masking-1/index.html#the-clip-path
1567
1568         Existing parsing test have been extended to test box values as well.
1569
1570         * css/CSSParser.cpp:
1571         (WebCore::CSSParser::parseValue):
1572         (WebCore::CSSParser::parseClipPath):
1573         * css/CSSParser.h:
1574         * css/CSSValueKeywords.in:
1575         * css/DeprecatedStyleBuilder.cpp:
1576         (WebCore::ApplyPropertyClipPath::applyValue):
1577
1578 2013-12-25  David Kilzer  <ddkilzer@apple.com>
1579
1580         [iOS] Upstream WebCore/pdf changes
1581         http://webkit.org/b/126097
1582
1583         Reviewed by Sam Weinig.
1584
1585         * WebCore.xcodeproj/project.pbxproj: Added files to project.
1586         * pdf/ios/PDFDocument.cpp: Added.
1587         (WebCore::PDFDocumentParser::create):
1588         (WebCore::PDFDocumentParser::document):
1589         (WebCore::PDFDocumentParser::PDFDocumentParser):
1590         (WebCore::PDFDocument::createParser):
1591         * pdf/ios/PDFDocument.h: Added.
1592         (WebCore::PDFDocument::create):
1593         (WebCore::PDFDocument::PDFDocument):
1594
1595 2013-12-24  Commit Queue  <commit-queue@webkit.org>
1596
1597         Unreviewed, rolling out r160959.
1598         http://trac.webkit.org/changeset/160959
1599         https://bugs.webkit.org/show_bug.cgi?id=126222
1600
1601         Caused Windows build to fail (Requested by rfong on #webkit).
1602
1603         * platform/sql/SQLiteDatabase.cpp:
1604         (WebCore::SQLiteDatabase::interrupt):
1605
1606 2013-12-24  Ryosuke Niwa  <rniwa@webkit.org>
1607
1608         Unreviewed, rolling out r161051.
1609         http://trac.webkit.org/changeset/161051
1610         https://bugs.webkit.org/show_bug.cgi?id=45994
1611
1612         Caused two DFG tests to hit assertions due to a separate bug
1613
1614         * xml/XMLHttpRequest.cpp:
1615         (WebCore::XMLHttpRequest::status):
1616         (WebCore::XMLHttpRequest::statusText):
1617         * xml/XMLHttpRequest.h:
1618         * xml/XMLHttpRequest.idl:
1619
1620 2013-12-24  Mihnea Ovidenie  <mihnea@adobe.com>
1621
1622         [CSSRegions] Crash while repainting an invalid region
1623         https://bugs.webkit.org/show_bug.cgi?id=126152
1624
1625         Reviewed by Daniel Bates.
1626
1627         An invalid region, part of a dependency cycle, should not attempt to repaint content from
1628         its associated named flow, otherwise there may be the case of an infinite repaint cycle,
1629         resulting in a crash due to a stack overflow.
1630
1631         Test: fast/regions/repaint/invalid-region-repaint-crash.html
1632
1633         * rendering/RenderLayer.cpp:
1634         (WebCore::RenderLayer::repaintIncludingDescendants):
1635
1636 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
1637
1638         XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
1639         https://bugs.webkit.org/show_bug.cgi?id=45994
1640
1641         Reviewed by Alexey Proskuryakov.
1642
1643         Merged https://chromium.googlesource.com/chromium/blink/+/23c90460de16e04c5aba7ed942fba76cb79fdb9b.
1644
1645         Latest XHR spec says that XHR should return 0 and an empty string when it's in UNSENT or OPENED state
1646         or error flag is set: http://www.w3.org/TR/2012/WD-XMLHttpRequest-20121206/#the-status-attribute
1647
1648         * xml/XMLHttpRequest.cpp:
1649         (WebCore::XMLHttpRequest::status):
1650         (WebCore::XMLHttpRequest::statusText):
1651         * xml/XMLHttpRequest.h:
1652         * xml/XMLHttpRequest.idl:
1653
1654 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
1655
1656         Crash in ReplaceSelectionCommand
1657         https://bugs.webkit.org/show_bug.cgi?id=126107
1658
1659         Reviewed by Benjamin Poulain.
1660
1661         Merge https://chromium.googlesource.com/chromium/blink/+/c1ebe5c1e808daf9db5e348a8d0ab32570b9f7a5
1662         except the test since it doesn't reproduce the crash in WebKit.
1663
1664         * editing/ReplaceSelectionCommand.cpp:
1665         (WebCore::ReplaceSelectionCommand::doApply):
1666
1667 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
1668
1669         Add the pseudo classes link and any-link to the Selector Code Generator
1670         https://bugs.webkit.org/show_bug.cgi?id=126196
1671
1672         Reviewed by Ryosuke Niwa.
1673
1674         * cssjit/SelectorCompiler.cpp:
1675         (WebCore::SelectorCompiler::addPseudoType):
1676         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1677         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLink):
1678         * dom/Node.h:
1679         (WebCore::Node::flagIsElement):
1680         (WebCore::Node::flagIsLink):
1681         Fix the type to match TrustedImm32.
1682
1683 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
1684
1685         Add the experimental CSS code generator files to the remaining build systems
1686         https://bugs.webkit.org/show_bug.cgi?id=126192
1687
1688         Reviewed by Sam Weinig.
1689
1690         * CMakeLists.txt:
1691         * GNUmakefile.list.am:
1692         * WebCore.vcxproj/WebCore.vcxproj:
1693         * WebCore.vcxproj/WebCore.vcxproj.filters:
1694
1695 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
1696
1697         Add the pseudo class :focus to the Selector Code Generator
1698         https://bugs.webkit.org/show_bug.cgi?id=126189
1699
1700         Reviewed by Ryosuke Niwa.
1701
1702         * cssjit/SelectorCompiler.cpp:
1703         (WebCore::SelectorCompiler::addPseudoType):
1704         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
1705         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1706         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFocused):
1707
1708 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
1709
1710         Remove boolean argument from Element::setChildrenAffectBy* methods
1711         https://bugs.webkit.org/show_bug.cgi?id=126183
1712
1713         Reviewed by Daniel Bates.
1714
1715         Merge https://chromium.googlesource.com/chromium/blink/+/066ef2fa78336b2b65052cb17cb81b367fe7dbbf
1716
1717         These functions are never called with false.
1718
1719         * css/SelectorChecker.cpp:
1720         (WebCore::SelectorChecker::checkOne):
1721         * dom/Element.cpp:
1722         (WebCore::Element::setChildrenAffectedByActive):
1723         (WebCore::Element::setChildrenAffectedByDrag):
1724         * dom/Element.h:
1725         (WebCore::Element::setChildrenAffectedByHover):
1726
1727 2013-12-23  Tim Horton  <timothy_horton@apple.com>
1728
1729         Fix the iOS build after r161013 and r160672.
1730
1731         * WebCore.exp.in:
1732         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
1733         (PlatformCALayerMac::updateCustomAppearance):
1734
1735 2013-12-23  Oliver Hunt  <oliver@apple.com>
1736
1737         Refactor PutPropertySlot to be aware of custom properties
1738         https://bugs.webkit.org/show_bug.cgi?id=126187
1739
1740         Reviewed by msaboff.
1741
1742         Update the bindings code generation and custom objects
1743         to the new function signatures
1744
1745         * bindings/js/JSDOMWindowCustom.cpp:
1746         (WebCore::JSDOMWindow::put):
1747         * bindings/objc/WebScriptObject.mm:
1748         (-[WebScriptObject setValue:forKey:]):
1749         * bindings/scripts/CodeGeneratorJS.pm:
1750         (GenerateImplementation):
1751         * bindings/scripts/test/JS/JSTestInterface.cpp:
1752         (WebCore::JSTestInterface::putByIndex):
1753         * bridge/NP_jsobject.cpp:
1754         (_NPN_SetProperty):
1755
1756 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
1757
1758         Add class matching to the Selector Code Generator
1759         https://bugs.webkit.org/show_bug.cgi?id=126176
1760
1761         Reviewed by Antti Koivisto.
1762
1763         Add selector matching based on classname to the Selector Compiler.
1764
1765         * cssjit/SelectorCompiler.cpp:
1766         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
1767         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
1768         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasClasses):
1769         * dom/ElementData.h:
1770         (WebCore::ElementData::classNamesMemoryOffset):
1771         * dom/SpaceSplitString.h:
1772         (WebCore::SpaceSplitStringData::sizeMemoryOffset):
1773         (WebCore::SpaceSplitStringData::tokensMemoryOffset):
1774
1775 2013-12-23  Daniel Bates  <dabates@apple.com>
1776
1777         [iOS] Upstream WebCore/storage changes
1778         https://bugs.webkit.org/show_bug.cgi?id=125913
1779
1780         Reviewed by David Kilzer.
1781
1782         * storage/StorageAreaSync.cpp:
1783         (WebCore::StorageAreaSync::openDatabase): Added iOS-specific code.
1784         (WebCore::StorageAreaSync::sync): Ditto.
1785         * storage/StorageTracker.cpp:
1786         (WebCore::StorageTracker::openTrackerDatabase): Ditto.
1787         (WebCore::StorageTracker::syncImportOriginIdentifiers): Ditto.
1788         (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): Ditto.
1789         (WebCore::StorageTracker::syncSetOriginDetails): Ditto.
1790         (WebCore::StorageTracker::syncDeleteAllOrigins): Ditto.
1791         (WebCore::StorageTracker::syncDeleteOrigin): Ditto.
1792         (WebCore::StorageTracker::databasePathForOrigin): Ditto.
1793
1794 2013-12-23  Daniel Bates  <dabates@apple.com>
1795
1796         Fix the iOS build following <http://trac.webkit.org/changeset/160236>
1797         (https://bugs.webkit.org/show_bug.cgi?id=125239)
1798
1799         * rendering/RenderBlock.h:
1800         * rendering/RenderBox.cpp:
1801         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned): Substitute view() for &view().
1802         * rendering/RenderLayer.cpp:
1803         (WebCore::RenderLayer::scrollTo): Fix indentation of closing brace.
1804         * rendering/RenderLayerCompositor.cpp: Include MainFrame.h.
1805         (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles): Check that page->mainFrame().view()
1806         is non-null; also add explicit #else clause.
1807         (WebCore::RenderLayerCompositor::ensureRootLayer): Fix up main frame check.
1808         * rendering/RenderTheme.h:
1809         (WebCore::RenderTheme::paintFileUploadIconDecorations): Substitute rect for r.
1810         * rendering/RenderThemeIOS.mm:
1811         (WebCore::RenderThemeIOS::paintTextFieldDecorations): Use .get() to access underlying NeverDestroyed item.
1812         (WebCore::RenderThemeIOS::systemFont):
1813         * rendering/RenderView.cpp:
1814         (WebCore::fixedPositionOffset): Substitute frameView.scrollOffset() for frameView->scrollOffset().
1815
1816 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
1817
1818         Minor optimization in FrameSelection::setNonDirectionalSelectionIfNeeded()
1819         https://bugs.webkit.org/show_bug.cgi?id=126108
1820
1821         Reviewed by Benjamin Poulain.
1822
1823         Merge https://chromium.googlesource.com/chromium/blink/+/237b987c324e2e389a9e0350293bfaf16a5e201d
1824
1825         * editing/FrameSelection.cpp:
1826         (WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded):
1827
1828 2013-12-23  Ryosuke Niwa  <rniwa@webkit.org>
1829
1830         Use isDocumentFragment() instead of comparing nodeType() with Node::DOCUMENT_FRAGMENT_NODE
1831         https://bugs.webkit.org/show_bug.cgi?id=126178
1832
1833         Reviewed by Antti Koivisto.
1834
1835         Inspired by https://chromium.googlesource.com/chromium/blink/+/a622cb80af2bfb0c5d91123cbcfa4fa72a06554c
1836
1837         Use inline Node::isDocumentFragment() instead of virtual nodeType().
1838
1839         * dom/ContainerNode.cpp:
1840         (WebCore::collectChildrenAndRemoveFromOldParent):
1841         * dom/Document.cpp:
1842         (WebCore::Document::canReplaceChild):
1843
1844 2013-12-23  Gwang Yoon Hwang  <ryumiel@company100.net>
1845
1846         Clear ScratchBuffer::m_lastLayerSize when clearing the scratch buffer.
1847         https://bugs.webkit.org/show_bug.cgi?id=126150
1848
1849         Reviewed by Simon Fraser.
1850
1851         Since ScratchBuffer::clearScratchBuffer only clears m_lastRadius,
1852         ShadowBlur doesn't draw shadow into the re-created scratch buffer if it
1853         tries to draw shadow without blurRadius.
1854
1855         Clear m_lastLayerSize to empty is enought to ensure that there is no
1856         drawn contents in the scratch buffer.
1857
1858         No new tests due to the flaky nature of reproducing the issue.
1859
1860         * platform/graphics/ShadowBlur.cpp:
1861         (WebCore::ScratchBuffer::clearScratchBuffer):
1862
1863 2013-12-23  Benjamin Poulain  <benjamin@webkit.org>
1864
1865         Add id matching to the Selector Code Generator
1866         https://bugs.webkit.org/show_bug.cgi?id=126154
1867
1868         Reviewed by Antti Koivisto.
1869
1870         Compile matching for #id selectors. IDs are Atomic String so it is just a matter
1871         of comparing the pointers.
1872
1873         No attempt is made at optimizing for the double #id case because such problem
1874         do not really happen outside tests.
1875
1876         * cssjit/SelectorCompiler.cpp:
1877         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
1878         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
1879         (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
1880         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
1881         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
1882         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasId):
1883         * dom/Element.h:
1884         (WebCore::Element::elementDataMemoryOffset):
1885         * dom/ElementData.h:
1886         (WebCore::ElementData::idForStyleResolutionMemoryOffset):
1887
1888 2013-12-23  Oliver Hunt  <oliver@apple.com>
1889
1890         Update custom setter implementations to perform type checks
1891         https://bugs.webkit.org/show_bug.cgi?id=126171
1892
1893         Reviewed by Daniel Bates.
1894
1895         Update the bindings code generator for setters so that they perform a real
1896         type check.
1897
1898         * bindings/scripts/CodeGeneratorJS.pm:
1899         (GenerateAttributeEventListenerCall):
1900         (GenerateHeader):
1901         (GenerateImplementation):
1902         * bindings/scripts/test/JS/JSTestInterface.cpp:
1903         (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
1904         (WebCore::setJSTestInterfaceImplementsStr2):
1905         (WebCore::setJSTestInterfaceImplementsStr3):
1906         (WebCore::setJSTestInterfaceImplementsNode):
1907         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
1908         (WebCore::setJSTestInterfaceSupplementalStr2):
1909         (WebCore::setJSTestInterfaceSupplementalStr3):
1910         (WebCore::setJSTestInterfaceSupplementalNode):
1911         * bindings/scripts/test/JS/JSTestInterface.h:
1912         * bindings/scripts/test/JS/JSTestObj.cpp:
1913         (WebCore::setJSTestObjConstructorStaticStringAttr):
1914         (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
1915         (WebCore::setJSTestObjEnumAttr):
1916         (WebCore::setJSTestObjByteAttr):
1917         (WebCore::setJSTestObjOctetAttr):
1918         (WebCore::setJSTestObjShortAttr):
1919         (WebCore::setJSTestObjUnsignedShortAttr):
1920         (WebCore::setJSTestObjLongAttr):
1921         (WebCore::setJSTestObjLongLongAttr):
1922         (WebCore::setJSTestObjUnsignedLongLongAttr):
1923         (WebCore::setJSTestObjStringAttr):
1924         (WebCore::setJSTestObjTestObjAttr):
1925         (WebCore::setJSTestObjXMLObjAttr):
1926         (WebCore::setJSTestObjCreate):
1927         (WebCore::setJSTestObjReflectedStringAttr):
1928         (WebCore::setJSTestObjReflectedIntegralAttr):
1929         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
1930         (WebCore::setJSTestObjReflectedBooleanAttr):
1931         (WebCore::setJSTestObjReflectedURLAttr):
1932         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
1933         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
1934         (WebCore::setJSTestObjReflectedCustomURLAttr):
1935         (WebCore::setJSTestObjTypedArrayAttr):
1936         (WebCore::setJSTestObjAttrWithGetterException):
1937         (WebCore::setJSTestObjAttrWithSetterException):
1938         (WebCore::setJSTestObjStringAttrWithGetterException):
1939         (WebCore::setJSTestObjStringAttrWithSetterException):
1940         (WebCore::setJSTestObjCustomAttr):
1941         (WebCore::setJSTestObjWithScriptStateAttribute):
1942         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
1943         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
1944         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
1945         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
1946         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
1947         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
1948         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
1949         (WebCore::setJSTestObjConditionalAttr1):
1950         (WebCore::setJSTestObjConditionalAttr2):
1951         (WebCore::setJSTestObjConditionalAttr3):
1952         (WebCore::setJSTestObjConditionalAttr4Constructor):
1953         (WebCore::setJSTestObjConditionalAttr5Constructor):
1954         (WebCore::setJSTestObjConditionalAttr6Constructor):
1955         (WebCore::setJSTestObjAnyAttribute):
1956         (WebCore::setJSTestObjMutablePoint):
1957         (WebCore::setJSTestObjImmutablePoint):
1958         (WebCore::setJSTestObjStrawberry):
1959         (WebCore::setJSTestObjStrictFloat):
1960         (WebCore::setJSTestObjId):
1961         (WebCore::setJSTestObjReplaceableAttribute):
1962         (WebCore::setJSTestObjNullableLongSettableAttribute):
1963         (WebCore::setJSTestObjNullableStringValue):
1964         (WebCore::setJSTestObjAttributeWithReservedEnumType):
1965         * bindings/scripts/test/JS/JSTestObj.h:
1966         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1967         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
1968         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
1969         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1970         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
1971         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
1972         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
1973         (WebCore::setJSTestTypedefsAttrWithGetterException):
1974         (WebCore::setJSTestTypedefsAttrWithSetterException):
1975         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
1976         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
1977         * bindings/scripts/test/JS/JSTestTypedefs.h:
1978
1979 2013-12-23  Lucas Forschler  <lforschler@apple.com>
1980
1981         <rdar://problem/15682948> Update copyright strings
1982
1983         Reviewed by Dan Bernstein
1984
1985         * Info.plist:
1986
1987 2013-12-23  Commit Queue  <commit-queue@webkit.org>
1988
1989         Unreviewed, rolling out r160945.
1990         http://trac.webkit.org/changeset/160945
1991         https://bugs.webkit.org/show_bug.cgi?id=126164
1992
1993         Seems to have broken multiple canvas tests (Requested by ap on
1994         #webkit).
1995
1996         * WebCore.xcodeproj/project.pbxproj:
1997         * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Removed.
1998         * platform/graphics/cg/ImageBufferBackingStoreCache.h: Removed.
1999         * platform/graphics/cg/ImageBufferCG.cpp:
2000         (WebCore::createIOSurface):
2001         (WebCore::ImageBuffer::ImageBuffer):
2002         (WebCore::ImageBuffer::~ImageBuffer):
2003
2004 2013-12-23  Eric Carlson  <eric.carlson@apple.com>
2005
2006         AudioSessionManager should be MediaSessionManager
2007         https://bugs.webkit.org/show_bug.cgi?id=126087
2008
2009         Reviewed by Jer Noble.
2010
2011         No new tests, no change in functionality.
2012
2013         * WebCore.xcodeproj/project.pbxproj: Change file names.
2014
2015         * html/HTMLMediaElement.cpp:
2016         (WebCore::HTMLMediaElement::HTMLMediaElement): MediaSessionManagerToken::create() takes a client
2017             interface instead of the media type.
2018         * html/HTMLMediaElement.h:
2019
2020         * platform/audio/AudioSessionListener.h: Include <wtf/Noncopyable.h>.
2021         
2022         AudioSessionManager.* -> MediaSessionManager.*
2023         * platform/audio/AudioSessionManager.cpp: Removed.
2024         * platform/audio/AudioSessionManager.h: Removed.
2025         * platform/audio/MediaSessionManager.cpp: Copied from Source/WebCore/platform/audio/AudioSessionManager.cpp.
2026         (MediaSessionManagerToken::create):
2027         (MediaSessionManagerToken::MediaSessionManagerToken):
2028         (MediaSessionManagerToken::~MediaSessionManagerToken):
2029         (MediaSessionManager::sharedManager):
2030         (MediaSessionManager::MediaSessionManager):
2031         (MediaSessionManager::has):
2032         (MediaSessionManager::count):
2033         (MediaSessionManager::addToken):
2034         (MediaSessionManager::removeToken):
2035         (MediaSessionManager::updateSessionState):
2036         * platform/audio/MediaSessionManager.h: Copied from Source/WebCore/platform/audio/AudioSessionManager.h.
2037
2038         * platform/audio/mac/AudioDestinationMac.cpp:
2039         (WebCore::AudioDestinationMac::AudioDestinationMac): MediaSessionManagerToken::create() takes a
2040             client interface instead of the media type.
2041         * platform/audio/mac/AudioDestinationMac.h:
2042
2043         * platform/audio/mac/AudioSessionMac.cpp:
2044         * platform/audio/mac/AudioSessionManagerMac.cpp: Removed.
2045         * platform/audio/mac/MediaSessionManagerMac.cpp: Copied from Source/WebCore/platform/audio/mac/AudioSessionManagerMac.cpp.
2046         (MediaSessionManager::updateSessionState):
2047
2048 2013-12-23  Zan Dobersek  <zdobersek@igalia.com>
2049
2050         webkit gtk 2.2.3 stable tarball compilation error
2051         https://bugs.webkit.org/show_bug.cgi?id=125987
2052
2053         Reviewed by Gustavo Noronha Silva.
2054
2055         Only try including <gdk/gdkwayland.h> and using GDK_IS_WAYLAND_DISPLAY if the Wayland support has been
2056         enabled and when not compiling with GTK+ 2 (which occurs when building for libPlatformGtk2).
2057
2058         * platform/graphics/GLContext.cpp:
2059         (WebCore::GLContext::createContextForWindow):
2060
2061 2013-12-23  Piotr Grad  <p.grad@samsung.com>
2062
2063         [GStreamer] video/audio seeking is not unified.
2064         https://bugs.webkit.org/show_bug.cgi?id=125852
2065
2066         Reviewed by Philippe Normand.
2067
2068         This bug is fixing regression with seeking audio/video elements and unifies seeking
2069         in MediaPlayerPrivateGStreamer.
2070
2071         Test: media/video-seek-with-negative-playback.html
2072
2073         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2074         (WebCore::MediaPlayerPrivateGStreamer::seek):
2075         (WebCore::MediaPlayerPrivateGStreamer::seekIncludingRate):
2076         (WebCore::MediaPlayerPrivateGStreamer::setRate):
2077         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
2078         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2079
2080 2013-12-23  ChangSeok Oh  <changseok.oh@collabora.com>
2081
2082         [GTK][WK2] WebGL is not working with GLES
2083         https://bugs.webkit.org/show_bug.cgi?id=126138
2084
2085         Reviewed by Martin Robinson.
2086
2087         m_texture has been unnecessarily regenerated. It's generated in GraphicsContext3D
2088         constructor for offscreen rendering. And m_compositorTexture is used by only Mac port.
2089         They create it in their GraphicsContext3D constructor so that we don't need to recreate it
2090         in GC3DOpenGLES::reshapeFBOs.
2091
2092         No new tests since no functionality changed.
2093
2094         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
2095         (WebCore::GraphicsContext3D::~GraphicsContext3D):
2096         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
2097         (WebCore::GraphicsContext3D::reshapeFBOs):
2098         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
2099         (WebCore::GraphicsContext3D::reshapeFBOs):
2100
2101 2013-12-22  Benjamin Poulain  <bpoulain@apple.com>
2102
2103         Create a skeleton for CSS Selector code generation
2104         https://bugs.webkit.org/show_bug.cgi?id=126044
2105
2106         Reviewed by Antti Koivisto and Gavin Barraclough.
2107
2108         Add CSSCompiler, which provides the basic infrastructure to compile
2109         CSS Selectors on x86_64.
2110
2111         Compilation happens in two phases.
2112         1) The various matching and relation of each CSSSelector is aggregated into units
2113            matching a single element: SelectorFragment.
2114            SelectorFragment also knows about the relations between different fragments,
2115            and contains all the information to generate the code for a particular element.
2116         2) The compiler then goes over the fragments, and generate code based on the information
2117            of each fragment.
2118
2119         It the current state, SelectorCompiler only compiles the tag matching selectors and
2120         any of the relation between selectors.
2121
2122         Depending on the relation and position of a fragment, failure on traversal or matching
2123         does not necessarily causes the complete selector. A failure can cause matching to
2124         resume from the parent or the sibling of a previously visisted node.
2125         The implementation of this is done through the BacktrackingAction. In case of failure,
2126         the next starting state is setup and the program counter jumps back to the appropriate
2127         starting point.
2128
2129         When backtracking, the method used to save the starting point depends on the type
2130         of backtracking.
2131         The child/parent relation (">") is very common so it uses an additional register to keep
2132         the next starting point (m_descendantBacktrackingStart).
2133         The indirect sibling relation ("~") is much less common and uses the stack to save
2134         the next starting point.
2135
2136         * WebCore.xcodeproj/project.pbxproj:
2137         * cssjit/SelectorCompiler.cpp: Added.
2138         (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
2139         (WebCore::SelectorCompiler::compileSelector):
2140         (WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
2141         (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
2142         (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
2143         (WebCore::SelectorCompiler::updateChainStates):
2144         (WebCore::SelectorCompiler::isFirstAncestor):
2145         (WebCore::SelectorCompiler::isFirstAdjacent):
2146         (WebCore::SelectorCompiler::isAfterChildRelation):
2147         (WebCore::SelectorCompiler::solveBacktrackingAction):
2148         (WebCore::SelectorCompiler::requiresAdjacentTail):
2149         (WebCore::SelectorCompiler::requiresDescendantTail):
2150         (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
2151         (WebCore::SelectorCompiler::testIsElementFlagOnNode):
2152         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
2153         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
2154         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
2155         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
2156         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
2157         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
2158         (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
2159         (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
2160         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
2161         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail):
2162         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
2163         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
2164         (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
2165         * cssjit/SelectorCompiler.h: Added.
2166         (WebCore::SelectorCompilationStatus::SelectorCompilationStatus):
2167         (WebCore::SelectorCompilationStatus::operator Status):
2168         (WebCore::SelectorCompiler::simpleSelectorCheckerFunction):
2169         (WebCore::SelectorCompiler::selectorCheckerFunctionWithCheckingContext):
2170         * dom/Element.cpp:
2171         (WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
2172         (WebCore::Element::setChildrenAffectedByForwardPositionalRules):
2173         * dom/Element.h:
2174         (WebCore::Element::tagQNameMemoryOffset):
2175         (WebCore::Element::setChildrenAffectedByForwardPositionalRules):
2176         * dom/Node.h:
2177         (WebCore::Node::parentNodeMemoryOffset):
2178         (WebCore::Node::previousSiblingMemoryOffset):
2179         (WebCore::Node::nodeFlagsMemoryOffset):
2180         (WebCore::Node::flagIsElement):
2181         * dom/QualifiedName.h:
2182         (WebCore::QualifiedName::QualifiedNameImpl::localNameMemoryOffset):
2183         (WebCore::QualifiedName::QualifiedNameImpl::namespaceMemoryOffset):
2184         (WebCore::QualifiedName::implMemoryOffset):
2185
2186 2013-12-22  Mihnea Ovidenie  <mihnea@adobe.com>
2187
2188         [CSSRegions] Crash when trying to select content from invalid region
2189         https://bugs.webkit.org/show_bug.cgi?id=126113
2190
2191         Reviewed by Antti Koivisto.
2192
2193         After fix for https://bugs.webkit.org/show_bug.cgi?id=120769, positionForPoint for a region attempts to use the associated named flow to perform its task.
2194         However, this should happen only when the region is valid. If the region is invalid, part of a dependency cycle, positionForPoint should behave as usual
2195         for a block instead of a region, otherwise it may run into an infinite loop due to cyclic dependencies and a crash will occur.
2196
2197         This patch ensures that positionForPoint region specifie behaviour is followed only if the region is valid - not part of a dependency cycle.
2198
2199         Test: fast/regions/selection/invalid-region-selection-crash.html
2200
2201         * rendering/RenderRegion.cpp:
2202         (WebCore::RenderRegion::positionForPoint):
2203
2204 2013-12-21  Dirk Schulze  <krit@webkit.org>
2205
2206         Start refactoring Filter code to reuse CachedSVGDocument for clipPath
2207         https://bugs.webkit.org/show_bug.cgi?id=126069
2208
2209         Reviewed by Andreas Kling.
2210
2211         Smaller refactoring of the CSS filter style resolver code. Previously the code
2212         requested the FilterOperations list from RenderStyle and compared the content
2213         in this list with an internal map. Then the resource loading was triggered.
2214         With the refactoring we do not request the list from RenderStyle anymore but
2215         rely on the hash map data entirely.
2216
2217         * css/StyleResolver.cpp:
2218         (WebCore::StyleResolver::loadPendingSVGDocuments):
2219         * platform/graphics/filters/FilterOperation.h:
2220
2221 2013-12-20  Andy Estes  <aestes@apple.com>
2222
2223         [Mac] Soft-link WebContentAnalysis.framework
2224         https://bugs.webkit.org/show_bug.cgi?id=126102
2225
2226         Reviewed by Dan Bernstein.
2227
2228         * Configurations/WebCore.xcconfig: There's no need to modify LDFLAGS
2229         now that we don't hard link against WebContentAnalysis.framework.
2230         * WebCore.xcodeproj/project.pbxproj: Removed
2231         WebContentAnalysis.framework from the 'Link Binary with Libraries'
2232         build phase.
2233         * platform/mac/ContentFilterMac.mm: Soft-linked
2234         WebContentAnalysis.framework and the WebFilterEvaluator @class.
2235         (WebCore::ContentFilter::ContentFilter): Called getWebFilterEvaluatorClass().
2236         (WebCore::ContentFilter::isEnabled): Ditto.
2237         * platform/mac/SoftLinking.h: Added an implementation of
2238         SOFT_LINK_PRIVATE_FRAMEWORK().
2239
2240 2013-12-21  Antti Koivisto  <antti@apple.com>
2241
2242         Unreviewed, rolling out r160916.
2243         http://trac.webkit.org/changeset/160916
2244         https://bugs.webkit.org/show_bug.cgi?id=126073
2245
2246         Roll out a temporary fix. The underlying issue was fixed.
2247
2248         * accessibility/AccessibilityRenderObject.cpp:
2249         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
2250         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
2251         (WebCore::AccessibilityRenderObject::detach):
2252         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
2253         * accessibility/AccessibilityRenderObject.h:
2254
2255 2013-12-21  Antti Koivisto  <antti@apple.com>
2256
2257         Figure out if node is focusable without requiring renderer
2258         https://bugs.webkit.org/show_bug.cgi?id=126118
2259
2260         Reviewed by Andreas Kling.
2261
2262         * dom/Element.cpp:
2263         (WebCore::Element::computedStyle):
2264         
2265             Use inDocument() test instead of the attached() test. We can compute style for anything that
2266             is in document.
2267
2268         * dom/Node.cpp:
2269         (WebCore::Node::isContentEditable):
2270         (WebCore::Node::isContentRichlyEditable):
2271         (WebCore::Node::hasEditableStyle):
2272         
2273             Use computedStyle instead of getting the style from renderer. Computed style gets constructed
2274             on demand if renderer does not exist. If it does then the existing style is used.
2275
2276         (WebCore::Node::isEditableToAccessibility):
2277         (WebCore::Node::canStartSelection):
2278         (WebCore::Node::isRootEditableElement):
2279         (WebCore::Node::rootEditableElement):
2280         * dom/Node.h:
2281         (WebCore::Node::hasEditableStyle):
2282         (WebCore::Node::hasRichlyEditableStyle):
2283         
2284             Renamed from rendererIsEditable since these no longer require renderer.
2285
2286         (WebCore::HTMLElement::supportsFocus):
2287         
2288             Stop calling updateStyleIfNeeded() and forcing render tree construction.
2289
2290 2013-12-21  Carlos Garcia Campos  <cgarcia@igalia.com>
2291
2292         [SOUP] ResourceHandleSoup should use async client callbacks when client uses async callbacks
2293         https://bugs.webkit.org/show_bug.cgi?id=126006
2294
2295         Reviewed by Martin Robinson.
2296
2297         This fixes WebKit2 loader client unit tests when using the network
2298         process.
2299
2300         * platform/network/ResourceHandle.cpp:
2301         * platform/network/soup/ResourceHandleSoup.cpp:
2302         (WebCore::doRedirect): Call willSendRequestAsync on the client
2303         when usesAsyncCallbacks returns true.
2304         (WebCore::nextMultipartResponsePartCallback): Call
2305         didReceiveResponseAsync on the client when usesAsyncCallbacks
2306         returns true.
2307         (WebCore::sendRequestCallback): Ditto.
2308         (WebCore::ResourceHandle::continueWillSendRequest): Empty
2309         implementation for now because the default one asserts.
2310         (WebCore::ResourceHandle::continueDidReceiveResponse): Ditto.
2311         (WebCore::ResourceHandle::continueShouldUseCredentialStorage): Ditto.
2312
2313 2013-12-20  Anders Carlsson  <andersca@apple.com>
2314
2315         Replace yield() and pauseBriefly() with std::this_thread::yield()
2316         https://bugs.webkit.org/show_bug.cgi?id=126105
2317
2318         Reviewed by Sam Weinig.
2319
2320         * platform/sql/SQLiteDatabase.cpp:
2321         (WebCore::SQLiteDatabase::interrupt):
2322
2323 2013-12-20  Ryosuke Niwa  <rniwa@webkit.org>
2324
2325         Assert that RootInlineBox::setLineBreakInfo should is never called on a RenderInline without line boxes
2326         https://bugs.webkit.org/show_bug.cgi?id=126101
2327
2328         Reviewed by Simon Fraser.
2329
2330         Merge assertions added in https://chromium.googlesource.com/chromium/blink/+/716ac74fd475b581d69c0aa8ec2d806201c3a420
2331
2332         The code change was not merged since we never hit the added assertion on the attached test case in WebKit.
2333
2334         * rendering/RootInlineBox.cpp:
2335         (WebCore::RootInlineBox::setLineBreakInfo):
2336
2337 2013-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2338
2339         Web Inspector: Remove the references to Node in InjectedScript
2340         https://bugs.webkit.org/show_bug.cgi?id=126091
2341
2342         Reviewed by Timothy Hatcher.
2343
2344         Remove the last DOM references from InjectedScript so that
2345         InjectedScript can move down into JavaScriptCore. The only
2346         remaining references were to Nodes, which are all just thin
2347         wrappers around existing functions. Move Node / JSNode (JSValue)
2348         conversion into InspectorDOMAgent, where it was used.
2349
2350         No new tests, no observable change in functionality.
2351
2352         * bindings/js/JSInjectedScriptHostCustom.cpp:
2353         * inspector/InjectedScript.cpp:
2354         (WebCore::InjectedScript::inspectObject):
2355         (WebCore::InjectedScript::releaseObject):
2356         * inspector/InjectedScript.h:
2357         * inspector/InjectedScriptHost.h:
2358         * inspector/InjectedScriptSource.js:
2359         * inspector/InspectorDOMAgent.cpp:
2360         (WebCore::InspectorDOMAgent::focusNode):
2361         (WebCore::InspectorDOMAgent::highlightNode):
2362         (WebCore::InspectorDOMAgent::requestNode):
2363         (WebCore::InspectorDOMAgent::nodeForObjectId):
2364         (WebCore::InspectorDOMAgent::resolveNode):
2365         (WebCore::InspectorDOMAgent::scriptValueAsNode):
2366         (WebCore::InspectorDOMAgent::nodeAsScriptValue):
2367         * inspector/InspectorDOMAgent.h:
2368         * inspector/PageConsoleAgent.cpp:
2369
2370 2013-12-20  Myles C. Maxfield  <mmaxfield@apple.com>
2371
2372         Faster implementation of text-decoration-skip: ink
2373         https://bugs.webkit.org/show_bug.cgi?id=125718
2374
2375         Reviewed by Simon Fraser.
2376
2377         This new implementation of text-decoration-skip: ink extracts
2378         each glyph into a path, then decomposes each path into a series
2379         of contours. It then intersects each contour with the top and
2380         bottom of the underline (by approximating the contour with a line).
2381         It then draws underlines in between these intersection regions.
2382
2383         Tests for text-decoration-skip: ink already exist in
2384         fast/css3-text/css3-text-decoration/text-decoration-skip
2385
2386         * platform/graphics/Font.h: Signature of new function
2387         * platform/graphics/mac/FontMac.mm:
2388         (WebCore::GlyphIterationState::GlyphIterationState): Persistent
2389         between calls to findPathIntersections
2390         (WebCore::findIntersectionPoint): Calculates an intersection point
2391         between two lines
2392         (WebCore::findPathIntersections): Called by CGPathApply to find
2393         intersections of each contour
2394         (WebCore::Font::intersectionPoints): Function to get the places
2395         where an underline would intersect a TextRun.
2396         * rendering/InlineTextBox.cpp:
2397         (WebCore::compareTuples): Used for sorting intersection ranges
2398         (WebCore::translateIntersectionPointsToSkipInkBoundaries): Converts
2399         a sequence of intersection points to the locations where
2400         text-decoration-skip: ink should draw underlines
2401         (WebCore::drawSkipInkUnderline): Draws a sequence of short underlines
2402         (WebCore::InlineTextBox::paintDecoration):
2403         * rendering/TextPainter.cpp:
2404         (WebCore::TextPainter::intersectionPoints): Calls Font::intersectionPoints
2405         * rendering/TextPainter.h:
2406
2407 2013-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2408
2409         Web Inspector: Give the CommandLineAPIModule its own Host object, making InjectedScriptHost viable for a JS Context
2410         https://bugs.webkit.org/show_bug.cgi?id=126082
2411
2412         Reviewed by Timothy Hatcher.
2413
2414         Extract CommandLineAPIHost from InjectedScriptHost. The command line API contained
2415         a bunch of DOM specific JavaScript that would not be suitable for a pure JavaScript
2416         environment. Now that the DOM related code is in this WebCore only module, give this
2417         module a host object that WebCore will provide.
2418
2419         No new tests, no observable change in functionality.
2420
2421         * CMakeLists.txt:
2422         * DerivedSources.cpp:
2423         * DerivedSources.make:
2424         * GNUmakefile.list.am:
2425         * UseJSC.cmake:
2426         * WebCore.vcxproj/WebCore.vcxproj:
2427         * WebCore.vcxproj/WebCore.vcxproj.filters:
2428         * WebCore.xcodeproj/project.pbxproj:
2429         * bindings/js/JSBindingsAllInOne.cpp:
2430         Add new files.
2431
2432         * bindings/js/JSCommandLineAPIHostCustom.cpp: Added.
2433         (WebCore::JSCommandLineAPIHost::inspectedObject):
2434         (WebCore::getJSListenerFunctions):
2435         (WebCore::JSCommandLineAPIHost::getEventListeners):
2436         (WebCore::JSCommandLineAPIHost::inspect):
2437         (WebCore::JSCommandLineAPIHost::databaseId):
2438         (WebCore::JSCommandLineAPIHost::storageId):
2439         * bindings/js/JSInjectedScriptHostCustom.cpp:
2440         * inspector/CommandLineAPIHost.cpp: Copied from Source/WebCore/inspector/InjectedScriptHost.cpp.
2441         (WebCore::CommandLineAPIHost::create):
2442         (WebCore::CommandLineAPIHost::CommandLineAPIHost):
2443         (WebCore::CommandLineAPIHost::~CommandLineAPIHost):
2444         (WebCore::CommandLineAPIHost::disconnect):
2445         (WebCore::CommandLineAPIHost::inspectImpl):
2446         (WebCore::CommandLineAPIHost::getEventListenersImpl):
2447         (WebCore::CommandLineAPIHost::clearConsoleMessages):
2448         (WebCore::CommandLineAPIHost::copyText):
2449         (WebCore::CommandLineAPIHost::InspectableObject::get):
2450         (WebCore::CommandLineAPIHost::addInspectedObject):
2451         (WebCore::CommandLineAPIHost::clearInspectedObjects):
2452         (WebCore::CommandLineAPIHost::inspectedObject):
2453         (WebCore::CommandLineAPIHost::databaseIdImpl):
2454         (WebCore::CommandLineAPIHost::storageIdImpl):
2455         * inspector/CommandLineAPIHost.h: Copied from Source/WebCore/inspector/InjectedScriptHost.h.
2456         (WebCore::CommandLineAPIHost::init):
2457         * inspector/CommandLineAPIHost.idl: Copied from Source/WebCore/inspector/InjectedScriptHost.idl.
2458         * inspector/CommandLineAPIModule.cpp:
2459         These are almost all pure copies from InjectedScriptHost files. Cleaned up a bit.
2460
2461         * inspector/InjectedScriptModule.h:
2462         * inspector/InjectedScriptModule.cpp:
2463         (WebCore::InjectedScriptModule::ensureInjected):
2464         Modules can now define a host object when they are getting injected.
2465
2466         (WebCore::CommandLineAPIModule::host):
2467         * inspector/CommandLineAPIModule.h:
2468         Provide a CommandLineAPIHost, host object.
2469
2470         * inspector/InjectedScriptCanvasModule.h:
2471         * inspector/InjectedScriptCanvasModule.cpp:
2472         (WebCore::InjectedScriptCanvasModule::host):
2473         No host object is needed for the CanvasModule.
2474
2475         * inspector/InjectedScriptSource.js:
2476         * inspector/CommandLineAPIModuleSource.js:
2477         When injecting a module, pass on an optional host object to
2478         the module's source. Move a little more code between the
2479         two files. The two files are very tightly coupled right now.
2480
2481         * inspector/InjectedScriptHost.cpp:
2482         (WebCore::InjectedScriptHost::create):
2483         * inspector/InjectedScriptHost.h:
2484         (WebCore::InjectedScriptHost::~InjectedScriptHost):
2485         (WebCore::InjectedScriptHost::InjectedScriptHost):
2486         * inspector/InjectedScriptHost.idl:
2487         Move any command line specific logic to CommandLineAPIHost classes.
2488
2489         * inspector/InjectedScriptManager.cpp:
2490         (WebCore::InjectedScriptManager::disconnect):
2491         * inspector/InjectedScriptManager.h:
2492         (WebCore::InjectedScriptManager::commandLineAPIHost):
2493         * inspector/InspectorConsoleAgent.cpp:
2494         (WebCore::InspectorConsoleAgent::addInspectedHeapObject):
2495         * inspector/InspectorController.cpp:
2496         (WebCore::InspectorController::InspectorController):
2497         * inspector/InspectorHeapProfilerAgent.cpp:
2498         (WebCore::InspectorHeapProfilerAgent::resetState):
2499         * inspector/InspectorProfilerAgent.cpp:
2500         (WebCore::InspectorProfilerAgent::resetState):
2501         * inspector/PageConsoleAgent.cpp:
2502         (WebCore::PageConsoleAgent::addInspectedNode):
2503         * inspector/PageInjectedScriptManager.cpp:
2504         (WebCore::PageInjectedScriptManager::PageInjectedScriptManager):
2505         (WebCore::PageInjectedScriptManager::disconnect):
2506         * inspector/PageInjectedScriptManager.h:
2507         * inspector/WorkerInspectorController.cpp:
2508         (WebCore::WorkerInspectorController::WorkerInspectorController):
2509         An InjectedScriptManager may optionally have a commandLineAPIHost object.
2510         If it does, initialize it, and send it messages.
2511
2512 2013-12-09  Myles C. Maxfield  <mmaxfield@apple.com>
2513
2514         Allow ImageBuffer to re-use IOSurfaces
2515         https://bugs.webkit.org/show_bug.cgi?id=125477
2516
2517         Reviewed by Geoff Garen.
2518
2519         This test adds a static class, ImageBufferBackingStoreCache, that vends
2520         IOSurfaces. It remembers IOSurfaces that have been returned to it until
2521         a configurable timeout.
2522
2523         The storage used by this class is in the form of a HashMap from a
2524         bucketed size to the IOSurface. There are many other data structures
2525         that could be used, but this implementation gives a 80% hit rate on
2526         normal browsing of some example sites with Canvas and
2527         text-decoration-skip: ink. Because the buckets are fairly
2528         small (rounding the width and height up to multiples of 8), traversing the
2529         bucket contents takes on average 2 steps. 
2530
2531         Test: fast/canvas/canvas-backing-store-reuse.html
2532
2533         * WebCore.xcodeproj/project.pbxproj: Added new caching class
2534         * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.
2535         (WebCore::createIOSurface): Moved from ImageBufferCG.cpp
2536         (WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
2537         contents
2538         (WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
2539         (WebCore::ImageBufferBackingStoreCache::get): Static getter
2540         (WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
2541         (WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
2542         creation function
2543         (WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
2544         deletion function
2545         (WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
2546         IOSurface fit the bill?
2547         (WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
2548         a bucket and walk through its contents
2549         (WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
2550         for clients who want a IOSurface from the cache
2551         (WebCore::ImageBufferBackingStoreCache::deallocate): Public
2552         function for clients to return an IOSurface to the pool
2553         * platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.
2554         * platform/graphics/cg/ImageBufferCG.cpp: Update to use new cache
2555         (WebCore::ImageBuffer::ImageBuffer):
2556         (WebCore::ImageBuffer::~ImageBuffer):
2557
2558 2013-12-20  Simon Fraser  <simon.fraser@apple.com>
2559
2560         Change "threaded scrolling" terminology to "asynchronous scrolling"
2561         https://bugs.webkit.org/show_bug.cgi?id=126094
2562
2563         Reviewed by Tim Horton.
2564
2565         Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING, and change
2566         references to "main thread scrolling" to "synchronous scrolling".
2567         
2568         In a few places, functions with names like shouldUpdateScrollLayerPositionOnMainThread()
2569         were actually returning SynchronousScrollingReasons, so rename them appropriately.
2570
2571         * WebCore.exp.in:
2572         * page/FrameView.cpp:
2573         (WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
2574         (WebCore::FrameView::isRubberBandInProgress):
2575         (WebCore::FrameView::requestScrollPositionUpdate):
2576         (WebCore::FrameView::updatesScrollLayerPositionOnMainThread):
2577         (WebCore::FrameView::wheelEvent):
2578         * page/Page.cpp:
2579         (WebCore::Page::synchronousScrollingReasonsAsText):
2580         * page/Page.h:
2581         * page/scrolling/ScrollingCoordinator.cpp:
2582         (WebCore::ScrollingCoordinator::create):
2583         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
2584         (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
2585         (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
2586         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
2587         (WebCore::ScrollingCoordinator::synchronousScrollingReasons):
2588         (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
2589         (WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates):
2590         (WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
2591         * page/scrolling/ScrollingCoordinator.h:
2592         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):
2593         (WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):
2594         * page/scrolling/ScrollingStateFixedNode.cpp:
2595         * page/scrolling/ScrollingStateFixedNode.h:
2596         * page/scrolling/ScrollingStateNode.cpp:
2597         * page/scrolling/ScrollingStateNode.h:
2598         * page/scrolling/ScrollingStateScrollingNode.cpp:
2599         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
2600         (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
2601         (WebCore::ScrollingStateScrollingNode::dumpProperties):
2602         * page/scrolling/ScrollingStateScrollingNode.h: Awkward "ReasonsForSynchronousScrolling" to avoid
2603         conflict with the enum called SynchronousScrollingReasons.
2604         * page/scrolling/ScrollingStateStickyNode.cpp:
2605         * page/scrolling/ScrollingStateStickyNode.h:
2606         * page/scrolling/ScrollingStateTree.cpp:
2607         * page/scrolling/ScrollingStateTree.h:
2608         * page/scrolling/ScrollingThread.cpp:
2609         * page/scrolling/ScrollingThread.h:
2610         * page/scrolling/ScrollingTree.cpp:
2611         * page/scrolling/ScrollingTree.h:
2612         * page/scrolling/ScrollingTreeNode.cpp:
2613         * page/scrolling/ScrollingTreeNode.h:
2614         * page/scrolling/ScrollingTreeScrollingNode.cpp:
2615         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
2616         (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
2617         * page/scrolling/ScrollingTreeScrollingNode.h:
2618         (WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons):
2619         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
2620         * page/scrolling/mac/ScrollingCoordinatorMac.h:
2621         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
2622         (WebCore::ScrollingCoordinatorMac::setSynchronousScrollingReasons):
2623         (WebCore::ScrollingCoordinatorMac::commitTreeState):
2624         * page/scrolling/mac/ScrollingStateNodeMac.mm:
2625         * page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
2626         * page/scrolling/mac/ScrollingThreadMac.mm:
2627         * page/scrolling/mac/ScrollingTreeFixedNode.h:
2628         * page/scrolling/mac/ScrollingTreeFixedNode.mm:
2629         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
2630         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
2631         (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
2632         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
2633         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
2634         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
2635         (WebCore::logThreadedScrollingMode):
2636         * page/scrolling/mac/ScrollingTreeStickyNode.h:
2637         * page/scrolling/mac/ScrollingTreeStickyNode.mm:
2638         * platform/Scrollbar.cpp:
2639         (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
2640         * platform/graphics/TiledBacking.h:
2641         * platform/graphics/ca/mac/TileController.mm:
2642         (WebCore::TileController::TileController):
2643         (WebCore::TileController::updateTileCoverageMap):
2644         * platform/mac/MemoryPressureHandlerMac.mm:
2645         (WebCore::MemoryPressureHandler::releaseMemory):
2646         * rendering/RenderLayer.cpp:
2647         (WebCore::RenderLayer::setupFontSubpixelQuantization):
2648         * rendering/RenderLayerBacking.cpp:
2649         (WebCore::computeTileCoverage):
2650         * testing/Internals.cpp:
2651         (WebCore::Internals::mainThreadScrollingReasons):
2652         * testing/Internals.idl:
2653
2654 2013-12-20  Tim Horton  <timothy_horton@apple.com>
2655
2656         Revert r160327, r160273, and r160260.
2657
2658         We'll come up with something less aggressive, as this doesn't quite work.
2659
2660         * loader/cache/CachedImage.h:
2661         * loader/cache/CachedResource.h:
2662         * loader/cache/MemoryCache.cpp:
2663         (WebCore::MemoryCache::pruneLiveResourcesToSize):
2664         * platform/graphics/BitmapImage.cpp:
2665         (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
2666         * platform/graphics/BitmapImage.h:
2667         * platform/graphics/Image.h:
2668
2669 2013-12-20  Anders Carlsson  <andersca@apple.com>
2670
2671         PostAttachCallbackDisabler should take a Document
2672         https://bugs.webkit.org/show_bug.cgi?id=126090
2673
2674         Reviewed by Andreas Kling.
2675
2676         suspendPostAttachCallbacks and resumePostAttachCallbacks always only get the document from the
2677         container node, so make them static member functions that take a Document&. Also, move PostAttachCallbackDisabler
2678         to Element.h in preparation for moving post attach callback handling to Element.
2679
2680         * dom/ContainerNode.cpp:
2681         (WebCore::ContainerNode::suspendPostAttachCallbacks):
2682         (WebCore::ContainerNode::resumePostAttachCallbacks):
2683         * dom/ContainerNode.h:
2684         * dom/Element.h:
2685         (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
2686         (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
2687         * style/StyleResolveTree.cpp:
2688         (WebCore::Style::attachRenderTree):
2689
2690 2013-12-20  Anders Carlsson  <andersca@apple.com>
2691
2692         Move scheduleSetNeedsStyleRecalc to HTMLFrameOwnerElement
2693         https://bugs.webkit.org/show_bug.cgi?id=126083
2694
2695         Reviewed by Antti Koivisto.
2696
2697         scheduleSetNeedsStyleRecalc is only ever called on HTMLFrameOwnerElement, so
2698         move it there, remove the Node implementation and make it non-virtual.
2699
2700         * dom/ContainerNode.cpp:
2701         * dom/ContainerNode.h:
2702         * dom/Node.h:
2703         * html/HTMLFrameOwnerElement.cpp:
2704         (WebCore::needsStyleRecalcCallback):
2705         (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc):
2706         * html/HTMLFrameOwnerElement.h:
2707
2708 2013-12-20  Andy Estes  <aestes@apple.com>
2709
2710         Remove an unneeded include of WebCoreSystemInterface.h.
2711
2712         Rubber-stamped by Dan Bernstein.
2713
2714         * platform/mac/ContentFilterMac.mm:
2715
2716 2013-12-20  Anders Carlsson  <andersca@apple.com>
2717
2718         Node post attach callbacks should use references
2719         https://bugs.webkit.org/show_bug.cgi?id=126081
2720
2721         Reviewed by Antti Koivisto.
2722
2723         * dom/ContainerNode.cpp:
2724         (WebCore::ContainerNode::queuePostAttachCallback):
2725         (WebCore::ContainerNode::dispatchPostAttachCallbacks):
2726         (WebCore::needsStyleRecalcCallback):
2727         (WebCore::ContainerNode::scheduleSetNeedsStyleRecalc):
2728         * dom/ContainerNode.h:
2729         * html/HTMLFormControlElement.cpp:
2730         (WebCore::focusPostAttach):
2731         (WebCore::HTMLFormControlElement::didAttachRenderers):
2732         (WebCore::updateFromElementCallback):
2733         (WebCore::HTMLFormControlElement::didRecalcStyle):
2734         * html/HTMLPlugInImageElement.cpp:
2735         (WebCore::HTMLPlugInImageElement::didAttachRenderers):
2736         (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
2737         (WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
2738         * html/HTMLPlugInImageElement.h:
2739
2740 2013-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2741
2742         Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule
2743         https://bugs.webkit.org/show_bug.cgi?id=126038
2744
2745         Reviewed by Timothy Hatcher.
2746
2747         Only inject the CommandLineAPIModule once, when the InjectedScript
2748         is first created. This avoids running a small snippet of JavaScript
2749         to check if the module is loaded every time we fetch the InjectedScript.
2750
2751         * CMakeLists.txt:
2752         * GNUmakefile.list.am:
2753         * WebCore.vcxproj/WebCore.vcxproj:
2754         * WebCore.vcxproj/WebCore.vcxproj.filters:
2755         * WebCore.xcodeproj/project.pbxproj:
2756         * inspector/InspectorAllInOne.cpp:
2757         Add new files to the build.
2758
2759         * inspector/InjectedScriptManager.h:
2760         * inspector/InjectedScriptManager.cpp:
2761         (WebCore::InjectedScriptManager::createForPage):
2762         (WebCore::InjectedScriptManager::injectedScriptFor):
2763         (WebCore::InjectedScriptManager::didCreateInjectedScript):
2764         Add didCreateInjectedScript hook for a subclass to inject more scripts.
2765
2766         * inspector/PageInjectedScriptManager.h: Added.
2767         * inspector/PageInjectedScriptManager.cpp: Added.
2768         (WebCore::PageInjectedScriptManager::didCreateInjectedScript):
2769         For pages, inject the CommandLineAPIModule.
2770
2771         * inspector/PageRuntimeAgent.cpp:
2772         (WebCore::PageRuntimeAgent::injectedScriptForEval):
2773         This is replaced by PageInjectedScriptManager, we no longer need
2774         to do extra work every time we fetch the injectedScriptForEval.
2775
2776 2013-12-20  Joseph Pecoraro  <pecoraro@apple.com>
2777
2778         Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule
2779         https://bugs.webkit.org/show_bug.cgi?id=126038
2780
2781         Reviewed by Timothy Hatcher.
2782
2783         No tests, no observable change in behavior.
2784
2785         Move the CommandLineAPI source into its own module. Load the module
2786         in InjectedScripts for WebCore::Pages. Not for workers.
2787
2788         Moving CommandLineAPI into it's own module moves it from being inside
2789         the same anonymous function to being evaluated outside the anonymous
2790         function. To connect the two InjectedScript passes itself to the
2791         injected module, and the CommandLineAPI module places its class on the
2792         injectedScript as injectedScript.CommandLineAPI.
2793
2794         This essentially makes the CommandLineAPI module an InjectedScript
2795         extension. InjectedScriptSource checks for the existence of
2796         this.CommandLineAPI to see if the fuller version is available. Otherwise
2797         it falls back to a BasicCommandLineAPI which only exposes "$_",
2798         which is the "last evaluated result". That will be useful for JS Contexts
2799         and Workers.
2800
2801         At the same time, this patch makes InjectedScriptModule more generic,
2802         to support being used in a pure JavaScript environment, meaning one
2803         without "window" as the global object.
2804
2805         * CMakeLists.txt:
2806         * DerivedSources.make:
2807         * GNUmakefile.am:
2808         * GNUmakefile.list.am:
2809         * WebCore.vcxproj/WebCore.vcxproj:
2810         * WebCore.vcxproj/WebCore.vcxproj.filters:
2811         * WebCore.xcodeproj/project.pbxproj:
2812         * inspector/InspectorAllInOne.cpp:
2813         Add files. Minify the CommandLineAPIModuleSource in generation.
2814
2815         * inspector/CommandLineAPIModule.h: Added.
2816         * inspector/CommandLineAPIModule.cpp: Added.
2817         (WebCore::CommandLineAPIModule::CommandLineAPIModule):
2818         (WebCore::CommandLineAPIModule::injectIfNeeded):
2819         (WebCore::CommandLineAPIModule::source):
2820         Inject the module that doesn't return an object, its just evaluated code
2821         extending the original InjectedScript.
2822
2823         * inspector/InjectedScriptModule.h:
2824         * inspector/InjectedScriptModule.cpp:
2825         (WebCore::InjectedScriptModule::ensureInjected):
2826         Only ASSERT the result was an object if the Module claims it returns an object.
2827
2828         * inspector/InjectedScriptCanvasModule.h:
2829         (WebCore::InjectedScriptCanvasModule::returnsObject):
2830         Return an object used later to call into the CanvasModule.
2831
2832         * inspector/PageRuntimeAgent.cpp:
2833         (WebCore::PageRuntimeAgent::injectedScriptForEval):
2834         Ensure the CommandLineAPIModule is loaded in the Page's InjectedScript.
2835
2836         * inspector/CommandLineAPIModuleSource.js: Added.
2837         Create the CommandLineAPI class and place it on injectedScript.
2838
2839         * inspector/InjectedScriptSource.js:
2840         (InjectedScript.prototype._evaluateOn):
2841         Inject either the BasicCommandLineAPI or extended CommandLineAPI.
2842         Derive the globalObject dynamically instead of assuming window.
2843         Inject the commandLineAPI on window.console or the globalObject based on context.
2844         Audit and rename uses of "window" to something like globalObject.
2845
2846 2013-12-20  Tim Horton  <timothy_horton@apple.com>
2847
2848         WebKit2 View Gestures: Implement smartMagnifyWithEvent: and make it work
2849         https://bugs.webkit.org/show_bug.cgi?id=125752
2850         <rdar://problem/15664245>
2851
2852         Reviewed by Anders Carlsson.
2853
2854         * WebCore.exp.in:
2855         Add some exports.
2856
2857 2013-12-20  Antti Koivisto  <antti@apple.com>
2858
2859         http/tests/misc/object-image-error.html asserts
2860         https://bugs.webkit.org/show_bug.cgi?id=126074
2861
2862         Reviewed by Andreas Kling.
2863
2864         * html/HTMLPlugInImageElement.cpp:
2865         (WebCore::HTMLPlugInImageElement::didAttachRenderers):
2866         (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
2867         (WebCore::HTMLPlugInImageElement::startLoadingImage):
2868         (WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
2869         * html/HTMLPlugInImageElement.h:
2870         
2871             Start image load from post-attach so we don't re-enter attach when image load fails synchronously.
2872
2873 2013-12-20  Antti Koivisto  <antti@apple.com>
2874
2875         Crashes in AccessibilityRenderObject::computeAccessibilityIsIgnored()
2876         https://bugs.webkit.org/show_bug.cgi?id=126073
2877
2878         Reviewed by Ryosuke Niwa.
2879
2880         Prevent the crash and try to catch in debug why it is happening.
2881
2882         * accessibility/AccessibilityRenderObject.cpp:
2883         (WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
2884         (WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
2885         (WebCore::AccessibilityRenderObject::detach):
2886         (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
2887         * accessibility/AccessibilityRenderObject.h:
2888
2889 2013-12-20  Antti Koivisto  <antti@apple.com>
2890
2891         Fix asserting accesibility tests.
2892
2893         * html/HTMLElement.cpp:
2894         (WebCore::HTMLElement::supportsFocus): Accessibility code checks focus status during painting.
2895
2896 2013-12-20  Zan Dobersek  <zdobersek@igalia.com>
2897
2898         Unreviewed GTK build fix after r160909.
2899         Remove remaining uses of AttachLazily in code specific to the GTK port.
2900
2901         * html/shadow/MediaControlsGtk.cpp:
2902         (WebCore::MediaControlsGtk::initializeControls):
2903         (WebCore::MediaControlsGtk::createTextTrackDisplay):
2904
2905 2013-12-19  Antti Koivisto  <antti@apple.com>
2906
2907         Create render tree lazily
2908         https://bugs.webkit.org/show_bug.cgi?id=120685
2909
2910         Reviewed by Andreas Kling.
2911
2912         We currently recompute style and construct renderer for each DOM node immediately after they are added to 
2913         the tree. This is often inefficient as the style may change immediately afterwards and the work needs to be
2914         redone. 
2915         
2916         With this patch we always compute style and construct render tree lazily, either on style recalc timer or
2917         synchronously when they are needed. It also removes the 'attached' bit. If document has render tree then
2918         all nodes are conceptually "attached" even if this happens lazily.
2919         
2920         The patch slightly changes behavior of implicit CSS transitions. A synchronous style change during parsing
2921         may not trigger the animation anymore as laziness means we don't see anything changing. This matches Firefox
2922         and Chrome in our test cases.
2923         
2924         * WebCore.exp.in:
2925         * bindings/js/JSNodeCustom.cpp:
2926         (WebCore::JSNode::insertBefore):
2927         (WebCore::JSNode::replaceChild):
2928         (WebCore::JSNode::appendChild):
2929         
2930             All attaching is now lazy, remove AttachLazily.
2931
2932         * css/CSSComputedStyleDeclaration.cpp:
2933         (WebCore::ComputedStyleExtractor::propertyValue):
2934         
2935             SVG renderers with !isValid() have empty display property value for some reason. Keep the behavior.
2936
2937         * dom/ContainerNode.cpp:
2938         (WebCore::ContainerNode::insertBefore):
2939         (WebCore::ContainerNode::parserInsertBefore):
2940         (WebCore::ContainerNode::replaceChild):
2941         (WebCore::ContainerNode::appendChild):
2942         (WebCore::ContainerNode::parserAppendChild):
2943         (WebCore::ContainerNode::updateTreeAfterInsertion):
2944         * dom/ContainerNode.h:
2945         * dom/Document.cpp:
2946         (WebCore::Document::~Document):
2947         (WebCore::Document::updateStyleIfNeeded):
2948         (WebCore::Document::createRenderTree):
2949         (WebCore::Document::destroyRenderTree):
2950         
2951             Remove attach bit maintenance.
2952
2953         (WebCore::Document::webkitDidExitFullScreenForElement):
2954         
2955             Do lazy render tree reconstruction after returning from full screen. That is the only reliable way
2956             to get the render tree back to decent shape.
2957
2958         * dom/Element.cpp:
2959         (WebCore::Element::isFocusable):
2960         
2961             Remove pointless !renderer()->needsLayout() assert.
2962
2963         (WebCore::Element::addShadowRoot):
2964         (WebCore::Element::childShouldCreateRenderer):
2965         (WebCore::Element::resetComputedStyle):
2966         
2967             Take care to reset computed style in all descendants. attachRenderTree no longer does this.
2968
2969         * dom/Element.h:
2970         * dom/Node.cpp:
2971         (WebCore::Node::insertBefore):
2972         (WebCore::Node::replaceChild):
2973         (WebCore::Node::appendChild):
2974         (WebCore::Node::setNeedsStyleRecalc):
2975         
2976             Propagate ReconstructRenderTree.
2977
2978         (WebCore::Node::attached):
2979         
2980             Emulate the behavior of old attached bit for now so existing code calling this mostly stays working.
2981
2982         * dom/Node.h:
2983         
2984             Add new ReconstructRenderTree value for StyleChangeType.
2985
2986         * dom/Range.cpp:
2987         (WebCore::Range::isPointInRange):
2988         (WebCore::Range::comparePoint):
2989         (WebCore::Range::compareNode):
2990         (WebCore::Range::intersectsNode):
2991         * editing/AppendNodeCommand.cpp:
2992         (WebCore::AppendNodeCommand::doApply):
2993         * editing/CompositeEditCommand.cpp:
2994         (WebCore::CompositeEditCommand::canRebalance):
2995         * editing/InsertNodeBeforeCommand.cpp:
2996         (WebCore::InsertNodeBeforeCommand::doApply):
2997         * html/HTMLDetailsElement.cpp:
2998         (WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
2999         * html/HTMLDocument.cpp:
3000         (WebCore::HTMLDocument::activeElement):
3001         * html/HTMLElement.cpp:
3002         (WebCore::HTMLElement::setInnerText):
3003         
3004             TextControlInnerTextElement always preserves newline even if it doesn't have style yet.
3005
3006         (WebCore::HTMLElement::supportsFocus):
3007         * html/HTMLEmbedElement.cpp:
3008         (WebCore::HTMLEmbedElement::parseAttribute):
3009         * html/HTMLFormControlElement.cpp:
3010         (WebCore::shouldAutofocus):
3011         
3012             Don't autofocus until we have renderer.
3013
3014         * html/HTMLFormControlElementWithState.cpp:
3015         (WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState):
3016         * html/HTMLFrameElementBase.cpp:
3017         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions):
3018         * html/HTMLInputElement.cpp:
3019         (WebCore::HTMLInputElement::updateType):
3020         
3021             Lazy render tree construction.
3022
3023         (WebCore::HTMLInputElement::parseAttribute):
3024         (WebCore::HTMLInputElement::defaultEventHandler):
3025         * html/HTMLMediaElement.cpp:
3026         (WebCore::HTMLMediaElement::parseAttribute):
3027         * html/HTMLObjectElement.cpp:
3028         (WebCore::HTMLObjectElement::parseAttribute):
3029         * html/HTMLSummaryElement.cpp:
3030         (WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
3031         * html/parser/HTMLConstructionSite.cpp:
3032         (WebCore::executeTask):
3033         
3034             Don't attach renderer after construction.
3035
3036         * html/parser/HTMLTreeBuilder.cpp:
3037         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
3038         * html/shadow/ContentDistributor.cpp:
3039         (WebCore::ContentDistributor::invalidateDistribution):
3040         * html/shadow/InsertionPoint.cpp:
3041         (WebCore::InsertionPoint::willAttachRenderers):
3042         (WebCore::InsertionPoint::willDetachRenderers):
3043         * html/shadow/MediaControlElements.cpp:
3044         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
3045         * html/shadow/MediaControls.cpp:
3046         (WebCore::MediaControls::createTextTrackDisplay):
3047         * html/shadow/MediaControlsApple.cpp:
3048         (WebCore::MediaControlsApple::createControls):
3049         * html/track/TextTrackCue.cpp:
3050         (WebCore::TextTrackCue::getDisplayTree):
3051         * loader/PlaceholderDocument.cpp:
3052         (WebCore::PlaceholderDocument::createRenderTree):
3053         * loader/cache/CachedResourceLoader.cpp:
3054         (WebCore::CachedResourceLoader::preload):
3055         * style/StyleResolveTree.cpp:
3056         (WebCore::Style::attachTextRenderer):
3057         (WebCore::Style::detachTextRenderer):
3058         
3059             Remove attached bit maintenance.
3060
3061         (WebCore::Style::attachChildren):
3062         (WebCore::Style::attachShadowRoot):
3063         (WebCore::Style::attachRenderTree):
3064         (WebCore::Style::detachShadowRoot):
3065         (WebCore::Style::detachRenderTree):
3066         (WebCore::Style::resolveLocal):
3067         * svg/SVGTests.cpp:
3068         (WebCore::SVGTests::handleAttributeChange):
3069         
3070             Make lazy.
3071
3072         * testing/Internals.cpp:
3073         (WebCore::Internals::attached):
3074         (WebCore::Internals::elementRenderTreeAsText):
3075         (WebCore::Internals::markerAt):
3076         (WebCore::Internals::nodesFromRect):
3077
3078 2013-12-20  Andreas Kling  <akling@apple.com>
3079
3080         Devirtualize RenderElement::setStyle().
3081         <https://webkit.org/b/126065>
3082
3083         setStyle() was only virtual in order to let RenderSVGBlock override
3084         the display type in some cases. Devirtualized it and moved the fixup
3085         logic to StyleResolver::adjustRenderStyle().
3086
3087         This hack had an evil twin in RenderElement::initializeStyle() that
3088         also goes away. FIXME--!
3089
3090         Based on a Blink change by Elliott Sprehn.
3091
3092         Reviewed by Antti Koivisto.
3093
3094 2013-12-20  Radu Stavila  <stavila@adobe.com>
3095
3096         [CSS Regions] When changing flow-from/flow-into on :hover, elements overflowing the region are not correctly repainted
3097         https://bugs.webkit.org/show_bug.cgi?id=117259
3098
3099         Reviewed by Antti Koivisto.
3100
3101         When computing the repaint rect for a region, the existing visual overflow must be taken into consideration.
3102         For this purpose, I overridden the visualOverflowRect method in RenderNamedFlowFragment, which ends up being
3103         called from RenderBox::clippedOverflowRectForRepaint. 
3104
3105         Test: fast/regions/hover-single-flow-from-none-overflow.html
3106               fast/regions/hover-single-flow-from-none-overflow-top.html
3107
3108         * rendering/RenderNamedFlowFragment.cpp:
3109         (WebCore::RenderNamedFlowFragment::visualOverflowRect):
3110         * rendering/RenderNamedFlowFragment.h:
3111
3112 2013-12-20  Mario Sanchez Prada  <mario.prada@samsung.com>
3113
3114         Programmatically-inserted children lack accessibility events
3115         https://bugs.webkit.org/show_bug.cgi?id=100275
3116
3117         Reviewed by Chris Fleizach.
3118
3119         Test: accessibility/children-changed-sends-notification.html
3120
3121         Emit children-changed::add and children-changed::remove whenever
3122         an object has been added/removed to the accessibility hierarchy,
3123         that is, when a new AtkObject is being attached/detached.
3124
3125         * accessibility/AXObjectCache.h:
3126         (WebCore::AXObjectCache::detachWrapper): Added a new parameter and
3127         updated all the prototypes in different ports.
3128         * accessibility/AXObjectCache.cpp:
3129         (WebCore::AXObjectCache::~AXObjectCache): Call detachWrapper()
3130         specifying that we do it because the cache is being destroyed.
3131         (WebCore::AXObjectCache::remove): Call detachWrapper() specifying
3132         that we do it because an accessible element is being destroyed.
3133
3134         * accessibility/atk/AXObjectCacheAtk.cpp:
3135         (WebCore::AXObjectCache::detachWrapper): Emit the children-changed
3136         signal when needed. We rely on the cached reference to the parent
3137         AtkObject (using the implementation of atk_object_get_parent from
3138         the AtkObject class) to find the right object to emit the signal
3139         from here, since the accessibility hierarchy from WebCore will no
3140         longer be accessible at this point.
3141         (WebCore::AXObjectCache::attachWrapper): Emit the children-change
3142         signal from here unless we are in the middle of a layout update,
3143         trying to provide as much information (e.g. the offset) as possible.
3144         (WebCore::AXObjectCache::postPlatformNotification): Make sure we
3145         update (touch) the subtree under an accessibility object whenever
3146         we receive AXChildrenChanded from WebCore, to ensure that those
3147         objects will also be visible rightaway to ATs, and that those get
3148         properly notified of the event at that very same moment.
3149
3150         * accessibility/ios/AXObjectCacheIOS.mm:
3151         (WebCore::AXObjectCache::detachWrapper): Updated function signature.
3152         * accessibility/mac/AXObjectCacheMac.mm:
3153         (WebCore::AXObjectCache::detachWrapper): Ditto.
3154         * accessibility/win/AXObjectCacheWin.cpp:
3155         (WebCore::AXObjectCache::detachWrapper): Ditto.
3156
3157         * accessibility/AccessibilityObject.cpp:
3158         (WebCore::AccessibilityObject::children): Add the option ot
3159         request the AccessibilityChildrenVector without updating it if
3160         needed, to avoid maybe recreating the child subtree when trying to
3161         get the offset of a newly attached element from attachWrapper.
3162         * accessibility/AccessibilityObject.h:
3163
3164 2013-12-20  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>
3165
3166         Move function calls outside loop in dom
3167         https://bugs.webkit.org/show_bug.cgi?id=125916
3168
3169         Reviewed by Csaba Osztrogonác.
3170
3171         Do not call length() in each iteration.
3172
3173         * dom/Element.cpp:
3174         (WebCore::Element::cloneAttributesFromElement):
3175         * dom/Node.cpp:
3176         (WebCore::Node::dumpStatistics):
3177
3178 2013-12-19  Beth Dakin  <bdakin@apple.com>
3179
3180         REGRESSION: cnn.com will continue to reveal 1 px of overhang after rubber-banding 
3181         at the top
3182         https://bugs.webkit.org/show_bug.cgi?id=126054
3183
3184         Reviewed by Simon Fraser.
3185
3186         This regression was caused by http://trac.webkit.org/changeset/160791 It turns out 
3187         that the line of code I removed was not always a no-op. In some instances, like on 
3188         cnn.com, it would ensure that our final scroll position after a rubber-band was 
3189         not something within the overhang area. It was still wrong in its assumption that 
3190         rubber-band is always bouncing back the spot it originated from. So this patch 
3191         continues to ignore the rubber-bands origin, and instead finds the nearest point 
3192         that is not in the overhang area, and scrolls to that point instead of the origin.
3193
3194         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
3195         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
3196         (WebCore::ScrollingTreeScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
3197         * platform/mac/ScrollAnimatorMac.h:
3198         * platform/mac/ScrollAnimatorMac.mm:
3199         (WebCore::ScrollAnimatorMac::adjustScrollPositionToBoundsIfNecessary):
3200         * platform/mac/ScrollElasticityController.h:
3201         * platform/mac/ScrollElasticityController.mm:
3202         (WebCore::ScrollElasticityController::snapRubberBandTimerFired):
3203
3204 2013-12-19  Simon Fraser  <simon.fraser@apple.com>
3205
3206         Clarify the behavior of composited canvases
3207         https://bugs.webkit.org/show_bug.cgi?id=126042
3208
3209         Reviewed by Tim Horton.
3210
3211         Different platforms composite 2D and 3D canvases in different ways.
3212         
3213         "Accelerated 2D" canvases, and WebGL are always set as GraphicsLayer
3214         contents.
3215         
3216         "IOSurface" canvases (Mac and iOS-only) get a compositing layer, but
3217         paint into it (because this is fast, and a convenient way to get
3218         synchronization).
3219         
3220         So make these behaviors explicit in RenderLayerBacking and RenderLayerCompositor.
3221         No behavior changes on OS X, bug fix on iOS.
3222
3223         * rendering/RenderLayerBacking.cpp:
3224         (WebCore::canvasCompositingStrategy):
3225         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3226         (WebCore::RenderLayerBacking::containsPaintedContent):
3227         (WebCore::RenderLayerBacking::contentChanged):
3228         * rendering/RenderLayerBacking.h:
3229         * rendering/RenderLayerCompositor.cpp:
3230         (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
3231
3232 2013-12-19  Joseph Pecoraro  <pecoraro@apple.com>
3233
3234         Web Inspector: Add InspectorFrontendHost.debuggableType to let the frontend know it's backend is JavaScript or Web
3235         https://bugs.webkit.org/show_bug.cgi?id=126016
3236
3237         Reviewed by Timothy Hatcher.
3238
3239         * inspector/InspectorFrontendHost.cpp:
3240         (WebCore::InspectorFrontendHost::debuggableType):
3241         * inspector/InspectorFrontendHost.h:
3242         * inspector/InspectorFrontendHost.idl:
3243         Expose the debuggableType to the frontend. In WebCore it is always a "web" type.
3244
3245 2013-12-19  Benjamin Poulain  <benjamin@webkit.org>
3246
3247         Add an utility class to simplify generating function calls
3248         https://bugs.webkit.org/show_bug.cgi?id=125972
3249
3250         Reviewed by Geoffrey Garen.
3251
3252         FunctionCall is a little helper class to make function calls from the JIT
3253         in 3 or 4 lines.
3254
3255         FunctionCall takes a StackAllocator, a RegisterAllocator and a function pointer.
3256         When the call is generated, the helper saves the registers as necessary, aligns
3257         the stack, does the call, restores the stack, and restore the registers.
3258
3259         * cssjit/FunctionCall.h: Added.
3260         (WebCore::FunctionCall::FunctionCall):
3261         (WebCore::FunctionCall::setFunctionAddress):
3262         (WebCore::FunctionCall::setFirstArgument):
3263         (WebCore::FunctionCall::call):
3264
3265         (WebCore::FunctionCall::callAndBranchOnCondition): Most test functions used
3266         with FunctionCall return a boolean. When the boolean is the sole purpose of the function
3267         call, this provides an easy way to branch on the boolean without worrying about registers.
3268
3269         The return register is tested first, then all the saved registers are restored from the stack
3270         (which can include the return register), finally the flags are used for a jump.
3271
3272         (WebCore::FunctionCall::prepareAndCall):
3273         (WebCore::FunctionCall::cleanupPostCall):
3274         (WebCore::FunctionCall::saveAllocatedRegisters):
3275         (WebCore::FunctionCall::restoreAllocatedRegisters):
3276         * WebCore.xcodeproj/project.pbxproj:
3277         * cssjit/FunctionCall.h: Added.
3278         (WebCore::FunctionCall::FunctionCall):
3279         (WebCore::FunctionCall::setFunctionAddress):
3280         (WebCore::FunctionCall::setFirstArgument):
3281         (WebCore::FunctionCall::call):
3282         (WebCore::FunctionCall::callAndBranchOnCondition):
3283         (WebCore::FunctionCall::prepareAndCall):
3284         (WebCore::FunctionCall::cleanupPostCall):
3285         (WebCore::FunctionCall::saveAllocatedRegisters):
3286         (WebCore::FunctionCall::restoreAllocatedRegisters):
3287
3288 2013-12-19  Anders Carlsson  <andersca@apple.com>
3289
3290         Begin stubbing out the KeyedDecoder class
3291         https://bugs.webkit.org/show_bug.cgi?id=126031
3292
3293         Reviewed by Andreas Kling.
3294
3295         KeyedDecoder is going to be the new way to decode back forward trees.
3296
3297         * history/HistoryItem.cpp:
3298         (WebCore::HistoryItem::decodeBackForwardTree):
3299         * history/HistoryItem.h:
3300         * platform/KeyedCoding.h:
3301         (WebCore::KeyedDecoder::~KeyedDecoder):
3302
3303 2013-12-19  Oliver Hunt  <oliver@apple.com>
3304
3305         DOM bindings should use thisValue for attributes
3306         https://bugs.webkit.org/show_bug.cgi?id=126011
3307
3308         Reviewed by Antti Koivisto.
3309
3310         Make all standard DOM attributes use the thisValue instead
3311         of the slot object.  This requires using a dynamic cast in
3312         the attribute getters. Happily for normal uses this a single
3313         indirect load and pointer compare, and we were already doing
3314         it for many attributes.
3315
3316         Alas it's too expensive to do this on the window object still
3317         due to the proxy indirection that intercepts global variable
3318         access.  I'll correct this in a follow on patch (bug 126013).
3319
3320         A number of custom getters have also been updated to use the
3321         thisValue and full type checks.
3322
3323         This patch still leaves the index and generic named getters
3324         on the slot based model as fixing these cases requires more
3325         complicated changes.
3326
3327         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
3328         (WebCore::cssPropertyGetterPixelOrPosPrefixCallback):
3329         (WebCore::cssPropertyGetterCallback):
3330         * bindings/js/JSPluginElementFunctions.cpp:
3331         (WebCore::pluginElementPropertyGetter):
3332         * bindings/scripts/CodeGeneratorJS.pm:
3333         (GenerateImplementation):
3334         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
3335         (WebCore::jsTestActiveDOMObjectExcitingAttr):
3336         (WebCore::jsTestActiveDOMObjectConstructor):
3337         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
3338         (WebCore::jsTestCustomNamedGetterConstructor):
3339         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
3340         (WebCore::jsTestEventConstructorAttr1):
3341         (WebCore::jsTestEventConstructorAttr2):
3342         (WebCore::jsTestEventConstructorConstructor):
3343         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
3344         (WebCore::jsTestEventTargetConstructor):
3345         * bindings/scripts/test/JS/JSTestException.cpp:
3346         (WebCore::jsTestExceptionName):
3347         (WebCore::jsTestExceptionConstructor):
3348         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
3349         (WebCore::jsTestGenerateIsReachableConstructor):
3350         * bindings/scripts/test/JS/JSTestInterface.cpp:
3351         (WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttr):
3352         (WebCore::jsTestInterfaceConstructorImplementsStaticAttr):
3353         (WebCore::jsTestInterfaceImplementsStr1):
3354         (WebCore::jsTestInterfaceImplementsStr2):
3355         (WebCore::jsTestInterfaceImplementsStr3):
3356         (WebCore::jsTestInterfaceImplementsNode):
3357         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
3358         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
3359         (WebCore::jsTestInterfaceSupplementalStr1):
3360         (WebCore::jsTestInterfaceSupplementalStr2):
3361         (WebCore::jsTestInterfaceSupplementalStr3):
3362         (WebCore::jsTestInterfaceSupplementalNode):
3363         (WebCore::jsTestInterfaceConstructor):
3364         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3365         (WebCore::jsTestMediaQueryListListenerConstructor):
3366         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
3367         (WebCore::jsTestNamedConstructorConstructor):
3368         * bindings/scripts/test/JS/JSTestNode.cpp:
3369         (WebCore::jsTestNodeConstructor):
3370         * bindings/scripts/test/JS/JSTestObj.cpp:
3371         (WebCore::jsTestObjReadOnlyLongAttr):
3372         (WebCore::jsTestObjReadOnlyStringAttr):
3373         (WebCore::jsTestObjReadOnlyTestObjAttr):
3374         (WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
3375         (WebCore::jsTestObjConstructorStaticStringAttr):
3376         (WebCore::jsTestObjConstructorTestSubObj):
3377         (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
3378         (WebCore::jsTestObjEnumAttr):
3379         (WebCore::jsTestObjByteAttr):
3380         (WebCore::jsTestObjOctetAttr):
3381         (WebCore::jsTestObjShortAttr):
3382         (WebCore::jsTestObjUnsignedShortAttr):
3383         (WebCore::jsTestObjLongAttr):
3384         (WebCore::jsTestObjLongLongAttr):
3385         (WebCore::jsTestObjUnsignedLongLongAttr):
3386         (WebCore::jsTestObjStringAttr):
3387         (WebCore::jsTestObjTestObjAttr):
3388         (WebCore::jsTestObjXMLObjAttr):
3389         (WebCore::jsTestObjCreate):
3390         (WebCore::jsTestObjReflectedStringAttr):
3391         (WebCore::jsTestObjReflectedIntegralAttr):
3392         (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
3393         (WebCore::jsTestObjReflectedBooleanAttr):
3394         (WebCore::jsTestObjReflectedURLAttr):
3395         (WebCore::jsTestObjReflectedCustomIntegralAttr):
3396         (WebCore::jsTestObjReflectedCustomBooleanAttr):
3397         (WebCore::jsTestObjReflectedCustomURLAttr):
3398         (WebCore::jsTestObjTypedArrayAttr):
3399         (WebCore::jsTestObjAttrWithGetterException):
3400         (WebCore::jsTestObjAttrWithSetterException):
3401         (WebCore::jsTestObjStringAttrWithGetterException):
3402         (WebCore::jsTestObjStringAttrWithSetterException):
3403         (WebCore::jsTestObjCustomAttr):
3404         (WebCore::jsTestObjWithScriptStateAttribute):
3405         (WebCore::jsTestObjWithScriptExecutionContextAttribute):
3406         (WebCore::jsTestObjWithScriptStateAttributeRaises):
3407         (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
3408         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
3409         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
3410         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
3411         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
3412         (WebCore::jsTestObjConditionalAttr1):
3413         (WebCore::jsTestObjConditionalAttr2):
3414         (WebCore::jsTestObjConditionalAttr3):
3415         (WebCore::jsTestObjConditionalAttr4Constructor):
3416         (WebCore::jsTestObjConditionalAttr5Constructor):
3417         (WebCore::jsTestObjConditionalAttr6Constructor):
3418         (WebCore::jsTestObjCachedAttribute1):
3419         (WebCore::jsTestObjCachedAttribute2):
3420         (WebCore::jsTestObjAnyAttribute):
3421         (WebCore::jsTestObjContentDocument):
3422         (WebCore::jsTestObjMutablePoint):
3423         (WebCore::jsTestObjImmutablePoint):
3424         (WebCore::jsTestObjStrawberry):
3425         (WebCore::jsTestObjStrictFloat):
3426         (WebCore::jsTestObjDescription):
3427         (WebCore::jsTestObjId):
3428         (WebCore::jsTestObjHash):
3429         (WebCore::jsTestObjReplaceableAttribute):
3430         (WebCore::jsTestObjNullableDoubleAttribute):
3431         (WebCore::jsTestObjNullableLongAttribute):
3432         (WebCore::jsTestObjNullableBooleanAttribute):
3433         (WebCore::jsTestObjNullableStringAttribute):
3434         (WebCore::jsTestObjNullableLongSettableAttribute):
3435         (WebCore::jsTestObjNullableStringValue):
3436         (WebCore::jsTestObjAttribute):
3437         (WebCore::jsTestObjAttributeWithReservedEnumType):
3438         (WebCore::jsTestObjConstructor):
3439         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
3440         (WebCore::jsTestOverloadedConstructorsConstructor):
3441         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3442         (WebCore::jsTestSerializedScriptValueInterfaceValue):
3443         (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
3444         (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
3445         (WebCore::jsTestSerializedScriptValueInterfacePorts):
3446         (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
3447         (WebCore::jsTestSerializedScriptValueInterfaceConstructor):
3448         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3449         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
3450         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
3451         (WebCore::jsTestTypedefsConstructorTestSubObj):
3452         (WebCore::jsTestTypedefsAttrWithGetterException):
3453         (WebCore::jsTestTypedefsAttrWithSetterException):
3454         (WebCore::jsTestTypedefsStringAttrWithGetterException):
3455         (WebCore::jsTestTypedefsStringAttrWithSetterException):
3456         (WebCore::jsTestTypedefsConstructor):
3457         * bindings/scripts/test/JS/JSattribute.cpp:
3458         (WebCore::jsattributeReadonly):
3459         (WebCore::jsattributeConstructor):
3460         * bindings/scripts/test/JS/JSreadonly.cpp: