<rdar://problem/13341666> WebKit should always build against an SDK.
[WebKit.git] / Source / WebCore / ChangeLog
1 2013-10-10  Mark Rowe  <mrowe@apple.com>
2
3         <rdar://problem/13341666> WebKit should always build against an SDK.
4
5         Have all projects default to building against the OS X Internal SDK for the Production
6         configuration. For the Debug and Release configurations, look for UseInternalSDK.xcconfig
7         to determine whether the OS X Internal SDK should be used. If not, use the normal OS X SDK.
8
9         Reviewed by Dan Bernstein.
10
11
12         * Configurations/Base.xcconfig:
13         * Configurations/DebugRelease.xcconfig:
14
15 2013-10-10  Hans Muller  <hmuller@adobe.com>
16
17         [CSS Shapes] clampToUnsigned() should return unsigned, not int
18         https://bugs.webkit.org/show_bug.cgi?id=122601
19
20         Reviewed by Andreas Kling.
21
22         Corrected the return type for clampToUnsigned() in MathExtras.h. It's now unsigned.
23         No new tests since this is just an internal refactoring of existing code.
24
25         * rendering/shapes/RasterShape.cpp:
26         (WebCore::RasterShape::marginIntervals): Use the redefined clampToUnsigned method.
27
28 2013-10-10  Bem Jones-Bey  <bjonesbe@adobe.com>
29
30         [CSS Shapes] New positioning model: Shape cropped to margin box
31         https://bugs.webkit.org/show_bug.cgi?id=118092
32
33         Reviewed by Alexandru Chiculita.
34
35         Clip the shape to the margin box when it extends out the left or right
36         edges. Also added a few local variables to make the code easier to
37         read.
38
39         Tests: csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-001-ref.html
40                csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-004.html
41                csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-005.html
42                csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-006.html
43
44         * rendering/shapes/ShapeOutsideInfo.cpp:
45         (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
46
47 2013-10-10  Daniel Bates  <dabates@apple.com>
48
49         Avoid resizing the internal buffer of SharedBuffer when creating a PurgeableBuffer
50         https://bugs.webkit.org/show_bug.cgi?id=122516
51
52         Reviewed by Darin Adler.
53
54         Currently when we create a PurgeableBuffer from a SharedBuffer we may
55         resize the internal buffer of the SharedBuffer so that it can fit the
56         concatenated contents of all of its segments before copying this
57         internal buffer to the internal buffer of the PurgeableBuffer. Instead,
58         we can avoid resizing the internal buffer of SharedBuffer by allocating
59         a PurgeableBuffer and then copying the internal buffer of SharedBuffer
60         and its segments directly into it.
61
62         * platform/PurgeableBuffer.h:
63         (WebCore::PurgeableBuffer::createUninitialized): Add inline implementation
64         when building with ENABLE_PURGEABLE_MEMORY disabled.
65         * platform/SharedBuffer.cpp:
66         (WebCore::SharedBuffer::createPurgeableBuffer): Implemented in terms of
67         SharedBuffer::{copyBufferAndClear, createUninitialized}().
68         (WebCore::SharedBuffer::copyBufferAndClear): Added.
69         (WebCore::SharedBuffer::buffer): Moved logic to copy segments/data array to
70         SharedBuffer::copyBufferAndClear() and modified this function to use it.
71         * platform/SharedBuffer.h:
72         * platform/cf/SharedBufferCF.cpp:
73         (WebCore::SharedBuffer::copyBufferAndClear): Renamed; formerly called SharedBuffer::copyDataArrayAndClear.
74         * platform/mac/PurgeableBufferMac.cpp:
75         (WebCore::allocatePurgeableBuffer): Added.
76         (WebCore::PurgeableBuffer::createUninitialized): Added.
77         (WebCore::PurgeableBuffer::create): Moved logic to allocate a purgeable buffer into
78         PurgeableBuffer::createUninitialized() and modified this function to use it.
79
80 2013-10-09  Chris Fleizach  <cfleizach@apple.com>
81
82         AX: VoiceOver speaking too much when group elements with tabindex=-1 are used
83         https://bugs.webkit.org/show_bug.cgi?id=122574
84
85         Reviewed by Mario Sanchez Prada.
86
87         Tests: accessibility/negative-tabindex-does-not-expose-label.html
88
89         Elements that expose tabindex=-1 are being identified as generic focusable elements for accessibility.
90         Which among other things, determines whether to create an accessible name for the object. 
91         This has the negative effect of causing VoiceOver to speak way too much information when navigating inside
92         a <div> with this attribute.
93
94         * accessibility/AccessibilityNodeObject.cpp:
95         (WebCore::AccessibilityNodeObject::visibleText):
96         (WebCore::AccessibilityNodeObject::title):
97
98 2013-10-10  Andreas Kling  <akling@apple.com>
99
100         Remove custom finalizer for Node JS wrappers.
101         <https://webkit.org/b/122603>
102
103         Reviewed by Geoff Garen.
104
105         Node can just use the auto-generated finalizer, the custom one was
106         identical to what the generator would output.
107
108 2013-10-10  Andreas Kling  <akling@apple.com>
109
110         CTTE: activeDOMWindow() and firstDOMWindow() should return references.
111         <https://webkit.org/b/122598>
112
113         Reviewed by Anders Carlsson.
114
115         Now that wrappers vend references to their WebCore objects, follow
116         up and make these two return references as well.
117
118 2013-10-10  Mario Sanchez Prada  <mario.prada@samsung.com>
119
120         [ATK] Missing checks in returnIfWebKitAccessibleIsInvalid
121         https://bugs.webkit.org/show_bug.cgi?id=122600
122
123         Reviewed by Chris Fleizach.
124
125         Check that the AccessibilityObject associated to the ATK wrapper
126         is not NULL and contains a valid reference to the document before
127         calling AccessibilityObject::updateBackingStore().
128
129         * accessibility/atk/WebKitAccessibleUtil.h: Add extra checks.
130
131 2013-10-10  Andreas Kling  <akling@apple.com>
132
133         Clean up JSDOMWindowShell a little.
134         <https://webkit.org/b/122599>
135
136         Reviewed by Anders Carlsson.
137
138         - Have impl() return a DOMWindow& instead of a pointer.
139         - Store the DOMWrapperWorld in a Ref instead of a RefPtr.
140         - Reuse TRY_TO_UNWRAP_WITH_INTERFACE in EventTarget bindings.
141
142 2013-10-10  Sergio Correia  <sergio.correia@openbossa.org>
143
144         Make XPathGrammar.y bison3-friendly again after r157205
145         https://bugs.webkit.org/show_bug.cgi?id=122595
146
147         Reviewed by Anders Carlsson.
148
149         No new tests, build fix.
150
151         * xml/XPathGrammar.y: Replace YYLEX_PARAM with %lex-param, as the
152         former was removed in bison3.
153
154 2013-10-10  Andreas Kling  <akling@apple.com>
155
156         SVGUseElement: Use iterative traversal to find disallowed elements.
157         <https://webkit.org/b/122596>
158
159         Reviewed by Antti Koivisto.
160
161         Rewrote subtreeContainsDisallowedElement() in SVGUseElement.cpp to
162         use iterative traversal with descendantsOfType<Element> instead of
163         recursing through the tree.
164
165 2013-10-10  Andreas Kling  <akling@apple.com>
166
167         Move RenderObject::layout() to RenderElement.
168         <https://webkit.org/b/122537>
169
170         Reviewed by Antti Koivisto.
171
172         RenderText will ASSERT_NOT_REACHED() in its layout(), so move this
173         to RenderElement. This allows us to use the fast firstChild()
174         instead of virtual dispatch.
175
176         The needsLayout() bit remains on RenderObject for now. Moving that
177         to RenderElement is a far more involved change.
178
179 2013-10-10  Chris Fleizach  <cfleizach@apple.com>
180
181         AX: Crash at WebCore::accessibleNameForNode when visiting Facebook
182         https://bugs.webkit.org/show_bug.cgi?id=122572
183
184         Reviewed by Mario Sanchez Prada.
185
186         Test: accessibility/aria-labeled-with-hidden-node.html
187
188         Handle the case where aria-labelledby references a non-rendered node.
189
190         * accessibility/AccessibilityNodeObject.cpp:
191         (WebCore::accessibleNameForNode):
192
193 2013-10-10  Zan Dobersek  <zdobersek@igalia.com>
194
195         REGRESSION(r157210): Crashes in WebCore::ScopedEventQueue::dispatchEvent for platforms using GCC
196         https://bugs.webkit.org/show_bug.cgi?id=122592
197
198         Reviewed by Gustavo Noronha Silva.
199
200         * dom/ScopedEventQueue.cpp:
201         (WebCore::ScopedEventQueue::dispatchEvent): When calling EventDispatcher::dispatchEvent(), the GCC-compiled code
202         first creates a copy of the PassRefPtr<Event> object that's being passed into the method call. The copy will be used
203         in that method while the original is left with a null pointer. Only after that is the original queried for its pointer
204         while trying to get the Event's target, resulting in a crash due to calling the Event::target() on a null pointer.
205         To avoid it, pass a naked Event pointer to the method call. This will create a new PassRefPtr object without nullifying
206         the original one.
207
208 2013-10-10  Andreas Kling  <akling@apple.com>
209
210         Use more Element iterators in SVG code.
211         <http://webkit.org/b/121127>
212
213         Reviewed by Antti Koivisto.
214
215         Use childrenOfType to iterate over only SVGElement (or even more
216         specific) children in a bunch of places.
217
218         Also auto-generate type helpers for SVGElement and SVGStopElement.
219
220 2013-10-10  Andreas Kling  <akling@apple.com>
221
222         JS DOM wrappers' impl() functions should return references.
223         <https://webkit.org/b/122497>
224
225         Reviewed by Antti Koivisto.
226
227         JS DOM wrappers always have a corresponding WebCore object during
228         their lifetime, so make impl() return a reference.
229
230 2013-10-10  Sergio Correia  <sergio.correia@openbossa.org>
231
232         Fix debug build after r157210
233         https://bugs.webkit.org/show_bug.cgi?id=122593
234
235         Reviewed by Andreas Kling.
236
237         No new tests, build fix.
238
239         * dom/EventContext.cpp:
240         (WebCore::TouchEventContext::handleLocalEvents): Fix ASSERT, now that
241         event is a reference instead of a pointer.
242
243 2013-10-10  Andreas Kling  <akling@apple.com>
244
245         Tighten some renderer access in Document.
246         <https://webkit.org/b/121865>
247
248         Reviewed by Antti Koivisto.
249
250         A bit of Node/Element and RenderObject/RenderElement tightening.
251
252 2013-10-08  Andreas Kling  <akling@apple.com>
253
254         rangeOfContents() should take a Node&.
255         <https://webkit.org/b/122438>
256
257         Reviewed by Darin Adler.
258
259         All callers of rangeOfContents() either have a Node& already,
260         or do some kind of null-checking before calling it.
261
262 2013-10-08  Sergio Villar Senin  <svillar@igalia.com>
263
264         [CSS Grid Layout] Implement support for grid-template
265         https://bugs.webkit.org/show_bug.cgi?id=103313
266
267         Reviewed by Dean Jackson.
268
269         Based on Blink r153427, r155199 and r155712 by <jchaffraix@chromium.org>
270
271         Test: fast/css-grid-layout/grid-template-get-set.html
272
273         Recognize, parse, store and return properly the value of
274         grid-template. It required some extra parsing code because the
275         specs mandates to check that the defined grid areas are indeed
276         rectangular. Named grid areas are still not fully supported, will
277         be done in a follow up patch.
278
279         As validating involves building the grid areas a new CSSValue was
280         added to hold the computed value. Note that we have to track the
281         explicit size of the named grid areas as the named grid areas
282         (".") are not tracked in our HashMap of grid areas.
283
284         This change also involves moving GridCoordinate and GridSpan to a
285         separate file in order to share the code that describes the grid
286         area coordinates.
287
288         * CMakeLists.txt: Added new files to the build.
289         * GNUmakefile.list.am: Ditto.
290         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
291         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
292         * WebCore.xcodeproj/project.pbxproj: Ditto.
293         * css/CSSComputedStyleDeclaration.cpp:
294         (WebCore::ComputedStyleExtractor::propertyValue):
295         * css/CSSGridTemplateValue.cpp: Added.
296         (WebCore::CSSGridTemplateValue::CSSGridTemplateValue):
297         (WebCore::stringForPosition):
298         (WebCore::CSSGridTemplateValue::customCSSText):
299         * css/CSSGridTemplateValue.h: Added.
300         (WebCore::CSSGridTemplateValue::create):
301         (WebCore::CSSGridTemplateValue::~CSSGridTemplateValue):
302         (WebCore::CSSGridTemplateValue::gridAreaMap):
303         (WebCore::CSSGridTemplateValue::rowCount):
304         (WebCore::CSSGridTemplateValue::columnCount):
305         (WebCore::toCSSGridTemplateValue):
306         * css/CSSParser.cpp:
307         (WebCore::CSSParser::parseValue):
308         (WebCore::CSSParser::parseGridTemplate): create the grid areas and
309         validate that they define rectangular sections.
310         * css/CSSParser.h:
311         * css/CSSPropertyNames.in: Added -webkit-grid-template.
312         * css/CSSValue.cpp:
313         (WebCore::CSSValue::equals): add support for the new CSSGridTemplateValue.
314         (WebCore::CSSValue::cssText): Ditto.
315         (WebCore::CSSValue::destroy): Ditto.
316         * css/CSSValue.h:
317         (WebCore::CSSValue::isGridTemplateValue):
318         * css/StyleResolver.cpp:
319         (WebCore::StyleResolver::applyProperty):
320         * rendering/RenderGrid.cpp:
321         (WebCore::RenderGrid::cachedGridCoordinate): Replaced RenderGrid::GridSpan by WebCore::GridSpan.
322         (WebCore::RenderGrid::resolveGridPositionsFromAutoPlacementPosition): Ditto.
323         (WebCore::RenderGrid::resolveGridPositionsFromStyle): Ditto.
324         (WebCore::RenderGrid::resolveGridPositionAgainstOppositePosition): Ditto.
325         (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition): Ditto.
326         (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): Ditto.
327         (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto.
328         * rendering/RenderGrid.h: Took GridSpan and GridCoordinate out.
329         * rendering/style/GridCoordinate.h: Added.
330         (WebCore::GridSpan::create):
331         (WebCore::GridSpan::GridSpan):
332         (WebCore::GridSpan::operator==):
333         (WebCore::GridCoordinate::GridCoordinate):
334         (WebCore::GridCoordinate::operator==):
335         (WebCore::GridCoordinate::operator!=):
336         * rendering/style/RenderStyle.h:
337         * rendering/style/StyleGridData.cpp:
338         (WebCore::StyleGridData::StyleGridData):
339         * rendering/style/StyleGridData.h:
340         (WebCore::StyleGridData::operator==):
341
342 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
343
344         Make EventDispatcher::dispatch comprehensible
345         https://bugs.webkit.org/show_bug.cgi?id=122588
346
347         Reviewed by Andreas Kling.
348
349         Merged EventDispatcher::dispatchEventAtCapturing, EventDispatcher::dispatchEventAtTarget,
350         EventDispatcher::dispatchEventAtBubbling, and EventDispatcher::dispatchEventPostProcess into EventDispatcher::dispatch,
351         and extracted static local callDefaultEventHandlersInTheBubblingOrder and dispatchEventInDOM out of it.
352
353         Also made handleLocalEvents of subclasses of EventContext and Node take Event& instead of Event*.
354
355         * dom/EventContext.cpp: The following functions now take Event& instead of Event*.
356         (WebCore::EventContext::handleLocalEvents):
357         (WebCore::MouseOrFocusEventContext::handleLocalEvents):
358         (WebCore::TouchEventContext::handleLocalEvents):
359         * dom/EventContext.h:
360
361         * dom/EventDispatcher.cpp:
362         (WebCore::callDefaultEventHandlersInTheBubblingOrder): Extracted from EventDispatcher::dispatchEventPostProcess,
363         which is now merged into EventDispatcher::dispatch.
364         (WebCore::dispatchEventInDOM): Extracted out of EventDispatcher::dispatch, EventDispatcher::dispatchEventAtCapturing,
365         EventDispatcher::dispatchEventAtTarget and EventDispatcher::dispatchEventAtBubbling. This function is responsible for
366         dispatching the event for capturing, at the target, and then bubbling through the event path chain.
367         (WebCore::EventDispatcher::dispatch): EventDispatcher::dispatchEventPostProcess got merged into this. The calls to
368         dispatchEventAtCapturing, dispatchEventAtTarget, and dispatchEventAtBubbling are replaced by a single call to
369         dispatchEventInDOM.
370         * dom/EventDispatcher.h:
371
372         * dom/FocusEvent.h:
373         (WebCore::toFocusEvent): Added the version that takes a reference.
374         * dom/MouseEvent.h:
375         (WebCore::toMouseEvent): Ditto.
376         * dom/TouchEvent.h:
377         (WebCore::toTouchEvent): Ditto.
378         * dom/Node.cpp:
379         (WebCore::Node::handleLocalEvents): Now takes Event& instead of Event*.
380         * dom/Node.h:
381         * dom/WindowEventContext.cpp:
382         (WebCore::WindowEventContext::handleLocalEvents): Ditto.
383         * dom/WindowEventContext.h:
384         * html/HTMLFormElement.cpp:
385         (WebCore::HTMLFormElement::handleLocalEvents): Ditto.
386         * html/HTMLFormElement.h:
387
388 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
389
390         Another build fix after r157204.
391
392         * dom/EventDispatcher.cpp:
393         (WebCore::EventDispatcher::dispatch):
394
395 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
396
397         Build fix after r157204.
398
399         * dom/EventDispatcher.cpp:
400         (WebCore::EventDispatcher::dispatch):
401
402 2013-10-07  Darin Adler  <darin@apple.com>
403
404         Use unique_ptr instead of deleteAllValues in XPath
405         https://bugs.webkit.org/show_bug.cgi?id=121082
406
407         Reviewed by Anders Carlsson.
408
409         * dom/Attr.h: Made the namespaceURI function public so it can be called by
410         code in XPath. Since the class is FINAL, calls won't do virtual dispatch.
411
412         * xml/XPathExpression.cpp:
413         (WebCore::XPathExpression::XPathExpression): Added. Use std::move.
414         (WebCore::XPathExpression::createExpression): Use the new Parser::parseStatement
415         and more std::move.
416         (WebCore::XPathExpression::~XPathExpression): Removed now-unneeded delete.
417         * xml/XPathExpression.h: Removed unused create function. Use std::unique_ptr.
418
419         * xml/XPathExpressionNode.cpp:
420         (WebCore::XPath::Expression::evaluationContext): Use NeverDestroyed instead of
421         DEFINE_STATIC_LOCAL.
422         (WebCore::XPath::Expression::setSubexpressions): Added. Used to set all the
423         subexpressions at once rather than adding one at a time.
424
425         * xml/XPathExpressionNode.h: Use plain unsigned instead of unsigned long.
426         Eliminated the ParseNode class, used only by the parser to delete objects,
427         which we now do with %destructor. Made more functions protected. Fixed the
428         capitalization of the word "subexpression". Made m_subexpressions be a Vector
429         of std::unique_ptr.
430
431         * xml/XPathFunctions.cpp: Marked all the classes FINAL and all their virtual
432         functions OVERRIDE. Reduced some of the boilerplate.
433         (WebCore::XPath::Function::setArguments): Passed in the name so we don't have
434         to store the function names in all the function objects.
435         (WebCore::XPath::FunId::evaluate): Use std::move instead of Value::adopt.
436         (WebCore::XPath::FunLocalName::evaluate): Use emptyString instead of "".
437         (WebCore::XPath::FunNamespaceURI::evaluate): Ditto.
438         (WebCore::XPath::FunName::evaluate): Ditto.
439         (WebCore::XPath::FunSubstringBefore::evaluate): Ditto.
440         (WebCore::XPath::FunSubstringAfter::evaluate): Ditto.
441         (WebCore::XPath::FunSubstring::evaluate): Ditto.
442         (WebCore::XPath::FunLang::evaluate): Use Value(false) so we can make the
443         constructor that takes a boolean explicit.
444         (WebCore::XPath::FunFalse::evaluate): Ditto.
445         (WebCore::XPath::populateFunctionMap): Changed idiom slightly to match other
446         maps we set up.
447         (WebCore::XPath::Function::create): Refactored createFunction into three
448         member functions of this name.
449
450         * xml/XPathFunctions.h: Made all the Function members private or protected
451         except for Function::create.
452
453         * xml/XPathGrammar.y: Changed the parser to use a reference instead of
454         a pointer, and to pass the reference through to yylex as well. Break up
455         the union into pieces and add %destructor as needed to make sure everything
456         gets deallocated if parsing fails. Added a new top level rule "Top" so that
457         we would not try to set the parse result multiple times during parsing.
458         Call setParseResult instead of setting m_topExpr directly. Use std::unique_ptr
459         to adopt pointers from the union. Removed all the register/unregister calls
460         that used to be used to manage storage. Also changed the four different node
461         types to be separate tokens instead of using string matching at this level
462         for them.
463
464         * xml/XPathNodeSet.cpp:
465         (WebCore::XPath::NodeSet::sort): Removed const_cast since m_isSorted and
466         m_nodes are now both marked mutable. Also set m_isSorted after sorting; this
467         was an oversight that hurt performance before.
468         (WebCore::XPath::NodeSet::traversalSort): Ditto.
469         (WebCore::XPath::NodeSet::firstNode): Use nullptr.
470         (WebCore::XPath::NodeSet::anyNode): Ditto.
471
472         * xml/XPathNodeSet.h: Removed unneeded extra includes. Removed the
473         WTF_MAKE_FAST_ALLOCATED for NodeSet since we never allocate these on the heap.
474         Added a constructor that takes a single node. Deleted the swap function, since
475         we now move instead of swap. Deleted the append function that takes a raw Node*,
476         since calling the PassRefPtr<Node> overload does the same thing. Removed the
477         unused reverse function. Marked both m_isSorted and m_nodes mutable so the
478         sort function can be const.
479
480         * xml/XPathParser.cpp: Moved the Token struct in here instead of the header.
481         (WebCore::XPath::populateAxisNamesMap):Renamed to match our normal naming scheme,
482         and changed to use add instead of set, use WTF_ARRAY_LENGTH, and not use a typedef.
483         (WebCore::XPath::parseAxisName): Related style changes, including renaming to
484         better reflect the way this works with a boolean.
485         (WebCore::XPath::Parser::nextTokenInternal): Updated to call parseAxisName,
486         and to produce four separate tokens for the four node type functions.
487         (WebCore::XPath::Parser::nextToken): Renamed local variable.
488         (WebCore::XPath::Parser::Parser): Made this a real constructor that takes arguments
489         and initializes all the fields. Deleted the unneeded reset function.
490         (WebCore::XPath::Parser::lex): Changed to take an argument of an appropriate type
491         instead of casting from void*. Also changed the string code to leak a StringImpl,
492         which is now what the grammar code expects.
493         (WebCore::XPath::Parser::expandQualifiedName): Renamed from expandQName. Changed
494         to set m_sawNamespaceError instead of relying on code in the grammar to do it.
495         (WebCore::XPath::Parser::parseStatement): Removed most of the code in this function.
496         Changed to a much simpler model. Also made this a static member function so it
497         takes care of creating the parser itself and does not need to call reset. Also
498         changed return value to be a std::unique_ptr to make ownership more clear.
499
500         * xml/XPathParser.h: Added a declaration of YYSTYPE. Removed unneeded forward
501         declarations and moved Token into the cpp file. Deleted most public functions,
502         leaving only parseStatement, the entry point, and the three functions needed by
503         the grammar, lex, expandQualifiedName, and setParseResult.
504
505         * xml/XPathPath.cpp:
506         (WebCore::XPath::Filter::Filter): Move in the arguments instead of copying them.
507         (WebCore::XPath::Filter::evaluate): Updated for name and type changes.
508         (WebCore::XPath::LocationPath::LocationPath): Ditto.
509         (WebCore::XPath::LocationPath::evaluate): Ditto. Also use std::move instead of
510         Value::adopt and instead of swap.
511         (WebCore::XPath::LocationPath::appendStep): Changed to take ownership of a
512         unique_ptr.
513         (WebCore::XPath::LocationPath::prependStep): Ditto. Renamed from insertFirstStep.
514         (WebCore::XPath::Path::Path): Move in the arguments.
515
516         * xml/XPathPath.h: Removed unneeded includes. Changed arugument types to use
517         std::unique_ptr to pass ownership in. Added override to all virtual functions.
518         Changed data members to use std::unique_ptr.
519
520         * xml/XPathPredicate.cpp:
521         (WebCore::XPath::StringExpression::StringExpression): Use move.
522         (WebCore::XPath::Negative::Negative): Added.
523         (WebCore::XPath::Negative::evaluate): Updated for name changes.
524         (WebCore::XPath::NumericOp::NumericOp): Use move.
525         (WebCore::XPath::NumericOp::evaluate): Tweak formatting.
526         (WebCore::XPath::EqTestOp::EqTestOp): Use move.
527         (WebCore::XPath::EqTestOp::evaluate): Updated for name changes.
528         (WebCore::XPath::LogicalOp::LogicalOp): Use move.
529         (WebCore::XPath::LogicalOp::shortCircuitOn): Made shorter.
530         (WebCore::XPath::LogicalOp::evaluate): Updated for name changes.
531         (WebCore::XPath::Union::Union): Added.
532         (WebCore::XPath::Union::evaluate): Updated for name changes.
533         (WebCore::XPath::evaluatePredicate): Updated for name changes, to use
534         ASCIILiteral, and to be a free function that takes an expression.
535         (WebCore::XPath::predicateIsContextPositionSensitive): Added.
536         Replaces the Predicate::isContextPositionSensitive function.
537
538         * xml/XPathPredicate.h: Made all the classes FINAL and added a lot of OVERRIDE.
539         Added a constructor for Negative and Union. Got rid of the Predicate class and
540         instead provided two functions that operate on an Expression.
541
542         * xml/XPathStep.cpp:
543         (WebCore::XPath::Step::Step): Use move instea dof copying.
544         (WebCore::XPath::Step::~Step): Removed calls to deleteAllValues.
545         (WebCore::XPath::Step::optimize): Use move instead of swap and copy. Also
546         operate directly on the data members of the node test instead of using functions
547         that just return references to those data members.
548         (WebCore::XPath::optimizeStepPair): Use references instead of pointers, move
549         instead of swap, and early return instead of nested if statements.
550         (WebCore::XPath::Step::predicatesAreContextListInsensitive): Use references.
551         (WebCore::XPath::Step::evaluate): Use references instead of pointers and move
552         instead of swap.
553         (WebCore::XPath::nodeMatchesBasicTest): Use references instead of pointers and
554         more specific types when possible.
555         (WebCore::XPath::nodeMatches): Ditto.
556         (WebCore::XPath::Step::nodesInAxis): Use references instead of pointers. Added
557         braces to match style. Use words instead of letters for local variable names.
558
559         * xml/XPathStep.h: Make almost everything in NodeTest private since callers
560         just set these up and Step is what actually uses them. Changed the predicate
561         vectors to be vectors of Predicate instead of Predicate*, since a Predicate
562         is just a wrapper around a single std::unique_ptr<Expression>. Changed to use
563         move instead of copy when making a Step and to use references instead of pointers.
564
565         * xml/XPathValue.cpp: Use std::numeric_limits explicitly instead of using using.
566         Got rid of Value::adopt.
567         (WebCore::XPath::Value::toNodeSet): Use NeverDestroyed instead of DEFINE_STATE_LOCAL.
568         Updated for name changes.
569         (WebCore::XPath::Value::modifiableNodeSet): Ditto.
570         (WebCore::XPath::Value::toBoolean): Ditto.
571         (WebCore::XPath::Value::toNumber): Ditto.
572         (WebCore::XPath::Value::toString): Ditto. Use ASCIILiteral.
573
574         * xml/XPathValue.h: Moved ValueData class inside the Value class and renamed
575         it Value::Data. Removed fancy trick that avoids turning pointers into bool, and
576         just take the risk. Made many, but not all, of the Value constructors explicit
577         since we normally are explicit at call sites. Removed unneeded unsigned long
578         overload of the constructor. Changed the NodeSet version of the constructor to
579         use std::move and use that instead of AdoptTag.
580
581 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
582
583         Build fix. Add back the missing call to EventRetargeter::adjustForTouchEvent.
584
585         * dom/EventDispatcher.cpp:
586         (WebCore::EventDispatcher::dispatch):
587
588 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
589
590         EventDispatchMediator is goner
591         https://bugs.webkit.org/show_bug.cgi?id=122581
592
593         Reviewed by Antti Koivisto.
594
595         Killed the death.
596
597         * CMakeLists.txt:
598         * GNUmakefile.list.am:
599         * WebCore.vcxproj/WebCore.vcxproj:
600         * WebCore.vcxproj/WebCore.vcxproj.filters:
601         * WebCore.xcodeproj/project.pbxproj:
602         * dom/DOMAllInOne.cpp:
603         * dom/Element.cpp:
604         (WebCore::Element::dispatchWheelEvent):
605         (WebCore::Element::dispatchKeyEvent):
606         (WebCore::Element::dispatchFocusEvent):
607         (WebCore::Element::dispatchBlurEvent):
608         * dom/EventDispatchMediator.cpp: Removed.
609         * dom/EventDispatchMediator.h: Removed.
610         * dom/EventDispatcher.cpp:
611         (WebCore::EventDispatcher::dispatchEvent):
612         (WebCore::EventDispatcher::dispatchScopedEvent):
613         * dom/EventDispatcher.h:
614         * dom/KeyboardEvent.h:
615         * dom/MouseEvent.h:
616         * dom/Node.cpp:
617         (WebCore::Node::dispatchScopedEvent):
618         (WebCore::Node::dispatchEvent):
619         (WebCore::Node::dispatchGestureEvent):
620         (WebCore::Node::dispatchTouchEvent):
621         (WebCore::Node::dispatchUIRequestEvent):
622         * dom/Node.h:
623         * dom/ScopedEventQueue.cpp:
624         (WebCore::ScopedEventQueue::~ScopedEventQueue):
625         (WebCore::ScopedEventQueue::enqueueEvent):
626         (WebCore::ScopedEventQueue::dispatchAllEvents):
627         (WebCore::ScopedEventQueue::dispatchEvent):
628         * dom/ScopedEventQueue.h:
629         * dom/TouchEvent.cpp:
630         * dom/TouchEvent.h:
631         * dom/UIEvent.h:
632         * dom/WheelEvent.h:
633
634 2013-10-09  Andreas Kling  <akling@apple.com>
635
636         Kill some RenderObject::firstChildSlow/lastChildSlow usage.
637         <https://webkit.org/b/122582>
638
639         Reviewed by Antti Koivisto.
640
641         Use tighter typing in some random places to flush out unnecessary use
642         of virtual first/last child getters on RenderObject.
643
644         There are more of these opportunities, but I left them untouched to
645         avoid snowballing this patch.
646
647 2013-10-09  Simon Fraser  <simon.fraser@apple.com>
648
649         Fix some bad paths in the Xcode project
650         https://bugs.webkit.org/show_bug.cgi?id=122583
651
652         Reviewed by Mark Rowe.
653
654         Fix paths for some storage quota-related files, and remove
655         reference to mediaControlsQuickTime.css which was removed in r156546.
656
657         * WebCore.xcodeproj/project.pbxproj:
658
659 2013-10-09  Alexandru Chiculita  <achicu@adobe.com>
660
661         Web Inspector: [CSS Regions] Display the correct fragment boxes for content inside flow threads
662         https://bugs.webkit.org/show_bug.cgi?id=122291
663
664         Reviewed by Timothy Hatcher.
665
666         Tests: inspector/elements/highlight-regions-flow-horiz-bt.html
667                inspector/elements/highlight-regions-flow-transform-horiz-bt.html
668                inspector/elements/highlight-regions-flow-transform-vert-lr.html
669                inspector/elements/highlight-regions-flow-transform-vert-rl.html
670                inspector/elements/highlight-regions-flow-transform.html
671                inspector/elements/highlight-regions-flow-vert-lr.html
672                inspector/elements/highlight-regions-flow-vert-rl.html
673                inspector/elements/highlight-regions-flow.html
674
675         Nodes inside a RenderFlowThread can be split across multiple regions. This patch adds the required
676         code to compute "fragments" for each region. Each fragment will display its own label.
677
678         There are a couple of changes:
679         1. The node highlight object now has a "scroll" property to hold the main view's scroll offset.
680         2. There's a "fragment" array to get a list of quads for each renderer fragment. Renderers outside 
681         RenderFlowThreads will just have one fragment.
682         3. ElementInfo now has two more properties: "regionFlowInfo" (renamed from former flowInfo) and "contentFlowInfo".
683         If the renderer is a RenderRegion it will have a regionFlowInfo. If the renderer is inside a RenderFlowThread
684         then it will have a "contentFlowInfo".
685
686         * inspector/InspectorOverlay.cpp:
687         (WebCore::InspectorOverlay::getHighlight): It should now take a "region" parameter to customize the output for a specific
688         containing region.
689         (WebCore::buildObjectForHighlight):
690         (WebCore::buildObjectForCSSRegionContentClip): We need to know how to clip the fragments inside regions.
691         (WebCore::buildObjectForRendererFragments): Extracted code from buildObjectForHighlight and added
692         the new regions lookup code.
693         (WebCore::buildObjectForElementInfo): Extracted from buildObjectForHighlight.
694         (WebCore::InspectorOverlay::buildObjectForHighlightedNode):
695         (WebCore::InspectorOverlay::drawQuadHighlight):
696         * inspector/InspectorOverlayPage.css: There can be multiple labels on screen at once, so I've
697         created the #element-title-template element that we clone for each label. .element-title-container is now
698         holding all the .element-title elements, so that we can remove them all at once.
699         (.element-title-container):
700         (.element-title):
701         (#element-title-template):
702         (.tag-name):
703         (.node-id):
704         (.class-name):
705         * inspector/InspectorOverlayPage.html:
706         * inspector/InspectorOverlayPage.js:
707         (reset):
708         (_toggleOptionalValue):
709         (_createElementTitle): Creates an element populated with data read from elementInfo.
710         (_drawElementTitle): Added code to create more labels for multiple fragments.
711         (_drawRegionsHighlight):
712         (_drawFragmentHighlight):
713         (drawNodeHighlight): Consolidated the scroll property into a canvas.transform.
714
715 2013-10-09  Simon Fraser  <simon.fraser@apple.com>
716
717         Layout assertion failure in WebCore::RenderView::paint
718         https://bugs.webkit.org/show_bug.cgi?id=121925
719
720         Reviewed by Tim Horton.
721
722         This fixes the assertion seen when running WK2 API tests.
723         
724         If RenderLayerCompositor::flushPendingLayerChanges() was called before
725         the root layer was attached, it would set m_shouldFlushOnReattach
726         to do the flush later, after attaching (bypassing the runloop observer
727         that updated layout if necessary).
728         
729         This could cause us to get to a CA commit without having updated
730         layout, hence the assertion.
731         
732         Fix by having attachRootLayer() schedule a layer flush, rather than doing
733         one right away.
734
735         * rendering/RenderLayerCompositor.cpp:
736         (WebCore::RenderLayerCompositor::attachRootLayer):
737
738 2013-10-09  Bem Jones-Bey  <bjonesbe@adobe.com>
739
740         Move float logical location/dimension methods to RenderBlockFlow
741         https://bugs.webkit.org/show_bug.cgi?id=122282
742
743         Reviewed by David Hyatt.
744
745         I recently moved the logical location and dimension methods from
746         RenderBlock to FloatingObject. This made it so that the methods needed
747         to take in the horizontal writing mode of the FloatingObject's
748         container in order to do their thing. When looking into how to fix
749         this, I came to understand why RenderBlock has methods to determine
750         the logical location and dimensions of its children, when the children
751         themselves have those methods: the methods on RenderBlock are for
752         determining the logical value in the writing mode of that RenderBlock,
753         and the method on the child is for determining the logical value in
754         the writing mode of the child.
755
756         Since the floating object list has moved from RenderBlock to
757         RenderBlockFlow, this change moves the logical dimension methods from
758         FloatingObject to RenderBlockFlow.
759
760         No new tests, no new behavior.
761
762         * rendering/FloatingObjects.cpp:
763         (WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
764         (WebCore::FloatingObjects::FloatingObjects):
765         (WebCore::::updateOffsetIfNeeded):
766         (WebCore::::collectIfNeeded):
767         (WebCore::::getHeightRemaining):
768         * rendering/FloatingObjects.h:
769         * rendering/LineWidth.cpp:
770         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
771         * rendering/RenderBlockFlow.cpp:
772         (WebCore::RenderBlockFlow::clearFloats):
773         (WebCore::RenderBlockFlow::repaintOverhangingFloats):
774         (WebCore::RenderBlockFlow::insertFloatingObject):
775         (WebCore::RenderBlockFlow::removeFloatingObject):
776         (WebCore::RenderBlockFlow::removeFloatingObjectsBelow):
777         (WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
778         (WebCore::RenderBlockFlow::positionNewFloats):
779         (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow):
780         (WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
781         (WebCore::RenderBlockFlow::addOverhangingFloats):
782         (WebCore::RenderBlockFlow::hasOverhangingFloat):
783         (WebCore::RenderBlockFlow::addIntrudingFloats):
784         * rendering/RenderBlockFlow.h:
785         (WebCore::RenderBlockFlow::logicalTopForFloat):
786         (WebCore::RenderBlockFlow::logicalBottomForFloat):
787         (WebCore::RenderBlockFlow::logicalLeftForFloat):
788         (WebCore::RenderBlockFlow::logicalRightForFloat):
789         (WebCore::RenderBlockFlow::logicalWidthForFloat):
790         (WebCore::RenderBlockFlow::logicalHeightForFloat):
791         (WebCore::RenderBlockFlow::logicalSizeForFloat):
792         (WebCore::RenderBlockFlow::pixelSnappedLogicalTopForFloat):
793         (WebCore::RenderBlockFlow::pixelSnappedLogicalBottomForFloat):
794         (WebCore::RenderBlockFlow::pixelSnappedLogicalLeftForFloat):
795         (WebCore::RenderBlockFlow::pixelSnappedLogicalRightForFloat):
796         (WebCore::RenderBlockFlow::setLogicalTopForFloat):
797         (WebCore::RenderBlockFlow::setLogicalLeftForFloat):
798         (WebCore::RenderBlockFlow::setLogicalHeightForFloat):
799         (WebCore::RenderBlockFlow::setLogicalWidthForFloat):
800         * rendering/RenderBlockLineLayout.cpp:
801         (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded):
802         (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
803         (WebCore::updateSegmentsForShapes):
804         (WebCore::LineBreaker::nextSegmentBreak):
805         (WebCore::RenderBlockFlow::positionNewFloatOnLine):
806         * rendering/shapes/ShapeOutsideInfo.cpp:
807         (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
808         * rendering/shapes/ShapeOutsideInfo.h:
809
810 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
811
812         Remove MouseEventDispatchMediator
813         https://bugs.webkit.org/show_bug.cgi?id=122580
814
815         Reviewed by Antti Koivisto.
816
817         Removed. Will remove EventDispatchMediator next.
818
819         * dom/Element.cpp:
820         (WebCore::Element::dispatchMouseEvent):
821         * dom/MouseEvent.cpp:
822         * dom/MouseEvent.h:
823         * dom/Node.cpp:
824         (WebCore::Node::dispatchEvent):
825         (WebCore::Node::dispatchTouchEvent):
826
827 2013-10-09  Ryosuke Niwa  <rniwa@webkit.org>
828
829         Remove all subclasses of EventDispatchMediator except MouseEventDispatchMediator
830         https://bugs.webkit.org/show_bug.cgi?id=122579
831
832         Reviewed by Antti Koivisto.
833
834         Removed UIRequestEventDispatchMediator, GestureEventDispatchMediator, KeyboardEventDispatchMediator,
835         and WheelEventDispatchMediator. Moved the code in the respective mediateAndDispatchEvent functions
836         to their respective dispatch*Event functions in Node.cpp and Element.cpp.
837
838         * Modules/indieui/UIRequestEvent.cpp:
839         (WebCore::UIRequestEvent::eventInterface):
840         * Modules/indieui/UIRequestEvent.h:
841         * dom/Element.cpp:
842         (WebCore::deltaMode):
843         (WebCore::Element::dispatchWheelEvent):
844         (WebCore::Element::dispatchKeyEvent):
845         * dom/GestureEvent.cpp:
846         * dom/GestureEvent.h:
847         * dom/KeyboardEvent.cpp:
848         * dom/KeyboardEvent.h:
849         * dom/Node.cpp:
850         (WebCore::Node::dispatchGestureEvent):
851         (WebCore::Node::dispatchUIRequestEvent):
852         * dom/WheelEvent.cpp:
853         * dom/WheelEvent.h:
854
855 2013-10-09  Bem Jones-Bey  <bjonesbe@adobe.com>
856
857         [CSS Shapes] Lines that don't intersect shape-outside should ignore both left and right margins
858         https://bugs.webkit.org/show_bug.cgi?id=122570
859
860         Reviewed by Alexandru Chiculita.
861
862         Due to an oversight, the left margin on left floats and the right
863         margin on right floats was having an effect on lines that did not
864         intersect the shape (but did intersect the margin box of the float).
865         By the spec, lines that do not intersect the shape should act as if
866         the float isn't there, so those margins should have no effect on
867         those lines. This patch fixes this.
868
869         No new tests, it is covered by the existing tests now that they have
870         been fixed to have the proper behavior.
871
872         * rendering/shapes/ShapeOutsideInfo.cpp:
873         (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
874
875 2013-10-09  Bem Jones-Bey  <bjonesbe@adobe.com>
876
877         [CSS Shapes] Clip shape-outside to the bottom of the margin box
878         https://bugs.webkit.org/show_bug.cgi?id=122562
879
880         Reviewed by Alexandru Chiculita.
881
882         The spec says that a shape-outside shape must be clipped to the
883         margin box. This implements clipping the bottom of the shape to the
884         bottom of the margin box.
885
886         Test: csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-000.html
887               csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-001.html
888               csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-002.html
889               csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-clipped-003.html
890
891         * rendering/RenderBlockFlow.cpp:
892         (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow):
893
894 2013-10-09  Sergio Correia  <sergio.correia@openbossa.org>
895
896         [CoordinatedGraphics] ASSERTION FAILED: !m_flushingLayers (after r156291)
897         https://bugs.webkit.org/show_bug.cgi?id=122016
898
899         Reviewed by Noam Rosenthal.
900
901         To prevent calling scheduleLayerFlush() inside flushCompositingState(),
902         we now only call m_client->notifyFlushRequired() - which will trigger
903         scheduleLayerFlush() - if we are not already flushing layer changes.
904
905         No new tests, covered by existing ones.
906
907         * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
908         (WebCore::CompositingCoordinator::notifyFlushRequired): Check if we
909         are already flushing layer changes before calling notifyFlushRequired.
910         (WebCore::CompositingCoordinator::sizeDidChange): Use notifyFlushRequired()
911         from CompositingCoordinator instead of calling the one from m_client
912         directly.
913         (WebCore::CompositingCoordinator::createGraphicsLayer): Ditto.
914         (WebCore::CompositingCoordinator::detachLayer): Ditto.
915         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
916         (WebCore::CoordinatedGraphicsLayer::notifyFlushRequired): Added helper
917         to check whether we are flushing layer changes before calling client()'s
918         notifyFlushRequired(). It returns a boolean indicating whether it
919         called the client's method.
920         (WebCore::CoordinatedGraphicsLayer::didChangeLayerState): Use the
921         notifyFlushRequired() helper.
922         (WebCore::CoordinatedGraphicsLayer::didChangeAnimations): Ditto.
923         (WebCore::CoordinatedGraphicsLayer::didChangeChildren): Ditto.
924         (WebCore::CoordinatedGraphicsLayer::didChangeFilters): Ditto.
925         (WebCore::CoordinatedGraphicsLayer::didChangeImageBacking): Ditto.
926         (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay): Ditto.
927         (WebCore::CoordinatedGraphicsLayer::setContentsToCanvas): Ditto.
928         (WebCore::CoordinatedGraphicsLayer::flushCompositingState): Ditto.
929         (WebCore::CoordinatedGraphicsLayer::tiledBackingStoreHasPendingTileCreation):Ditto.
930         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
931         Declaration of the notifyFlushRequired() helper.
932
933 2013-10-09  Chris Fleizach  <cfleizach@apple.com>
934
935         AX: VoiceOver double speaks all items in <li> nodes
936         https://bugs.webkit.org/show_bug.cgi?id=122564
937
938         Reviewed by Brent Fulgham.
939
940         Test: platform/mac/accessibility/native-list-item-should-not-expose-label.html
941
942         * accessibility/AccessibilityNodeObject.cpp:
943         (WebCore::AccessibilityNodeObject::visibleText):
944
945 2013-10-09  Sergio Correia  <sergio.correia@openbossa.org>
946
947         CoordinatedGraphics: Fix integer rounding when computing pixel alignment
948         https://bugs.webkit.org/show_bug.cgi?id=122565
949
950         Reviewed by Noam Rosenthal.
951
952         Replace roundedIntRect call in computePixelAlignment() with enclosingIntRect,
953         so that very small rectangles (after content scaling) don't appear to be empty,
954         creating a crash later.
955
956         Test: transforms/3d/general/rotate-45-degrees-long-inner-text-in-dt.html
957
958         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
959         (WebCore::CoordinatedGraphicsLayer::computePixelAlignment):
960
961 2013-10-08  Ryosuke Niwa  <rniwa@webkit.org>
962
963         Rename EventRetargeter::adjustForRelatedTarget to EventPath::setRelatedTarget
964         https://bugs.webkit.org/show_bug.cgi?id=122539
965
966         Reviewed by Darin Adler.
967
968         Renamed EventRetargeter::adjustForRelatedTarget to EventPath::setRelatedTarget and got rid of
969         EventDispatchMediators for focus events. We set the related target inside EventDispatcher's
970         dispatch via Event::relatedTarget, which is now virtual and overridden by mouse/focus events.
971
972         * dom/Element.cpp: The following functions no longer use FocusEventDispatchMediators.
973         (WebCore::Element::dispatchFocusInEvent):
974         (WebCore::Element::dispatchFocusOutEvent):
975         (WebCore::Element::dispatchFocusEvent):
976         (WebCore::Element::dispatchBlurEvent):
977
978         * dom/Event.h:
979         (WebCore::Event::relatedTarget): Added as a virtual function.
980
981         * dom/EventDispatcher.cpp:
982         (WebCore::EventDispatcher::dispatchEvent): Cache Event*.
983         (WebCore::EventDispatcher::dispatch): Call setRelatedTargetToPath at the beginning to update
984         related targets in the path.
985
986         * dom/EventDispatcher.h:
987
988         * dom/EventRetargeter.cpp:
989         (WebCore::EventPath::EventPath): Initialize m_origin, used in EventPath::setRelatedTarget.
990         (WebCore::EventRetargeter::adjustTouchList):
991         (WebCore::EventPath::setRelatedTarget): Renamed from EventRetargeter::adjustForRelatedTarget.
992         Delegated the nullity checks to callers by taking references instead of pointers.
993         (WebCore::EventRetargeter::calculateAdjustedNodes):
994
995         * dom/EventRetargeter.h: Removed AdjustedNodes typedef. It's just a Vector of RefPtr<Node>.
996
997         * dom/FocusEvent.cpp: Removed FocusEventDispatchMediators for focus events.
998         * dom/FocusEvent.h:
999
1000         * dom/MouseEvent.cpp:
1001         (WebCore::MouseEvent::toElement): Cache the related target now that relatedTarget() is virtual.
1002         (WebCore::MouseEvent::fromElement): Ditto.
1003         (WebCore::MouseEventDispatchMediator::mediateAndDispatchEvent): No longer sets the related
1004         targets since that's done in EventDispatcher::dispatch now.
1005
1006         * dom/MouseEvent.h:
1007
1008         * dom/Node.cpp: Removed obnoxious Node::dispatchScopedEventDispatchMediator.
1009         (WebCore::Node::dispatchScopedEvent):
1010         * dom/Node.h:
1011
1012         * html/shadow/MediaControlElements.cpp:
1013         (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler): Cache the related
1014         target in a local variable now that relatedTarget() is virtual.
1015
1016 2013-10-09  Chris Fleizach  <cfleizach@apple.com>
1017
1018         AX: VoiceOver does not speak aria-expanded state on iOS
1019         https://bugs.webkit.org/show_bug.cgi?id=122540
1020
1021         Expose aria-pressed state for iOS.
1022
1023         Reviewed by Mario Sanchez Prada.
1024
1025         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1026         (-[WebAccessibilityObjectWrapper accessibilityIsExpanded]):
1027
1028 2013-10-09  Carlos Garcia Campos  <cgarcia@igalia.com>
1029
1030         Unreviewed. Update GObject DOM symbols file after r157163.
1031
1032         * bindings/gobject/webkitdom.symbols:
1033
1034 2013-10-08  Anders Carlsson  <andersca@apple.com>
1035
1036         Remove RunLoopMac.mm
1037         https://bugs.webkit.org/show_bug.cgi?id=122527
1038
1039         Reviewed by Antti Koivisto.
1040
1041         RunLoop::setUseApplicationRunLoopOnMainRunLoop() is no longer used, so we can just use the run() and stop()
1042         implementations from RunLoopCF.
1043
1044         * WebCore.exp.in:
1045         * WebCore.xcodeproj/project.pbxproj:
1046         * platform/RunLoop.cpp:
1047         * platform/RunLoop.h:
1048         * platform/cf/RunLoopCF.cpp:
1049         (WebCore::RunLoop::stop):
1050         * platform/mac/RunLoopMac.mm: Removed.
1051
1052 2013-10-09  Mario Sanchez Prada  <mario.prada@samsung.com>
1053
1054         [ATK] Implement new API in AtkText: atk_text_get_string_at_offset()
1055         https://bugs.webkit.org/show_bug.cgi?id=120638
1056
1057         Reviewed by Gustavo Noronha Silva.
1058
1059         Implemented new atk_text_get_string_at_offset() API, introduced in
1060         ATK 2.9.4 to simplify how text at a given offset is retrieved.
1061
1062         * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
1063         (webkitAccessibleTextGetStringAtOffset): New function implementing
1064         the new API, which basically translates calls to the new API to
1065         calls to the old API using 'at' positions and START boundaries.
1066         (webkitAccessibleTextInterfaceInit): Hook the new function.
1067
1068 2013-10-09  Carlos Garcia Campos  <cgarcia@igalia.com>
1069
1070         [GTK] mouse wheel events are not considered to be mouse events
1071         https://bugs.webkit.org/show_bug.cgi?id=120648
1072
1073         Reviewed by Gustavo Noronha Silva.
1074
1075         Expose WheelEvent in the GObject DOM bindings API.
1076
1077         * bindings/gobject/GNUmakefile.am: Add new files to compilation.
1078         * bindings/gobject/WebKitDOMPrivate.cpp:
1079         (WebKit::wrap): Create a WebKitDOMWheelEvent when the given Event
1080         is a WheelEvent.
1081
1082 2013-10-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1083
1084         Unreviewed. Fix EFL buildbreak since r157152.
1085
1086         * dom/EventRetargeter.cpp:
1087         (WebCore::EventRetargeter::adjustForTouchEvent):
1088
1089 2013-10-08  Alex Christensen  <achristensen@webkit.org>
1090
1091         Improved WinLauncher.
1092         https://bugs.webkit.org/show_bug.cgi?id=122536
1093
1094         Reviewed by Brent Fulgham.
1095
1096         * platform/network/curl/ResourceHandleManager.cpp:
1097         (WebCore::cookieJarPath):
1098         Put cookies.dat into the AppData directory on Windows.
1099
1100 2013-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1101
1102         Remove the code erroneously in the previous commit.
1103
1104         * dom/EventDispatcher.h:
1105         (WebCore::EventPath::contextAt):
1106
1107 2013-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1108
1109         Turn EventPath into a real class
1110         https://bugs.webkit.org/show_bug.cgi?id=122533
1111
1112         Reviewed by Antti Koivisto.
1113
1114         Turned EventPath into a real class and made EventRetargeter::calculateEventPath its constructor.
1115         We can turn a lot of functions in EventRetargeter.cpp member functions of EventPath since many
1116         of them manipulate EventPath in one way or another.
1117
1118         * dom/EventContext.h:
1119         (WebCore::toMouseOrFocusEventContext):
1120         (WebCore::toTouchEventContext):
1121         * dom/EventDispatcher.cpp:
1122         (WebCore::EventDispatcher::EventDispatcher):
1123         (WebCore::EventDispatcher::dispatchEventAtCapturing):
1124         (WebCore::EventDispatcher::dispatchEventAtTarget):
1125         (WebCore::EventDispatcher::dispatchEventAtBubbling):
1126         (WebCore::EventDispatcher::dispatchEventPostProcess):
1127         (WebCore::EventDispatcher::topEventContext):
1128         (WebCore::EventPath::hasEventListeners):
1129         * dom/EventDispatcher.h:
1130         (WebCore::EventPath::isEmpty):
1131         (WebCore::EventPath::size):
1132         (WebCore::EventPath::item):
1133         (WebCore::EventPath::targetRespectingTargetRules):
1134         (WebCore::EventPath::shrink):
1135         (WebCore::EventPath::lastContextIfExists):
1136         * dom/EventRetargeter.cpp:
1137         (WebCore::EventPath::EventPath):
1138         (WebCore::EventRetargeter::adjustForTouchEvent):
1139         (WebCore::EventRetargeter::adjustForRelatedTarget):
1140         (WebCore::EventRetargeter::calculateAdjustedNodes):
1141         * dom/EventRetargeter.h:
1142         * inspector/InspectorInstrumentation.cpp:
1143         (WebCore::eventHasListeners):
1144         * inspector/InspectorInstrumentation.h:
1145
1146 2013-10-08  Alex Christensen  <achristensen@webkit.org>
1147
1148         Enabled all necessary files for Win64 build.
1149         https://bugs.webkit.org/show_bug.cgi?id=122530
1150
1151         Reviewed by Brent Fulgham.
1152
1153         * WebCore.vcxproj/WebCore.vcxproj:
1154         Enabled MediaPlayerPrivateFullscreenWindow and
1155         RenderLayerModelObject to be built in Win64 build.
1156
1157 2013-10-07  Sam Weinig  <sam@webkit.org>
1158
1159         Consolidate findString functions
1160         https://bugs.webkit.org/show_bug.cgi?id=122480
1161
1162         Reviewed by Darin Adler.
1163
1164         * editing/Editor.cpp:
1165         * editing/Editor.h:
1166         * editing/EditorCommand.cpp:
1167         (WebCore::executeFindString):
1168         * page/DOMWindow.cpp:
1169         (WebCore::DOMWindow::find):
1170         * page/Page.cpp:
1171         * page/Page.h:
1172         Fix a long standing FIXME.
1173
1174 2013-10-08  Bem Jones-Bey  <bjonesbe@adobe.com>
1175
1176         Move m_floatingObjects to RenderBlockFlow from RenderBlock
1177         https://bugs.webkit.org/show_bug.cgi?id=122512
1178
1179         Reviewed by David Hyatt.
1180
1181         Floats are part of block flow, not every RenderBlock can contain
1182         floars. This change makes it so that RenderBlock no longer can contain
1183         floats, only RenderBlockFlow can.
1184
1185         This also moves a bunch of line layout stuff over to RenderBlockFlow,
1186         but makes no effort to move all of line layout, as all of that is
1187         destined to move out of both RenderBlockFlow and RenderBlock into its
1188         own class.
1189
1190         No new tests, no behavior change.
1191
1192         * rendering/InlineIterator.h:
1193         (WebCore::InlineBidiResolver::appendRun):
1194         * rendering/LineWidth.cpp:
1195         (WebCore::LineWidth::LineWidth):
1196         * rendering/LineWidth.h:
1197         * rendering/RenderBlock.cpp:
1198         (WebCore::RenderBlock::styleWillChange):
1199         (WebCore::RenderBlock::styleDidChange):
1200         (WebCore::RenderBlock::splitFlow):
1201         (WebCore::RenderBlock::deleteLineBoxTree):
1202         (WebCore::RenderBlock::removeChild):
1203         (WebCore::RenderBlock::computeOverflow):
1204         (WebCore::RenderBlock::selectionGaps):
1205         (WebCore::RenderBlock::adjustForBorderFit):
1206         * rendering/RenderBlock.h:
1207         (WebCore::RenderBlock::containsFloats):
1208         (WebCore::RenderBlock::shouldSkipCreatingRunsForObject):
1209         (WebCore::RenderBlock::addOverflowFromFloats):
1210         (WebCore::RenderBlock::logicalRightFloatOffsetForLine):
1211         (WebCore::RenderBlock::logicalLeftFloatOffsetForLine):
1212         (WebCore::RenderBlock::moveAllChildrenOnRemovalTo):
1213         (WebCore::RenderBlock::paintFloats):
1214         (WebCore::RenderBlock::hitTestFloats):
1215         (WebCore::RenderBlock::clipOutFloatingObjects):
1216         * rendering/RenderBlockFlow.cpp:
1217         (WebCore::RenderBlockFlow::clearFloats):
1218         (WebCore::RenderBlockFlow::layoutBlock):
1219         (WebCore::RenderBlockFlow::layoutBlockChild):
1220         (WebCore::RenderBlockFlow::collapseMargins):
1221         (WebCore::RenderBlockFlow::clearFloatsIfNeeded):
1222         (WebCore::RenderBlockFlow::adjustBlockChildForPagination):
1223         (WebCore::RenderBlockFlow::containsFloat):
1224         (WebCore::RenderBlockFlow::styleDidChange):
1225         (WebCore::RenderBlockFlow::styleWillChange):
1226         (WebCore::RenderBlockFlow::deleteLineBoxTree):
1227         (WebCore::RenderBlockFlow::moveAllChildrenOnRemovalTo):
1228         (WebCore::RenderBlockFlow::addOverflowFromFloats):
1229         (WebCore::RenderBlockFlow::computeOverflow):
1230         (WebCore::RenderBlockFlow::repaintOverhangingFloats):
1231         (WebCore::RenderBlockFlow::paintFloats):
1232         (WebCore::RenderBlockFlow::clipOutFloatingObjects):
1233         (WebCore::RenderBlockFlow::createFloatingObjects):
1234         (WebCore::RenderBlockFlow::removeFloatingObjects):
1235         (WebCore::RenderBlockFlow::insertFloatingObject):
1236         (WebCore::RenderBlockFlow::removeFloatingObject):
1237         (WebCore::RenderBlockFlow::removeFloatingObjectsBelow):
1238         (WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
1239         (WebCore::RenderBlockFlow::positionNewFloats):
1240         (WebCore::RenderBlockFlow::newLine):
1241         (WebCore::RenderBlockFlow::logicalLeftFloatOffsetForLine):
1242         (WebCore::RenderBlockFlow::logicalRightFloatOffsetForLine):
1243         (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow):
1244         (WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
1245         (WebCore::RenderBlockFlow::addOverhangingFloats):
1246         (WebCore::RenderBlockFlow::hasOverhangingFloat):
1247         (WebCore::RenderBlockFlow::addIntrudingFloats):
1248         (WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
1249         (WebCore::RenderBlockFlow::markSiblingsWithFloatsForLayout):
1250         (WebCore::RenderBlockFlow::getClearDelta):
1251         (WebCore::RenderBlockFlow::hitTestFloats):
1252         (WebCore::RenderBlockFlow::adjustForBorderFit):
1253         * rendering/RenderBlockFlow.h:
1254         (WebCore::RenderBlockFlow::hasOverhangingFloats):
1255         * rendering/RenderBlockLineLayout.cpp:
1256         (WebCore::LineBreaker::LineBreaker):
1257         (WebCore::RenderBlockFlow::appendRunsForObject):
1258         (WebCore::RenderBlockFlow::createLineBoxes):
1259         (WebCore::RenderBlockFlow::constructLine):
1260         (WebCore::RenderBlockFlow::setMarginsForRubyRun):
1261         (WebCore::updateLogicalInlinePositions):
1262         (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
1263         (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
1264         (WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):
1265         (WebCore::setStaticPositions):
1266         (WebCore::RenderBlockFlow::handleTrailingSpaces):
1267         (WebCore::RenderBlockFlow::appendFloatingObjectToLastLine):
1268         (WebCore::constructBidiRunsForLine):
1269         (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
1270         (WebCore::RenderBlockFlow::layoutRunsAndFloats):
1271         (WebCore::RenderBlockFlow::restartLayoutRunsAndFloatsInRange):
1272         (WebCore::pushShapeContentOverflowBelowTheContentBox):
1273         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine):
1274         (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
1275         (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded):
1276         (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
1277         (WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
1278         (WebCore::RenderBlockFlow::repaintDirtyFloats):
1279         (WebCore::RenderBlockFlow::checkFloatsInCleanLine):
1280         (WebCore::RenderBlockFlow::determineStartPosition):
1281         (WebCore::RenderBlockFlow::determineEndPosition):
1282         (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
1283         (WebCore::RenderBlockFlow::matchedEndLine):
1284         (WebCore::shouldSkipWhitespaceAfterStartObject):
1285         (WebCore::updateSegmentsForShapes):
1286         (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
1287         (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
1288         (WebCore::RenderBlockFlow::positionNewFloatOnLine):
1289         * rendering/RenderBox.cpp:
1290         (WebCore::RenderBox::outermostBlockContainingFloatingObject):
1291         (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
1292         * rendering/RenderBox.h:
1293         * rendering/RenderBoxModelObject.cpp:
1294         (WebCore::RenderBoxModelObject::moveChildrenTo):
1295         * rendering/RenderInline.cpp:
1296         (WebCore::RenderInline::splitFlow):
1297
1298 2013-10-08  Dean Jackson  <dino@apple.com>
1299
1300         Support unprefixed WebGL context creation
1301         https://bugs.webkit.org/show_bug.cgi?id=122523
1302         <rdar://problem/15179463>
1303
1304         Reviewed by Simon Fraser.
1305
1306         Add support for the unprefixed "webgl" canvas context type.
1307
1308         Test: fast/canvas/webgl/unprefixed-context.html
1309
1310         * html/HTMLCanvasElement.cpp:
1311         (WebCore::HTMLCanvasElement::is3dType):
1312         * inspector/InjectedScriptCanvasModuleSource.js:
1313
1314 2013-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1315
1316         Rename EventDispatchMediator::dispatchEvent to mediateAndDispatchEvent
1317         https://bugs.webkit.org/show_bug.cgi?id=122522
1318
1319         Reviewed by Darin Adler.
1320
1321         Renamed EventDispatchMediator::dispatchEvent to EventDispatchMediator::mediateAndDispatchEvent
1322         to make the future refactoring easier.
1323
1324         * Modules/indieui/UIRequestEvent.cpp:
1325         (WebCore::UIRequestEventDispatchMediator::mediateAndDispatchEvent):
1326         * Modules/indieui/UIRequestEvent.h:
1327         * dom/EventDispatchMediator.cpp:
1328         (WebCore::EventDispatchMediator::mediateAndDispatchEvent):
1329         * dom/EventDispatchMediator.h:
1330         * dom/EventDispatcher.cpp:
1331         (WebCore::EventDispatcher::dispatchEvent):
1332         * dom/FocusEvent.cpp:
1333         (WebCore::FocusEventDispatchMediator::mediateAndDispatchEvent):
1334         (WebCore::BlurEventDispatchMediator::mediateAndDispatchEvent):
1335         (WebCore::FocusInEventDispatchMediator::mediateAndDispatchEvent):
1336         (WebCore::FocusOutEventDispatchMediator::mediateAndDispatchEvent):
1337         * dom/FocusEvent.h:
1338         * dom/GestureEvent.cpp:
1339         (WebCore::GestureEventDispatchMediator::mediateAndDispatchEvent):
1340         * dom/GestureEvent.h:
1341         * dom/KeyboardEvent.cpp:
1342         (WebCore::KeyboardEventDispatchMediator::mediateAndDispatchEvent):
1343         * dom/KeyboardEvent.h:
1344         * dom/MouseEvent.cpp:
1345         (WebCore::MouseEventDispatchMediator::mediateAndDispatchEvent):
1346         * dom/MouseEvent.h:
1347         * dom/TouchEvent.cpp:
1348         (WebCore::TouchEventDispatchMediator::mediateAndDispatchEvent):
1349         * dom/TouchEvent.h:
1350         * dom/WheelEvent.cpp:
1351         (WebCore::WheelEventDispatchMediator::mediateAndDispatchEvent):
1352         * dom/WheelEvent.h:
1353
1354 2013-10-08  Brent Fulgham  <bfulgham@apple.com>
1355
1356         [MathML] Use of floating point floor/ceil on LayoutUnits seems wrong
1357         https://bugs.webkit.org/show_bug.cgi?id=122367
1358
1359         Reviewed by Darin Adler.
1360
1361         * rendering/mathml/RenderMathMLOperator.cpp:
1362         (WebCore::RenderMathMLOperator::paintCharacter): Use member methods to compute
1363         correct floor/ceil values for LayoutUnits.
1364
1365 2013-10-07  Dean Jackson  <dino@apple.com>
1366
1367         Video -> pixel buffer output should not manage color spaces
1368         https://bugs.webkit.org/show_bug.cgi?id=122486
1369
1370         Reviewed by Tim Horton.
1371
1372         On Mac, when we draw a video into a canvas or WebGL, the
1373         output of the video should not be color managed. Instead, leave it
1374         as DeviceRGB so that it matches other colors in those elements.
1375         We'll hopefully solve this properly soon - making everything sRGB.
1376
1377         Test: media/video-canvas-drawing-output.html
1378
1379         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
1380         (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Pass on
1381         a CGImageRef via CGImageCreateCopyWithColorSpace rather than the raw data.
1382         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): Tell CoreImage
1383         to allocate a pixel buffer that is unmanaged.
1384
1385 2013-10-08  Lauro Neto  <lauro.neto@openbossa.org>
1386
1387         [MediaStream] Fix segfault in initializeMockSources()
1388         https://bugs.webkit.org/show_bug.cgi?id=122517
1389
1390         Reviewed by Darin Adler.
1391
1392         Calling release() and a member function on the same RefPtr
1393         as arguments to a function can lead to segfaults if the release
1394         call is evaluated first.
1395
1396         * platform/mock/MockMediaStreamCenter.cpp:
1397         (WebCore::initializeMockSources):
1398
1399 2013-10-08  Mihnea Ovidenie  <mihnea@adobe.com>
1400
1401         [CSSRegions] Regions with overflow: hidden should paint over positioned sibling
1402         https://bugs.webkit.org/show_bug.cgi?id=122389
1403
1404         Reviewed by Alexandru Chiculita.
1405
1406         As a follow-up from https://bugs.webkit.org/show_bug.cgi?id=122321, a region should not
1407         be a normal flow layer when it has overflow clip. Change existing test by adding overflow:hidden
1408         to the region element.
1409
1410         * rendering/RenderLayer.cpp:
1411         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
1412
1413 2013-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1414
1415         Simplify the loop in EventRetargeter::calculateEventPath
1416         https://bugs.webkit.org/show_bug.cgi?id=122500
1417
1418         Reviewed by Antti Koivisto.
1419
1420         Replaced the convoluted loop by two nested loops to make semantics clear.
1421
1422         * dom/EventRetargeter.cpp:
1423         (WebCore::EventRetargeter::calculateEventPath):
1424
1425 2013-10-08  ChangSeok Oh  <changseok.oh@collabora.com>
1426
1427         [GTK] Leak: GdkEvent retured by gtk_get_current_event is not freed.
1428         https://bugs.webkit.org/show_bug.cgi?id=122506
1429
1430         Reviewed by Gustavo Noronha Silva.
1431
1432         Gdk event returned by gtk_get_current_event should be freed after using it.
1433
1434         No functionality changed.
1435
1436         * platform/gtk/PopupMenuGtk.cpp:
1437         (WebCore::PopupMenuGtk::show):
1438
1439 2013-10-08  Ryosuke Niwa  <rniwa@webkit.org>
1440
1441         Use references in EventRetargeter::calculateEventPath and EventRetargeter::eventTargetRespectingTargetRules
1442         https://bugs.webkit.org/show_bug.cgi?id=122494
1443
1444         Reviewed by Antti Koivisto.
1445
1446         Use referenecs instead of pointers in ventRetargeter's calculateEventPath and eventTargetRespectingTargetRules.
1447         Also replace Vector<EventTarget*, 32> targetStack by a single pointer since we only append an item to
1448         the vector when it's empty and we always use the last item.
1449
1450         * dom/EventDispatcher.cpp:
1451         (WebCore::EventDispatcher::EventDispatcher):
1452         (WebCore::EventDispatcher::dispatchScopedEvent):
1453         (WebCore::EventDispatcher::dispatch):
1454         (WebCore::EventDispatcher::dispatchEventPostProcess):
1455         * dom/EventDispatcher.h:
1456         * dom/EventRetargeter.cpp:
1457         (WebCore::EventRetargeter::calculateEventPath):
1458         * dom/EventRetargeter.h:
1459         (WebCore::EventRetargeter::eventTargetRespectingTargetRules):
1460         * dom/Node.cpp:
1461         (WebCore::Node::dispatchScopedEventDispatchMediator):
1462
1463 2013-10-08  Mihnea Ovidenie  <mihnea@adobe.com>
1464
1465         [CSSRegions] Computed z-Index should return 0 instead of auto for a region
1466         https://bugs.webkit.org/show_bug.cgi?id=122405
1467
1468         Reviewed by David Hyatt.
1469
1470         Test: fast/regions/layers/region-zIndex-computedStyle.html
1471
1472         Adjust the z-index value for a region. Also, since a box with a z-Index
1473         that is non-auto receives a layer, i removed the requiresLayer override
1474         in RenderRegion and RenderMultiColumnSet.
1475
1476         * css/StyleResolver.cpp:
1477         (WebCore::StyleResolver::adjustRenderStyle):
1478         * rendering/RenderMultiColumnSet.cpp:
1479         * rendering/RenderMultiColumnSet.h:
1480         * rendering/RenderRegion.cpp:
1481         * rendering/RenderRegion.h:
1482         * rendering/style/RenderStyle.h:
1483
1484 2013-10-08  Andrei Bucur  <abucur@adobe.com>
1485
1486         [CSS Regions] Widows don't work if the first line in a region is aligned with the top of the region
1487         https://bugs.webkit.org/show_bug.cgi?id=122450
1488
1489         Reviewed by David Hyatt.
1490
1491         The patch adds a new function updateRegionForLine that updates the containing region for a line and the
1492         flag used to determine if it's the first line in that region. This is necessary because the code in
1493         adjustLinePositionForPagination is not sufficient to determine when an unforced break occurs and the line
1494         being positioned is the first one in the fragmentation container or not.
1495
1496         Test: fast/regions/regions-widows-float-top-aligned.html
1497
1498         * rendering/RenderBlockFlow.cpp:
1499         (WebCore::RenderBlockFlow::adjustLinePositionForPagination): Added FIXME comment.
1500         * rendering/RenderBlockFlow.h:
1501         * rendering/RenderBlockLineLayout.cpp:
1502         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
1503         (WebCore::RenderBlock::linkToEndLineIfNeeded):
1504         (WebCore::RenderBlock::determineStartPosition):
1505         (WebCore::RenderBlockFlow::updateRegionForLine): New function used to update the containing region and
1506         the first line flag.
1507
1508 2013-10-08  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1509
1510         Get EFL and GTK compiling with media stream enabled
1511         https://bugs.webkit.org/show_bug.cgi?id=122505
1512
1513         Reviewed by Philippe Normand.
1514
1515         After r157068
1516
1517         No new tests needed.
1518
1519         * GNUmakefile.list.am:
1520         * UseJSC.cmake:
1521
1522 2013-10-08  Hurnjoo Lee  <hurnjoo.lee@samsung.com>
1523
1524         Composited layer that painted into composited ancestor is not repainted after moving
1525         https://bugs.webkit.org/show_bug.cgi?id=114655
1526
1527         Reviewed by Simon Fraser.
1528
1529         Test: compositing/repaint/absolute-painted-into-composited-ancestor.html
1530
1531         Composited layers are currently skipping repainting after layout,
1532         if the repaint status is not NeedsFullRepaint. However, in case layers
1533         were painted into composited ancestor, they need to repaint.
1534
1535         * rendering/RenderLayer.cpp:
1536         (WebCore::RenderLayer::shouldRepaintAfterLayout):
1537
1538 2013-10-08  Zalan Bujtas  <zalan@apple.com>
1539
1540         Unreviewed. Rollout of r156536. ~5% regression in inline layout performance.
1541
1542         * rendering/LineWidth.cpp:
1543         * rendering/LineWidth.h:
1544         (WebCore::LineWidth::addUncommittedWidth):
1545         * rendering/RenderBlockLineLayout.cpp:
1546         (WebCore::LineBreaker::nextSegmentBreak):
1547
1548 2013-10-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1549
1550         Use toCSSFooValue() instead of using static_cast<const CSSFooValue*>
1551         https://bugs.webkit.org/show_bug.cgi?id=122491
1552
1553         Reviewed by Andreas Kling.
1554
1555         static_cast<const CSSFooValue*> wasn't cleanup. So, we need to use toCSSFooValue() for it.
1556         To use toCSSValue() will help to detect bad type-cast.
1557
1558         Besides static_cast<const WebKitCSSFooValue*> helper functions need to be added to support this use.
1559
1560         No new tests, no behavior change.
1561
1562         * css/CSSComputedStyleDeclaration.cpp:
1563         (WebCore::ComputedStyleExtractor::propertyMatches):
1564         * css/CSSImageGeneratorValue.cpp:
1565         (WebCore::CSSImageGeneratorValue::isFixedSize):
1566         (WebCore::CSSImageGeneratorValue::isPending):
1567         (WebCore::CSSImageGeneratorValue::knownToBeOpaque):
1568         * css/CSSValue.cpp:
1569         (WebCore::CSSValue::isImplicitInitialValue):
1570         (WebCore::CSSValue::addSubresourceStyleURLs):
1571         (WebCore::CSSValue::hasFailedOrCanceledSubresources):
1572         (WebCore::CSSValue::equals):
1573         (WebCore::CSSValue::cssText):
1574         (WebCore::CSSValue::serializeResolvingVariables):
1575         (WebCore::CSSValue::cloneForCSSOM):
1576         * css/StylePropertySet.cpp:
1577         (WebCore::StylePropertySet::PropertyReference::cssName):
1578         * css/WebKitCSSSVGDocumentValue.h:
1579         (WebCore::toWebKitCSSSVGDocumentValue):
1580         * css/WebKitCSSTransformValue.h:
1581         (WebCore::toWebKitCSSTransformValue):
1582
1583 2013-10-08  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
1584
1585         Get MediaStreamCenterGStreamer compiling again
1586         https://bugs.webkit.org/show_bug.cgi?id=122482
1587
1588         Reviewed by Eric Carlson.
1589
1590         r157068 was including a nonexistent header
1591
1592         No new tests needed.
1593
1594         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
1595
1596 2013-10-08  Mario Sanchez Prada  <mario.prada@samsung.com>
1597
1598         [ATK] Expose state of aria-invalid as ATK_STATE_INVALID_ENTRY
1599         https://bugs.webkit.org/show_bug.cgi?id=122104
1600
1601         Reviewed by Chris Fleizach.
1602
1603         Map invalid state of an AccessibilityObject to the proper AtkState.
1604
1605         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1606         (setAtkStateSetFromCoreObject): Add the mapping.
1607
1608 2013-10-07  Carlos Garcia Campos  <cgarcia@igalia.com>
1609
1610
1611         [GTK] media/video-src-blob.html
1612         https://bugs.webkit.org/show_bug.cgi?id=102586
1613
1614         Reviewed by Martin Robinson.
1615
1616         Add support for loading videos using blob URLs.
1617
1618         Fixes media/video-src-blob.html.
1619
1620         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1621         (webKitWebSrcStart): Use BufferData buffering policy for blob
1622         URLs.
1623         (webKitWebSrcGetProtocols): Add blob to the list of supported
1624         protocols.
1625         (webKitWebSrcSetUri): Consider blob URLs as valid.
1626
1627 2013-10-07  Ryosuke Niwa  <rniwa@webkit.org>
1628
1629         EventDispatchBehavior is unnecessary
1630         https://bugs.webkit.org/show_bug.cgi?id=122483
1631
1632         Reviewed by Andreas Kling.
1633
1634         Removed EventDispatchBehavior and changed the return type of determineDispatchBehavior to bool.
1635         Also renamed it to shouldEventCrossShadowBoundary to reflect the semantics more clear.
1636
1637         * dom/EventRetargeter.cpp:
1638         (WebCore::shouldEventCrossShadowBoundary):
1639         (WebCore::EventRetargeter::calculateEventPath):
1640         * dom/EventRetargeter.h:
1641
1642 2013-10-07  Ryosuke Niwa  <rniwa@webkit.org>
1643
1644         Make buildRelatedNodeMap and findRelatedNode static to EventRetargeter.cpp
1645         https://bugs.webkit.org/show_bug.cgi?id=122477
1646
1647         Reviewed by Antti Koivisto.
1648
1649         Make EventRetargeter::buildRelatedNodeMap and EventRetargeter::findRelatedNode static local functions
1650         in EventRetargeter.cpp since they're only called in EventRetargeter::calculateAdjustedNodes and don't
1651         depend on any oher member function or variable (EventRetarger doesn't have any member variables).
1652
1653         Also get rid of Vector local variables in both functions as they're redundant.
1654
1655         * dom/EventRetargeter.cpp:
1656         (WebCore::buildRelatedNodeMap): Moved. Replaced Vector<Node*, 32> relatedNodeStack by a single pointer
1657         since the only time we add an item to this Vector is when it's empty, and we always use or remove the
1658         last item.
1659         (WebCore::addRelatedNodeForUnmapedTreeScopes): Renamed from EventRetargeter::findRelatedNode. Removed
1660         Vector<TreeScope*, 32> parentTreeScopes since it only contains the ancestor tree scopes of scope up to
1661         a tree scope already in relatedNodeMap. We could simply remember this tree scope and re-traverse the
1662         ancestor tree scopes in the second loop.
1663         (WebCore::EventRetargeter::calculateAdjustedNodes):
1664         * dom/EventRetargeter.h:
1665
1666 2013-10-07  Andreas Kling  <akling@apple.com>
1667
1668         CTTE: EditCommand always has a Document.
1669         <https://webkit.org/b/122473>
1670
1671         Reviewed by Anders Carlsson.
1672
1673         Store a Ref<Document> in EditComment since it's never null.
1674
1675         Since Ref enforces more const consistency than RefPtr, I had to make
1676         document() and frame() non-const here. Only a single method depended
1677         on the old half-const behavior.
1678
1679 2013-10-07  Anders Carlsson  <andersca@apple.com>
1680
1681         Update test again.
1682
1683         * bindings/scripts/test/JS/JSTestCallback.cpp:
1684         (WebCore::JSTestCallback::~JSTestCallback):
1685
1686 2013-10-07  Commit Queue  <commit-queue@webkit.org>
1687
1688         Unreviewed, rolling out r157061.
1689         http://trac.webkit.org/changeset/157061
1690         https://bugs.webkit.org/show_bug.cgi?id=122479
1691
1692         Broke worker tests (Requested by andersca on #webkit).
1693
1694         * Modules/webdatabase/Database.cpp:
1695         (WebCore::DerefContextTask::create):
1696         (WebCore::DerefContextTask::DerefContextTask):
1697         (WebCore::Database::~Database):
1698         (WebCore::DeliverPendingCallbackTask::create):
1699         (WebCore::DeliverPendingCallbackTask::performTask):
1700         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask):
1701         (WebCore::Database::scheduleTransactionCallback):
1702         * Modules/webdatabase/DatabaseManager.cpp:
1703         (WebCore::DatabaseCreationCallbackTask::create):
1704         (WebCore::DatabaseCreationCallbackTask::performTask):
1705         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
1706         (WebCore::DatabaseManager::openDatabase):
1707         * Modules/webdatabase/SQLCallbackWrapper.h:
1708         (WebCore::SQLCallbackWrapper::clear):
1709         (WebCore::SQLCallbackWrapper::SafeReleaseTask::create):
1710         (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask):
1711         (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask):
1712         (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask):
1713         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
1714         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
1715         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
1716         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
1717         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create):
1718         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask):
1719         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask):
1720         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
1721         * bindings/js/JSCallbackData.h:
1722         (WebCore::DeleteCallbackDataTask::create):
1723         (WebCore::DeleteCallbackDataTask::performTask):
1724         (WebCore::DeleteCallbackDataTask::isCleanupTask):
1725         (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
1726         * bindings/js/JSDOMGlobalObjectTask.h:
1727         * bindings/js/JSDOMWindowBase.cpp:
1728         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
1729         * bindings/js/JSWorkerGlobalScopeBase.cpp:
1730         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
1731         * bindings/scripts/CodeGeneratorJS.pm:
1732         (GenerateCallbackImplementation):
1733         * dom/CrossThreadTask.h:
1734         (WebCore::CrossThreadTask1::create):
1735         (WebCore::CrossThreadTask1::performTask):
1736         (WebCore::CrossThreadTask2::create):
1737         (WebCore::CrossThreadTask2::performTask):
1738         (WebCore::CrossThreadTask3::create):
1739         (WebCore::CrossThreadTask3::performTask):
1740         (WebCore::CrossThreadTask4::create):
1741         (WebCore::CrossThreadTask4::performTask):
1742         (WebCore::CrossThreadTask5::create):
1743         (WebCore::CrossThreadTask5::performTask):
1744         (WebCore::CrossThreadTask6::create):
1745         (WebCore::CrossThreadTask6::performTask):
1746         (WebCore::CrossThreadTask7::create):
1747         (WebCore::CrossThreadTask7::performTask):
1748         (WebCore::CrossThreadTask8::create):
1749         (WebCore::CrossThreadTask8::performTask):
1750         (WebCore::createCallbackTask):
1751         * dom/Document.cpp:
1752         (WebCore::Document::addConsoleMessage):
1753         (WebCore::Document::addMessage):
1754         (WebCore::PerformTaskContext::PerformTaskContext):
1755         (WebCore::Document::postTask):
1756         (WebCore::Document::pendingTasksTimerFired):
1757         * dom/Document.h:
1758         * dom/ScriptExecutionContext.cpp:
1759         (WebCore::ProcessMessagesSoonTask::create):
1760         (WebCore::ProcessMessagesSoonTask::performTask):
1761         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
1762         * dom/ScriptExecutionContext.h:
1763         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create):
1764         (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
1765         * dom/StringCallback.cpp:
1766         (WebCore::StringCallback::scheduleCallback):
1767         * loader/appcache/ApplicationCacheGroup.cpp:
1768         (WebCore::CallCacheListenerTask::create):
1769         (WebCore::CallCacheListenerTask::CallCacheListenerTask):
1770         (WebCore::ApplicationCacheGroup::postListenerTask):
1771         * workers/DefaultSharedWorkerRepository.cpp:
1772         (WebCore::SharedWorkerProxy::postTaskToLoader):
1773         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
1774         (WebCore::SharedWorkerConnectTask::create):
1775         (WebCore::SharedWorkerConnectTask::performTask):
1776         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
1777         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
1778         * workers/WorkerEventQueue.cpp:
1779         (WebCore::WorkerEventQueue::enqueueEvent):
1780         * workers/WorkerGlobalScope.cpp:
1781         (WebCore::WorkerGlobalScope::close):
1782         (WebCore::WorkerGlobalScope::postTask):
1783         (WebCore::WorkerGlobalScope::addConsoleMessage):
1784         (WebCore::WorkerGlobalScope::addMessage):
1785         * workers/WorkerGlobalScope.h:
1786         * workers/WorkerLoaderProxy.h:
1787         * workers/WorkerMessagingProxy.cpp:
1788         (WebCore::MessageWorkerGlobalScopeTask::create):
1789         (WebCore::MessageWorkerGlobalScopeTask::performTask):
1790         (WebCore::MessageWorkerTask::create):
1791         (WebCore::MessageWorkerTask::performTask):
1792         (WebCore::WorkerExceptionTask::create):
1793         (WebCore::WorkerExceptionTask::performTask):
1794         (WebCore::WorkerGlobalScopeDestroyedTask::create):
1795         (WebCore::WorkerGlobalScopeDestroyedTask::performTask):
1796         (WebCore::WorkerTerminateTask::create):
1797         (WebCore::WorkerTerminateTask::WorkerTerminateTask):
1798         (WebCore::WorkerTerminateTask::performTask):
1799         (WebCore::WorkerThreadActivityReportTask::create):
1800         (WebCore::WorkerThreadActivityReportTask::performTask):
1801         (WebCore::PostMessageToPageInspectorTask::create):
1802         (WebCore::PostMessageToPageInspectorTask::performTask):
1803         (WebCore::NotifyNetworkStateChangeTask::create):
1804         (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask):
1805         (WebCore::NotifyNetworkStateChangeTask::performTask):
1806         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
1807         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
1808         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
1809         (WebCore::WorkerMessagingProxy::postTaskToLoader):
1810         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
1811         (WebCore::WorkerMessagingProxy::workerThreadCreated):
1812         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
1813         (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
1814         (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
1815         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
1816         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
1817         (WebCore::WorkerMessagingProxy::reportPendingActivity):
1818         * workers/WorkerMessagingProxy.h:
1819         * workers/WorkerRunLoop.cpp:
1820         (WebCore::WorkerRunLoop::postTask):
1821         (WebCore::WorkerRunLoop::postTaskAndTerminate):
1822         (WebCore::WorkerRunLoop::postTaskForMode):
1823         (WebCore::WorkerRunLoop::Task::create):
1824         (WebCore::WorkerRunLoop::Task::Task):
1825         * workers/WorkerRunLoop.h:
1826         * workers/WorkerThread.cpp:
1827         (WebCore::WorkerThreadShutdownFinishTask::create):
1828         (WebCore::WorkerThreadShutdownFinishTask::performTask):
1829         (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask):
1830         (WebCore::WorkerThreadShutdownStartTask::performTask):
1831         (WebCore::WorkerThread::stop):
1832         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
1833
1834 2013-10-07  Darin Adler  <darin@apple.com>
1835
1836         Make Vector::insert work for move-only types
1837         https://bugs.webkit.org/show_bug.cgi?id=122429
1838
1839         Reviewed by Anders Carlsson.
1840
1841         * history/HistoryItem.cpp:
1842         (WebCore::HistoryItem::padDailyCountsForNewVisit): Call insertVector.
1843         Also added some inline capacity, which should make this faster.
1844
1845 2013-10-07  Anders Carlsson  <andersca@apple.com>
1846
1847         Update test results.
1848
1849         * bindings/scripts/test/JS/JSTestCallback.cpp:
1850         (WebCore::JSTestCallback::~JSTestCallback):
1851
1852 2013-10-04  Ojan Vafai  <ojan@chromium.org> and Martin Robinson  <mrobinson@igalia.com>
1853
1854         [MathML] Remove RenderTree modification during layout and refactor the StretchyOp code
1855         https://bugs.webkit.org/show_bug.cgi?id=121416
1856
1857         Reviewed by David Hyatt.
1858
1859         Tests: mathml/presentation/mo-minus.html
1860                mathml/presentation/mo-stacked-glyphs.html
1861                mathml/presentation/mo-stretchy-vertical-bar.html
1862                mathml/very-large-stretchy-operators.html
1863
1864         MathML stretched operators by both modifying the width of the operator
1865         and adding children to the operator node in the render tree.
1866
1867         Instead we make the operator width equal to the widest glyph possible that we use
1868         to represent the operator.  Additionally instead of rendering stretchy glyphs via
1869         stacked operator pieces in separate render tree nodes, keep only one node for the
1870         glyph, and use a custom paint method to paint the stacked representation.
1871
1872         With this patch, rendering seems roughly equivalent on Mac and markedly better
1873         on Linux.
1874
1875         * css/mathml.css:
1876         Not sure what this line-height:0 was here for, but it caused bugs with the new code
1877
1878         * mathml/MathMLTextElement.cpp:
1879         (WebCore::MathMLTextElement::attach):
1880         (WebCore):
1881         (WebCore::MathMLTextElement::childrenChanged):
1882         Need to update the anonymous render tree below <mo> elements when their
1883         children change or when the renderer is first attached.
1884
1885         * mathml/MathMLTextElement.h:
1886         (MathMLTextElement):
1887         * rendering/mathml/RenderMathMLBlock.cpp:
1888         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
1889         * rendering/mathml/RenderMathMLBlock.h:
1890         Now that the preferred width doesn't depend on the height, we don't
1891         need to override computePreferredLogicalWidths at all.
1892
1893         * rendering/mathml/RenderMathMLFenced.cpp:
1894         (WebCore::RenderMathMLFenced::makeFences):
1895         (WebCore::RenderMathMLFenced::styleDidChange):
1896         Need to update the anonymous renderers for the anonymous RenderMathMLOperators.
1897
1898         * rendering/mathml/RenderMathMLOperator.cpp:
1899         (WebCore::RenderMathMLOperator::expandedStretchHeight):
1900         Store the non-expanded stretch height so that we can detect when the height
1901         actually changed.
1902
1903         (WebCore::RenderMathMLOperator::stretchToHeight):
1904         Only update the style on the anonymous render tree since this is called
1905         from RenderMathMLRow::layout
1906
1907         (WebCore::RenderMathMLOperator::styleDidChange):
1908         (WebCore::RenderMathMLOperator::glyphBoundsForCharacter): A helper to get glyph boundaries.
1909         (WebCore::RenderMathMLOperator::glyphHeightForCharacter): Ditto for glyph width.
1910         (WebCore::RenderMathMLOperator::advanceForCharacter): The advance is different from the width,
1911         and we want the width of the operator to be the advance instead of the tight bounding width.
1912         (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use the max of all possible glyphs
1913         we can use to render this operator.
1914         (WebCore::RenderMathMLOperator::computeLogicalHeight): Return the stretched operator height, if appropriate.
1915         (WebCore::RenderMathMLOperator::updateFromElement): We add a child for rendering the non-scaled
1916         version of the glyph.
1917         (WebCore::RenderMathMLOperator::firstCharacterForStretching): Helper to figure out what character
1918         is the character used for stretching operations.
1919         (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter): Helper to find an acceptable set
1920         of glyph pieces for stretching characters.
1921         (WebCore::RenderMathMLOperator::updateStyle): Resize the operator to the appropriate height and hide
1922         the child if we are using the stretchy style.
1923         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
1924         (WebCore::RenderMathMLOperator::paintCharacter): Helper to paint a single character component of the
1925         stretchy glyph.
1926         (WebCore::RenderMathMLOperator::fillWithExtensionGlyph): Helper to paint the extender glue between
1927         features of the stretchy glyph.
1928         (WebCore::RenderMathMLOperator::paint): Properly paint stretchy glyphs.
1929         * rendering/mathml/RenderMathMLOperator.h: Update method declarations.
1930
1931 2013-10-07  Eric Carlson  <eric.carlson@apple.com>
1932
1933         [MediaStream API] update MediaStreamTrack object to match spec
1934         https://bugs.webkit.org/show_bug.cgi?id=121940
1935
1936         Reviewed by Jer Noble.
1937
1938         No new tests, existing test updated.
1939
1940         Add new source files to the project:
1941         * CMakeLists.txt:
1942         * DerivedSources.make:
1943         * GNUmakefile.list.am:
1944         * WebCore.xcodeproj/project.pbxproj:
1945
1946         New capability dictionary objects:
1947         * Modules/mediastream/AllAudioCapabilities.h: Added.
1948         * Modules/mediastream/AllAudioCapabilities.idl: Added.
1949         * Modules/mediastream/AllVideoCapabilities.h: Added.
1950         * Modules/mediastream/AllVideoCapabilities.idl: Added.
1951
1952         * Modules/mediastream/AudioStreamTrack.cpp:
1953         (WebCore::AudioStreamTrack::create): New version that takes a MediaStreamTrack*.
1954         * Modules/mediastream/AudioStreamTrack.h:
1955
1956         New object for a capability range:
1957         * Modules/mediastream/CapabilityRange.cpp: Added.
1958         * Modules/mediastream/CapabilityRange.h: Added.
1959         * Modules/mediastream/CapabilityRange.idl: Added.
1960
1961         * Modules/mediastream/MediaConstraintsImpl.h: Make initialize() public.
1962
1963         New object for the current states for a media source.
1964         * Modules/mediastream/MediaSourceStates.cpp: Added.
1965         * Modules/mediastream/MediaSourceStates.h: Added.
1966         * Modules/mediastream/MediaSourceStates.idl: Added.
1967
1968         Don't call the media stream center to notify it when the state of other
1969         objects change.
1970         * Modules/mediastream/MediaStream.cpp:
1971         (WebCore::processTrack): Remove the stream source duplication hack.
1972         (WebCore::createFromSourceVectors): 
1973         (WebCore::MediaStream::MediaStream):
1974         (WebCore::MediaStream::addTrack):
1975         (WebCore::MediaStream::removeTrack):
1976         * Modules/mediastream/MediaStream.h:
1977
1978         New object for the capabilities of a source.
1979         * Modules/mediastream/MediaStreamCapabilities.cpp: Added.
1980         * Modules/mediastream/MediaStreamCapabilities.h: Added.
1981         * Modules/mediastream/MediaStreamCapabilities.idl: Added.
1982
1983         Update interface to match spec.
1984         * Modules/mediastream/MediaStreamTrack.cpp:
1985         (WebCore::MediaStreamTrack::MediaStreamTrack): Define a copy constructor to use in clone().
1986         (WebCore::MediaStreamTrack::setSource): Call removeObserver if the track already has a source.
1987             Initialize m_muted from new source's muted state.
1988         (WebCore::MediaStreamTrack::id): Allow source to provide ID as the spec suggests.
1989         (WebCore::MediaStreamTrack::setEnabled): Add some spec text to clarify logic. Always call
1990             source->setEnabled, it can figure out if nothing needs to be done.
1991         (WebCore::MediaStreamTrack::muted): Don't call the stream center when muted changes, the
1992             source can take care of notifying interested parties.
1993         (WebCore::MediaStreamTrack::readonly): New.
1994         (WebCore::MediaStreamTrack::remote): New.
1995         (WebCore::MediaStreamTrack::constraints): New. 
1996         (WebCore::MediaStreamTrack::states): New.
1997         (WebCore::MediaStreamTrack::capabilities): New.
1998         (WebCore::MediaStreamTrack::applyConstraints): New.
1999         (WebCore::MediaStreamTrack::clone): New.
2000         (WebCore::MediaStreamTrack::stopProducingData): New.
2001         (WebCore::MediaStreamTrack::sourceStateChanged): Renamed from sourceChangedState.
2002         (WebCore::MediaStreamTrack::sourceMutedChanged): New.
2003         (WebCore::MediaStreamTrack::sourceEnabledChanged): New.
2004         (WebCore::MediaStreamTrack::configureTrackRendering): New.
2005         (WebCore::MediaStreamTrack::stopped): New. 
2006         (WebCore::MediaStreamTrack::stop): Call stopProducingData.
2007         (WebCore::MediaStreamTrack::scheduleEventDispatch): New.
2008         (WebCore::MediaStreamTrack::dispatchQueuedEvents): New.
2009         * Modules/mediastream/MediaStreamTrack.h:
2010         * Modules/mediastream/MediaStreamTrack.idl:
2011
2012         * Modules/mediastream/MediaTrackConstraint.cpp: Added.
2013         * Modules/mediastream/MediaTrackConstraint.h: Added.
2014         * Modules/mediastream/MediaTrackConstraint.idl: Added.
2015
2016         // Add empty classes/IDL for track constraint objects.
2017         * Modules/mediastream/MediaTrackConstraintSet.cpp: Added.
2018         * Modules/mediastream/MediaTrackConstraintSet.h: Added.
2019         * Modules/mediastream/MediaTrackConstraintSet.idl: Added.
2020         * Modules/mediastream/MediaTrackConstraints.cpp: Added.
2021         * Modules/mediastream/MediaTrackConstraints.h: Added.
2022         * Modules/mediastream/MediaTrackConstraints.idl: Added.
2023
2024         * Modules/mediastream/UserMediaRequest.cpp:
2025         (WebCore::UserMediaRequest::callSuccessHandler): Don't call the stream center, the
2026             stream can take care of notifying interested parties.
2027
2028         // Add a constructor and create() that take a MediaStreamTrack*.
2029         * Modules/mediastream/VideoStreamTrack.cpp:
2030         (WebCore::VideoStreamTrack::create): 
2031         (WebCore::VideoStreamTrack::VideoStreamTrack):
2032         * Modules/mediastream/VideoStreamTrack.h:
2033
2034         // Create a MediaStreamSource subclass for WebAudio
2035         * Modules/webaudio/AudioContext.cpp:
2036         (WebCore::AudioContext::createMediaStreamSource): Call isAudioStreamSource instead
2037             of checking deviceID.
2038         * Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
2039         (WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): Create a
2040             MediaStreamAudioSource instead of a MediaStreamSource.
2041         * Modules/webaudio/MediaStreamAudioDestinationNode.h:
2042         * Modules/webaudio/MediaStreamAudioSource.cpp: Added.
2043         * Modules/webaudio/MediaStreamAudioSource.h: Added.
2044         (WebCore::MediaStreamAudioSource::~MediaStreamAudioSource):
2045
2046         // Add new generated files.
2047         * bindings/js/JSMediaSourceStatesCustom.cpp: Added.
2048         * bindings/js/JSMediaStreamCapabilitiesCustom.cpp: Added.
2049
2050         * dom/EventNames.h: Defined 'overconstrained' event.
2051
2052         * platform/mediastream/MediaStreamCenter.h: Get rid of all of the methods nobody uses.
2053             It isn't clear that they are necessary, and we can add them back if/when we need them.
2054
2055         * platform/mediastream/MediaStreamDescriptor.cpp:
2056         (WebCore::MediaStreamDescriptor::~MediaStreamDescriptor): Clear the all source streams.
2057         (WebCore::MediaStreamDescriptor::removeSource): Clear the source stream.
2058         * platform/mediastream/MediaStreamDescriptor.h:
2059
2060         // Make MediaStreamSource an abstract base class, and remove everyting WebAudio-specific
2061         //  to MediaStreamAudioSource. 
2062         * platform/mediastream/MediaStreamSource.cpp:
2063         (WebCore::MediaStreamSource::MediaStreamSource): Remove readyState and requiresConsumer
2064             parameters. Create new UUID for id if non was passed.
2065         (WebCore::MediaStreamSource::reset): Reset internal state to just-constructed. Used for testing.
2066         (WebCore::MediaStreamSource::setReadyState): sourceChangedState -> sourceStateChanged.
2067         (WebCore::MediaStreamSource::setStream): Remove the ASSERT that check for a source being
2068             added to a new stream. This is still a problem, but it is required for testing and will
2069             be fixed as a part of bug 121954.
2070         (WebCore::MediaStreamSource::setConstraints): Added.
2071         (WebCore::MediaStreamSource::setMuted): Notify observers when muted changes.
2072         (WebCore::MediaStreamSource::setEnabled): Notify observers when enabled changes.
2073         (WebCore::MediaStreamSource::readonly): New.
2074         (WebCore::MediaStreamSource::stop): New. Set state to Ended when all of the observers has
2075             stopped.
2076         * platform/mediastream/MediaStreamSource.h:
2077
2078         // Define platform versions of the Capabilities classes.
2079         * platform/mediastream/MediaStreamSourceCapabilities.h: Added.
2080
2081         // Update the non-functional platform stream centers for the API changes.
2082         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
2083         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
2084         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
2085         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
2086         * platform/mediastream/mac/MediaStreamCenterMac.cpp:
2087         * platform/mediastream/mac/MediaStreamCenterMac.h:
2088
2089         // Update the Mock stream center for the API changes. Add a concrete mock MediaStreamSource
2090         //  subclass.
2091         * platform/mock/MockMediaStreamCenter.cpp:
2092         (WebCore::MockSource::MockSource): New, the mock media stream source.
2093         (WebCore::MockSource::~MockSource):
2094         (WebCore::MockSource::capabilities):
2095         (WebCore::MockSource::states):
2096         (WebCore::mockSourceMap):
2097         (WebCore::mockAudioSourceID):
2098         (WebCore::mockVideoSourceID):
2099         (WebCore::initializeMockSources): Create one audio and one video mock source.
2100         (WebCore::MockMediaStreamCenter::registerMockMediaStreamCenter): Call initializeMockSources.
2101         (WebCore::MockMediaStreamCenter::createMediaStream): Use the already allocated mock media
2102             sources.
2103         (WebCore::MockMediaStreamCenter::getMediaStreamTrackSources): Ditto.
2104         * platform/mock/MockMediaStreamCenter.h:
2105
2106 2013-10-07  Andreas Kling  <akling@apple.com>
2107
2108         CTTE: Live node lists always have an owner Node.
2109         <https://webkit.org/b/122470>
2110
2111         Reviewed by Anders Carlsson.
2112
2113         Make LiveNodeListBase::m_ownerNode a Ref<Node> instead of a RefPtr
2114         and have all constructors take Node&.
2115
2116 2013-10-07  Anders Carlsson  <andersca@apple.com>
2117
2118         Clean up ScriptExecutionContext::Task and subclasses
2119         https://bugs.webkit.org/show_bug.cgi?id=122469
2120
2121         Reviewed by Andreas Kling.
2122
2123         * Modules/webdatabase/Database.cpp:
2124         (WebCore::DerefContextTask::DerefContextTask):
2125         (WebCore::Database::~Database):
2126         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask):
2127         (WebCore::Database::scheduleTransactionCallback):
2128         * Modules/webdatabase/DatabaseManager.cpp:
2129         (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
2130         (WebCore::DatabaseManager::openDatabase):
2131         * Modules/webdatabase/SQLCallbackWrapper.h:
2132         (WebCore::SQLCallbackWrapper::clear):
2133         (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask):
2134         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2135         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
2136         * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
2137         * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
2138         (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask):
2139         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
2140         * bindings/js/JSCallbackData.h:
2141         (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
2142         * bindings/js/JSDOMGlobalObjectTask.h:
2143         * bindings/js/JSDOMWindowBase.cpp:
2144         (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
2145         * bindings/js/JSWorkerGlobalScopeBase.cpp:
2146         (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
2147         * bindings/scripts/CodeGeneratorJS.pm:
2148         (GenerateCallbackImplementation):
2149         * dom/CrossThreadTask.h:
2150         (WebCore::createCallbackTask):
2151         * dom/Document.cpp:
2152         (WebCore::Document::addConsoleMessage):
2153         (WebCore::Document::addMessage):
2154         (WebCore::PerformTaskContext::PerformTaskContext):
2155         (WebCore::Document::postTask):
2156         (WebCore::Document::pendingTasksTimerFired):
2157         * dom/Document.h:
2158         * dom/ScriptExecutionContext.cpp:
2159         (WebCore::ProcessMessagesSoonTask::ProcessMessagesSoonTask):
2160         (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
2161         * dom/ScriptExecutionContext.h:
2162         * dom/StringCallback.cpp:
2163         (WebCore::StringCallback::scheduleCallback):
2164         * loader/appcache/ApplicationCacheGroup.cpp:
2165         (WebCore::CallCacheListenerTask::CallCacheListenerTask):
2166         (WebCore::ApplicationCacheGroup::postListenerTask):
2167         * workers/DefaultSharedWorkerRepository.cpp:
2168         (WebCore::SharedWorkerProxy::postTaskToLoader):
2169         (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
2170         (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
2171         (WebCore::DefaultSharedWorkerRepository::connectToWorker):
2172         * workers/WorkerEventQueue.cpp:
2173         (WebCore::WorkerEventQueue::enqueueEvent):
2174         * workers/WorkerGlobalScope.cpp:
2175         (WebCore::WorkerGlobalScope::close):
2176         (WebCore::WorkerGlobalScope::postTask):
2177         (WebCore::WorkerGlobalScope::addConsoleMessage):
2178         (WebCore::WorkerGlobalScope::addMessage):
2179         * workers/WorkerGlobalScope.h:
2180         * workers/WorkerLoaderProxy.h:
2181         * workers/WorkerMessagingProxy.cpp:
2182         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
2183         (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
2184         (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
2185         (WebCore::WorkerMessagingProxy::postTaskToLoader):
2186         (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
2187         (WebCore::WorkerMessagingProxy::workerThreadCreated):
2188         (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
2189         (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
2190         (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
2191         (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
2192         (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
2193         (WebCore::WorkerMessagingProxy::reportPendingActivity):
2194         * workers/WorkerMessagingProxy.h:
2195         * workers/WorkerRunLoop.cpp:
2196         (WebCore::WorkerRunLoop::postTask):
2197         (WebCore::WorkerRunLoop::postTaskAndTerminate):
2198         (WebCore::WorkerRunLoop::postTaskForMode):
2199         (WebCore::WorkerRunLoop::Task::Task):
2200         * workers/WorkerRunLoop.h:
2201         * workers/WorkerThread.cpp:
2202         (WebCore::WorkerThreadShutdownFinishTask::WorkerThreadShutdownFinishTask):
2203         (WebCore::WorkerThreadShutdownStartTask::performTask):
2204         (WebCore::WorkerThread::stop):
2205         (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
2206
2207 2013-10-07  Sam Weinig  <sam@webkit.org>
2208
2209         CTTE: Use references in and around DragController
2210         https://bugs.webkit.org/show_bug.cgi?id=122427
2211
2212         Reviewed by Andreas Kling.
2213
2214         Use references to indicate non-nullness of DragController related
2215         objects.
2216
2217 2013-10-07  Tim Horton  <timothy_horton@apple.com>
2218
2219         Animated images are not restarted when page visibility changes
2220         https://bugs.webkit.org/show_bug.cgi?id=122464
2221         <rdar://problem/14293474>
2222
2223         Reviewed by Simon Fraser.
2224
2225         Always kickstart animated images when the page visibility changes,
2226         which can occur via window occlusion, and which is independent of in-window
2227         state, which we were previously using to advance animation.
2228
2229         No new tests; attempts to make a test have resulted only in a flaky, timing-dependent test.
2230
2231         * page/Frame.cpp:
2232         (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
2233         Move this call to resumeAnimatingImages() up to Page.
2234
2235         * page/FrameView.cpp:
2236         (WebCore::FrameView::setIsInWindow):
2237         Move this call to resumeAnimatingImages() up to Page.
2238
2239         * WebCore.exp.in
2240         * page/FrameView.h:
2241         * page/Page.h:
2242         Move resumeAnimatingImages() itself up to Page.
2243
2244         * page/Page.cpp:
2245         (WebCore::Page::setIsInWindow):
2246         Resume animated images when we move in-window.
2247
2248         (WebCore::Page::setVisibilityState):
2249         Resume animated images when we become visible.
2250         This is the one we were previously missing.
2251
2252         (WebCore::Page::resumeActiveDOMObjectsAndAnimations):
2253         Resume animated images when we're told to.
2254
2255         (WebCore::Page::resumeAnimatingImages):
2256         Kickstart any animated images in all frames.
2257
2258 2013-10-07  Jer Noble  <jer.noble@apple.com>
2259
2260         [Mac] Drawing video into canvas doesn't work on the first attempt
2261         https://bugs.webkit.org/show_bug.cgi?id=122404
2262
2263         Reviewed by Eric Carlson.
2264
2265         Test: media/video-canvas-drawing.html
2266
2267         If creating and painting from an AVPlayerItemVideoOutput fails, fall back
2268         to the (much slower) AVAssetImageGenerator path. Make sure to revert to the
2269         AVPlayerItemVideoOutput path when that object begins to have available
2270         images, however.
2271
2272         To do so, remove the "__MAC_OS_X_VERSION_MIN_REQUIRED < 1080" check around
2273         the AVAssetImageGenerator code, and allow both the image generator and video
2274         output to exist simultaneously.
2275
2276         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2277         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2278         (WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer):
2279         (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
2280         (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator):
2281         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
2282         (WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame):
2283         (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
2284
2285 2013-10-07  Jer Noble  <jer.noble@apple.com>
2286
2287         URLMediaSource.idl and URLMediaStream.idl are wrong
2288         https://bugs.webkit.org/show_bug.cgi?id=122301
2289
2290         Reviewed by Philippe Normand.
2291
2292         Rename URLMediaSource and URLMediaStream to DOMURLMediaSource and DOMURLMediaStream,
2293         respectively.
2294
2295         Update the build files:
2296         * CMakeLists.txt: Rename URL -> DOMURL.
2297         * DerivedSources.make: Ditto.
2298         * GNUmakefile.list.am: Ditto.
2299         * WebCore.xcodeproj/project.pbxproj: Ditto.
2300
2301         Rename the .idl and implementation files:
2302         * Modules/mediasource/DOMURLMediaSource.cpp: Renamed from Source/WebCore/Modules/mediasource/URLMediaSource.cpp.
2303         (WebCore::DOMURLMediaSource::createObjectURL):
2304         * Modules/mediasource/DOMURLMediaSource.h: Renamed from Source/WebCore/Modules/mediasource/URLMediaSource.h.
2305         * Modules/mediasource/DOMURLMediaSource.idl: Renamed from Source/WebCore/Modules/mediasource/URLMediaSource.idl.
2306         * Modules/mediastream/DOMURLMediaStream.cpp: Renamed from Source/WebCore/Modules/mediastream/URLMediaStream.cpp.
2307         (WebCore::DOMURLMediaStream::createObjectURL):
2308         * Modules/mediastream/DOMURLMediaStream.h: Renamed from Source/WebCore/Modules/mediastream/URLMediaStream.h.
2309         * Modules/mediastream/DOMURLMediaStream.idl: Renamed from Source/WebCore/Modules/mediastream/URLMediaStream.idl.
2310
2311 2013-10-07  Philippe Normand  <pnormand@igalia.com>
2312
2313         Conditional support in bindings code generator for overloaded functions
2314         https://bugs.webkit.org/show_bug.cgi?id=122443
2315
2316         Reviewed by Darin Adler.
2317
2318         * bindings/scripts/CodeGeneratorJS.pm: 
2319         (GenerateOverloadedFunction): Generate conditional for overloaded
2320         function, if it's present in the idl.
2321         (GenerateImplementation): Close the last overloaded function
2322         conditional before generating the distpatch function.
2323         * bindings/scripts/test/JS/JSTestObj.cpp:
2324         (WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
2325         Rebaseline overloaded function tests.
2326
2327 2013-10-07  Tim Horton  <timothy_horton@apple.com>
2328
2329         -webkit-cross-fade paints SVGs at full opacity during cross-fade
2330         https://bugs.webkit.org/show_bug.cgi?id=122441
2331         <rdar://problem/13973162>
2332
2333         Reviewed by Simon Fraser.
2334
2335         Test: css3/images/cross-fade-svg-with-opacity.html
2336
2337         * platform/graphics/CrossfadeGeneratedImage.cpp:
2338         (WebCore::drawCrossfadeSubimage):
2339         (WebCore::CrossfadeGeneratedImage::drawCrossfade):
2340         Factor the image painting out into a function.
2341         Conditionally use a transparency layer around painting if the image
2342         we're drawing is an SVG (SVGImage is the only Image subclass that will
2343         not respect the context's opacity).
2344
2345 2013-10-06  Anders Carlsson  <andersca@apple.com>
2346
2347         Add OVERRIDE and virtual where appropriate
2348         https://bugs.webkit.org/show_bug.cgi?id=122439
2349
2350         Reviewed by Antti Koivisto.
2351
2352         * Modules/encryptedmedia/MediaKeys.h:
2353         * Modules/webaudio/AnalyserNode.h:
2354         * Modules/webaudio/AudioBasicInspectorNode.h:
2355         * Modules/webaudio/AudioBasicProcessorNode.h:
2356         * Modules/webaudio/AudioBufferSourceNode.h:
2357         * Modules/webaudio/AudioContext.h:
2358         * Modules/webaudio/AudioDestinationNode.h:
2359         * Modules/webaudio/AudioProcessingEvent.h:
2360         * Modules/webaudio/BiquadDSPKernel.h:
2361         * Modules/webaudio/BiquadProcessor.h:
2362         * Modules/webaudio/ChannelMergerNode.h:
2363         * Modules/webaudio/ChannelSplitterNode.h:
2364         * Modules/webaudio/ConvolverNode.h:
2365         * Modules/webaudio/DelayDSPKernel.h:
2366         * Modules/webaudio/DelayProcessor.h:
2367         * Modules/webaudio/DynamicsCompressorNode.h:
2368         * Modules/webaudio/GainNode.h:
2369         * Modules/webaudio/MediaElementAudioSourceNode.h:
2370         * Modules/webaudio/OfflineAudioCompletionEvent.h:
2371         * Modules/webaudio/OfflineAudioDestinationNode.h:
2372         * Modules/webaudio/OscillatorNode.h:
2373         * Modules/webaudio/PannerNode.h:
2374         * Modules/webaudio/ScriptProcessorNode.h:
2375         * Modules/webaudio/WaveShaperProcessor.h:
2376         * accessibility/AccessibilityARIAGrid.h:
2377         * accessibility/AccessibilityARIAGridCell.h:
2378         * accessibility/AccessibilityARIAGridRow.h:
2379         * accessibility/AccessibilityImageMapLink.h:
2380         * accessibility/AccessibilityList.h:
2381         * accessibility/AccessibilityListBox.h:
2382         * accessibility/AccessibilityListBoxOption.h:
2383         * accessibility/AccessibilityMediaControls.h:
2384         * accessibility/AccessibilityMenuList.h:
2385         * accessibility/AccessibilityMenuListOption.h:
2386         * accessibility/AccessibilityMenuListPopup.h:
2387         * accessibility/AccessibilityMockObject.h:
2388         * accessibility/AccessibilityNodeObject.h:
2389         * accessibility/AccessibilityProgressIndicator.h:
2390         * accessibility/AccessibilityRenderObject.h:
2391         * accessibility/AccessibilitySVGRoot.h:
2392         * accessibility/AccessibilityScrollView.h:
2393         * accessibility/AccessibilityScrollbar.h:
2394         * accessibility/AccessibilitySlider.h:
2395         * accessibility/AccessibilitySpinButton.h:
2396         * accessibility/AccessibilityTable.h:
2397         * accessibility/AccessibilityTableCell.h:
2398         * accessibility/AccessibilityTableColumn.h:
2399         * accessibility/AccessibilityTableHeaderContainer.h:
2400         * accessibility/AccessibilityTableRow.h:
2401         * bindings/js/JSEventListener.h:
2402         * bindings/js/WebCoreTypedArrayController.h:
2403         * bridge/c/c_class.h:
2404         * bridge/c/c_instance.h:
2405         * bridge/c/c_runtime.h:
2406         * bridge/runtime_root.h:
2407         * css/CSSBasicShapes.h:
2408         * css/CSSComputedStyleDeclaration.h:
2409         * css/CSSStyleSheet.h:
2410         * dom/Attr.h:
2411         * dom/BeforeTextInsertedEvent.h:
2412         * dom/CDATASection.h:
2413         * dom/ChildNodeList.h:
2414         * dom/DatasetDOMStringMap.h:
2415         * dom/Document.h:
2416         * dom/DocumentEventQueue.h:
2417         * dom/DocumentFragment.h:
2418         * dom/Element.h:
2419         * dom/ErrorEvent.h:
2420         * dom/KeyboardEvent.h:
2421         * dom/Node.h:
2422         * dom/PageTransitionEvent.h:
2423         * dom/ProgressEvent.h:
2424         * dom/PseudoElement.h:
2425         * dom/ScriptExecutionContext.h:
2426         * dom/ShadowRoot.h:
2427         * dom/StyledElement.h:
2428         * dom/TagNodeList.h:
2429         * dom/Text.h:
2430         * dom/TextEvent.h:
2431         * dom/TransitionEvent.h:
2432         * dom/UIEvent.h:
2433         * dom/WebKitAnimationEvent.h:
2434         * dom/WebKitTransitionEvent.h:
2435         * editing/ApplyBlockElementCommand.h:
2436         * editing/ApplyStyleCommand.h:
2437         * editing/BreakBlockquoteCommand.h:
2438         * editing/CompositeEditCommand.h:
2439         * editing/SpellingCorrectionCommand.h:
2440         * fileapi/File.h:
2441         * fileapi/FileThreadTask.h:
2442         * history/BackForwardList.h:
2443         * html/BaseCheckableInputType.h:
2444         * html/HTMLAnchorElement.h:
2445         * html/HTMLAreaElement.h:
2446         * html/HTMLCanvasElement.h:
2447         * html/HTMLCollection.h:
2448         * html/HTMLElement.h:
2449         * html/HTMLFieldSetElement.h:
2450         * html/HTMLFormControlElement.h:
2451         * html/HTMLFormControlElementWithState.h:
2452         * html/HTMLFormElement.h:
2453         * html/HTMLFrameElementBase.h:
2454         * html/HTMLImageElement.h:
2455         * html/HTMLImageLoader.h:
2456         * html/HTMLInputElement.h:
2457         * html/HTMLLabelElement.h:
2458         * html/HTMLLegendElement.h:
2459         * html/HTMLMediaElement.h:
2460         * html/HTMLMeterElement.h:
2461         * html/HTMLOptGroupElement.h:
2462         * html/HTMLOptionElement.h:
2463         * html/HTMLPlugInElement.h:
2464         * html/HTMLPlugInImageElement.h:
2465         * html/HTMLProgressElement.h:
2466         * html/HTMLSelectElement.h:
2467         * html/HTMLTableElement.h:
2468         * html/HTMLTextAreaElement.h:
2469         * html/HTMLTextFormControlElement.h:
2470         * html/HTMLVideoElement.h:
2471         * html/canvas/CanvasRenderingContext2D.cpp:
2472         * html/shadow/MediaControlElementTypes.h:
2473         * html/shadow/MediaControlElements.h:
2474         * html/shadow/SpinButtonElement.h:
2475         * html/shadow/TextControlInnerElements.h:
2476         * html/track/AudioTrackList.h:
2477         * html/track/TextTrackList.h:
2478         * html/track/TrackListBase.h:
2479         * inspector/InspectorValues.h:
2480         * loader/EmptyClients.h:
2481         * loader/ImageLoader.h:
2482         * loader/ResourceLoader.h:
2483         * loader/SubresourceLoader.h:
2484         * loader/appcache/ApplicationCacheGroup.cpp:
2485         * loader/appcache/ApplicationCacheGroup.h:
2486         * loader/appcache/DOMApplicationCache.h:
2487         * loader/archive/cf/LegacyWebArchive.h:
2488         * loader/cache/CachedCSSStyleSheet.h:
2489         * loader/cache/CachedFont.h:
2490         * loader/cache/CachedFontClient.h:
2491         * loader/cache/CachedImageClient.h:
2492         * loader/cache/CachedSVGDocumentClient.h:
2493         * loader/cache/CachedStyleSheetClient.h:
2494         * loader/cache/CachedXSLStyleSheet.h:
2495         * page/Chrome.h:
2496         * page/DOMWindow.h:
2497         * page/FrameView.h:
2498         * page/animation/ImplicitAnimation.h:
2499         * platform/PODIntervalTree.h:
2500         * platform/PODRedBlackTree.h:
2501         * platform/ScrollView.h:
2502         * platform/Scrollbar.h:
2503         * platform/Timer.h:
2504         * platform/animation/TimingFunction.h:
2505         (WebCore::LinearTimingFunction::~LinearTimingFunction):
2506         (WebCore::CubicBezierTimingFunction::~CubicBezierTimingFunction):
2507         (WebCore::StepsTimingFunction::~StepsTimingFunction):
2508         * platform/audio/AudioDSPKernelProcessor.h:
2509         * platform/audio/HRTFPanner.h:
2510         * platform/audio/mac/AudioDestinationMac.h:
2511         * platform/graphics/SimpleFontData.h:
2512         * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
2513         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2514         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2515         * platform/graphics/filters/FilterOperation.h:
2516         * platform/network/ResourceHandle.h:
2517         * rendering/AutoTableLayout.h:
2518         * rendering/ClipPathOperation.h:
2519         * rendering/InlineFlowBox.h:
2520         * rendering/RenderBlock.h:
2521         * rendering/RenderBox.h:
2522         * rendering/RenderBoxModelObject.h:
2523         * rendering/RenderButton.h:
2524         * rendering/RenderFieldset.h:
2525         * rendering/RenderFileUploadControl.h:
2526         * rendering/RenderFlexibleBox.h:
2527         * rendering/RenderFlowThread.h:
2528         * rendering/RenderFullScreen.h:
2529         * rendering/RenderImage.h:
2530         * rendering/RenderLayer.h:
2531         * rendering/RenderLineBreak.h:
2532         * rendering/RenderListBox.h:
2533         * rendering/RenderListItem.h:
2534         * rendering/RenderListMarker.h:
2535         * rendering/RenderMenuList.h:
2536         * rendering/RenderMeter.h:
2537         * rendering/RenderObject.h:
2538         * rendering/RenderReplaced.h:
2539         * rendering/RenderSlider.h:
2540         * rendering/RenderTable.h:
2541         * rendering/RenderTableCell.h:
2542         * rendering/RenderText.h:
2543         * rendering/RenderTextControl.h:
2544         * rendering/RenderTextControlSingleLine.h:
2545         * rendering/RenderTextFragment.h:
2546         * rendering/RenderView.h:
2547         * rendering/RootInlineBox.h:
2548         * rendering/mathml/RenderMathMLBlock.h:
2549         * rendering/mathml/RenderMathMLFraction.h:
2550         * rendering/mathml/RenderMathMLOperator.h:
2551         * rendering/style/BasicShapes.h:
2552         * rendering/svg/RenderSVGModelObject.h:
2553         * rendering/svg/RenderSVGShape.h:
2554         * svg/SVGAnimatedBoolean.h:
2555         * svg/SVGAnimatedString.h:
2556         * svg/SVGAnimatedTransformList.h:
2557         * svg/SVGDocument.h:
2558         * svg/SVGElement.h:
2559         * svg/SVGElementInstance.h:
2560         * svg/SVGFontElement.h:
2561         * svg/SVGGElement.h:
2562         * svg/SVGGraphicsElement.h:
2563         * svg/SVGTransformable.h:
2564         * svg/properties/SVGAnimatedListPropertyTearOff.h:
2565         * svg/properties/SVGAnimatedPropertyMacros.h:
2566         * svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
2567         * svg/properties/SVGListPropertyTearOff.h:
2568         * svg/properties/SVGPropertyTearOff.h:
2569         * workers/WorkerGlobalScope.h:
2570
2571 2013-10-07  Philippe Normand  <pnormand@igalia.com>
2572
2573         URLMediaStream is unguarded by ENABLE(MEDIA_STREAM)
2574         https://bugs.webkit.org/show_bug.cgi?id=122444
2575
2576         Reviewed by Martin Robinson.
2577
2578         * Modules/mediastream/URLMediaStream.cpp: Added missing
2579         conditional guards.
2580         * Modules/mediastream/URLMediaStream.h: Ditto.
2581
2582 2013-10-07  Philippe Normand  <pnormand@igalia.com>
2583
2584         [GTK] webkit_dom_html_style_element_{s,g}et_scoped was removed
2585         https://bugs.webkit.org/show_bug.cgi?id=122446
2586
2587         Reviewed by Martin Robinson.
2588
2589         Added skeleton functions warning of removed functionality for
2590         the <style scoped> GObject DOM binding.
2591
2592         * bindings/gobject/WebKitDOMCustom.cpp:
2593         * bindings/gobject/WebKitDOMCustom.h:
2594         * bindings/gobject/WebKitDOMCustom.symbols:
2595
2596 2013-10-07  Csaba Osztrogon√°c  <ossy@webkit.org>
2597
2598         Unreviewed buildfix for GCC 4.6.
2599
2600         Changed override to OVERRIDE and final to FINAL.
2601
2602         * page/PageSerializer.cpp:
2603         * workers/AbstractWorker.h:
2604         * workers/SharedWorker.h:
2605         * workers/Worker.h:
2606
2607 2013-10-07  Chris Fleizach  <cfleizach@apple.com>
2608
2609         AX: Facebook wrapped a file upload button in an unfocusable ARIA button, which doesn't work with AXPress.
2610         https://bugs.webkit.org/show_bug.cgi?id=122252
2611
2612         Reviewed by Mario Sanchez Prada.
2613
2614         When an author uses a control-type ARIA role (like button), but then hides a native control-type inside,
2615         AXPress needs to operate on the inside node if possible.
2616
2617         Test: accessibility/axpress-on-aria-button.html
2618
2619         * accessibility/AccessibilityNodeObject.cpp:
2620         (WebCore::isNodeActionElement):
2621         (WebCore::nativeActionElement):
2622         (WebCore::AccessibilityNodeObject::actionElement):
2623
2624 2013-10-07  Zan Dobersek  <zdobersek@igalia.com>
2625
2626         Unreviewed debug build fix for ports enabling the <template> element support.
2627
2628         * html/HTMLTagNames.in: Generate type helpers for the <template> element as they're required
2629         by the assertions in the Element type casts for HTMLTemplateElement.
2630
2631 2013-10-07  Ryuan Choi  <ryuan.choi@samsung.com>
2632
2633         [EFL] Build fix after r157002
2634         https://bugs.webkit.org/show_bug.cgi?id=122434
2635
2636         Reviewed by Sam Weinig.
2637
2638         * editing/markup.cpp: Changed override to OVERRIDE.
2639
2640 2013-10-04  Philippe Normand  <pnormand@igalia.com>
2641
2642         MediaStreamTrack can't be FINAL
2643         https://bugs.webkit.org/show_bug.cgi?id=122322
2644
2645         Reviewed by Darin Adler.
2646
2647         Marked the MediaStreamTrack subclasses as final.
2648
2649         * Modules/mediastream/AudioStreamTrack.h:
2650         * Modules/mediastream/MediaStreamTrack.h:
2651         * Modules/mediastream/VideoStreamTrack.h:
2652
2653 2013-10-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2654
2655         Generate toCSSFooValue() for CSSCursorImageValue, CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue
2656         https://bugs.webkit.org/show_bug.cgi?id=122408
2657
2658         Reviewed by Andreas Kling.
2659
2660         As a step to use toCSSFooValue, this patch generates toCSSFooValue() for CSSCursorImageValue,
2661         CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue.
2662         This will help to detect bad type cast.
2663
2664         No new tests, no behavior changes.
2665
2666         * css/CSSCursorImageValue.h:
2667         * css/CSSTimingFunctionValue.h:
2668         * css/CSSToStyleMap.cpp:
2669         (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
2670         * css/CSSUnicodeRangeValue.h:
2671         * css/CSSValue.cpp:
2672         (WebCore::CSSValue::destroy):
2673         * css/DeprecatedStyleBuilder.cpp:
2674         (WebCore::ApplyPropertyCursor::applyValue):
2675         * css/StyleResolver.cpp:
2676         (WebCore::StyleResolver::styleImage):
2677         (WebCore::StyleResolver::styleShader):
2678         * rendering/style/StylePendingImage.h:
2679         (WebCore::StylePendingImage::cssCursorImageValue):
2680
2681 2013-10-06  Andreas Kling  <akling@apple.com>
2682
2683         Range constructors should take a Document&.
2684         <https://webkit.org/b/122435>
2685
2686         Reviewed by Sam Weinig.
2687
2688         Make all Range constructors take Document& instead of a PassRefPtr.
2689         This removes one null check at every call site.
2690
2691         Also use a Ref<Document> for storage in Range.
2692
2693 2013-10-06  Antti Koivisto  <antti@apple.com>
2694
2695         Factor text paint style computation out from InlineTextBox
2696         https://bugs.webkit.org/show_bug.cgi?id=122433
2697
2698         Reviewed by Andreas Kling.
2699
2700         Move it to TextPaintStyle.h/cpp. Other parts of the code may use it in the future.
2701
2702 2013-10-06  Darin Adler  <darin@apple.com>
2703
2704         [GTK] Get rid of use of deleteAllValues in GtkDragAndDropHelper
2705         https://bugs.webkit.org/show_bug.cgi?id=122417
2706
2707         Reviewed by Andreas Kling.
2708
2709         * platform/gtk/GtkDragAndDropHelper.cpp: Removed unneeded typedefs.
2710         (WebCore::GtkDragAndDropHelper::~GtkDragAndDropHelper): Removed call to
2711         deleteAllValues.
2712         (WebCore::GtkDragAndDropHelper::handleDragEnd): Use remove directly instead
2713         of using find then remove. I believe this fixes a storage leak.
2714         (WebCore::GtkDragAndDropHelper::handleGetDragData): Use get instead of find.
2715         (WebCore::GtkDragAndDropHelper::handleDragLeaveLater): Remove the explicit
2716         delete since remove will automatically delete.
2717         (WebCore::GtkDragAndDropHelper::handleDragLeave): Use get instead of find.
2718         (WebCore::GtkDragAndDropHelper::handleDragMotion): Use add instead of a
2719         combination of find and set. Also user nullptr instead of 0.
2720         (WebCore::GtkDragAndDropHelper::handleDragDataReceived): Use get instead of find.
2721         (WebCore::GtkDragAndDropHelper::handleDragDrop): Use get instead of find.
2722
2723         * platform/gtk/GtkDragAndDropHelper.h: Use nullptr instead of 0. Change value
2724         type of m_droppingContexts to be a std::unique_ptr.
2725
2726 2013-10-06  Andreas Kling  <akling@apple.com>
2727
2728         Windows build fix attempt.
2729
2730         * page/win/DragControllerWin.cpp:
2731         (WebCore::DragController::declareAndWriteDragImage):
2732
2733 2013-10-06  Antti Koivisto  <antti@apple.com>
2734
2735         Move paint() to RenderElement
2736         https://bugs.webkit.org/show_bug.cgi?id=122371
2737
2738         Reviewed by Darin Adler.
2739
2740         RenderText does not paint itself (text is painted by line boxes). We can move paint() down
2741         to RenderElement.
2742         
2743         This also requires some type tightening elsewhere in the code.
2744
2745 2013-10-06  Antti Koivisto  <antti@apple.com>
2746
2747         Don't try to dispatch resize events for SVG images
2748         https://bugs.webkit.org/show_bug.cgi?id=122410
2749
2750         Reviewed by Darin Adler.
2751
2752         Tested by avoiding assertion in svg/custom/large-image-pattern-crash.html
2753
2754         * page/FrameView.cpp:
2755         (WebCore::FrameView::sendResizeEventIfNeeded):
2756         
2757             Bail out for SVG images. They have scripting disabled so the event wouldn't do anything anyway.
2758             Use of FrameView mechanisms is just an implementation detail for SVG images, they are not
2759             meant to act like real frames.
2760
2761         * rendering/svg/RenderSVGResourcePattern.cpp:
2762         (WebCore::RenderSVGResourcePattern::createTileImage):
2763         
2764             Switch to Element iterator. This will take NoEventDispatchAssertion verifying the change.
2765
2766 2013-10-06  Andreas Kling  <akling@apple.com>
2767
2768         Element ancestor iterator should have a first() for convenience.
2769         <https://webkit.org/b/122425>
2770
2771         Reviewed by Antti Koivisto.
2772
2773         Added an easy way to get the first element ancestor of a certain type
2774         and put it to use in a few places.
2775
2776 2013-10-06  Andreas Kling  <akling@apple.com>
2777
2778         CTTE: FrameLoader::notifier() should return a reference.
2779         <https://webkit.org/b/122424>
2780
2781         Reviewed by Anders Carlsson.
2782
2783         It was just returning the address of an inline member, so we should
2784         use a reference instead. Also made the backpointer to Frame in
2785         ResourceLoadNotifier a reference.
2786
2787 2013-10-06  Andreas Kling  <akling@apple.com>
2788
2789         Avoid layout in window.scroll{Y,X} when at topmost/leftmost position.
2790         <https://webkit.org/b/122423>
2791
2792         Reviewed by Antti Koivisto.
2793
2794         Add a fast path for these properties to skip synchronous layout when
2795         we are just going to return 0 anyway.
2796
2797         * page/DOMWindow.cpp:
2798         (WebCore::DOMWindow::scrollX):
2799         (WebCore::DOMWindow::scrollY):
2800
2801 2013-10-06  Anders Carlsson  <andersca@apple.com>
2802
2803         Clean up ContentData
2804         https://bugs.webkit.org/show_bug.cgi?id=122421
2805
2806         Reviewed by Andreas Kling.
2807
2808         Replace uses of OwnPtr with std::unique_ptr and get rid of the ContentData::create overloads.
2809
2810         * css/StyleResolver.cpp:
2811         (WebCore::StyleResolver::applyProperty):
2812         * rendering/style/ContentData.cpp:
2813         (WebCore::ContentData::clone):
2814         * rendering/style/ContentData.h:
2815         (WebCore::ContentData::setNext):
2816         * rendering/style/RenderStyle.cpp:
2817         (WebCore::RenderStyle::appendContent):
2818         (WebCore::RenderStyle::setContent):
2819         * rendering/style/RenderStyle.h:
2820         * rendering/style/StyleRareNonInheritedData.h:
2821
2822 2013-10-06  Sam Weinig  <sam@webkit.org>
2823
2824         Be a bit shouty about final classes while we look into why the bots don't like it.
2825
2826         * dom/Comment.h:
2827         * dom/ProcessingInstruction.h:
2828         * editing/markup.cpp:
2829         * page/PageSerializer.cpp:
2830         * workers/SharedWorker.h:
2831         * workers/Worker.h:
2832
2833 2013-10-06  Sam Weinig  <sam@webkit.org>
2834
2835         Fix windows build.
2836
2837         * platform/win/ClipboardUtilitiesWin.cpp:
2838         (WebCore::fragmentFromCFHTML):
2839         (WebCore::fragmentFromHTML):
2840         * platform/win/PasteboardWin.cpp:
2841         (WebCore::Pasteboard::writeRangeToDataObject):
2842         (WebCore::Pasteboard::writeSelection):
2843
2844 2013-10-05  Sam Weinig  <sam@webkit.org>
2845
2846         CTTE: Thread references through markup.h
2847         https://bugs.webkit.org/show_bug.cgi?id=122403
2848
2849         Reviewed by Darin Adler and Andreas Kling.
2850
2851         Highlights:
2852         - Removed createFragmentFromMarkupWithContext(), it was unused.
2853         - Moved createFragmentFromNodes() into its one caller (in WebKit/mac)
2854         - Add a bunch more toFoo() overloads.
2855
2856 2013-10-06  Zan Dobersek  <zdobersek@igalia.com>
2857
2858         [WebIDL] Annotate IDL interfaces under Source/WebCore/Modules/ with the OperationsNotDeletable attribute
2859         https://bugs.webkit.org/show_bug.cgi?id=122281
2860
2861         Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
2862         interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
2863         doesn't have any effect, but will keep the operations not configurable after the generator is modified
2864         to preserve the original behavior. The attribute will be removed from each interface after checking
2865         conformity with other browsers (in terms of configurability of operations of that interface) and the
2866         WebKit's existing test suites.
2867
2868         This patch covers IDL interfaces under Source/WebCore/Modules/.
2869
2870         * Modules/battery/BatteryManager.idl:
2871         * Modules/encryptedmedia/MediaKeySession.idl:
2872         * Modules/encryptedmedia/MediaKeys.idl:
2873         * Modules/gamepad/GamepadList.idl:
2874         * Modules/geolocation/Geolocation.idl:
2875         * Modules/indexeddb/IDBCursor.idl:
2876         * Modules/indexeddb/IDBDatabase.idl:
2877         * Modules/indexeddb/IDBFactory.idl:
2878         * Modules/indexeddb/IDBIndex.idl:
2879         * Modules/indexeddb/IDBKeyRange.idl:
2880         * Modules/indexeddb/IDBObjectStore.idl:
2881         * Modules/indexeddb/IDBTransaction.idl:
2882         * Modules/indexeddb/IDBVersionChangeEvent.idl:
2883         * Modules/mediacontrols/MediaControlsHost.idl:
2884         * Modules/mediasource/MediaSource.idl:
2885         * Modules/mediasource/SourceBuffer.idl:
2886         * Modules/mediasource/SourceBufferList.idl:
2887         * Modules/mediasource/WebKitMediaSource.idl:
2888         * Modules/mediasource/WebKitSourceBuffer.idl:
2889         * Modules/mediasource/WebKitSourceBufferList.idl:
2890         * Modules/mediastream/MediaStream.idl:
2891         * Modules/mediastream/MediaStreamTrack.idl:
2892         * Modules/mediastream/RTCDTMFSender.idl:
2893         * Modules/mediastream/RTCDataChannel.idl:
2894         * Modules/mediastream/RTCPeerConnection.idl:
2895         * Modules/mediastream/RTCStatsReport.idl:
2896         * Modules/mediastream/RTCStatsResponse.idl:
2897         * Modules/networkinfo/NetworkInfoConnection.idl:
2898         * Modules/notifications/Notification.idl:
2899         * Modules/notifications/NotificationCenter.idl:
2900         * Modules/proximity/DeviceProximityEvent.idl:
2901         * Modules/quota/StorageInfo.idl:
2902         * Modules/quota/StorageQuota.idl:
2903         * Modules/speech/SpeechGrammarList.idl:
2904         * Modules/speech/SpeechRecognition.idl:
2905         * Modules/speech/SpeechRecognitionResult.idl:
2906         * Modules/speech/SpeechRecognitionResultList.idl:
2907         * Modules/speech/SpeechSynthesis.idl:
2908         * Modules/webaudio/AnalyserNode.idl:
2909         * Modules/webaudio/AudioBuffer.idl:
2910         * Modules/webaudio/AudioBufferSourceNode.idl:
2911         * Modules/webaudio/AudioContext.idl:
2912         * Modules/webaudio/AudioListener.idl:
2913         * Modules/webaudio/AudioNode.idl:
2914         * Modules/webaudio/AudioParam.idl:
2915         * Modules/webaudio/BiquadFilterNode.idl:
2916         * Modules/webaudio/OscillatorNode.idl:
2917         * Modules/webaudio/PannerNode.idl:
2918         * Modules/webdatabase/Database.idl:
2919         * Modules/webdatabase/DatabaseSync.idl:
2920         * Modules/webdatabase/SQLResultSetRowList.idl:
2921         * Modules/webdatabase/SQLTransaction.idl:
2922         * Modules/webdatabase/SQLTransactionSync.idl:
2923         * Modules/websockets/WebSocket.idl:
2924
2925 2013-10-06  Andreas Kling  <akling@apple.com>
2926
2927         Tighten AbstractWorker and subclasses a bit.
2928         <https://webkit.org/b/122402>
2929
2930         Reviewed by Darin Adler.
2931
2932         - Make the Worker and SharedWorker classes final.
2933         - Have constructors take ScriptExecutionContext by reference.
2934         - Remove unnecessary AbstractWorker::contextDestroyed() override.
2935         - Make eventTargetInterface() inline.
2936
2937         Inlining eventTargetInterface() is quite neat - since we only ever
2938         call this on tightly typed pointers from generated code, combining
2939         final and inline turns the virtual call into a compile-time constant.
2940
2941 2013-10-06  Zan Dobersek  <zdobersek@igalia.com>
2942
2943         [WebIDL] Annotate IDL interfaces under Source/WebCore/html/ with the OperationsNotDeletable attribute
2944         https://bugs.webkit.org/show_bug.cgi?id=122280
2945
2946         Reviewed by Darin Adler.
2947
2948         Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
2949         interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
2950         doesn't have any effect, but will keep the operations not configurable after the generator is modified
2951         to preserve the original behavior. The attribute will be removed from each interface after checking
2952         conformity with other browsers (in terms of configurability of operations of that interface) and the
2953         WebKit's existing test suites.
2954
2955         This patch covers IDL interfaces under Source/WebCore/html/.
2956
2957         * html/DOMFormData.idl:
2958         * html/DOMSettableTokenList.idl:
2959         * html/DOMTokenList.idl:
2960         * html/DOMURL.idl:
2961         * html/HTMLAllCollection.idl:
2962         * html/HTMLAnchorElement.idl:
2963         * html/HTMLButtonElement.idl:
2964         * html/HTMLCanvasElement.idl:
2965         * html/HTMLCollection.idl:
2966         * html/HTMLDocument.idl:
2967         * html/HTMLElement.idl:
2968         * html/HTMLEmbedElement.idl:
2969         * html/HTMLFieldSetElement.idl:
2970         * html/HTMLFormControlsCollection.idl:
2971         * html/HTMLFormElement.idl:
2972         * html/HTMLFrameElement.idl:
2973         * html/HTMLIFrameElement.idl:
2974         * html/HTMLInputElement.idl:
2975         * html/HTMLKeygenElement.idl:
2976         * html/HTMLMarqueeElement.idl:
2977         * html/HTMLMediaElement.idl:
2978         * html/HTMLObjectElement.idl:
2979         * html/HTMLOptionsCollection.idl:
2980         * html/HTMLOutputElement.idl:
2981         * html/HTMLSelectElement.idl:
2982         * html/HTMLTableElement.idl:
2983         * html/HTMLTableRowElement.idl:
2984         * html/HTMLTableSectionElement.idl:
2985         * html/HTMLTextAreaElement.idl:
2986         * html/HTMLVideoElement.idl:
2987         * html/MediaController.idl:
2988         * html/RadioNodeList.idl:
2989         * html/TimeRanges.idl:
2990         * html/canvas/CanvasGradient.idl:
2991         * html/canvas/CanvasRenderingContext2D.idl:
2992         * html/canvas/DOMPath.idl:
2993         * html/canvas/EXTDrawBuffers.idl:
2994         * html/canvas/OESVertexArrayObject.idl:
2995         * html/canvas/WebGLDebugShaders.idl:
2996         * html/canvas/WebGLLoseContext.idl:
2997         * html/canvas/WebGLRenderingContext.idl:
2998         * html/track/AudioTrackList.idl:
2999         * html/track/TextTrack.idl:
3000         * html/track/TextTrackCue.idl:
3001         * html/track/TextTrackCueList.idl:
3002         * html/track/TextTrackList.idl:
3003         * html/track/TextTrackRegionList.idl:
3004         * html/track/VideoTrackList.idl:
3005
3006 2013-10-06  Zan Dobersek  <zdobersek@igalia.com>
3007
3008         [WebIIDL] Annotate IDL interfaces under Source/WebCore/svg/ with the OperationsNotDeletable attribute
3009         https://bugs.webkit.org/show_bug.cgi?id=122279
3010
3011         Reviewed by Darin Adler.
3012
3013         Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
3014         interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
3015         doesn't have any effect, but will keep the operations not configurable after the generator is modified
3016         to preserve the original behavior. The attribute will be removed from each interface after checking
3017         conformity with other browsers (in terms of configurability of operations of that interface) and the
3018         WebKit's existing test suites.
3019
3020         This patch covers IDL interfaces under Source/WebCore/svg/.
3021
3022         * svg/SVGAngle.idl:
3023         * svg/SVGAnimationElement.idl:
3024         * svg/SVGColor.idl:
3025         * svg/SVGCursorElement.idl:
3026         * svg/SVGDocument.idl:
3027         * svg/SVGElement.idl:
3028         * svg/SVGElementInstanceList.idl:
3029         * svg/SVGException.idl:
3030         * svg/SVGFEDropShadowElement.idl:
3031         * svg/SVGFEGaussianBlurElement.idl:
3032         * svg/SVGFEMorphologyElement.idl:
3033         * svg/SVGFilterElement.idl:
3034         * svg/SVGGraphicsElement.idl:
3035         * svg/SVGLength.idl:
3036         * svg/SVGLengthList.idl:
3037         * svg/SVGMarkerElement.idl:
3038         * svg/SVGMaskElement.idl:
3039         * svg/SVGMatrix.idl:
3040         * svg/SVGNumberList.idl:
3041         * svg/SVGPaint.idl:
3042         * svg/SVGPathElement.idl:
3043         * svg/SVGPathSegList.idl:
3044         * svg/SVGPatternElement.idl:
3045         * svg/SVGPoint.idl:
3046         * svg/SVGPointList.idl:
3047         * svg/SVGSVGElement.idl:
3048         * svg/SVGStringList.idl:
3049         * svg/SVGTests.idl:
3050         * svg/SVGTextContentElement.idl:
3051         * svg/SVGTransform.idl:
3052         * svg/SVGTransformList.idl:
3053
3054 2013-10-06  Zan Dobersek  <zdobersek@igalia.com>
3055
3056         [WebIDL] Annotate IDL interfaces under Source/WebCore/page/ with the OperationsNotDeletable attribute
3057         https://bugs.webkit.org/show_bug.cgi?id=122278
3058
3059         Before changing the JSC bindings generator to enforce WebIDL operations to be configurable, all the
3060         interfaces are being annotated with the OperationsNotDeletable attribute. The attribute currently
3061         doesn't have any effect, but will keep the operations not configurable after the generator is modified
3062         to preserve the original behavior. The attribute will be removed from each interface after checking
3063         conformity with other browsers (in terms of configurability of operations of that interface) and the
3064         WebKit's existing test suites.
3065
3066         This patch covers IDL interfaces under Source/WebCore/page/.
3067
3068         * page/Console.idl:
3069         * page/Crypto.idl:
3070         * page/DOMSecurityPolicy.idl:
3071         * page/DOMSelection.idl:
3072         * page/DOMWindow.idl:
3073         * page/EventSource.idl:
3074         * page/History.idl:
3075         * page/Location.idl:
3076         * page/Navigator.idl:
3077         * page/Performance.idl:
3078         * page/PerformanceEntryList.idl:
3079         * page/SpeechInputResultList.idl:
3080         * page/WindowBase64.idl:
3081         * page/WindowTimers.idl:
3082
3083 2013-10-06  Darin Adler  <darin@apple.com>
3084
3085         * rendering/RenderButton.cpp:
3086         (WebCore::RenderButton::setupInnerStyle): Added a comment possibly relevant
3087         to current failures seen on Windows bot.
3088
3089 2013-10-06  Commit Queue  <commit-queue@webkit.org>
3090
3091         Unreviewed, rolling out r156988.
3092         http://trac.webkit.org/changeset/156988
3093         https://bugs.webkit.org/show_bug.cgi?id=122415
3094
3095         Broke debug build (Requested by ap on #webkit).
3096
3097         * css/CSSCursorImageValue.h:
3098         * css/CSSTimingFunctionValue.h:
3099         * css/CSSToStyleMap.cpp:
3100         (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
3101         * css/CSSUnicodeRangeValue.h:
3102         * css/CSSValue.cpp:
3103         (WebCore::CSSValue::destroy):
3104         * css/DeprecatedStyleBuilder.cpp:
3105         (WebCore::ApplyPropertyCursor::applyValue):
3106         * css/StyleResolver.cpp:
3107         (WebCore::StyleResolver::styleImage):
3108         (WebCore::StyleResolver::styleShader):
3109         * rendering/style/StylePendingImage.h:
3110         (WebCore::StylePendingImage::cssCursorImageValue):
3111
3112 2013-10-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3113
3114         Add *CSS* prefix to ShadowValue to generate toCSSShadowValue
3115         https://bugs.webkit.org/show_bug.cgi?id=122409
3116
3117         Reviewed by Darin Adler.
3118
3119         To generate toCSSShadowValue(), we need to add *CSS* prefix to ShadowValue.
3120         It is also to be sync with a naming rule of CSS child value.  
3121
3122         No new tests, no behavior changes.
3123
3124         * CMakeLists.txt:
3125         * GNUmakefile.list.am:
3126         * WebCore.vcxproj/WebCore.vcxproj:
3127         * WebCore.vcxproj/WebCore.vcxproj.filters:
3128         * WebCore.xcodeproj/project.pbxproj:
3129         * css/CSSComputedStyleDeclaration.cpp:
3130         (WebCore::ComputedStyleExtractor::valueForShadow):
3131         * css/CSSParser.cpp:
3132         (WebCore::ShadowParseContext::commitValue):
3133         * css/CSSShadowValue.cpp: Renamed from Source/WebCore/css/ShadowValue.cpp.
3134         (WebCore::CSSShadowValue::CSSShadowValue):
3135         (WebCore::CSSShadowValue::customCSSText):
3136         (WebCore::CSSShadowValue::equals):
3137         * css/CSSShadowValue.h: Renamed from Source/WebCore/css/ShadowValue.h.
3138         (WebCore::CSSShadowValue::create):
3139         * css/CSSValue.cpp:
3140         (WebCore::CSSValue::equals):
3141         (WebCore::CSSValue::cssText):
3142         (WebCore::CSSValue::destroy):
3143         * css/SVGCSSStyleSelector.cpp:
3144         (WebCore::StyleResolver::applySVGProperty):
3145         * css/StyleResolver.cpp:
3146         (WebCore::StyleResolver::applyProperty):
3147         (WebCore::StyleResolver::createFilterOperations):
3148
3149 2013-10-06  Darin Adler  <darin@apple.com>
3150
3151         Remove unneeded ScriptGCEvent class
3152         https://bugs.webkit.org/show_bug.cgi?id=122390
3153
3154         Reviewed by Anders Carlsson.
3155
3156         * GNUmakefile.list.am: Removed ScriptGCEvent files.
3157         * Target.pri: Ditto.
3158         * UseJSC.cmake: Ditto.
3159         * WebCore.exp.in: Ditto.
3160         * WebCore.vcxproj/WebCore.vcxproj: Ditto.
3161         * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
3162         * WebCore.xcodeproj/project.pbxproj: Ditto.
3163         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
3164         * bindings/js/ScriptGCEvent.cpp: Removed.
3165         * bindings/js/ScriptGCEvent.h: Removed.
3166
3167         * inspector/InspectorMemoryAgent.cpp: Removed include.
3168
3169         * inspector/InspectorTimelineAgent.cpp:
3170         (WebCore::InspectorTimelineAgent::start): Removed GC event listening.
3171         Some day we might add it back, but for now it is dead code.
3172         (WebCore::InspectorTimelineAgent::stop): Ditto.
3173         (WebCore::usedHeapSize): Renamed from getUsedHeapSize and put the
3174         implementation here instead of indirecting through ScriptGCEvent.
3175         (WebCore::InspectorTimelineAgent::setDOMCounters): Updated for above changes.
3176         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord): Ditto.
3177         (WebCore::InspectorTimelineAgent::pushCurrentRecord): Ditto.
3178
3179         * inspector/InspectorTimelineAgent.h: Removed include.
3180
3181         * inspector/ScriptGCEventListener.h: Removed.
3182
3183         * testing/MemoryInfo.h: Updated to get heap capacity and size directly
3184         instead of going through ScriptGCEvent.
3185
3186 2013-10-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3187
3188         Generate toCSSFooValue() for CSSCursorImageValue, CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue
3189         https://bugs.webkit.org/show_bug.cgi?id=122408
3190
3191         Reviewed by Darin Adler.
3192
3193         As a step to use toCSSFooValue, this patch generates toCSSFooValue() for CSSCursorImageValue,
3194         CSSCubicBezierTimingFunctionValue, CSSStepsTimingFunctionValue and CSSUnicodeRangeValue.
3195         This will help to detect bad type cast.
3196
3197         No new tests, no behavior changes.
3198
3199         * css/CSSCursorImageValue.h:
3200         * css/CSSTimingFunctionValue.h:
3201         * css/CSSToStyleMap.cpp:
3202         (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
3203         * css/CSSUnicodeRangeValue.h:
3204         * css/CSSValue.cpp:
3205         (WebCore::CSSValue::destroy):
3206         * css/DeprecatedStyleBuilder.cpp:
3207         (WebCore::ApplyPropertyCursor::applyValue):
3208         * css/StyleResolver.cpp:
3209         (WebCore::StyleResolver::styleImage):
3210         (WebCore::StyleResolver::styleShader):
3211         * rendering/style/StylePendingImage.h:
3212         (WebCore::StylePendingImage::cssCursorImageValue):
3213
3214 2013-10-05  Andreas Kling  <akling@apple.com>
3215
3216         CTTE: Teach CompositeEditCommand that link Nodes are always Elements.
3217         <https://webkit.org/b/122400>
3218
3219         Reviewed by Sam Weinig.
3220
3221         Make pushAnchorElementDown() take an Element& instead of a Node* and
3222         tweak the surrounding code a tiny bit.
3223
3224 2013-10-06  Andreas Kling  <akling@apple.com>
3225
3226         CTTE: Node::enclosingLinkEventParentOrSelf() should return an Element.
3227         <https://webkit.org/b/122401>
3228
3229         Reviewed by Sam Weinig.
3230
3231         Only Elements are ever linked, so make enclosingLinkEventParentOrSelf()
3232         return an Element* instead of a Node*. The only call site was already
3233         doing toElement() on the return value without checking, so this makes
3234         things look a bit nicer.
3235
3236 2013-10-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3237
3238         Add *CSS* prefix to FontFeatureValue to generate toCSSFontFeatureValue(), and use it
3239         https://bugs.webkit.org/show_bug.cgi?id=122204
3240
3241         Reviewed by Darin Adler.
3242
3243         *CSS* prefix needs to be added to FontFeatureValue class in order to generate toCSSFontFeatureValue().
3244         static_cast<FontFeatureValue*> is changed with toCSSFontFeatureValue() by using this change.
3245
3246         No new tests, no behavior changes.
3247
3248         * CMakeLists.txt:
3249         * GNUmakefile.list.am:
3250         * Target.pri:
3251         * WebCore.vcxproj/WebCore.vcxproj:
3252         * WebCore.vcxproj/WebCore.vcxproj.filters:
3253         * WebCore.xcodeproj/project.pbxproj:
3254         * css/CSSComputedStyleDeclaration.cpp:
3255         (WebCore::ComputedStyleExtractor::propertyValue):
3256         * css/CSSFontFeatureValue.cpp: Renamed from Source/WebCore/css/FontFeatureValue.cpp.
3257         (WebCore::CSSFontFeatureValue::CSSFontFeatureValue):
3258         (WebCore::CSSFontFeatureValue::customCSSText):
3259         (WebCore::CSSFontFeatureValue::equals):
3260         * css/CSSFontFeatureValue.h: Renamed from Source/WebCore/css/FontFeatureValue.h.
3261         (WebCore::CSSFontFeatureValue::create):
3262         (WebCore::CSSFontFeatureValue::tag):
3263         (WebCore::CSSFontFeatureValue::value):
3264         * css/CSSParser.cpp:
3265         (WebCore::CSSParser::parseFontFeatureTag):
3266         * css/CSSValue.cpp:
3267         (WebCore::CSSValue::equals):
3268         (WebCore::CSSValue::cssText):
3269         (WebCore::CSSValue::destroy):
3270         * css/StyleResolver.cpp:
3271         (WebCore::StyleResolver::applyProperty):
3272
3273 2013-10-05  Andreas Kling  <akling@apple.com>
3274
3275         FrameSelection: Remove two unused member functions.
3276
3277         Rubber-stamped by Anders Carlsson.
3278
3279         - rootEditableElementOrTreeScopeRootNode()
3280         - rootEditableElementRespectingShadowTree()
3281
3282 2013-10-05  Andreas Kling  <akling@apple.com>
3283
3284         CTTE: Node::treeScope() should return a reference.
3285         <https://webkit.org/b/122399>
3286
3287         Reviewed by Superlative Sam.
3288
3289         Every Node belongs to a TreeScope. To enforce this, I've made
3290         treeScope() return a TreeScope&, and setTreeScope() now takes a
3291         TreeScope& so there is no way to clear it.
3292
3293 2013-10-05  Sam Weinig  <sam@webkit.org>
3294
3295         CTTE: Use references more for the Document parser
3296         https://bugs.webkit.org/show_bug.cgi?id=122398
3297
3298         Reviewed by Andreas Kling.
3299
3300         Clarify the construction semantics of Document parsers.
3301
3302 2013-10-05  Daniel Bates  <dabates@apple.com>
3303
3304         [iOS] Default initialize Settings::setFixedPositionCreatesStackingContext() to true
3305         https://bugs.webkit.org/show_bug.cgi?id=122338
3306         <rdar://problem/14908151>
3307
3308         Reviewed by Darin Adler.
3309
3310         On iOS we always want an element with a fixed position to create a stacking context.
3311         See <rdar://problem/9813262> for more details.
3312
3313         * page/Settings.cpp: Define constant defaultFixedPositionCreatesStackingContext to
3314         be true when building for iOS and false otherwise.
3315         * page/Settings.in: Initialize the setting fixedPositionCreatesStackingContext with
3316         the value of the constant defaultFixedPositionCreatesStackingContext.
3317
3318 2013-10-05  Sam Weinig  <sam@webkit.org>
3319
3320         CTTE: Pass DocumentWriter around as a reference
3321         https://bugs.webkit.org/show_bug.cgi?id=122396
3322
3323         Reviewed by Andreas Kling.
3324
3325         * bindings/js/ScriptController.cpp:
3326         (WebCore::ScriptController::executeIfJavaScriptURL):
3327         * dom/DecodedDataDocumentParser.cpp:
3328         (WebCore::DecodedDataDocumentParser::appendBytes):
3329         (WebCore::DecodedDataDocumentParser::flush):
3330         * dom/DecodedDataDocumentParser.h:
3331         * dom/DocumentParser.h:
3332         * dom/RawDataDocumentParser.h:
3333         (WebCore::RawDataDocumentParser::flush):
3334         * html/ImageDocument.cpp:
3335         (WebCore::ImageDocumentParser::appendBytes):
3336         * html/MediaDocument.cpp:
3337         (WebCore::MediaDocumentParser::appendBytes):
3338         (WebCore::MediaDocument::replaceMediaElementTimerFired):
3339         * html/PluginDocument.cpp:
3340         (WebCore::PluginDocumentParser::createDocumentStructure):
3341         (WebCore::PluginDocumentParser::appendBytes):
3342         * inspector/InspectorOverlay.cpp:
3343         (WebCore::InspectorOverlay::overlayPage):
3344         * loader/DocumentLoader.h:
3345         (WebCore::DocumentLoader::writer):
3346         * loader/DocumentWriter.cpp:
3347         (WebCore::DocumentWriter::addData):
3348         (WebCore::DocumentWriter::end):
3349         * loader/FrameLoader.cpp:
3350         (WebCore::FrameLoader::transitionToCommitted):
3351         * loader/SinkDocument.cpp:
3352         (WebCore::SinkDocumentParser::appendBytes):
3353         * svg/graphics/SVGImage.cpp:
3354         (WebCore::SVGImage::dataChanged):
3355
3356 2013-10-05  Andreas Kling  <akling@apple.com>
3357
3358         FrameView: Remove code for disabling repaints.
3359         <https://webkit.org/b/122393>
3360
3361         Reviewed by Sam Weinig.
3362
3363         Nobody uses this mode for anything so let's just remove it.
3364
3365         It was added back in r110469 to fix an issue with SVGImageCache
3366         and its only user disappeard in the cache overhaul in r142765.
3367
3368 2013-10-05  Andreas Kling  <akling@apple.com>
3369
3370         Remove IFrameShimSupport, it was only used by dead ports.
3371
3372         Rubber-stamped by Anders Carlsson.
3373
3374         * plugins/IFrameShimSupport.cpp: Removed.
3375         * plugins/IFrameShimSupport.h: Removed.
3376
3377 2013-10-05  Anders Carlsson  <andersca@apple.com>
3378
3379         Clean up MessageQueue.h
3380         https://bugs.webkit.org/show_bug.cgi?id=122392
3381
3382         Reviewed by Andreas Kling.
3383
3384         Update for changes to MessageQueue, mostly changing create functions to return std::unique_ptr.
3385         I intentionally avoided using std::make_unique in a couple of places because I didn't want to make nested classes
3386         public, and I believe that we can change some of this code to use std::function.
3387
3388         * Modules/webaudio/AsyncAudioDecoder.cpp:
3389         (WebCore::AsyncAudioDecoder::decodeAsync):
3390         (WebCore::AsyncAudioDecoder::runLoop):
3391         (WebCore::AsyncAudioDecoder::DecodingTask::create):
3392         * Modules/webaudio/AsyncAudioDecoder.h:
3393         * Modules/webdatabase/Database.cpp:
3394         (WebCore::Database::markAsDeletedAndClose):
3395         (WebCore::Database::tableNames):
3396         * Modules/webdatabase/DatabaseBackend.cpp:
3397         (WebCore::DatabaseBackend::openAndVerifyVersion):
3398         (WebCore::DatabaseBackend::scheduleTransaction):
3399         (WebCore::DatabaseBackend::scheduleTransactionStep):
3400         * Modules/webdatabase/DatabaseTask.h:
3401         (WebCore::DatabaseBackend::DatabaseOpenTask::create):
3402         (WebCore::DatabaseBackend::DatabaseCloseTask::create):
3403         (WebCore::DatabaseBackend::DatabaseTransactionTask::create):
3404         (WebCore::DatabaseBackend::DatabaseTableNamesTask::create):
3405         * Modules/webdatabase/DatabaseThread.cpp:
3406         (WebCore::DatabaseThread::databaseThread):
3407         (WebCore::DatabaseThread::scheduleTask):
3408         (WebCore::DatabaseThread::scheduleImmediateTask):
3409         (WebCore::SameDatabasePredicate::operator()):
3410         * Modules/webdatabase/DatabaseThread.h:
3411         * dom/default/PlatformMessagePortChannel.cpp:
3412         (WebCore::PlatformMessagePortChannel::EventData::create):
3413         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
3414         * dom/default/PlatformMessagePortChannel.h:
3415         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
3416         (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
3417         * fileapi/FileThread.cpp:
3418         (WebCore::FileThread::postTask):
3419         (WebCore::SameInstancePredicate::operator()):
3420         (WebCore::FileThread::runLoop):
3421         * fileapi/FileThread.h:
3422         * fileapi/FileThreadTask.h:
3423         (WebCore::createFileThreadTask):
3424         * storage/StorageThread.cpp:
3425         (WebCore::StorageThread::threadEntryPoint):
3426         (WebCore::StorageThread::dispatch):
3427         (WebCore::StorageThread::terminate):
3428         * workers/WorkerRunLoop.cpp:
3429         (WebCore::ModePredicate::operator()):
3430         (WebCore::WorkerRunLoop::runInMode):
3431         (WebCore::WorkerRunLoop::runCleanupTasks):
3432         (WebCore::WorkerRunLoop::Task::create):
3433         * workers/WorkerRunLoop.h:
3434
3435 2013-10-04  Dean Jackson  <dino@apple.com>
3436
3437         [WebGL] program should not be able to link if a bad shader is attached
3438         https://bugs.webkit.org/show_bug.cgi?id=94036
3439
3440         Reviewed by Darin Adler.
3441
3442         If you attempt to link a program when bad shaders are attached, the
3443         link should fail. WebGL also requires that the previously linked
3444         program should remain intact. We were doing the former, but not
3445         the latter.
3446
3447         Fix this by not calling glLinkProgram if we know we have bad
3448         shaders, and synthesize a bad link status instead.
3449
3450         Test: WebGL conformance test conformance/programs/program-test.html
3451         (found in LayoutTests/webgl)
3452
3453         * html/canvas/WebGLRenderingContext.cpp:
3454         (WebCore::WebGLRenderingContext::compileShader): Mark a shader as valid
3455         if it compiled ok.
3456         (WebCore::WebGLRenderingContext::linkProgram): Don't call into GraphicsContext3D::linkProgram
3457         if we know that we don't have valid shaders.
3458         * html/canvas/WebGLShader.cpp:
3459         (WebCore::WebGLShader::WebGLShader): Initialize m_isValid.
3460         * html/canvas/WebGLShader.h:
3461         (WebCore::WebGLShader::isValid): New member variable getter and setter.
3462         (WebCore::WebGLShader::setValid):
3463
3464 2013-10-05  Dean Jackson  <dino@apple.com>
3465
3466         Undo texture unit code refactoring - it is ok to bind a texture to multiple locations
3467         https://bugs.webkit.org/show_bug.cgi?id=122369
3468         <rdar://problem/15158465>
3469
3470         Reviewed by Darin Adler.
3471
3472         The optimisation in r152351 (http://webkit.org/b/117868) incorrectly
3473         assumes that a texture cannot be bound to more than one location.
3474         That's true only within the same program object. It's legal to
3475         address TEXTURE_BINDING_2D and TEXTURE_BINDING_CUBE_MAP with the
3476         same texture in different programs.
3477
3478         See https://github.com/KhronosGroup/WebGL/pull/391 for more information.
3479
3480         This change reverts the optimisation, but also does some minor
3481         cleanup (0 -> nullptr, class -> struct).
3482
3483         Covered by the following Khronos WebGL 1.0.1 tests, which
3484         now pass:
3485         - conformance/more/functions/texImage2DHTML.html
3486         - conformance/more/functions/texSubImage2D.html
3487         - conformance/more/functions/texSubImage2DHTML.html
3488
3489         * html/canvas/WebGLRenderingContext.cpp:
3490         (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
3491         (WebCore::WebGLRenderingContext::reshape):
3492         (WebCore::WebGLRenderingContext::bindTexture):
3493         (WebCore::WebGLRenderingContext::deleteTexture):
3494         (WebCore::WebGLRenderingContext::getParameter):
3495         (WebCore::WebGLRenderingContext::handleNPOTTextures):
3496         (WebCore::WebGLRenderingContext::validateTextureBinding):
3497         (WebCore::WebGLRenderingContext::restoreCurrentTexture2D):
3498         * html/canvas/WebGLRenderingContext.h:
3499
3500 2013-10-05  Anders Carlsson  <andersca@apple.com>
3501
3502         Remove createOwned
3503         https://bugs.webkit.org/show_bug.cgi?id=122388
3504
3505         Reviewed by Darin Adler.
3506
3507         * dom/Document.cpp:
3508         (WebCore::Document::Document):
3509         (WebCore::Document::~Document):
3510         (WebCore::Document::createRenderTree):
3511         (WebCore::Document::destroyRenderTree):
3512         * dom/Document.h:
3513         * page/Frame.cpp:
3514         (WebCore::Frame::Frame):
3515         * page/Frame.h:
3516         * page/animati